generalize instance related code

This commit is contained in:
doubaniux 2022-11-11 18:40:02 +01:00
parent 14b003a44a
commit ef70e5f9c6
87 changed files with 224 additions and 193 deletions

View file

@ -13,10 +13,10 @@ name: "CodeQL"
on:
push:
branches: [ "neo" ]
branches: [ "master" ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ "neo" ]
branches: [ "master" ]
schedule:
- cron: '35 0 * * 0'

View file

@ -17,9 +17,9 @@ name: Pysa
on:
workflow_dispatch:
push:
branches: [ "neo" ]
branches: [ "master" ]
pull_request:
branches: [ "neo" ]
branches: [ "master" ]
schedule:
- cron: '45 12 * * 4'

3
.gitignore vendored
View file

@ -28,3 +28,6 @@ log
# conf folder for neodb
/neodb
# typesense folder
/typesense-data

View file

@ -11,7 +11,7 @@ RUN pip install --no-cache-dir -r /tmp/requirements.txt \
&& useradd -U app_user \
&& install -d -m 0755 -o app_user -g app_user /app/static
ENV DJANGO_SETTINGS_MODULE=neodb.dev
ENV DJANGO_SETTINGS_MODULE=yoursettings.dev
WORKDIR /app
USER app_user:app_user
COPY --chown=app_user:app_user . .

View file

@ -12,7 +12,6 @@ https://docs.djangoproject.com/en/3.0/ref/settings/
import os
import psycopg2.extensions
from git import Repo
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
@ -67,7 +66,6 @@ INSTALLED_APPS = [
'timeline.apps.TimelineConfig',
'easy_thumbnails',
'user_messages',
'django_slack',
]
MIDDLEWARE = [
@ -113,9 +111,9 @@ if DEBUG:
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': os.environ.get('DB_NAME', 'test'),
'USER': os.environ.get('DB_USER', 'donotban'),
'PASSWORD': os.environ.get('DB_PASSWORD', 'donotbansilvousplait'),
'HOST': os.environ.get('DB_HOST', '172.18.116.29'),
'USER': os.environ.get('DB_USER', 'postgres'),
'PASSWORD': os.environ.get('DB_PASSWORD', 'admin123'),
'HOST': os.environ.get('DB_HOST', '127.0.0.1'),
'OPTIONS': {
'client_encoding': 'UTF8',
# 'isolation_level': psycopg2.extensions.ISOLATION_LEVEL_DEFAULT,
@ -280,26 +278,27 @@ LUMINATI_PASSWORD = 'nsb7te9bw0ney'
SCRAPING_TIMEOUT = 90
# ScraperAPI api key
SCRAPERAPI_KEY = 'wnb3794v675b8w475h0e8hr7tyge'
SCRAPERAPI_KEY = '***REMOVED***'
PROXYCRAWL_KEY = None
SCRAPESTACK_KEY = None
# Spotify credentials
SPOTIFY_CREDENTIAL = "NzYzNkYTE6MGQ0ODY0NTY2Y2b3n645sdfgAyY2I1ljYjg3Nzc0MjIwODQ0ZWE="
SPOTIFY_CREDENTIAL = "***REMOVED***"
# IMDb API service https://imdb-api.com/
IMDB_API_KEY = "k23fwewff23"
IMDB_API_KEY = "***REMOVED***"
# The Movie Database (TMDB) API Keys
TMDB_API3_KEY = "deadbeef"
TMDB_API4_KEY = "deadbeef.deadbeef.deadbeef"
TMDB_API3_KEY = "***REMOVED***"
# TMDB_API4_KEY = "deadbeef.deadbeef.deadbeef"
# Google Books API Key
GOOGLE_API_KEY = 'deadbeef-deadbeef-deadbeef'
GOOGLE_API_KEY = '***REMOVED***'
# IGDB
IGDB_CLIENT_ID = 'deadbeef'
IGDB_ACCESS_TOKEN = 'deadbeef'
IGDB_CLIENT_ID = '***REMOVED***'
IGDB_SECRET = "***REMOVED***"
IGDB_ACCESS_TOKEN = '***REMOVED***'
# Thumbnail setting
# It is possible to optimize the image size even more: https://easy-thumbnails.readthedocs.io/en/latest/ref/optimize/
@ -346,19 +345,18 @@ RQ_SHOW_ADMIN_LINK = True
SEARCH_INDEX_NEW_ONLY = False
SEARCH_BACKEND = None
# SEARCH_BACKEND = 'MEILISEARCH'
# MEILISEARCH_SERVER = 'http://127.0.0.1:7700'
# MEILISEARCH_KEY = 'deadbeef'
# SEARCH_BACKEND = 'TYPESENSE'
# TYPESENSE_CONNECTION = {
# 'api_key': 'deadbeef',
# 'nodes': [{
# 'host': 'localhost',
# 'port': '8108',
# 'protocol': 'http'
# }],
# 'connection_timeout_seconds': 2
# }
SEARCH_BACKEND = 'TYPESENSE'
TYPESENSE_CONNECTION = {
'api_key': 'xyz',
'nodes': [{
'host': 'localhost',
'port': '8108',
'protocol': 'http'
}],
'connection_timeout_seconds': 2
}

View file

@ -160,7 +160,7 @@ class BookReview(Review):
@property
def url(self):
return settings.APP_WEBSITE + reverse("books:retrieve_review", args=[self.id])
return reverse("books:retrieve_review", args=[self.id])
@property
def item(self):

View file

@ -11,7 +11,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ site_name }} - {{ title }}</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<link rel="stylesheet" href="{% static 'css/boofilsic.min.css' %}">
</head>

View file

@ -13,7 +13,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ site_name }} - {{ title }}</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<script src="{% static 'js/create_update_review.js' %}"></script>
<script src="{% static 'lib/js/rating-star.js' %}"></script>
<link rel="stylesheet" href="{% static 'lib/css/rating-star.css' %}">

View file

@ -12,7 +12,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ site_name }} - {% trans '删除图书' %}</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<script src="{% static 'lib/js/rating-star.js' %}"></script>
<script src="{% static 'js/rating-star-readonly.js' %}"></script>
<link rel="stylesheet" href="{% static 'lib/css/rating-star.css' %}">

View file

@ -11,7 +11,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ site_name }} - {% trans '删除评论' %}</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<link rel="stylesheet" href="{% static 'lib/css/rating-star.css' %}">
<link rel="stylesheet" href="{% static 'css/boofilsic.min.css' %}">

View file

@ -13,7 +13,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ site_name }} - {{ book.title }}{% trans '的标记' %}</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<script src="{% static 'lib/js/rating-star.js' %}"></script>
<script src="{% static 'js/rating-star-readonly.js' %}"></script>
<link rel="stylesheet" href="{% static 'css/boofilsic.min.css' %}">

View file

@ -17,12 +17,12 @@
<meta property="og:url" content="{{ request.build_absolute_uri }}">
<meta property="og:image" content="{{ book.cover|thumb:'normal' }}">
<title>{{ site_name }}{% trans '书评' %} - {{ review.title }}</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<script src="{% static 'lib/js/rating-star.js' %}"></script>
<script src="{% static 'js/rating-star-readonly.js' %}"></script>
<link rel="stylesheet" href="{% static 'lib/css/rating-star.css' %}">
<link rel="stylesheet" href="{% static 'css/boofilsic.min.css' %}">
<link rel="stylesheet" href="{% static 'lib/css/neo.css' %}">
<link rel="stylesheet" href="{% static 'lib/css/collection.css' %}">
</head>
<body>

View file

@ -13,7 +13,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ site_name }} - {{ book.title }}{% trans '的评论' %}</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<script src="{% static 'lib/js/rating-star.js' %}"></script>
<script src="{% static 'js/rating-star-readonly.js' %}"></script>
<link rel="stylesheet" href="{% static 'lib/css/rating-star.css' %}">

View file

@ -11,7 +11,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ site_name }} - {% trans '从豆瓣获取数据' %}</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<script src="{% static 'js/scrape.js' %}"></script>
<link rel="stylesheet" href="{% static 'css/boofilsic.min.css' %}">
</head>

View file

@ -64,7 +64,7 @@ class Collection(UserOwnedEntity):
@property
def url(self):
return settings.APP_WEBSITE + reverse("collection:retrieve", args=[self.id])
return reverse("collection:retrieve", args=[self.id])
@property
def wish_url(self):

View file

@ -11,7 +11,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ site_name }} - {{ title }}</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<link rel="stylesheet" href="{% static 'css/boofilsic.min.css' %}">
<style type="text/css">
#id_collaborative li, #id_visibility li {display: inline-block !important;}

View file

@ -20,12 +20,12 @@
<meta property="og:url" content="{{ request.build_absolute_uri }}">
<meta property="og:image" content="{{ collection.cover|thumb:'normal' }}">
<title>{{ site_name }} {% trans '收藏单' %} - {{ collection.title }}</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<script src="{% static 'lib/js/rating-star.js' %}"></script>
<script src="{% static 'js/rating-star-readonly.js' %}"></script>
<link rel="stylesheet" href="{% static 'lib/css/rating-star.css' %}">
<link rel="stylesheet" href="{% static 'css/boofilsic.min.css' %}">
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/htmx/1.8.0/htmx.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/htmx/1.8.4/htmx.min.js"></script>
</head>
<body>

View file

@ -12,7 +12,7 @@
<li>
<form hx-target=".entity-list" hx-post="{% url 'collection:append_item' form.instance.id %}" method="POST">
{% csrf_token %}
<input type="url" name="url" placeholder="https://neodb.social/movies/1/" style="min-width:24rem" required>
<input type="url" name="url" placeholder="{{ request.scheme }}://{{ request.get_host }}/movies/1/" style="min-width:24rem" required>
<input type="text" name="comment" placeholder="{% trans '备注' %}" style="min-width:24rem">
<input class="button" type="submit" value="{% trans '添加' %}" >
</form>

View file

@ -15,7 +15,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ site_name }} - {{ title }}</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<script src="{% static 'lib/js/rating-star.js' %}"></script>
<script src="{% static 'js/rating-star-readonly.js' %}"></script>
<link rel="stylesheet" href="{% static 'lib/css/rating-star.css' %}">

View file

@ -62,7 +62,7 @@ class Entity(models.Model):
@property
def url(self):
return settings.APP_WEBSITE + self.get_absolute_url()
return self.get_absolute_url()
def get_json(self):
return {
@ -70,7 +70,7 @@ class Entity(models.Model):
'brief': self.brief,
'rating': self.rating,
'url': self.url,
'cover_url': settings.APP_WEBSITE + self.cover.url,
'cover_url': self.cover.url,
'top_tags': self.tags[:5],
'category_name': self.verbose_category_name,
'other_info': self.other_info,

View file

@ -2420,6 +2420,19 @@ select::placeholder {
list-style: circle inside;
}
.markdownx-preview h1 {
font-size: 2.5em;
}
.markdownx-preview h2 {
font-size: 2.0em;
}
.markdownx-preview blockquote {
border-left: lightgray solid 0.4em;
padding-left: 0.4em;
}
.rating-star .jq-star {
cursor: unset !important;
}

File diff suppressed because one or more lines are too long

View file

@ -17,6 +17,24 @@ $(document).ready( function() {
$(".mast-following-more").hide();
$(".mast-followers-more").hide();
getUserInfo(
id,
mast_uri,
token,
function(userData) {
let userName;
if (userData.display_name) {
userName = translateEmojis(userData.display_name, userData.emojis, true);
} else {
userName = userData.username;
}
$("#userInfoCard .mast-avatar").attr("src", userData.avatar);
$("#userInfoCard .mast-displayname").html(userName);
$("#userInfoCard .mast-brief").text($(userData.note).text());
$(userInfoSpinner).remove();
}
);
getFollowers(
id,
mast_uri,

View file

@ -155,6 +155,7 @@ function getEmojiDict(emoji_list) {
}
function translateEmojis(text, emoji_list, large) {
console.log(text)
let dict = getEmojiDict(emoji_list);
let regex = /:(.*?):/g;
let translation = null

View file

@ -1,20 +1,3 @@
.markdownx-preview h1 {
font-size: 2.5em;
}
.markdownx-preview h2 {
font-size: 2.0em;
}
.markdownx-preview h3 {
font-size: 1.6em;
}
.markdownx-preview blockquote {
border-left: lightgray solid 0.4em;
padding-left: 0.4em;
}
.collection-item-position-edit {
float: right;
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -4,6 +4,21 @@
& ul li
list-style: circle inside
h1
font-size: 2.5em
h2
font-size: 2.0em
blockquote
border-left: lightgray solid 0.4em
padding-left: 0.1em
margin-left: 0
code
border-left: $color-primary solid 0.3em
padding-left: 0.1em
.rating-star .jq-star
cursor: unset !important

View file

@ -6,7 +6,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="refresh" content="5;url={% if url %}{{url}}{% else %}{% url 'common:home' %}{% endif %}">
<link rel="stylesheet" href="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/milligram/1.4.1/milligram.min.css">
<link rel="stylesheet" href="https://cdn.staticfile.org/milligram/1.4.1/milligram.min.css">
<link rel="stylesheet" href="{% static 'css/boofilsic_edit.css' %}">
<link rel="stylesheet" href="{% static 'css/boofilsic_box.css' %}">
<title>{% trans '错误' %}</title>

View file

@ -15,13 +15,13 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ site_name }} - {% trans '搜索结果' %}</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/htmx/1.8.0/htmx.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/htmx/1.8.4/htmx.min.js"></script>
<script src="{% static 'lib/js/rating-star.js' %}"></script>
<script src="{% static 'js/rating-star-readonly.js' %}"></script>
<link rel="stylesheet" href="{% static 'css/boofilsic.min.css' %}">
<link rel="stylesheet" href="{% static 'lib/css/rating-star.css' %}">
<link rel="stylesheet" href="{% static 'lib/css/neo.css' %}">
<link rel="stylesheet" href="{% static 'lib/css/collection.css' %}">
</head>
<body>

View file

@ -1,23 +1,23 @@
{% load static %}
{% if sentry_dsn %}
<script src="https://static.neodb.social/browser.sentry-cdn.com/7.7.0/bundle.min.js"></script>
<script src="https://browser.sentry-cdn.com/7.7.0/bundle.min.js"></script>
<script>
if (window.Sentry) Sentry.init({
dsn: "{{ sentry_dsn }}",
release: "NeoDB@{{ version_hash }}",
release: "{{ version_hash }}",
environment: "{{ settings_module }}",
tracesSampleRate: 1.0,
});
</script>
{% endif %}
{% if jquery %}
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
{% else %}
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/cash/8.1.1/cash.min.js"></script>
<script src="https://cdn.staticfile.org/cash/8.1.1/cash.min.js"></script>
{% endif %}
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/htmx/1.8.0/htmx.min.js"></script>
<script src="https://static.neodb.social/unpkg.com/hyperscript.org@0.9.7.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/htmx/1.8.4/htmx.min.js"></script>
<script src="{% static 'lib/js/hyperscript-0.9.7.min.js' %}"></script>
<link rel="stylesheet" href="{% static 'css/boofilsic.css' %}">
<link rel="stylesheet" href="{% static 'lib/css/rating-star.css' %}">
<link rel="stylesheet" href="{% static 'lib/css/neo.css' %}">
<link rel="stylesheet" href="{% static 'lib/css/collection.css' %}">
<link rel="search"type="application/opensearchdescription+xml" title="{{ site_name }}" href="{% static 'opensearch.xml' %}">

View file

@ -5,7 +5,7 @@
{% load oauth_token %}
{% load truncate %}
{% load thumb %}
{% load neo %}
{% load user_item %}
<div class="grid__aside grid__aside--reverse-order grid__aside--tablet-column">
<div class="aside-section-wrapper aside-section-wrapper--no-margin">
<div class="user-profile" id="userInfoCard">

View file

@ -2,7 +2,7 @@
{% load highlight %}
{% load i18n %}
{% load l10n %}
{% load neo %}
{% load user_item %}
{% current_user_marked_item book as marked %}
<li class="entity-list__entity">
<div class="entity-list__entity-img-wrapper">

View file

@ -2,7 +2,7 @@
{% load highlight %}
{% load i18n %}
{% load l10n %}
{% load neo %}
{% load user_item %}
{% current_user_marked_item game as marked %}
<li class="entity-list__entity">
<div class="entity-list__entity-img-wrapper">

View file

@ -3,7 +3,7 @@
{% load i18n %}
{% load l10n %}
{% load humanize %}
{% load neo %}
{% load user_item %}
{% current_user_marked_item movie as marked %}
<li class="entity-list__entity">
<div class="entity-list__entity-img-wrapper">

View file

@ -2,7 +2,7 @@
{% load highlight %}
{% load i18n %}
{% load l10n %}
{% load neo %}
{% load user_item %}
{% current_user_marked_item music as marked %}
<li class="entity-list__entity">
<div class="entity-list__entity-img-wrapper">

View file

@ -10,3 +10,17 @@ register = template.Library()
def mastodon(domain):
url = 'https://' + domain
return url
@register.simple_tag(takes_context=True)
def current_user_relationship(context, user):
current_user = context['request'].user
if current_user and current_user.is_authenticated:
if current_user.is_following(user):
if current_user.is_followed_by(user):
return '互相关注'
else:
return '已关注'
elif current_user.is_followed_by(user):
return '被ta关注'
return None

View file

@ -1,48 +0,0 @@
from django import template
import datetime
from django.utils import timezone
from collection.models import Collection
register = template.Library()
@register.simple_tag(takes_context=True)
def current_user_marked_item(context, item):
user = context['request'].user
if user and user.is_authenticated:
if isinstance(item, Collection) and item.owner == user:
return item
else:
return context['request'].user.get_mark_for_item(item)
return None
@register.simple_tag(takes_context=True)
def current_user_relationship(context, user):
current_user = context['request'].user
if current_user and current_user.is_authenticated:
if current_user.is_following(user):
if current_user.is_followed_by(user):
return '互相关注'
else:
return '已关注'
elif current_user.is_followed_by(user):
return '被ta关注'
return None
@register.filter
def prettydate(d):
diff = timezone.now() - d
s = diff.seconds
if diff.days > 14 or diff.days < 0:
return d.strftime('%Y年%m月%d')
elif diff.days >= 1:
return '{} 天前'.format(diff.days)
elif s < 120:
return '刚刚'
elif s < 3600:
return '{} 分钟前'.format(s // 60)
else:
return '{} 小时前'.format(s // 3600)

View file

@ -0,0 +1,22 @@
from django import template
from django.utils import timezone
register = template.Library()
@register.filter
def prettydate(d):
# TODO use date and naturaltime instead https://docs.djangoproject.com/en/3.2/ref/contrib/humanize/
diff = timezone.now() - d
s = diff.seconds
if diff.days > 14 or diff.days < 0:
return d.strftime('%Y年%m月%d')
elif diff.days >= 1:
return '{} 天前'.format(diff.days)
elif s < 120:
return '刚刚'
elif s < 3600:
return '{} 分钟前'.format(s // 60)
else:
return '{} 小时前'.format(s // 3600)

View file

@ -0,0 +1,19 @@
from django import template
from collection.models import Collection
register = template.Library()
@register.simple_tag(takes_context=True)
def current_user_marked_item(context, item):
# NOTE weird to put business logic in tags
user = context['request'].user
if user and user.is_authenticated:
if isinstance(item, Collection) and item.owner == user:
return item
else:
return context['request'].user.get_mark_for_item(item)
return None

View file

@ -26,7 +26,7 @@ services:
- DB_USER=postgres
- DB_PASSWORD=postgres
- REDIS_HOST=redis
- DJANGO_SETTINGS_MODULE=neodb.dev
- DJANGO_SETTINGS_MODULE=yoursettings.dev
depends_on:
- db
- redis

View file

@ -145,7 +145,7 @@ class GameReview(Review):
@property
def url(self):
return settings.APP_WEBSITE + reverse("games:retrieve_review", args=[self.id])
return reverse("games:retrieve_review", args=[self.id])
@property
def item(self):

View file

@ -11,7 +11,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ site_name }} - {{ title }}</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<link rel="stylesheet" href="{% static 'css/boofilsic.min.css' %}">
</head>

View file

@ -14,7 +14,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ site_name }} - {{ title }}</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<script src="{% static 'js/create_update_review.js' %}"></script>
<script src="{% static 'lib/js/rating-star.js' %}"></script>
<link rel="stylesheet" href="{% static 'lib/css/rating-star.css' %}">

View file

@ -14,7 +14,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ site_name }} - {% trans '删除电影/剧集' %}</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<script src="{% static 'lib/js/rating-star.js' %}"></script>
<script src="{% static 'js/rating-star-readonly.js' %}"></script>
<link rel="stylesheet" href="{% static 'lib/css/rating-star.css' %}">

View file

@ -11,7 +11,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ site_name }} - {% trans '删除评论' %}</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<link rel="stylesheet" href="{% static 'lib/css/rating-star.css' %}">
<link rel="stylesheet" href="{% static 'css/boofilsic.min.css' %}">

