Skip to content

Commit 7c71f02

Browse files
committed
Update eksisozluk-gundem-dikkat-daginikligi-ve-emacs
1 parent 8f4ca3e commit 7c71f02

File tree

2 files changed

+67
-29
lines changed

2 files changed

+67
-29
lines changed

README.org

Lines changed: 33 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4524,13 +4524,13 @@ Nice.
45244524
* Ekşisözlük, gündem, dikkat dağınıklığı ve Emacs :turkish:micro:
45254525
:PROPERTIES:
45264526
:PUBLISH_DATE: [2021-05-16 Sun 00:00] +0300
4527-
:UPDATE_DATE: [2021-05-16 Sun]
4527+
:UPDATE_DATE: [2025-06-29 Sun 10:27] +0300
45284528
:CUSTOM_ID: eksisozluk-gundem-dikkat-daginikligi-ve-emacs
45294529
:END:
45304530
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:
45314531

45324532
#+begin_src sh
4533-
curl --silent https://eksisozluk.com/basliklar/gundem | grep '?a=popular' | sed -E 's/[ ]*href="(.*)">(.*) <small>(.*)<\/small>(.*)/(\3) \2/' | sort -V -r | uniq
4533+
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
45344534
#+end_src
45354535

45364536
2021-05-16 23:28 itibarıyla bu komutun çıktısı şöyle:
@@ -4550,20 +4550,31 @@ Ekşi kullanımımı azaltmaya çalışıyorum-hatta hiç girmemeye-fakat bu pek
45504550
Bir ihtimal başlığı açıp bir iki entry'e bakmak istersem diye de bunu interaktif bir Emacs fonksiyonuna sardım, o da şöyle:
45514551

45524552
#+begin_src elisp
4553-
(defun isamert/eksi-gundem-sirali ()
4554-
"Eksi gundemini entry sayisina gore sirala ve `completing-read' yap."
4555-
(interactive)
4556-
(let* ((selectrum-should-sort nil)
4557-
(results (->> (shell-command-to-string "curl --silent https://eksisozluk.com/basliklar/gundem | grep '?a=popular' | sed -E 's/[ ]*href=\"(.*)\">(.*) <small>(.*)<\\/small>(.*)/(\\3) \\2|||\\1/' | sort -V -r | uniq")
4558-
(s-split "\n")
4559-
(--map (s-split "|||" it))
4560-
(--map `(,(car it) . ,(cadr it))))))
4561-
(->> results
4562-
(completing-read "Baslik: ")
4563-
(funcall (-flip 'assoc-string) results)
4564-
(cdr)
4565-
(format "https://eksisozluk.com/%s")
4566-
(browse-url))))
4553+
(defun isamert/eksi-gundem-sirali ()
4554+
"Eksi gundemini entry sayisina gore sirala ve `completing-read' yap."
4555+
(interactive)
4556+
(let* ((results (->>
4557+
(with-temp-buffer
4558+
(insert
4559+
(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"))
4560+
(goto-char (point-min))
4561+
(xml-parse-string)) ; Turkce karakterleri duzgun handle etmek icin
4562+
(s-trim)
4563+
(s-split "\n")
4564+
(--map (s-split "|||" it))
4565+
(--map `(,(car it) . ,(cadr it))))))
4566+
(->>
4567+
(completing-read "Baslik: "
4568+
(lambda (string predicate action)
4569+
(if (eq action 'metadata)
4570+
'(metadata
4571+
(display-sort-function . identity)
4572+
(cycle-sort-function . identity))
4573+
(complete-with-action action results string predicate))))
4574+
(funcall (-flip 'assoc-string) results)
4575+
(cdr)
4576+
(format "https://eksisozluk.com/%s")
4577+
(browse-url))))
45674578
#+end_src
45684579

45694580
O da böyle gözüküyor:
@@ -4573,6 +4584,12 @@ O da böyle gözüküyor:
45734584

45744585
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.
45754586

4587+
-----
4588+
4589+
- Edit (2025-06-29) :: Ülkeden taşındım ama hala şu lanet siteye giriyorum, kalite her zamankinden daha kötü. Bunun dışında:
4590+
- Elisp kodunu sıralamayı bozmayacak şekilde güncelledim, önceki hali sadece ~selectrum~ kullanıyorsanız sıralamayı koruyordu, şimdi bütün completing-read wrapperları ile çalışmalı.
4591+
- Bash kodunu Eksi tarafından bloklanmamak adına bir ~User-Agent~ içerecek şekilde güncelledim.
4592+
45764593
* Dealing with APIs, JSONs and databases in org-mode :emacs:org:
45774594
:PROPERTIES:
45784595
:PUBLISH_DATE: [2022-01-04 Tue 00:00] +0300

docs/2021/05/16/eksisozluk-gundem-dikkat-daginikligi-ve-emacs.html

Lines changed: 34 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ <h1 id="post-title">Ekşisözlük, gündem, dikkat dağınıklığı ve Emacs</h
3636
<li id="author">isamert</li>
3737
<li id="tags"><a href="/tags/turkish.html" class="tag-link">turkish</a>, <a href="/tags/micro.html" class="tag-link">micro</a></li>
3838
<li id="publish-date">2021-05-16</li>
39-
<li id="updated-date">2021-05-16</li>
39+
<li id="updated-date">2025-06-29</li>
4040
</ul>
4141
</div>
4242

@@ -46,7 +46,7 @@ <h1 id="post-title">Ekşisözlük, gündem, dikkat dağınıklığı ve Emacs</h
4646
</p>
4747

4848
<div class="org-src-container">
49-
<pre class="src src-sh">curl --silent https://eksisozluk.com/basliklar/gundem | grep '?a=popular' | sed -E 's/[ ]*href="(.*)"&gt;(.*) &lt;small&gt;(.*)&lt;\/small&gt;(.*)/(\3) \2/' | sort -V -r | uniq
49+
<pre class="src src-sh">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="(.*)"&gt;(.*) &lt;small&gt;(.*)&lt;\\/small&gt;(.*)/(\\3) \\2|||\\1/' | sort -V -r | uniq
5050
</pre>
5151
</div>
5252

@@ -75,17 +75,28 @@ <h1 id="post-title">Ekşisözlük, gündem, dikkat dağınıklığı ve Emacs</h
7575
<pre class="src src-elisp">(defun isamert/eksi-gundem-sirali ()
7676
"Eksi gundemini entry sayisina gore sirala ve `completing-read' yap."
7777
(interactive)
78-
(let* ((selectrum-should-sort nil)
79-
(results (-&gt;&gt; (shell-command-to-string "curl --silent https://eksisozluk.com/basliklar/gundem | grep '?a=popular' | sed -E 's/[ ]*href=\"(.*)\"&gt;(.*) &lt;small&gt;(.*)&lt;\\/small&gt;(.*)/(\\3) \\2|||\\1/' | sort -V -r | uniq")
80-
(s-split "\n")
81-
(--map (s-split "|||" it))
82-
(--map `(,(car it) . ,(cadr it))))))
83-
(-&gt;&gt; results
84-
(completing-read "Baslik: ")
85-
(funcall (-flip 'assoc-string) results)
86-
(cdr)
87-
(format "https://eksisozluk.com/%s")
88-
(browse-url))))
78+
(let* ((results (-&gt;&gt;
79+
(with-temp-buffer
80+
(insert
81+
(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=\"(.*)\"&gt;(.*) &lt;small&gt;(.*)&lt;\\/small&gt;(.*)/(\\3) \\2|||\\1/' | sort -V -r | uniq"))
82+
(goto-char (point-min))
83+
(xml-parse-string)) ; Turkce karakterleri duzgun handle etmek icin
84+
(s-trim)
85+
(s-split "\n")
86+
(--map (s-split "|||" it))
87+
(--map `(,(car it) . ,(cadr it))))))
88+
(-&gt;&gt;
89+
(completing-read "Baslik: "
90+
(lambda (string predicate action)
91+
(if (eq action 'metadata)
92+
'(metadata
93+
(display-sort-function . identity)
94+
(cycle-sort-function . identity))
95+
(complete-with-action action results string predicate))))
96+
(funcall (-flip 'assoc-string) results)
97+
(cdr)
98+
(format "https://eksisozluk.com/%s")
99+
(browse-url))))
89100
</pre>
90101
</div>
91102

@@ -103,6 +114,16 @@ <h1 id="post-title">Ekşisözlük, gündem, dikkat dağınıklığı ve Emacs</h
103114
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.
104115
</p>
105116

117+
<hr>
118+
119+
<dl class="org-dl">
120+
<dt>Edit (2025-06-29)</dt><dd>Ülkeden taşındım ama hala şu lanet siteye giriyorum, kalite her zamankinden daha kötü. Bunun dışında:
121+
<ul class="org-ul">
122+
<li>Elisp kodunu sıralamayı bozmayacak şekilde güncelledim, önceki hali sadece <code>selectrum</code> kullanıyorsanız sıralamayı koruyordu, şimdi bütün completing-read wrapperları ile çalışmalı.</li>
123+
<li>Bash kodunu Eksi tarafından bloklanmamak adına bir <code>User-Agent</code> içerecek şekilde güncelledim.</li>
124+
</ul></dd>
125+
</dl>
126+
106127
</div>
107128

108129
<div id="similar-posts">

0 commit comments

Comments
 (0)