Skip to content

Instantly share code, notes, and snippets.

@takuan-osho
Last active December 13, 2015 17:58
Show Gist options
  • Save takuan-osho/4951347 to your computer and use it in GitHub Desktop.
Save takuan-osho/4951347 to your computer and use it in GitHub Desktop.
#!/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