Bump version

pull/6/head
beucismis 1 year ago
parent 2274d9a84f
commit a1e8c649f0
  1. 2
      ozgursozluk/__init__.py
  2. 8
      ozgursozluk/api.py
  3. 43
      ozgursozluk/templates/settings.html
  4. 42
      ozgursozluk/views.py
  5. 8
      tests.py

@ -1,7 +1,7 @@
from flask import Flask from flask import Flask
__version__ = "0.6.1" __version__ = "0.6.2"
__author__ = "beucismis" __author__ = "beucismis"
__source__ = "https://github.com/beucismis/ozgursozluk" __source__ = "https://github.com/beucismis/ozgursozluk"
__description__ = "a free and open source alternative ekşi sözlük front-end" __description__ = "a free and open source alternative ekşi sözlük front-end"

@ -5,13 +5,15 @@ from flask import abort
from bs4 import BeautifulSoup from bs4 import BeautifulSoup
from fake_useragent import UserAgent from fake_useragent import UserAgent
from ozgursozluk.config import DEFAULT_EKSI_BASE_URL from ozgursozluk.configs import DEFAULT_EKSI_SOZLUK_BASE_URL
from ozgursozluk.models import Entry, EntryTopic, Topic, Author, Gundem, Debe from ozgursozluk.models import Entry, EntryTopic, Topic, Author, Gundem, Debe
class Eksi: class EksiSozluk:
def __init__( def __init__(
self, base_url: str = DEFAULT_EKSI_BASE_URL, headers: Optional[dict] = None, self,
base_url: str = DEFAULT_EKSI_SOZLUK_BASE_URL,
headers: Optional[dict] = None,
) -> None: ) -> None:
self.base_url = base_url self.base_url = base_url
self.session = requests.Session() self.session = requests.Session()

@ -10,36 +10,45 @@
<div class="settings-group"> <div class="settings-group">
theme: theme:
<select name="theme"> <select name="theme">
<option value="light" {% if theme == 'light' %}selected{% endif %}>light</option> {% for theme in themes %}
<option value="dark" {% if theme == 'dark' %}selected{% endif %}>dark</option> <option value="{{ theme }}"
<option value="amoled" {% if theme == 'amoled' %}selected{% endif %}>amoled</option> {% if default_theme == theme %}selected{% endif %}>
<option value="violet" {% if theme == 'violet' %}selected{% endif %}>violet</option> {{ theme }}
<option value="gruvbox" {% if theme == 'gruvbox' %}selected{% endif %}>gruvbox</option> </option>
<option value="gruvboxlight" {% if theme == 'gruvboxlight' %}selected{% endif %}>gruvboxlight</option> {% endfor %}
<option value="discord" {% if theme == 'discord' %}selected{% endif %}>discord</option>
<option value="startpage" {% if theme == 'startpage' %}selected{% endif %}>startpage</option>
</select> </select>
</div> </div>
<div class="settings-group"> <div class="settings-group">
display pinned topics: display pinned topics:
<select name="display_pinned_topics"> <select name="display_pinned_topics">
<option value="true" {% if display_pinned_topics == 'true' %}selected{% endif %}>yes</option> {% for status in ['true', 'false'] %}
<option value="false" {% if display_pinned_topics == 'false' %}selected{% endif %}>no</option> <option value="{{ status }}"
{% if default_display_pinned_topics == status %}selected{% endif %}>
{{ status }}
</option>
{% endfor %}
</select> </select>
</div> </div>
<div class="settings-group"> <div class="settings-group">
display author nicknames: display author nicknames:
<select name="display_author_nicknames"> <select name="display_author_nicknames">
<option value="true" {% if display_author_nicknames == 'true' %}selected{% endif %}>yes</option> {% for status in ['true', 'false'] %}
<option value="false" {% if display_author_nicknames == 'false' %}selected{% endif %}>no</option> <option value="{{ status }}"
{% if default_display_author_nicknames == status %}selected{% endif %}>
{{ status }}
</option>
{% endfor %}
</select> </select>
</div> </div>
<div class="settings-group"> <div class="settings-group">
ekşi base url: ekşi sözlük base url:
<select name="eksi_base_url"> <select name="eksi_sozluk_base_url">
<option value="https://eksisozluk.com" {% if eksi_base_url == 'https://eksisozluk.com' %} selected {% endif %}>eksisozluk.com</option> {% for url in eksi_sozluk_base_urls %}
<option value="https://eksisozluk1923.com" {% if eksi_base_url == 'https://eksisozluk1923.com' %} selected {% endif %}>eksisozluk1923.com</option> <option value="{{ url }}"
<option value="https://eksisozluk2023.com" {% if eksi_base_url == 'https://eksisozluk2023.com' %} selected {% endif %}>eksisozluk2023.com</option> {% if default_eksi_sozluk_base_url == url %}selected{% endif %}>
{{ url[8:] }}
</option>
{% endfor %}
</select> </select>
</div> </div>
<div style="text-align: right; padding-top: 2rem; padding-bottom: 2rem;"> <div style="text-align: right; padding-top: 2rem; padding-bottom: 2rem;">

