#NEMのモザイクのメッセージをpython3で制御してみる
#NIS1のjson は以下のような構造です
{
"transaction":
{
"timeStamp":
"amount": int(1*1000000),
"fee": int(0.5*1000000),
"recipient":str1,
"type": type$,
"deadline": timestanp$+3600,
"message":
{
"payload": message2,
"type": 1
},
"version":verson$
"signer": "", #publickey
"mosaics":[
{
"mosaicId":{
"namespaceId": namespace,
"name": mosaic
},
"quantity": 10
}
(データの部分省略してます。幾つか変数で対応できる部分は変数を書いてます)
python3から変数でデータを入力すると便利な部分
"recipient":str1,
"message": "payload": message2,
"mosaicId":{ "namespaceId": namespace, "name": mosaic
このなかでmessage欄はせっかくあるのにあまり使われません
もっとも使われたのはネムぐまさんのF-1000イベントではないでしょうか
tweeterとnemlogで案内をされていました
https://nemlog.nem.social/blog/30886
tipをして絵を仕上げるという面白い企画
tipは専用アプリからracoonwalletに接続して行う仕組みになってました。
(たぶんネムグマさんが記事にされると思います)
私も最初は携帯でチップしていたのですが、仕事中に携帯触れないのと数が打てないので、python3でメッセージを作りながらtipしていました。
途中ブルーハーツの題名が並んだのをねむぐまさんがtweetしたときに、そういうふうに連続したメッセージをつなげて読めるのならそれ用にtipしようと思ってpython3のプログラムを作ってみました
複数回 message を入れ替えてnem投げるだけなのですが
#jsonから受けてアドレスを読み取り(今回は必要ないです汎用プログラム流用のため)
#message2という変数に毎回 list a から1行分ずつデータを読み込んでトランザクションを送ります
with open('fushicho.json', 'r') as f:
data4 = json.load(f)
data5 = data4['data']
a = ["不 死 鳥","Phoenix"," る","て づ","っ い","も て り","め れ よ","ゆ ま う"," う の"," ほ ","Phoenix","不 死 鳥"
for i in range(1,13):
str1 = '{}'.format(data5[1]['address'])
#str1とmessage2にデータを代入してjsonを作成しサーバーに送ります
#結果が入出金履歴に表されるメッセージを積み上げたデータになります
いくつも同様のプログラムを使ってtipするのが非常に楽しかったです
ありがとうございました
bingo
messageをつかってなにかできないかってことでビンゴカードを作成してモザイクで配るというのを試してみました
#データ取得
#jsonから、nemlogのギルドの方のメッセージをjsonにしているのでそれを読み込みます
その上でモザイクのメッセージに1枚のビンゴカードを作成して送ります
jsonの例 guildadd.json
{
"data": [
{
"name": "えっさん",
"address": "NAAXHJM65OKDFSYGWXXXXXXXXXXXXXXXXXXXXXX"
},
{
"name": "YUTO",
"address": "NCYKI7M6EITPEYLHXXXXXXXXXXXXXXXXXXXXXXx"
},
{
"name": "matsuno",
"address": "NDFSJHCY7ZY3ELWAXXXXXXXXXXXXXXXXXXXXXXx"
},
{
"name": "うぇんじにあ",
"address": "NBO6YSQF3XO45JVOXXXXXXXXXXXXXXXXXXXXXXx"
},
{
"name": "nem好き",
"address": "NCVKQZJ4ACLC4XXXXXXXXXXXXXXXXXXXXXXXXX"
},
{
"name": "ZEMZEM",
"address": "NC2E5LZH6HQXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
},
{
"name": "ボー太郎",
"address": "NBMDXPTFOYMXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
}
]
}
#カード作成 "recipient":str1, で全員分をアドレスを入力しつつパラメータを作成する
with open('guildadd.json', 'r') as f:
data4 = json.load(f)
data5 = data4['data']
for n in range(1,7):
str1 = '{}'.format(data5[n-1]['address']) 受けてのアドレス
name1 = '{}'.format(data5[n-1]['name']) 相手の名前
m = str(n).zfill(4) カード番号の作成
f = list(range(1,75)) 75までの数字でビンゴの要素を作る
g = random.sample(f,24) 24マス分の数字をえらぶ
message = (name1+m)
no = ', '.join(map(str, g))
message2 = message+" "+no
print(message2)
mkdata-fromjason #トランザクション用のデータを作成するルーチン(関数)を呼ぶ
#実際に送られたモザイクのメッセージ
データの意味は 名前 カードNO 24個のビンゴの数字
えっさん0001 28, 37, 41, 57, 50, 3, 4, 45, 59, 74, 35, 68, 24, 18, 14, 6, 20, 19, 15, 10, 29, 55, 30, 63
YUTO0002 65, 2, 56, 4, 68, 28, 8, 14, 11, 1, 23, 58, 17, 74, 67, 33, 62, 45, 32, 31, 26, 16, 25, 29
matsuno0003 19, 63, 26, 15, 21, 14, 1, 37, 4, 31, 7, 41, 72, 42, 55, 3, 2, 51, 65, 46, 22, 56, 66, 33
うぇんじにあ0004 69, 26, 44, 30, 73, 40, 24, 57, 60, 35, 15, 45, 43, 10, 4, 11, 7, 3, 33, 32, 14, 63, 20, 12
nem好き0005 25, 37, 60, 59, 65, 8, 35, 69, 31, 62, 64, 28, 46, 54, 53, 38, 7, 66, 41, 73, 36, 67, 40, 29
ZEMZEM0006 37, 4, 67, 64, 74, 60, 33, 22, 7, 62, 51, 11, 28, 53, 20, 42, 18, 70, 66, 16, 35, 68, 57, 58
WEBで見るとカードになるとか面白そうなんですがWEB不得意なので実現しそうにないです
ローテクの上に印刷してbingoカードにするのが良さそうです
まだできていない部分
モザイクのメッセージを読んでカード形式で表示する