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
__version__ = "0.6.1"
__version__ = "0.6.2"
__author__ = "beucismis"
__source__ = "https://github.com/beucismis/ozgursozluk"
__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 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
class Eksi:
class EksiSozluk:
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:
self.base_url = base_url
self.session = requests.Session()

@ -10,36 +10,45 @@
<div class="settings-group">
theme:
<select name="theme">
<option value="light" {% if theme == 'light' %}selected{% endif %}>light</option>
<option value="dark" {% if theme == 'dark' %}selected{% endif %}>dark</option>
<option value="amoled" {% if theme == 'amoled' %}selected{% endif %}>amoled</option>
<option value="violet" {% if theme == 'violet' %}selected{% endif %}>violet</option>
<option value="gruvbox" {% if theme == 'gruvbox' %}selected{% endif %}>gruvbox</option>
<option value="gruvboxlight" {% if theme == 'gruvboxlight' %}selected{% endif %}>gruvboxlight</option>
<option value="discord" {% if theme == 'discord' %}selected{% endif %}>discord</option>
<option value="startpage" {% if theme == 'startpage' %}selected{% endif %}>startpage</option>
{% for theme in themes %}
<option value="{{ theme }}"
{% if default_theme == theme %}selected{% endif %}>
{{ theme }}
</option>
{% endfor %}
</select>
</div>
<div class="settings-group">
display pinned topics:
<select name="display_pinned_topics">
<option value="true" {% if display_pinned_topics == 'true' %}selected{% endif %}>yes</option>
<option value="false" {% if display_pinned_topics == 'false' %}selected{% endif %}>no</option>
{% for status in ['true', 'false'] %}
<option value="{{ status }}"
{% if default_display_pinned_topics == status %}selected{% endif %}>
{{ status }}
</option>
{% endfor %}
</select>
</div>
<div class="settings-group">
display author nicknames:
<select name="display_author_nicknames">
<option value="true" {% if display_author_nicknames == 'true' %}selected{% endif %}>yes</option>
<option value="false" {% if display_author_nicknames == 'false' %}selected{% endif %}>no</option>
{% for status in ['true', 'false'] %}
<option value="{{ status }}"
{% if default_display_author_nicknames == status %}selected{% endif %}>
{{ status }}
</option>
{% endfor %}
</select>
</div>
<div class="settings-group">
ekşi base url:
<select name="eksi_base_url">
<option value="https://eksisozluk.com" {% if eksi_base_url == 'https://eksisozluk.com' %} selected {% endif %}>eksisozluk.com</option>
<option value="https://eksisozluk1923.com" {% if eksi_base_url == 'https://eksisozluk1923.com' %} selected {% endif %}>eksisozluk1923.com</option>
<option value="https://eksisozluk2023.com" {% if eksi_base_url == 'https://eksisozluk2023.com' %} selected {% endif %}>eksisozluk2023.com</option>
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;">

@ -1,17 +1,19 @@
from flask import url_for, redirect, request, render_template
import ozgursozluk
from ozgursozluk.api import Eksi
from ozgursozluk.api import EksiSozluk
from ozgursozluk.utils import last_commit, expires
from ozgursozluk.config import (
from ozgursozluk.configs import (
themes,
eksi_sozluk_base_urls,
DEFAULT_THEME,
DEFAULT_DISPLAY_PINNED_TOPICS,
DEFAULT_DISPLAY_AUTHOR_NICKNAMES,
DEFAULT_EKSI_BASE_URL,
DEFAULT_EKSI_SOZLUK_BASE_URL,
)
eksi = Eksi()
es = EksiSozluk()
@ozgursozluk.app.context_processor
@ -23,6 +25,8 @@ def global_template_variables():
source=ozgursozluk.__source__,
description=ozgursozluk.__description__,
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():
"""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"])
@ -46,7 +52,7 @@ def index():
if request.method == "POST":
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)
@ -59,7 +65,7 @@ def topic(path: str):
a = request.args.get("a", default=None, type=str)
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):
"""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>")
def author(nickname: str):
"""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")
def debe():
"""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>")
def search(q: str):
"""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"])
@ -113,8 +119,8 @@ def settings():
expires=expires(),
)
response.set_cookie(
"eksi_base_url",
request.form["eksi_base_url"],
"eksi_sozluk_base_url",
request.form["eksi_sozluk_base_url"],
expires=expires(),
)
@ -122,17 +128,17 @@ def settings():
return render_template(
"settings.html",
theme=request.cookies.get(
default_theme=request.cookies.get(
"theme", DEFAULT_THEME,
),
display_pinned_topics=request.cookies.get(
default_display_pinned_topics=request.cookies.get(
"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,
),
eksi_base_url=request.cookies.get(
"eksi_base_url", DEFAULT_EKSI_BASE_URL,
default_eksi_sozluk_base_url=request.cookies.get(
"eksi_sozluk_base_url", DEFAULT_EKSI_SOZLUK_BASE_URL,
),
)

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

Loading…
Cancel
Save