@ -1,17 +1,19 @@
from flask import url_for, redirect, request, render_template from flask import url_for, redirect, request, render_template
import ozgursozluk import ozgursozluk
from ozgursozluk.api import Eksi from ozgursozluk.api import EksiSozluk
from ozgursozluk.utils import last_commit, expires from ozgursozluk.utils import last_commit, expires
from ozgursozluk.config import ( from ozgursozluk.configs import (
themes,
eksi_sozluk_base_urls,
DEFAULT_THEME, DEFAULT_THEME,
DEFAULT_DISPLAY_PINNED_TOPICS, DEFAULT_DISPLAY_PINNED_TOPICS,
DEFAULT_DISPLAY_AUTHOR_NICKNAMES, DEFAULT_DISPLAY_AUTHOR_NICKNAMES,
DEFAULT_EKSI_BASE_URL, DEFAULT_EKSI_SOZLUK_BASE_URL,
) )
eksi = Eksi() es = EksiSozluk()
@ozgursozluk.app.context_processor @ozgursozluk.app.context_processor
@ -23,6 +25,8 @@ def global_template_variables():
source=ozgursozluk.__source__, source=ozgursozluk.__source__,
description=ozgursozluk.__description__, description=ozgursozluk.__description__,
last_commit=last_commit(), last_commit=last_commit(),
themes=themes,
eksi_sozluk_base_urls=eksi_sozluk_base_urls,
) )
@ -30,7 +34,9 @@ def global_template_variables():
def before_request(): def before_request():
"""Set base URL before request.""" """Set base URL before request."""
eksi.base_url = request.cookies.get("eksi_base_url", DEFAULT_EKSI_BASE_URL) es.base_url = request.cookies.get(
"eksi_sozluk_base_url", DEFAULT_EKSI_SOZLUK_BASE_URL
)
@ozgursozluk.app.route("/", methods=["GET", "POST"]) @ozgursozluk.app.route("/", methods=["GET", "POST"])
@ -46,7 +52,7 @@ def index():
if request.method == "POST": if request.method == "POST":
return redirect(url_for("search", q=request.form["q"])) return redirect(url_for("search", q=request.form["q"]))
gundem = eksi.get_gundem(p) gundem = es.get_gundem(p)
return render_template("index.html", gundem=gundem, p=p) return render_template("index.html", gundem=gundem, p=p)
@ -59,7 +65,7 @@ def topic(path: str):
a = request.args.get("a", default=None, type=str) a = request.args.get("a", default=None, type=str)
return render_template( return render_template(
"topic.html", topic=eksi.get_topic(path, p, a), p=p, a=a "topic.html", topic=es.get_topic(path, p, a), p=p, a=a
) )
@ -67,28 +73,28 @@ def topic(path: str):
def entry(id: int): def entry(id: int):
"""Entry route.""" """Entry route."""
return render_template("entry.html", entry=eksi.get_entry(id)) return render_template("entry.html", entry=es.get_entry(id))
@ozgursozluk.app.route("/biri/<nickname>") @ozgursozluk.app.route("/biri/<nickname>")
def author(nickname: str): def author(nickname: str):
"""Author route.""" """Author route."""
return render_template("author.html", author=eksi.get_author(nickname)) return render_template("author.html", author=es.get_author(nickname))
@ozgursozluk.app.route("/debe") @ozgursozluk.app.route("/debe")
def debe(): def debe():
"""Debe route.""" """Debe route."""
return render_template("debe.html", debe=eksi.get_debe()) return render_template("debe.html", debe=es.get_debe())
@ozgursozluk.app.route("/search/<q>") @ozgursozluk.app.route("/search/<q>")
def search(q: str): def search(q: str):
"""Search route.""" """Search route."""
return render_template("topic.html", topic=eksi.search_topic(q), p=1, a=None) return render_template("topic.html", topic=es.search_topic(q), p=1, a=None)
@ozgursozluk.app.route("/settings", methods=["GET", "POST"]) @ozgursozluk.app.route("/settings", methods=["GET", "POST"])
@ -113,8 +119,8 @@ def settings():
expires=expires(), expires=expires(),
) )
response.set_cookie( response.set_cookie(
"eksi_base_url", "eksi_sozluk_base_url",
request.form["eksi_base_url"], request.form["eksi_sozluk_base_url"],
expires=expires(), expires=expires(),
) )
@ -122,17 +128,17 @@ def settings():
return render_template( return render_template(
"settings.html", "settings.html",
theme=request.cookies.get( default_theme=request.cookies.get(
"theme", DEFAULT_THEME, "theme", DEFAULT_THEME,
), ),
display_pinned_topics=request.cookies.get( default_display_pinned_topics=request.cookies.get(
"display_pinned_topics", DEFAULT_DISPLAY_PINNED_TOPICS, "display_pinned_topics", DEFAULT_DISPLAY_PINNED_TOPICS,
), ),
display_author_nicknames=request.cookies.get( default_display_author_nicknames=request.cookies.get(
"display_author_nicknames", DEFAULT_DISPLAY_AUTHOR_NICKNAMES, "display_author_nicknames", DEFAULT_DISPLAY_AUTHOR_NICKNAMES,
), ),
eksi_base_url=request.cookies.get( default_eksi_sozluk_base_url=request.cookies.get(
"eksi_base_url", DEFAULT_EKSI_BASE_URL, "eksi_sozluk_base_url", DEFAULT_EKSI_SOZLUK_BASE_URL,
), ),
) )

@ -1,11 +1,11 @@
import unittest import unittest
from ozgursozluk.api import Eksi from ozgursozluk.api import EksiSozluk
eksi = Eksi() es = EksiSozluk()
topic = eksi.search_topic("linux") topic = es.search_topic("linux")
entry = eksi.get_entry(1) entry = es.get_entry(1)
class TestTopic(unittest.TestCase): class TestTopic(unittest.TestCase):

Loading…
Cancel
Save