Ekşisözlük, gündem, dikkat dağınıklığı ve Emacs
Ekşi kullanımımı azaltmaya çalışıyorum-hatta hiç girmemeye-fakat bu pek mümkün olmuyor. Nihayetinde ekşi'ye girişimin temel sebebinin gündem'e bakmak olduğunun farkına vardım. Gündem içerisinde de en çok merak ettiğim şey genel itibarıyla en çok entry girilen başlıkların neler olduğunu görmek. Fakat ekşi'de gündem tam olarak entry sayısına göre sıralanmıyor ve bu durum benim için sinir bozucu. Gündemi oluşturan 3-5 başlığa bakıp çıkmak isterken dikkatim diğer başlıklarla dağılıyor veya en çok entry girilen başlıkları bulayım derken zaman kaybediyorum. Zaten çoğu zaman entry'leri de merak etmiyorum, sadece bi başlıkları gözden geçirmek istiyorum. Bunun için çözümüm şu oldu:
curl --silent --header "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:137.0) Gecko/20100101 Firefox/137.0" https://eksisozluk.com/basliklar/gundem | grep '?a=popular' | sed -E 's/[ ]*href="(.*)">(.*) <small>(.*)<\\/small>(.*)/(\\3) \\2|||\\1/' | sort -V -r | uniq
2021-05-16 23:28 itibarıyla bu komutun çıktısı şöyle:
(696) 16 mayıs 2021 sedat peker açıklamaları
(675) 2020-2021 sezonu şampiyonu beşiktaş
(567) 16 mayıs 2021 içişleri bakanlığı genelgesi
(553) beşiktaş jean-claude billong skandalı
(482) fatih terim
(463) 22-23 mayıs 2021 yasak protestoları
(339) aynı anda 24 kızla sevgili olan öğretmen
(332) hafta sonu sokağa çıkma yasağı
...
Bir ihtimal başlığı açıp bir iki entry'e bakmak istersem diye de bunu interaktif bir Emacs fonksiyonuna sardım, o da şöyle:
(defun isamert/eksi-gundem-sirali ()
"Eksi gundemini entry sayisina gore sirala ve `completing-read' yap."
(interactive)
(let* ((results (->>
(with-temp-buffer
(insert
(shell-command-to-string "curl --silent --header \"User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:137.0) Gecko/20100101 Firefox/137.0\" https://eksisozluk.com/basliklar/gundem | grep '?a=popular' | sed -E 's/[ ]*href=\"(.*)\">(.*) <small>(.*)<\\/small>(.*)/(\\3) \\2|||\\1/' | sort -V -r | uniq"))
(goto-char (point-min))
(xml-parse-string)) ; Turkce karakterleri duzgun handle etmek icin
(s-trim)
(s-split "\n")
(--map (s-split "|||" it))
(--map `(,(car it) . ,(cadr it))))))
(->>
(completing-read "Baslik: "
(lambda (string predicate action)
(if (eq action 'metadata)
'(metadata
(display-sort-function . identity)
(cycle-sort-function . identity))
(complete-with-action action results string predicate))))
(funcall (-flip 'assoc-string) results)
(cdr)
(format "https://eksisozluk.com/%s")
(browse-url))))
O da böyle gözüküyor:
Browser üzerinde de sol frame'i ve ekşişeyler frame'ini uBlock origin aracılığıyla engelledim. Bu sayede entry okumak için girdiğimde sağdan soldan fırlayan şeyler dikkatimi dağıtmıyor. Umarım gelecekte bir vakit hiç girmem şu siteye.
- Edit (2025-06-29)
- Ülkeden taşındım ama hala şu lanet siteye giriyorum, kalite her zamankinden daha kötü. Bunun dışında:
- Elisp kodunu sıralamayı bozmayacak şekilde güncelledim, önceki hali sadece
selectrumkullanıyorsanız sıralamayı koruyordu, şimdi bütün completing-read wrapperları ile çalışmalı. - Bash kodunu Eksi tarafından bloklanmamak adına bir
User-Agentiçerecek şekilde güncelledim. - Önceki hali ile farkını buradan görebilirsiniz.
- Elisp kodunu sıralamayı bozmayacak şekilde güncelledim, önceki hali sadece