Closed chahushui closed 1 year ago
以上报错:docker安装
+1
+1
+1 前几天还可以,最近不行了。 [2022-12-25 10:56:24,036][Thread-1:140132815587072][task_id:django.request][log.py:225][ERROR][Internal Server Error: /video/download] Traceback (most recent call last): File "/home/ubuntu/.local/lib/python3.8/site-packages/django/core/handlers/exception.py", line 47, in inner response = get_response(request) File "/home/ubuntu/.local/lib/python3.8/site-packages/django/core/handlers/base.py", line 181, in _get_response response = wrapped_callback(request, *callback_args, *callback_kwargs) File "/home/ubuntu/stealer/core/apis.py", line 42, in download return controller.download(vtype, request) File "/home/ubuntu/stealer/route/controller.py", line 42, in download response = service.download(url) File "/home/ubuntu/stealer/service/douyin.py", line 114, in download return cls.proxy_download(vtype, url, download_headers) File "/home/ubuntu/stealer/core/interface.py", line 74, in proxy_download result = cls.fetch(url, mode=mode) File "/home/ubuntu/stealer/service/douyin.py", line 67, in fetch data = json.loads(str(url_res.text)) File "/usr/lib/python3.8/json/init.py", line 357, in loads return _default_decoder.decode(s) File "/usr/lib/python3.8/json/decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/lib/python3.8/json/decoder.py", line 355, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) [2022-12-25 11:02:21,931][Thread-2:140009668327168][task_id:django.request][log.py:225][ERROR][Internal Server Error: /video/fetch] Traceback (most recent call last): File "/home/ubuntu/.local/lib/python3.8/site-packages/django/core/handlers/exception.py", line 47, in inner response = get_response(request) File "/home/ubuntu/.local/lib/python3.8/site-packages/django/core/handlers/base.py", line 181, in _get_response response = wrapped_callback(request, callback_args, **callback_kwargs) File "/home/ubuntu/stealer/core/apis.py", line 30, in fetch return controller.fetch(vtype, request) File "/home/ubuntu/stealer/route/controller.py", line 25, in fetch result = service.fetch(url) File "/home/ubuntu/stealer/service/douyin.py", line 67, in fetch data = json.loads(str(url_res.text)) File "/usr/lib/python3.8/json/init.py", line 357, in loads return _default_decoder.decode(s) File "/usr/lib/python3.8/json/decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/lib/python3.8/json/decoder.py", line 355, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
+1 前几天还可以,最近不行了。 [2022-12-25 10:56:24,036][Thread-1:140132815587072][task_id:django.request][log.py:225][ERROR][Internal Server Error: /video/download] Traceback (most recent call last): File "/home/ubuntu/.local/lib/python3.8/site-packages/django/core/handlers/exception.py", line 47, in inner response = get_response(request) File "/home/ubuntu/.local/lib/python3.8/site-packages/django/core/handlers/base.py", line 181, in _get_response response = wrapped_callback(request, *callback_args, callback_kwargs) File "/home/ubuntu/stealer/core/apis.py", line 42, in download return controller.download(vtype, request) File "/home/ubuntu/stealer/route/controller.py", line 42, in download response = service.download(url) File "/home/ubuntu/stealer/service/douyin.py", line 114, in download return cls.proxy_download(vtype, url, download_headers) File "/home/ubuntu/stealer/core/interface.py", line 74, in proxy_download result = cls.fetch(url, mode=mode) File "/home/ubuntu/stealer/service/douyin.py", line 67, in fetch data = json.loads(str(url_res.text)) File "/usr/lib/python3.8/json/init*.py", line 357, in loads return _default_decoder.decode(s) File "/usr/lib/python3.8/json/decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/lib/python3.8/json/decoder.py", line 355, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) [2022-12-25 11:02:21,931][Thread-2:140009668327168][task_id:django.request][log.py:225][ERROR][Internal Server Error: /video/fetch] Traceback (most recent call last): File "/home/ubuntu/.local/lib/python3.8/site-packages/django/core/handlers/exception.py", line 47, in inner response = get_response(request) File "/home/ubuntu/.local/lib/python3.8/site-packages/django/core/handlers/base.py", line 181, in _get_response response = wrapped_callback(request, callback_args, callback_kwargs) File "/home/ubuntu/stealer/core/apis.py", line 30, in fetch return controller.fetch(vtype, request) File "/home/ubuntu/stealer/route/controller.py", line 25, in fetch result = service.fetch(url) File "/home/ubuntu/stealer/service/douyin.py", line 67, in fetch data = json.loads(str(url_res.text)) File "/usr/lib/python3.8/json/init**.py", line 357, in loads return _default_decoder.decode(s) File "/usr/lib/python3.8/json/decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/lib/python3.8/json/decoder.py", line 355, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
接口被废弃了,过段再看看吧,我阳了
+1 前几天还可以,最近不行了。 [2022-12-25 10:56:24,036][Thread-1:140132815587072][task_id:django.request][log.py:225][ERROR][Internal Server Error: /video/download] Traceback (most recent call last): File "/home/ubuntu/.local/lib/python3.8/site-packages/django/core/handlers/exception.py", line 47, in inner response = get_response(request) File "/home/ubuntu/.local/lib/python3.8/site-packages/django/core/handlers/base.py", line 181, in _get_response response = wrapped_callback(request, *callback_args, callback_kwargs) File "/home/ubuntu/stealer/core/apis.py", line 42, in download return controller.download(vtype, request) File "/home/ubuntu/stealer/route/controller.py", line 42, in download response = service.download(url) File "/home/ubuntu/stealer/service/douyin.py", line 114, in download return cls.proxy_download(vtype, url, download_headers) File "/home/ubuntu/stealer/core/interface.py", line 74, in proxy_download result = cls.fetch(url, mode=mode) File "/home/ubuntu/stealer/service/douyin.py", line 67, in fetch data = json.loads(str(url_res.text)) File "/usr/lib/python3.8/json/init*.py", line 357, in loads return _default_decoder.decode(s) File "/usr/lib/python3.8/json/decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/lib/python3.8/json/decoder.py", line 355, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) [2022-12-25 11:02:21,931][Thread-2:140009668327168][task_id:django.request][log.py:225][ERROR][Internal Server Error: /video/fetch] Traceback (most recent call last): File "/home/ubuntu/.local/lib/python3.8/site-packages/django/core/handlers/exception.py", line 47, in inner response = get_response(request) File "/home/ubuntu/.local/lib/python3.8/site-packages/django/core/handlers/base.py", line 181, in _get_response response = wrapped_callback(request, callback_args, callback_kwargs) File "/home/ubuntu/stealer/core/apis.py", line 30, in fetch return controller.fetch(vtype, request) File "/home/ubuntu/stealer/route/controller.py", line 25, in fetch result = service.fetch(url) File "/home/ubuntu/stealer/service/douyin.py", line 67, in fetch data = json.loads(str(url_res.text)) File "/usr/lib/python3.8/json/init**.py", line 357, in loads return _default_decoder.decode(s) File "/usr/lib/python3.8/json/decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/lib/python3.8/json/decoder.py", line 355, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
接口被废弃了,过段再看看吧,我阳了
老哥保重啊,要多躺着休息啊
分析或下载时,报错,如下:
地址分析失败, <!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <meta name="robots" content="NONE,NOARCHIVE"> <title>IndexError at /video/fetch</title> <style type="text/css"> html * { padding:0; margin:0; } body * { padding:10px 20px; } body * * { padding:0; } body { font:small sans-serif; background-color:#fff; color:#000; } body>div { border-bottom:1px solid #ddd; } h1 { font-weight:normal; } h2 { margin-bottom:.8em; } h3 { margin:1em 0 .5em 0; } h4 { margin:0 0 .5em 0; font-weight: normal; } code, pre { font-size: 100%; white-space: pre-wrap; } table { border:1px solid #ccc; border-collapse: collapse; width:100%; background:white; } tbody td, tbody th { vertical-align:top; padding:2px 3px; } thead th { padding:1px 6px 1px 3px; background:#fefefe; text-align:left; font-weight:normal; font-size:11px; border:1px solid #ddd; } tbody th { width:12em; text-align:right; color:#666; padding-right:.5em; } table.vars { margin:5px 0 2px 40px; } table.vars td, table.req td { font-family:monospace; } table td.code { width:100%; } table td.code pre { overflow:hidden; } table.source th { color:#666; } table.source td { font-family:monospace; white-space:pre; border-bottom:1px solid #eee; } ul.traceback { list-style-type:none; color: #222; } ul.traceback li.frame { padding-bottom:1em; color:#4f4f4f; } ul.traceback li.user { background-color:#e0e0e0; color:#000 } div.context { padding:10px 0; overflow:hidden; } div.context ol { padding-left:30px; margin:0 10px; list-style-position: inside; } div.context ol li { font-family:monospace; white-space:pre; color:#777; cursor:pointer; padding-left: 2px; } div.context ol li pre { display:inline; } div.context ol.context-line li { color:#464646; background-color:#dfdfdf; padding: 3px 2px; } div.context ol.context-line li span { position:absolute; right:32px; } .user div.context ol.context-line li { background-color:#bbb; color:#000; } .user div.context ol li { color:#666; } div.commands { margin-left: 40px; } div.commands a { color:#555; text-decoration:none; } .user div.commands a { color: black; } #summary { background: #ffc; } #summary h2 { font-weight: normal; color: #666; } #explanation { background:#eee; } #template, #template-not-exist { background:#f6f6f6; } #template-not-exist ul { margin: 0 0 10px 20px; } #template-not-exist .postmortem-section { margin-bottom: 3px; } #unicode-hint { background:#eee; } #traceback { background:#eee; } #requestinfo { background:#f6f6f6; padding-left:120px; } #summary table { border:none; background:transparent; } #requestinfo h2, #requestinfo h3 { position:relative; margin-left:-100px; } #requestinfo h3 { margin-bottom:-1em; } .error { background: #ffc; } .specific { color:#cc3300; font-weight:bold; } h2 span.commands { font-size:.7em; font-weight:normal; } span.commands a:link {color:#5E5694;} pre.exception_value { font-family: sans-serif; color: #575757; font-size: 1.5em; margin: 10px 0 10px 0; } .append-bottom { margin-bottom: 10px; } .fname { user-select: all; } </style> <script> function hideAll(elems) { for (var e = 0; e < elems.length; e++) { elems[e].style.display = 'none'; } } window.onload = function() { hideAll(document.querySelectorAll('table.vars')); hideAll(document.querySelectorAll('ol.pre-context')); hideAll(document.querySelectorAll('ol.post-context')); hideAll(document.querySelectorAll('div.pastebin')); } function toggle() { for (var i = 0; i < arguments.length; i++) { var e = document.getElementById(arguments[i]); if (e) { e.style.display = e.style.display == 'none' ? 'block': 'none'; } } return false; } function varToggle(link, id) { toggle('v' + id); var s = link.getElementsByTagName('span')[0]; var uarr = String.fromCharCode(0x25b6); var darr = String.fromCharCode(0x25bc); s.textContent = s.textContent == uarr ? darr : uarr; return false; } function switchPastebinFriendly(link) { s1 = "Switch to copy-and-paste view"; s2 = "Switch back to interactive view"; link.textContent = link.textContent.trim() == s1 ? s2: s1; toggle('browserTraceback', 'pastebinTraceback'); return false; } </script> </head> <body> <div id="summary"> <h1>IndexError at /video/fetch</h1> <pre class="exception_value">list index out of range</pre> <table class="meta"> <tr> <th>Request Method:</th> <td>GET</td> </tr> <tr> <th>Request URL:</th> <td>http://dv.newshub.eu.org/video/fetch?type=auto&url=9.23%20uSy:/%20%E8%BF%99%E7%94%B5%E5%BD%B1%E6%9C%80%E5%90%8E</td> </tr> <tr> <th>Django Version:</th> <td>3.2.13</td> </tr> <tr> <th>Exception Type:</th> <td>IndexError</td> </tr> <tr> <th>Exception Value:</th> <td><pre>list index out of range</pre></td> </tr> <tr> <th>Exception Location:</th> <td><span class="fname">/code/service/bilibili.py</span>, line 53, in get_url</td> </tr> <tr> <th>Python Executable:</th> <td>/usr/local/bin/python</td> </tr> <tr> <th>Python Version:</th> <td>3.7.12</td> </tr> <tr> <th>Python Path:</th> <td><pre>['/code', '/usr/local/lib/python37.zip', '/usr/local/lib/python3.7', '/usr/local/lib/python3.7/lib-dynload', '/usr/local/lib/python3.7/site-packages']</pre></td> </tr> <tr> <th>Server time:</th> <td>Mon, 15 Aug 2022 23:16:53 +0800</td> </tr> </table> </div> <div id="traceback"> <h2>Traceback <span class="commands"><a href="#" onclick="return switchPastebinFriendly(this);"> Switch to copy-and-paste view</a></span> </h2> <div id="browserTraceback"> <ul class="traceback"> <li class="frame django"> <code class="fname">/usr/local/lib/python3.7/site-packages/django/core/handlers/exception.py</code>, line 47, in inner <div class="context" id="c140358654912064"> <ol start="40" class="pre-context" id="pre140358654912064"> <li onclick="toggle('pre140358654912064', 'post140358654912064')"><pre> response = await sync_to_async(response_for_exception, thread_sensitive=False)(request, exc)</pre></li> <li onclick="toggle('pre140358654912064', 'post140358654912064')"><pre> return response</pre></li> <li onclick="toggle('pre140358654912064', 'post140358654912064')"><pre> return inner</pre></li> <li onclick="toggle('pre140358654912064', 'post140358654912064')"><pre> else:</pre></li> <li onclick="toggle('pre140358654912064', 'post140358654912064')"><pre> @wraps(get_response)</pre></li> <li onclick="toggle('pre140358654912064', 'post140358654912064')"><pre> def inner(request):</pre></li> <li onclick="toggle('pre140358654912064', 'post140358654912064')"><pre> try:</pre></li> </ol> <ol start="47" class="context-line"> <li onclick="toggle('pre140358654912064', 'post140358654912064')"><pre> response = get_response(request)</pre> <span>…</span></li> </ol> <ol start='48' class="post-context" id="post140358654912064"> <li onclick="toggle('pre140358654912064', 'post140358654912064')"><pre> except Exception as exc:</pre></li> <li onclick="toggle('pre140358654912064', 'post140358654912064')"><pre> response = response_for_exception(request, exc)</pre></li> <li onclick="toggle('pre140358654912064', 'post140358654912064')"><pre> return response</pre></li> <li onclick="toggle('pre140358654912064', 'post140358654912064')"><pre> return inner</pre></li> <li onclick="toggle('pre140358654912064', 'post140358654912064')"><pre></pre></li> <li onclick="toggle('pre140358654912064', 'post140358654912064')"><pre></pre></li> </ol> </div> <div class="commands"> <a href="#" onclick="return varToggle(this, '140358654912064')"><span>▶</span> Local vars</a> </div> <table class="vars" id="v140358654912064"> <thead> <tr> <th>Variable</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>exc</td> <td class="code"><pre>IndexError('list index out of range')</pre></td> </tr> <tr> <td>get_response</td> <td class="code"><pre><bound method BaseHandler._get_response of <django.core.handlers.wsgi.WSGIHandler object at 0x7fa7cce9a850>></pre></td> </tr> <tr> <td>request</td> <td class="code"><pre><WSGIRequest: GET '/video/fetch?type=auto&url=9.23%20uSy:/%20%E8%BF%99%E7%94%B5%E5%BD%B1%E6%9C%80%E5%90%8E'></pre></td> </tr> </tbody> </table> </li> <li class="frame django"> <code class="fname">/usr/local/lib/python3.7/site-packages/django/core/handlers/base.py</code>, line 181, in _get_response <div class="context" id="c140358654911424"> <ol start="174" class="pre-context" id="pre140358654911424"> <li onclick="toggle('pre140358654911424', 'post140358654911424')"><pre></pre></li> <li onclick="toggle('pre140358654911424', 'post140358654911424')"><pre> if response is None:</pre></li> <li onclick="toggle('pre140358654911424', 'post140358654911424')"><pre> wrapped_callback = self.make_view_atomic(callback)</pre></li> <li onclick="toggle('pre140358654911424', 'post140358654911424')"><pre> # If it is an asynchronous view, run it in a subthread.</pre></li> <li onclick="toggle('pre140358654911424', 'post140358654911424')"><pre> if asyncio.iscoroutinefunction(wrapped_callback):</pre></li> <li onclick="toggle('pre140358654911424', 'post140358654911424')"><pre> wrapped_callback = async_to_sync(wrapped_callback)</pre></li> <li onclick="toggle('pre140358654911424', 'post140358654911424')"><pre> try:</pre></li> </ol> <ol start="181" class="context-line"> <li onclick="toggle('pre140358654911424', 'post140358654911424')"><pre> response = wrapped_callback(request, *callback_args, **callback_kwargs)</pre> <span>…</span></li> </ol> <ol start='182' class="post-context" id="post140358654911424"> <li onclick="toggle('pre140358654911424', 'post140358654911424')"><pre> except Exception as e:</pre></li> <li onclick="toggle('pre140358654911424', 'post140358654911424')"><pre> response = self.process_exception_by_middleware(e, request)</pre></li> <li onclick="toggle('pre140358654911424', 'post140358654911424')"><pre> if response is None:</pre></li> <li onclick="toggle('pre140358654911424', 'post140358654911424')"><pre> raise</pre></li> <li onclick="toggle('pre140358654911424', 'post140358654911424')"><pre></pre></li> <li onclick="toggle('pre140358654911424', 'post140358654911424')"><pre> # Complain if the view returned None (a common error).</pre></li> </ol> </div> <div class="commands"> <a href="#" onclick="return varToggle(this, '140358654911424')"><span>▶</span> Local vars</a> </div> <table class="vars" id="v140358654911424"> <thead> <tr> <th>Variable</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>callback</td> <td class="code"><pre><function fetch at 0x7fa7cbd739e0></pre></td> </tr> <tr> <td>callback_args</td> <td class="code"><pre>()</pre></td> </tr> <tr> <td>callback_kwargs</td> <td class="code"><pre>{}</pre></td> </tr> <tr> <td>middleware_method</td> <td class="code"><pre><bound method CsrfViewMiddleware.process_view of <django.middleware.csrf.CsrfViewMiddleware object at 0x7fa7cbcb3510>></pre></td> </tr> <tr> <td>request</td> <td class="code"><pre><WSGIRequest: GET '/video/fetch?type=auto&url=9.23%20uSy:/%20%E8%BF%99%E7%94%B5%E5%BD%B1%E6%9C%80%E5%90%8E'></pre></td> </tr> <tr> <td>response</td> <td class="code"><pre>None</pre></td> </tr> <tr> <td>self</td> <td class="code"><pre><django.core.handlers.wsgi.WSGIHandler object at 0x7fa7cce9a850></pre></td> </tr> <tr> <td>wrapped_callback</td> <td class="code"><pre><function fetch at 0x7fa7cbd739e0></pre></td> </tr> </tbody> </table> </li> <li class="frame user"> <code class="fname">/code/core/apis.py</code>, line 30, in fetch <div class="context" id="c140358654911264"> <ol start="23" class="pre-context" id="pre140358654911264"> <li onclick="toggle('pre140358654911264', 'post140358654911264')"><pre> if itype is None:</pre></li> <li onclick="toggle('pre140358654911264', 'post140358654911264')"><pre> return HttpResponseBadRequest(ErrorResult.TYPE_NOT_PRESENT.get_data())</pre></li> <li onclick="toggle('pre140358654911264', 'post140358654911264')"><pre></pre></li> <li onclick="toggle('pre140358654911264', 'post140358654911264')"><pre> vtype = core.type.video_mapper.get(itype)</pre></li> <li onclick="toggle('pre140358654911264', 'post140358654911264')"><pre> if vtype is None:</pre></li> <li onclick="toggle('pre140358654911264', 'post140358654911264')"><pre> return HttpResponseServerError(ErrorResult.MAPPER_NOT_EXIST.get_data())</pre></li> <li onclick="toggle('pre140358654911264', 'post140358654911264')"><pre></pre></li> </ol> <ol start="30" class="context-line"> <li onclick="toggle('pre140358654911264', 'post140358654911264')"><pre> return controller.fetch(vtype, request)</pre> <span>…</span></li> </ol> <ol start='31' class="post-context" id="post140358654911264"> <li onclick="toggle('pre140358654911264', 'post140358654911264')"><pre></pre></li> <li onclick="toggle('pre140358654911264', 'post140358654911264')"><pre></pre></li> <li onclick="toggle('pre140358654911264', 'post140358654911264')"><pre>def download(request):</pre></li> <li onclick="toggle('pre140358654911264', 'post140358654911264')"><pre> itype = request.GET.get('type')</pre></li> <li onclick="toggle('pre140358654911264', 'post140358654911264')"><pre> if itype is None:</pre></li> <li onclick="toggle('pre140358654911264', 'post140358654911264')"><pre> return HttpResponseBadRequest(ErrorResult.TYPE_NOT_PRESENT.get_data())</pre></li> </ol> </div> <div class="commands"> <a href="#" onclick="return varToggle(this, '140358654911264')"><span>▶</span> Local vars</a> </div> <table class="vars" id="v140358654911264"> <thead> <tr> <th>Variable</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>itype</td> <td class="code"><pre>'auto'</pre></td> </tr> <tr> <td>request</td> <td class="code"><pre><WSGIRequest: GET '/video/fetch?type=auto&url=9.23%20uSy:/%20%E8%BF%99%E7%94%B5%E5%BD%B1%E6%9C%80%E5%90%8E'></pre></td> </tr> <tr> <td>vtype</td> <td class="code"><pre><Video.AUTO: 'auto'></pre></td> </tr> </tbody> </table> </li> <li class="frame user"> <code class="fname">/code/route/controller.py</code>, line 19, in fetch <div class="context" id="c140358654912784"> <ol start="12" class="pre-context" id="pre140358654912784"> <li onclick="toggle('pre140358654912784', 'post140358654912784')"><pre></pre></li> <li onclick="toggle('pre140358654912784', 'post140358654912784')"><pre></pre></li> <li onclick="toggle('pre140358654912784', 'post140358654912784')"><pre>def fetch(vtype: Video, request):</pre></li> <li onclick="toggle('pre140358654912784', 'post140358654912784')"><pre> url = request.GET.get('url')</pre></li> <li onclick="toggle('pre140358654912784', 'post140358654912784')"><pre> if url is None:</pre></li> <li onclick="toggle('pre140358654912784', 'post140358654912784')"><pre> return HttpResponseBadRequest(ErrorResult.URL_NOT_PRESENT.get_data())</pre></li> <li onclick="toggle('pre140358654912784', 'post140358654912784')"><pre></pre></li> </ol> <ol start="19" class="context-line"> <li onclick="toggle('pre140358654912784', 'post140358654912784')"><pre> vtype = check_vtype(vtype, url)</pre> <span>…</span></li> </ol> <ol start='20' class="post-context" id="post140358654912784"> <li onclick="toggle('pre140358654912784', 'post140358654912784')"><pre> if vtype is None:</pre></li> <li onclick="toggle('pre140358654912784', 'post140358654912784')"><pre> return HttpResponseBadRequest(ErrorResult.URL_NOT_INCORRECT.get_data())</pre></li> <li onclick="toggle('pre140358654912784', 'post140358654912784')"><pre></pre></li> <li onclick="toggle('pre140358654912784', 'post140358654912784')"><pre> service = handler_mapper.get_service(vtype)</pre></li> <li onclick="toggle('pre140358654912784', 'post140358654912784')"><pre> logger.info('fetch {} <== {}.'.format(vtype.label, url))</pre></li> <li onclick="toggle('pre140358654912784', 'post140358654912784')"><pre> result = service.fetch(url)</pre></li> </ol> </div> <div class="commands"> <a href="#" onclick="return varToggle(this, '140358654912784')"><span>▶</span> Local vars</a> </div> <table class="vars" id="v140358654912784"> <thead> <tr> <th>Variable</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>request</td> <td class="code"><pre><WSGIRequest: GET '/video/fetch?type=auto&url=9.23%20uSy:/%20%E8%BF%99%E7%94%B5%E5%BD%B1%E6%9C%80%E5%90%8E'></pre></td> </tr> <tr> <td>url</td> <td class="code"><pre>'9.23 uSy:/ 这电影最后'</pre></td> </tr> <tr> <td>vtype</td> <td class="code"><pre><Video.AUTO: 'auto'></pre></td> </tr> </tbody> </table> </li> <li class="frame user"> <code class="fname">/code/route/controller.py</code>, line 51, in check_vtype <div class="context" id="c140358654913904"> <ol start="44" class="pre-context" id="pre140358654913904"> <li onclick="toggle('pre140358654913904', 'post140358654913904')"><pre></pre></li> <li onclick="toggle('pre140358654913904', 'post140358654913904')"><pre></pre></li> <li onclick="toggle('pre140358654913904', 'post140358654913904')"><pre>def check_vtype(vtype: Video, url: str) -> Union[Optional[Video], Any]:</pre></li> <li onclick="toggle('pre140358654913904', 'post140358654913904')"><pre> if vtype is not Video.AUTO:</pre></li> <li onclick="toggle('pre140358654913904', 'post140358654913904')"><pre> return vtype</pre></li> <li onclick="toggle('pre140358654913904', 'post140358654913904')"><pre></pre></li> <li onclick="toggle('pre140358654913904', 'post140358654913904')"><pre> for v, service in handler_mapper.service_mapper.items():</pre></li> </ol> <ol start="51" class="context-line"> <li onclick="toggle('pre140358654913904', 'post140358654913904')"><pre> if service.get_url(url):</pre> <span>…</span></li> </ol> <ol start='52' class="post-context" id="post140358654913904"> <li onclick="toggle('pre140358654913904', 'post140358654913904')"><pre> return v</pre></li> <li onclick="toggle('pre140358654913904', 'post140358654913904')"><pre> return None</pre></li> </ol> </div> <div class="commands"> <a href="#" onclick="return varToggle(this, '140358654913904')"><span>▶</span> Local vars</a> </div> <table class="vars" id="v140358654913904"> <thead> <tr> <th>Variable</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>service</td> <td class="code"><pre><class 'service.bilibili.BiliBiliService'></pre></td> </tr> <tr> <td>url</td> <td class="code"><pre>'9.23 uSy:/ 这电影最后'</pre></td> </tr> <tr> <td>v</td> <td class="code"><pre><Video.BILIBILI: 'bilibili'></pre></td> </tr> <tr> <td>vtype</td> <td class="code"><pre><Video.AUTO: 'auto'></pre></td> </tr> </tbody> </table> </li> <li class="frame user"> <code class="fname">/code/service/bilibili.py</code>, line 53, in get_url <div class="context" id="c140358619319744"> <ol start="46" class="pre-context" id="pre140358619319744"> <li onclick="toggle('pre140358619319744', 'post140358619319744')"><pre> if "bilibili" in text:</pre></li> <li onclick="toggle('pre140358619319744', 'post140358619319744')"><pre> urls = re.findall(r'(?<=www\.bilibili\.com\/video\/).+', text, re.I | re.M)</pre></li> <li onclick="toggle('pre140358619319744', 'post140358619319744')"><pre> if urls:</pre></li> <li onclick="toggle('pre140358619319744', 'post140358619319744')"><pre> return "https://www.bilibili.com/video/" + urls[0]</pre></li> <li onclick="toggle('pre140358619319744', 'post140358619319744')"><pre> return None</pre></li> <li onclick="toggle('pre140358619319744', 'post140358619319744')"><pre></pre></li> <li onclick="toggle('pre140358619319744', 'post140358619319744')"><pre> urls = re.findall(r'(?<=b23\.tv\/)\w+', text, re.I | re.M)</pre></li> </ol> <ol start="53" class="context-line"> <li onclick="toggle('pre140358619319744', 'post140358619319744')"><pre> url = "https://b23.tv/" + urls[0]</pre> <span>…</span></li> </ol> <ol start='54' class="post-context" id="post140358619319744"> <li onclick="toggle('pre140358619319744', 'post140358619319744')"><pre> res = http_utils.get(url, header=headers)</pre></li> <li onclick="toggle('pre140358619319744', 'post140358619319744')"><pre> url = res.url</pre></li> <li onclick="toggle('pre140358619319744', 'post140358619319744')"><pre> return url</pre></li> <li onclick="toggle('pre140358619319744', 'post140358619319744')"><pre></pre></li> <li onclick="toggle('pre140358619319744', 'post140358619319744')"><pre> # @classmethod</pre></li> <li onclick="toggle('pre140358619319744', 'post140358619319744')"><pre> # def get_prefix_pattern(cls) -> str:</pre></li> </ol> </div> <div class="commands"> <a href="#" onclick="return varToggle(this, '140358619319744')"><span>▶</span> Local vars</a> </div> <table class="vars" id="v140358619319744"> <thead> <tr> <th>Variable</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>cls</td> <td class="code"><pre><class 'service.bilibili.BiliBiliService'></pre></td> </tr> <tr> <td>text</td> <td class="code"><pre>'9.23 uSy:/ 这电影最后'</pre></td> </tr> <tr> <td>urls</td> <td class="code"><pre>[]</pre></td> </tr> </tbody> </table> </li> </ul> </div> <form action="https://dpaste.com/" name="pasteform" id="pasteform" method="post"> <div id="pastebinTraceback" class="pastebin"> <input type="hidden" name="language" value="PythonConsole"> <input type="hidden" name="title" value="IndexError at /video/fetch"> <input type="hidden" name="source" value="Django Dpaste Agent"> <input type="hidden" name="poster" value="Django"> <textarea name="content" id="traceback_area" cols="140" rows="25"> Environment: Request Method: GET Request URL: http://dv.newshub.eu.org/video/fetch?type=auto&url=9.23%20uSy:/%20%E8%BF%99%E7%94%B5%E5%BD%B1%E6%9C%80%E5%90%8E Django Version: 3.2.13 Python Version: 3.7.12 Installed Applications: ['corsheaders', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles'] Installed Middleware: ['django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'corsheaders.middleware.CorsMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware'] Traceback (most recent call last): File "/usr/local/lib/python3.7/site-packages/django/core/handlers/exception.py", line 47, in inner response = get_response(request) File "/usr/local/lib/python3.7/site-packages/django/core/handlers/base.py", line 181, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/code/core/apis.py", line 30, in fetch return controller.fetch(vtype, request) File "/code/route/controller.py", line 19, in fetch vtype = check_vtype(vtype, url) File "/code/route/controller.py", line 51, in check_vtype if service.get_url(url): File "/code/service/bilibili.py", line 53, in get_url url = "https://b23.tv/" + urls[0] Exception Type: IndexError at /video/fetch Exception Value: list index out of range </textarea> <br><br> <input type="submit" value="Share this traceback on a public website"> </div> </form> </div> <div id="requestinfo"> <h2>Request information</h2> <h3 id="user-info">USER</h3> <p>AnonymousUser</p> <h3 id="get-info">GET</h3> <table class="req"> <thead> <tr> <th>Variable</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>type</td> <td class="code"><pre>'auto'</pre></td> </tr> <tr> <td>url</td> <td class="code"><pre>'9.23 uSy:/ 这电影最后'</pre></td> </tr> </tbody> </table> <h3 id="post-info">POST</h3> <p>No POST data</p> <h3 id="files-info">FILES</h3> <p>No FILES data</p> <h3 id="cookie-info">COOKIES</h3> <p>No cookie data</p> <h3 id="meta-info">META</h3> <table class="req"> <thead> <tr> <th>Variable</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>CONTENT_LENGTH</td> <td class="code"><pre>''</pre></td> </tr> <tr> <td>CONTENT_TYPE</td> <td class="code"><pre>'text/plain'</pre></td> </tr> <tr> <td>DJANGO_SETTINGS_MODULE</td> <td class="code"><pre>'stealer.settings'</pre></td> </tr> <tr> <td>GATEWAY_INTERFACE</td> <td class="code"><pre>'CGI/1.1'</pre></td> </tr> <tr> <td>GPG_KEY</td> <td class="code"><pre>'********************'</pre></td> </tr> <tr> <td>HOME</td> <td class="code"><pre>'/root'</pre></td> </tr> <tr> <td>HOSTNAME</td> <td class="code"><pre>'9f62c05ba189'</pre></td> </tr> <tr> <td>HTTP_ACCEPT</td> <td class="code"><pre>'application/json, text/plain, */*'</pre></td> </tr> <tr> <td>HTTP_ACCEPT_ENCODING</td> <td class="code"><pre>'gzip, deflate, br'</pre></td> </tr> <tr> <td>HTTP_ACCEPT_LANGUAGE</td> <td class="code"><pre>'zh-CN,zh;q=0.9'</pre></td> </tr> <tr> <td>HTTP_CONNECTION</td> <td class="code"><pre>'close'</pre></td> </tr> <tr> <td>HTTP_HOST</td> <td class="code"><pre>'dv.newshub.eu.org'</pre></td> </tr> <tr> <td>HTTP_REFERER</td> <td class="code"><pre>'https://dv.newshub.eu.org/'</pre></td> </tr> <tr> <td>HTTP_SEC_CH_UA</td> <td class="code"><pre>'".Not/A)Brand";v="99", "Google Chrome";v="103", "Chromium";v="103"'</pre></td> </tr> <tr> <td>HTTP_SEC_CH_UA_MOBILE</td> <td class="code"><pre>'?0'</pre></td> </tr> <tr> <td>HTTP_SEC_CH_UA_PLATFORM</td> <td class="code"><pre>'"Windows"'</pre></td> </tr> <tr> <td>HTTP_SEC_FETCH_DEST</td> <td class="code"><pre>'empty'</pre></td> </tr> <tr> <td>HTTP_SEC_FETCH_MODE</td> <td class="code"><pre>'cors'</pre></td> </tr> <tr> <td>HTTP_SEC_FETCH_SITE</td> <td class="code"><pre>'same-origin'</pre></td> </tr> <tr> <td>HTTP_USER_AGENT</td> <td class="code"><pre>('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like ' 'Gecko) Chrome/103.0.0.0 Safari/537.36')</pre></td> </tr> <tr> <td>HTTP_X_FORWARDED_FOR</td> <td class="code"><pre>'20.187.74.140'</pre></td> </tr> <tr> <td>HTTP_X_REAL_IP</td> <td class="code"><pre>'20.187.74.140'</pre></td> </tr> <tr> <td>LANG</td> <td class="code"><pre>'C.UTF-8'</pre></td> </tr> <tr> <td>PATH</td> <td class="code"><pre>'/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'</pre></td> </tr> <tr> <td>PATH_INFO</td> <td class="code"><pre>'/video/fetch'</pre></td> </tr> <tr> <td>PYTHONUNBUFFERED</td> <td class="code"><pre>'1'</pre></td> </tr> <tr> <td>PYTHON_GET_PIP_SHA256</td> <td class="code"><pre>'e235c437e5c7d7524fbce3880ca39b917a73dc565e0c813465b7a7a329bb279a'</pre></td> </tr> <tr> <td>PYTHON_GET_PIP_URL</td> <td class="code"><pre>'https://github.com/pypa/get-pip/raw/38e54e5de07c66e875c11a1ebbdb938854625dd8/public/get-pip.py'</pre></td> </tr> <tr> <td>PYTHON_PIP_VERSION</td> <td class="code"><pre>'21.2.4'</pre></td> </tr> <tr> <td>PYTHON_SETUPTOOLS_VERSION</td> <td class="code"><pre>'57.5.0'</pre></td> </tr> <tr> <td>PYTHON_VERSION</td> <td class="code"><pre>'3.7.12'</pre></td> </tr> <tr> <td>QUERY_STRING</td> <td class="code"><pre>'type=auto&url=9.23%20uSy:/%20%E8%BF%99%E7%94%B5%E5%BD%B1%E6%9C%80%E5%90%8E'</pre></td> </tr> <tr> <td>REMOTE_ADDR</td> <td class="code"><pre>'172.17.0.1'</pre></td> </tr> <tr> <td>REMOTE_HOST</td> <td class="code"><pre>''</pre></td> </tr> <tr> <td>REQUEST_METHOD</td> <td class="code"><pre>'GET'</pre></td> </tr> <tr> <td>RUN_MAIN</td> <td class="code"><pre>'true'</pre></td> </tr> <tr> <td>SCRIPT_NAME</td> <td class="code"><pre>''</pre></td> </tr> <tr> <td>SERVER_NAME</td> <td class="code"><pre>'9f62c05ba189'</pre></td> </tr> <tr> <td>SERVER_PORT</td> <td class="code"><pre>'8000'</pre></td> </tr> <tr> <td>SERVER_PROTOCOL</td> <td class="code"><pre>'HTTP/1.0'</pre></td> </tr> <tr> <td>SERVER_SOFTWARE</td> <td class="code"><pre>'WSGIServer/0.2'</pre></td> </tr> <tr> <td>TZ</td> <td class="code"><pre>'Asia/Shanghai'</pre></td> </tr> <tr> <td>wsgi.errors</td> <td class="code"><pre><_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'></pre></td> </tr> <tr> <td>wsgi.file_wrapper</td> <td class="code"><pre><class 'wsgiref.util.FileWrapper'></pre></td> </tr> <tr> <td>wsgi.input</td> <td class="code"><pre><django.core.handlers.wsgi.LimitedStream object at 0x7fa7c9a19fd0></pre></td> </tr> <tr> <td>wsgi.multiprocess</td> <td class="code"><pre>False</pre></td> </tr> <tr> <td>wsgi.multithread</td> <td class="code"><pre>True</pre></td> </tr> <tr> <td>wsgi.run_once</td> <td class="code"><pre>False</pre></td> </tr> <tr> <td>wsgi.url_scheme</td> <td class="code"><pre>'http'</pre></td> </tr> <tr> <td>wsgi.version</td> <td class="code"><pre>(1, 0)</pre></td> </tr> </tbody> </table> <h3 id="settings-info">Settings</h3> <h4>Using settings module <code>stealer.settings</code></h4> <table class="req"> <thead> <tr> <th>Setting</th> <th>Value</th> </tr> </thead> <tbody> <tr> <td>ABSOLUTE_URL_OVERRIDES</td> <td class="code"><pre>{}</pre></td> </tr> <tr> <td>ADMINS</td> <td class="code"><pre>[]</pre></td> </tr> <tr> <td>ALLOWED_HOSTS</td> <td class="code"><pre>['*']</pre></td> </tr> <tr> <td>APPEND_SLASH</td> <td class="code"><pre>True</pre></td> </tr> <tr> <td>AUTHENTICATION_BACKENDS</td> <td class="code"><pre>['django.contrib.auth.backends.ModelBackend']</pre></td> </tr> <tr> <td>AUTH_PASSWORD_VALIDATORS</td> <td class="code"><pre>'********************'</pre></td> </tr> <tr> <td>AUTH_USER_MODEL</td> <td class="code"><pre>'auth.User'</pre></td> </tr> <tr> <td>BASE_DIR</td> <td class="code"><pre>'/code'</pre></td> </tr> <tr> <td>BASE_LOG_DIR</td> <td class="code"><pre>'/code'</pre></td> </tr> <tr> <td>CACHES</td> <td class="code"><pre>{'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}}</pre></td> </tr> <tr> <td>CACHE_MIDDLEWARE_ALIAS</td> <td class="code"><pre>'default'</pre></td> </tr> <tr> <td>CACHE_MIDDLEWARE_KEY_PREFIX</td> <td class="code"><pre>'********************'</pre></td> </tr> <tr> <td>CACHE_MIDDLEWARE_SECONDS</td> <td class="code"><pre>600</pre></td> </tr> <tr> <td>CORS_ALLOW_CREDENTIALS</td> <td class="code"><pre>True</pre></td> </tr> <tr> <td>CORS_ALLOW_HEADERS</td> <td class="code"><pre>('XMLHttpRequest', 'X_FILENAME', 'accept-encoding', 'authorization', 'content-type', 'dnt', 'origin', 'user-agent', 'x-csrftoken', 'x-requested-with', 'Pragma')</pre></td> </tr> <tr> <td>CORS_ALLOW_METHODS</td> <td class="code"><pre>('DELETE', 'GET', 'OPTIONS', 'PATCH', 'POST', 'PUT', 'VIEW')</pre></td> </tr> <tr> <td>CORS_ORIGIN_ALLOW_ALL</td> <td class="code"><pre>True</pre></td> </tr> <tr> <td>CORS_ORIGIN_WHITELIST</td> <td class="code"><pre>('http://127.0.0.1:8080', 'http://localhost:8080')</pre></td> </tr> <tr> <td>CSRF_COOKIE_AGE</td> <td class="code"><pre>31449600</pre></td> </tr> <tr> <td>CSRF_COOKIE_DOMAIN</td> <td class="code"><pre>None</pre></td> </tr> <tr> <td>CSRF_COOKIE_HTTPONLY</td> <td class="code"><pre>False</pre></td> </tr> <tr> <td>CSRF_COOKIE_NAME</td> <td class="code"><pre>'csrftoken'</pre></td> </tr> <tr> <td>CSRF_COOKIE_PATH</td> <td class="code"><pre>'/'</pre></td> </tr> <tr> <td>CSRF_COOKIE_SAMESITE</td> <td class="code"><pre>'Lax'</pre></td> </tr> <tr> <td>CSRF_COOKIE_SECURE</td> <td class="code"><pre>False</pre></td> </tr> <tr> <td>CSRF_FAILURE_VIEW</td> <td class="code"><pre>'django.views.csrf.csrf_failure'</pre></td> </tr> <tr> <td>CSRF_HEADER_NAME</td> <td class="code"><pre>'HTTP_X_CSRFTOKEN'</pre></td> </tr> <tr> <td>CSRF_TRUSTED_ORIGINS</td> <td class="code"><pre>[]</pre></td> </tr> <tr> <td>CSRF_USE_SESSIONS</td> <td class="code"><pre>False</pre></td> </tr> <tr> <td>DATABASES</td> <td class="code"><pre>{'default': {'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.sqlite3', 'HOST': '', 'NAME': '/code/db.sqlite3', 'OPTIONS': {}, 'PASSWORD': '********************', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIGRATE': True, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': ''}}</pre></td> </tr> <tr> <td>DATABASE_ROUTERS</td> <td class="code"><pre>[]</pre></td> </tr> <tr> <td>DATA_UPLOAD_MAX_MEMORY_SIZE</td> <td class="code"><pre>2621440</pre></td> </tr> <tr> <td>DATA_UPLOAD_MAX_NUMBER_FIELDS</td> <td class="code"><pre>1000</pre></td> </tr> <tr> <td>DATETIME_FORMAT</td> <td class="code"><pre>'N j, Y, P'</pre></td> </tr> <tr> <td>DATETIME_INPUT_FORMATS</td> <td class="code"><pre>['%Y-%m-%d %H:%M:%S', '%Y-%m-%d %H:%M:%S.%f', '%Y-%m-%d %H:%M', '%m/%d/%Y %H:%M:%S', '%m/%d/%Y %H:%M:%S.%f', '%m/%d/%Y %H:%M', '%m/%d/%y %H:%M:%S', '%m/%d/%y %H:%M:%S.%f', '%m/%d/%y %H:%M']</pre></td> </tr> <tr> <td>DATE_FORMAT</td> <td class="code"><pre>'N j, Y'</pre></td> </tr> <tr> <td>DATE_INPUT_FORMATS</td> <td class="code"><pre>['%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', '%b %d %Y', '%b %d, %Y', '%d %b %Y', '%d %b, %Y', '%B %d %Y', '%B %d, %Y', '%d %B %Y', '%d %B, %Y']</pre></td> </tr> <tr> <td>DEBUG</td> <td class="code"><pre>True</pre></td> </tr> <tr> <td>DEBUG_PROPAGATE_EXCEPTIONS</td> <td class="code"><pre>False</pre></td> </tr> <tr> <td>DECIMAL_SEPARATOR</td> <td class="code"><pre>'.'</pre></td> </tr> <tr> <td>DEFAULT_AUTO_FIELD</td> <td class="code"><pre>'django.db.models.AutoField'</pre></td> </tr> <tr> <td>DEFAULT_CHARSET</td> <td class="code"><pre>'utf-8'</pre></td> </tr> <tr> <td>DEFAULT_EXCEPTION_REPORTER</td> <td class="code"><pre>'django.views.debug.ExceptionReporter'</pre></td> </tr> <tr> <td>DEFAULT_EXCEPTION_REPORTER_FILTER</td> <td class="code"><pre>'django.views.debug.SafeExceptionReporterFilter'</pre></td> </tr> <tr> <td>DEFAULT_FILE_STORAGE</td> <td class="code"><pre>'django.core.files.storage.FileSystemStorage'</pre></td> </tr> <tr> <td>DEFAULT_FROM_EMAIL</td> <td class="code"><pre>'webmaster@localhost'</pre></td> </tr> <tr> <td>DEFAULT_HASHING_ALGORITHM</td> <td class="code"><pre>'sha256'</pre></td> </tr> <tr> <td>DEFAULT_INDEX_TABLESPACE</td> <td class="code"><pre>''</pre></td> </tr> <tr> <td>DEFAULT_TABLESPACE</td> <td class="code"><pre>''</pre></td> </tr> <tr> <td>DISALLOWED_USER_AGENTS</td> <td class="code"><pre>[]</pre></td> </tr> <tr> <td>EMAIL_BACKEND</td> <td class="code"><pre>'django.core.mail.backends.smtp.EmailBackend'</pre></td> </tr> <tr> <td>EMAIL_HOST</td> <td class="code"><pre>'localhost'</pre></td> </tr> <tr> <td>EMAIL_HOST_PASSWORD</td> <td class="code"><pre>'********************'</pre></td> </tr> <tr> <td>EMAIL_HOST_USER</td> <td class="code"><pre>''</pre></td> </tr> <tr> <td>EMAIL_PORT</td> <td class="code"><pre>25</pre></td> </tr> <tr> <td>EMAIL_SSL_CERTFILE</td> <td class="code"><pre>None</pre></td> </tr> <tr> <td>EMAIL_SSL_KEYFILE</td> <td class="code"><pre>'********************'</pre></td> </tr> <tr> <td>EMAIL_SUBJECT_PREFIX</td> <td class="code"><pre>'[Django] '</pre></td> </tr> <tr> <td>EMAIL_TIMEOUT</td> <td class="code"><pre>None</pre></td> </tr> <tr> <td>EMAIL_USE_LOCALTIME</td> <td class="code"><pre>False</pre></td> </tr> <tr> <td>EMAIL_USE_SSL</td> <td class="code"><pre>False</pre></td> </tr> <tr> <td>EMAIL_USE_TLS</td> <td class="code"><pre>False</pre></td> </tr> <tr> <td>FILE_UPLOAD_DIRECTORY_PERMISSIONS</td> <td class="code"><pre>None</pre></td> </tr> <tr> <td>FILE_UPLOAD_HANDLERS</td> <td class="code"><pre>['django.core.files.uploadhandler.MemoryFileUploadHandler', 'django.core.files.uploadhandler.TemporaryFileUploadHandler']</pre></td> </tr> <tr> <td>FILE_UPLOAD_MAX_MEMORY_SIZE</td> <td class="code"><pre>2621440</pre></td> </tr> <tr> <td>FILE_UPLOAD_PERMISSIONS</td> <td class="code"><pre>420</pre></td> </tr> <tr> <td>FILE_UPLOAD_TEMP_DIR</td> <td class="code"><pre>None</pre></td> </tr> <tr> <td>FIRST_DAY_OF_WEEK</td> <td class="code"><pre>0</pre></td> </tr> <tr> <td>FIXTURE_DIRS</td> <td class="code"><pre>[]</pre></td> </tr> <tr> <td>FORCE_SCRIPT_NAME</td> <td class="code"><pre>None</pre></td> </tr> <tr> <td>FORMAT_MODULE_PATH</td> <td class="code"><pre>None</pre></td> </tr> <tr> <td>FORM_RENDERER</td> <td class="code"><pre>'django.forms.renderers.DjangoTemplates'</pre></td> </tr> <tr> <td>IGNORABLE_404_URLS</td> <td class="code"><pre>[]</pre></td> </tr> <tr> <td>INSTALLED_APPS</td> <td class="code"><pre>['corsheaders', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles']</pre></td> </tr> <tr> <td>INTERNAL_IPS</td> <td class="code"><pre>[]</pre></td> </tr> <tr> <td>LANGUAGES</td> <td class="code"><pre>[('af', 'Afrikaans'), ('ar', 'Arabic'), ('ar-dz', 'Algerian Arabic'), ('ast', 'Asturian'), ('az', 'Azerbaijani'), ('bg', 'Bulgarian'), ('be', 'Belarusian'), ('bn', 'Bengali'), ('br', 'Breton'), ('bs', 'Bosnian'), ('ca', 'Catalan'), ('cs', 'Czech'), ('cy', 'Welsh'), ('da', 'Danish'), ('de', 'German'), ('dsb', 'Lower Sorbian'), ('el', 'Greek'), ('en', 'English'), ('en-au', 'Australian English'), ('en-gb', 'British English'), ('eo', 'Esperanto'), ('es', 'Spanish'), ('es-ar', 'Argentinian Spanish'), ('es-co', 'Colombian Spanish'), ('es-mx', 'Mexican Spanish'), ('es-ni', 'Nicaraguan Spanish'), ('es-ve', 'Venezuelan Spanish'), ('et', 'Estonian'), ('eu', 'Basque'), ('fa', 'Persian'), ('fi', 'Finnish'), ('fr', 'French'), ('fy', 'Frisian'), ('ga', 'Irish'), ('gd', 'Scottish Gaelic'), ('gl', 'Galician'), ('he', 'Hebrew'), ('hi', 'Hindi'), ('hr', 'Croatian'), ('hsb', 'Upper Sorbian'), ('hu', 'Hungarian'), ('hy', 'Armenian'), ('ia', 'Interlingua'), ('id', 'Indonesian'), ('ig', 'Igbo'), ('io', 'Ido'), ('is', 'Icelandic'), ('it', 'Italian'), ('ja', 'Japanese'), ('ka', 'Georgian'), ('kab', 'Kabyle'), ('kk', 'Kazakh'), ('km', 'Khmer'), ('kn', 'Kannada'), ('ko', 'Korean'), ('ky', 'Kyrgyz'), ('lb', 'Luxembourgish'), ('lt', 'Lithuanian'), ('lv', 'Latvian'), ('mk', 'Macedonian'), ('ml', 'Malayalam'), ('mn', 'Mongolian'), ('mr', 'Marathi'), ('my', 'Burmese'), ('nb', 'Norwegian Bokmål'), ('ne', 'Nepali'), ('nl', 'Dutch'), ('nn', 'Norwegian Nynorsk'), ('os', 'Ossetic'), ('pa', 'Punjabi'), ('pl', 'Polish'), ('pt', 'Portuguese'), ('pt-br', 'Brazilian Portuguese'), ('ro', 'Romanian'), ('ru', 'Russian'), ('sk', 'Slovak'), ('sl', 'Slovenian'), ('sq', 'Albanian'), ('sr', 'Serbian'), ('sr-latn', 'Serbian Latin'), ('sv', 'Swedish'), ('sw', 'Swahili'), ('ta', 'Tamil'), ('te', 'Telugu'), ('tg', 'Tajik'), ('th', 'Thai'), ('tk', 'Turkmen'), ('tr', 'Turkish'), ('tt', 'Tatar'), ('udm', 'Udmurt'), ('uk', 'Ukrainian'), ('ur', 'Urdu'), ('uz', 'Uzbek'), ('vi', 'Vietnamese'), ('zh-hans', 'Simplified Chinese'), ('zh-hant', 'Traditional Chinese')]</pre></td> </tr> <tr> <td>LANGUAGES_BIDI</td> <td class="code"><pre>['he', 'ar', 'ar-dz', 'fa', 'ur']</pre></td> </tr> <tr> <td>LANGUAGE_CODE</td> <td class="code"><pre>'en-us'</pre></td> </tr> <tr> <td>LANGUAGE_COOKIE_AGE</td> <td class="code"><pre>None</pre></td> </tr> <tr> <td>LANGUAGE_COOKIE_DOMAIN</td> <td class="code"><pre>None</pre></td> </tr> <tr> <td>LANGUAGE_COOKIE_HTTPONLY</td> <td class="code"><pre>False</pre></td> </tr> <tr> <td>LANGUAGE_COOKIE_NAME</td> <td class="code"><pre>'django_language'</pre></td> </tr> <tr> <td>LANGUAGE_COOKIE_PATH</td> <td class="code"><pre>'/'</pre></td> </tr> <tr> <td>LANGUAGE_COOKIE_SAMESITE</td> <td class="code"><pre>None</pre></td> </tr> <tr> <td>LANGUAGE_COOKIE_SECURE</td> <td class="code"><pre>False</pre></td> </tr> <tr> <td>LOCALE_PATHS</td> <td class="code"><pre>[]</pre></td> </tr> <tr> <td>LOGGING</td> <td class="code"><pre>{'disable_existing_loggers': False, 'filters': {'require_debug_true': {'()': 'django.utils.log.RequireDebugTrue'}}, 'formatters': {'collect': {'format': '[%(asctime)s][%(message)s]'}, 'simple': {'format': '[%(levelname)s][%(asctime)s][%(filename)s:%(lineno)d]%(message)s'}, 'standard': {'format': '[%(asctime)s][%(threadName)s:%(thread)d][task_id:%(name)s][%(filename)s:%(lineno)d][%(levelname)s][%(message)s]'}}, 'handlers': {'collect': {'backupCount': 5, 'class': 'logging.handlers.RotatingFileHandler', 'encoding': 'utf-8', 'filename': '/code/collect.log', 'formatter': 'collect', 'level': 'INFO', 'maxBytes': 52428800}, 'console': {'class': 'logging.StreamHandler', 'filters': ['require_debug_true'], 'formatter': 'simple', 'level': 'DEBUG'}, 'default': {'backupCount': 3, 'class': 'logging.handlers.RotatingFileHandler', 'encoding': 'utf-8', 'filename': '/code/info.log', 'formatter': 'standard', 'level': 'INFO', 'maxBytes': 52428800}, 'error': {'backupCount': 5, 'class': 'logging.handlers.RotatingFileHandler', 'encoding': 'utf-8', 'filename': '/code/error.log', 'formatter': 'standard', 'level': 'ERROR', 'maxBytes': 20971520}, 'request': {'backupCount': 5, 'class': 'logging.handlers.RotatingFileHandler', 'encoding': 'utf-8', 'filename': '/code/request.log', 'formatter': 'simple', 'level': 'INFO', 'maxBytes': 20971520}}, 'loggers': {'': {'handlers': ['default', 'console', 'error'], 'level': 'DEBUG', 'propagate': True}, 'collect': {'handlers': ['console', 'collect'], 'level': 'INFO'}, 'request': {'handlers': ['request'], 'level': 'INFO'}}, 'version': 1}</pre></td> </tr> <tr> <td>LOGGING_CONFIG</td> <td class="code"><pre>'logging.config.dictConfig'</pre></td> </tr> <tr> <td>LOGIN_REDIRECT_URL</td> <td class="code"><pre>'/accounts/profile/'</pre></td> </tr> <tr> <td>LOGIN_URL</td> <td class="code"><pre>'/accounts/login/'</pre></td> </tr> <tr> <td>LOGOUT_REDIRECT_URL</td> <td class="code"><pre>None</pre></td> </tr> <tr> <td>MANAGERS</td> <td class="code"><pre>[]</pre></td> </tr> <tr> <td>MEDIA_ROOT</td> <td class="code"><pre>''</pre></td> </tr> <tr> <td>MEDIA_URL</td> <td class="code"><pre>'/'</pre></td> </tr> <tr> <td>MESSAGE_STORAGE</td> <td class="code"><pre>'django.contrib.messages.storage.fallback.FallbackStorage'</pre></td> </tr> <tr> <td>MIDDLEWARE</td> <td class="code"><pre>['django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'corsheaders.middleware.CorsMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware']</pre></td> </tr> <tr> <td>MIGRATION_MODULES</td> <td class="code"><pre>{}</pre></td> </tr> <tr> <td>MONTH_DAY_FORMAT</td> <td class="code"><pre>'F j'</pre></td> </tr> <tr> <td>NUMBER_GROUPING</td> <td class="code"><pre>0</pre></td> </tr> <tr> <td>PASSWORD_HASHERS</td> <td class="code"><pre>'********************'</pre></td> </tr> <tr> <td>PASSWORD_RESET_TIMEOUT</td> <td class="code"><pre>'********************'</pre></td> </tr> <tr> <td>PASSWORD_RESET_TIMEOUT_DAYS</td> <td class="code"><pre>'********************'</pre></td> </tr> <tr> <td>PREPEND_WWW</td> <td class="code"><pre>False</pre></td> </tr> <tr> <td>ROOT_URLCONF</td> <td class="code"><pre>'stealer.urls'</pre></td> </tr> <tr> <td>SECRET_KEY</td> <td class="code"><pre>'********************'</pre></td> </tr> <tr> <td>SECURE_BROWSER_XSS_FILTER</td> <td class="code"><pre>False</pre></td> </tr> <tr> <td>SECURE_CONTENT_TYPE_NOSNIFF</td> <td class="code"><pre>True</pre></td> </tr> <tr> <td>SECURE_HSTS_INCLUDE_SUBDOMAINS</td> <td class="code"><pre>False</pre></td> </tr> <tr> <td>SECURE_HSTS_PRELOAD</td> <td class="code"><pre>False</pre></td> </tr> <tr> <td>SECURE_HSTS_SECONDS</td> <td class="code"><pre>0</pre></td> </tr> <tr> <td>SECURE_PROXY_SSL_HEADER</td> <td class="code"><pre>None</pre></td> </tr> <tr> <td>SECURE_REDIRECT_EXEMPT</td> <td class="code"><pre>[]</pre></td> </tr> <tr> <td>SECURE_REFERRER_POLICY</td> <td class="code"><pre>'same-origin'</pre></td> </tr> <tr> <td>SECURE_SSL_HOST</td> <td class="code"><pre>None</pre></td> </tr> <tr> <td>SECURE_SSL_REDIRECT</td> <td class="code"><pre>False</pre></td> </tr> <tr> <td>SERVER_EMAIL</td> <td class="code"><pre>'root@localhost'</pre></td> </tr> <tr> <td>SESSION_CACHE_ALIAS</td> <td class="code"><pre>'default'</pre></td> </tr> <tr> <td>SESSION_COOKIE_AGE</td> <td class="code"><pre>1209600</pre></td> </tr> <tr> <td>SESSION_COOKIE_DOMAIN</td> <td class="code"><pre>None</pre></td> </tr> <tr> <td>SESSION_COOKIE_HTTPONLY</td> <td class="code"><pre>True</pre></td> </tr> <tr> <td>SESSION_COOKIE_NAME</td> <td class="code"><pre>'sessionid'</pre></td> </tr> <tr> <td>SESSION_COOKIE_PATH</td> <td class="code"><pre>'/'</pre></td> </tr> <tr> <td>SESSION_COOKIE_SAMESITE</td> <td class="code"><pre>'Lax'</pre></td> </tr> <tr> <td>SESSION_COOKIE_SECURE</td> <td class="code"><pre>False</pre></td> </tr> <tr> <td>SESSION_ENGINE</td> <td class="code"><pre>'django.contrib.sessions.backends.db'</pre></td> </tr> <tr> <td>SESSION_EXPIRE_AT_BROWSER_CLOSE</td> <td class="code"><pre>False</pre></td> </tr> <tr> <td>SESSION_FILE_PATH</td> <td class="code"><pre>None</pre></td> </tr> <tr> <td>SESSION_SAVE_EVERY_REQUEST</td> <td class="code"><pre>False</pre></td> </tr> <tr> <td>SESSION_SERIALIZER</td> <td class="code"><pre>'django.contrib.sessions.serializers.JSONSerializer'</pre></td> </tr> <tr> <td>SETTINGS_MODULE</td> <td class="code"><pre>'stealer.settings'</pre></td> </tr> <tr> <td>SHORT_DATETIME_FORMAT</td> <td class="code"><pre>'m/d/Y P'</pre></td> </tr> <tr> <td>SHORT_DATE_FORMAT</td> <td class="code"><pre>'m/d/Y'</pre></td> </tr> <tr> <td>SIGNING_BACKEND</td> <td class="code"><pre>'django.core.signing.TimestampSigner'</pre></td> </tr> <tr> <td>SILENCED_SYSTEM_CHECKS</td> <td class="code"><pre>[]</pre></td> </tr> <tr> <td>STATICFILES_DIRS</td> <td class="code"><pre>['/code/appfront/dist/static']</pre></td> </tr> <tr> <td>STATICFILES_FINDERS</td> <td class="code"><pre>['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder']</pre></td> </tr> <tr> <td>STATICFILES_STORAGE</td> <td class="code"><pre>'django.contrib.staticfiles.storage.StaticFilesStorage'</pre></td> </tr> <tr> <td>STATIC_ROOT</td> <td class="code"><pre>None</pre></td> </tr> <tr> <td>STATIC_URL</td> <td class="code"><pre>'/static/'</pre></td> </tr> <tr> <td>TEMPLATES</td> <td class="code"><pre>[{'APP_DIRS': True, 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['appfront/dist'], 'OPTIONS': {'context_processors': ['django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages']}}]</pre></td> </tr> <tr> <td>TEST_NON_SERIALIZED_APPS</td> <td class="code"><pre>[]</pre></td> </tr> <tr> <td>TEST_RUNNER</td> <td class="code"><pre>'django.test.runner.DiscoverRunner'</pre></td> </tr> <tr> <td>THOUSAND_SEPARATOR</td> <td class="code"><pre>','</pre></td> </tr> <tr> <td>TIME_FORMAT</td> <td class="code"><pre>'P'</pre></td> </tr> <tr> <td>TIME_INPUT_FORMATS</td> <td class="code"><pre>['%H:%M:%S', '%H:%M:%S.%f', '%H:%M']</pre></td> </tr> <tr> <td>TIME_ZONE</td> <td class="code"><pre>'Asia/Shanghai'</pre></td> </tr> <tr> <td>USE_I18N</td> <td class="code"><pre>True</pre></td> </tr> <tr> <td>USE_L10N</td> <td class="code"><pre>True</pre></td> </tr> <tr> <td>USE_THOUSAND_SEPARATOR</td> <td class="code"><pre>False</pre></td> </tr> <tr> <td>USE_TZ</td> <td class="code"><pre>True</pre></td> </tr> <tr> <td>USE_X_FORWARDED_HOST</td> <td class="code"><pre>False</pre></td> </tr> <tr> <td>USE_X_FORWARDED_PORT</td> <td class="code"><pre>False</pre></td> </tr> <tr> <td>WSGI_APPLICATION</td> <td class="code"><pre>'stealer.wsgi.application'</pre></td> </tr> <tr> <td>X_FRAME_OPTIONS</td> <td class="code"><pre>'DENY'</pre></td> </tr> <tr> <td>YEAR_MONTH_FORMAT</td> <td class="code"><pre>'F Y'</pre></td> </tr> </tbody> </table> </div> <div id="explanation"> <p> You’re seeing this error because you have <code>DEBUG = True</code> in your Django settings file. Change that to <code>False</code>, and Django will display a standard page generated by the handler for this status code. </p> </div> </body> </html>