Skip to content

Crawler - Server / Unofficial eksisozluk.com API with additional features and fixes - Eksta ozellikler ve fixlerle resmi olmayan ekşi sözlük API'si (FORK)

License

Notifications You must be signed in to change notification settings

otuva/node-eksisozluk-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

eksisozluk-api

Resmi olmayan eksisozluk api

Ekşi sözlük için geliştirilmiş node api modulu ve express tabanlı REST API Server. Ekşisözlükten çekilen veriler json formatında kullanıcıya geri döndürülür

Eksisozluge son gelen arayuz guncellemesine gore crawl eder. (cheerio ve axios)

Icinde bir client yoktur. Bu apiyi kullanacak daha yazilmamis client icin tiklayin

Kurulum

Git ile

Terminalde sırasıyla şu komutları çalıştırın:

git clone https://github.com/otuva/eksisozluk-api
cd eksisozluk-api
npm i
npm start

NPM ile

Local olarak

npm i eksisozluk-api # install
npx eksisozluk # run

Global Olarak

sudo npm install eksisozluk-api -g # install
eksisozluk # run

image

Node.js API

npm ile kurup dokumantasyonda bulunan tum fonksiyonlari kullanabilirsiniz. Ornek:

const eksisozluk = require('eksisozluk-api');

eksisozluk.entry.getEntry('1').then(
    (data) => {
        console.log(data);
    }
);

eksisozluk.user.getUser('ssg').then(
    (data) => {
        console.log(data);
    }
);

eksisozluk.startServer();

Demo

Ozellikler

  • Gundem vs. gibi kategorilerdeki ve haber vs. gibi kanallaraki basliklari listeleme
  • Tek baslik listeleme
  • Cok daha ayrintili return edilen objeler.
  • Debe listeleme
  • Hatalar, yonlendirmeler vs. ile daha robust bir yapi
  • Eksi sozluk arayuzune birebir uygun endpointler
    • nick, karma, rozetler, son entryleri, pinli entry, profil fotografi linki vs.
  • Arama, otomatik tamamlama
  • Baslik listeleme ve entryler icin degismeyen format.
  • NOT: Endpoint formatlarinin degistigi durumlar api dokumaninda belirtilmistir. (Tum apide yalnizca 2 durumda degisim oluyor.)
    • Eger configden kullanici son entryleri getirme ozelligi kapatilirsa kullanici endpointinde lastEntries yer almaz.
    • Eger kullanici entry sayfasi ilk sayfaysa ve pinli entry varsa pinnedEntry adli obje dondurur diger entry sayfalarinda yer almaz.

image

Endpointler

method endpoint örnek url sayfali örnek url açıklama
get api/topic/list/channel/:choice/:page? /api/topic/list/channel/haber /api/topic/list/channel/müzik/2 kanal başlıklarını getirir
get api/topic/list/:choice/:page? /api/topic/list/gundem /api/topic/list/basiboslar/3 başlıkları getirir
get api/topic/:slug/:page? /api/topic/pena /api/topic/gap year/2 bir başlığı getirir
get api/entry/:id /api/entry/1   bir entry'i getirir
get api/user/:nick/:choice/:page? /api/user/ssg/entries /api/user/ssg/most-liked/2 bir suserin entry sayfalarini getirir
get api/index/debe /api/index/debe   debe'yi getirir
get api/user/:nick /api/user/ssg   bir suser'ı getirir
get api/index/search/:query/:page? /api/index/search/pena /api/index/search/boston celtics/4 arama sonucu
get api/index/autocomplete/:query /api/index/autocomplete/pena   otomatik tamamlama
get api/index/channels /api/index/channels   kanal kategorileri
get api/user/:nick/images /api/user/ssg/images   bir suserin gorsellerini getirir

Dokumantasyon

API'yi çalıştırdıktan sonra /doc adresinden API'nin dokümantasyonuna ulaşabilirsiniz.

apidoc-markdown ile olusturulmus markdown dokumantasyona ise buradan ulasabilirsiniz.

image

Ayarlar

Ayarları src/config.js dosyası ile düzenleyebilirsiniz

Api portu, endpointi, apinin davranislarini vs. daha kolay duzenleyebilmek icin kategorilere ayrilmistir.

(Default ayarlar onerilir.)

module.exports = {
  api,
  doc,
  user,
  topic,
  asyncRequestHeaders,
};

About

Crawler - Server / Unofficial eksisozluk.com API with additional features and fixes - Eksta ozellikler ve fixlerle resmi olmayan ekşi sözlük API'si (FORK)

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •