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

MMA
5と6のリビジョン間の差分
2011-11-06 00:03:53時点のリビジョン5
サイズ: 6013
編集者: alstamber
コメント:
2012-04-15 22:50:21時点のリビジョン6
サイズ: 1746
編集者: alstamber
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 2: 行 2:
== .vimrc ==
だいぶ前に書いたまま使ってるやつ。あまり参考にはならない系。
{{{#!highlight vim
行 6: 行 3:
" display == TwitterのDMを整理したいと思った ==
=== はじめに ===
 * DM Mailerというサービスを使うと、本来なら一定数を超えると消えていくTwitterのDMを貯蔵しておくことができる。
  * 貯蔵して置けるのはいいんだけど、このサービスのサイトでDMを見ようとすると閲覧性があんま良くない。
  * 何とかしたいなあと思った。
 * DM Mailerは貯蔵してきたDMをcsvで出力できる。
  * このCSVを加工すればそれなりに見れるものになるのでは……?
行 8: 行 11:
syntax on === リムーブ通知を消す ===
 * リムーブ通知サービスに登録しているため、DMの中にはリムーブ通知およびブロック通知がかなり多数含まれている。
  * これを手で消すのは面倒なので、Pythonでスクリプトを書くことにした。
  * こういうことはsed&awkのほうが得意なんだろうけどね……w
行 10: 行 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 -*-
行 23: 行 20:
" search
set ignorecase
set smartcase
set wrapscan
set hlsearch
set incsearch
datafile='input.csv'
outputfile='output.csv'
行 30: 行 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')
行 39: 行 26:
" tab
set tabstop=4
set expandtab
set smarttab
set shiftwidth=4
set shiftround
set nowrap
set smartindent
lines = input.readlines()
input.close()
行 48: 行 29:
" keymap
set bioskey
set timeout
set timeoutlen=500
let mapleader=','

noremap j gj
noremap k gk
noremap gj j
noremap gk k

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
for line in lines:
    if line.find("リムーブされました") != -1 or line.find("ブロックされました") != -1:
        continue
    else:
        output.write(line)
output.close()
行 101: 行 36:

== .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 #コアダンプサイズを制限
}}}
 * 一行ずつ調べて、リムーブされましたorブロックされましたという文字列を発見したらその行は書き出さないってだけのスクリプト
  * 芸もなんもないが、元のCSVが高々1500行ぐらいだったのでこれで十分だろうと判断

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行ぐらいだったのでこれで十分だろうと判断

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