View file

@ -15,7 +15,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ site_name }} - {{ game.title }}{% trans '的标记' %}</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<script src="{% static 'lib/js/rating-star.js' %}"></script>
<script src="{% static 'js/rating-star-readonly.js' %}"></script>
<link rel="stylesheet" href="{% static 'css/boofilsic.min.css' %}">

View file

@ -19,12 +19,12 @@
<meta property="og:url" content="{{ request.build_absolute_uri }}">
<meta property="og:image" content="{{ game.cover|thumb:'normal' }}">
<title>{{ site_name }}游戏评论 - {{ review.title }}</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<script src="{% static 'lib/js/rating-star.js' %}"></script>
<script src="{% static 'js/rating-star-readonly.js' %}"></script>
<link rel="stylesheet" href="{% static 'lib/css/rating-star.css' %}">
<link rel="stylesheet" href="{% static 'css/boofilsic.min.css' %}">
<link rel="stylesheet" href="{% static 'lib/css/neo.css' %}">
<link rel="stylesheet" href="{% static 'lib/css/collection.css' %}">
</head>
<body>

View file

@ -15,7 +15,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ site_name }} - {{ game.title }}{% trans '的评论' %}</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<script src="{% static 'lib/js/rating-star.js' %}"></script>
<script src="{% static 'js/rating-star-readonly.js' %}"></script>
<link rel="stylesheet" href="{% static 'lib/css/rating-star.css' %}">

