Skocz do zawartości


Zdjęcie

GroupChat History


  • Zaloguj się, aby dodać odpowiedź
22 odpowiedzi w tym temacie

#1 SimplyCactus

SimplyCactus

    Początkujący

  • Użytkownik
  • 4 postów

Napisano 2010.05.19, 14:05

GroupChat History 1.0.0.2


Data wysłania: 28.10.2012
Data aktualizacji: 28.10.2012

W odpowiedzi na temat z forum oraz własne potrzeby (strasznie mnie denerwuje że AQQ nie zapisuje w archiwum rozmów konferencyjnych GG... właśnie na takich rozmowach często dyskutuję o ważnych rzeczach do których chcę mieć później dostęp a nie że tego nie ma nigdzie) postanowiłem napisać cokolwiek co pozwoli mi na taką funkcjonalność.

Tak powstał mój pierwszy plugin - GroupChat History. Napisany w C++ Builder na podstawie przykładu "Hello" z http://beherit.pl

Jest bardzo prymitywny, ale wygląda na to że działa i np. do moich potrzeb powinien w zupełności wystarczyć.

Co to "cudo" robi? Tworzy pliki tekstowe o nazwie "<data pierwszej wiadomosci> <czas pierwszej wiadomosci> <id konferencji>.txt" do których zapisuje wiadomości w postaci "<nick> <data> <czas> <nowa linia> <wiadomość>".

Gdzie te pliki tekstowe tworzy? W podkatalogu "GroupChatHistory" katalogu w którym jest zainstalowana wtyczka czyli np. u mnie w C:\Users\cactus\WapSter\AQQ Folder\Profiles\cactus\Plugins\GroupChatHistory.

Co to jest <id konferencji>? Jest to coś co wyciągam z JID wiadomości (konkretniej część do małpy (@). Możnaby wykorzystać pełny identyfikator, ale wtedy nazwa pliku byłaby długa i mniej czytelna). Dla Jabbera jest to nazwa pokoju, a dla konferencji GG identyfikator w stylu "konferencjaN", gdzie N jest numerem sekwencyjnym nadawanym przez AQQ.

Możliwe, że lepiej by było inaczej identyfikować konferencje GG, np. po uczestnikach ale nie wpadłem na pomysł jak uzyskać informacje o uczestnikach konferencji.

Jeszcze raz podkreślam, że plugin jest prymitywny. Tworzy pliki tesktowe i przepisuje do nich wiadomości, tyle. Nie ma żadnych opcji konfiguracji.

Niemniej może komuś się przyda, póki AQQ "oficjalnie" nie zacznie wspierać archiwizacji konferencji...


Zmiany w GroupChat History 1.0.0.2
  • Ustawienie katalogu do zapisu plików tekstowych na podkatalog "GroupChatHistory" katalogu w którym jest zainstalowana wtyczkaka. Np. u mnie jest to C:\Users\cactus\WapSter\AQQ Folder\Profiles\cactus\Plugins\GroupChatHistory

Pobierz plikLista zmian

Użytkownik SimplyCactus edytował ten post 2012.10.28, 21:45


#2 Lord ByRad

Lord ByRad

    Expert

  • Użytkownik
  • 985 postów

Napisano 2010.05.19, 15:12

Co do nazywania plików, to myślę, że powinno wystarczyć jak dodasz do nazwy pliku czas rozpoczęcia konferencji (lub jej zaakceptowania - jeżeli jest to przychodząca konferencja). Można by nawet ten czas pobierać z pierwszej wiadomości w konferencji.

279.gif


#3 Mangel

Mangel

    Bywalec

  • Użytkownik
  • 158 postów

Napisano 2010.05.19, 15:27

