## page was renamed from alstamber/monooki #acl alstamber:read,write,admin,revert,delete All:read == TwitterのDMを整理したいと思った == === はじめに === * DM Mailerというサービスを使うと、本来なら一定数を超えると消えていくTwitterのDMを貯蔵しておくことができる。 * 貯蔵して置けるのはいいんだけど、このサービスのサイトでDMを見ようとすると閲覧性があんま良くない。 * 何とかしたいなあと思った。 * DM Mailerは貯蔵してきたDMをcsvで出力できる。 * このCSVを加工すればそれなりに見れるものになるのでは……? === リムーブ通知を消す === * リムーブ通知サービスに登録しているため、DMの中にはリムーブ通知およびブロック通知がかなり多数含まれている。 * これを手で消すのは面倒なので、Pythonでスクリプトを書くことにした。 * こういうことはsed&awkのほうが得意なんだろうけどね……w {{{#!highlight python #!/usr/bin/python # -*- coding: utf-8 -*- datafile='input.csv' outputfile='output.csv' input=open(datafile, 'r') output=open(outputfile, 'w') lines = input.readlines() input.close() for line in lines: if line.find("リムーブされました") != -1 or line.find("ブロックされました") != -1: continue else: output.write(line) output.close() }}} * 一行ずつ調べて、リムーブされましたorブロックされましたという文字列を発見したらその行は書き出さないってだけのスクリプト * 芸もなんもないが、元のCSVが高々1500行ぐらいだったのでこれで十分だろうと判断 === DMの固有IDを消す === * このCSVファイルにはDMにTwitter側が割り振った固有のIDも書き込まれている。 * 正直いらないのでスクリプトでこれも消す。 * 先のスクリプトのelse節を次のように付けかえる。 {{{#!highlight python dst = re.sub('^\"[0-9]+\",|^\"ID\",', '', line) output.write(dst) }}} * 正規表現を使ってIDに関する部分を消している。IDは行の先頭部分に"数字"という形式で書かれているのでカンマもろともNULLで置換して消してしまう。 * ついでに表の項目名に当たる部分も消してしまう。 * 以上の作業で送信者、受信者、本文、送信時刻という素直な形式のCSVになった。