Changeset 7888
- Timestamp:
- 03/13/08 16:52:30 (5 years ago)
- Files:
-
- 1 modified
-
lang/vim/hatena/plugin/hatena.vim (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
lang/vim/hatena/plugin/hatena.vim
r7654 r7888 385 385 let [base_url, user, cookie_file] = a:login_info 386 386 387 if base_url =~ 'g[.]hatena' 388 let fenc = 'utf-8' 389 else 390 let fenc = 'euc-jp' 391 endif 387 "if base_url =~ 'g[.]hatena' 388 " let fenc = 'utf-8' 389 "else 390 " let fenc = 'utf-8' 391 "endif 392 let fenc = 'utf-8' 393 394 let paste_save = &paste 392 395 393 396 if has_key(a:entry, 'body_file') … … 400 403 let body_file = tempname() 401 404 execute 'new ' . body_file 402 call append(0, a:entry.body) 405 set paste 406 normal! C=a:entry.body 403 407 let &fileencoding = fenc 404 408 write … … 408 412 let title_file = tempname() 409 413 execute 'new ' . title_file 414 set paste 410 415 normal! C=a:entry.title 411 416 let &fileencoding = fenc 412 417 write 418 bdelete 419 420 let &paste = paste_save 413 421 414 422 let post_url = base_url . user . '/' 415 423 if has_key(a:entry, 'date') && has_key(a:entry, 'timestamp') 416 let post_url += a:entry.date . '/' . a:entry.timestamp . '/' 417 endif 418 419 return system(printf('%s %s -b "%s" -F "rkm=%s" -F "title=<%s" -F "body=<%s" -D -', 424 let post_url .= a:entry.date . '/' . a:entry.timestamp 425 endif 426 427 let g:post_files = [title_file, body_file] 428 429 let json = system(printf('%s %s -b "%s" -F "rkm=%s" -F "title=<%s" -F "body=<%s" -D -', 420 430 \ s:curl_cmd, 421 431 \ post_url, … … 425 435 \ body_file 426 436 \ )) 437 438 let m = matchlist(json, '\v''path'':''/[^/]+/([^/]{-})/([^/]{-})''') 439 return { 'date': m[1], 'timestamp': m[2] } 440 endfunction 441 442 " はてなダイアリー/グループに新しいエントリを投稿する 443 " login_info: HatenaLogin() で得られるもの 444 " rkm: HatenaGetRKM() などで得られるもの 445 " entry: エントリの情報、以下のキーを持つ 446 " * date 447 " * timestamp 448 function! HatenaGetEntry(login_info, rkm, entry) 449 let [base_url, user, cookie_file] = a:login_info 450 451 if base_url =~ 'g[.]hatena' 452 let fenc = 'utf-8' 453 else 454 let fenc = 'euc-jp' 455 endif 456 457 let get_url = base_url . user . '/' . a:entry.date . '/' . a:entry.timestamp . '?mode=json' 458 let json = system(printf('%s %s -b "%s"', 459 \ s:curl_cmd, 460 \ get_url, 461 \ cookie_file, 462 \ )) 463 464 let json = iconv(json, fenc, &encoding) 465 466 let m = matchlist(json, '\v.*''body'':''(.{-})''&.*''title'':''(.{-})''') 467 468 if len(m) 469 let [body, title] = m[1:2] 470 let body = substitute(body, '\\n', "\n", 'g') 471 return { 'date': a:entry.date, 'timestamp': a:entry.timestamp, 'body': body, 'title': title } 472 else 473 return { } 474 endif 427 475 endfunction 428 476
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)