You've already forked amazing-ytdlp-archive
Compare commits
5 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
ac0243a783 | ||
![]() |
bb78c97d52 | ||
![]() |
7ccb827a9c | ||
![]() |
9c0e4fb63c | ||
![]() |
75d42ad3cd |
@@ -33,7 +33,7 @@ def websub(cap):
|
||||
return challenge
|
||||
|
||||
if get_nosql().websub_existsCallback(cap):
|
||||
if not get_nosql().websub_savePost(cap, str(request.data)):
|
||||
if not get_nosql().websub_savePost(cap, request.data):
|
||||
return abort(500)
|
||||
return '', 202
|
||||
|
||||
|
@@ -216,7 +216,7 @@ class Mango:
|
||||
|
||||
def get_video_info(self, videoId, limited=False):
|
||||
if limited:
|
||||
projection = {'_id': 1, 'id': 1, 'title': 1, 'upload_date': 1, 'description': 1, 'channel_id': 1, 'uploader': 1, 'epoch': 1, 'title_slug': 1}
|
||||
projection = {'_id': 1, 'id': 1, 'title': 1, 'upload_date': 1, 'description': 1, 'channel_id': 1, 'uploader': 1, 'epoch': 1, '_title_slug': 1}
|
||||
else:
|
||||
projection = {}
|
||||
|
||||
@@ -347,10 +347,24 @@ class Mango:
|
||||
def websub_savePost(self, callbackId, data):
|
||||
return self.websub_data.insert_one({'callback_id': callbackId, 'state': 'unprocessed', 'received_time': current_time(object=True), 'raw_data': data}).inserted_id
|
||||
|
||||
def websub_getFirstPostData(self):
|
||||
data = self.websub_data.find_one({'state': 'unprocessed'}, {'_id': 1, 'raw_data': 1}, sort=[('received_time', 1)])
|
||||
|
||||
if not data:
|
||||
return None
|
||||
|
||||
self.websub_data.update_one({'_id': data['_id']}, {'$set': {'state': 'processing'}})
|
||||
|
||||
return (data.get('_id'), data.get('raw_data'))
|
||||
|
||||
def websub_deletePostProcessing(self, _id):
|
||||
self.websub_data.delete_one({'_id': _id})
|
||||
|
||||
def websub_cleanRetired(self, days=3):
|
||||
days = self.datetime.utcnow() - self.timedelta(days=days)
|
||||
|
||||
self.websub_callbacks.delete_many({'status': 'retired', 'retired_time': {'$lt': days}})
|
||||
self.websub_callbacks.delete_many({'status': 'requesting', 'requesting_time': {'$lt': days}})
|
||||
|
||||
return True
|
||||
|
||||
|
@@ -10,7 +10,7 @@ def subscribe_websub_callback(channelId):
|
||||
|
||||
url = 'https://pubsubhubbub.appspot.com/subscribe'
|
||||
data = {
|
||||
'hub.callback': f'https://{current_app.config["DOMAIN"]}/api/websub//{callbackId}',
|
||||
'hub.callback': f'{current_app.config["DOMAIN"]}/api/websub/{callbackId}',
|
||||
'hub.topic': f'https://www.youtube.com/xml/feeds/videos.xml?channel_id={channelId}',
|
||||
'hub.verify': 'async',
|
||||
'hub.mode': 'subscribe',
|
||||
@@ -32,7 +32,7 @@ def unsubscribe_websub_callback(callbackId, channelId):
|
||||
from .nosql import get_nosql
|
||||
|
||||
url = 'https://pubsubhubbub.appspot.com/subscribe'
|
||||
data = {'hub.callback': f'https://{current_app.config["DOMAIN"]}/api/websub/{callbackId}',
|
||||
data = {'hub.callback': f'{current_app.config["DOMAIN"]}/api/websub/{callbackId}',
|
||||
'hub.topic': f'https://www.youtube.com/xml/feeds/videos.xml?channel_id={channelId}',
|
||||
'hub.verify': 'async',
|
||||
'hub.mode': 'unsubscribe'
|
||||
|
@@ -50,6 +50,7 @@
|
||||
{% for callback in callbacks %}
|
||||
<tr class="filterable">
|
||||
<td>
|
||||
<a target="_blank" rel="noopener noreferrer" href="https://pubsubhubbub.appspot.com/subscription-details?hub.callback={{ config['DOMAIN'] }}/api/websub/{{ callbacks[callback].get('id') }}&hub.topic=https://www.youtube.com/xml/feeds/videos.xml?channel_id={{ callbacks[callback].get('channel') }}"><button class="btn-small waves-effect waves-light" title="Information on Pubsubhubbub (external link)">ℹ️</button></a>
|
||||
<form method="post">
|
||||
<input type="text" value="{{ callbacks[callback].get('id') }}" name="value" hidden>
|
||||
<button class="btn-small waves-effect waves-light" type="submit" name="task" value="unsubscribe" title="Send unsubscribe request to hub" {% if callbacks[callback].get('status') != 'active' %}disabled{% endif %}>🗑️</button>
|
||||
|
@@ -25,7 +25,7 @@
|
||||
<div class="card medium black-text">
|
||||
<a href="{{ url_for('watch.base') }}?v={{ video.get('id') }}">
|
||||
<div class="card-image">
|
||||
<img loading="lazy" src="https://archive.ventilaar.net/videos/automatic/{{ video.get('channel_id') }}/{{ video.get('id') }}/{{ video.get('title_slug') }}.jpg">
|
||||
<img loading="lazy" src="https://archive.ventilaar.net/videos/automatic/{{ video.get('channel_id') }}/{{ video.get('id') }}/{{ video.get('_title_slug') }}.jpg">
|
||||
</div>
|
||||
</a>
|
||||
<div class="card-content activator">
|
||||
|
@@ -25,7 +25,7 @@
|
||||
<div class="card medium black-text">
|
||||
<a href="{{ url_for('watch.base') }}?v={{ video.get('id') }}">
|
||||
<div class="card-image">
|
||||
<img loading="lazy" src="https://archive.ventilaar.net/videos/automatic/{{ video.get('channel_id') }}/{{ video.get('id') }}/{{ video.get('title_slug') }}.jpg">
|
||||
<img loading="lazy" src="https://archive.ventilaar.net/videos/automatic/{{ video.get('channel_id') }}/{{ video.get('id') }}/{{ video.get('_title_slug') }}.jpg">
|
||||
</div>
|
||||
</a>
|
||||
<div class="card-content activator">
|
||||
|
@@ -25,7 +25,7 @@
|
||||
<div class="card medium black-text">
|
||||
<a href="{{ url_for('watch.base') }}?v={{ video.get('id') }}">
|
||||
<div class="card-image">
|
||||
<img loading="lazy" src="https://archive.ventilaar.net/videos/automatic/{{ video.get('channel_id') }}/{{ video.get('id') }}/{{ video.get('title_slug') }}.jpg">
|
||||
<img loading="lazy" src="https://archive.ventilaar.net/videos/automatic/{{ video.get('channel_id') }}/{{ video.get('id') }}/{{ video.get('_title_slug') }}.jpg">
|
||||
</div>
|
||||
</a>
|
||||
<div class="card-content activator">
|
||||
|
@@ -14,8 +14,8 @@
|
||||
<div class="row">
|
||||
<div class="col s12 mt-4 center-align">
|
||||
<video controls class="responsive-video">
|
||||
<source src="https://archive.ventilaar.net/videos/automatic/{{ render.get('info').get('channel_id') }}/{{ render.get('info').get('id') }}/{{ render.get('info').get('title_slug') }}.mp4">
|
||||
<source src="https://archive.ventilaar.net/videos/automatic/{{ render.get('info').get('channel_id') }}/{{ render.get('info').get('id') }}/{{ render.get('info').get('title_slug') }}.webm">
|
||||
<source src="https://archive.ventilaar.net/videos/automatic/{{ render.get('info').get('channel_id') }}/{{ render.get('info').get('id') }}/{{ render.get('info').get('_title_slug') }}.mp4">
|
||||
<source src="https://archive.ventilaar.net/videos/automatic/{{ render.get('info').get('channel_id') }}/{{ render.get('info').get('id') }}/{{ render.get('info').get('_title_slug') }}.webm">
|
||||
Your browser does not support the video tag.
|
||||
</video>
|
||||
</div>
|
||||
|
Reference in New Issue
Block a user