Bardzo lubię Twittera, który w Polsce jest trochę niedowartościowany. Według mnie to najszybsze źródło informacji, a przy okazji – przyjemne i wygodne w zdobywaniu danych do przeróżnych analiz.
Najnowsze dane do jakich dotarłem (nie szukałem długo – jakieś 2 minuty) mówią o tym, że w Polsce z FB korzysta jakieś pięć razy więcej użytkowników niż z Twittera. Niby mało, ale jak zobaczymy jest to wystarczająco.
Analizowaliśmy już w oparciu o dane z Twittera wyniki Oscarów oraz aktywność podczas meczu piłki nożnej. Nie ma jednak prostego sposobu (nie znam, może raczej tak), aby w krótkim czasie dotrzeć to tego co aktualnie dzieje się na Twitterze. Przygotujemy sobie więc odpowiednie narzędzie.
Idea
Twitter w swojej dobroci udostępnia coś co nazywa się trendami. To najpopularniejsze hashtagi i słowa w danym momencie. Algorytm wybierający co jest w trendach nie jest powszechnie znany, trochę o tym pisze sam Twitter, trochę można znaleźć na Quorze, o mechanizmie dobrze opowiada wideo:
W skrócie i uproszczeniu – dla danej lokalizacji (bo trendy są podzielone na lokalizacje) trzeba zbadać jakie słowa (z tego co widać po trendach to też pary słów – bi-gramy) i hashtagi pojawiają się najczęściej w jakimś zadanym czasie. To co jest najpopularniejsze trafia do trendów. Tym nie będziemy się zajmować, skorzystamy z tego dobrodziejstwa wierząc, że Twitter wybiera dobrze.
Idea całej maszynerii jest następująca:
- pobieramy cyklicznie trendy
- dla kilku ostatnich godzin określamy, które trendy mają znaczenie
- dla tych trendów pobieramy twitty
- analizujemy tak przygotowaną bazę
Zebranie trendów
Na początek potrzebujemy tokenu aplikacji twitterowej. Było o tym w poprzednim wpisie, gdzie odsyłałem tutaj. Na koniec uzyskania tokenu w poprzednim wpisie otrzymaliśmy plik twitter_token.rdata, z którego teraz będziemy korzystać.
Przygotujemy prosty skrypt, który pobierze aktualną listę trendów i doda ją do popranych wcześniej danych. Oczywiście każdy trend będzie opatrzony datą i godziną pobrania. Taki skrypt powinien być uruchamiany cyklicznie – na przykład co 15 minut. Całość poniżej:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
library(rtweet) library(dplyr) # token load("twitter_token.rdata") # poprzednio zapisane trendy trends_all <- readRDS("trends.Rds") # trends woeid <- 23424923 # Polska # pobranie aktualnych trendów dla określonej lokalizacji trends <- get_trends(woeid) # wybieramy tylko interesujące nas kolumny trends <- trends %>% select(trend, query) %>% # oznaczamy kolejność twittów i dodajemy znacznik aktualnego czasu mutate(n = row_number(), check_time = Sys.time()) # dodajemy do poprzedniej listy trends_all <- rbind(trends_all, trends) # ...i zapisujemy saveRDS(trends_all, file="trends.Rds") |
Przy pierwszym uruchomieniu musimy zamiast
1 |
trends_all <- readRDS("trends.Rds") |
przygotować pustą tabelkę na dane, czyli na przykład w konsoli R wykonać:
1 2 |
trends_all <- data.frame() saveRDS(trends_all, file="trends.Rds") |
Oczywiście ten kawałek można wstawić do gotowego skryptu – w ramach obsługi wyjątku kiedy plik trends.Rds nie istnieje.
Zebranie twittów
Mając zebrane trendy musimy zdecydować z których z nich będziemy pobierać twitty. Możemy brać po prostu najnowsze – wówczas zabawa z zapisywaniem historii trendów jest zbędna (po prostu pobieramy najnowsze trendy i z nich najnowsze twitty). Ja jednak stwierdziłem, że to nie da poprawnego obrazu i postanowiłem rankować trendy, a później przeglądać te najważniejsze.
Trzeba wymyślić sposób rankowania. Poszedłem po linii najmniejszego oporu i zdecydowałem, że:
- im wyżej w trendach tym ważniejszy jest dany temat
- im dawniej temat był wysoko tym mniejsza jego ważność obecnie
Idąc tym tropem postanowiłem nadać wagi zmieniające się z czasem – najnowsza lista trendów ma wagę 1, ta poprzednia – 1/2, jeszcze wcześniejsza – 1/3 i tak dalej, według schematu 1/n, gdzie n to n-ta historyczna chwila.
Następnie liczymy scoring danego trednu jako iloczyn jego pozycji w danej chwili pozycja trendu i wagi tej chwili. To co jest najbliżej jedynki jest najważniejszym trendem (ma najlepszy scoring).
Poniższy skrypt liczy które trendy są “najważniejsze”, a następnie dla 12 najważniejszych pobiera po 1000 najnowszych twittów i zapisuje je do pliku tweets.Rds:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
library(tidyverse) library(rtweet) # token load("twitter_token.rdata") # które trendy nas interesują? trends_all <- readRDS("trends.Rds") # ile_jednostek max czasu (ile_jednostek * 15 minut temu) ile_jednostek <- 8 min_time <- trends_all %>% select(check_time) %>% distinct() %>% arrange(desc(check_time)) %>% .[ile_jednostek, 1] # wagi do scoringu wagi <- data.frame(pos = 1:max(trends_all$n), waga = 1/1:max(trends_all$n)) # liczymy scoring trends <- trends_all %>% filter(check_time >= min_time) %>% left_join(wagi, by = c("n" = "pos")) %>% mutate(score = n*waga) %>% group_by(trend) %>% # scoring summarise(score = sum(score)/sum(waga)) %>% ungroup() %>% # odległość scoringu od jedynki mutate(n = abs(1-score)) %>% arrange(n) %>% left_join(trends_all %>% select(trend, query), by="trend") %>% select(trend, query) %>% distinct() # pobieramy twitty tweets <- tibble() # pierwsze 12 trendów - pobranie twittów for(i in 1:12) { cat(paste0("\n", i, "/12 - ", as.character(trends[i, "trend"]), "\n")) trend_tweets <- search_tweets(as.character(trends[i, "query"]), n = 1000, include_rts = FALSE, retryonratelimit = TRUE, parse = TRUE) # warunek zabezpieczający przed błędami # czasem search_tweets() zwraca listę zamiast data.frame if("data.frame" %in% class(trend_tweets)) { trend_tweets$trend <- as.character(trends[i, "trend"]) trend_tweets$query <- as.character(trends[i, "query"]) tweets <- rbind(tweets, trend_tweets) } } # zapisujemy plik saveRDS(tweets, file="tweets.Rds") |
Powyższy powinien być wykonany tuż przed przygotowaniem raportu.
Przygotowanie raportu
Sam raport to już wyciągnięcie najbardziej interesujących nas informacji o twittach. I od nas zależy co uznamy, za ciekawe informacje. Na początek przygotujemy odpowiednie dodatki:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
setwd("~/RProjects/TwitterTrends_Raport") library(tidyverse) library(lubridate) library(tidytext) library(wordcloud) library(stringr) # to przyda nam się do chmurki słów pl_stop_words <- read_lines("polish_stopwords.txt") theme_set(theme_minimal()) tweets <- readRDS("tweets.Rds") |
i nieco oczyścimy dane wybierając tylko interesujące nas kolumny, upraszczając czasy twittów (niwelując sekundy) i wybierając ostatnie 12 godzin:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# potrzebne kolumny tweets_an <- tweets %>% select(screen_name, user_id, created_at, text, trend, retweet_count, favorite_count, status_id, source) %>% distinct() %>% mutate(created_at = with_tz(created_at)) %>% mutate(created_at = make_datetime(year(created_at), month(created_at), day(created_at), hour(created_at), minute(created_at), 0)) # wyfiltrowanie zbednych twittów tweets_an <- tweets_an %>% # boty i spamerzy filter(!source %in% c("Poland Trends")) %>% # tylko ostatnie 12 godzin filter(created_at >= Sys.time() - hours(12)) |
Teraz możemy sobie analizować do woli. Możemy na przykład sprawdzić jak w czasie zmienia się ilość twittów w poszczególnych trendach, jak wyglądają najpopularniejsze słowa użyte w twittach należących do danego trendu oraz które twitty były najpopularniejsze (miały najwięcej retwittów oraz polubień).
Na początek przygotujemy tabelę z popularnością słów w podziale na trendy (z usunięciem stop words – polskich i angielskich):
1 2 3 4 5 6 7 8 9 10 11 12 |
# chmurki słów words <- tweets_an %>% # bez linków mutate(text = gsub(" ?(f|ht)tp(s?)://(.*)[.][a-z]+", "", text)) %>% unnest_tokens(word, text, token="words") %>% count(word, trend) %>% ungroup() %>% # usuniecie z chmurki slowa - trendu (oczywiscie ono dominuje) filter(word != str_to_lower(str_replace_all(trend, "#", ""))) %>% # bez stop words filter(!word %in% pl_stop_words) %>% filter(!word %in% stop_words$word) |
Teraz poskładajmy wszystko w całość w ramach jednej pętli idącej po kolei trend po trendzie:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
trends <- unique(words$trend) for(i in 1:length(trends)) { # zbiór twittów z tagu tweets_an_trend <- tweets_an %>% filter(trend == trends[i]) # liczba twittów w czasie tweets_an_trend %>% count(created_at) %>% ungroup() %>% ggplot() + geom_point(aes(created_at, n), color="darkgreen", alpha = 0.3, size = 3) + expand_limits(y = 0) + labs(x="Czas", y="Liczba twittów") # chmurka słów tmp <- filter(words, trend == trends[i]) wordcloud(tmp$word, tmp$n, min.freq = mean(tmp$n)+sd(tmp$n), colors = RColorBrewer::brewer.pal(12, "Paired")) # najpopularniejsze twitty tweets_an_trend %>% select(screen_name, text, status_id, created_at, retweet_count, favorite_count) %>% mutate(text = gsub("\n", " ", text)) %>% mutate(score = retweet_count + favorite_count) %>% top_n(10, wt = score) %>% arrange(desc(score), desc(created_at)) %>% mutate(link = paste0("[", format(created_at, "%Y-%m-%d @ %H:%M"), "](https://twitter.com/", screen_name, "/status/", status_id,")")) %>% select(Twitt=text, Czas=link, Autor=screen_name, RTs=retweet_count, FAVs=favorite_count) } |
Wynik powyższego fragmentu kodu zamieszczam na końcu wpisu.
Automatyzacja
No fajnie, fajnie, ale z całego opisu wynika, że tu trzeba kliknąć, tam co 15 minut coś uruchomić, potem zapisać plik, coś wygenerować. Masakra, co to za automat?!
Otóż można to wszystko zautomatyzować. Wystarczy:
- przygotować w sumie cztery pliki: skrypt do pobierania trendów, skrytp do pobierania twittów, szablon raportu (na przykład w postaci dokumentu Rmarkdown) oraz skrypt renderujący dokument Rmarkdown
- do unixowego crona lub windowsowego Harmonogramu zadań (czy jak to się tam nazywa) dodać uruchomienie skryptu do pobierania trendów
- przed przeglądem raportu uruchomić skrypt do pobrania twittów oraz renderujący raport
- gotowy raport można oglądać w przeglądarce (jeśli renderujemy go do HTMLa) lub np. w PDFie
- uruchomienie przeglądarki można również zawrzeć w skrypcie
W takiej konfiguracji na przykład co 15 minut w tle pobierają nam się trendy, a jeśli chcemy przeczytać raport – klikamy na ikonkę, maszyna się mieli (pobiera twitty i buduje raport) i otwiera na koniec przeglądarkę z wynikiem.
Można też razem z pobraniem trendów przygotować ich scoring, pobrać twitty, a sam raport zbudować jako aplikację R/Shiny, która po uruchomieniu na początek wczytuje twitty, a póżniej robi z nimi co zechcemy. Jak takową zbuduję to nie omieszkam poinformować.
Tymczasem – poniżej efekt działania maszynki aktualny na 2017-06-20, 13:32. Zwróćcie uwagę co pojawia się na polskim Twitterze – w moim odczuciu polski Twitter to polityka o prawicowym odcieniu oraz tzw. gimbaza. Może właśnie dlatego nie jest tak popularny?
Wynik działania skryptu
TREND: egzaminzawodowy
Twitt | Czas | Autor | RTs | FAVs |
---|---|---|---|---|
despacito dzisiaj jest egzamito proszę o chociaż 20 punktito chce to zdanito despasito #egzaminzawodowy | 2017-06-20 @ 01:03 | prpstrstdims | 50 | 42 |
A CO TAM KURWA, ROBIE #SHINE_FOREVER #projektlady #POLSWE #egzaminzawodowy https://t.co/sUCzeigIU3 | 2017-06-20 @ 07:31 | flawlessugar | 3 | 67 |
wiecie czego ja sie najbardziej boje? że bateria w kalkulatorze przestanie mi działać XD #egzaminzawodowy | 2017-06-20 @ 08:21 | opsitsharreh | 24 | 31 |
#egzaminzawodowy Zdałem! Mistrz painta!<U+00A0><U+00BD><U+00B8><U+008D> https://t.co/aKHhRhXeQ1 | 2017-06-20 @ 12:51 | Hispadon | 0 | 43 |
nie stresujcie sie, serio ja zadnego probnego praktycznego nie zdalam, a na normalnym mialam 100% takze no XDDD #egzaminzawodowy | 2017-06-20 @ 11:09 | drevzix | 6 | 10 |
Czy 3 czarne długopisy mi wystarczą Boje się że mój kalkulator nie jest prosty A co jeśli się spóźnie Ide sie zajebać #egzaminzawodowy | 2017-06-20 @ 08:06 | daria9oo9 | 4 | 11 |
kto musiał wstać o 7 pomimo że egzamin ma 10 bo szukał po całym mieście kalkulatora i czarnego długopisa? <U+00A0><U+00BD><U+00B9><U+008B> #egzaminzawodowy | 2017-06-20 @ 08:29 | MaddieJLemon | 3 | 8 |
TRZYMAM MOCNIUTKO ZA WSZYSTKICH KCIUKI, DACIE RADĘ <U+270A> #egzaminzawodowy | 2017-06-20 @ 07:57 | xmylukeyx | 8 | 3 |
TO JUZ DZISIAJ #egzaminzawodowy | 2017-06-20 @ 04:47 | buterazix | 5 | 4 |
Powodzenia życzę dzisiaj wszystkim którzy piszą #egzaminzawodowy w każdej kwalifikacji | 2017-06-20 @ 08:22 | FreakyShoter | 3 | 5 |
nie wierze że stresowałam sie jebanym egzaminem gimnazjalnym, a to jest gówno do tego #egzaminzawodowy | 2017-06-20 @ 08:19 | opsitsharreh | 3 | 5 |
TREND: W Polsce
Twitt | Czas | Autor | RTs | FAVs |
---|---|---|---|---|
Naprawdę wystarczy dać 500 zł i postraszyć islamskimi terrorystami, by w Polsce rządzić? Rozliczyć bezprawie PiS to mało. Trzeba edukować. | 2017-06-20 @ 07:25 | PSzubartowicz | 44 | 298 |
<U+00A0><U+00BD><U+00B4><U+00B4>Dziś o 3.45 rano kierowca ciężarówki zarejestrowanej w Polsce zginął w ataku migrantow pod Calais https://t.co/ZFeITbKFcs | 2017-06-20 @ 07:49 | ErykMistewicz | 212 | 85 |
Tarczyński: To wojna cywilizacji i my tej wojny w Polsce nie chcemy. Tej wojny w Polsce nie będzie dopóki rządzi PiS https://t.co/lTmuAXpAUx | 2017-06-20 @ 00:08 | D_Tarczynski | 67 | 221 |
Zostałem oskarżony z art.256 kk. Za co konkretnie?Za mówienie NIE Talmudowi i banderyzmowi. Rozprawa jesienią. Jesteśmy w Polsce? POMOŻECIE? https://t.co/1vd29XMPhL | 2017-06-20 @ 12:15 | jacekmiedlar | 56 | 118 |
Szukali tego faszyzmu w Polsce i w końcu znaleźli. A jak się nie ma co się lubi, to się bierze faszyzm leworęczny. https://t.co/pg71d8WBGE | 2017-06-20 @ 11:12 | makowski_m | 40 | 123 |
W Polsce była taka “kolaboracja z Niemcami”, że 6 mln obywateli RP przypłaciło to życiem.. https://t.co/CHZuviW5o2 | 2017-06-20 @ 00:05 | de_Talleyrand_ | 31 | 55 |
NAJWIĘKSZA AFERA W POLSCE. WIADOMO KTO ZA NIĄ STOI I WIADOMO, DLACZEGO NIE CHCĄ TEGO WYJAŚNIĆ… https://t.co/eobHXaKws9 https://t.co/0Q1e5YuyD9 | 2017-06-20 @ 09:58 | SOKzBURAKApl | 29 | 46 |
Czy możesz mi jenocie wyjaśnić, jakim cudem mamy w Polsce uchodźców z Czeczenii? Czy my graniczymy z Czeczenią? https://t.co/e6pnXnJBLi | 2017-06-20 @ 09:37 | LeskiPiotr | 12 | 52 |
Wybaczcie ironiczny ton, bo rzeczywiście, cytując Garczarka: w Polsce wciąż są ludzie, ktorzy budzą się z krzykiem w środku nocy. | 2017-06-20 @ 08:40 | SamPereira_ | 3 | 40 |
W Polsce jest pewien target kibiców, którzy nigdy nie przestaną traktować siatkarzy jak półbogów. Aż przykro na to patrzeć. | 2017-06-19 @ 23:45 | randomowykibic | 12 | 27 |
TREND: Calais
Twitt | Czas | Autor | RTs | FAVs |
---|---|---|---|---|
Van driver killed after migrants drag tree trunks onto road in Calais. https://t.co/EbR2iRgVXX | 2017-06-20 @ 13:18 | PrisonPlanet | 202 | 151 |
Houses in Béthune, Pas-de-Calais, France https://t.co/rujocQB1d1 | 2017-06-20 @ 11:58 | archpics | 64 | 158 |
Truck driver dies as he crashes into roadblock of tree trunks set up by migrants near #Calais https://t.co/YaSPJ0Ix6R https://t.co/Tnit1qfGPN | 2017-06-20 @ 11:50 | RT_com | 123 | 58 |
Calais lorry driver dies thanks to barriers setup by immigrants https://t.co/vQaPlN8kxc | 2017-06-20 @ 13:09 | DavidJo52951945 | 99 | 40 |
Bonjour @OmarSy et @QueensChristine. Un petit mot pour le chauffeur tué par les migrants ? #Calais https://t.co/m173Lp6TqW | 2017-06-20 @ 12:54 | DamienRieu | 74 | 60 |
Calais van driver dead in migrant roadblock crash https://t.co/YQ1hH1UsMG | 2017-06-20 @ 11:27 | BBCWorld | 68 | 57 |
jak ktoś nadal twierdzi że uchodźcy nie stanowią zagrożenia to niech powie to rodzinie Polaka który zginął dziś pod Calais przez tę dzicz <U+009F><U+0098><U+00A1><U+009F><U+0098><U+00A1> https://t.co/02nTtD1l0H | 2017-06-20 @ 12:38 | daguuniaa | 36 | 55 |
Towarzysza pseudoekologa Cimoszewicza, wraz z synalem posłem, prosimy o interwencję w Calais. Tam pisowcy z Erytrei zdrowe drzewa wycinają. | 2017-06-20 @ 11:26 | AMKpatriot | 18 | 57 |
Van driver dies after migrants block Calais road with tree trunks https://t.co/JaiNHwZCOT | 2017-06-20 @ 12:30 | Telegraph | 52 | 18 |
Migranten in #Calais verursachten offenbar mit liegenden Baumstämmen auf der A16 einen tödlichen Unfall. https://t.co/oDMKND7pr9 | 2017-06-20 @ 11:53 | anna_IIna | 42 | 23 |
TREND: TeenChoice
Twitt | Czas | Autor | RTs | FAVs |
---|---|---|---|---|
they deserve it so much!! My #TeenChoice For #ChoiceCollaboration Is “Just Hold On” By @Louis_Tomlinson & @steveaoki https://t.co/LXYkrqxHzF | 2017-06-20 @ 13:31 | LouisPromoSquad | 10 | 2 |
#TeenChoice #ChoiceSongGroup Shout Out To My Ex by @LittleMix https://t.co/ovSzCF1Pe0 | 2017-06-20 @ 13:31 | adidaswithlm | 1 | 1 |
My #TeenChoice nominee for #ChoiceMusicGroup us @TheVampsband <U+009F><U+0096><U+00A4> @TheVampsJames https://t.co/V9aiDwlLYI | 2017-06-20 @ 13:31 | fairlyoddlevi | 1 | 1 |
Ang tatamad niyo Katycats! #TeenChoice #ChoiceFemaleArtist @katyperry | 2017-06-20 @ 13:31 | iconicjohnroy | 1 | 1 |
Shawn please follow me/tweet me/dm me/visit me… #ChoiceMaleArtist #TeenChoice @ShawnMendes | 2017-06-20 @ 13:31 | SnowWhite_0105 | 2 | 0 |
My #TeenChoice for #ChoiceRockArtist is @Harry_Styles | 2017-06-20 @ 13:32 | larryissexyyy | 1 | 0 |
My #TeenChoice nominee for #ChoiceRockArtist is @Harry_Styles | 2017-06-20 @ 13:32 | ayotIQ | 1 | 0 |
My #TeenChoice pick for #ChoiceCollaboration is @Louis_Tomlinson & @steveaoki for “Just Hold On” <U+009F><U+0098><U+0087> | 2017-06-20 @ 13:32 | louisrunmeover | 1 | 0 |
My #TeenChoice vote for #ChoiceRockArtist is @Harry_Styles | 2017-06-20 @ 13:32 | xaroulakats | 1 | 0 |
My #TeenChoice nominee for #ChoiceThrowbackTVShow is #BuffyTheVampireSlayer!!! | 2017-06-20 @ 13:32 | BuffyIsImmortal | 1 | 0 |
#TeenChoice for #ChoiceSongGroup is Shout Out To My Ex by @LittleMix https://t.co/di7yBk2wBk | 2017-06-20 @ 13:31 | dilayhaspolat | 1 | 0 |
My #TeenChoice for #ChoiceMaleArtist is @Harry_Styles | 2017-06-20 @ 13:31 | styIeskay | 1 | 0 |
TREND: POLSWE
Twitt | Czas | Autor | RTs | FAVs |
---|---|---|---|---|
A CO TAM KURWA, ROBIE #SHINE_FOREVER #projektlady #POLSWE #egzaminzawodowy https://t.co/sUCzeigIU3 | 2017-06-20 @ 07:31 | flawlessugar | 3 | 67 |
<U+00A0><U+00BC><U+00B7><U+00B5><U+00A0><U+00BC><U+00B7><U+00B1> Dawid Kownacki: “I knew this game was a big chance for me.” <U+26BD><U+FE0F><U+00A0><U+00BD><U+00B2><U+00AA> #U21EURO #POLSWE https://t.co/IlDEqrIZM5 | 2017-06-19 @ 23:55 | UEFAUnder21 | 8 | 34 |
Przemarsz szwedów na @ArenaLublin na mecz #POLSWE. Przystanek pod hotelem piłkarzy. #Lublin https://t.co/cQnwR8vX6t | 2017-06-20 @ 00:08 | BartoszMargul | 4 | 8 |
#TooHotToSleep #sportsMW #RoyalAscot #TDI17 #HRK17 #Mourinho #POLSWE #maturita2017 #20giugno #Consip #svkeng #NIMAMD https://t.co/vPPzNAMbWd | 2017-06-20 @ 13:12 | kortru2 | 5 | 6 |
.@dkownacki24 cały czas wierzy w awans! #POLSWE #U21EURO Dołączcie do zabawy -> https://t.co/aUT9kJ31Lh https://t.co/fVDXbEMPRC | 2017-06-20 @ 08:20 | polsatsport | 0 | 11 |
#POLSWE https://t.co/d8V0Wyx21y | 2017-06-20 @ 00:26 | kroliczyomyk | 0 | 8 |
Cytaty słynnych ludzi ;) #POLSWE #mecz #goorsky #humor https://t.co/4HlTyMlbYx | 2017-06-19 @ 23:50 | goorsky_pl | 1 | 7 |
Po co była Szwedom pomarańczowa konewka na meczu? #POLSWE https://t.co/3TsMhRHRWC | 2017-06-20 @ 01:45 | AlekTabor | 0 | 7 |
Zobacz wczorajszy przemarsz Szwedów przez ulice Lublina [ZDJĘCIA, WIDEO] <U+25B6><U+FE0F> https://t.co/uh4ZFWZXpu #POLSWE https://t.co/ESOczIfEjg | 2017-06-20 @ 08:59 | GOL24pl | 0 | 6 |
#POLSWE e #SVKENG per l’ #EUROPEOUNDER21 VEDI TUTTO SU https://t.co/RKqBne2v9W #Notizie #News #Scrivoquandovoglio #Calcio #Poland #Sweden https://t.co/zrghTCaaHa | 2017-06-19 @ 23:53 | ScrivoQuandoVog | 3 | 3 |
TREND: AmberGold
Twitt | Czas | Autor | RTs | FAVs |
---|---|---|---|---|
Polecam śledzić dzisiejsze przesłuchanie komisji #AmberGold,bo świadek Kloskowski ma relatywnie małe braki w pamięci:https://t.co/VXRoH3jhh3 | 2017-06-20 @ 12:29 | wassermann_ma | 78 | 195 |
Konkurs na stanowisko dla Michała Tuska? Kloskowski: Po co konkurs. Ja chciałem zatrudnić konkretnie Michała Tuska! #ambergold PO w pigułce | 2017-06-20 @ 12:25 | WBiedron | 33 | 91 |
Czy pupilek PO na Pomorzu opowie nam dzisiaj jak załatwiał robotę dla Michała Tuska u przekręciarza Marcina S.? T. Kloskowski #AmberGold | 2017-06-20 @ 10:09 | WBiedron | 21 | 69 |
Suski, który nigdy nie pracował w biznesie i nie wie jak on funkcjonuje, udaje w komisji #AmberGold eksperta od funkcjonowania lotniska. https://t.co/b1fnIESndF | 2017-06-20 @ 12:07 | zKaszebe | 15 | 63 |
Wyprzedzam fakty,jakby pan Kloskowski stwierdził,że nie było go na otwarciu terminala i nie zna Nowaka.. #AmberGold https://t.co/M5VaNt94Xk | 2017-06-20 @ 10:37 | zdrapkaaa | 20 | 34 |
Małe ćwiczenie logopedyczne przed jutrzejszą komisją #AmberGold Spadł bąk na strąk, a strąk na pąk. Pękł pąk, pękł strąk, a bąk się zląkł. | 2017-06-20 @ 08:59 | tender_Stig | 10 | 39 |
Komisja ds. #AmberGold przesłucha prezesa gdańskiego lotniska https://t.co/DeXlhcoLd9 #wieszwiecej | 2017-06-20 @ 07:24 | tvp_info | 9 | 24 |
Nie mówcie proszę mojemu szefowi, że przyniosłam dziś do pracy słuchawki, by przemycać urywki transmisji z komisji śledczej #AmberGold <U+009F><U+0098><U+0089> <U+009F><U+0099><U+008A> <U+2708> | 2017-06-20 @ 08:52 | justi_justyna | 0 | 24 |
Plan dnia: Posiedzenie komisji śledczej ds. #AmberGold, spotkanie @BeataSzydlo z premierem Szwecji https://t.co/sT7FoO2wCd https://t.co/pSJlcxuXQP | 2017-06-20 @ 07:18 | DoRzeczy_pl | 8 | 14 |
Podobno młody Tusk wjedzie jutro kłusem na koniu przed komisję #AmberGold https://t.co/bM2fPv79Tt | 2017-06-20 @ 11:21 | plan3letni | 7 | 14 |
TREND: Paryża
Twitt | Czas | Autor | RTs | FAVs |
---|---|---|---|---|
BUM! Zamachowiec z Paryża miał na imię Adam a jego matka jest Polką. Psychoprawico. Czekam na wasz przekaz dnia w tej sprawie. Czas start! | 2017-06-20 @ 09:56 | BLewak | 66 | 215 |
Szef klubu PiS w Radomiu ws. uchodźców: nie chcemy tu Londynu, Brukseli i Paryża. Spokojnie. Wam grozi maksymalnie Radom. | 2017-06-20 @ 10:48 | BLewak | 36 | 212 |
Jeśli to prawda że matka niedoszłego zamachowcy z Paryża przyjechała do Francji w 80s, to mamy dowód że należało pomagać Polakom na miejscu. | 2017-06-20 @ 09:18 | PanZolty | 35 | 142 |
Terrorysta z Paryża miał polskie korzenie. Mam nadzieję, że Francuzi nie wezmą przykładu z PL rządu i nie będą dyskredytować całego narodu. | 2017-06-20 @ 11:38 | Antosiewicz | 15 | 39 |
Syn polskiej imigrantki zmontował atak w Paryżu. W #UK Polacy rasistowsko pobili Brytyjczyka. https://t.co/yqeLTeKK1C | 2017-06-20 @ 09:26 | BWicinski | 16 | 24 |
Ciekawe, co na to powiedzą wszyscy przeciwnicy imigrantów. Zamachowiec z Paryża miał polskie korzenie https://t.co/Zc001YRUlv | 2017-06-20 @ 09:17 | jedlina_olgierd | 7 | 30 |
Zamachowiec z Paryża miał pozwolenie na broń, choć był… na liście terrorystów https://t.co/5IS63fSpy2 | 2017-06-20 @ 10:09 | niezaleznapl | 10 | 15 |
Zamachowiec z Paryża miał pozwolenie na broń, choć był… na liście terrorystów https://t.co/BZE1vm0vUO | 2017-06-20 @ 10:12 | aneczka07 | 6 | 12 |
“Zamachowiec z Paryża to Adam. D. Ma polskie korzenie” @wirtualnapolska nie przestaje manipulować! W kolejnych screenach pokażę ich taktykę<U+00A0><U+00BD><U+00B8><U+00A0> https://t.co/n2IwTRgdVZ | 2017-06-20 @ 09:00 | zabikozord | 9 | 9 |
Zamachowiec z Paryża miał pozwolenie na broń, choć był… na liście terrorystów https://t.co/YVS9C7N2H1 | 2017-06-20 @ 10:42 | AdamNieznaj1 | 5 | 9 |
TREND: KPRM
Twitt | Czas | Autor | RTs | FAVs |
---|---|---|---|---|
Dziś w #KPRM premier @BeataSzydlo gości premiera Szwecji Stefana Löfvena. https://t.co/0QxQyshsxK | 2017-06-20 @ 09:08 | PremierRP | 17 | 55 |
W #KPRM premier @BeataSzydlo wita premiera Szwecji Stefana Löfvena. https://t.co/60lPTksYar | 2017-06-20 @ 08:32 | PremierRP | 17 | 54 |
W #KPRM trwa spotkanie z mediami premier @BeataSzydlo oraz premiera Szwecji Stefana Löfvena. https://t.co/VZvrFhbIqX | 2017-06-20 @ 10:12 | PremierRP | 11 | 20 |
Premier @BeataSzydlo w #KPRM: Polska rozwija się dynamicznie, realizujemy ambitny plan. | 2017-06-20 @ 10:16 | pisorgpl | 7 | 22 |
Premier @BeataSzydlo w #KPRM: Z Premierem Szwecji rozmawialiśmy o zagrożeniach oraz sytuacjach, które nas niepokoją. | 2017-06-20 @ 10:14 | pisorgpl | 7 | 18 |
Premier @BeataSzydlo w #KPRM: Szwecja jest dla Polski partnerem strategicznym i chcemy wzmacniać naszą współpracę. | 2017-06-20 @ 10:19 | PremierRP | 6 | 18 |
Premier @BeataSzydlo w #KPRM: Utrzymanie międzynarodowego poparcia dla Ukrainy jest kluczowe dla rozwoju i stabilizacji tego państwa. | 2017-06-20 @ 10:15 | pisorgpl | 8 | 16 |
Premier @BeataSzydlo w #KPRM: z Premierem Szwecji rozmawialiśmy m.in. na temat naszych stosunków bilateralnych i sytuacji gospodarczej. | 2017-06-20 @ 10:13 | pisorgpl | 3 | 19 |
Premier @BeataSzydlo w #KPRM: W trakcie rozmowy z Premierem Szwecji koncertowaliśmy się na kryzysie migracyjnym i #Brexit. | 2017-06-20 @ 10:17 | pisorgpl | 8 | 13 |
Premier @BeataSzydlo w #KPRM: Szczególną wagę ma nasza współpraca ze Szwecją w zakresie partnerstwa wschodniego. | 2017-06-20 @ 10:14 | pisorgpl | 5 | 16 |
TREND: Dawidowicza
Twitt | Czas | Autor | RTs | FAVs |
---|---|---|---|---|
@TomekHajto7 @GIPHY Manager Dawidowicza ma jakieś sekstaśmy na Marcina Dornę? | 2017-06-20 @ 00:58 | pajkiel | 2 | 13 |
Podobno składamy skargę do UEFY za brutalny faul Dawidowicza na Linettym. Bez piłki!!! | 2017-06-20 @ 00:20 | GolaBartek | 0 | 8 |
@TwaroTwaro Ale nie rozumiem trochę filozofii Dorny. Jest środkowy pomocnik Murawski ograny. Dobry sezon a na siłę kreuje się Dawidowicza | 2017-06-20 @ 10:18 | bartek19871 | 0 | 2 |
https://t.co/7zEYROJqwe dla wszystkich ktorych wczoraj ominął roast Dawidowicza | 2017-06-20 @ 09:05 | Trener_Jarzabek | 0 | 2 |
Naprawdę przykro było patrzeć na poczynania #Dawidowicza. Kolejny chłopak, który chciał za szybko wejść w poważną piłkę. Czas na odbudowę. | 2017-06-20 @ 08:21 | Mikolaj_Zimoch | 1 | 1 |
@lukaszd85 Więcej od Dawidowicza w Benfice B <U+009F><U+0098><U+0082><U+009F><U+0098><U+0082> ale pełna zgoda, za wiele nie zwojował ;) | 2017-06-20 @ 12:20 | wojciechwrycza | 0 | 1 |
@IwanskiMaciej Pan redaktor uprawia żenadę publicznie broniąc Dawidowicza. Jest zawodowym piłkarzem, a gra jak amator z podwórka. | 2017-06-20 @ 11:45 | Ignem_feram | 0 | 1 |
Może na pierwsze 15 minut Dorna wystawi Dawidowicza na szpicy żeby przypadkowo nie strzelić bramki za szybko? #POLSWE #POLENG #EuroU21 | 2017-06-20 @ 09:00 | lukaszprochno | 0 | 1 |
@wkamel76 @PawlowskiGK “Gwiazdy” zawsze szybko spadają.. przykłady Pawłowskiego, Dawidowicza, naszego dyrektora ds. Kontaktu z mediami czyt. Bielika itp.. | 2017-06-20 @ 08:00 | Patryk_Wiese | 0 | 1 |
@tomekpasieczny Oglądał ich na treningach. Skoro postawił na Dawidowicza/Jacha to chyba Bielik aż tak nie mógł ich kasować? Albo trener ślepy. | 2017-06-20 @ 00:20 | M_Wawrzynowski | 0 | 1 |
Wcale mnie nie dziwi gra Dawidowicza. Poza walecznoscia nigdy nic nie pokazywal. | 2017-06-20 @ 00:18 | Filipgks | 0 | 1 |
@KoltonRoman A kto jest menadżerem Dawidowicza? | 2017-06-20 @ 00:07 | MegafonAG | 0 | 1 |
TREND: Sejmu
Twitt | Czas | Autor | RTs | FAVs |
---|---|---|---|---|
20.6.1940 Niemcy zabili w Palmirach 358 osób. Marszałka sejmu Macieja Rataja i złotego medalistę Janusza Kusocińskiego. Pamięć nie zagaśnie! https://t.co/DnBW2Qx6Iu | 2017-06-20 @ 08:31 | analizuje | 43 | 53 |
Wśród ofiar byli były marszałek Sejmu Maciej Rataj, działacz PPS Mieczysław Niedziałkowski i złoty medalista olimpijski Janusz Kusociński https://t.co/mDHjgAqLj6 | 2017-06-20 @ 07:24 | ipngovpl | 36 | 27 |
“To jakaś głupota. Dowolny lek może mieć takie działanie np. lek na astmę”. https://t.co/VUxF6J1eqY https://t.co/wEBbGBXmo3 | 2017-06-20 @ 10:27 | SOKzBURAKApl | 7 | 19 |
KRS i sądy zdjęte z porządku obrad Sejmu #300POLITYKALIVE https://t.co/1dEtS1xcDF | 2017-06-20 @ 10:14 | 300polityka | 5 | 6 |
Projekty zmian w KRS i sądach skreślone z porządku obrad Sejmu https://t.co/kGFQ3rY6PT https://t.co/dk3Q9wRBVu | 2017-06-20 @ 11:18 | RepublikaTV | 2 | 8 |
#Kuchciński: skreśliłem z porządku obrad posiedzenia Sejmu projekt zmian w ustawie o #KRS oraz w Prawie o ustroju sądów powszechnych | 2017-06-20 @ 10:16 | rzeczpospolita | 1 | 7 |
Już niecała godzina dzieli nas od rozpoczęcia 44. posiedzenia Sejmu. Początek obrad o godz. 10.00. https://t.co/7NydMndgvN | 2017-06-20 @ 09:09 | KancelariaSejmu | 4 | 4 |
77 lat temu w Palmirach Niemcy rozstrzelali 378 Polaków w tym marszałka Sejmu Macieja Rataja https://t.co/2s1k13cEzm | 2017-06-20 @ 09:07 | PiotrZgorzelski | 4 | 4 |
Ustawa o zakazie propagowania komunizmu jednym z tematów posiedzenia @KancelariaSejmu https://t.co/1pWuQzwz9B | 2017-06-20 @ 11:47 | RadioMaryja | 4 | 3 |
.@MarekKuchcinski: skreśliłem z porządku obrad obecnego posiedzenia Sejmu projekt zmian w ustawie o KRS … 1/2 | 2017-06-20 @ 10:17 | RadioMaryja | 4 | 3 |
TREND: Trybunał Konstytucyjny
Twitt | Czas | Autor | RTs | FAVs |
---|---|---|---|---|
Obecny Trybunał Konstytucyjny ma tyle wspólnego z Konstytucją RP, co bita śmietana z przemocą. | 2017-06-20 @ 12:41 | pola_mm | 18 | 82 |
Trybunał Konstytucyjny: Przepisy o obecnych zasadach wyboru sędziów do Krajowej Rady Sądownictwa są niekonstytucyjne #KRS | 2017-06-20 @ 12:59 | MarekKuchcinski | 22 | 63 |
Trybunał Konstytucyjny przy okazji orzeczenia o KRS zdecydował także o unieważnieniu prawa grawitacji i podważył twierdzenie Pitagorasa. | 2017-06-20 @ 13:10 | joannamucha | 11 | 46 |
Trybunał Konstytucyjny: Przepisy ustawy o KRS dotyczące zasad wyboru sędziów do Rady są niezgodne z konstytucją! https://t.co/lMuWJcZMOh https://t.co/WfrtaPtTon | 2017-06-20 @ 13:01 | AdamNieznaj1 | 14 | 18 |
Trybunał Konstytucyjny: Przepisy ustawy o KRS dotyczące zasad wyboru sędziów do Rady są niezgodne z konstytucją! https://t.co/G1h96COdw8 | 2017-06-20 @ 12:54 | wPolityce_pl | 7 | 15 |
Nie dajcie sobie wmówić, że to, co wydaje obecnie Trybunał Konstytucyjny to wyroki TK. Wydają je nie-sędziowie. To opinie przy ciasteczkach. | 2017-06-20 @ 12:47 | KuczynskiM | 5 | 16 |
Trybunał Konstytucyjny: przepisy o obecnych zasadach wyboru sędziów do Krajowej Rady Sądownictwa – niekonstytucyjne https://t.co/6myj9fqawR | 2017-06-20 @ 12:46 | PAPinformacje | 9 | 10 |
#KOD zaprasza 20 czerwca przed Trybunał Konstytucyjny https://t.co/xOzh7Ofxvn | 2017-06-19 @ 23:52 | Kom_Obr_Dem | 5 | 12 |
Trybunał Konstytucyjny uznał za niezgodne z ustawą zasadniczą przepisy, dotyczące wyboru sędziów do Krajowej Rady Sądownictwa #KRS #TK (IAR) https://t.co/y8rgMftwDr | 2017-06-20 @ 12:43 | PolskieRadio24 | 2 | 7 |
@tvn24 i @gazetapl_news jeszcze nie rozumieją, że Trybunał Konstytucyjny właśnie wydał wyrok na najwyższą kastę. | 2017-06-20 @ 12:43 | kontrowersje | 0 | 7 |
Trybunał Konstytucyjny orzekł, że zaskarżone przez ministra Ziobrę przepisy ustawy o KRS-ie są niekonstytucyjne. @TOKFM_NEWS | 2017-06-20 @ 12:32 | rochkowalski | 3 | 4 |
TREND: Krajowej Rady Sądownictwa
Twitt | Czas | Autor | RTs | FAVs |
---|---|---|---|---|
Trybunał Konstytucyjny: Przepisy o obecnych zasadach wyboru sędziów do Krajowej Rady Sądownictwa są niekonstytucyjne #KRS | 2017-06-20 @ 12:59 | MarekKuchcinski | 22 | 63 |
O 15 w @RepublikaTV o wyroku TK w sprawie Krajowej Rady Sądownictwa. Ważny dzień dla sądownictwa czytaj PAŃSTWA | 2017-06-20 @ 11:10 | artomczynski | 14 | 29 |
Trybunał Konstytucyjny: przepisy o obecnych zasadach wyboru sędziów do Krajowej Rady Sądownictwa – niekonstytucyjne https://t.co/6myj9fqawR | 2017-06-20 @ 12:46 | PAPinformacje | 9 | 10 |
#TK: niekonstytucyjne przepisy o obecnych zasadach wyboru sędziów do Krajowej Rady Sądownictwa https://t.co/MB0JvcxGSb | 2017-06-20 @ 12:35 | Wiadomosci_PR | 9 | 4 |
TK: niekonstytucyjne przepisy o obecnych zasadach wyboru sędziów do Krajowej Rady Sądownictwa. https://t.co/GNImdBpbNh | 2017-06-20 @ 12:35 | RMF24pl | 9 | 4 |
#PAP: #TK: niekonstytucyjne przepisy o obecnych zasadach wyboru sędziów do Krajowej Rady Sądownictwa. #Pilne | 2017-06-20 @ 12:38 | RadioMaryja | 6 | 5 |
Panie @Jaroslaw_Gowin dlaczego Pan znowu klamie? “Kadencja wybranych członków Krajowej Rady Sądownictwa trwa cztery lata” | 2017-06-20 @ 07:33 | JacekJaworskiGd | 2 | 9 |
Art 187. ust 3. Konstytucji RP: “Kadencja wybranych członków Krajowej Rady Sądownictwa trwa cztery lata”. #KRS #TK | 2017-06-20 @ 12:58 | JakubDudek97 | 2 | 7 |
#TK: niekonstytucyjne przepisy o obecnych zasadach wyboru sędziów do Krajowej Rady Sądownictwa #KRS https://t.co/BXde5qU8me | 2017-06-20 @ 12:45 | Wiadomosci_PR | 2 | 7 |
Trybunał Konstytucyjny uznał za niezgodne z ustawą zasadniczą przepisy, dotyczące wyboru sędziów do Krajowej Rady Sądownictwa #KRS #TK (IAR) https://t.co/y8rgMftwDr | 2017-06-20 @ 12:43 | PolskieRadio24 | 2 | 7 |