Jak zrobić własne usuńKonto z Wykopu
Usuwamy wpisy ze swojego profilu za pomocą wykop_sdk_reloaded
Wprowadzenie
Nadchodzi nowy rok, postanawiasz w końcu wyjść do ludzi i jako niezbędny krok planujesz zrobić #usunkonto . Chciałbyś jednak zatrzeć swoją aktywność i usunąć całą twórczość naprodukowaną przez lata internetowego uzależnienia. Cóż, możesz napisać do moderacji z prośbą o usuniecie wszystkich danych, jeszcze kilka lat temu nie było z tym żadnych problemów, jednak od jakiegoś czasu nie chcą już tego robić i jedyne co ulegnie usunięciu to twój profil z nickiem a komentarze do znalezisk i wpisy pozostają. Z tym pierwszym nie jestem wstanie Ci pomóc, ponieważ komentarzy nie da się usuwać z poziomu API, jednak wpisy to co innego i im poświęcam dzisiejszy post.
Przygotowanie
Na swoim systemie operacyjnym zainstaluj pythona w wersji 3.10
albo wyżej. Jeśli nie wiesz jak to zrobić to zajrzyj na oficjalną stronę pobierania. Po wykonaniu tej czynności powinieneś posiadać domyślny menedżer instalacji pakietów pip
, ściągnij i wgraj paczkę wykop_sdk_reloaded
za pomocą polecenia:
1
pip install wykop_sdk_reloaded
Potrzebujesz również rtokena
z Wykopu. Jak to zrobić znajdziesz w przygotowanej przez ze mnie instrukcji .
Program
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
from os import getenv
from time import sleep
from wykop_sdk_reloaded.v3.client import AuthClient, WykopApiClient
from wykop_sdk_reloaded.exceptions import WykopApiLimitExceededError
def get_profiles_id(api, username):
entries = api.profiles_get_profile_entries_added(username)["data"]
return set(map(lambda entry: entry["id"], entries))
if __name__ == "__main__":
username = getenv("USERNAME")
rtoken = getenv("RTOKEN")
auth = AuthClient()
auth.authenticate_user(rtoken)
api = WykopApiClient(auth)
while True:
try:
while entries_id := get_profiles_id(api, username):
for entry_id in entries_id:
api.entries_delete_entry(entry_id)
print(f"Wpis #{entry_id} został usunięty")
sleep(2)
else:
print("Nie ma nic do usunięcia")
break
except WykopApiLimitExceededError:
print(f"Limit zapytań został przekroczony czekamy: {30}s")
sleep(30)
- Funkcja
get_profiles_id
pobiera listę id wpisów podanego użytkownikausername
- Zmienna
username
zostaje pobrana z środowiska, możesz ją zastąpić stringiemusername = "username"
. Analogicznie zmiennartoken
którą zdobyłeś wcześniej za pomocą instrukcji - Instancja logowania jest przekazywana do klienta API
WykopApiClient
- Pętla
while
obsługuje sytuację przekroczenia limitu żądań. Niestety Wykop w tej materii jest raczej tajemniczy i nie wiadomo ile zapytań w jakim odstępie czasu może zostać maksymalnie obsłużone, a więc robię to tutaj trochę na ślepo. Po przekroczeniu limitu czekamy 30 sekund i ponawiamy- Stworzona zostaje kolejna pętla
while
która pobiera listę wpisów za pomocą funkcjiget_profiles_id
. Jeśli nie ma niczego (pozdro dla kumatych) to pętla znajdująca się wyżej zostaje przerwana i program kończy swoje działanie. BTW wyszła pętla WhileWhileFor więc powoli zbliżamy się rozwiązaniami do tytułu bloga :)- W pętli iterujemy po każdym
id
wpisu i go usuwamy - Wypisujemy co usunęliśmy
- W pętli iterujemy po każdym
- Stworzona zostaje kolejna pętla
Wsparcie
Jeśli artykuł ci się do czegoś przydał to postaw mi kawę ☕. Nie musi być to kawa z Starbucksa, taka biedronkowa też jest ok ;) Każda nawet najmniejsza dotacja to sygnał że to co robię jest dla Ciebie wartościowe.