#LurkerChangelog / F5

- dodawanie do ulubionych, blokowanie wpisow (ukrywanie / wycinanie)
- śledzenie wpisów (oznaczamy gwiazdką wątek lub komentarz i dostajemy powiadomienia z całego wątku: czyli odpowiedzi bezpośrednie, ale też pod-odpowiedzi [dalsze wcięcia])
picrel poniżej na motywie dziennym, aby było wyraźnie widać, gdzie to jest (trzeba odświeżyć apkę) - zaznaczone na czerwono

36

#LurkerChangelog (z wczoraj)

- naprawa dodawania linków (czasami link się nie chciał dodać do posta),
- na stronie profilu od teraz widnieją tagi autorskie oraz grupowe danego usera,
- przebudowa tagów pod edytorem (teraz to nie są checkboxy, ale wstawiają się do tekstu),
- dodanie pod edytorem tagów usera,
- podpowiadajka tagów nie podpowiada juz tagów autorskich, jesli nie jest sie ich autorem.

20

#LurkerChangelog / F5

- uwaga, uwaga! dzisiaj została na Lurkerze znaleziona krytyczna podatność iks-es-es (ang. XSS), która pozwalała wstrzykiwać kod JS w tagi ze zdjęciami
[image] WysadzeCiKomputer() [/image]
(no może nie do końca coś takiego, ale podobne ). Uga-buga znalazł user @Bzium (ethical hacker, który zapowiedział niedawno testy, dostając zielone światło na wysadzenie apki w powietrze: aha, wiec jesli teraz bedzie coś lagować, to tylko testy penetracyjne lecą, zatem wiedzcie, że coś się dzieje ); bug został natychmiast załatany
- dla przypomnienia, podobnego XSS-a (ale w innym miejscu i na innej zasadzie) znalazł @Enviador.
- z koderskich rzeczy: od teraz jak sie ocenia posta, to automatycznie zlicza nowe wyświetlenie, wiec nie trzeba otwierać treści, aby je podbić (żeby autor widział, że mu wyświetlenia idą w górę ), od teraz wystarczy kliknąć +/- i gotowe;
- klikanie w powiadomienia (Zobacz i Odpowiedz) środkowym przyciskiem myszy (otwarcie posta w nowej karcie) z automatu oznacza powiadomkę jako odczytaną;
- dodatkowo, włączyłem
no-cache
na index.html, tak że teraz nie bedzie trzeba F5 klepać ciągle (powinna zmiana zadziałac mniej wiecej od jutra. dla pewności proszę dać F5 )

EDIT: OSTATNI punkt zostanie wycofany jednak bo F5, to znak rozpoznawczy naszego portalu @D4rk_R4ven

24

#lurkerchangelog / No i dobra Moi Mili, czas na spowiedź! Oto, co spowodowało awarię, która poniedziałek-czwartek (do wczoraj) lagowała system tak że heeej Jak to sie mówi, człowiek uczy sie na błedach…

Temat był wyjątkowo trudny do wykrycia i analizy. Systemy zachowywały się normalnie. Sprawdziłem absolutnie wszystkie możliwe scenariusze: od przeciążenia CPU/RAM (htop), po przeciążenie dysków (iotop), przez analizę ruchu sieciowego, profilowanie pakietów, ograniczenia połączeń: ilości (limit conn), wsadów (body size), timeoutów (w tym rownież proxy_connect_timeout) i tysiąc innych rzeczy. Widziałem ogrom ruchu na GET /socket. Burst-limity załatwiły sprawę, ale problem pozostał. (tu się okazało, że na niektórych urządzeniach, głównie Mac oraz iOS, apka ignoruje timeout miedzy kolejnymi próbami nawiązania połączenia, gdy serwer zamyka socket i próbuje non-stop odnowić połączenie, aż do skutku - co b. mocno mnie zmyliło). Esz, cieżkie to były 3 dni, naprawdę.

Tak więc odpowiadam, co wywaliło cały system. W apkach nie robi się każdorazowo połączenia i rozłączenia z bazą, gdy idzie request (bo to mocno spowalnia, trzeba by wykonywać każdorazowo handshake'a itd.) - zamiast tego korzysta się z tzw. poola, czyli puli, która trzyma określoną liczbę klientów.
const pg = require('pg');
const pool = new pg.Pool(config);
let client = await pool.connect();

await client.release();
Pool wydaje klienta, kiedy trzeba. Po "robocie" klient wraca do poola, gotów do kolejnych akcji. I tak w kółko. Lurker korzysta ze sterownika node-postgres, w którym domyślna liczba owych klientów w poolu wynosi… 10! Co trzeba koniecznie zmienić, podbijając moocnooo w górę. Otóż jakimś nieumyślnym cudem zakomentowałem ten parametr i liczba klientów w poolu spadła do wartości domyślnej, czyli 10. Co powodowało laga, bo jeśli wchodzili nowi ludzie, to musieli czekać aż zwolni się klient: można to przyrównać do stania w kolejce. Masz 10 kas w sklepie i ustawiasz się do jednej z nich i czekasz. 4 workery dają 4 sklepy, w każdym po 10 kas, ale to nadal za malo sklepów i kas - coś jak Carrefour przed świętami (ruch idzie cały czas w górę).

No i to tyle. Przepraszam wszystkich, że dałem ciała. Chochlik w kodzie, jak to sie mowi. Można robić memy, zapraszam! (bana nie będzie!)

Podsumowując, problem był wyjątkowo ciężki do wykrycia. Wiele rzeczy tutaj mnie zmyliło. Jako ciekawostkę dodam, że lurker był w przeszłości dwa razy ddosowany (nawałem pakietów z botneta) i nawet tego userzy nie odczuli za bardzo, bo całość skończyła się po 2 minutach. Dlaczego? Ano dlatego, że lurker podnajmuje hosting u Hetznera (TOP 6 najwiekszych dostawców). Jeśli ktoś rozpoczyna ddos na jakąś maszynę, wpływa to bezpośrednio na stabilność całej sieci u dostawcy, dlatego bardzo sprawnie wycina on na głównym routerze podejrzany ruch (to leży także w jego interesie). Ja natomiast - jako admin (ich klient) - dostaję maila z info, co właśnie sie dzieje i że zaraz zostanie sprawa załatwiona. Jest to bardzo kompleksowa obsługa i bardzo fachowa, monitorowana 24h na dobę. Tak więc na tem moment CloudFlare nie jest potrzebny

Od jutra wracam do kodzenia. Mam sporo zaległości, bo praktycznie cały tydzień w plecy. Ale spokojnie, nadrobimy

41

EDIT: Proszę czym prędzej dać F5, bo socket odrzuca połączenia i się robi zapętlenie mogące powodować crasha przeglądarki!

(dotyczy tylko zalogowanych userów)

#lurkerchangelog / właśnie wprowadziłem grubego fixa (przez ostatnie 2 dni przebudowałem z ~10% backendu). porzucone całkowicie zostały sockety. zobaczymy na próbe jak bedzie teraz.

apka powinna zyskać na stabilności zobaczymy, czy to było to

jest kilka rzeczy do poprawy: wszystkie nietypowe zachowania beda rozwiązane w ciągu 2-3h licząc od teraz (czyli proszę zacząć zgłaszać rzeczy po godzinie 17). całą resztą wlasnie naprawiam

26

#lurkerchangelog / UWAGA! Sytuacja nie jest pod kontrolą, ale pracuję nad rozwiązaniem. Kolejne patche dzisiaj rano zostały wgrane. Za max 2-3h od teraz będzie widać, czy to coś dało (apka padnie znowu). jeśli to nic nie da, mam jeszcze 2-3 karty zapasowe do zagrania (ostatecznie: CloudFlare). ten problem zostanie dzisiaj do wieczora w pełni rozwiązany.

26

szybki #lurkerchangelog na dobranoc. dzisiaj wiele nie zrobiłem, bo caly dzien bylem zajety czymś innym
1. można już hotlinkować do zdjęć! czyli mogę znajomemu podesłać linka do fotki:
https://cdn-delphinus.lurker.pl/files/5kDlFuXZo2.jpg
i… nie wywali błędu. skrypt działa tak, że wynajduje daną fotkę i przekierowuje na posta, gdzie jest ona dostępna. a wiec nie 404, tylko post z foto. Dlaczego tak? ano dlatego, że fotka może być 18+, a nie chcę, żeby jakieś dziecko otworzyło takie zdjecie bez ostrzeżenia (na poście jest ostrzeżenie adult-content etc.);
2. naprawiłem czarną listę. LOL! nie wiem, jak to sie stało, ale mogły nas wołac osoby zablokowane

to tyle. jutro chyba robie sobie wolne, bo musze odsapnąć po dzisiaj
POZDRO ALL!

20

Dobra, za 15 min wdrażam swój kozacki skrypt limit reqsów. Ziomek nie odpuszcza, od kilku ładnych godzin trwa zaciekła batalia. Co chwilę go wycinam, ale powraca. Pora więc zakończyć ten pojedynek. Piszę tego posta, żebyście byli gotowi, że może całą apkę wywalić w kosmos: nie wiem, jak to zadziała (na testach w miare spoko!).

To była ciężka batalia, ale wygrał lepszy. Panie "haker", wiedz Pan, że zepsułeś mi dzień i niemiłosiernie wkurzyłeś użytkowników (bo od rana były problemy z apką). Ale nie mam do Ciebie żalu. Znam ten ból, i to pieczenie… Naprawdę Cię szanuję i doceniam umiejętności

< na Twoją cześć mały memik, upamiętniający ten trudny dzień >

Pewnikiem pan haker jeszcze powróci, niczym pewien rencista
#lurkerchangelog

33

#lurkerchangelog

dobra, widzę, że jednak ten DoS BYŁ celowy. wlasnie ponownie miał miejsce z innego adresu IP! za ok. 5 min skończę kodzić hot-fixa i będzie załatwione na amen!

eh… żyć nie dadzą

22

OK, awaria usunieta. teraz wlasnie wdrażam środki zaradcze, które zapobiegną podobnym sytuacjom w przyszłości. PRZYCZYNA: ddos na socketa

socket jest na tym samym API, co apka. Jedna parówa z adresu
89.75.52.xxx
(IP nie jest daną osobową, ale nie ma sensu podawać) robiła przeciążenie na sockecie. Co ciekawe, z tego adresu jest zarejestrowane konto jednego usera i po szybkim OSincie namierzyłem gagatka - jego konto na Filmwebie

zastanawiam się tylko, nim go rozq**ie na amen, czy to było aby na 200% celowo, a nie jakieś dziwne zachowanie przeglądarki (user-agent: Safari), na skutek tego, że coś namodziłem w apce na froncie, puściłem wczoraj commita, i jego macOS zwariował i "ddosował" (ziomek mógł zostawić kompa włączonego i pojsc gdzieś np. do roboty…). albo siedział na nim i się grubo zastanawiał, co mu tak procka grzeje
Pokaż spoilerbadam sprawę. ale beda jaja, jak się okaże, że sam siebie zddosowałem xDD

muszę zgłębić temat. to był ddos przeciążeniowy, czyli nie 1k reqs na sekundę, ale wyglądało jak reconnect normalny (ale trochę za ciężki). co sekundę otwiera sie socket z upgrade i wysyla kulawe pakiety (nie jest zabójcza tutaj ilość, ale jakość). hm, bo serio robić ddosa z oficjalnego konta…?

dobra, nvmd. skutek jest taki, że od rana były mocne awarie. zaraz na firewallu ustawiam burst limity dla socketa, żeby tego typu sytuacje nie zdarzały się w przyszłości.

mam nadzieję, że to było to! - dlatego w razie czego, proszę raportować. brawo ja, straciłem pół dnia, ale wnioski wyciągnąłem. ot, moje niedociągnięcie
#justlurkerthings #lurkerchangelog

31

kurde, jest jakaś grubsza awaria. coś się z serwerem stało niedobrego. szukam przyczyny, ale na razie nic nie znajduje. co kilka minut wywala apkę i rozłącza niektórych userów. prace naprawcze trwają. musze namierzyć problem, jeszcze troche to zajmie.

każdorazowy reset apki podnosi ją z kolan, ale za chwilę zaraz znowu pada. no tak średnio bym powiedział
#lurkerchangelog

17

#lurkerchangelog / ależ fakap!! od soboty(!) były problemy z działaniem apki. od teraz wszystko powinno być OK. jesli jeszcze raz komuś będzie pulsować logo w nieskończoność, bardzo proszę o pilny kontakt (oczywiście jeśli F5 nie rozwiąże sprawy )

ja pitole!!! …pod spodem opis ciekawego kejsu, jak to próbowałem narzędziami sieciowymi monitorować, w którym miejscu firewall wycina ludzi (jedne IP mogły wchodzić na stronę, inne w ogóle), a okazało się cos zupełnie innego

1) w sobotę u siebie na Debianie zrobiłem upgrade systemu (robię raz na miesiąc średnio);
2) zaktualizował się także node.js, z wersji v14.12 na v14.13;
3) robiłem w międzyczasie dużo buildów i deployów na serwer (update funkcji, bo codziennie coś tam kodzę);
4) wszystkie paczki (moduły npm) instalują się po stronie serwera (npm install);
5) ale… jeden z nich się mocno wyróżnia. nazywa się bcrypt. to jest plugin, ktory wymaga skompilowania i przy zmianie wersji node-a, trzeba ją zrobić ponownie;
6) na serwerze (do teraz) miałem wersję node v14.12 (a u siebie, od soboty, v14.13), bcrypt nie działała jak trzeba;
7) ten moduł (bcrypt) na lurku służy m.in do resetowania hasła (hashuje nowe hasło usera). za każdym razem, jak ktoś resetował hasło, ubijał workera;
8) na serwerze jest 6 workerów - są one przypisane do klientów przez adres IP (tzw. ip-hash, zamiast klasycznego round-robin), 1 user = 1 przypisanie workera na stałe (bo korzystamy z socketów i to nie może byc zmieniane w locie);
9) jak worker padł, ludzie nadal byli do niego przypisani (to nie było klasyczne padnięcie, że pm2 może zrobić reset workera, a proxy-server przekierować ruch na nowy worker), ale ciche padnięcie, które nie zwracało żadnych błedów, a po prostu zwieszało worker na amen (robił się wieczny pending i timeout ubijał połaczenie, zero info w logach, gdziekolwiek);

tak wiec nie było problemu z firewallem… niemniej tak: z jednych adresów (przypisanych do "martwych" workerów) nie dało się wchodzić, podczas gdy inne adresy IP działały bez zarzutu. (a więc po długiej batalii, gdzie najpierw sprawdzałem czemu PWA na telefonie nie śmiga, a potem proxy z Bułgarii, a potem jeszcze inne rzeczy), eh.. cieezki temat

to tak w skrócie jesli ktoś jeszcze doświadczy pulsującego loga, proszę o info, bo to wówczas bedzie znaczyło, ze to nie było to (ale to było to ). daję sobie 48h na testy, jak sie w tym czasie ani razu nie wysypie, bedzie ok. nie bede resetować workerów, czyli finalnie wszystkie padną i apka (dla każdego) przestanie działac, co bedzie potwierdzeniem, że jest nadal lipa (ale nie powinna być).

POZDRO!

21

Dobre wieści! od wczoraj ani razu nikomu nie wywaliło komunikatu "Wystąpił nieoczekiwany błąd. Został zgłoszony. Spróbuj ponownie za chwilę", i już chyba się nie pojawi! Extra! parę razy zwiesiłem dzisiaj apkę i pulsowało logo (Bo się nie wczytała), sorka!
#LurkerChangelog / F5

