generalize instance related code
This commit is contained in:
parent
14b003a44a
commit
ef70e5f9c6
87 changed files with 224 additions and 193 deletions
4
.github/workflows/codeql-analysis.yml
vendored
4
.github/workflows/codeql-analysis.yml
vendored
|
@ -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'
|
||||
|
||||
|
|
4
.github/workflows/pysa.yml
vendored
4
.github/workflows/pysa.yml
vendored
|
@ -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
3
.gitignore
vendored
|
@ -28,3 +28,6 @@ log
|
|||
|
||||
# conf folder for neodb
|
||||
/neodb
|
||||
|
||||
# typesense folder
|
||||
/typesense-data
|
||||
|
|
|
@ -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 . .
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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>
|
||||
|
||||
|
|
|
@ -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' %}">
|
||||
|
|
|
@ -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' %}">
|
||||
|
|
|
@ -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' %}">
|
||||
|
|
|
@ -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' %}">
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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' %}">
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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;}
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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' %}">
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
2
common/static/css/boofilsic.min.css
vendored
2
common/static/css/boofilsic.min.css
vendored
File diff suppressed because one or more lines are too long
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
1
common/static/lib/js/hyperscript-0.9.7.min.js
vendored
Normal file
1
common/static/lib/js/hyperscript-0.9.7.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
|
@ -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
|
||||
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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' %}">
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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
|
|
@ -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)
|
22
common/templatetags/prettydate.py
Normal file
22
common/templatetags/prettydate.py
Normal 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)
|
19
common/templatetags/user_item.py
Normal file
19
common/templatetags/user_item.py
Normal 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
|
||||
|
||||
|
|
@ -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
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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>
|
||||
|
||||
|
|
|
@ -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' %}">
|
||||
|
|
|
@ -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' %}">
|
||||
|
|
|
@ -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' %}">
|
||||
|
||||
|
|
|
@ -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' %}">
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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' %}">
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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>
|
||||
|
||||
|
|
|
@ -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' %}">
|
||||
|
|
|
@ -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' %}">
|
||||
|
|
|
@ -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' %}">
|
||||
|
||||
|
|
|
@ -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' %}">
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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' %}">
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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' %}">
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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' %}">
|
||||
|
|
|
@ -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>
|
||||
|
||||
|
|
|
@ -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' %}">
|
||||
|
|
|
@ -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>
|
||||
|
||||
|
|
|
@ -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' %}">
|
||||
|
|
|
@ -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' %}">
|
||||
|
|
|
@ -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' %}">
|
||||
|
||||
|
|
|
@ -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' %}">
|
||||
|
|
|
@ -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' %}">
|
||||
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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' %}">
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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' %}">
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 %}
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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' %}">
|
||||
|
|
Loading…
Add table
Reference in a new issue