Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Извличане на tweet-ове #27

Open
antitoxic opened this issue Dec 10, 2013 · 14 comments
Open

Извличане на tweet-ове #27

antitoxic opened this issue Dec 10, 2013 · 14 comments
Labels

Comments

@antitoxic
Copy link
Member

В страницата за профил на човек от властта (народен представител, министър, тн) има сексция за tweet-ове.

Също така показваме tweet-ове на началната страница, най-отгоре, в карето "Feed", което съдържа най-скорошните действия в парламента и по сайта, било то приемане на закон, tweet или блог post.

Поддържане на актуален списък с tweet-ове

За всеки човек от властта първоначално ще вземем последните 10 tweet-а. След това всеки 5-10 минути ще проверяваме дали има по-нови tweet-ове от последния tweet на даден потребител.

Как може да стане това

Примерна заявка която взима tweet-ове от моя twitter, които са направени след tweet със id=XXXX

https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=antitoxic&since_id=XXXX

Но за тази заявка трябва да имаме API key / token / логин - както искайте го наричайте, трябва twitter да ни знае кои сме, за да ни ограничава броя заявки.

Няколко линка за инфо:

Ако нещо не работи ето и детайли около API key: https://dev.twitter.com/docs/auth/application-only-auth

@tsikov tsikov added the scraper label Apr 11, 2014
@simov
Copy link

simov commented Sep 17, 2014

👋

Мога да напиша background worker с nodejs, който да пълни в база данни tweets, използвайки API-то twitter. Кеширането в база е необходимо тъй като REST API-тата имат лимит.

  1. Тоест worker-a синхронизира базата през определен интервал.
  2. Потребителският интерфейс (в случаят сайта който е писан на ruby) чете от локалния кеш и визуализира информацията.

За целта ми е необходим единствено списък с twitter screen_names/id (или каквото имате) на депутатите (не съм проверявал какво има в базата в момента, до колкото си спомням някъде имаше dump). Ще използвам мой тестов twitter application докато разработвам, след това ще добавите production credential-ите на вашият app.

Та в общи линии въпросите ми са:

  1. Има ли интерес към този feature
  2. Имате ли списък с twitter ids/names на депутатите
  3. Правилно ли разбирам задачата 😀

@tsikov
Copy link
Member

tsikov commented Sep 17, 2014

Здравей, @simov!

Много ти благодаря за включването. 👍 Всякакъв код е добре дошъл, още повече, че проекта е супер модулярен и позволява много хора да работят по него без да си пречат. Единственото ми притеснение е, че от около 3 месеца не съм работил по него и дори да се напълни базата с туитове, не зная кога ще мога да отделя време да направя визуализация. Много силно се надявам да е скоро!

А иначе аз мога да се ангажирам да набера списък с туитър акаунти :)

Ти как си с rails и bootstrap? Имаш ли възможност да направиш някаква визуализация?

Конкретно по въпросите:

  1. да
  2. не, но може да направим
  3. да :)

@simov
Copy link

simov commented Sep 17, 2014

С ruby не съм работил и не мисля, че ще успея да изкарам нещо качествено без да инвестирам много време.

На този етап избирам задачи, които са ми интересни/лесни.

Честно казано нямам представа до колко нашите политици са активни в социалните мрежи. От тази гледна точка е под въпрос колко е приоритетен е този feature (нямам идея дали github вече поддържат задаване/сортиране по приоритет на issues)

Така че за мен би било лесно да напиша горе описаният worker, ако имам списък от потребители, срещу които да го пусна, и съответно да пълня данните в някоя база.

Ако можеш да ме насочиш от къде мога да взема/scrapе-на списъка с twitter потребители ще бъде чудесно.
Ако този feature е с нисък приоритет, пак няма проблем, ще си избера друго issue.

🍻

@simov
Copy link

simov commented Sep 18, 2014

Сетих се още нещо за визуализацията:

{ created_at: 'Tue Jun 11 19:45:24 +0000 2013',
    id: 344540892713062400,
    id_str: '344540892713062402',
    text: '@_simov yep',
    source: '<a href="http://twitter.com" rel="nofollow">Twitter Web Client</a>',
    truncated: false,
    in_reply_to_status_id: 344535996525838340,
    in_reply_to_status_id_str: '344535996525838336',
    in_reply_to_user_id: 321218143,
    in_reply_to_user_id_str: '321218143',
    in_reply_to_screen_name: '_simov',
    user: 
     { id: 1504092505,
       id_str: '1504092505',
       name: 'simo 2',
       screen_name: 'mightymob',
       location: '',
       description: '',
       url: null,
       entities: [Object],
       protected: false,
       followers_count: 1,
       friends_count: 9,
       listed_count: 0,
       created_at: 'Tue Jun 11 15:04:40 +0000 2013',
       favourites_count: 4,
       utc_offset: null,
       time_zone: null,
       geo_enabled: false,
       verified: false,
       statuses_count: 153,
       lang: 'en',
       contributors_enabled: false,
       is_translator: false,
       is_translation_enabled: false,
       profile_background_color: 'C0DEED',
       profile_background_image_url: 'http://abs.twimg.com/images/themes/theme1/bg.png',
       profile_background_image_url_https: 'https://abs.twimg.com/images/themes/theme1/bg.png',
       profile_background_tile: false,
       profile_image_url: 'http://abs.twimg.com/sticky/default_profile_images/default_profile_6_normal.png',
       profile_image_url_https: 'https://abs.twimg.com/sticky/default_profile_images/default_profile_6_normal.png',
       profile_link_color: '0084B4',
       profile_sidebar_border_color: 'C0DEED',
       profile_sidebar_fill_color: 'DDEEF6',
       profile_text_color: '333333',
       profile_use_background_image: true,
       default_profile: true,
       default_profile_image: true,
       following: false,
       follow_request_sent: false,
       notifications: false },
    geo: null,
    coordinates: null,
    place: null,
    contributors: null,
    retweet_count: 0,
    favorite_count: 0,
    entities: { hashtags: [], symbols: [], urls: [], user_mentions: [Object] },
    favorited: false,
    retweeted: false,
    lang: 'und' }

Това е tweet обекта, избираме си какво искаме да запаметим/визуализираме за него. Могат да се добавят и линкове за retweet-ване, favorite-ване.

Тоест това което се явява релация го няма като например самите retweets, съответно техният автор, както и авторът на favorite, но предполагам че няма да задълбаваме чак толкова 😀

Визуализацията е: аватар с display name с линк към screen name техт, брой favorite, retweet и дата (евентуално нещо друго, което се съдържа в обекта).

Може и да се наложи да бъде написан малко html/css - widget, bootstrap не е чак толкова гъвкав. Самият сайт може да прочита последните десет tweet-a и да ги визуализира при зареждане на страницата (няма нужда да е realtime)

@tsikov
Copy link
Member

tsikov commented Sep 18, 2014

По първия коментар: може би най-необходимото в момента е да изтеглим и запишем в БД всички проектозакони, заедно с всякакви метаданни за тях (кога са приети, история на статуса им (внесени, приети на първо четене, и тн.), кои са вносителите и изобщо всичко, което можем).

Въпреки това не съм сигурен, че трябва да се концентрираме върху това сега, защото се сменя политическия цикъл, което означава, че със сигурност ще бъде приет нов „Правилник за устройството и дейността на НС“, където е много да има нови регламенти за публикуване на информация на уеб страницата на НС, което вероятно ще счупи доста (или всички) скриптове. Т.е. може би е по-добре действително да се захванем с twitter и други сайтове. Така че кодът е добре дошъл.

