Skip to content

Latest commit

 

History

History
1391 lines (1113 loc) · 42.8 KB

README.md

File metadata and controls

1391 lines (1113 loc) · 42.8 KB

eksisozluk-api v0.0.1

Unofficial eksisozluk api

giris


Aciklama

ekşisözlük için geliştirilmiş resmi olmayan api.

TLDR sondadir eger dokumantasyonu okumak istemiyorsaniz atlayabilirsiniz.

Not: Dokumantasyondaki port (3000), config dosyasinda kullanilmis default porttur. Eger farkli bir port seciliyse goz onunde bulundurun.

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

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();


Table of contents


arama

arama sonucunu getir.

Back to top

site içi arama yapan endpoint.

boslukla ayrilmis birden cok kelime veya tek aranabilir

  • api/index/search/mayonez

  • api/index/search/ketcap mayonez

gibi.

Sayfa parametresi opsiyonel olup diger sayfalari getirmek icin url sonuna /SAYI ekleyebilirsiniz.

GET /api/index/search/:query/:page?

Parameters - Parameter

Name Type Description
query String

arama kelimesi/kelimeleri

page Number optional

getirilecek sayfa

Default value: 1

Examples

Example curl:

curl -i http://localhost:3000/api/index/search/2022

Example curl sayfa:

curl -i http://localhost:3000/api/index/search/2022/2

Example python:

import requests as r
req = r.get("http://localhost:3000/api/index/search/2022")

Example axios(js):

req = axios.get("http://localhost:3000/api/index/search/2022").then(...)

Success response

Success response - 200

Name Type Description
totalTopicCount Number

toplam baslik adeti.

totalPageCount Number

toplam kac sayfa baslik oldugu.

topics Object[]

başlık objelerinin arrayi.

topics.id Number

basligin id'si

topics.title String

basligin ismi

topics.topicSlug String

baslik url slug hali

topics.topicUrl String

basligin full urli

topics.totalEntryCount Number

basliktaki toplam entry sayisi

Success response example

Success response example - Success-Response:

{
  "totalTopicCount": 52,
  "totalPageCount": 2,
  "topics": [
    {
      "id": 6398332,
      "title": "ketçap mayonez hardal üçlüsündeki hardalın durumu",
      "slug": "/ketcap-mayonez-hardal-uclusundeki-hardalin-durumu--6398332",
      "topicUrl": "https://eksisozluk.com/ketcap-mayonez-hardal-uclusundeki-hardalin-durumu--6398332",
      "totalEntryCount": 180
    },
    {
      "id": 7110782,
      "title": "en iyi ketçap mayonez markası",
      "slug": "/en-iyi-ketcap-mayonez-markasi--7110782",
      "topicUrl": "https://eksisozluk.com/en-iyi-ketcap-mayonez-markasi--7110782",
      "totalEntryCount": 165
    },
    ...
  ]
}

Error response

Error response - Error 4xx

Name Type Description
SearchReturnedNoResults

Arama sonucu bos dondu.

Error response example

Error response example - api/index/search/dsadsaads:

{"error":"Search returned no results"}

otomatik tamamlamayi getir.

Back to top

Otomatik tamamlama sağlayan endpoint.

Return edilen cevaptaki arraylerin ikisi de bos ise hata dondurur degilse eksi sozlukten alinan cevabi direkt olarak dondurur.

GET /api/index/autocomplete/:query

Parameters - Parameter

Name Type Description
query String

aranan kelime/kelimeler

Examples

Example curl:

curl -i http://localhost:3000/api/index/autocomplete/pena

Example python:

import requests as r
req = r.get("http://localhost:3000/api/index/autocomplete/pena")

Example axios(js):

req = axios.get("http://localhost:3000/api/index/autocomplete/pena").then(...)

Success response

Success response - 200

Name Type Description
Titles String[]

baslik isimlerinin arrayi.

Query String

aranan kelime/ler

Nicks String[]

kullanici nicklerinin arrayi.

Success response example

Success response example - Success-Response:

{
  "Titles": [
    "pena",
    "pena (video kanalı)",
    "pena'daki aldatan sevgili entry canlandırması",
    "inaki pena",
    ...
  ],
  "Query": "pena",
  "Nicks": [
    "pena",
    "pena gibi kaybolsam",
    "pena minik plastik garip nesne"
  ]
}

Error response

Error response - Error 4xx

Name Type Description
SearchReturnedNoResults

Arama sonucu bos dondu.

Error response example

