Last active
December 13, 2015 17:58
-
-
Save takuan-osho/4951347 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
# -*- coding: utf-8 -*- | |
import sys | |
import time | |
from datetime import datetime | |
import argparse | |
import pynico | |
_nicovideo_table_template = '''\ | |
<table> | |
<tdody> | |
<tr> | |
<td>動画ID</td> | |
<td>タイトル</td> | |
<td>投稿日</td> | |
<td>現在の状態</td> | |
<td>備考</td> | |
</tr> | |
%(files)s | |
</tdody> | |
</table> | |
''' | |
_file_table_template = '''\ | |
<tr> | |
<td>%(video_id)s</td> | |
<td>%(title)s</td> | |
<td>%(date)s</td> | |
<td style="vertical-align: middle;">%(status)s</td> | |
<td>%(note)s</td> | |
</tr> | |
''' | |
def build_parser(): | |
parser = argparse.ArgumentParser() | |
parser.add_argument('range', type=int, nargs=2, | |
help='video id range') | |
return parser | |
def main(): | |
parser = build_parser() | |
args = parser.parse_args() | |
if len(sys.argv[1:]) == 0: | |
parser.print_help() | |
sys.exit(0) | |
start = args.range[0] | |
end = args.range[-1] + 1 | |
files = [] | |
for i in range(start, end): | |
if i % 2 == 0: | |
time.sleep(1) | |
param = {} | |
video_id = 'sm%d' % i | |
info = pynico.get_video_info(video_id) | |
param['video_id'] = '<a target="_blank" href="http://www.nicovideo.jp/watch/%s">%s</a>' % (video_id, video_id) | |
param['note'] = '' | |
param['title'] = info.get('title', '').encode('utf-8') | |
if info.get('error'): | |
param['date'] = '' | |
if info.get('code') == u'DELETED': | |
param['status'] = '削除' | |
elif info.get('code') == u'NOT_FOUND': | |
param['status'] = '見つからない' | |
param['note'] = '動画エラー' | |
else: | |
param['status'] = '<a rel="nofollow" target="_blank" href="http://www.nicovideo.jp/watch/%s"><img width="50" src="%s" height="38" style="vertical-align: middle;" /></a>' % (video_id, info['thumbnail_url'].encode('utf-8')) | |
date = datetime.strptime(info['first_retrieve'].split('+')[0], | |
'%Y-%m-%dT%H:%M:%S') | |
param['date'] = date.strftime('%Y年%m月%d日%H:%M:%S') | |
files.append(_file_table_template % param) | |
tables = _nicovideo_table_template % {'files': ''.join(files)} | |
print tables | |
with open('sm' + str(start) + '-' + str(end - 1) + '.html', 'w') as f: | |
f.write(tables) | |
if __name__ == '__main__': | |
main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment