Compare commits

..

No commits in common. "main" and "main" have entirely different histories.
main ... main

3 changed files with 13 additions and 28 deletions

View File

@ -8,11 +8,11 @@
"owner_website": "https://vern.cc" "owner_website": "https://vern.cc"
}, },
{ {
"clearnet": "https://rd.bloat.cat", "clearnet": "https://rd.bloatcat.tk",
"tor": null, "tor": null,
"i2p": null, "i2p": null,
"country": "RO", "country": "IS",
"owner_name": "bloatcat", "owner_name": "bloatcat",
"owner_website": "https://bloat.cat" "owner_website": "https://bloatcat.tk"
} }
] ]

30
main.py
View File

@ -18,27 +18,15 @@ def scrape(url):
return f"REDIRECT {path}" return f"REDIRECT {path}"
ret = [] ret = []
soup = BeautifulSoup(data.text, "html.parser") soup = BeautifulSoup(data.text, "html.parser")
for div in soup.find_all("div"):
defs = [(div, div.get('data-defid')) for div in soup.find_all("div") if div.get('data-defid')] defid = div.get('data-defid')
try: if defid != None:
thumbs_data = { definition = soup.find(attrs={"data-defid": [defid]})
str(entry['defid']): entry word = definition.select("div div h1 a, div div h2 a")[0].text
for entry meaning = definition.find(attrs={"class" : ["break-words meaning mb-4"]}).decode_contents()
in requests.get( example = definition.find(attrs={"class" : ["break-words example italic mb-4"]}).decode_contents()
'https://api.urbandictionary.com/v0/uncacheable?ids=' + ','.join(defid for (_, defid) in defs) contributor = definition.find(attrs={"class" : ["contributor font-bold"]})
).json()['thumbs'] ret.append([defid, word, meaning, example, contributor])
}
except:
thumbs_data = {}
for (definition, defid) in defs:
word = definition.select("div div h1 a, div div h2 a")[0].text
meaning = definition.find(attrs={"class" : ["break-words meaning mb-4"]}).decode_contents()
example = definition.find(attrs={"class" : ["break-words example italic mb-4"]}).decode_contents()
contributor = definition.find(attrs={"class" : ["contributor font-bold"]})
thumbs_up = thumbs_data.get(defid, {}).get('up')
thumbs_down = thumbs_data.get(defid, {}).get('down')
ret.append([defid, word, meaning, example, contributor, thumbs_up, thumbs_down])
pages = soup.find(attrs={"class" : ["pagination text-xl text-center"]}) pages = soup.find(attrs={"class" : ["pagination text-xl text-center"]})
if pages == None: if pages == None:
pages = "" pages = ""

View File

@ -21,7 +21,7 @@
<a href="http://git.vern.cc/cobra/rural-dict">Source Code</a> <a href="http://git.vern.cc/cobra/rural-dict">Source Code</a>
</center> </center>
<br> <br>
{% for defid, word, definition, example, author, thumbs_up, thumbs_down in data[0] %} {% for defid, word, definition, example, author in data[0] %}
<div class="{{ defid }}"> <div class="{{ defid }}">
<a href="/define.php?term={{ word }}"> <a href="/define.php?term={{ word }}">
@ -30,9 +30,6 @@
<p>{{ definition|safe }}</p> <p>{{ definition|safe }}</p>
<p><i>{{ example|safe }}</i></p> <p><i>{{ example|safe }}</i></p>
<p>{{ author|safe }}</p> <p>{{ author|safe }}</p>
{% if thumbs_up and thumbs_down %}
<p>{{ thumbs_up|safe }}<span title="thumbs up">👍</span> {{ thumbs_down|safe }}<span title="thumbs down">👎</span></p>
{% endif %}
</div> </div>
<br> <br>
{% endfor %} {% endfor %}