ログイン
編集不可のページディスカッション情報添付ファイル
"alstamber/TwitterDMRearrange"の差分

MMA
1と7のリビジョン間の差分 (その間の編集: 6回)
2011-04-14 23:42:36時点のリビジョン1
サイズ: 1594
編集者: alstamber
コメント:
2012-04-15 23:27:22時点のリビジョン7
サイズ: 2532
編集者: alstamber
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 1: 行 1:
== .vimrc ==
{{{#!highlight vim
#acl alstamber:read,write,admin,revert,delete All:read
行 4: 行 3:
" display == TwitterのDMを整理したいと思った ==
=== はじめに ===
 * DM Mailerというサービスを使うと、本来なら一定数を超えると消えていくTwitterのDMを貯蔵しておくことができる。
  * 貯蔵して置けるのはいいんだけど、このサービスのサイトでDMを見ようとすると閲覧性があんま良くない。
  * 何とかしたいなあと思った。
 * DM Mailerは貯蔵してきたDMをcsvで出力できる。
  * このCSVを加工すればそれなりに見れるものになるのでは……?
行 6: 行 11:
syntax on === リムーブ通知を消す ===
 * リムーブ通知サービスに登録しているため、DMの中にはリムーブ通知およびブロック通知がかなり多数含まれている。
  * これを手で消すのは面倒なので、Pythonでスクリプトを書くことにした。
  * こういうことはsed&awkのほうが得意なんだろうけどね……w
行 8: 行 16:
set number
set ruler
set cmdheight=2
set laststatus=2
set title
set linespace=4
set wildmenu
set showcmd
set list
set listchars=tab:>\
set shortmess+=I
set statusline=%<%f\ %m%r%h%w%{'['.(&fenc!=''?&fenc:&enc).']['.&ff.']'}%=%l,%c%V%8P
{{{#!highlight python
#!/usr/bin/python
# -*- coding: utf-8 -*-
行 21: 行 20:
" search
set ignorecase
set smartcase
set wrapscan
set hlsearch
set incsearch
datafile='input.csv'
outputfile='output.csv'
行 28: 行 23:
" edit
set autoindent
set cindent
set showmatch
set backspace=indent,eol,start
set clipboard=unnamed
set pastetoggle=<F12>
set guioptions+=a
input=open(datafile, 'r')
output=open(outputfile, 'w')
行 37: 行 26:
" tab
set tabstop=4
set expandtab
set smarttab
set shiftwidth=4
set shiftround
set nowrap
set smartindent
lines = input.readlines()
input.close()
行 46: 行 29:
" keymap
set bioskey
set timeout
set timeoutlen=500
let mapleader=','
for line in lines:
    if line.find("リムーブされました") != -1 or line.find("ブロックされました") != -1:
        continue
    else:
        output.write(line)
output.close()
}}}
 * 一行ずつ調べて、リムーブされましたorブロックされましたという文字列を発見したらその行は書き出さないってだけのスクリプト
  * 芸もなんもないが、元のCSVが高々1500行ぐらいだったのでこれで十分だろうと判断
行 52: 行 39:
noremap j gj
noremap k gk
noremap gj j
noremap gk k
=== DMの固有IDを消す ===
 * このCSVファイルにはDMにTwitter側が割り振った固有のIDも書き込まれている。
  * 正直いらないのでスクリプトでこれも消す。
 * 先のスクリプトのelse節を次のように付けかえる。
{{{#!highlight python
        dst = re.sub('^\"[0-9]+\",|^\"ID\",', '', line)
        output.write(dst)
}}}
 * 正規表現を使ってIDに関する部分を消している。IDは行の先頭部分に"数字"という形式で書かれているのでカンマもろともNULLで置換して消してしまう。
 * ついでに表の項目名に当たる部分も消してしまう。
行 57: 行 50:
inoremap <C-h> <Left>
inoremap <C-j> <Down>
inoremap <C-k> <Up>
inoremap <C-l> <Right>

inoremap <C-d> <Del>
noremap <CR> i<CR><ESC>

inoremap {} {}<LEFT>
inoremap [] []<LEFT>
inoremap () ()<LEFT>
inoremap "" ""<LEFT>
inoremap '' ''<LEFT>
inoremap <> <><LEFT>
inoremap []5 [% %]<LEFT><LEFT><LEFT>

nnoremap n nzz
nnoremap N Nzz
nnoremap * *zz
nnoremap # #zz
nnoremap g* g*zz
nnoremap g# g#zz

nnoremap <silent> <C-x>1 :only<CR>
nnoremap <silent> <C-x>2 :sp<CR>
nnoremap <silent> <C-x>3 :vsp<CR>

nnoremap <silent> bb :b#<CR>
nnoremap <silent> bp :bp<CR>
nnoremap <silent> bn :bn<CR>
nnoremap <silent> bd :bd<CR>
nnoremap ls :ls<CR>:b

noremap ; :
noremap : ;

set nobackup
set autoread
set noswapfile
set hidden
autocmd BufWritePre * :%s/\s\+$//ge
}}}
 * 以上の作業で送信者、受信者、本文、送信時刻という素直な形式のCSVになった。

TwitterのDMを整理したいと思った

はじめに

  • DM Mailerというサービスを使うと、本来なら一定数を超えると消えていくTwitterのDMを貯蔵しておくことができる。
    • 貯蔵して置けるのはいいんだけど、このサービスのサイトでDMを見ようとすると閲覧性があんま良くない。
    • 何とかしたいなあと思った。
  • DM Mailerは貯蔵してきたDMをcsvで出力できる。
    • このCSVを加工すればそれなりに見れるものになるのでは……?

リムーブ通知を消す

  • リムーブ通知サービスに登録しているため、DMの中にはリムーブ通知およびブロック通知がかなり多数含まれている。
    • これを手で消すのは面倒なので、Pythonでスクリプトを書くことにした。
    • こういうことはsed&awkのほうが得意なんだろうけどね……w

   1 #!/usr/bin/python
   2 # -*- coding: utf-8 -*-
   3 
   4 datafile='input.csv'
   5 outputfile='output.csv'
   6 
   7 input=open(datafile, 'r')
   8 output=open(outputfile, 'w')
   9 
  10 lines = input.readlines()
  11 input.close()
  12 
  13 for line in lines:
  14     if line.find("リムーブされました") != -1 or line.find("ブロックされました") != -1:
  15         continue
  16     else:
  17         output.write(line)
  18 output.close()
  • 一行ずつ調べて、リムーブされましたorブロックされましたという文字列を発見したらその行は書き出さないってだけのスクリプト
    • 芸もなんもないが、元のCSVが高々1500行ぐらいだったのでこれで十分だろうと判断

DMの固有IDを消す

  • このCSVファイルにはDMにTwitter側が割り振った固有のIDも書き込まれている。
    • 正直いらないのでスクリプトでこれも消す。
  • 先のスクリプトのelse節を次のように付けかえる。

   1         dst = re.sub('^\"[0-9]+\",|^\"ID\",', '', line)
   2         output.write(dst)
  • 正規表現を使ってIDに関する部分を消している。IDは行の先頭部分に"数字"という形式で書かれているのでカンマもろともNULLで置換して消してしまう。
  • ついでに表の項目名に当たる部分も消してしまう。
  • 以上の作業で送信者、受信者、本文、送信時刻という素直な形式のCSVになった。

alstamber/TwitterDMRearrange (最終更新日時 2013-05-20 18:20:17 更新者 alstamber)