- dzisiaj troche pomniejszych rzeczy. głównie backendowych. zacząłem sitemapke z lekka.
- z frontu: dorobienie liczby otwarć posta (ikonka zakładki). przed chwilą machnąłem hotfixa, że liczba ta jest bezposrednio skorelowana z adresem IP, dlatego można dawać F5 @ incognito w opór, a tak to nic nie da. naprawdę chciałem to zrobić po linii najmniejszego oporu, ale czasami się z Wami nie da (na głównej ktoś w tym poście nabił 350 wyświetleń, LOL!! -- https://www.lurker.pl/post/zCPHEQc2u8);
- z innych ogłoszeń: podkręciłem Infinite Scrolla - czasami nie zaskakiwał, jak było mało postów do pokazania;
- na stronie tagu, gdy się kliknie DODAJ WPIS, automatycznie wstawia się dany tag.

19

#LurkerChangelog / F5

- drobna przebudowa frontendu;
- naprawa białego tła na dole na stronie z tagami;
- zmiana komunikatu dla usera przy moderatorskim usunieciu wpisu: za usuniecie duplikatu od teraz nie ma punktów karnych / ostrzeżenia (nigdy nie było, ale powiadomka mówiła co innego, najmocniej przepraszam za wprowadzenie w błąd!);
- dorobiłem szybki tutorial dla RSS-owców, dostępny pod adresem: https://www.lurker.pl/feed-rss (w menu po prawej);

Od jutra rozpoczynam pilne prace nad shoutboxem (czatem): tak że będzie można pisać na żywo (LIVE), zamiast spamować mikro wydarzeniami bieżącymi. czat bedzie na górze mikrobloga, dostępny tylko dla osób zalogowanych

24

jak patrzę na ten flood od Emila, to już widzę pewną rzecz: dlatego otwieram referendum. Mam taki zamysł: mikroblog nie może działać jak czat / snapblog (koncepcja snapów była chwilę przy v2, miała zastąpić mikro), ale upadła. Wydaje mi się, każdy post, który jest dodawany powinien (poza tagami) mieć pewną wartość: po to jest system wielowątkowych komentarzy (drzewo), żeby można było prowadzić rozbudowane dyskusje.

tutaj nie chodzi o to, że "jak Cie nie interesuje F1 to czarnolistuj", ale wręcz odwrotnie: mnie właśnie interesuje F1 i jak potem wejdę na tag
/tag/f1
, to bede się przebijać przez trylion postów w stylu: "ale za**biście pojechał ten zakręt!", albo: "widzieliście jego minę!". uważam, że to za mało na mikro.

Wg mnie powinno być tak: rozpoczyna się nowy event, otwieram nowego posta: komentujemy mecz Polska-Bułgaria, zapraszam! i tam nawalmy w komentarzach. ludzie sobie mogą sortować wg najwnowszych, więc elegancko niczego nie pominą. zaraz dodatkowo dojdzie możliwość śledzenia odpowiedzi do wpisu, więc beda powiadomienia przychodzić itd.
#lurkerchangelog . Proszę ten wpis zaminusować, jeśli się nie zgadzasz, zaplusować, jeśli masz podobne zdanie oraz napisać komentarz, jeśli chcesz coś dodać od siebie.
@reflex1, Ty takze jestes fanem meczy i komentowania na żywo, dlatego Ciebie również zapytuje. / @Emil i pozostali. prosze o info.

chodzi też o to, aby uczynić mikroblog bardziej wartościowym. głupio trochę, że ja pod spodem piszę jakiś autorski wpis nt. covidu, gdzie jest 30+ komentarzy (i nikt sie nie wyzywa, super, wow! )

bardziej bym to wątkował w stylu: pierwsza osoba z rana pisze: dobrego dnia wszystkim! a pozostali w komentach odpisują i takze innym życza dobrego dnia i smacznej kawusi: jako jeden pogrupowany wątek, a nie że np. 100 postów leci, gdzie każdy każdemu życzy (teraz tego nie ma, ale jak sie zwiekszy ruch, to bedzie).

pamiętajcie, że my nie idziemy w ilość. u somsiada na mikro wpada kilka postów na sekundę, ale to jest tak bardzo poor content, że nawet tego nie oceniam

tutaj pomyślę, żeby dla ludzi w stylu live-posting dorobić jakiś czat czy coś. taki shoutbox, coś jak na Discordzie.

25

#lurkerchangelog nr 2 dzisiaj, bo wczoraj nie było

szybki update przed spankiem:

- cytowanie zaznaczonego tekstu: zaznaczasz text, klikasz ODPOWIEDZ i się wstawia text
- pare osób skarżyło się, że edytor im sie przez przypadek zamknął: pamiętam, że bankowo @Anty_Anty oraz @Emrys_Vledig -- teraz klikając ANULUJ, trzeba kliknąć dwa razy, celem potwierdzenia zamknięcia - musi jednak być jakiś tekst napisany, inaczej nie trzeba potwierdzać (tak, te przyciski są blisko, można było nie trafić)

Dobrego wieczora, CIAU!
// PS. jutro stworze zakładkę dla czytnika RSS z ikonką, żeby ludzie mogli się podpinać. mam w planach moduł Ulubione / Ukryj posta, a także listę tagów

---- pamiętajcie o F5! ~ z fartem

17

UWAGA! Oficjalne ogłoszenie: w nawiązaniu do tego postu - https://www.lurker.pl/post/3hCoLk6p- - od teraz tagi krytyczne, takie jak
#LGBT
czy
#Polityka
są wymagane także przy tagach autorskich oraz grupowych. @ziemianin: a więc jak dodajesz
#codziennaprasowka
i jest tam element polityczny, musisz dodać
#polityka
. @RequestSerializer, podobnie: jak piszesz o LGBT to poza swoim autorskim, dodajesz jeszcze
#LGBT
. Bezapelacyjnie!

Dzisiaj zrobiłem bardzo znaczący update backendu (można więc przyjąć, że jesteśmy już w wersji v3.1). Naprawiłem gruby błąd, ktory rozłączał baze danych i wyrzucał komunikat błędu. Może się okazać, że coś sie wysypało gdzies po drodze: jeśli zobaczycie błędy, dajcie znać

A teraz czas na #lurkerchangelog / F5, aby zmiany były widoczne

- od teraz jako tagi autorskie oraz grupowe mozna zastrzegać tylko takie, które mają w kolekcji poniżej 10 postów, a więc są unikatowe (pozostałe tagi: trzeba się do mnie zgłosić - i w przypadku decyzji pozytywnej, przydzielę tag ręcznie);
- naprawiłem klikanie w mikropoście: od 2 dni było tak, że klikniecie rozwijało posta oraz wysuwało modal jednocześnie. teraz najpierw rozwija treść, a dopiero potem wysuwa modal;
- wiele osób pytało, dlaczego do jednego wołania przychodzi caly czas w kołko ta sama powiadomka. otoz jak autor edytuje posta, to każdorazowo (po zmianach) przychodzi notifka. teraz dorobiłem odpowiedni komunikat, że widać, czy to wołanie czy update;
- naprawiłem spoilery w wołaniach: od teraz spoiler jest w całości ukryty + wyświetla [[ SPOILER ]], nie zdradzając nic, co jest w środku ;
- czytnik RSS! dostępny pod adresem
/rss
oraz
/rss/:tag
, np.
/rss/heheszki
. Obsługuje także 2 parametry:
minRate
- minimalna ocena posta (np.
minRate=10
[liczba całkowita], domyślnie: 5) oraz
space
(
space=mikro|makro
, domyślnie: wszystko). Te info dodam jutro w widocznym miejscu.

RSS Feed: https://www.lurker.pl/rss
RSS Feed dla głównej: https://www.lurker.pl/rss?space=makro
RSS Feed dla mikro: https://www.lurker.pl/rss?space=mikro
RSS Feed dla tagu
#polityka
: https://www.lurker.pl/rss/polityka
RSS Feed dla tagu
#heheszki
z mikro od 15+: https://www.lurker.pl/rss/heheszki?minRate=15&space=mikro
itd.

20

Codzienny #lurkerchangelog / F5 jesli nie widać zmian

Dzisiaj znowu skromnie (bo cały dzień pisałem z nowymi userami). Zrobiłem tak:
- od teraz wyświetają sie oceny oceny upvotes oraz downvotes,
- naprawa miniaturek postów na mobile (nie wyświetlały się wcale).

Jutro przysiądę trochę mocniej

Dobrego wieczora!

32

#lurkerchangelog nr 2 sprzed chwili, jeszcze przed spankiem, F5

ponieważ nie da się zaspokoić wszystkich, to chociaż zrobię coś, co spodoba się kazdemu

1) naprawilem podpowiadajkę: @reflex1 zgłaszał, że trzeba wpisać min. 3 litery przy nazwie usera, bo nie działa. teraz juz działa.

