Łączenie powiadomień

Łączenie powiadomień
ShookTea
  • Rejestracja:około 12 lat
  • Ostatnio:prawie 6 lat
  • Lokalizacja:Wrocław
  • Postów:629
5

Przypomnienie po dwóch latach propozycji: Stackowanie powiadomień

Czy nie lepiej byłoby dostać jednego powiadomienia zamiast 20 do tego samego tematu?


Marooned
Administrator
  • Rejestracja:ponad 22 lata
  • Ostatnio:około 18 godzin
  • Lokalizacja:Poznań
4

Rzeczywiście, temat wart przemyślenia.
Weekend mnie tu nie było i oto wynik:
weekend na 4p.png

Z czego 90% to komentarze pod dwoma postami albo polubienia postu.


flowCRANE
Moderator Delphi/Pascal
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 6 godzin
  • Lokalizacja:Tuchów
  • Postów:12166
0

@Marooned - liczę, że w tej wiadomości dostałeś wskazówki jak powyłączać sobie powiadomienia dla pewnych rzeczy :]

Ja mam większość wyłaczone, bo nie potrzebuję się aż tak wiązać z danym wpisem na mikroblogu lub z jakimś wątkiem, dlatego też nie mam zawalonej skrzynki powiadomień; Wystarczy, że dostanę powiadomienie o wystąpieniu mojego nicku gdzieś w serwisie, ocenie mojego posta lub wpisu oraz akceptacji posta na forum; Reszta jest mi zbędna.


Pracuję nad własną, arcade'ową, docelowo komercyjną grą z gatunku action/adventure w stylu retro (pixel art), programując silnik i powłokę gry od zupełnych podstaw, przy użyciu Free Pascala i SDL3. Więcej informacji znajdziesz na moim mikroblogu.
Marooned
Nic nie wyłączałem. Odklikałem tylko "obserwuj" na 2 postach.
flowCRANE
To oczywiście żart był, ale jeśli nie chcesz co logowanie przeżywać gradobicia powiadomień, to lepiej odznaczyć wszystkie zbędne opcje w ustawieniach; Ja mam to skonfigurowane i nie mam z tym problemu ;)
Marooned
Zazwyczaj mam max 8, więc jest ok. Wyjątkowo jakieś 2 offtopy w komentarzach rozgorzały.
Adam Boduch
Administrator
  • Rejestracja:około 23 lata
  • Ostatnio:10 dni
  • Postów:11948
3

To jest na pewno bardzo dobry pomysł. Wymaga jednak małej rewolucji w systemie powiadomień :)

Po 1) Co z mailami? Rozumiem, że nie dostajemy później e-maili?
Po 2) Zmiana tytułów powiadomień. Np. XXX dodał odpowiedź w wątku oraz XXX oraz 2 osoby dodały odpowiedź w wątku
Po 3) Jak rozumiem powiadomienie byłoby łączone do czasu aż nie zostałoby kliknięte i oznaczone jako przeczytane?

Jednym słowem: da się! Trzeba zakasać rękawy i robić ... :)

Marooned
Administrator
  • Rejestracja:ponad 22 lata
  • Ostatnio:około 18 godzin
  • Lokalizacja:Poznań
1

Prawdę rzeczesz, to mini rewolucja. Fajnie byłoby to zatem gruntownie przemyśleć zanim poleci pierwszy commit :)


Adam Boduch
Administrator
  • Rejestracja:około 23 lata
  • Ostatnio:10 dni
  • Postów:11948
0

Otóż to @Marooned. Obecnie powiadomienia to 3 tabele w bazie danych. W jednej z nich konfigurujemy nagłówki powiadomień. Np. {sender} dodał wpis na mikroblogu. Na etapie dodawania nowego powiadomienia dla usera, maska {sender} jest podmieniana na nazwę użytkownika. Teraz musimy w tabeli, w danym rekordzie gromadzić również informację o ilości użytkowników którzy dodali np. odpowiedź w tym samym wątku.

Należy jednak wziąć pod uwagę, że powiadomienia dotyczą nie tylko forum ale również innej części serwisu. Należy więc nadawać unikalne ID dla konkretnego powiadomienia, dedykowanego dla danego użytkownika. Chodzi o to, że jeżeli istnieje już nieprzeczytane powiadomienie o dodaniu nowego posta w obserwowanym wątku, kolejne powiadomienie nie powinno dodać nowego rekordu do DB a zmodyfikować już istniejący.

Marooned
Administrator
  • Rejestracja:ponad 22 lata
  • Ostatnio:około 18 godzin
  • Lokalizacja:Poznań
0

A czy nie miałoby sensu nie zmienianie zapisu, a jedynie agregowanie po pobraniu danych? Ja tak bardziej dumam, bo to Ty wiesz co tam w bazie piszczy.


Adam Boduch
Administrator
  • Rejestracja:około 23 lata
  • Ostatnio:10 dni
  • Postów:11948
0

Być może by miało... obecnie system jest dość prosty: dodanie nowego powiadomienia uruchamia trigger, który zwiększa Ci licznik nieprzeczytanych powiadomień. Dzięki temu nie trzeba liczyć COUNT w locie, aby obliczyć ile masz powiadomień.

Adam Boduch
Administrator
  • Rejestracja:około 23 lata
  • Ostatnio:10 dni
  • Postów:11948
6

Póki co doszedłem do tego etapu:

e9f56a67ee.png

Jak widać na screenie nagłówek powiadomienia zmienia się w zależności ile powiadomień zostało połączonych.

ShookTea
integer? ridiculus? Nie wygląda to na klasyczne lorem impsum :)
flowCRANE
Adam, lepiej by wyglądało tak: Bald (oraz 3 inne osoby) docenił Twój post; Ale zapowiada się ciekawie ;)
Adam Boduch
Administrator
  • Rejestracja:około 23 lata
  • Ostatnio:10 dni
  • Postów:11948
3

Udało się wprowadzić grupowanie. Uwagi mile widziane. Jeżeli jednak ktoś ma włączone powiadomienia e-mail, to te nadal przychodzą tak jak przychodziły. Uwarunkowane jest to tym, że w mailach znajduje się często treść - np. postu. Tak więc potencjalny "obserwator" może sobie czytać dany wątek nie zaglądając na 4p nawet... (tak, wiem z marketingowego punktu widzenia nie jest to opłacalne :P)

ShookTea
I tak mam wszystkie powiadomienia mailowe wyłączone :)
flowCRANE
Moderator Delphi/Pascal
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 6 godzin
  • Lokalizacja:Tuchów
  • Postów:12166
0

@Adam Boduch - ja mam małą uwagę co do treści (pisałem o tym wcześniej w komentarzu):

list.png

Źle to wygląda - "dam1an (oraz 5 osoby) [...]"; Byłbym skłonny do rozróżniania ilości tych innych osób i dodania słówka "innych", np.: "dam1an (oraz 5 innych osób) [...]"; Ale tak to fajnie działa - bardzo dobra funkcja :]

No i inna jeszcze sprawa - wszystkie powiadomienia otrzymałem od jednego użytkownika, więc przed wygenerowaniem treści złączonego powiadomienia trzeba by sprawdzić od ilu osób faktycznie dostało się powiadomienia i tę liczbę podać w treści.


Pracuję nad własną, arcade'ową, docelowo komercyjną grą z gatunku action/adventure w stylu retro (pixel art), programując silnik i powłokę gry od zupełnych podstaw, przy użyciu Free Pascala i SDL3. Więcej informacji znajdziesz na moim mikroblogu.
edytowany 2x, ostatnio: flowCRANE
ShookTea
"wszystkie powiadomienia otrzymałem od jednego użytkownika" tak, też tak miałem, potwierdzam :)
Adam Boduch
Administrator
  • Rejestracja:około 23 lata
  • Ostatnio:10 dni
  • Postów:11948
1

@furious programming: dodałem odmianę słowa osoba, przy najbliższej okazji będzie na produkcji.
Fakt, system zlicza ilość powiadomień do danego postu, czy też mikrobloga - nie unikalność loginów.

flowCRANE
Super, czekam więc na aktualizację ;)
flowCRANE
Moderator Delphi/Pascal
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 6 godzin
  • Lokalizacja:Tuchów
  • Postów:12166
0

Czyli póki co nie będzie zliczania powiadomień tego samego typu po ilości loginów, nie ilości samych powiadomień?

@Adam Boduch - jest jeszcze jedna sprawa; Otóż prawdopodobnie po modyfikacji powiadomień, popsuło się coś z powiadomieniami o jakiejś działalności w obserwowanych wątkach; Pojawiły się odpowiedzi w obserwowanym wątku, a ja nie otrzymałem żadnego powiadomienia; Nie odznaczałem gwiazdki przy obserwowanym wątku ani nie wprowadzałem zmian w panelu użytkownika, w dziale dotyczącym powiadomień;

Trzeba by to sprawdzić.


Pracuję nad własną, arcade'ową, docelowo komercyjną grą z gatunku action/adventure w stylu retro (pixel art), programując silnik i powłokę gry od zupełnych podstaw, przy użyciu Free Pascala i SDL3. Więcej informacji znajdziesz na moim mikroblogu.
Marooned
Ja dostałem powiadomienie o odpowiedzi w obserwowanym wątku.
flowCRANE
Hmm... to dziwne w takim razie; Poczekam jeszcze, może dojdą;
Adam Boduch
Administrator
  • Rejestracja:około 23 lata
  • Ostatnio:10 dni
  • Postów:11948
