{"id":20751011,"url":"https://github.com/vaaaaanquish/twitter_manager","last_synced_at":"2025-04-28T12:55:27.289Z","repository":{"id":43705346,"uuid":"187345051","full_name":"vaaaaanquish/twitter_manager","owner":"vaaaaanquish","description":"my twitter management app","archived":false,"fork":false,"pushed_at":"2022-02-22T19:13:35.000Z","size":574,"stargazers_count":25,"open_issues_count":1,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-04-14T07:20:49.211Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vaaaaanquish.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-05-18T10:35:50.000Z","updated_at":"2023-04-02T01:34:01.000Z","dependencies_parsed_at":"2022-08-23T00:40:27.934Z","dependency_job_id":null,"html_url":"https://github.com/vaaaaanquish/twitter_manager","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vaaaaanquish%2Ftwitter_manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vaaaaanquish%2Ftwitter_manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vaaaaanquish%2Ftwitter_manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vaaaaanquish%2Ftwitter_manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vaaaaanquish","download_url":"https://codeload.github.com/vaaaaanquish/twitter_manager/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225017358,"owners_count":17407755,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-17T08:29:41.261Z","updated_at":"2024-11-17T08:29:41.740Z","avatar_url":"https://github.com/vaaaaanquish.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# README\n\nフォロワーを管理したりデータ見たりするやつ\n\n# なんかできること\n- APIを利用したデータの取得\n- jsonからpandas.DataFrameへの変換\n- Flaskによるフォロワー管理App\n\n# いるやつ\n\n- pyhton 3.x\n- Twitter API key\n- Twitter Consumer Key\n\npython 3.x環境に各パッケージをインストール\n```\npip install -r requirements.txt\n```\n[Twitter Developer](https://developer.twitter.com/)よりTwitter API Key、Consumer Keyを取得  \nアクセストークン情報と自身のTwitterIDを環境変数に\n```\nexport ACCESS_TOKEN=100000-piyopiyo\nexport ACCESS_TOKEN_SECRET=hogehoge\nexport CONSUMER_KEY=fugafuga\nexport CONSUMER_SECRET=hogerahogera\nexport TWITTER_ACCOUNT=vaaaaanquish\n```\n\n# うごかす\ndata_managerでAPIを利用しjsonを手元に落として、pandas化  \nゼロから10000アカウントでAPI規制で止まり止まり動作して半日くらい\n```\npython data_manager.py --follower_update --list_update --list_user_update --df_update --user_json_update=1\n```\n\nExcel等の他のアプリで読みたい場合はCSVファイルを出力\n```\npython data_manager.py --output_csv\n```\n\nFlask Appを立ててフォロワー管理\n```\npython app.py\n```\n\nリモートマシンやDockerコンテナ内で動かす時には、ホストIPアドレスを `0.0.0.0` にしておけばアクセスできる\n（デフォルトの`127.0.0.1`だと外部のクライアントからアクセスできない）\n```\npython app.py --host 0.0.0.0 \n```\n\n# data manager args\n|args|description|\n|---|---|\n|--follower_update|フォロー,フォロワー情報をアップデート|\n|--user_json_update|0: userデータのアップデートはしない(default)|\n|　|1: userデータをゼロベースで取得|\n|　|2: 未取得の差分userのみ取得|\n|--df_update|全userデータをロードし直してdf作り直す|\n|--list_update|自分が作っているリスト情報を更新|\n|--list_user_update|各リスト内のユーザ情報を更新|\n\n　  \n新しいフォロワーだけ更新したい時はこんな感じ\n```\npython data_manager.py --follower_update --list_user_update --df_update --user_json_update=2\n```\n\n# form\n|label|default|description|\n|---|---|---|\n|query|followed|pandas.query|\n|from|yy-mm-dd|from:アカウント作成日|\n|to|yy-mm-dd|to:アカウント作成日|\n|fromtw|yy-mm-dd|from:最新ツイートの日|\n|totw|yy-mm-dd|to:最新ツイート日|\n|sort|follower_number|ソートに利用するColumn名|\n|ascend|True|ソート逆順か|\n|sample|100|表示数|\n|submit|　|form条件でtable表示|\n|gen url|　|form情報をURLパラメータとして表示|\n|reset|　|formリセット|\n\n# default column\n\n|column|discription|type|sample|\n|----|----|----|----|\n|contributors_enabled|tweet_deckで共有アカウント設定してるかどうか|bool|False|\n|created_at|アカウント作成日|datetime|Fri Jun 07 03:09:31 +0000 2013|\n|default_profile|デフォルトのプロフィールのままか|bool|True|\n|default_profile_image|デフォルトの画像のままか|bool|False|\n|description|bioに書いてある説明文|str|冷やし中華始めました|\n|description_expanded_url_0|description内のURL展開結果|str|http~|\n|description_expanded_url_1|description内のURL展開結果|str|http~|\n|description_expanded_url_2|description内のURL展開結果|str|http~|\n|description_expanded_url_3|description内のURL展開結果|str|http~|\n|description_expanded_url_num|description内のURL数|int|3|\n|expanded_url_0|bio内のURL展開結果|str|http~|\n|expanded_url_num|bio内のURL数|int|1|\n|favourites_count|お気に入りの数|int|28878|\n|follow_request_sent|フォローのリクエストを投げているか|bool|False|\n|followers_count|フォロワー数|int|683|\n|following|フォローしているか|bool|True|\n|followed|フォローされているか|bool|True|\n|friends_count|フォロー数|int|703|\n|get_date|データの取得日(API叩いた時間)|datetime|Mon Feb 03 04:34:50 +0000 2019|\n|id_str|ユニークID|str|231~|\n|lang|言語設定|str|ja|\n|listed_count|オープンなリストに入ってる数|int|14|\n|location|位置情報|str|日本 東京|\n|name|twitterアカウントの名前|str|ばんくし|\n|profile_banner_url|ヘッダーの画像|str|https://pbs.twimg.com~|\n|profile_image_url|プロフィールの画像|str|http://pbs.twimg.com~|\n|protected|鍵垢かどうかのbool|bool|False|\n|screen_name|twitterアカウントのSN|str|vaaaaanquish|\n|statuses_count|ツイートの数|int|53045|\n|time_zone|タイムゾーン|str|None or tokyo|\n|toptweet_created_at|topのツイートの投稿日|datetime|Mon Feb 03 04:34:50 +0000 2014|\n|toptweet_id|topのツイートのID|str|123~|\n|toptweet_lang|topのツイートの言語|str|ja|\n|toptweet_retweet_flag|topのツイートがリツイートかどうかのフラグ|bool|False|\n|toptweet_source|topのツイートの投稿アプリ|str|TweetDeck|\n|toptweet_text|topのツイートのテキスト|str|冷やし中華がうまい|\n|url|bioに書いてあるURL|str|http~|\n|verified|認証アカウントかのbool|bool|False|\n|description_length|bioの長さ|int|30|\n|diff_created_at|アカウント作成日から取得日までの日数|int|2000|\n|diff_toptweet_created_at|最新ツイートから取得日までの日数|int|2000|\n|sn_length|SNの長さ|int|12|\n|joined_list|入っているリスト|list|[hoge, piyo]|\n|follower_number|フォロワーになった順にならべた時のid|int|20|\n|followee_number|フォローした順にならべた時のid|int|20|\n\n　  \nColumnを追加する場合は `data_manager._add_data` 辺りをよしなに編集\n```\npython data_manager.py --df_update\n```\n\n# file tree\n - app.py: flaskでフォロワー管理アプリ建てるやつ\n - data_manager.py: フォロワー情報のダウンロード、書き込み、読み込み\n - utils.py: flaskに渡すテーブルとか作ったりするやつ\n - static\n     - followee.jpg: フォローされてたら出るやつ\n     - key.jpg: 鍵垢だったら出るやつ\n     - verified.jpg: 認証アカウントだったら出るやつ\n     - get.js: なんかget周りをAjaxしてくれる色々\n     - post.js: 同上\n     - style.css: 全体的ないろいろ\n     - fbutton.css: なんかフォローボタンのやつ\n - templetes\n     - layout.html: ベースのやつ\n     - index.html: Formとかtable読み込んだりとか\n     - table.html: フォロワーテーブルのとこ\n - ipynb: ちょっと分析してみるだけのjupyter notebook\n - README.md: お前が読んでるこれ\n - requirements.txt: pip\n \n \n# 将来的になんかできたらいいかも\n - バックエンドにSQLかもうちょっと簡易な何か\n - JSライブラリ何か使う\n - 統計情報も見れるようにする\n\n# ヒント\n[@vaaaaanquish](https://vaaaaanquish.jp/)に聞いたら多分わかる\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvaaaaanquish%2Ftwitter_manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvaaaaanquish%2Ftwitter_manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvaaaaanquish%2Ftwitter_manager/lists"}