Skip to main content

Unofficial API for Eksi Sozluk.

Project description

eksipy

kutsal bilgi kaynağı için unofficial ve private API, giriş yapabilir; mesaj gönderebilir, entry gönderebilirsiniz.

PyPI - License DeepSource

bu proje mobil(rest) api veya herhangi bir api kullanmamaktadır. tamamen bs4 ile web'e istek gönderilmektedir. projenin temel amacı ekşi sözlükte ne yapabiliyorsanız bu kütüphane yapabilmektedir. v1.0 itibariyle çoğu fonksiyon desteklenmektedir.

bu kütüphane python 3.6 ve üstünde çalışmaktadır.

📦 Kurulum

pip kullanarak kolay bir şekilde kurabilirsiniz:

pip install eksipy

🛠 Fonksiyonlar

Sınıf: Eksi

Fonksiyon Parametre Açıklama Dönen Değer
__init__ session=None : Session Giriş yaptığınızda dönen Session'u buraya yazabilirsiniz. None
bugun page=1 (Sayfa) Bugün feed'ini döndürür. Tek sayfada (giriş yapmadıysanız) 50 tane başlık olmalıdır Liste[Topic]
gundem page=1 (Sayfa) Gündem feed'ini döndürür. Tek sayfada (giriş yapmadıysanız) 50 tane başlık olmalıdır Liste[Topic]
autocomplete aranacak kelime Ekşi sözlük arama, autocomplete. JSON

Sınıf: Kullanici

Fonksiyon Parametre Açıklama Dönen Değer
__init__ save_cookies=True True yazarsanız sonraki kullanımlarda giriş yapmak yerine cookies kaydeder None
login email: str, password: str Eposta ve şifre ile giriş yapar User
send_entry baslik: Topic, entry: str Entry gönderir, Başlık Topic modeli olmalıdır. Entry (modeli)
fav_entry entry: int, Entry Entry favoriler, başarılı olursa son favori sayısını döndürür int
unfav_entry entry: int, Entry Entry favori geri çeker, başarılı olursa son favori sayısını döndürür int
delete_entry entry: int, Entry Entry siler, başarılı olursa True döner. boolean
get_messages page: int, archive=False : boolean Mesaj kutunuzu Liste halinde döndürür. Arşivi almak isterseniz ikinci parametreyi True yapabilirsiniz. List[Message]
get_history message: int, Message Kullanıcıyla yaptığınız mesajlaşmanın geçmişini getirir. List[MessageHistory]
delete_message thread_id: int, Message Kullanıcıyla yaptığınız mesajlaşmanızı siler. Boolean
archive_message thread_id: int, Message Kullanıcıyla yaptığınız mesajlaşmanızı arşivler. Boolean
search_message keyword: str, page: int Mesajlaşma arar. List[Message]
send_message user: User, str, message: str Belirttiğiniz kişiye mesaj gönderir. Boolean
upvote entry: Entry Entry Upvote'lar. Boolean
downvote entry: Entry Entry Downvote'lar. Boolean
get_user user: str Kullanıcı getirir. User
get_user_entrys user: str, User, page: int Kullanıcının entrylerini getirir. List[Entry]
logout Çıkış yapar. None

Sınıf: Baslik

Fonksiyon Parametre Açıklama Dönen Değer
__init__ baslik: str, page: int, session: Session Başlığın sayfasını getirir. None
get_topic Topic olarak başlığı döndürür. Topic
get_entrys a = None : str Entryleri getirir. a parametresi popular gibi a değişkenleri olabilir ya da boş bırakabilirsiniz. List[Entry]
autocomplete aranacak kelime Ekşi sözlük arama, autocomplete. JSON

Sınıf: Giri

Fonksiyon Parametre Açıklama Dönen Değer
__init__ entry: int, session: Session Entry sayfasını getirir. None
get_entry Entry olarak entryi döndürür. Entry

🛠 Modeller

Sınıf: Message

Değişken Açıklama
id Mesajlaşma numarası
from_user Mesajı gönderen kişinin nick'i
message Mesaj sayısı
preview En son gönderilen mesaj
date En son mesaj atılma zamanı
read Mesajı okuduysanız True döndürür
unread Mesajı okumadıysanız True döndürür
thread_id Mesajı silmek veya arşivlemek için gerekli olan değişken

Sınıf: MessageHistory

Değişken Açıklama
incoming Mesaj size geldiyse True döner
outcoming Mesajı siz attıysanız True döner
message Mesaj
date Mesajın tarihi

Sınıf: Topic

Değişken Açıklama
id Başlık numarası
title Başlık
giri Entry sayısı
current_page Şu anki sayfanız
max_page Maksimum sayfa
Fonksiyon Açıklama
url Başlığın adresini döndürür
slug Başlığın slug halini döndürür

Sınıf: Entry

Değişken Açıklama
id Entry numarası
author Entry yazarı
date Entry gönderilme tarihi (Unix)
edited Düzenlendiyse Unix olarak düzenlenme zamanı döndürür
fav Favori sayısını döndürür
author_id Yazarın numarasını döndürür
comment Yorum sayısını döndürür
topic Başlığı döndürür
entry Entry'i döndürür (bununla almayın)
Fonksiyon Açıklama
dict Entry'i dict olarak döndürür
url Entry adresini döndürür
text Entry yazı olarak döndürür
md Markdown olarak entryi döndürür (Önerilen)
html HTML olarak entryi döndürür

Sınıf: User

Değişken Açıklama
id Kullanıcı numarası
nick Kullanıcı adı
total_entry Toplam entry sayısı
last_month Geçen ay gönderdiği entry
last_week Geçen hafta gönderdiği entry
today Bugün gönderdiği entry
last_entry En son entry gönderdiği zaman
pinned_entry Başa tutturulan Entry.
badges Profil rozetleri
Fonksiyon Açıklama
url Kullanıcının adresini döndürür

🔷 Örnek Kullanımlar

Burdaki dosyada örnek kullanımları anlatmaya çalıştım.

Ayrıca hemen birkaç örnek verelim.

Başlık entrylerini getirelim:

import eksipy

# Başlığı getirelim
Entryler = eksipy.Baslik('php').get_entrys()
print(f'{Entryler[0].topic.title}\n')
for entry in Entryler:
    print(10 * '*')
    print(entry.text())
    print('Yazar: ' + entry.author)

Giriş yapıp entry gönderelim:

import eksipy

User = eksipy.Kullanici()
User.login('eposta', 'sifre)
User.send_entry(eksipy.Baslik('php').get_topic(), 'dunyanin en iyi programlama dili')

☑️ To-Do

  • Kendi Exception sınıflarımız.
  • Olay.
  • Daha iyi bir dokümantasyon (Bence şu anki gayet ii).
  • Tüm kullanıcı istatistikleri, görseller, sorunsallar...
  • Zengin bir CLI uygulaması

💻 Contributors

Developer Quiec, yusuf@quiec.tech

Idea SelaxG,

📒 License

eksipy is available under the GPLv3 license. See the LICENSE file for more info.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

eksipy-1.0.3.tar.gz (13.2 kB view hashes)

Uploaded Source

Built Distribution

eksipy-1.0.3-py3-none-any.whl (23.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page