diff --git a/.gitignore b/.gitignore index 438fe08..0f7aa7f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ # Byte-compiled / optimized / DLL files +*.swp __pycache__/ *.py[cod] diff --git a/search/admin.py b/search/admin.py index bb297f2..1b33c40 100644 --- a/search/admin.py +++ b/search/admin.py @@ -1,9 +1,23 @@ from django.contrib import admin -from search.models import Hash, FileList, StatusReport, RecKeywords +from search.models import Hash, FileList, StatusReport, RecKeywords, Extra # Register your models here. -admin.site.register(Hash) +class ExtraInline(admin.StackedInline): + model = Extra + + +class HashAdmin(admin.ModelAdmin): + inlines = [ExtraInline] + + +class ExtraAdmin(admin.ModelAdmin): + raw_id_fields = ['hash'] + list_display = ('hash', 'blacklist') + + +admin.site.register(Hash, HashAdmin) +admin.site.register(Extra, ExtraAdmin) admin.site.register(FileList) admin.site.register(StatusReport) admin.site.register(RecKeywords) diff --git a/search/migrations/0007_extra.py b/search/migrations/0007_extra.py new file mode 100644 index 0000000..7b02d23 --- /dev/null +++ b/search/migrations/0007_extra.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('search', '0006_auto_20150912_1630'), + ] + + operations = [ + migrations.CreateModel( + name='Extra', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('blacklist', models.BooleanField(default=False, verbose_name=b'\xe9\xbb\x91\xe5\x90\x8d\xe5\x8d\x95')), + ('hash', models.OneToOneField(to='search.Hash')), + ], + ), + ] diff --git a/search/models.py b/search/models.py index 4a8c1d6..aa0069e 100644 --- a/search/models.py +++ b/search/models.py @@ -36,6 +36,11 @@ def list_with_files(self, ids): for y in items: if x['info_hash'] == y['info_hash']: x['files'] = json.loads(y['file_list']) + items = Extra.objects.filter(hash_id__in=ids).values() + for x in res: + for y in items: + if x['id'] == y['hash_id']: + x['extra'] = y return res class Hash(models.Model): @@ -59,6 +64,17 @@ class Hash(models.Model): def __unicode__(self): return self.name + def is_blacklisted(self): + try: + return self.extra.blacklist + except: + return False + + +class Extra(models.Model): + hash = models.OneToOneField(Hash) + blacklist = models.BooleanField('黑名单', default=False) + class FileList(models.Model): info_hash = models.CharField(max_length=40, primary_key=True) diff --git a/search/timermiddleware.py b/search/timermiddleware.py index 3c708b9..7c100c2 100644 --- a/search/timermiddleware.py +++ b/search/timermiddleware.py @@ -1,3 +1,6 @@ +# coding: utf-8 +import traceback +from django.conf import settings from time import time class TimerMiddleware: @@ -17,3 +20,9 @@ def process_response(self, request, response): response['X-Request-Time'] = '%fsms' % total return response + +class ProcessExceptionMiddleware(object): + def process_response(self, request, response): + if response.status_code != 200 and settings.DEBUG: + traceback.print_exc() + return response diff --git a/search/urls.py b/search/urls.py index d6ab945..54f8613 100644 --- a/search/urls.py +++ b/search/urls.py @@ -4,10 +4,10 @@ urlpatterns = [ - url(r'^json_search', json_search), - url(r'^json_info', json_info), - url(r'^json_status', json_status), - url(r'^json_helper', json_helper), + url(r'^json_search$', json_search), + url(r'^json_info$', json_info), + url(r'^json_status$', json_status), + url(r'^json_helper$', json_helper), ] diff --git a/ssbc/deployment.py b/ssbc/deployment.py new file mode 100644 index 0000000..75a5886 --- /dev/null +++ b/ssbc/deployment.py @@ -0,0 +1,5 @@ +from .settings import * + +DEBUG=False + + diff --git a/ssbc/settings.py b/ssbc/settings.py index 862518b..6ce98b2 100644 --- a/ssbc/settings.py +++ b/ssbc/settings.py @@ -23,7 +23,7 @@ SECRET_KEY = 'fvewrf=&i9mjawldfkbxt%(oqi%3g1s=18o+n*5b-t4-k&-o=e' # SECURITY WARNING: don't run with debug turned on in production! -DEBUG = False +DEBUG = True ALLOWED_HOSTS = ['*',] @@ -39,6 +39,7 @@ 'django.contrib.staticfiles', 'search', 'web', + 'top', ) MIDDLEWARE_CLASSES = ( @@ -51,6 +52,7 @@ 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.security.SecurityMiddleware', 'search.timermiddleware.TimerMiddleware', + 'search.timermiddleware.ProcessExceptionMiddleware', ) ROOT_URLCONF = 'ssbc.urls' @@ -94,7 +96,7 @@ # Internationalization # https://docs.djangoproject.com/en/1.8/topics/i18n/ -LANGUAGE_CODE = 'zh-hans' +LANGUAGE_CODE = 'en-us' TIME_ZONE = 'UTC' diff --git a/ssbc/urls.py b/ssbc/urls.py index 6531ea8..1250d04 100644 --- a/ssbc/urls.py +++ b/ssbc/urls.py @@ -19,7 +19,7 @@ import web.views urlpatterns = [ - url(r'^admin/', include(admin.site.urls)), + url(r'^top/', include('top.urls')), url(r'^api/', include('search.urls')), url(r'^$', web.views.index, name='index'), url(r'^info/(\d{1,10})$', web.views.hash, name='hash'), @@ -29,4 +29,5 @@ url(r'^search/(.*?)$', web.views.search), url(r'^list/(.+?)/(\d*)$', web.views.search_old), url(r'^howto/$', web.views.howto, name='howto'), + url(r'^admin/', include(admin.site.urls)), ] diff --git a/start.sh b/start.sh new file mode 100755 index 0000000..10da390 --- /dev/null +++ b/start.sh @@ -0,0 +1,3 @@ +#!/bin/sh +/home/job/ssbc/env/bin/gunicorn -k gevent -b :8002 ssbc.wsgi -k gevent --env DJANGO_SETTINGS_MODULE=ssbc.deployment --pid /tmp/ssbc.pid -w 6 + diff --git a/web/static/css/ssbc.css b/web/static/css/ssbc.css index e7158f8..086d563 100644 --- a/web/static/css/ssbc.css +++ b/web/static/css/ssbc.css @@ -5,7 +5,7 @@ } .div-search-box{margin-top: 50px; } -.div-search-box .logo img{height: 120px;margin-left: -50px; margin-bottom:20px;} +.div-search-box .logo img{width:100%; margin-bottom:20px;} .div-search-box .logo{text-align: center;} .copyright{text-align: center;color: gray;padding-top: 10px;} .good{text-align: center; padding-top: 30px; font-size: 0.9em; color: gray; } diff --git a/web/templates/base.html b/web/templates/base.html index f71dc09..52047a7 100644 --- a/web/templates/base.html +++ b/web/templates/base.html @@ -1,13 +1,12 @@ {% load staticfiles %} - + {% block metas %} {% endblock %} - {% block title%}Bootstrap 101 Template{%endblock%} {% block styles %} diff --git a/web/templates/foot.html b/web/templates/foot.html index 0c6ea60..a06a7d9 100644 --- a/web/templates/foot.html +++ b/web/templates/foot.html @@ -2,13 +2,11 @@