Remove default base url option from settings

pull/8/head
beucismis 1 year ago
parent 5a2d21a721
commit 84816d3ce3
  1. 12
      ozgursozluk/api.py
  2. 27
      ozgursozluk/configs.py
  3. 17
      ozgursozluk/templates/settings.html
  4. 36
      ozgursozluk/views.py

@ -5,14 +5,14 @@ from flask import abort
from bs4 import BeautifulSoup
from fake_useragent import UserAgent
from ozgursozluk.configs import DEFAULT_EKSI_SOZLUK_BASE_URL
from ozgursozluk.configs import EKSI_SOZLUK_BASE_URL
from ozgursozluk.models import Entry, EntryTopic, Topic, Author, Gundem, Debe
class EksiSozluk:
def __init__(
self,
base_url: str = DEFAULT_EKSI_SOZLUK_BASE_URL,
base_url: str = EKSI_SOZLUK_BASE_URL,
headers: Optional[dict] = None,
) -> None:
self.base_url = base_url
@ -24,7 +24,9 @@ class EksiSozluk:
"""Make a request."""
response = self.session.request(
method, f"{self.base_url}/{path}", params=params,
method,
f"{self.base_url}/{path}",
params=params,
)
if response.status_code != 200:
@ -44,7 +46,7 @@ class EksiSozluk:
entry.find("div", class_="content"),
entry.find("a", class_="entry-author").text,
entry.find("a", class_="entry-date permalink", href=True).text,
int(entry.attrs["data-favorite-count"])
int(entry.attrs["data-favorite-count"]),
)
def search_topic(self, query: str) -> Topic:
@ -98,7 +100,7 @@ class EksiSozluk:
int(entry.attrs["data-favorite-count"]),
int(h1.attrs["data-id"]),
h1.attrs["data-title"],
h1.find("a")["href"][1:]
h1.find("a")["href"][1:],
)
def get_author(self, nickname: str) -> Author:

@ -3,34 +3,27 @@ from typing import Final
SECRET_KEY: Final = environ.get("OZGURSOZLUK_SECRET_KEY", "Some secret string")
EKSI_SOZLUK_BASE_URL: Final = "https://eksisozluk.com"
DEFAULT_THEME: Final = "light"
DEFAULT_DISPLAY_PINNED_TOPICS: Final = "true"
DEFAULT_DISPLAY_AUTHOR_NICKNAMES: Final = "false"
DEFAULT_DISPLAY_ENTRY_FAVORITE_COUNT: Final = "false"
DEFAULT_EKSI_SOZLUK_BASE_URL: Final = "https://eksisozluk.com"
DEFAULT_COOKIES: Final = {
"theme": DEFAULT_THEME,
"display_pinned_topics": DEFAULT_DISPLAY_PINNED_TOPICS,
"display_author_nicknames": DEFAULT_DISPLAY_AUTHOR_NICKNAMES,
"display_entry_favorite_count": DEFAULT_DISPLAY_ENTRY_FAVORITE_COUNT,
"eksi_sozluk_base_url": DEFAULT_EKSI_SOZLUK_BASE_URL
}
themes: Final = [
"light",
"dark",
"amoled",
"violet",
"gruvbox",
"gruvboxlight",
"discord",
"startpage",
]
eksi_sozluk_base_urls: Final = [
"https://eksisozluk.com",
"https://eksisozluk42.com",
"https://eksisozluk1923.com",
"https://eksisozluk2023.com",
THEMES: Final = [
"light",
"dark",
"amoled",
"violet",
"gruvbox",
"gruvboxlight",
"discord",
"startpage",
]

@ -51,17 +51,6 @@
{% endfor %}
</select>
</div>
<div class="settings-group">
ekşi sözlük base url:
<select name="eksi_sozluk_base_url">
{% for url in eksi_sozluk_base_urls %}
<option value="{{ url }}"
{% if default_eksi_sozluk_base_url == url %}selected{% endif %}>
{{ url[8:] }}
</option>
{% endfor %}
</select>
</div>
<div style="text-align: right; padding-top: 2rem; padding-bottom: 2rem;">
<button style="width: 100%;" type="submit">save</button>
</div>
@ -76,6 +65,12 @@
<a href="{{ source }}/commit/{{ last_commit }}" target="_blank">{{ last_commit[:8] }}</a>
-
made with <3 on the <a href="{{ url_for('topic', path='thinkpad-t61--1883047') }}">t61</a>
</br></br>
contributors:
{% for contributor in contributors %}
<a href="https://github.com/{{ contributor['username'] }}">{{ contributor['username'] }}</a>
({{ contributor['commit'] }})
{% endfor %}
</div>
</div>
{% endblock %}

@ -2,13 +2,8 @@ from flask import url_for, redirect, request, render_template
import ozgursozluk
from ozgursozluk.api import EksiSozluk
from ozgursozluk.utils import last_commit, expires
from ozgursozluk.configs import (
themes,
eksi_sozluk_base_urls,
DEFAULT_COOKIES,
DEFAULT_EKSI_SOZLUK_BASE_URL
)
from ozgursozluk.utils import last_commit, expires, contributors
from ozgursozluk.configs import EKSI_SOZLUK_BASE_URL, DEFAULT_COOKIES, THEMES
es = EksiSozluk()
@ -19,12 +14,12 @@ def global_template_variables():
"""Return the gloabal template variables."""
return dict(
themes=THEMES,
last_commit=last_commit(),
contributors=contributors(),
version=ozgursozluk.__version__,
source=ozgursozluk.__source__,
description=ozgursozluk.__description__,
last_commit=last_commit(),
themes=themes,
eksi_sozluk_base_urls=eksi_sozluk_base_urls,
)
@ -32,9 +27,7 @@ def global_template_variables():
def before_request():
"""Set base URL before request."""
es.base_url = request.cookies.get(
"eksi_sozluk_base_url", DEFAULT_EKSI_SOZLUK_BASE_URL
)
es.base_url = request.cookies.get("eksi_sozluk_base_url", EKSI_SOZLUK_BASE_URL)
@ozgursozluk.app.route("/", methods=["GET", "POST"])
@ -62,9 +55,7 @@ def topic(path: str):
p = request.args.get("p", default=1, type=int)
a = request.args.get("a", default=None, type=str)
return render_template(
"topic.html", topic=es.get_topic(path, p, a), p=p, a=a
)
return render_template("topic.html", topic=es.get_topic(path, p, a), p=p, a=a)
@ozgursozluk.app.route("/entry/<int:id>")
@ -101,20 +92,19 @@ def settings():
if request.method == "POST":
response = redirect(url_for("settings"))
for cookie in DEFAULT_COOKIES:
response.set_cookie(
cookie,
request.form[cookie],
expires=expires()
)
response.set_cookie(cookie, request.form[cookie], expires=expires())
return response
return render_template(
"settings.html",
# Unpack DEFAULT_COOKIES variable to the template
**{f"default_{cookie}": request.cookies.get(cookie, DEFAULT_COOKIES[cookie])
for cookie in DEFAULT_COOKIES}
**{
f"default_{cookie}": request.cookies.get(cookie, DEFAULT_COOKIES[cookie])
for cookie in DEFAULT_COOKIES
},
)

Loading…
Cancel
Save