0

@furious programming: jeżeli nie będziesz otrzymywał powiadomień o odpowiedzi w obserwowanym wątku to daj znać. Ja sobie włączyłem obserwowanie tego wątku więc zobaczymy czy przyjdą powiadomienia :)

dzek69
Moderator
  • Rejestracja:ponad 18 lat
  • Ostatnio:4 dni
  • Lokalizacja:Rzeszów
0

odpowiadam


Adam Boduch
Dostałem, dzięki :)
flowCRANE
Moderator Delphi/Pascal
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 6 godzin
  • Lokalizacja:Tuchów
  • Postów:12166
0

@Adam Boduch - dziś w sumie cały dzień nie logowałem się, ale dostałem kilka powiadomień z obserwowanego wątku, więc póki co znów wszystko działa dobrze (łączenie powiadomień także);

Jakby coś się znów działo to dam znać.


Pracuję nad własną, arcade'ową, docelowo komercyjną grą z gatunku action/adventure w stylu retro (pixel art), programując silnik i powłokę gry od zupełnych podstaw, przy użyciu Free Pascala i SDL3. Więcej informacji znajdziesz na moim mikroblogu.
edytowany 1x, ostatnio: flowCRANE
Marooned
Administrator
  • Rejestracja:ponad 22 lata
  • Ostatnio:około 18 godzin
  • Lokalizacja:Poznań
0

Zauważyłem, że nie są łączone powiadomienia o odpisaniu na mój wpis na mikroblogu.


Zobacz pozostały 1 komentarz
msm
Mój routing skróconych linków do postów jest pierwszy w kolejce :P.
Adam Boduch
Tak jest. Dorobie. Zapisuje do listy.
Marooned
Tylko delikatnie dopytuję ;)
Adam Boduch
Zrobione. Mam nadzieje ze bedzie OK :)
Marooned
Pożyjemy, zobaczymy ;) Dzięki
Marooned
Administrator
  • Rejestracja:ponad 22 lata
  • Ostatnio:około 18 godzin
  • Lokalizacja:Poznań
0

Zauważyłem złe grupowanie powiadomień - per wątek a nie per post
złe grupowanie powiadomień - per wątek a nie per post.png


Adam Boduch
Administrator
  • Rejestracja:około 23 lata
  • Ostatnio:10 dni
  • Postów:11948
0

@Marooned: rzeczywiście. Sprawdziłem i masz rajcę. Grupowanie odbywa się na podstawie kilku czynników (nie wynikając w szczegóły techniczne) ale w takim przypadku jak ten zaprezentowany przez Ciebie - faktycznie - nie działa to zgodnie z zamierzeniami. Ciekawy przypadek, nikt nie wyłapał tego do tej pory :) Wymaga to poprawki, ale niestety nie można tego poprawić tak "na szybko". Będę musiał dodać kolejny parametr według którego odbędzie się grupowanie.

Marooned
Na screenie powyżej są jeszcze gdzieś™ dwa komentarze - jak widać, w tych 2 postach jest 1 i 4 nowe komentarze, a w powiadomieniu jest łącznie 7.
Marooned
Administrator
  • Rejestracja:ponad 22 lata
  • Ostatnio:około 18 godzin
  • Lokalizacja:Poznań
1

Szkoda, bo przez to umyka mi sporo komentarzy. Wiem, że są "gdzieś" w danym wątku, ale jak wątek ma kilka stron, to sporo ręcznego szukania.


dzek69
włącz powiadomienia mailowe, każdy komentarz dostaniesz na maila
Marooned
to się nazywa flood ;-)
flowCRANE
Dlatego właśnie nie korzystam w ogóle z powiadomień mailowych... :(
dzek69
nie jest tego wcale tak dużo ;)
Adam Boduch
Administrator
  • Rejestracja:około 23 lata
  • Ostatnio:10 dni
  • Postów:11948
1
Marooned napisał(a):

Zauważyłem złe grupowanie powiadomień - per wątek a nie per post

@Marooned: to zostało poprawione. Rychło w czas!

Marooned
Lepiej późno niż później ;-)
Marooned
Administrator
  • Rejestracja:ponad 22 lata
  • Ostatnio:około 18 godzin
  • Lokalizacja:Poznań
2

Mały odkop w kwestii grupowania
screenshot-20201102153126.png
Wydaje mi się, że nawias zlicza też tę pierwszą osobę, czyli dla 3 polubień jest Kowalski (oraz 3 inne) zamiast oraz 2 inne.


edytowany 1x, ostatnio: Marooned
Silv
Tak jest, to już od dawna widzę.
Adam Boduch
Administrator
  • Rejestracja:około 23 lata
  • Ostatnio:10 dni
  • Postów:11948
2

Ha, rzeczywiście! Że też nikt nie zauważył wcześniej :) Poprawione.

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)