Error response example - api/index/autocomplete/asd fdsaafsd:

{"error":"Search returned no results"}

balk

başlıkları getir.

Back to top

Secilen kategorideki (gündem, tarihte bugun vs.) başlıkları getiren endpoint.

Sayfa parametresi opsiyonel olup diger sayfalari getirmek icin url sonuna /SAYI ekleyebilirsiniz.

Baslik kategorisinin alabilecegi degerler icin gereken parametrelerin altindaki izin verilen degerlere bakiniz.

Kanallar icin diger endpointi kullaniniz.

GET /api/topic/list/:choice/:page?

Parameters - Parameter

Name Type Description
choice String

getirilecek baslik kategorisi

Allowed values: "gundem","sorunsal","tarihte-bugun","basiboslar"
page Number optional

getirilecek sayfa

Default value: 1

Examples

Example curl:

curl -i http://localhost:3000/api/topic/list/gundem

Example curl sayfa:

curl -i http://localhost:3000/api/topic/list/gundem/2

Example python:

import requests as r
req = r.get("http://localhost:3000/api/topic/list/gundem")

Example axios(js):

req = axios.get("http://localhost:3000/api/topic/list/gundem").then(...)

Success response

Success response - 200

Name Type Description
totalTopicCount Number

toplam baslik adeti.

totalPageCount Number

toplam kac sayfa baslik oldugu.

topics Object[]

başlık objelerinin arrayi.

topics.id Number

basligin id'si

topics.title String

basligin ismi

topics.topicSlug String

baslik url slug hali

topics.topicUrl String

basligin full urli

topics.totalEntryCount Number

basliktaki toplam entry sayisi

Success response example

Success response example - Success-Response:

{
"totalTopicCount": 299,
"totalPageCount": 6,
"topics": [
  {
    "id": 7341070,
    "title": "sönmüş kireçle yapılan +18 sanat",
    "topicSlug": "/sonmus-kirecle-yapilan-18-sanat--7341070?a=popular",
    "topicUrl": "https://eksisozluk.com//sonmus-kirecle-yapilan-18-sanat--7341070?a=popular",
    "totalEntryCount": 86
  },
  {
    "id": 7340995,
    "title": "türkiye ermenistan sınırı mayın temizliği",
    "topicSlug": "/turkiye-ermenistan-siniri-mayin-temizligi--7340995?a=popular",
    "topicUrl": "https://eksisozluk.com//turkiye-ermenistan-siniri-mayin-temizligi--7340995?a=popular",
    "totalEntryCount": 128
  },
 ...
 ]
}

Error response

Error response - Error 4xx

Name Type Description
TopicNotFound

Aranan kategori gecerli ama hicbir baslik bulunamadi.

TopicIsInvalid

Gecerli bir kategori degil.

Error response example

Error response example - api/topic/list/gundem/412:

{
"error": "Topic not found"
}

Error response example - api/topic/list/gundam:

{
"error": "Topic is invalid"
}

kanallari getir.

Back to top

Secilen kanala ait (haber, bilim vs.) başlıkları getiren endpoint.

Sayfa parametresi opsiyonel olup diger sayfalari getirmek icin url sonuna /SAYI ekleyebilirsiniz.

Kanal kategorisinin alabilecegi degerler icin gereken parametrelerin altindaki izin verilen degerlere bakiniz.

Kanal kategorilerinin turkce karakter icermesine dikkat ediniz. Ornegin 'muzik' kategorisi hata verecekken 'müzik' kategorisi sorunsuz calisacaktir.

GET /api/topic/list/channel/:choice/:page?

Parameters - Parameter

Name Type Description
choice String

getirilecek baslik kategorisi

Allowed values: "haber","sinema","bilim","eğitim","spoiler","müzik","edebiyat","ekonomi","tarih","yeme-içme","ilişkiler","siyaset","teknoloji","sanat","moda","otomotiv","magazin","ekşi-sözlük","spor","motosiklet","sağlık","oyun","anket","programlama","tv","seyahat","havacılık","troll"
page Number optional

getirilecek sayfa

Default value: 1

Examples

Example curl:

curl -i http://localhost:3000/api/topic/list/channel/haber

Example curl sayfa:

curl -i http://localhost:3000/api/topic/list/channel/haber/2

Example python:

import requests as r
req = r.get("http://localhost:3000/api/topic/list/channel/haber")

Example axios(js):

req = axios.get("http://localhost:3000/api/topic/list/channel/haber").then(...)

Success response

Success response - 200

Name Type Description
totalTopicCount Number

