/ readme.md
readme.md
1 # Aliases: whipped_love / whippedlove 2 3 ## Real name: Morgan Pietras 4 5 ### Full name: Morgan Taylor Pietras 6 7 # Onlyfans leak: 8 9 https://buzzheavier.com/fuorv1yrxw3d 10 11 https://onlyfans.com/whippedlove 12 13 snap @whipped_love | Twitter @Love_whipped 14 15 # Her address: 16 17 1341 E 41st St 18 Erie PA 16504 19 20 # Twitter: 21 22 https://xcancel.com/love_whipped 23 24 https://web.archive.org/web/*/http://twitter.com/love_whipped/status/* 25 26 # Snap: 27 28 https://www.snapchat.com/@whipped_love 29 30 # Facebook: 31 32 https://www.facebook.com/morgan.pietras.58 33 34 Guessed with some IMINT and public records. 35 36 https://ujsportal.pacourts.us/Report/MdjDocketSheet?docketNumber=MJ-06104-LT-0000306-2025&dnh=e%2Bb%2BXhb%2Bio1mMOewyoA1Wg%3D%3D 37 38 # to run your own shit: 39 40 https://rentry.co/vp2in943 41 42 check this thread here 43 44 https://chan.kemono.party/coomer/res/9766.html 45 46 https://chan.kemono.party/kemono/res/67260.html 47 48 ### yml file for compose, create this first; edits are welcome!: 49 50 version: '3.8' 51 52 services: 53 radicle: 54 image: ff0x/radicle:latest 55 container_name: radicle-seed 56 restart: unless-stopped 57 environment: 58 + RAD_ALIAS=anon 59 volumes: 60 + radicle-data:/app/radicle 61 # Mount with read-write permissions to a physical drive 62 + /value/value/value/value/value/value:/var/lib/radicle/targetdir:rw 63 ports: 64 + "8776:8776" 65 + "8777:8777" 66 networks: 67 + radicle-network 68 69 volumes: 70 radicle-data: 71 name: radicle-data 72 73 networks: 74 radicle-network: 75 name: radicle-network 76 driver: bridge 77 78 ### to run everything do this: 79 80 docker compose up -d && docker exec -it radicle-seed /bin/ash 81 82 ### shut it down goyim. 83 84 docker compose down 85 86 ## Vids, provide the filename with it; provided with catbox upload as an option: 87 88 "./upload/Videos.part01.rar" : https://files.catbox.moe/pxqt7a.rar 89 "./upload/Videos.part02.rar" : https://files.catbox.moe/o3oqyh.rar 90 "./upload/Videos.part03.rar" : https://files.catbox.moe/1gkywr.rar 91 "./upload/Videos.part04.rar" : https://files.catbox.moe/8zpcno.rar 92 "./upload/Videos.part05.rar" : https://files.catbox.moe/2ktb4l.rar 93 "./upload/Videos.part06.rar" : https://files.catbox.moe/zcw87y.rar 94 "./upload/Videos.part07.rar" : https://files.catbox.moe/h6t1bu.rar 95 "./upload/Videos.part08.rar" : https://files.catbox.moe/2e14mx.rar 96 "./upload/Videos.part09.rar" : https://files.catbox.moe/am7pf9.rar 97 "./upload/Videos.part10.rar" : https://files.catbox.moe/8f4ccn.rar 98 "./upload/Videos.part11.rar" : https://files.catbox.moe/lzcgrs.rar 99 "./upload/Videos.part12.rar" : https://files.catbox.moe/qluqnn.rar 100 "./upload/Videos.part13.rar" : https://files.catbox.moe/d0gblc.rar 101 "./upload/Videos.part14.rar" : https://files.catbox.moe/jwuksd.rar 102 "./upload/Videos.part15.rar" : https://files.catbox.moe/e8xeto.rar 103 104 ## Use jdownloader2 and extract into wherever, do not extract into a sub dir; just enter a package name and disable auto extraction. 105 106 i=1; for f in *.rar; do [ -f "$f" ] || continue; mv "$f" "$(printf "Videos.part%03d.rar" $i)"; i=$((i+1)); done 107 108 ## Shell scripts/vid info: 109 110 ### checksums, always ALWAYS provide these otherwise you're trans: 111 112 818685619837df9e37acba3760d69692f7bd75e49a33724322d1b3aba5b625a7 Videos.part01.rar 113 fcc99f4709e62b18e8dcfb201fef0336468a3e7faa012742ca1582a4f5125116 Videos.part02.rar 114 3bb805dccac4330055282bb9e4ec1eee8f34c1a5ce04b264ce5ac8cf8f41697c Videos.part03.rar 115 edb7068faa4995065a79ca49299e49dfbc981d55b3abde1c4839cf9b736fc38c Videos.part04.rar 116 8fc1c6168dcf8ef76cf57e2ebd3bc51ade64a60bc73e0d0f7178d66377197267 Videos.part05.rar 117 a72ebdf64e3dcd8e058119be445bd58110b492785c5c0d959e57e71391882441 Videos.part06.rar 118 126b946d2d7e3dbb2f48f8d01566e8dc1ebe0356d77a0f9606b61f79921fbaeb Videos.part07.rar 119 7e96b0b2d2b062bd061219695ebe5a56f3a6f022318db69796145338ef590cf7 Videos.part08.rar 120 5476ee5772b6777637072726ac3356f129db617929dad5f1c4de1953d3ddf925 Videos.part09.rar 121 9787942ca4e7938f0a10b4e9e08ba4ce0defed865e3015ff9dd7f782534b4436 Videos.part10.rar 122 a6b620fecf6472949d31225ba24f7ba49f78eb6f6e4cbffd495b94a92dd184be Videos.part11.rar 123 aa81e4c6b2b22a6b883e9ca14b940a9dca2088d8d75ab0ffaca253dbadba65b4 Videos.part12.rar 124 dcbe379c30b15f4d25b9e66bcd52cf0d839b85931f1d3bc004144d430d6af6a7 Videos.part13.rar 125 ce9d598f2f1b212ecc80644155e085b109acfc039c32d6b47a4fe1afe45bcbd3 Videos.part14.rar 126 f4592b7c7bb7567926f535fcf05675d8af31d74449dbfa74e90b6d191d042990 Videos.part15.rar 127 128 3858384470 209715200 Videos.part01.rar 129 1806361138 209715200 Videos.part02.rar 130 3962459451 209715200 Videos.part03.rar 131 656176106 209715200 Videos.part04.rar 132 3246287787 209715200 Videos.part05.rar 133 958825508 209715200 Videos.part06.rar 134 2236850233 209715200 Videos.part07.rar 135 3169408941 209715200 Videos.part08.rar 136 858133467 209715200 Videos.part09.rar 137 3510469290 209715200 Videos.part10.rar 138 4217100611 209715200 Videos.part11.rar 139 823605320 209715200 Videos.part12.rar 140 289583675 209715200 Videos.part13.rar 141 3357929346 209715200 Videos.part14.rar 142 1687462788 30862299 Videos.part15.rar 143 144 145 ## To verify the checksums: 146 147 #!/bin/bash 148 149 # Usage: ./checksum.sh provided_checksums.txt 150 REF_FILE=$1 151 152 if [ ! -f "$REF_FILE" ]; then 153 echo "Error: Reference file '$REF_FILE' not found." 154 exit 1 155 fi 156 157 echo "--- Starting Smart Verification ---" 158 echo "This will show which original part each file corresponds to" 159 echo "----------------------------------------" 160 161 for file in *.rar; do 162 [ -e "$file" ] || continue 163 164 # Calculate local hashes 165 sha_val=$(sha256sum "$file" | awk '{print $1}') 166 ck_val=$(cksum "$file" | awk '{print $1}') 167 size=$(stat -c %s "$file" 2>/dev/null || stat -f %z "$file" 2>/dev/null) 168 169 # Find matching line in reference file 170 matched_line=$(grep "$sha_val" "$REF_FILE" | head -1) 171 172 if [ -n "$matched_line" ]; then 173 # Extract the original filename from the matched line (last field) 174 original_name=$(echo "$matched_line" | awk '{print $NF}') 175 echo -e "\e[32m✓ $file\e[0m → $original_name (Size: $size bytes)" 176 else 177 echo -e "\e[31m✗ $file\e[0m - No matching hash found in reference file!" 178 echo " Hash: $sha_val" 179 fi 180 done 181 182 echo "----------------------------------------" 183 echo "Verification complete: All files are intact." 184 185 ## Commit 186 187 #!/bin/sh 188 189 # Be sure you're not in the target dir, just in the home dir please. 190 mkdir ~/init && cd ~/init && cp -R ~/targetdir/* ./ 191 192 # Initialize git repository (in current directory /var/lib/radicle/init) 193 git init 194 195 # Set git global config 196 git branch -m main 197 git config --global user.email "you@example.com" 198 git config --global user.name "Your Name" 199 200 # Increase buffer size 201 git config --global http.postBuffer 524288000 202 203 # this commit message can be anything really. 204 # add the shit you need with git add 205 git add readme.md Images cksum.sh 206 git commit -m "Tell Crystal I said Hi and I won in the end lol, from an Inglourious /b/tard." 207 208 # THEN: Run rad init 209 rad init 210 211 sleep 20 212 rad self 213 sleep 20 214 rad node status 215 216 ## Py scripts 217 218 ``` 219 # A modified catbox uploader, more clean and less messy. 220 import os 221 import requests 222 from datetime import datetime 223 224 credits=""" 225 This program is made and maintained by Andrew 226 This program is open source and free to use 227 MIT @ 2025 228 Support me by Starring the project & following me on Github: 229 - https://github.com/Andrewgxgx/catbox.moe 230 - https://github.com/Andrewgxgx 231 """ 232 api = "https://catbox.moe/user/api.php" 233 api_litterbox="https://litterbox.catbox.moe/resources/internals/api.php" 234 os_unix="/" 235 os_windows="\\" 236 control=0 237 start=0 238 formatting = 2 # Default formatting 239 user_os = os_unix # Default OS 240 241 def get_user_preferences(): 242 global user_os, control 243 while True: 244 print("""Please choose your OS: 245 1. Windows 246 2. Unix (Linux, MacOS) 247 3. Temple OS 248 4. Other 249 Type the number of your choice. 250 """) 251 Preferences = input("Enter a number 1 to 4: ") 252 if Preferences == "1": 253 user_os = os_windows 254 break 255 elif Preferences == "2": 256 user_os = os_unix 257 break 258 elif Preferences == "3": 259 print("Hello Terry Davis, We currently don't support Temple OS") 260 print("Exiting...") 261 control = 1 262 exit() 263 elif Preferences == "4": 264 user_os = os_unix 265 print("Using Unix-style paths as default") 266 break 267 else: 268 print("Please type 1, 2, 3, or 4") 269 270 def format(): 271 global formatting, start 272 print(""" 273 How would you like to format your links? 274 1. <file path>: <link> 275 2. <link> 276 3. <numbered list>. <link> 277 4. <Timestamp (hh:mm:ss)> : <File path> : <Link> 278 5. <custom string (user input)> : <link> 279 """) 280 try: 281 formatting = int(input("Enter a number 1 to 5: ")) 282 start = 0 283 except ValueError: 284 print("Invalid input, using default format (link only)") 285 formatting = 2 286 287 def check_upload_folder(): 288 """Check if upload folder exists and warn if empty""" 289 folder_path = f".{user_os}upload" 290 if not os.path.exists(folder_path): 291 print(f"Warning: Folder '{folder_path}' does not exist!") 292 create = input("Create it now? (Y/N): ") 293 if create.upper() in ["Y", "YES", "YE"]: 294 os.makedirs(folder_path) 295 print(f"Created {folder_path}. Please add files to upload and run again.") 296 exit() 297 else: 298 print("Exiting...") 299 exit() 300 return folder_path 301 302 def save_links_to_file(content): 303 """Save links, ALWAYS overwriting the existing file""" 304 try: 305 with open("uploaded_links.txt", "w", encoding='utf-8') as f: 306 f.write(content) 307 print("✅ Links saved to uploaded_links.txt (file overwritten)") 308 except Exception as e: 309 print(f"❌ Error saving to file: {str(e)}") 310 311 def get_files_from_folder(): 312 """Get list of files from upload folder""" 313 folder_path = check_upload_folder() 314 files_to_upload = [] 315 316 print("\nScanning for files...") 317 for root, dirs, files in os.walk(folder_path): 318 for file in files: 319 file_path = os.path.join(root, file) 320 print(f"Found: {file_path}") 321 files_to_upload.append(file_path) 322 323 if not files_to_upload: 324 print("No files found in upload folder!") 325 return [] 326 327 print(f"\nFound {len(files_to_upload)} file(s)") 328 confirm = input("Upload these files? (Y/N): ") 329 330 if confirm.upper() in ["Y", "YES", "YE", "YEAH"]: 331 return files_to_upload 332 return [] 333 334 def upload_to_service(api_url, data, files): 335 """Wrapper for requests.post""" 336 try: 337 return requests.post(api_url, data=data, files=files) 338 except Exception as e: 339 print(f"Network error: {str(e)}") 340 return None 341 342 def process_uploads(files_to_upload, upload_function, additional_data=None): 343 """Generic upload processor""" 344 global start, formatting 345 346 all_links = "" 347 total_files = len(files_to_upload) 348 349 for idx, file_path in enumerate(files_to_upload, 1): 350 print(f"Uploading [{idx}/{total_files}]: {file_path}") 351 352 try: 353 with open(file_path, "rb") as item: 354 files = {"fileToUpload": item} 355 data = {"reqtype": "fileupload"} 356 if additional_data: 357 data.update(additional_data) 358 359 response = upload_function(data, files) 360 361 if response and response.status_code == 200: 362 link = response.text.strip() 363 364 if formatting == 1: 365 formatting_write = f'"{file_path}" : {link}\n' 366 elif formatting == 2: 367 formatting_write = f"{link}\n" 368 elif formatting == 3: 369 start += 1 370 formatting_write = f"{start}. {link}\n" 371 elif formatting == 4: 372 current_time = datetime.now().strftime("%H:%M:%S") 373 formatting_write = f"[{current_time}]: {file_path} : {link}\n" 374 elif formatting == 5: 375 write = input("Put text before the link: ") 376 formatting_write = f"{write} : {link}\n" 377 else: 378 formatting_write = f"{link}\n" 379 380 all_links += formatting_write 381 print(f"✓ Uploaded: {link}") 382 else: 383 print(f"✗ Failed to upload: {file_path}") 384 385 except Exception as e: 386 print(f"✗ Error uploading {file_path}: {str(e)}") 387 388 if all_links: 389 save_links_to_file(all_links) 390 print(f"\n✅ Successfully uploaded {len(files_to_upload)} files") 391 else: 392 print("\n❌ No files were uploaded successfully") 393 394 def upload_links(): 395 """Handle URL uploads - ALWAYS OVERWRITES the file""" 396 all_links = "" 397 print("\nEnter links to upload (type 'done' when finished):") 398 while True: 399 enter_links = input("Link: ") 400 if enter_links.lower() == "done": 401 break 402 403 data = {"reqtype": "urlupload", "url": enter_links} 404 response = upload_to_service(api, data, None) 405 406 if response and response.status_code == 200: 407 print(f"✓ Uploaded: {response.text}") 408 all_links += f"{response.text}\n" 409 else: 410 print("✗ Failed to upload link") 411 412 if all_links: 413 save_links_to_file(all_links) 414 else: 415 print("No links were uploaded") 416 417 def upload_links_with_account(account): 418 """Handle URL uploads with account - ALWAYS OVERWRITES the file""" 419 all_links = "" 420 print("\nEnter links to upload (type 'done' when finished):") 421 while True: 422 enter_links = input("Link: ") 423 if enter_links.lower() == "done": 424 break 425 426 data = { 427 "reqtype": "urlupload", 428 "userhash": account, 429 "url": enter_links 430 } 431 response = upload_to_service(api, data, None) 432 433 if response and response.status_code == 200: 434 print(f"✓ Uploaded: {response.text}") 435 all_links += f"{response.text}\n" 436 else: 437 print("✗ Failed to upload link") 438 439 if all_links: 440 save_links_to_file(all_links) 441 else: 442 print("No links were uploaded") 443 444 def catbox_no_acc(): 445 linkornot = input("Upload via link? (Y/N): ") 446 447 if linkornot.upper() in ["Y", "YE", "YES"]: 448 upload_links() 449 else: 450 files_to_upload = get_files_from_folder() 451 if files_to_upload: 452 format() 453 process_uploads( 454 files_to_upload, 455 lambda d, f: upload_to_service(api, d, f) 456 ) 457 458 def catbox_with_acc(): 459 account = input("Enter your account hash: ") 460 if not account: 461 print("Account hash required!") 462 return 463 464 linkornot = input("Upload via link? (Y/N): ") 465 466 if linkornot.upper() in ["Y", "YE", "YES"]: 467 upload_links_with_account(account) 468 else: 469 files_to_upload = get_files_from_folder() 470 if files_to_upload: 471 format() 472 process_uploads( 473 files_to_upload, 474 lambda d, f: upload_to_service(api, d, f), 475 {"userhash": account} 476 ) 477 478 def litterbox(): 479 files_to_upload = get_files_from_folder() 480 if not files_to_upload: 481 return 482 483 time_options = {"1h", "12h", "24h", "72h"} 484 while True: 485 time = input("Upload duration? (1h, 12h, 24h, 72h): ").lower() 486 if time in time_options: 487 break 488 print("Invalid duration. Please enter 1h, 12h, 24h, or 72h") 489 490 format() 491 process_uploads( 492 files_to_upload, 493 lambda d, f: upload_to_service(api_litterbox, d, f), 494 {"time": time} 495 ) 496 497 def menu(): 498 global control 499 print(f""" 500 {credits} 501 ========= 502 Welcome to CATBOX & Litterbox Uploader! 503 Choose your options! 504 1. Upload to Catbox.moe (No account, perma) 505 2. Upload to Catbox.moe (with account) 506 3. Upload to Litterbox (temp upload) 507 4. Exit / Stop program 508 ==== 509 Note: uploaded_links.txt will be OVERWRITTEN each time you upload! 510 """) 511 512 try: 513 opt = int(input("Type 1,2,3 or 4: ")) 514 if opt == 1: 515 print("Catbox - no account") 516 catbox_no_acc() 517 elif opt == 2: 518 print("Catbox - with account") 519 catbox_with_acc() 520 elif opt == 3: 521 print("Upload to LitterBox") 522 litterbox() 523 elif opt == 4: 524 print("Exiting...") 525 control = 1 526 else: 527 print("Invalid option. Please enter 1-4") 528 except ValueError: 529 print("Please enter a valid number") 530 531 # Main program 532 if __name__ == "__main__": 533 print(credits) 534 print("Welcome to the Catbox Uploader") 535 print("Please choose your OS first, before getting started") 536 get_user_preferences() 537 538 folder_path = f".{user_os}upload" 539 if not os.path.exists(folder_path): 540 os.makedirs(folder_path) 541 print(f"Created upload folder: {folder_path}") 542 print("Please add files to upload and run again.") 543 exit() 544 545 while control == 0: 546 menu() 547 if control != 1: 548 input("\nPress Enter to continue...") 549 550 print("\n" + credits) 551 print("Thank you for using the Catbox Uploader") 552 print("Exiting...") 553 ``` 554 555 ***Uploading may take a while depending on size of the pussy*** 556 557 # fix the container on the host drive for the directory it's mounted on docker. 558 559 ## Suppose container runs as UID 1000, GID 1000: 560 561 ## First verify, if it's ID 1000, GID 1000 it isn't owned by the container. 562 563 ls -lh 564 565 ## Then do this 566 567 sudo chown -R 1000:1000 /folder && sudo chmod -R 777 /folder 568 569 ## Copy paste from the thread(s): 570 571 /kemono/ 572 573 Creators suddenly deleting everything for whatever reason? Worried about losing content at any time? 574 575 https://wiki.archiveteam.org 576 577 https://archive.today 578 579 https://web.archive.org 580 581 TPB (please post if current node goes down, build src: https://git.sr.ht/~kycklingar/PBooru) 582 583 Sharing your paid stuff with others (thanks Zodiac from /coomer/) 584 585 https://fmhy.net 586 587 https://radicle.xyz 588 589 https://bunkr.cr (use bunkr-albums if it's down) 590 591 https://catbox.moe 592 593 Feel free to list all other alternatives for others to join and help. Whenever you see something, try and archive it right away - don't wait until it is gone. Archive often and make sure you use snapshot support to prevent bad actors from overwriting content. 594 595 Creators who actually want to archive their stuff instead of bitching and moaning about piracy are welcome. Thanks guys. 596 597 buzzheavier.com/ 598 599 mega.io/ 600 601 https://fmhy.net/file-tools#cloud-storage 602 603 https://fmhy.net/file-tools#mega-tools 604 605 https://gitlab.com/grrfe/cockli-gen 606 607 https://fmhy.xyz/internet-tools#archiving 608 609 https://archivebox.io/ 610 611 https://github.com/datawhores/OF-Scraper 612 613 https://github.com/patrickkfkan/patreon-dl 614 615 https://fmhy.net/linux-macos#server-selfhosting 616 617 https://github.com/karimawi/CatboxUploader (see above) 618 619 Also don't forget to clone with either rad or git to preserve the data and circulate it; you can also do so with rad fork like git but I have no idea how that works. 620 621 So it's best off to create a new radicle repo with rad init instead and place the files that way, be sure to delete the .git/ dir and start from scratch when cloned. 622 623 Also be sure that git "knows" who you are before entering a commit with changes, just run the script it will be the first time doing this really (you deleted the git dir remember?) 624 625 Also would note that in radicle seed status is where your stuff is, it can take a while so keep the docker container running for a bit to collect peers. 626 627 # Trouble shooting: 628 629 ## to show 630 631 docker network ls 632 633 docker volume ls 634 635 docker container ls 636 637 ## Remove 638 639 docker container ls 640 641 docker volume ls 642 643 docker network ls 644 645 ## see what's running 646 647 docker ps -all 648 649 for all the commands issue the command in the respected command such as rad or docker. 650 651 Also I think the sharty noticed, nice gem: 652 653 https://soybooru.com/post/view/10707#search=zodiac 654 655 https://soyjakwiki.org/Dailyjak:January_15,_2026 656 657 - Zodiac