NEMのモザイクのメッセージをpython3で制御してみる

	
#NEMのモザイクのメッセージをpython3で制御してみる

#NIS１の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しようと思ってpython３のプログラムを作ってみました


複数回 message を入れ替えてnem投げるだけなのですが

#jsonから受けてアドレスを読み取り（今回は必要ないです汎用プログラム流用のため）
#message2という変数に毎回　list　a　から１行分ずつデータを読み込んでトランザクションを送ります
```
　
	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を作成しサーバーに送ります
#結果が入出金履歴に表されるメッセージを積み上げたデータになります

![EHmpUxdUcAA5fGH.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100350/c7a09083-505e-f69c-4f9a-5f4d5f9d1279.jpeg)

いくつも同様のプログラムを使ってtipするのが非常に楽しかったです
ありがとうございました
	


bingo

messageをつかってなにかできないかってことでビンゴカードを作成してモザイクで配るというのを試してみました


#データ取得
#jsonから、nemlogのギルドの方のメッセージをjsonにしているのでそれを読み込みます
その上でモザイクのメッセージに１枚のビンゴカードを作成して送ります

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)　２４マス分の数字をえらぶ
			message = (name1+m)
			no = ', '.join(map(str, g))
			message2 = message+" "+no
			print(message2)

			mkdata-fromjason  #トランザクション用のデータを作成するルーチン（関数）を呼ぶ
```
＃実際に送られたモザイクのメッセージ
データの意味は　名前　カードNO　２４個のビンゴの数字

えっさん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カードにするのが良さそうです

まだできていない部分
モザイクのメッセージを読んでカード形式で表示する