Skip to content

p1c2u/wykop-sdk

Repository files navigation

Wykop API Python SDK

image

image

image

Biblioteka ta jest implementacją Wykop API w Python.

Przykładowe użycie:

import wykop

api = wykop.WykopAPI(klucz_aplikacji, sekret_aplikacji)
profile = api.get_profile("m__b")

Instalacja

Zalecana jest instalacja wykop-sdk poprzez pip:

$ pip install wykop-sdk

Alternatywnie możesz pobrać kod i zainstalować bezpośrednio z repozytorium:

$ pip install -e git+https://github.com/p1c2u/wykop-sdk.git#egg=wykop-sdk

Uwierzytelnienie

Aby wykonywać działania jako użytkownik zalogowany przed wykonaniem metody należy się uwierzytenić.

Przykładowe użycie metody wymagającej uwierzytelnienia:

import wykop

api = wykop.WykopAPI(klucz_aplikacji, sekret_aplikacji)
api.authenticate(login, klucz_polaczenia)
profile = api.observe_profile("m__b")

API wersja 1

Zdefiniowane metody

Biblioteka posiada wbudowane metody odpowiednie do zdefiniowanych w Wykop API

Metoda API Metoda SDK
Comments
Add add_comment
Plus plus_comment
Minus minus_comment
Edit edit_comment
Delete delete_comment
Link
Index get_link
Dig dig_link
Cancel cancel_link
Bury bury_link
Comments get_link_comments
Reports get_link_reports
Digs get_link_digs
Related get_link_related
Buryreasons get_link_buryreasons
Observe observe_link
Favorite favorite_link
Links
Promoted get_links_promoted
Upcoming get_links_upcoming
MyWykop
Index get_mywykop
Tags get_mywykop_tags
Users get_mywykop_users
Notifications get_notifications
NotificationsCount get_notifications_count
ReadNotifications mark_as_read_notifications
Popular
Promoted get_popular_promoted
Upcoming get_popular_upcoming
Profile
Index get_profile
Added get_profile_links
Published get_profile_published
Commented get_profile_commented
Digged get_profile_digged
Buried get_profile_buried
Observe observe_profile
Unobserve unobserve_profile
Followers get_profile_followers
Followed get_profile_followed
Favorites get_profile_favorites
Search
Index search
Links search_links
Entries search_entries
Profiles search_profiles
User
Login user_login
Favorites user_favorites
Observed user_observed
Top
Index get_top
Date get_top_date
Related
Plus plus_related
Minus minus_related
Add add_related
Entries
Index get_entry
Add add_entry
Edit edit_entry
Delete delete_entry
AddComment add_entry_comment
EditComment edit_entry_comment
DeleteComment delete_entry_comment
Vote vote_entry / vote_entry_comment
Unvote unvote_entry / unvote_entry_comment
Rank
Index get_rank
Observatory
Votes get_observatory_votes
Comments get_observatory_comments
Entries get_observatory_entries
EntriesComments get_observatory_entres_comments
Favorites
Index get_favorites
Lists get_favorites_lists
Stream
Index get_stream
Hot get_stream_hot
Tag
Index tag
PM
ConversationsList get_conversations_list
Conversation get_conversation
SendMessage send_message
DeleteConversation delete_conversation

Proste żądania

Można również skorzystać z podstawowej metody do tworzenia żądań. Przykład z dokumentacji Wykop API będzie przedstawiał się następująco:

link = api.request("link", 'index', [54321,], {"appkey": 12345})

gdzie:

'link' typ zasobu
'index' metoda zasobu
[54321,] lista parametrów metody
{"appkey": 12345} parametry API

Wykop Connect

Możliwe jest też łączenie konta użytkownika z aplikacją

Generowanie linku do Wykop Connect

url = api.get_connect_url("http://hostname.pl")

Dekodowanie danych Wykop Connect

appkey, login, token = api.get_connect_data(encoded_data)

Odpowiedzi

Wyróżniamy 3 typy odpowiedzi:

  • logiczny, np. metoda observe_profile: :

    >>> print api.observe_profile("m__b")
    [True]
  • obiekt, np. metoda get_profile: :

    >>> print api.get_profile("m__b")
    {'author_group': 5, 'buries': None, 'rank': 274, 'links_published': 41, 'gg': '', 'groups': 2, 'entries': 203, .. }
  • lista obiektów, np. metoda get_link_digs :

    >> print api.get_link_digs(12345)
    [{'author_group': 2, 'author_sex': 'male', .. }, {'author_group': 2, 'author_sex': 'male', .. }]

Każdy obiekt z odpowiedzi jest typu słownikowego (dict) z możliwością dostępu do właściwości poprzez artybuty:

>> profile = api.get_profile("m__b")
>> profile["diggs"]
12155
>> profile.diggs
12155

Filtrowanie odpowiedzi

Aby odfiltrować z odpowiedzi kod HTML, należy wywołać klasę z parametrem output='clear'

import wykop

api = wykop.WykopAPI(klucz_aplikacji, sekret_aplikacji, output='clear')
api.authenticate(login, klucz_polaczenia)
profile = api.observe_profile("m__b")

API wersja 2

Wykop posiada API w wersji 2. Jest to nowa, nieudokumentowana wersja API. Implementacja tej wersji w SDK może się zmieniać.

Warning

Uwierzytelnienie działa tylko z kluczami ze wsparciem dla tej wersji API.

Przykładowe użycie:

from wykop import WykopAPIv2

api = WykopAPIv2(klucz_aplikacji, sekret_aplikacji)
profile = api.get_profile("m__b")

Zdefiniowane metody

API w wersji 2 posiada następujące wbudowane metody.

Metoda API Metoda SDK
Links
? get_links_promoted
? get_links_upcoming
? get_link_comments
? get_link_related
? get_link_upvoters
? get_link_downvoters
MyWykop
? get_mywykop
? get_mywykop_tags
? get_mywykop_users
Notifications
? get_notifications
? get_notifications_count
? get_hashtags_notifications
? get_hashtags_notifications_cou
Profiles
? get_profile
? observe_profile
? unobserve_profile
? block_profile
? unblock_profile
Search
? search_links
? search_entries
? search_profiles
Login
? user_login
Hits
? get_hits_month
? get_hits_popular
Entries
? get_entry
? get_stream_entries
? get_hot_entries
Tag
? get_tag
? get_tags_observed
? get_tag_entries
? get_tag_links
PM
? get_conversations_list

? = nieudokumentowana metoda

Proste żądania

Implementacja API w wersji 2 również posiada podstawową metodę do tworzenia żądań. Na przykład:

link = api.request("entries", 'hot', {"period": 12})

gdzie:

'entries' typ zasobu
'hot' metoda zasobu
{"period": 12} parametry API

Zgłaszanie błędów

Jeżeli znalazłeś jakieś błędy lub masz inny problem zgłoś go na bugtracker lub na mirko @tenji :>