Repository navigation
Datanar 2.6.6 (базовые модели, updated_at, фиксы редиректов, переход на psycopg3) - #74
Open
brandonzorn wants to merge 63 commits into
Open
brandonzorn wants to merge 63 commits into
brandonzorn wants to merge 63 commits into
Conversation
- Исправлен значок смены темы по умолчанию - Исправлена проблема с сохранением фокуса на кнопке после смены темы - Обновлен файл **colorToggler.js**
Datanar 2.5.4
Datanar 2.5.5
Datanar 2.6.0
Datanar 2.6.1
Datanar 2.6.2
Datanar 2.6.3
Datanar 2.6.4
Datanar 2.6.5
Ключ деплоя на сервере привязан к forced command: выполняется только /usr/local/bin/deploy-datanar (git reset на origin/main, compose up --build, проверка живости). Старые шаги compose down / system prune --volumes убраны: down ронял сеть datanar_default, в которой живёт прихожая edge-nginx. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…d version Signed-off-by: bzorn <v.klimenko.2137@gmail.com>
Signed-off-by: bzorn <v.klimenko.2137@gmail.com>
Signed-off-by: bzorn <v.klimenko.2137@gmail.com>
Signed-off-by: bzorn <v.klimenko.2137@gmail.com>
Signed-off-by: bzorn <v.klimenko.2137@gmail.com>
…min panel Signed-off-by: bzorn <v.klimenko.2137@gmail.com>
Signed-off-by: bzorn <v.klimenko.2137@gmail.com>
Signed-off-by: bzorn <v.klimenko.2137@gmail.com>
Signed-off-by: bzorn <v.klimenko.2137@gmail.com>
Signed-off-by: bzorn <v.klimenko.2137@gmail.com>
Signed-off-by: bzorn <v.klimenko.2137@gmail.com>
Signed-off-by: bzorn <v.klimenko.2137@gmail.com>
Signed-off-by: bzorn <v.klimenko.2137@gmail.com>
Signed-off-by: bzorn <v.klimenko.2137@gmail.com>
Signed-off-by: bzorn <v.klimenko.2137@gmail.com>
Signed-off-by: bzorn <v.klimenko.2137@gmail.com>
Signed-off-by: bzorn <v.klimenko.2137@gmail.com>
Signed-off-by: bzorn <v.klimenko.2137@gmail.com>
Signed-off-by: bzorn <v.klimenko.2137@gmail.com>
Signed-off-by: bzorn <v.klimenko.2137@gmail.com>
Signed-off-by: bzorn <v.klimenko.2137@gmail.com>
Signed-off-by: bzorn <v.klimenko.2137@gmail.com>
Signed-off-by: bzorn <v.klimenko.2137@gmail.com>
Signed-off-by: bzorn <v.klimenko.2137@gmail.com>
Signed-off-by: bzorn <v.klimenko.2137@gmail.com>
Signed-off-by: bzorn <v.klimenko.2137@gmail.com>
Signed-off-by: bzorn <v.klimenko.2137@gmail.com>
Signed-off-by: bzorn <v.klimenko.2137@gmail.com>
Signed-off-by: bzorn <v.klimenko.2137@gmail.com>
Signed-off-by: bzorn <v.klimenko.2137@gmail.com>
Signed-off-by: bzorn <v.klimenko.2137@gmail.com>
Signed-off-by: bzorn <v.klimenko.2137@gmail.com>
brandonzorn
marked this pull request as ready for review
November 5, 2026 13:14
Signed-off-by: bzorn <v.klimenko.2137@gmail.com>
Signed-off-by: bzorn <v.klimenko.2137@gmail.com>
Signed-off-by: bzorn <v.klimenko.2137@gmail.com>
Signed-off-by: bzorn <v.klimenko.2137@gmail.com>
…and remove sqids Signed-off-by: bzorn <v.klimenko.2137@gmail.com>
Signed-off-by: bzorn <v.klimenko.2137@gmail.com>
Signed-off-by: bzorn <v.klimenko.2137@gmail.com>
Signed-off-by: bzorn <v.klimenko.2137@gmail.com>
Signed-off-by: bzorn <v.klimenko.2137@gmail.com>
Signed-off-by: bzorn <v.klimenko.2137@gmail.com>
Signed-off-by: bzorn <v.klimenko.2137@gmail.com>
Signed-off-by: bzorn <v.klimenko.2137@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Important
TODO:
ftp://илиftps://Caution
У DownloadStatistic нет LoginRequiredMixin и проверки владельца. Любой человек, зная короткую ссылку, может скачать статистику по её кликам (страна, город, ОС, браузер).
Warning
В generate_short_link берётся sqids.encode(цифры sha256)[:5]. Первые 5 символов зависят только от первых нескольких цифр числа.
При тесте из 20000 разных URL всего 5 336 уникальных коротких ссылок.
Уже при нескольких тысячах ссылок попытки подбора растут. После 200 попыток будет RuntimeError.
Tip
Раньше код ссылки получался как sqids(цифры sha256)[:5], и реально различных кодов выходило всего несколько тысяч: 44,424 дубликатов на 50 000 ссылок и отказы (RuntimeError) примерно с ссылки №5 500.
Одна попытка занимала ~0,5 мс.
Теперь код случайный из [A-Za-z0-9] (secrets), длина 5. Если код занят, делается новая попытка, а после каждых 20 неудач длина растёт на 1 (максимум 200 попыток).
Занятость проверяется через .filter().exists() вместо get_by_short_link, у которого были побочные записи.
=== N = 50,000 ссылок, длина кода L = 5 ===
Warning
Новые возможности
core.Redirectтеперь наследуется отUserLinkModel, остальные модели отTimeStampedModel.long_linkи добавленupdated_at.QuerySetвместоlist[str].RedirectSerializerдобавлено полеupdated_at.profile.jsпереписана и улучшена обработка ошибок.Исправления
RedirectManager.get_by_short_linkтеперь обновляет только необходимые поля.HTTP_X_REAL_IPпустой, используетсяREMOTE_ADDR. Все данные редиректа передаются одним запросом.ValueErrorпри передаче некорректного URL вis_link_shortenerтеперь игнорируется.QuerySet[Redirect]вQuerySet[str]для ссылок.dashboard.blockeddomainдобавлены недостающие поля.Рефакторинг
Зависимости, сборка и CI
psycopg2заменён наpsycopg3,chart.jsобновлён с 4.5.0 до 4.5.1.flake8-dunder-all.