Skip to main content

Unofficial API for Ekşi Sözlük.

Project description

eksipy

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

PyPI GitHub Pipenv locked Python version PyPI - Downloads PyPI - Status

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ı

✏ Author

Quiec, yusuf@quiec.tech

📒 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.1.tar.gz (12.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

eksipy-1.0.1-py3-none-any.whl (10.7 kB view details)

Uploaded Python 3

File details

Details for the file eksipy-1.0.1.tar.gz.

File metadata

  • Download URL: eksipy-1.0.1.tar.gz
  • Upload date:
  • Size: 12.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/50.3.1 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.7

File hashes

Hashes for eksipy-1.0.1.tar.gz
Algorithm Hash digest
SHA256 1285ac3174c1466f2286ba4f5ac12d493d711dbb68ded42aabd00e1ab072469d
MD5 4cf4515db7f26fb5dcd27a11322bf637
BLAKE2b-256 15c3193d937259d445f3699a09c707cfea2dad6babc3fdb20e8ec3e35dc5edf9

See more details on using hashes here.

File details

Details for the file eksipy-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: eksipy-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 10.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/50.3.1 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.7

File hashes

Hashes for eksipy-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a9d2e6fdbd97788e923c332598cf8d3b6c9a0c09b353eea536244496f0d01d9d
MD5 37a965331ac8778842e72c680444fea7
BLAKE2b-256 e501c0e7da2d94e84ab33929cb579005b4f677fe4da3185cdf7454168ead62d1

See more details on using hashes here.

Supported by

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