Kocham Cie za tą wtyczkę i nienawidzę, za to, że nie była dostępna wczoraj... Ale ogólnie, bardziej kocham niż nienawidzę, a w efekcie, masz u mnie piwo. :-)
AQQ: Zawsze najnowsza Beta ~ Kompozycja: ProStandard ~ Wtyczki: TAKIE ~ System: Microsoft Windows XP Home Edition SP3 ~ Przeglądarka: IE8 (Domyślnie: Opera 10.x (zawsze najnowsza)
Dołączona grafika

#4 Gość_Dejvus_*

Gość_Dejvus_*
  • Gość

Napisano 2010.05.19, 15:37

Na taką wtyczkę czekałem :D

Co do nazywania plików, to myślę, że powinno wystarczyć jak dodasz do nazwy pliku czas rozpoczęcia konferencji (lub jej zaakceptowania - jeżeli jest to przychodząca konferencja). Można by nawet ten czas pobierać z pierwszej wiadomości w konferencji.


Dobry pomysł, @SimplyCactus to powinno rozwiązać ten problem :D

#5 UsagiAddict

UsagiAddict

    J̵ava͡Pr͝òg̢ram̵mer

  • Użytkownik
  • 1175 postów
  • MiejscowośćWrocław

Napisano 2010.05.19, 15:42

int licznik = 0;
while(plik "Konferencja_"+licznik+".txt" istnieje)
    licznik++;
stwórz plik "Konferencja_"+licznik+".txt";
dopisuj do niego co trzeba;
zamknij plik;

Does the scent of soil and beast
Breathe the life into the animal you hide
Dołączona grafika


#6 Beherit

Beherit

    In Sorte Diaboli

  • Wtyczkopisarz
  • 5026 postów

Napisano 2010.05.19, 22:28

Hah miałem w pliku TODO napisanie takiej wtyczki :P Dzięki za wyręczenie ;) Aczkolwiek mam parę "ale".

Tworzy pliki tekstowe o nazwie "<data>-<id_konferencji>.txt" do których zapisuje wiadomości w postaci "<nick> <czas> <nowa linia> <wiadomość>". Gdzie te pliki tekstowe tworzy? Wygląda na to że w katalogu Shared/Plugins/.

Ale przecież możesz tworzyć plik .dc2 (struktura takiego pliku jest podana na forum) dzięki czemu taki zapis będzie widoczny w historii AQQ ;) Tzn takie rozwiązanie na pewno będzie dobre dla MUC (Jabber/XMPP) gdzie nazwą pliku będzie po prostu JID takiej konferencji.

Co nie zmienia faktu, że lepiej by było jakoś inaczej identyfikować konferencje, np. po uczestnikach ale nie wpadłem na pomysł jak uzyskać informacje o uczestnikach konferencji. Nie mam za bardzo czasu się w to wgłębiać.

Zawsze możesz wygenerować unikatową nazwę dla takiej konferencji GG składającą się np z daty/godziny rozpoczęcia jej.

Btw. wtyczka działa tylko z czatami/konferencjami GG? Bo jeżeli tak to wtyczka jest bezużyteczna. Wiadomo - Jabber górą ;] Jednak liczę, że rozwiniesz bardziej wtyczkę m.in. o zapisywanie do plików .dc2 :)

#7 SimplyCactus

SimplyCactus

    Początkujący

  • Użytkownik
  • 4 postów

Napisano 2010.05.20, 04:52

Co do nazywania plików, to myślę, że powinno wystarczyć jak dodasz do nazwy pliku czas rozpoczęcia konferencji (lub jej zaakceptowania - jeżeli jest to przychodząca konferencja). Można by nawet ten czas pobierać z pierwszej wiadomości w konferencji.


Zawsze możesz wygenerować unikatową nazwę dla takiej konferencji GG składającą się np z daty/godziny rozpoczęcia jej.

Tak, dobry pomysł, zaraz wrzucę wersję gdzie nazwa pliku ma szablon "<data pierwszej wiadomosci> <czas pierwszej wiadomosci> <id konferencji>.txt"

Ale przecież możesz tworzyć plik .dc2 (struktura takiego pliku jest podana na forum) dzięki czemu taki zapis będzie widoczny w historii AQQ ;) Tzn takie rozwiązanie na pewno będzie dobre dla MUC (Jabber/XMPP) gdzie nazwą pliku będzie po prostu JID takiej konferencji.

Mówiłem, że plugin jest prymitywny, a nie wydaje mi się żeby było coś prostszego od przepisywania do pliku tekstowego bez trzymania się narzuconej struktury :). Ale przemyślę ten pomysł, chociaż raczej nie w najbliższym czasie bo mam dużo na głowie. Od razu rzuca się w oczy że ten format dc2 jest niestety ewidentnie przystosowany tylko do rozmowy z jedną osobą. Czyli żeby to zastosować wyglądałoby to tak jakbyśmy rozmawiali z "konferencją" i każda wiadomość w swojej treści dopiero by wypisywała swojego nadawcę. Nie widzę za bardzo innego rozwiązania.

Btw. wtyczka działa tylko z czatami/konferencjami GG? Bo jeżeli tak to wtyczka jest bezużyteczna. Wiadomo - Jabber górą ;] Jednak liczę, że rozwiniesz bardziej wtyczkę m.in. o zapisywanie do plików .dc2 :)

Bezużyteczna jak bezużyteczna, osobiście dopiero dzisiaj pierwszy raz skorzystałem z Jabbera, żeby sprawdzić taką sytuację :)

Na poziomie implementacji wygląda to tak że przechwytuję event AQQ_CONTACTS_RECVMSG i sprawdzam czy jest "rodzaju grupowego". Taki event leci zarówno z rozmów konferencyjnych GG jak i czatów Jabbera.
Przed chwilą przetestowałem i faktycznie działa, ale wtedy zapisuje pliki do innego katalogu - WapsterAQQ - co w sumie nie powinno dziwić.

Jeden problem jaki zauważyłem to funkcjonalność "Pobierz z serwera ostatnie wiadomości" przy dołączaniu do czatu Jabbera. Jeśli skorzystamy z tego np. dwukrotnie (wejdziemy na czat z pobieraniem wiadomości, wyjdziemy, znowu wejdziemy z pobieraniem wiadomości) to wiadomości zostaną zapisane dwukrotnie do pliku.

#8 Beherit

Beherit

    In Sorte Diaboli

  • Wtyczkopisarz
  • 5026 postów

Napisano 2010.05.20, 11:04

format dc2 jest niestety ewidentnie przystosowany tylko do rozmowy z jedną osobą. Czyli żeby to zastosować wyglądałoby to tak jakbyśmy rozmawiali z "konferencją" i każda wiadomość w swojej treści dopiero by wypisywała swojego nadawcę. Nie widzę za bardzo innego rozwiązania.

Sprawdzasz strukturę TPluginContact. PluginContact->JID to będzie nazwa pliku. W PluginContact->Resource oraz PluginContact->Nick masz przecież osobę która pisała na konferencji więc już jest rozwiązanie jak zapisywać pliki dc2. Czyż nie proste? :)

ale wtedy zapisuje pliki do innego katalogu - WapsterAQQ - co w sumie nie powinno dziwić.

Że co? xD Że jak? xD To Ty sam nie ustalasz tego katalogu? xD Ciekawe... Przecież w katalogu gdzie jest AQQ.exe użytkownik może nie mieć praw zapisu!!!!

Jeden problem jaki zauważyłem to funkcjonalność "Pobierz z serwera ostatnie wiadomości" przy dołączaniu do czatu Jabbera. Jeśli skorzystamy z tego np. dwukrotnie (wejdziemy na czat z pobieraniem wiadomości, wyjdziemy, znowu wejdziemy z pobieraniem wiadomości) to wiadomości zostaną zapisane dwukrotnie do pliku.

Też żaden problem. Sprawdzasz czy takie wiadomości już były (po dacie) i po sprawie.

#9 SimplyCactus

SimplyCactus

    Początkujący

  • Użytkownik
  • 4 postów

