Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Rekomendowane odpowiedzi

Opublikowano

Witam, nie wiem czy to dobry dział.

Chciałbym przedstawić bibliotekę do obsługi protokołu Gadu-Gadu napisaną w C# na podstawie opisu protokołu libgadu - http://libgadu.net/protocol/.

Użycie jest banalnie proste i sprowadza się do użycia kilku metod i eventów.

 

Download: https://www.amazon.com/clouddrive/share?s=pvh1ve6KR9os4nehGIKNXs

Skan: https://www.virustotal.com/pl/file/3ccfa276c4dd667da890dd5a9242273558288adadcab78ddb8a4018212e50565/analysis/1366568534/

Kod źródłowy jest dołączony do paczki oraz dostępny na GitHub'ie: https://github.com/Symeg/GG4NET

Paczka zawiera dokumentację XML w języku polskim, kod źródłowy oraz skompilowaną binarkę pod .NET 4.0 Client Profile.

 

Strona opisująca projekt z zawsze aktualną wersją do pobrania: http://szymonkatra.github.io/project/gg4net/

 

Możliwości:

  • logowanie
  • zmiana statusu
  • wysyłanie wiadomości
  • odbieranie wiadomości
  • powiadomienie o pisaniu
  • informacje o zmianie statusu osobom z listy kontaktów
  • obsługa publicznego katalogu
  • multilogowanie
  • import / eksport listy kontaktów do pliku / na serwer w starym formacie (CSV) i nowym (XML)
  • usługi HTTP (pobieranie obrazkowego tokenu, rejestracja, zmiana hasła, przypomnienie hasła)
  • rozmowy konferencyjne

 

 

Mały przykład użycia:

using System;
using GG4NET;

namespace Przyklad
{
    class Program
    {
        static void Main(string[] args)
        {
            GaduGaduClient gg = new GaduGaduClient(numer_gg, "tajne_haslo"); // wpisujemy oczywiście swoje dane
            gg.AddNotify(123456); // dodajemy osoby do listy kontaktów
            gg.AddNotify(654321); // możliwe również w trakcie połączenia

            gg.Logged += gg_Logged;
            gg.MessageReceived += gg_MessageReceived;

            gg.Connect(); // łączymy

            while (true)
            {
                gg.SendMessage(numer_odbiorcy, Console.ReadLine()); //wysyłamy wiadomość
            }
        }

        static void gg_Logged(object sender, EventArgs e)
        {
            Console.WriteLine("zalogowano");
        }

        static void gg_MessageReceived(object sender, MessageEventArgs e)
        {
            Console.Write(e.Uin + ": " + e.Message);
        }
    }
}
Opublikowano

Kod jest przejrzyście napisany i zawiera komentarze. Świetna robota.

Opublikowano

No tak ale brakuje przesyłania plików, rozmów głosowych, import/eksport listy kontaktów i wielu innych rzeczy więc ktoś musiał by dorobić, a tworzenie komunikatora który obsługuje tylko GG jest IMO bez sensu.

Zaimplementowałem podstawowe funkcje żeby można było napisać jakiegoś bota czy coś.

Opublikowano

@ref i UPDATE 1.1

Zmiany:

  • dodano import / eksport listy kontaktów do pliku / na serwer w starym formacie (CSV) i nowym (XML)
  • dodano usługi HTTP (pobieranie obrazkowego tokenu, rejestracja, zmiana hasła, przypomnienie hasła)
  • dodano rozmowy konferencyjne
  • zmiana kodowania z ASCII na windows-1250 (tak jak oryginalny klient)
  • poprawione offsety przy wysyłaniu/odbieraniu wiadomości (zawsze był dopisany jeden krzaczek)
  • dodano synchronizację kontekstu. Każdy event mógł być wywołany w innym wątku. Teraz jeśli piszesz graficzną aplikację wystarczy dać kontekst do właściowści SyncContext. (gg.SyncContext = SynchronizationContext.Current, namespace System.Threading)

DOWNLOAD: https://www.amazon.com/clouddrive/share?s=pvh1ve6KR9os4nehGIKNXs

SKAN: https://www.virustotal.com/pl/file/3ccfa276c4dd667da890dd5a9242273558288adadcab78ddb8a4018212e50565/analysis/1366568534/

W pierwszym poście również zaktualizowałem skan i download.

  • 2 miesiące temu...
  • 3 tygodnie później...
  • 5 miesięcy temu...
Opublikowano

Po wywołaniu metody ImportContactList powinieneś dostać odpowiedź od serwera w postaci eventu ContactListReceived.

Mając ContactListEventArgs z tego eventu, bierzesz listę kontaktów w postaci ContactList gdzie możesz iterować po poszczególnych kontaktach/grupach i po normalnie dodajesz do listboxa przez listBox.Items.Add(...).

 

BTW. Możesz sobie pobrać źródła z githuba i sam skompilować. Będziesz miał uproszczone tworzenie wiadomości (klasa MessageBuilder). Na razie nie działa tam wysyłanie i odbieranie obrazków.

  • 1 rok później...
  • 1 miesiąc temu...
Opublikowano

Czy projekt nadal jest rozwijany?

Niestety już nie, lecz biblioteka nadal działa. W planach jeszcze miałem tylko obsługę obrazków, ale aktualnie nie mam czasu na to.

 

Jeżeli chciałbyś pomóc to zachęcam do forkowania projektu i wysyłania pull requestów.

Opublikowano

Mam takie pytanie, czy da się jakoś zrobić bota, który automatycznie losuje rozmówców na gg? I jak tego dokonać?

Opublikowano

Mam takie pytanie, czy da się jakoś zrobić bota, który automatycznie losuje rozmówców na gg? I jak tego dokonać?

 

Możesz np. spróbować wyciągać dane z katalogu publicznego. Próbuj.

Opublikowano

W gg jest opcja losowania znajomych, potrzebowałbym coś, co samo dusi cały czas Losuj Dalej.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...