Wpis z mikrobloga

#programowanie potrzebuję stworzyć bota, który automatycznie potrafiłby odbierać zaproszenia od nowych użytkowników na steamie, akceptować "zaproszenie do wymiany" oraz akceptować gifty, które wyśle użytkownik botowi (przy okazji powinien sprawdzać co to za gifty i wysyłać na czacie "kwotę").

Tylko nie mam za bardzo pojęcia, w jaki sposób to zrobić. Widzę 2 wyjścia.

#1. Stworzenie własnego "klienta" Steam, gdzie musiałbym przechwycić w jaki sposób Steam komunikuje się z własnym serwerem i spróbować to zaimplementować. Jednak wydaje mi się to zbyt trudne.

#2. Stworzenie aplikacji, która imitowałaby kliknięcia na ekranie (kliknięcie w "Akceptuj", "Jestem gotowy do wymiany" itd.). Jednak tutaj za bardzo nie mam pojęcia jak mogę to wykonać - jak przechwytywać okna w linuxie? Albo jakaś obsługa zdarzeń?

Proszę o jakieś nakierowanie mnie na jakąś "technologię", bibliotekę czy chociaż pomysł.
  • 15
  • Odpowiedz
@emil1403: Myślę, że tym mogę załatwić sprawę "kliknięć". Pozostaje jednak coś dotyczącego "zdarzań", czyli kiedy wyskoczy okienko "XXX zaprasza do wymiany" dopiero wtedy ma w to miejsce kliknąć. Mam co chwilę ładować screena kawałka ekranu i sprawdzać czy nie wyskoczyło powiadomienie? Do tego dochodzi kwestia kilku wymian na raz (co może się zdarzyć) - musi być jakieś przełączanie okien...
  • Odpowiedz
@Zalazdi: 1) na pewno jest łamaniem regulaminu i w przypadku wykrycia wiąże się z banem. Nie polecam (pomijając już techniczne problemy, ale na pewno gdzieś na necie musi to być już rozpracowane, przynajmniej w części)

2) autoit? język trywialny, ale do dupy, tak jak i rozwiązanie

3) może jakieś api jest dostępne? to by było najlepsze rozwiązanie.
  • Odpowiedz
@Zalazdi: Nie musisz robić zrzutu ekranu. Możesz np. "kazać" kursorowi najechać na miejsce gdzie ma się pojawiać powiadomienie i jeżeli jest tam odpowiedni kolor (pod kursorem) to znaczy że jest powiadomienie. Potem klikasz na potwierdzenie i finalizujesz transakcję. Potem mysz jedzie na przycisk gdzie pojawią się inne powiadomienia i sprawdzi czy w czasie tamtej transakcji pojawiło się coś nowego :)
  • Odpowiedz
@KrzaQ2: 1) Czy jest czy nie jest - tak na prawdę mnie to nie interesuje, jestem tylko programistą.

3) API mają, jednak nie jest ono do zarządzania kontem. Można pobrać tylko informacje o użytkowniku, jakieś bzdetne statystyki od TF2 i to wszystko.

Znalazłem właśnie 3
  • Odpowiedz
@Roballo: Więc tak... Ściągnąłem bibliotekę, skompilowałem, uzupełniłem plik konfiguracyjny i uruchomiłem. Bez większych problemów. Automatycznie akceptuje zaproszenia od osób i odpowiada na wiadomości. Jednak kiedy próbuję zaprosić bota do wymiany, dostaję wiadomość:

Użytkownik TestBot nie jest dostępny do wymiany. Użytkownik TestBot otrzyma więcej informacji, jeżeli zaprosi cię do wymiany.
Doczytałem, że potrzebny jest uruchomiony Steam Guard przez conajmniej 15 dni. Jednak to może być problem - muszę dodać obsługę SteamGuard
  • Odpowiedz
@Zalazdi: Ja początkowy dopiero w te klocki i byłem ciekawy właśnie możliwości obejścia/wejścia w klienta.

Skoro oni podłączyli się do tego, to może warto któregoś z autorów zapytać?
  • Odpowiedz
@Roballo: Przed chwilą odkryłem, że można zalogować się bez problemu, mając nawet SteamGuard. Wystarczy wpisać w okno programu kod, który przychodzi na maila. Jednak i tak muszę odczekać te 15 dni, zanim będę mógł zacząć cokolwiek testować i pisać. Nie mam drugiego konta, które było wcześniej aktywowane. Jesteś zainteresowany "ot tak" czy masz chęć napisać / masz jakiś pomysł na aplikację korzystającą z tego?
  • Odpowiedz
@Zalazdi: Właściwie Ty wyczerpałeś mój pomysł na aplikację, bo też chciałem mieć automatyczną odpowiedź :) ale to tam dalekie myśli były i nagle zjawiasz się z tym :>
  • Odpowiedz
@Roballo: Cóż.... Mój pomysł jest trochę bardziej zaawansowany niż "automatyczna odpowiedź" :) Integracja z WWW i inne bajery. Nie chcę całego pomysłu przedstawiać, ale jeszcze długa droga do odpalenia serwisu. Do tego dochodzi czas oczekiwania tych 15 dni...
  • Odpowiedz