Относно втория коментар: Твоята идея е да сложим twitter feed на депутатите на техния профил? Или може би на заглавната страница? :) На мен ми харесва първият вариант, но мнооого малко депутати използват twitter и не зная колко ще е целесъобразно. Вторият вариянт има по-голямо приложение, но от друга страна не съм сигурен, че ние искаме това там - депутатите често използват twitter за дезинформация - те говорят за нещата, за които не искат хората да говорят. Ние искаме на първата страница да покажем по-релевантна информация. Струва си да се помисли къде може да сложим този feed. :)

Ти как мислиш? :)

@simov
Copy link

simov commented Sep 18, 2014

Така както е написано заданието, аз го разбирам feed на страницата с профил на депутат.

Това че не не използват социалните мрежи е проблем 😀

За така наречената дезинформация - в чужбина това е регулирано, всяка личност с влияние, която притежава публичен профил, първо изпраща съобщението по вътрешна система до определени хора (не помня точно наименованието), коита са наети да преценят дали съобщението е уместно и дали не влияе на пазарите примерно. С други думи, напълно искрено съобщение без задни помисли, може да те вкара в голям проблем 😀 (нещо като със съобщенията за нашите банки, но наистина)

По тази причина в личните акаунти е упоменато, че мнението изразено там е лично и не представлява организацията на която примерно си шеф, но така или иначе пак се проверяват тези неща.

Голямо отклонение, аз предлагам първо да съберем всички twitter акаунти, и след това да проверим някой въобще използва ли ги. Мъртъв feed е по-лошо от no feed.

@tsikov
Copy link
Member

tsikov commented Sep 18, 2014

Призовавам @yurukov. Накратко: разполагаш ли със списък с twitter акаунти на депутати и ако не - знаеш ли как най-лесно да съберем такъв? Питам, те защото зная, че ти си правил govalerts. :) Благодаря.

@yurukov
Copy link

yurukov commented Sep 18, 2014

За евродепутатите има списъ при @ep_Bulgaria. Иначе на българските нямам.
Не мисля, че са повече от 5-10 така или иначе.

Боян
On Sep 18, 2014 6:50 PM, "Petko Tsikov" [email protected] wrote:

Призовавам @yurukov https://github.com/yurukov. Накратко: разполагаш ли
със списък с twitter акаунти на депутати и ако не - знаеш ли как най-лесно
да съберем такъв? Питам, те защото зная, че ти си правил govalerts. :)
Благодаря.


Reply to this email directly or view it on GitHub
#27 (comment)
.

@simov
Copy link

simov commented Sep 18, 2014

Тоест разполагаме с един акаунт този на @ep_Bulgaria. Ако е така би трябвало twitter да предлагат готов widget за вграждане в сайт.

@yurukov
Copy link

yurukov commented Sep 18, 2014

Тоя е на пресцентъра на EP. Пускат общи новини. Може да им пишете да ви
пратят списъка акаунти на евродепутати.

Боян
On Sep 18, 2014 7:23 PM, "simo" [email protected] wrote:

Тоест разполагаме с един акаунт този на @ep_Bulgaria. Ако е така би
трябвало twitter да предлагат готов widget за вграждане в сайт.


Reply to this email directly or view it on GitHub
#27 (comment)
.

@simov
Copy link

simov commented Sep 18, 2014

Тук http://openparliament.net/eudeputies/ има 5 twitter акаунта на български евро депутати.

@tsikov
Copy link
Member

tsikov commented Sep 18, 2014

Само дето този сайт е за активността на народните представители, а не за евродепутатите :) Така че тези не ни трябват. =)

@simov
Copy link

simov commented Sep 18, 2014

Да това е очевидно 😀 прехвърлих и профилите на депутати от народното събрание - за социални мрежи не са чували 😀 Така че незнам как тази задача може да бъде изпълнена, очевидно технитеческата част не е проблема.

@antitoxic
Copy link
Member Author

@simov @tsikov @yurukov Идеята е да позлваме API и да пазим при нас инфото. Не само за twitter - issue-то трябва да се преименува на Social media updates.

И вече в Следи Парламента да ги показваме под каквато форма искаме.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants