ryelogheat / xpbot Goto Github PK
View Code? Open in Web Editor NEWAnalyze a media file, identify the TMDB/IMDB, and generate all the necessary info to upload a torrent to a private tracker using the UNIT3D codebase
Analyze a media file, identify the TMDB/IMDB, and generate all the necessary info to upload a torrent to a private tracker using the UNIT3D codebase
Anyone know any good ways to trigger this projects python upload script using nzb-notify?
nzb-notify uses apprise to send notifications once the nzb file downloads but its all to online services which would require some workarounds to trigger a local bash/python script
I want to be able to use autodl-irrsi & usenet (dognzb "Remote Push") to re-upload media I have filters setup for
If anyone has any good ideas, please comment them below
Site response: {"success":false,"message":"Validation Error.","data":{"season_number":["The season number field is required."],"episode_number":["The episode number field is required."]}}
HTTP response status code: 404
kindly update the bot
hi,
im getting an error when trying to upload to ath, bhd and blu working fine
the api for aither is in the config.env, it was working the version before
╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ /home27/scr4tch/.apps/xpbot-masterttttttttttt/auto_upload.py:1630 in <module> │
│ │
│ 1627 │ if "{tracker}_api_key".format(tracker=str(tracker).lower()) in api_keys_dict: │
│ 1628 │ │ # Make sure that an API key is set for that site │
│ 1629 │ │ try: │
│ ❱ 1630 │ │ │ if len(api_keys_dict[(str(tracker).lower()) + "_api_key"]) <= 1: │
│ 1631 │ │ │ │ raise AssertionError("Provide at least 1 tracker we can upload to (e.g. │
│ 1632 │ │ │ if str(tracker).upper() not in upload_to_trackers: │
│ 1633 │ │ │ │ upload_to_trackers.append(str(tracker).upper()) │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
TypeError: object of type 'NoneType' has no len()
hi i answered on a closed issue, not sure if you have seen it, so i start a new issue here,
im having trouble uploading images,
i did some testing,
Uploading to imgyukle
Uploading... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0% -:--:--
All images uploaded successfully
does not upload anything,
the bbcode_images.txt is empty
imgbox only allows uploading filesizes up to 10 mb (i think)
when the filesize is higher i get this error and the script stops.
Uploading to imgbox
╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ /home27/user/.apps/xpbot-master/./auto_upload.py:1839 in <module> │
│ │
│ 1836 │ media_info_duration = MediaInfo.parse(torrent_info["raw_video_file"] if "raw_video_f │
│ 1837 │ torrent_info["duration"] = str(media_info_duration.duration).split(".", 1)[0] # Thi │
│ 1838 │ # Call function to actually take screenshots & upload them (different file) │
│ ❱ 1839 │ console.print(take_upload_screens(duration=torrent_info["duration"], │
│ 1840 │ │ │ │ │ │ │ │ │ upload_media_import=torrent_info["raw_video_file"] │
│ 1841 │ │ │ │ │ │ │ │ │ torrent_title_import=torrent_info["title"], │
│ 1842 │ │ │ │ │ │ │ │ │ base_path=working_folder, │
│ │
│ /home27/user/.apps/xpbot-master/images/upload_screenshots.py:198 in take_upload_screens │
│ │
│ 195 │ │ # Now we start the actual upload process │
│ 196 │ │ for host_site, host_api in upload_to_host_dict.items(): │
│ 197 │ │ │ # Call the function that actually uploads the images │
│ ❱ 198 │ │ │ upload_status = upload_screens(img_host=host_site, api_key=host_api, working │
│ 199 │ │ │ # Check "thumbs_links_dict" to verify images have uploaded and we have all t │
│ 200 │ │ │ │
│ 201 │ │ │ # if upload_status is equal to "failed" then we simply skip everything below │
│ │
│ /home27/user/.apps/xpbot-master/images/upload_screenshots.py:129 in upload_screens │
│ │
│ 126 │ │ loop = asyncio.get_event_loop() │
│ 127 │ │ loop.run_until_complete(imgbox_upload(list_of_images)) │
│ 128 │ │ │
│ ❱ 129 │ │ logging.info(f"imgbox edit_url: {edit_url[0]}") # log the edit url │
│ 130 │ │
│ 131 │ # return the dict so we can verify the images successfully uploaded and if so then f │
│ 132 │ return thumbs_links_dict │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
IndexError: list index out of range
Originally posted by @solongandthxforallthefish in #11 (comment)
Hello, thank you for this lovely piece of software !!
could you please consider adding my tracker to the list of supported trackers ?
i could provide information / invite
Thanks in advance
Hey, me again and I am terribly sorry for probably opening up some issues now with hopefully not too time consuming requests, however, I tried to use the tool again (the original one) and it worked, but it will only upload into "Motorsport Movies". On our very old version of the upload tool we were able to select the available categories (which are quite a few) and to upload right into it.
I also pushed a commit (is that the right wording?) for the site template, adding our categories + IDs, but using this changed site template gives out a 404 error when uploading files, so I probably screwed something up.
How can we implement all the categories into the script?
hello,
is there a way to make that it does not extract releases, just grabs info from the sample folder? Or add categories option by name?
Describe the bug
Last few uploads all took 6 screenshots but none uploaded to imgbb, switching to freeimage.host fixed the issue
To Reproduce
Steps to reproduce the behavior:
Additional context
upload_screenshots.py is supposed to fall back to the next image host (which was the verified working freeimage.host) if 100% of the screenshots fail to upload. Find out why that didn't happen and what's wrong with imgbb
when dupe check gets a false positive i have to edit the config.env and change check_dupes to false
would it be possible to have an argument to override check_dupes=true to false from the cli,
or can the script ask if a dupe is found to upload anyway?
love the script, thx
For foreign titles, add support for AKA (original title in English alphabet).
Certain trackers (ACM) wants the actual original title in its original foreign characters. Most sites though just want the foreign title sounded out using the English alphabet (IMDB has this)
Consider using https://imdbpy.github.io/
please add Option To Mark Torrent as internal
How to fix this error? Re-installed Python to latest version 3.9.5 doesn't solve the issue.
c:\xpbot\auto_upload.py:1893 in <module> │ │ │ │ 1890 │ │ │ │ │ description.write(line) │ │ 1891 │ │ │ │ │ │ 1892 │ │ │ │ # Finally append the entire thing with some shameless self promotion ;) │ │ > 1893 │ │ │ │ description.write(f' {bbcode_line_break}{bbcode_line_break} Uploaded wit │ │ 1894 │ │ │ │ │ 1895 │ │ │ # Add the finished file to the 'torrent_info' dict │ │ 1896 │ │ │ torrent_info["description"] = f'{working_folder}/temp_upload/description.txt │ │ │ │ C:\Python38\lib\encodings\cp1252.py:19 in encode │ │ │ │ 16 │ │ 17 class IncrementalEncoder(codecs.IncrementalEncoder): │ │ 18 │ def encode(self, input, final=False): │ │ > 19 │ │ return codecs.charmap_encode(input,self.errors,encoding_table)[0] │ │ 20 │ │ 21 class IncrementalDecoder(codecs.IncrementalDecoder): │ │ 22 │ def decode(self, input, final=False): │ └──────────────────────────────────────────────────────────────────────────────────────────────────┘ UnicodeEncodeError: 'charmap' codec can't encode character '\u2764' in position 39: character maps to <undefined>
Given that anon uploading via API is capable on UNIT3D sites. Would be good to see if we can upload via anon via the script to sites.
Sometimes the script cannot differentiate between movie and tv series. Is there any argument/flag that we can parse in the command to manually specify?
New UNIT3d tracker looking for site support https://reelflix.xyz ex http://legacyhd.org
DDP Atmos seems to not get recognized by the script
mediainfo:
Format : E-AC-3 JOC
Format/Info : Enhanced AC-3 with Joint Object Coding
Commercial name : Dolby Digital Plus with Dolby Atmos
Send notifications to Slack or Discord detailing what's being uploaded, torrent title, and final upload status. As well as any errors encountered during the upload process
The auto upload script doesn't seem to be working. I tried to use if, but it doesn't even trigger (since there are no log files generated).
I followed the guide precisely; configured the auto-dl filters exactly. Edited my .rtorrent.rc present in my directory. Renamed rtorrent_on_complete_reupload.sh.sample as well as edited it. Am I missing something or is it broken?
I have installed this script in my seedbox but I am getting a KeyError when it is querying the flask app to convert TMDB/IMDB IDs to MAL IDs,
If I comment out lines 1106 to 1110 to skip this if function, I also run into another KeyError when uploading screenshots.
Both of them seem to error out when receiving a response.
Kindly add support for https://telly.wtf/ thanks for making such a good uploader soft
Can you fix so that the script sends Episode 0 when publishing a seasonal pack?
Hello,
what wouldit take to add a new site to this code?
Would it be possible to add ptpimg.me as an imagehost? I have no idea weather this is possible or not, but I thought I would request it anyway.
upload to imgbox ist not working anymore,
Uploading to imgbox
╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ /home27/user/.apps/xpbot-master/auto_upload.py:1725 in <module> │
│ │
│ 1722 │ media_info_duration = MediaInfo.parse(torrent_info["raw_video_file"] if "raw_video_f │
│ 1723 │ torrent_info["duration"] = str(media_info_duration.duration).split(".", 1)[0] # Thi │
│ 1724 │ # Call function to actually take screenshots & upload them (different file) │
│ ❱ 1725 │ console.print(take_upload_screens(duration=torrent_info["duration"], │
│ 1726 │ │ │ │ │ │ │ │ │ upload_media_import=torrent_info["raw_video_file"] │
│ 1727 │ │ │ │ │ │ │ │ │ torrent_title_import=torrent_info["title"], │
│ 1728 │ │ │ │ │ │ │ │ │ base_path=working_folder, │
│ │
│ /home27/user/.apps/xpbot-master/images/upload_screenshots.py:191 in take_upload_screens │
│ │
│ 188 │ │ # Now we start the actual upload process │
│ 189 │ │ for host_site, host_api in upload_to_host_dict.items(): │
│ 190 │ │ │ # Call the function that actually uploads the images │
│ ❱ 191 │ │ │ upload_status = upload_screens(img_host=host_site, api_key=host_api, working │
│ 192 │ │ │ # Check "thumbs_links_dict" to verify images have uploaded and we have all t │
│ 193 │ │ │ │
│ 194 │ │ │ # if upload_status is equal to "failed" then we simply skip everything below │
│ │
│ /home27/user/.apps/xpbot-master/images/upload_screenshots.py:122 in upload_screens │
│ │
│ 119 │ │ for file in os.listdir(working_folder + "/images/screenshots/"): │
│ 120 │ │ │ list_of_images.append(working_folder + "/images/screenshots/" + file) # app │
│ 121 │ │ asyncio.run(imgbox_upload(list_of_images)) # call the function that uploads ima │
│ ❱ 122 │ │ logging.info(f"imgbox edit_url: {edit_url[0]}") # log the edit url │
│ 123 │ │
│ 124 │ # return the dict so we can verify the images successfully uploaded and if so then f │
│ 125 │ return thumbs_links_dict │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
IndexError: list index out of range
Hi I get my tracker working all fine, but .nfo is not uploaded.
Neither by autodetect or if I give the path to .nfo file.
Hey,
so afaik the software requires you to put either of these above in, howeever, wouldnt it be possible to have sdtv or pdtv included as well?
I'm getting these errors when the program tries to upload the screenshots:
Uploading to imgbox
┌─────────────────────────────── Traceback (most recent call last) ────────────────────────────────┐
│ C:\Users\AppData\Local\Programs\Python\Python37\lib\site-packages\pyimgbox\_gallery.py:263 │
│ in _upload_image │
│ │
│ 260 │ │ │ log.debug('POST response: %s', response) │
│ 261 │ │ │ try: │
│ 262 │ │ │ │ info = response['files'][0] │
│ > 263 │ │ │ │ image_url = info['original_url'] │
│ 264 │ │ │ │ thumbnail_url = info['thumbnail_url'] │
│ 265 │ │ │ │ web_url = info['url'] │
│ 266 │ │ │ except (KeyError, IndexError, TypeError) as e: │
└──────────────────────────────────────────────────────────────────────────────────────────────────┘
KeyError: 'original_url'
The above exception was the direct cause of the following exception:
┌─────────────────────────────── Traceback (most recent call last) ────────────────────────────────┐
│ C:\Users\Desktop\xpbot-master\auto_upload.py:1871 in <module> │
│ │
│ 1868 │ │ │ │ │ │ │ │ │ upload_media_import=torrent_info["raw_video_file"] │
│ 1869 │ │ │ │ │ │ │ │ │ torrent_title_import=torrent_info["title"], │
│ 1870 │ │ │ │ │ │ │ │ │ base_path=working_folder, │
│ > 1871 │ │ │ │ │ │ │ │ │ discord_url=discord_url │
│ 1872 │ │ │ │ │ │ │ │ │ )) │
│ 1873 │ if os.path.exists(f'{working_folder}/temp_upload/bbcode_images.txt'): │
│ 1874 │ │ torrent_info["bbcode_images"] = f'{working_folder}/temp_upload/bbcode_images.txt │
│ │
│ C:\Users\Desktop\xpbot-master\images\upload_screenshots.py:238 in take_upload_screens │
│ │
│ 235 │ │ # Now we start the actual upload process │
│ 236 │ │ for host_site, host_api in upload_to_host_dict.items(): │
│ 237 │ │ │ # Call the function that actually uploads the images │
│ > 238 │ │ │ upload_status = upload_screens(img_host=host_site, api_key=host_api, working │
│ 239 │ │ │ # Check "thumbs_links_dict" to verify images have uploaded and we have all t │
│ 240 │ │ │ │
│ 241 │ │ │ # if upload_status is equal to "failed" then we simply skip everything below │
│ │
│ C:\Users\Desktop\xpbot-master\images\upload_screenshots.py:167 in upload_screens │
│ │
│ 164 │ │ │
│ 165 │ │ # Python 3.6 friendly alternative │
│ 166 │ │ loop = asyncio.get_event_loop() │
│ > 167 │ │ loop.run_until_complete(imgbox_upload(list_of_images)) │
│ 168 │ │ │
│ 169 │ │ logging.info(f"imgbox edit_url: {edit_url[0]}") # log the edit url │
│ │
│ C:\Users\AppData\Local\Programs\Python\Python37\lib\asyncio\base_events.py:587 in │
│ run_until_complete │
│ │
│ 584 │ │ if not future.done(): │
│ 585 │ │ │ raise RuntimeError('Event loop stopped before Future completed.') │
│ 586 │ │ │
│ > 587 │ │ return future.result() │
│ 588 │ │
│ 589 │ def stop(self): │
│ 590 │ │ """Stop running the event loop. │
│ │
│ C:\Users\Desktop\xpbot-master\images\upload_screenshots.py:139 in imgbox_upload │
│ │
│ 136 │ if img_host == "imgbox": │
│ 137 │ │ async def imgbox_upload(list_of_filepath): │
│ 138 │ │ │ async with pyimgbox.Gallery(title=torrent_title, thumb_width=350) as gallery │
│ > 139 │ │ │ │ async for submission in gallery.add(list_of_filepath): │
│ 140 │ │ │ │ │ if not submission['success']: │
│ 141 │ │ │ │ │ │ logging.error(f"{submission['filename']}: {submission['error']}" │
│ 142 │ │ │ │ │ │ return "failed" │
│ │
│ C:\Users\AppData\Local\Programs\Python\Python37\lib\site-packages\pyimgbox\_gallery.py:303 │
│ in add │
│ │
│ 300 │ │ Yield Submission objects asynchronously. │
│ 301 │ │ """ │
│ 302 │ │ for filepath, filetuple, error in self._prepare(*filepaths): │
│ > 303 │ │ │ yield await self._upload_image(filepath, filetuple, error) │
│ 304 │ │
│ 305 │ def __repr__(self): │
│ 306 │ │ return ( │
│ │
│ C:\Users\AppData\Local\Programs\Python\Python37\lib\site-packages\pyimgbox\_gallery.py:268 │
│ in _upload_image │
│ │
│ 265 │ │ │ │ web_url = info['url'] │
│ 266 │ │ │ except (KeyError, IndexError, TypeError) as e: │
│ 267 │ │ │ │ log.debug('Unexpected response: %r', response) │
│ > 268 │ │ │ │ raise RuntimeError(f'Unexpected response: {response!r}') from e │
│ 269 │ │ │ return Submission( │
│ 270 │ │ │ │ filepath=filepath, │
│ 271 │ │ │ │ image_url=image_url, │
└──────────────────────────────────────────────────────────────────────────────────────────────────┘
RuntimeError: Unexpected response: {'files': [{'error': 'image has been banned', 'error_code': 107, 'url': '', 'thumbnail_url': '', 'delete_url': '',
'delete_type': 'DELETE', 'name': 'M.C. Escher', 'size': 0}]}
I made a test with another file and worked, but with this one, I had this problem.
2022-01-23 17:38:40,077 | root | ERROR | freeimage upload failed. JSON Response: {'status_code': 400, 'error': {'message': 'Invalid API v1 key.', 'code': 100, 'context': 'Exception'}, 'status_txt': 'Bad Request'}
2022-01-23 17:38:40,078 | root | CRITICAL | Required Python version to use pyimgbox is: 3.7+ You currently are on 3.6.9
2022-01-23 17:38:40,954 | root | ERROR | imgbb upload failed. JSON Response: {'status_code': 400, 'error': {'message': 'Rate limit reached.', 'code': 100, 'context': 'Exception'}, 'status_txt': 'Bad Request'}
2022-01-23 17:38:41,839 | root | ERROR | freeimage upload failed. JSON Response: {'status_code': 400, 'error': {'message': 'Invalid API v1 key.', 'code': 100, 'context': 'Exception'}, 'status_txt': 'Bad Request'}
2022-01-23 17:38:41,841 | root | CRITICAL | Required Python version to use pyimgbox is: 3.7+ You currently are on 3.6.9
2022-01-23 17:38:42,834 | root | ERROR | imgbb upload failed. JSON Response: {'status_code': 400, 'error': {'message': 'Rate limit reached.', 'code': 100, 'context': 'Exception'}, 'status_txt': 'Bad Request'}
2022-01-23 17:38:43,837 | root | ERROR | freeimage upload failed. JSON Response: {'status_code': 400, 'error': {'message': 'Invalid API v1 key.', 'code': 100, 'context': 'Exception'}, 'status_txt': 'Bad Request'}
2022-01-23 17:38:43,837 | root | CRITICAL | Required Python version to use pyimgbox is: 3.7+ You currently are on 3.6.9
2022-01-23 17:38:44,795 | root | ERROR | imgbb upload failed. JSON Response: {'status_code': 400, 'error': {'message': 'Rate limit reached.', 'code': 100, 'context': 'Exception'}, 'status_txt': 'Bad Request'}
2022-01-23 17:38:45,831 | root | ERROR | freeimage upload failed. JSON Response: {'status_code': 400, 'error': {'message': 'Invalid API v1 key.', 'code': 100, 'context': 'Exception'}, 'status_txt': 'Bad Request'}
2022-01-23 17:38:45,831 | root | CRITICAL | Required Python version to use pyimgbox is: 3.7+ You currently are on 3.6.9
2022-01-23 17:38:46,709 | root | ERROR | imgbb upload failed. JSON Response: {'status_code': 400, 'error': {'message': 'Rate limit reached.', 'code': 100, 'context': 'Exception'}, 'status_txt': 'Bad Request'}
2022-01-23 17:38:47,622 | root | ERROR | freeimage upload failed. JSON Response: {'status_code': 400, 'error': {'message': 'Invalid API v1 key.', 'code': 100, 'context': 'Exception'}, 'status_txt': 'Bad Request'}
2022-01-23 17:38:47,622 | root | CRITICAL | Required Python version to use pyimgbox is: 3.7+ You currently are on 3.6.9
2022-01-23 17:38:47,625 | root | ERROR | 6/6 screenshots failed to upload
Season pack upload is marked as episode while uploading.
Site response:
<title>Server Error</title>
<!-- Fonts -->
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Nunito&display=swap" rel="stylesheet">
<style>
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-t
ext-size-adjust:100%}body{margin:0}a{background-color:transparent}code{font-family:monospace,monospace;font-size:1em}{d
isplay:none}html{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto
Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color
Emoji;line-height:1.5}*,:after,:before{box-sizing:border-box;border:0 solid
#e2e8f0}a{color:inherit;text-decoration:inherit}code{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,mono
space}svg,video{display:block;vertical-align:middle}video{max-width:100%;height:auto}.bg-white{--bg-opacity:1;backgroun
d-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.bg-gray-100{--bg-opacity:1;background-color:#f7fafc;
background-color:rgba(247,250,252,var(--bg-opacity))}.border-gray-200{--border-opacity:1;border-color:#edf2f7;border-co
lor:rgba(237,242,247,var(--border-opacity))}.border-gray-400{--border-opacity:1;border-color:#cbd5e0;border-color:rgba(
203,213,224,var(--border-opacity))}.border-t{border-top-width:1px}.border-r{border-right-width:1px}.flex{display:flex}.
grid{display:grid}.hidden{display:none}.items-center{align-items:center}.justify-center{justify-content:center}.font-se
mibold{font-weight:600}.h-5{height:1.25rem}.h-8{height:2rem}.h-16{height:4rem}.text-sm{font-size:.875rem}.text-lg{font-
size:1.125rem}.leading-7{line-height:1.75rem}.mx-auto{margin-left:auto;margin-right:auto}.ml-1{margin-left:.25rem}.mt-2
{margin-top:.5rem}.mr-2{margin-right:.5rem}.ml-2{margin-left:.5rem}.mt-4{margin-top:1rem}.ml-4{margin-left:1rem}.mt-8{m
argin-top:2rem}.ml-12{margin-left:3rem}.-mt-px{margin-top:-1px}.max-w-xl{max-width:36rem}.max-w-6xl{max-width:72rem}.mi
n-h-screen{min-height:100vh}.overflow-hidden{overflow:hidden}.p-6{padding:1.5rem}.py-4{padding-top:1rem;padding-bottom:
1rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.pt-8{padding-top:2rem}.
fixed{position:fixed}.relative{position:relative}.top-0{top:0}.right-0{right:0}.shadow{box-shadow:0 1px 3px 0
rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.text-center{text-align:center}.text-gray-200{--text-opacity:1;color:#edf2f7
;color:rgba(237,242,247,var(--text-opacity))}.text-gray-300{--text-opacity:1;color:#e2e8f0;color:rgba(226,232,240,var(-
-text-opacity))}.text-gray-400{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,224,var(--text-opacity))}.text-gray-50
0{--text-opacity:1;color:#a0aec0;color:rgba(160,174,192,var(--text-opacity))}.text-gray-600{--text-opacity:1;color:#718
096;color:rgba(113,128,150,var(--text-opacity))}.text-gray-700{--text-opacity:1;color:#4a5568;color:rgba(74,85,104,var(
--text-opacity))}.text-gray-900{--text-opacity:1;color:#1a202c;color:rgba(26,32,44,var(--text-opacity))}.uppercase{text
-transform:uppercase}.underline{text-decoration:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font
-smoothing:grayscale}.tracking-wider{letter-spacing:.05em}.w-5{width:1.25rem}.w-8{width:2rem}.w-auto{width:auto}.grid-c
ols-1{grid-template-columns:repeat(1,minmax(0,1fr))}@-webkit-keyframes
spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@Keyframes
spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@-webkit-keyframes
ping{0%{transform:scale(1);opacity:1}75%,to{transform:scale(2);opacity:0}}@Keyframes
ping{0%{transform:scale(1);opacity:1}75%,to{transform:scale(2);opacity:0}}@-webkit-keyframes
pulse{0%,to{opacity:1}50%{opacity:.5}}@Keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@-webkit-keyframes bounce{0%,to
{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-be
zier(.8,0,1,1)}50%{transform:translateY(0);-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-fu
nction:cubic-bezier(0,0,.2,1)}}@Keyframes bounce{0%,to{transform:translateY(-25%);-webkit-animation-timing-function:cu
bic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);-webkit-animation-tim
ing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}@media (min-width:640px){.sm:rou
nded-lg{border-radius:.5rem}.sm:block{display:block}.sm:items-center{align-items:center}.sm:justify-start{justify-co
ntent:flex-start}.sm:justify-between{justify-content:space-between}.sm:h-20{height:5rem}.sm:ml-0{margin-left:0}.sm:
px-6{padding-left:1.5rem;padding-right:1.5rem}.sm:pt-0{padding-top:0}.sm:text-left{text-align:left}.sm:text-right{te
xt-align:right}}@media (min-width:768px){.md:border-t-0{border-top-width:0}.md:border-l{border-left-width:1px}.md:gr
id-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media
(min-width:1024px){.lg:px-8{padding-left:2rem;padding-right:2rem}}@media (prefers-color-scheme:dark){.dark:bg-gray-80
0{--bg-opacity:1;background-color:#2d3748;background-color:rgba(45,55,72,var(--bg-opacity))}.dark:bg-gray-900{--bg-opa
city:1;background-color:#1a202c;background-color:rgba(26,32,44,var(--bg-opacity))}.dark:border-gray-700{--border-opaci
ty:1;border-color:#4a5568;border-color:rgba(74,85,104,var(--border-opacity))}.dark:text-white{--text-opacity:1;color:#
fff;color:rgba(255,255,255,var(--text-opacity))}.dark:text-gray-400{--text-opacity:1;color:#cbd5e0;color:rgba(203,213,
224,var(--text-opacity))}}
</style>
<style>
body {
font-family: 'Nunito', sans-serif;
}
</style>
</head>
<body class="antialiased">
<div class="relative flex items-top justify-center min-h-screen bg-gray-100 dark:bg-gray-900 sm:items-center
sm:pt-0">
<div class="ml-4 text-lg text-gray-500 uppercase tracking-wider">
Server Error </div>
</div>
</div>
</div>
</body>
HTTP response status code: 500
The upload might have failed, the site isn't returning the uploads status
when i add these lines in my .rtorrent.rc file it will not start after i restart rtorrent.
method.insert = d.data_path, simple, "if=(d.is_multi_file), (cat,(d.directory),/), (cat,(d.directory),/,(d.name))"
/home/fookas/xpbot-master/rtorrent_on_complete_reupload.sh
method.set_key = event.download.finished,complete,"execute=/home/fookas/xpbot-master/rtorrent_on_complete_reupload.sh,$d.name=,$d.data_path=,$d.custom1=,$d.custom=upload_to_tracker"
can you send your email or telegram?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.