View file

@ -11,7 +11,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ site_name }} - {% trans '从豆瓣获取数据' %}</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<script src="{% static 'js/scrape.js' %}"></script>
<link rel="stylesheet" href="{% static 'css/boofilsic.min.css' %}">
</head>

View file

@ -6,7 +6,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<link rel="stylesheet" href="{% static 'css/boofilsic.min.css' %}">
<title>{{ site_name }} - {{ object.title }}</title>
</head>

View file

@ -7,7 +7,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<link rel="stylesheet" href="{% static 'css/boofilsic.min.css' %}">
<title>{{ site_name }} - {% trans '公告栏' %}</title>

View file

@ -272,7 +272,7 @@ class MovieReview(Review):
@property
def url(self):
return settings.APP_WEBSITE + reverse("movies:retrieve_review", args=[self.id])
return reverse("movies:retrieve_review", args=[self.id])
@property
def item(self):

View file

@ -11,7 +11,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ site_name }} - {{ title }}</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<link rel="stylesheet" href="{% static 'css/boofilsic.min.css' %}">
</head>

View file

@ -14,7 +14,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ site_name }} - {{ title }}</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<script src="{% static 'js/create_update_review.js' %}"></script>
<script src="{% static 'lib/js/rating-star.js' %}"></script>
<link rel="stylesheet" href="{% static 'lib/css/rating-star.css' %}">

