6013
コメント:
|
← 2013-05-20 18:20:17時点のリビジョン8 ⇥
2576
|
削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 |
行 1: | 行 1: |
## page was renamed from alstamber/monooki | |
行 2: | 行 3: |
== .vimrc == だいぶ前に書いたまま使ってるやつ。あまり参考にはならない系。 {{{#!highlight vim |
|
行 6: | 行 4: |
" display | == TwitterのDMを整理したいと思った == === はじめに === * DM Mailerというサービスを使うと、本来なら一定数を超えると消えていくTwitterのDMを貯蔵しておくことができる。 * 貯蔵して置けるのはいいんだけど、このサービスのサイトでDMを見ようとすると閲覧性があんま良くない。 * 何とかしたいなあと思った。 * DM Mailerは貯蔵してきたDMをcsvで出力できる。 * このCSVを加工すればそれなりに見れるものになるのでは……? |
行 8: | 行 12: |
syntax on | === リムーブ通知を消す === * リムーブ通知サービスに登録しているため、DMの中にはリムーブ通知およびブロック通知がかなり多数含まれている。 * これを手で消すのは面倒なので、Pythonでスクリプトを書くことにした。 * こういうことはsed&awkのほうが得意なんだろうけどね……w |
行 10: | 行 17: |
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 -*- |
行 23: | 行 21: |
" search set ignorecase set smartcase set wrapscan set hlsearch set incsearch |
datafile='input.csv' outputfile='output.csv' |
行 30: | 行 24: |
" 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') |
行 39: | 行 27: |
" tab set tabstop=4 set expandtab set smarttab set shiftwidth=4 set shiftround set nowrap set smartindent |
lines = input.readlines() input.close() |
行 48: | 行 30: |
" 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行ぐらいだったのでこれで十分だろうと判断 |
行 54: | 行 40: |
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で置換して消してしまう。 * ついでに表の項目名に当たる部分も消してしまう。 |
行 59: | 行 51: |
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 ; : "for US-Key noremap : ; set nobackup set autoread set noswapfile set hidden autocmd BufWritePre * :%s/\s\+$//ge }}} == .zshrc == {{{#!highlight tcsh # alstamber's .zshrc file # Ryutaro Yamamoto <alstamber@gmail.com> # http://wiki.mma.club.uec.ac.jp/alstamber/ autoload colors colors autoload -U compinit compinit WORDCHARS='*?_-.[~=&;!#$%^({<>})]' umask 022 #履歴による予測 autoload -U predict-on #git-compを動作させるための記述 autoload -Uz VCS_INFO_get_data_git; VCS_INFO_get_data_git 2> /dev/null #文字コード,Editor export LANG=ja_JP.UTF-8 export EDITOR=vim setopt prompt_subst #プロンプト変数を展開 setopt no_beep #音を鳴らさない setopt no_list_beep bindkey -e #emacsキーバインド HISTFILE=~/.zsh_history SAVEHIST=100000 HISTSIZE=100000 #gitのbranchの状況を表示する関数 function rprompt-git-current-branch() { local name st color gitdir action if [[ "$PWD" =~ '/\.git(/.*)?$' ]]; then return fi name=`git branch 2> /dev/null | grep '^\*' | cut -b 3- ` if [[ -z $name ]]; then return fi gitdir=`git rev-parse --git-dir 2> /dev/null` action=`VCS_INFO_git_getaction "$gitdir"` && action="($action)" st=`git status 2> /dev/null` if [[ -n `echo "$st" | grep "^nothing to"` ]]; then color=%F{green} elif [[ -n `echo "$st" | grep "^nothing added"` ]]; then color=%F{yellow} elif [[ -n `echo "$st" | grep "^# Untracked"` ]]; then color=%B%F{red} else color=%F{red} fi echo "$color$name$action%f%b " } #プロンプト PROMPT="%B%F{cyan}%n@%M%f%b %# " RPROMPT='$(rprompt-git-current-branch)[%F{yellow}%~%f%b]' SPROMPT="%F{red}Correct %f> '%r' [%BY%bes %BN%bo %BA%bbort %BE%bdit] ? " setopt hist_ignore_dups #同じコマンドは履歴に入れない setopt share_history #履歴の共有 setopt hist_ignore_space #スペースだけのコマンドは履歴に入れない setopt notify #ジョブの状態を直ちに知らせる setopt print_eight_bit # 8ビット目を通す setopt auto_menu #tabで補完を切り替える setopt auto_list #候補が複数あるときその候補を自動で出す setopt correct #コマンドのスペルチェック setopt list_packed #補完候補を詰めて表示 setopt complete_aliases #aliasesを展開する setopt auto_param_keys #括弧の対応などを補完 setopt magic_equal_subst #equal以降でも補完できるようにする setopt auto_cd #cdを使わなくてもいいようにする setopt auto_pushd #ディレクトリ移動履歴を自動的にスタックにプッシュ setopt pushd_ignore_dups #重複するディレクトリはプッシュしない setopt append_history #履歴は上書きではなくて追加 setopt auto_param_slash #ディレクトリならスラッシュを補う setopt correct_all #ファイル名もスペルチェック setopt extended_glob #正規表現を拡張 setopt glob_dots # .で始まるファイル名にマッチさせる時明示的に.を書かなくても良い setopt hist_expire_dups_first #履歴に追加するとき、古いものと同じなら古いものを削除する setopt hist_reduce_blanks #履歴には余分な空白を記録しない setopt hist_no_store # historyコマンドは履歴に入れない setopt list_types # 補完するときファイルの種別を表示 setopt numeric_glob_sort # 数字を数値と解釈してソート setopt mark_dirs # ファイル名の展開でディレクトリにマッチした時スラッシュをつける setopt no_flow_control # disable C-q, C-s setopt always_last_prompt #無駄なスクロールをしない setopt auto_remove_slash #無駄な末尾のスラッシュは削除 alias vi="vim" alias ls="ls -G -w" alias ll="ls -alF" alias gd='dirs -v; echo -n "select number: "; read newdir;cd `eval echo ~+${newdir}`' zstyle ':completion:*:default' menu select true #補完候補を矢印で移動できるようにする zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS} zstyle ':completion:*' use-cache true zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}' #補完するとき大文字小文字を区別しない limit coredumpsize 102400 #コアダンプサイズを制限 }}} |
* 以上の作業で送信者、受信者、本文、送信時刻という素直な形式の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節を次のように付けかえる。
- 正規表現を使ってIDに関する部分を消している。IDは行の先頭部分に"数字"という形式で書かれているのでカンマもろともNULLで置換して消してしまう。
- ついでに表の項目名に当たる部分も消してしまう。
- 以上の作業で送信者、受信者、本文、送信時刻という素直な形式のCSVになった。