Napisano 2010.05.20, 11:41

format dc2 jest niestety ewidentnie przystosowany tylko do rozmowy z jedną osobą. Czyli żeby to zastosować wyglądałoby to tak jakbyśmy rozmawiali z "konferencją" i każda wiadomość w swojej treści dopiero by wypisywała swojego nadawcę. Nie widzę za bardzo innego rozwiązania.

Sprawdzasz strukturę TPluginContact. PluginContact->JID to będzie nazwa pliku. W PluginContact->Resource oraz PluginContact->Nick masz przecież osobę która pisała na konferencji więc już jest rozwiązanie jak zapisywać pliki dc2. Czyż nie proste? :)

Oczywiście, że mam informację o osobie która pisała na konferencji - przecież w wersji jaka jest teraz zapisuję tę informację do pliku tekstowego. W mojej wypowiedzi chodziło o coś zupełnie innego. W formacie DC2 można oznaczyć tylko kierunek "wiadomość wychodząca" albo "wiadomość przychodząca". "Nadawca" w danej rozmowie archiwalnej jest zawsze tylko jeden i jest "wyświetlany" na podstawie nazwy pliku z archiwum. Więc jeśli w jednej rozmowie archiwalnej chcemy rozróżniać wiadomości przychodzące od więcej niż jednego użytkownika (=konferencja) to można by to zaznaczyć dopiero w treści wiadomości, a przynajmniej ja nie widzę innego sposobu w tym momencie.

ale wtedy zapisuje pliki do innego katalogu - WapsterAQQ - co w sumie nie powinno dziwić.

Że co? xD Że jak? xD To Ty sam nie ustalasz tego katalogu? xD Ciekawe... Przecież w katalogu gdzie jest AQQ.exe użytkownik może nie mieć praw zapisu!!!!

Kurczę, ile razy mam powtarzać że plugin jest prymitywny xD. Plugin był z założenia "dla mnie" (a ja mam wszędzie prawa zapisu), tutaj został wrzucony "bo może komuś się przyda". Ale ok, z tym katalogiem to może przesadziłem, zmienię to dzisiaj bo to niewielka zmiana - z tego co widzę jest w API jakaś funkcja do zdobycia ścieżki katalogu w którym jest plugin.

Też żaden problem. Sprawdzasz czy takie wiadomości już były (po dacie) i po sprawie.

Kiedy sprawdzać? Za każdym razem? Niezbyt mi się podoba. W evencie AQQ_CONTACTS_RECVMSG nie ma zbyt wiele informacji o kontekście, nie wiem czy wiadomość przychodzi bo user skorzystał z opcji "pobierz ostatnie wiadomości" czy też po prostu konferencja/czat toczy się dalej. A w tym drugim przypadku szukanie za każdym razem czy jakaś zupełnie nowa wiadomość nie znajduje się już w archiwum to niepotrzebne obciążenie itp.

Użytkownik SimplyCactus edytował ten post 2010.05.20, 14:34


#10 Gość_Dejvus_*

Gość_Dejvus_*
  • Gość

Napisano 2010.05.20, 16:01

Kurczę, ile razy mam powtarzać że plugin jest prymitywny xD. Plugin był z założenia "dla mnie" (a ja mam wszędzie prawa zapisu), tutaj został wrzucony "bo może komuś się przyda". Ale ok, z tym katalogiem to może przesadziłem, zmienię to dzisiaj bo to niewielka zmiana - z tego co widzę jest w API jakaś funkcja do zdobycia ścieżki katalogu w którym jest plugin.


Ale według mnie ta wtyczka ma przyszłość, więc czemu by jej nie rozbudować? ;)

#11 SimplyCactus

SimplyCactus

    Początkujący

  • Użytkownik
  • 4 postów

Napisano 2010.05.21, 02:16

Bo w tym momencie mam dużo innych rzeczy na głowie i mają dla mnie większy priorytet niż ta wtyczka.