View file

@ -14,7 +14,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ site_name }} - {% trans '删除电影/剧集' %}</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<script src="{% static 'lib/js/rating-star.js' %}"></script>
<script src="{% static 'js/rating-star-readonly.js' %}"></script>
<link rel="stylesheet" href="{% static 'lib/css/rating-star.css' %}">

View file

@ -11,7 +11,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ site_name }} - {% trans '删除评论' %}</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<link rel="stylesheet" href="{% static 'lib/css/rating-star.css' %}">
<link rel="stylesheet" href="{% static 'css/boofilsic.min.css' %}">

View file

@ -15,7 +15,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ site_name }} - {{ movie.title }}{% trans '的标记' %}</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<script src="{% static 'lib/js/rating-star.js' %}"></script>
<script src="{% static 'js/rating-star-readonly.js' %}"></script>
<link rel="stylesheet" href="{% static 'css/boofilsic.min.css' %}">

View file

@ -19,12 +19,12 @@
<meta property="og:url" content="{{ request.build_absolute_uri }}">
<meta property="og:image" content="{{ movie.cover|thumb:'normal' }}">
<title>{{ site_name }}影评 - {{ review.title }}</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<script src="{% static 'lib/js/rating-star.js' %}"></script>
<script src="{% static 'js/rating-star-readonly.js' %}"></script>
<link rel="stylesheet" href="{% static 'lib/css/rating-star.css' %}">
<link rel="stylesheet" href="{% static 'css/boofilsic.min.css' %}">
<link rel="stylesheet" href="{% static 'lib/css/neo.css' %}">
<link rel="stylesheet" href="{% static 'lib/css/collection.css' %}">
</head>
<body>

View file

@ -15,7 +15,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ site_name }} - {{ movie.title }}{% trans '的评论' %}</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<script src="{% static 'lib/js/rating-star.js' %}"></script>
<script src="{% static 'js/rating-star-readonly.js' %}"></script>
<link rel="stylesheet" href="{% static 'lib/css/rating-star.css' %}">

View file

@ -11,7 +11,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ site_name }} - {% trans '从豆瓣获取数据' %}</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<script src="{% static 'js/scrape.js' %}"></script>
<link rel="stylesheet" href="{% static 'css/boofilsic.min.css' %}">
</head>

View file

@ -191,7 +191,7 @@ class SongReview(Review):
@property
def url(self):
return settings.APP_WEBSITE + reverse("music:retrieve_song_review", args=[self.id])
return reverse("music:retrieve_song_review", args=[self.id])
@property
def item(self):
@ -242,7 +242,7 @@ class AlbumReview(Review):
@property
def url(self):
return settings.APP_WEBSITE + reverse("music:retrieve_album_review", args=[self.id])
return reverse("music:retrieve_album_review", args=[self.id])
@property
def item(self):

View file

@ -15,7 +15,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ site_name }} - {{ album.title }}{% trans '的标记' %}</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<script src="{% static 'lib/js/rating-star.js' %}"></script>
<script src="{% static 'js/rating-star-readonly.js' %}"></script>
<link rel="stylesheet" href="{% static 'css/boofilsic.min.css' %}">

View file

@ -19,12 +19,12 @@
<meta property="og:url" content="{{ request.build_absolute_uri }}">
<meta property="og:image" content="{{ album.cover|thumb:'normal' }}">
<title>{{ site_name }}乐评 - {{ review.title }}</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<script src="{% static 'lib/js/rating-star.js' %}"></script>
<script src="{% static 'js/rating-star-readonly.js' %}"></script>
<link rel="stylesheet" href="{% static 'lib/css/rating-star.css' %}">
<link rel="stylesheet" href="{% static 'css/boofilsic.min.css' %}">
<link rel="stylesheet" href="{% static 'lib/css/neo.css' %}">
<link rel="stylesheet" href="{% static 'lib/css/collection.css' %}">
</head>
<body>

View file

@ -14,7 +14,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ site_name }} - {{ album.title }}{% trans '的评论' %}</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<script src="{% static 'lib/js/rating-star.js' %}"></script>
<script src="{% static 'js/rating-star-readonly.js' %}"></script>
<link rel="stylesheet" href="{% static 'lib/css/rating-star.css' %}">

View file

@ -11,7 +11,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ site_name }} - {{ title }}</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<link rel="stylesheet" href="{% static 'css/boofilsic.min.css' %}">
</head>

View file

@ -14,7 +14,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ site_name }} - {{ title }}</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<script src="{% static 'js/create_update_review.js' %}"></script>
<script src="{% static 'lib/js/rating-star.js' %}"></script>
<link rel="stylesheet" href="{% static 'lib/css/rating-star.css' %}">

View file

@ -11,7 +11,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ site_name }} - {{ title }}</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<link rel="stylesheet" href="{% static 'css/boofilsic.min.css' %}">
</head>

View file

@ -14,7 +14,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ site_name }} - {{ title }}</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<script src="{% static 'js/create_update_review.js' %}"></script>
<script src="{% static 'lib/js/rating-star.js' %}"></script>
<link rel="stylesheet" href="{% static 'lib/css/rating-star.css' %}">

View file

@ -14,7 +14,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ site_name }} - {% trans '删除音乐' %}</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<script src="{% static 'lib/js/rating-star.js' %}"></script>
<script src="{% static 'js/rating-star-readonly.js' %}"></script>
<link rel="stylesheet" href="{% static 'lib/css/rating-star.css' %}">

View file

@ -11,7 +11,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ site_name }} - {% trans '删除评论' %}</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<link rel="stylesheet" href="{% static 'lib/css/rating-star.css' %}">
<link rel="stylesheet" href="{% static 'css/boofilsic.min.css' %}">

View file

@ -14,7 +14,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ site_name }} - {% trans '删除音乐' %}</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<script src="{% static 'lib/js/rating-star.js' %}"></script>
<script src="{% static 'js/rating-star-readonly.js' %}"></script>
<link rel="stylesheet" href="{% static 'lib/css/rating-star.css' %}">

View file

@ -11,7 +11,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ site_name }} - {% trans '删除评论' %}</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<link rel="stylesheet" href="{% static 'lib/css/rating-star.css' %}">
<link rel="stylesheet" href="{% static 'css/boofilsic.min.css' %}">

View file

@ -11,7 +11,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ site_name }} - {% trans '从豆瓣获取数据' %}</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<script src="{% static 'js/scrape.js' %}"></script>
<link rel="stylesheet" href="{% static 'css/boofilsic.min.css' %}">
</head>

View file

@ -11,7 +11,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ site_name }} - {% trans '从豆瓣获取数据' %}</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<script src="{% static 'js/scrape.js' %}"></script>
<link rel="stylesheet" href="{% static 'css/boofilsic.min.css' %}">
</head>

View file

@ -15,7 +15,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ site_name }} - {{ song.title }}{% trans '的标记' %}</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<script src="{% static 'lib/js/rating-star.js' %}"></script>
<script src="{% static 'js/rating-star-readonly.js' %}"></script>
<link rel="stylesheet" href="{% static 'css/boofilsic.min.css' %}">

View file

@ -19,12 +19,12 @@
<meta property="og:url" content="{{ request.build_absolute_uri }}">
<meta property="og:image" content="{{ song.cover|thumb:'normal' }}">
<title>{{ site_name }}乐评 - {{ review.title }}</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<script src="{% static 'lib/js/rating-star.js' %}"></script>
<script src="{% static 'js/rating-star-readonly.js' %}"></script>
<link rel="stylesheet" href="{% static 'lib/css/rating-star.css' %}">
<link rel="stylesheet" href="{% static 'css/boofilsic.min.css' %}">
<link rel="stylesheet" href="{% static 'lib/css/neo.css' %}">
<link rel="stylesheet" href="{% static 'lib/css/collection.css' %}">
</head>
<body>

View file

@ -14,7 +14,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ site_name }} - {{ song.title }}{% trans '的评论' %}</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<script src="{% static 'lib/js/rating-star.js' %}"></script>
<script src="{% static 'js/rating-star-readonly.js' %}"></script>
<link rel="stylesheet" href="{% static 'lib/css/rating-star.css' %}">

View file

@ -7,20 +7,15 @@ django-rq
django-simple-history
django-hijack
django-user-messages
django-slack
meilisearch
easy-thumbnails
lxml
openpyxl
psycopg2
requests
filetype
setproctitle
tqdm
opencc
dnspython
typesense
markdownify
sentry-sdk
gitpython
igdb-api-v4

View file

@ -6,7 +6,7 @@
{% load oauth_token %}
{% load truncate %}
{% load thumb %}
{% load neo %}
{% load prettydate %}
{% for activity in activities %}
{% current_user_marked_item activity.target.item as marked %}

View file

@ -19,8 +19,8 @@
{% include "partial/_common_libs.html" with jquery=1 %}
<script src="{% static 'js/mastodon.js' %}"></script>
<script src="{% static 'js/home.js' %}"></script>
<script src="{% static 'js/mastodon.js' %}" defer></script>
<script src="{% static 'js/home.js' %}" defer></script>
</head>
<body>
@ -634,7 +634,7 @@
{% csrf_token %}
<input type="hidden" name="layout">
</form>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/html5sortable/0.13.3/html5sortable.min.js" crossorigin="anonymous"></script>
<script src="https://cdn.staticfile.org/html5sortable/0.13.3/html5sortable.min.js" crossorigin="anonymous"></script>
<script src="{% static 'js/sort_layout.js' %}"></script>
{% endif %}
<script>

View file

@ -13,15 +13,15 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ site_name }} - {{ user.mastodon_username }} {{ list_title }}</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/htmx/1.8.0/htmx.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/htmx/1.8.4/htmx.min.js"></script>
<script src="{% static 'lib/js/rating-star.js' %}"></script>
<script src="{% static 'js/rating-star-readonly.js' %}"></script>
<script src="{% static 'js/mastodon.js' %}"></script>
<script src="{% static 'js/home.js' %}"></script>
<link rel="stylesheet" href="{% static 'lib/css/rating-star.css' %}">
<link rel="stylesheet" href="{% static 'css/boofilsic.min.css' %}">
<link rel="stylesheet" href="{% static 'lib/css/neo.css' %}">
<link rel="stylesheet" href="{% static 'lib/css/collection.css' %}">
</head>
<body>

View file

@ -12,10 +12,10 @@
<meta property="og:image" content="{{ request.scheme }}://{{ request.get_host }}{% static 'img/logo_square.jpg' %}">
<title>{{ site_name }} - {% trans '登录' %}</title>
{% include "partial/_common_libs.html" %}
<link rel="stylesheet" href="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/milligram/1.4.1/milligram.min.css">
<link rel="stylesheet" href="https://cdn.staticfile.org/milligram/1.4.1/milligram.min.css">
<link rel="stylesheet" href="{% static 'css/boofilsic_edit.css' %}">
<link rel="stylesheet" href="{% static 'css/boofilsic_box.css' %}">
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/js-cookie/3.0.1/js.cookie.min.js"></script>
<script src="https://cdn.staticfile.org/js-cookie/3.0.1/js.cookie.min.js"></script>
<script> $(document).ready( function() { $('.delayed').remove(); $('#loginButton').prop("disabled", false); } ); </script>
<style type="text/css">
.delayed {
@ -67,7 +67,6 @@
placeholder="实例域名(不含@和@之前的部分)如mastodon.social"
autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" />
<input type='submit' value="{% trans '授权登录' %}" id="loginButton" disabled />
<br><a target="_blank" href="https://about.neodb.social/doc/howto/">{% trans '了解更多' %}</a>
<script type="text/javascript">if (Cookies.get('mastodon_domain')) $('#domain').val(Cookies.get('mastodon_domain'));</script>
{% else %}
<select name="domain" placeholder="test">

View file

@ -11,7 +11,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ site_name }} - {% trans '管理举报' %}</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<script src="{% static 'js/create_update.js' %}"></script>
<link rel="stylesheet" href="{% static 'css/boofilsic.min.css' %}">
</head>

View file

@ -6,7 +6,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/milligram/1.4.1/milligram.min.css">
<link rel="stylesheet" href="https://cdn.staticfile.org/milligram/1.4.1/milligram.min.css">
<link rel="stylesheet" href="{% static 'css/boofilsic_edit.css' %}">
<link rel="stylesheet" href="{% static 'css/boofilsic_box.css' %}">
<title>{{ site_name }} - {% trans '注册' %}</title>

View file

@ -11,7 +11,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ site_name }} - {% trans '举报用户' %}</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<script src="{% static 'js/create_update.js' %}"></script>
<link rel="stylesheet" href="{% static 'css/boofilsic.min.css' %}">
</head>

View file

@ -15,7 +15,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ site_name }} - 我的标签</title>
<script src="https://static.neodb.social/cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/jquery/3.6.1/jquery.min.js"></script>
<script src="{% static 'lib/js/rating-star.js' %}"></script>
<script src="{% static 'js/rating-star-readonly.js' %}"></script>
<link rel="stylesheet" href="{% static 'lib/css/rating-star.css' %}">