2) oraz - uwaga! - jak są wyswietlone podpowiedzi, to wcisnięcie klawisza TAB, wstawia pierwszą podpowiedź z brzegu. mam nadzieje, że to okaże sie wygodne

dobrego wieczora, POZDRO!

17

#lurkerchangelog / F5

poniższe punkty możecie komentować poniżej

- blokada zamykania modala, gdy edytor jest otwarty (przepraszam wszystkich tych, którzy stracili swe posty na skutek przypadkowego Escape - press F );
- podlinkowanie userów w oknie plus./minus;
- zostały wprowadzone tagi krytyczne, które należy dodawać, jeśli post ma określony charakter. Tagi te wypisane są pod edytorem przy pisaniu postów. Zaliczają się do nich (na ten moment):
#heheszki
#polityka
#geopolityka
#heheszkipolityczne
#memypolityczne
#bekazprawactwa
#bekazlewactwa
#lgbt
. Brak owych tagów będzie skutkować cofaniem postów. Powyższe tagi miały być zbanowane dla niezalogowanych, ale po głębszej analizie zmieniłem decyzję: widoczne sa dla niezalog. od 15 pkt. (normalnie niezalog. widzą content od 5+);
- od teraz każdy post musi mieć min. 1 tag (nie można dodawać postów bez tagów);
- Multipost od tej pory jest wyłącznie dla tagów autorskich (po to on jest: najbardziej wartosciowe treści, które nie są w formie linka powinny lądować i na mikro, i na głównej). Autor decyduje o tym, gdzie post ma wylądować, ale jeśli ma być multipostem, musi mieć tag autorski.

11