Poza tym wsparcie dla historii konferencji powinno być imo znacznie "głębsze" i zdecydowanie bardziej wbudowane/zintegrowane.
A tak jak napisałem powyżej już na poziomie formatu struktury archiwum AQQ widać że nie nadaje się on za bardzo do przechowywania konferencji.

Użytkownik SimplyCactus edytował ten post 2010.05.21, 02:19


#12 slavoy

slavoy

    Rozgrzewam się

  • Użytkownik
  • 60 postów

Napisano 2010.05.22, 11:27

Dajcie chłopakowi spokoj, napisal wtyczke dla siebie, a ze ja opublikowal to tylko sie cieszyc. Komus nie pasuje - nie uzywa. Ktos chce wiekszego wypasu - pisze wtyczke od poczatku... Proste :)

#13 karololszak

karololszak

    podróżnik w czasie

  • Moderator
  • 1562 postów

Napisano 2010.05.22, 17:15

No wiadomo, ale po co pisać wtyczkę od nowa, gdy już jedna jest - oraz dobrze się spisuje - i wystarczy ją tylko trochę udoskonalić?
  • kr2ysiek lubi to

Kiedyś były tu linki do moich stron, ale przez lata wszystko upadło... :(


#14 eSKej

eSKej

    Master Flamaster

  • Dekorator
  • 953 postów

Napisano 2010.05.22, 18:23

Ktos chce wiekszego wypasu - pisze wtyczke od poczatku... Proste :)


albo niech gnębi o to Oconnela, bo takie coś to powinno być wbudowaną funkcją komunikatora.

Użytkownik eSKej edytował ten post 2010.05.22, 18:24

  • Loosa, kr2ysiek i AK-47 lubią to

#15 Antix

Antix

    Początkujący

  • Użytkownik
  • 33 postów

Napisano 2013.02.27, 23:34

Da rade zrobić cos aby zapisywało to w archiwum a nie notatniku? 



#16 kr2ysiek

kr2ysiek

  • Pomocnik
  • 1501 postów

Napisano 2013.02.28, 00:19

Tylko autor to może zrobić. Każdy inny musiałby wtyczkę od zera napisać. I format archiwum słabo się nadaje do zapisu konferencji.
  • Antix lubi to

#17 Śledziks

Śledziks

    Początkujący

  • Użytkownik
  • 21 postów

Napisano 2013.07.29, 18:23

Autora wtyczki od trzech lat nie ma na forum, można spokojnie założyć, że została porzucona. Nie może ktoś stworzyć podobnej? Strasznie brakuje tego archiwum w AQQ.


  • Lord ByRad lubi to

#18 Woo-Cash

Woo-Cash

    Początkujący

  • Użytkownik
  • 17 postów

Napisano 2015.01.10, 10:36

Jak zainstalować tę wtyczkę w nowym AQQ? Zawsze wystarczało mi przeniesienie folderu Wapster, a teraz jak przeniosłem swój profil z Wapster do MyPortal, to połowę ustawień musiałem ręcznie zmieniać i nie włączyła mi się żadna wtyczka z folderu, w tym właśnie ta. W systemie dodawania wtyczek nie ma jej. A bardzo jej potrzebuję.


Użytkownik Woo-Cash edytował ten post 2015.01.10, 10:37


#19 Sauler

Sauler

    Bywalec

  • Użytkownik
  • 210 postów

Napisano 2015.01.10, 14:59

Pobierz ją z forum i zainstaluj.



#20 Woo-Cash

Woo-Cash

    Początkujący

  • Użytkownik
  • 17 postów

Napisano 2015.01.10, 15:04

Sęk w tym, że nie widzę opcji dodania wtyczki z pliku (tylko jakaś systemowa wyszukiwarka). A jak pobieram plik GroupChatHistory.aqq.zip, zmieniam rozszerzenie na GroupChatHistory.aqq i klikam dwa razy, to mam Nieobsługiwany format paczki.






Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych