メモ書き:tweet.js

そんな気分になったので書いてます。
必要に応じて書き足します。

そもそも

そもそもjsonとして読み込むには序盤のいらない部分を切り落とすとかなんかしらの処理をしないといけない

import re
import datetime
import json
tw_open = open("tweets.js","r",encoding="utf-8")
twr = tw_open.read()
twr = re.sub("window.YTD.tweet.part0 = ","",twr)
twrj=json.loads(twr)

構造

これブログだと表記できない?

'tweet'
	'retweeted',
	 'source', 
	 'entities',
		'hashtags',
			※該当があれば
			'text'
			'indices'
		 'symbols',
		 'media',※該当があれば
			"expanded_url"
			"source_status_id"
			'indices'
			'url'
			'media_url'
			'id_str'
			'source_user_id'
			'id'
			'media_url_https'
			'source_usre_id_str'
			'sizes'
				'thumb'
					'w'
					'h'
					'resize'
				'large'
					'w'
					'h'
					'resize'
				'small'
					'w'
					'h'
					'resize'
				'mediun'
					'w'
					'h'
					'resize'
				'type'
				'source_status_id_str'
				'display_url'
		 'user_mentions',
		 'urls'
	 'display_text_range',
	 'favorite_count',
	 'id_str',
	 'truncated',
	 'retweet_count',
	 'id',
	 'created_at',
	 'favorited',
	 'full_text',
	 'lang'
	 'extended_entities'
		'media'
			'expanded_url'
			'source_status_id'
			ほか

要素詳細

source

何を使ってツイートしたか。例: "Twitter for iPhone"

user_mentions

リプライ先。リストみたいな形式。配列っていうべき?知らないや。
なお、リツイートした場合、ここに元ツイート主のIDが入っている。詳細はfull_textにて。

created_at

おそらくツイートされたタイミング。
RTの場合はRTをしたタイミング。

tw=eval(str(twrj[n]["tweet"]))
datetime.datetime.strptime(str(tw["created_at"]),"%a %b %d %H:%M:%S %z %Y").replace(tzinfo=None)

とかで引っ張り出せば使いやすいかも。知らんけど。

truncated

基本的にfalseなので気にしなくていいって聞いた。字数制限を突破してツイートされたときに発生するらしい。するんか?

full_text

ツイートのテキストが入っている。
なお、リツイートした場合は、
「"full_text" : "RT @colopl_quiz: ガトリンの公約を発表します(/・ω・)/\nガトリンが1位になったら、人類総ナース!ということで6人全員がナースになります!\n詳細はコチラ:https://t.co/nLZeat3PKx\n#黒ウィズ #アイドルキャッツ https://t.co/…",」
的な感じで、最初に「RT @[オリジナルツイートのアカウント(screen_name)]: 」がつく。
リプライの場合は、@[リプライ先ののアカウント(screen_name)] 」がつくと思われる