toplam baslik adeti.

totalPageCount Number

toplam kac sayfa baslik oldugu.

topics Object[]

başlık objelerinin arrayi.

topics.id Number

basligin id'si

topics.title String

basligin ismi

topics.topicSlug String

baslik url slug hali

topics.topicUrl String

basligin full urli

topics.totalEntryCount Number

basliktaki toplam entry sayisi

Success response example

Success response example - Success-Response:

{
"totalTopicCount": 150,
"totalPageCount": 3,
"topics": [
  {
    "id": 7341076,
    "title": "aç insanlar varken teleskopa 10 milyar $ harcamak",
    "topicSlug": "/ac-insanlar-varken-teleskopa-10-milyar-harcamak--7341076",
    "topicUrl": "https://eksisozluk.com//ac-insanlar-varken-teleskopa-10-milyar-harcamak--7341076",
    "totalEntryCount": 38
  },
  {
    "id": 116822,
    "title": "anksiyete",
    "topicSlug": "/anksiyete--116822?day=2022-07-14",
    "topicUrl": "https://eksisozluk.com//anksiyete--116822?day=2022-07-14",
    "totalEntryCount": 5
  },
 ...
 ]
}

Error response

Error response - Error 4xx

Name Type Description
TopicNotFound

Aranan kategori gecerli ama hicbir baslik bulunamadi.

TopicIsInvalid

Gecerli bir kategori degil.

Error response example

Error response example - api/topic/list/channel/bilim/17:

{
"error": "Topic not found"
}

Error response example - api/topic/list/channel/asd:

{
"error": "Topic is invalid"
}

tek başlık getir.

Back to top

Spesifik başlığı entry'leri ile birlikte getiren endpoint. slug yerine basliğin kendisini birebir yazarsaniz da calisir:

örneğin: http://localhost:3000/api/topic/veda ederken 2020'ye bir not bırak

Full slug ise bu sekil gorunur (baslik--id): pena--31782

Eger baslik slugi full halinde degilse ve config.topic.allowRedirect true degerine sahipse tam haline yonlendirir.

Ornek: http://localhost:3000/api/topic/insanlık tarihinin en kötü iki senesi 536 ve 537

Son hali: http://localhost:3000/api/topic/insanlik-tarihinin-en-kotu-iki-senesi-536-ve-537--7341301/1

GET /api/topic/:slug/:page?

Parameters - Parameter

Name Type Description
slug String

getirilecek baslik

page Number optional

getirilecek sayfa

Default value: 1

Examples

Example curl:

curl -i http://localhost:3000/api/topic/pena

Example curl sayfa:

curl -i http://localhost:3000/api/topic/pena/2

Example python:

import requests as r
req = r.get("http://localhost:3000/api/topic/pena")

Example axios(js):

req = axios.get("http://localhost:3000/api/topic/pena").then(...)

Success response

Success response - 200

Name Type Description
topicID Number

basligin idsi.

disambiguations Object[]

farkli anlamlardaki basliklar.

disambiguations.slug String

farkli basligin slug hali.

disambiguations.title String

farkli basligin ismi.

title String

başlıgin ismi.

topicSlug String

basligin slug hali

numberOfPages Number

basligin sahip oldugu sayfa sayisi

currentPage Number

baslikta o anda incelenen sayfa. (.pager degeri)

tags String[]

basligin tagleri.

entries Object[]

basliktaki entryler.

entries.id Number

entry id'si.

entries.title String

entrynin ait oldugu baslik

entries.body String

entryin icerigi

entries.favCount Number

entryin favori sayisi

entries.isPinned Boolean

entryin pinli olup olmadigi.

entries.isPinnedOnProfile Boolean

entryin profilinde pinli olup olmadigi.

entries.inEksiSeyler Boolean

entryin eksiseyler'de olup olmadigi.

entries.commentCount Number

entryin yorum sayisi. (sorularinizi yanitliyorum'da vs. bulunan)

entries.aboutAuthor Object

entryin yazar bilgileri.

entries.aboutAuthor.author String

yazarin nicki.

entries.aboutAuthor.authorProfilePicture String

yazarin profil resmi.

entries.aboutDateTime Object

entryin tarih bilgileri.

entries.aboutDateTime.createdAtDate String

entryin olusturulma tarihi.

entries.aboutDateTime.createdAtTime String

entryin olusturulma saati.

entries.aboutDateTime.updatedAtDate String

entryin guncellenme tarihi.

entries.aboutDateTime.updatedAtTime String

entryin guncellenme saati.

Success response example

Success response example - Success-Response:

{
"topicID": 31872,
"disambiguations": [
  {
    "slug": "/?q=c%20%28programlama%20dili%29",
    "title": "c (programlama dili)"
  },
  {
    "slug": "/?q=c%20%28s%c3%b6zl%c3%bck%20yazar%c4%b1%29",
    "title": "c (sözlük yazarı)"
  }
],
"title": "c",
"topicSlug": "c--31872",
"numberOfPages": 18,
"currentPage": 1,
"tags": [
  "programlama",
  "edebiyat"
],
"entries": [
  {
    "id": 1062,
    "title": "c",
    "body": "yıllar yılı ortamlarda şöyle yada böyle muhabbetini eden bir takım insanlara dönüp garip garip bakmamızı sağlayan,<br>sonrada \"evime gideyim biraz oyun bezeyim, bunlara benzemeyeyim dedirten.\" iştah açıcı, sivilce yapıcı,anti-sosyalite muamması.",
    "favCount": 4,
    "isPinned": false,
    "isPinnedOnProfile": false,
    "inEksiSeyler": false,
    "commentCount": 0,
    "aboutAuthor": {
      "author": "otisabi",
      "authorProfilePicture": "https://ekstat.com/img/default-profile-picture-light.svg"
    },
    "aboutDateTime": {
      "createdAtDate": "05.03.1999",
      "createdAtTime": null,
      "updatedAtDate": null,
      "updatedAtTime": null
    }
  },
  {
    "id": 172152,
    "title": "c",
    "body": "alfabenin 3. harfi.",
    "favCount": 3,
    "isPinned": false,
    "isPinnedOnProfile": false,
    "inEksiSeyler": false,
    "commentCount": 0,
    "aboutAuthor": {
      "author": "body",
      "authorProfilePicture": "https://ekstat.com/img/default-profile-picture-light.svg"
    },
    "aboutDateTime": {
      "createdAtDate": "26.05.2000",
      "createdAtTime": "01:06",
      "updatedAtDate": null,
      "updatedAtTime": null
    }
  },
...
 ]
}

Error response

Error response - Error 4xx

Name Type Description
RequestFailedWithStatusCode404

Baslik bulunamadi.

Error response example

Error response example - api/topic/cdsaas:

{
  "error": "Request failed with status code 404"
}

debe

debe getir.

Back to top

debeleri getiren endpoint. debe'deki tüm entry'lerin bilgileri döner.

GET /api/index/debe

Examples

Example curl:

curl -i http://localhost:3000/api/index/debe

Example python:

import requests as r
req = r.get("http://localhost:3000/api/index/debe")

Example axios(js):

req = axios.get("http://localhost:3000/api/index/debe").then(...)

Success response

Success response - 200

Name Type Description
info Object

debe bilgileri

info.date String

debe tarihi.

info.entryCount Number

debe icindeki entry sayisi.

entries Object[]

debe icindeki entryler.

entries.id Number

entry id'si.

entries.slug String

entryin slug'i.

entries.title String

entryin basligi.

Success response example

Success response example - Success-Response:

{
"info": {
  "date": "2022-07-15",
  "entryCount": 45
},
"entries": [
  {
    "id": 139983585,
    "slug": "/entry/139983585",
    "title": "fazıl say"
  },
  {
    "id": 139971232,
    "slug": "/entry/139971232",
    "title": "14 temmuz 2022 datça kundakçısının açıklamaları"
  },
 ...
 ]
}

entry

tek entry getir.

Back to top

entry no'su ile entry getiren endpoint.

GET /api/entry/:id

Parameters - Parameter

Name Type Description
id Number

entry no'su.

Examples

Example curl:

curl -i http://localhost:3000/api/entry/139983585

Example python:

import requests as r
req = r.get("http://localhost:3000/api/entry/139983585")

Example axios(js):

req = axios.get("http://localhost:3000/api/entry/139983585").then(...)

Success response

Success response - 200

Name Type Description
id Number

entry id'si.

title String

entrynin ait oldugu baslik

body String

entryin icerigi

favCount Number

entryin favori sayisi

isPinned Boolean

entryin pinli olup olmadigi.

isPinnedOnProfile Boolean

entryin profilinde pinli olup olmadigi.

inEksiSeyler Boolean

entryin eksiseyler'de olup olmadigi.

commentCount Number

entryin yorum sayisi. (sorularinizi yanitliyorum'da vs. bulunan)

aboutAuthor Object

entryin yazar bilgileri.

aboutAuthor.author String

yazarin nicki.

aboutAuthor.authorProfilePicture String

yazarin profil resmi.

aboutDateTime Object

entryin tarih bilgileri.

aboutDateTime.createdAtDate String

entryin olusturulma tarihi.

aboutDateTime.createdAtTime String

entryin olusturulma saati.

aboutDateTime.updatedAtDate String

entryin guncellenme tarihi.

aboutDateTime.updatedAtTime String

entryin guncellenme saati.

Success response example

Success response example - Success-Response:

{
"id": 139730148,
"title": "simcity",
"body": "yine internetin karanlık dehlizlerinde gezerken ...",
"favCount": 11,
"isPinned": false,
"isPinnedOnProfile": false,
"inEksiSeyler": true,
"commentCount": 0,
"aboutAuthor": {
  "author": "jottar",
  "authorProfilePicture": "https://img.ekstat.com/profiles/jottar-637919601690625181.jpg"
},
"aboutDateTime": {
  "createdAtDate": "08.07.2022",
  "createdAtTime": "11:37",
  "updatedAtDate": "16:45",
  "updatedAtTime": null
 }
}

Error response

Error response - Error 4xx

Name Type Description
RequestFailedWithStatusCode404

Entry bulunamadi.

EntryNotFound

Entry getirirken eksi sozluk patlarsa (büyük başarısızlıklar sözkonusu)

Error response example

Error response example - api/entry/4216654:

{
  "error": "Request failed with status code 404"
}

Error response example - api/entry/42424242424:

{
   "error": "Entry not found"
}

etc

tum kanallari getir.

Back to top

Tum kanallari getiren endpoint.

¯\_(ツ)_/¯

GET /api/index/channels

Examples

Example curl:

curl -i http://localhost:3000/api/index/channels

Example python:

import requests as r
req = r.get("http://localhost:3000/api/index/channels")

Example axios(js):

req = axios.get("http://localhost:3000/api/index/channels").then(...)

Success response

Success response - 200

Name Type Description
channels Object[]

kanallarin arrayi.

channels.name String

kanalin ismi.

channels.slug String

kanalin url slug hali.

channels.description String

kanalin açiklamasi.

Success response example

Success response example - Success-Response:

{
  "channels": [
    {
      "name": "#haber",
      "slug": "/basliklar/kanal/haber",
      "description": "yurtta ve dünyada olan biten"
    },
    {
      "name": "#sinema",
      "slug": "/basliklar/kanal/sinema",
      "description": "filmler, yönetmenler, teknikler, yarıda salonu terk etmeler"
    },
    ...
  ]
}

kullanici

entry sayfasini getir.

Back to top

kullanicinin girdigi entry sayfalarini getiren endpoint.

eger sayfa parametresi verilmezse ilk sayfayi dondurur.

eger ilk sayfa ise ve kullanicinin sabitledigi bir entry varsa entries arrayindan once pinnedEntry objesi dondurur. formatin degistigi tek durum budur.

diger sayfalarda ise veya sabitlenen entry yoksa sadece entries arrayi dondurur. null degeriyle bile olsa pinnedEntry diye bir bolum direkt yer almaz.

'entries': 'son-entryleri',
'favorites': 'favori-entryleri',
'most-favorited': 'en-cok-favorilenen-entryleri',
'last-voted': 'son-oylananlari',
'weekly': 'bu-hafta-dikkat-cekenleri',
'handicraft': 'el-emegi-goz-nuru',
'most-liked': 'en-begenilenleri',
GET /api/user/:nick/:choice/:page?

Parameters - Parameter

Name Type Description
nick String

kullanici nicki

choice String

getirelecek entry sayfasi kategorisi.

Allowed values: "entries","favorites","most-favorited","last-voted","weekly","handicraft","most-liked"
page Number optional

getirilecek sayfa

Default value: 1

Examples

Example curl:

curl -i http://localhost:3000/api/user/ssg/entries

Example curl sayfa:

curl -i http://localhost:3000/api/user/ssg/entries/2

Example python:

import requests as r
req = r.get("http://localhost:3000/api/user/ssg/entries")

Example axios(js):

req = axios.get("http://localhost:3000/api/user/ssg/entries").then(...)

Success response

Success response - 200

Name Type Description
pinnedEntry Object

NOT: sadece ilk sayfada return edilen standart entry objesi. Objenin yapisi alttaki entry objesi ile ayni.

entries Object[]

entryleri barindiran array

entries.id Number

entry id'si.

entries.title String

entrynin ait oldugu baslik

entries.body String

entryin icerigi

entries.favCount Number

entryin favori sayisi

entries.isPinned Boolean

entryin pinli olup olmadigi.

entries.isPinnedOnProfile Boolean

entryin profilinde pinli olup olmadigi.

entries.inEksiSeyler Boolean

entryin eksiseyler'de olup olmadigi.

entries.commentCount Number

entryin yorum sayisi. (sorularinizi yanitliyorum'da vs. bulunan)

entries.aboutAuthor Object

entryin yazar bilgileri.

entries.aboutAuthor.author String

yazarin nicki.

entries.aboutAuthor.authorProfilePicture String

yazarin profil resmi.

entries.aboutDateTime Object

entryin tarih bilgileri.

entries.aboutDateTime.createdAtDate String

entryin olusturulma tarihi.

entries.aboutDateTime.createdAtTime String

entryin olusturulma saati.

entries.aboutDateTime.updatedAtDate String

entryin guncellenme tarihi.

entries.aboutDateTime.updatedAtTime String

entryin guncellenme saati.

Success response example

Success response example - Success-Response:

{
  "entries": [
    {
      "id": 139962328,
      "title": "yazarların favori ressam ve eseri",
      "body": "<a class=\"b\" href=\"/?q=albert+bierstadt\">albert bierstadt</a>'ın \"<a rel=\"nofollow noopener\" class=\"url\" target=\"_blank\" href=\"https://twitter.com/esesci/status/927741151469117441?s=20&amp;t=GHkkCtUJz8GNqzwbjNfMLA\" title=\"https://twitter.com/esesci/status/927741151469117441?s=20&amp;t=GHkkCtUJz8GNqzwbjNfMLA\">puget sound on the pacific coast</a>\" eseri çok sevdiklerimden biridir.",
      "favCount": 12,
      "isPinned": false,
      "isPinnedOnProfile": false,
      "inEksiSeyler": false,
      "commentCount": 0,
      "aboutAuthor": {
        "author": "ssg",
        "authorProfilePicture": "https://img.ekstat.com/profiles/ssg-637802096150637091.jpg"
      },
      "aboutDateTime": {
        "createdAtDate": "14.07.2022",
        "createdAtTime": "10:38",
        "updatedAtDate": null,
        "updatedAtTime": null
      }
    },
    ...
  ]
}

Error response

Error response - Error 4xx

Name Type Description
PageNotFound

sayfa bulunamadi.

Error response example

Error response example - api/user/ssg/entries/54356:

{
  "error": "Page not found"
}

kullanici gorsellerini getir.

Back to top

nick ile kullanici gorsellerini getiren endpoint.

GET /api/user/:nick/images

Parameters - Parameter

Name Type Description
nick String

kullanici nicki

Examples

Example curl:

curl -i http://localhost:3000/api/user/ssg/images

Example python:

import requests as r
req = r.get("http://localhost:3000/api/user/ssg/images")

Example axios(js):

req = axios.get("http://localhost:3000/api/user/ssg/images").then(...)

Success response

Success response - 200

Name Type Description
images Object[]

gorsel arrayi.

images.slug String

gorselin slug hali.

images.imageURL String

gorselin full linki.

images.date Object

gorselin tarihi.

images.date.year String

gorselin tarihi yil.

images.date.month String

gorselin tarihi ay.

images.date.day String

gorselin tarihi gun.

Success response example

Success response example - Success-Response:

{
  "images": [
    {
      "slug": "/img/x5zal9ig",
      "imageURL": "'https://cdn.eksisozluk.com/2020/4/15/x/x5zal9ig.jpg'",
      "date": {
        "year": "2020",
        "month": "4",
        "day": "15"
      }
    },
    {
      "slug": "/img/at7lo6r6",
      "imageURL": "'https://cdn.eksisozluk.com/2020/7/1/a/at7lo6r6.png'",
      "date": {
        "year": "2020",
        "month": "7",
        "day": "1"
      }
    },
    ...
    ]
  }

tek kullanıcı getir.

Back to top

nick ile kullanıcı bilgisi getiren endpoint.

Bu endpoint kullanicinin son entrylerini gostermek icin otomatik olarak page endpoini de cagirir.

Devre disi birakmak icin config.user.autoRetrieveLastEntries false yapilabilir. Eger yapilirsa lastEntries kismi dondurulmez.

GET /api/user/:nick

Parameters - Parameter

Name Type Description
nick String

kullanici nicki

Examples

Example curl:

curl -i http://localhost:3000/api/user/ssg

Example python:

import requests as r
req = r.get("http://localhost:3000/api/user/ssg")

Example axios(js):

req = axios.get("http://localhost:3000/api/user/ssg").then(...)

Success response

Success response - 200

Name Type Description
nick String

kullanicinin nicki.

isUserCaylak Boolean

kullanicinin caylak olup olmadigi.

isUserLanetli Boolean

kullanicinin lanetli olup olmadigi.

isUserLeyla Boolean

kullanicinin ucup ucmadigi.

totalEntryCount Number

kullanicinin toplam entry sayisi.

totalPageCount Number

kullanicinin toplam entry sayfa sayisi.

userFollowingCount Number

kullanicinin takip edilen kullanici sayisi.

userFollowerCount Number

kullaniciyi takip eden kullanici sayisi.

karmaLevel String

kullanicinin karma seviyesi.

pinnedBadges Object[]

kullanicinin sergiledigi rozetler.

pinnedBadges.title String

rozetin adi.

pinnedBadges.imgSrc String

rozetin resmi.

authorProfilePicture String

kullanicinin profil resmi.

lastEntries Object

kullanicinin son entryleri.

lastEntries.pinnedEntry Object

kullanicinin profiline sabitlenmis entry

lastEntries.pinnedEntry.id Number

entry id'si.

lastEntries.pinnedEntry.title String

entrynin ait oldugu baslik

lastEntries.pinnedEntry.body String

entryin icerigi

lastEntries.pinnedEntry.favCount Number

entryin favori sayisi

lastEntries.pinnedEntry.isPinned Boolean

entryin pinli olup olmadigi.

lastEntries.pinnedEntry.isPinnedOnProfile Boolean

entryin profilinde pinli olup olmadigi.

lastEntries.pinnedEntry.inEksiSeyler Boolean

entryin eksiseyler'de olup olmadigi.

lastEntries.pinnedEntry.commentCount Number

entryin yorum sayisi. (sorularinizi yanitliyorum'da vs. bulunan)

lastEntries.pinnedEntry.aboutAuthor Object

entryin yazar bilgileri.

lastEntries.pinnedEntry.aboutAuthor.author String

yazarin nicki.

lastEntries.pinnedEntry.aboutAuthor.authorProfilePicture String

yazarin profil resmi.

lastEntries.pinnedEntry.aboutDateTime Object

entryin tarih bilgileri.

lastEntries.pinnedEntry.aboutDateTime.createdAtDate String

entryin olusturulma tarihi.

lastEntries.pinnedEntry.aboutDateTime.createdAtTime String

entryin olusturulma saati.

lastEntries.pinnedEntry.aboutDateTime.updatedAtDate String

entryin guncellenme tarihi.

lastEntries.pinnedEntry.aboutDateTime.updatedAtTime String

entryin guncellenme saati.

lastEntries.entries Object[]

kullanicinin entryleri.

lastEntries.entries.id Number

entry id'si.

lastEntries.entries.title String

entrynin ait oldugu baslik

lastEntries.entries.body String

entryin icerigi

lastEntries.entries.favCount Number

entryin favori sayisi

lastEntries.entries.isPinned Boolean

entryin pinli olup olmadigi.

lastEntries.entries.isPinnedOnProfile Boolean

entryin profilinde pinli olup olmadigi.

lastEntries.entries.inEksiSeyler Boolean

entryin eksiseyler'de olup olmadigi.

lastEntries.entries.commentCount Number

entryin yorum sayisi. (sorularinizi yanitliyorum'da vs. bulunan)

lastEntries.entries.aboutAuthor Object

entryin yazar bilgileri.

lastEntries.entries.aboutAuthor.author String

yazarin nicki.

lastEntries.entries.aboutAuthor.authorProfilePicture String

yazarin profil resmi.

lastEntries.entries.aboutDateTime Object

entryin tarih bilgileri.

lastEntries.entries.aboutDateTime.createdAtDate String

entryin olusturulma tarihi.

lastEntries.entries.aboutDateTime.createdAtTime String

entryin olusturulma saati.

lastEntries.entries.aboutDateTime.updatedAtDate String

entryin guncellenme tarihi.

lastEntries.entries.aboutDateTime.updatedAtTime String

entryin guncellenme saati.

Success response example

Success response example - Success-Response:

{
  "nick": "ssg",
  "isUserCaylak": false,
  "isUserLanetli": false,
  "isUserLeyla": false,
  "totalEntryCount": 51118,
  "totalPageCount": 5112,
  "userFollowingCount": 452,
  "userFollowerCount": 15122,
  "karmaLevel": "mangal yürekli rişar (500)",
  "pinnedBadges": [
    {
      "title": "gece kuşu: çoğunlukla gece entry girenler",
      "imgSrc": "https://cdn.eksisozluk.com/badges/gece-kusu.png"
    },
    ...
  ],
  "authorProfilePicture": "https://img.ekstat.com/profiles/ssg-637802096150637091.jpg",
  "lastEntries": {
    "pinnedEntry": {
      "id": 112047179,
      "title": "street coder",
      "body": "başlangıç ve orta seviye programcılar için hem var olan yerleşik kural ve prensipleri sorgulayan hem de bazılarını neden kullanmamız gerektiği konusunda sorgular ve tavsiyeler içeren <a rel=\"nofollow noopener\" class=\"url\" target=\"_blank\" href=\"https://www.manning.com/books/street-coder?utm_source=sedatk&amp;utm_medium=affiliate&amp;utm_campaign=book_kapanoglu_street_10_6_20&amp;a_aid=sedatk&amp;a_bid=72b5d1be\" title=\"https://www.manning.com/books/street-coder?utm_source=sedatk&amp;utm_medium=affiliate&amp;utm_campaign=book_kapanoglu_street_10_6_20&amp;a_aid=sedatk&amp;a_bid=72b5d1be\">kitabım</a>. kitabın amacı farklı yollardan kendine temel bir programlama bilgisi edinmiş geliştiricilere \"sokaklarda\" başlarına neler gelebileceği ve önemsemedikleri bazı konuların kendilerine bu sokak macerasında nasıl yardımcı olacağı konusunda bir perspektif açmak. <a class=\"b\" href=\"/?q=manning+publications\">manning publications</a>'ın <a class=\"b\" href=\"/?q=meap\">meap</a> erken erişim programıyla çıktı. gelen geri bildirimler doğrultusunda hem şekillenecek hem de kitabın gelişimini canlı takip etme imkanı olacak.<br><br><a rel=\"nofollow noopener\" class=\"url\" target=\"_blank\" href=\"https://streetcoder.org/\">https://streetcoder.org/</a>",
      "favCount": 221,
      "isPinned": false,
      "isPinnedOnProfile": true,
      "inEksiSeyler": false,
      "commentCount": 0,
      "aboutAuthor": {
        "author": "ssg",
        "authorProfilePicture": "https://img.ekstat.com/profiles/ssg-637802096150637091.jpg"
      },
      "aboutDateTime": {
        "createdAtDate": "24.08.2020",
        "createdAtTime": "22:49",
        "updatedAtDate": "01.09.2021",
        "updatedAtTime": "22:35"
      }
    },
    "entries": [
      {
        "id": 140215313,
        "title": "yazarların cips tercihleri",
        "body": "(bkz: <a class=\"b\" href=\"/entry/34124398\">kılıçoğlu sineması/#34124398</a>)",
        ...
        }
      },
      ...
    ]
  }
}

Error response

Error response - Error 4xx

Name Type Description
RequestFailedWithStatusCode404

kullanici bulunamadi.

Error response example

Error response example - api/user/4213412fadsfsadsadsad421:

{
"error": "Request failed with status code 404"
}

TLDR

TLDR

controller method endpoint örnek url (tıkla) sayfali örnek url (tıkla) açıklama
topicList 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
topicList get api/topic/list/:choice/:page? /api/topic/list/gundem /api/topic/list/basiboslar/3 başlıkları getirir
topic get api/topic/:slug/:page? /api/topic/pena /api/topic/gap year/2 bir başlığı getirir
entry get api/entry/:id /api/entry/1   bir entry'i getirir
page get api/user/:nick/:choice/:page? /api/user/ssg/entries /api/user/ssg/most-liked/2 bir suserin entry sayfalarini getirir
debe get api/index/debe /api/index/debe   debe'yi getirir
user get api/user/:nick /api/user/ssg   bir suser'ı getirir
search get api/index/search/:query/:page? /api/index/search/pena /api/index/search/boston celtics/4 arama sonucu
autoComplete get api/index/autocomplete/:query /api/index/autocomplete/pena   otomatik tamamlama
allChannels get api/index/channels /api/index/channels   kanal kategorileri
images get api/user/:nick/images /api/user/ssg/images   bir suserin gorsellerini getirir

GitHub