Scripts
This commit is contained in:
parent
ec441cf714
commit
350610c45b
16 changed files with 1562 additions and 0 deletions
297
script/Pictures/manga/manga.yaml
Normal file
297
script/Pictures/manga/manga.yaml
Normal file
|
@ -0,0 +1,297 @@
|
|||
---
|
||||
mangadex:
|
||||
- url: "https://mangadex.org/title/658b9adf-33c5-439d-9df3-9650c0649bf9"
|
||||
name: Mazumeshi Elf to Yuboku gurashi
|
||||
volume: true
|
||||
- url: "https://mangadex.org/title/7c418a1c-9241-451e-995a-31f673b4340a"
|
||||
name: Maou-jou de Oyasumi
|
||||
- url: "https://mangadex.org/title/d4ff7502-b5d4-4fd2-845f-c8754b14dd8d"
|
||||
name: Machikado Mazoku
|
||||
volume: true
|
||||
group: "'Sunrise Arrow'"
|
||||
- url: "https://mangadex.org/title/b0b721ff-c388-4486-aa0f-c2b0bb321512"
|
||||
name: Sousou no Frieren
|
||||
volume: true
|
||||
- url: "https://mangadex.org/title/3df1a9a3-a1be-47a3-9e90-9b3e55b1d0ac"
|
||||
name: Boku no Kokoro no Yabai Yatsu
|
||||
volume: true
|
||||
- url: "https://mangadex.org/title/190616bc-7da6-45fd-abd4-dd2ca656c183"
|
||||
name: Ganbare, Douki-chan
|
||||
- url: "https://mangadex.org/title/a77742b1-befd-49a4-bff5-1ad4e6b0ef7b"
|
||||
name: Chainsaw Man
|
||||
volume: true
|
||||
- url: "https://mangadex.org/title/d7037b2a-874a-4360-8a7b-07f2899152fd"
|
||||
name: Mairimashita! Iruma-kun
|
||||
volume: true
|
||||
- url: "https://mangadex.org/title/dce64fa7-28b5-42a4-8810-149391adfae7"
|
||||
name: The Rise of the Unemployed Wise Man
|
||||
- url: "https://mangadex.org/title/3ecd78d9-c686-46f8-8e74-d91a3d7e7958"
|
||||
name: Ueno-san wa Bukiyou
|
||||
volume: true
|
||||
- url: "https://mangadex.org/title/509b1474-cb0a-4f9d-8ca4-95cb44c9b8db"
|
||||
name: Boku no Tsuma wa Kanjou ga Nai
|
||||
volume: true
|
||||
- url: "https://mangadex.org/title/1e6ef441-f72b-4337-94d5-73b111406a3e"
|
||||
name: Tonari no Kyuuketsuki-san
|
||||
volume: true
|
||||
- url: "https://mangadex.org/title/c3f9ce13-c465-48f2-9480-c4ce47d89b3d"
|
||||
name: My Childhood Friend the Vampire
|
||||
- url: "https://mangadex.org/title/8847f905-550d-4fe6-bcda-ac2b896789c7"
|
||||
name: Golden Kamuy
|
||||
- url: "https://mangadex.org/title/4e7a4a0f-8391-4069-839b-de2352297dab"
|
||||
name: A Couple of Cuckoos
|
||||
- url: "https://mangadex.org/title/47c8e8a2-97fc-415e-aa78-f02b276612e2"
|
||||
name: Sore wa rei no Shiwaza desu
|
||||
- url: "https://mangadex.org/title/eeea01ed-4838-45ca-8e90-88d6f6e95603"
|
||||
name: Cuprum’s Bride
|
||||
- url: "https://mangadex.org/title/a944aace-6f03-4298-b864-aee895acab28"
|
||||
name: Endo and Kobayashi’s Live Commentary on the Villainess
|
||||
volume: true
|
||||
- url: "https://mangadex.org/title/a96676e5-8ae2-425e-b549-7f15dd34a6d8"
|
||||
name: Komi-san wa Komyushou Desu.
|
||||
- url: "https://mangadex.org/title/88eb1a22-3b66-4a72-b786-0864a56902b5"
|
||||
name: Sumire 17-sai!!
|
||||
completed: true
|
||||
- url: "https://mangadex.org/title/66102488-d47f-423b-8cb6-44e98cdb0ad3"
|
||||
name: Sumire 16-sai!!
|
||||
completed: true
|
||||
- url: "https://mangadex.org/title/efb4278c-a761-406b-9d69-19603c5e4c8b"
|
||||
name: The 100 Girlfriends Who Really, Really, Really, Really, Really Love You
|
||||
volume: true
|
||||
- url: "https://mangadex.org/title/881fccb1-e60c-4c82-b64c-28f709545174"
|
||||
name: Medaka Box
|
||||
volume: true
|
||||
- url: "https://mangadex.org/title/6670ee28-f26d-4b61-b49c-d71149cd5a6e"
|
||||
name: Mieruko-chan
|
||||
volume: true
|
||||
- url: "https://mangadex.org/title/60e6eb5e-6798-4614-928f-064e65aabe16"
|
||||
name: Jishou Akuyaku Reijou na Konyakusha no Kansatsu Kiroku
|
||||
volume: true
|
||||
- url: "https://mangadex.org/title/ef96c21c-6838-43d1-9b6e-cb30546bba8c"
|
||||
name: Spirit Circle
|
||||
completed: true
|
||||
- url: "https://mangadex.org/title/af38f328-8df1-4b4c-a272-e737625c3ddc"
|
||||
name: Senpai ga Uzai Kouhai no Hanashi
|
||||
group: "'White Cat Scanlations', 'STALKER Scanlation'"
|
||||
- url: "https://mangadex.org/title/878634d2-ea39-4001-a4bf-31458020d16a"
|
||||
name: Villainess Level 99 ~I May Be the Hidden Boss but I'm Not the Demon Lord~
|
||||
volume: true
|
||||
- url: "https://mangadex.org/title/a50aa56e-2655-4404-8232-e4970ee63e27"
|
||||
name: Rokudou no Onna-tachi
|
||||
volume: true
|
||||
- url: "https://mangadex.org/title/b84a9c69-624b-4c4f-ac57-8d9a162883f1"
|
||||
name: Useless Ponko
|
||||
volume: true
|
||||
- url: "https://mangadex.org/title/19465f6a-1c11-4179-891e-68293402b883"
|
||||
name: Murenase! Shiiton Gakuen
|
||||
- url: "https://mangadex.org/title/d90ea6cb-7bc3-4d80-8af0-28557e6c4e17"
|
||||
name: Dungeon Meshi
|
||||
volume: true
|
||||
- url: "https://mangadex.org/title/3fbeec9f-9c47-4565-8f79-972807c99279"
|
||||
name: Sengoku Youko
|
||||
volume: true
|
||||
- url: "https://mangadex.org/title/6ebe8b8a-7bac-45f0-8652-4b9d52b95644"
|
||||
name: Hoshi no Samidare
|
||||
volume: true
|
||||
- url: "https://mangadex.org/title/fd604f6e-a784-4c6b-ab00-565a996c33f8"
|
||||
name: Ryuu to Yuusha to Haitatsunin
|
||||
volume: true
|
||||
- url: "https://mangadex.org/title/57b8b608-1026-4cab-ad6a-28d796eca663"
|
||||
name: Little Girl x Scoop x Evil Eye
|
||||
- url: "https://mangadex.org/title/18649fc7-410f-4509-9283-2e5d2a4cf2d4"
|
||||
name: Giri-Giri Saegiru Katagirisan
|
||||
completed: true
|
||||
- url: "https://mangadex.org/title/9ef97eba-e0bc-452c-9ed0-bfb645d9b536"
|
||||
name: Hitoribocchi no ○○ Seikatsu
|
||||
volume: true
|
||||
- url: "https://mangadex.org/title/0b68801b-2daa-44d8-b0c5-d909c27928b3"
|
||||
name: The Troubles of a Fortune Teller
|
||||
- url: "https://mangadex.org/title/84703c86-eb83-45ec-8fc5-f34a25115893"
|
||||
name: Dai Dark
|
||||
volume: true
|
||||
- url: "https://mangadex.org/title/cade38b7-64c4-4a29-8e3c-8c283291d6c6"
|
||||
name: Houseki no Kuni
|
||||
hiatus: true
|
||||
- url: "https://mangadex.org/title/cedc7401-8c70-4057-b14a-4ecbbcd73945"
|
||||
name: Otoyomegatari
|
||||
hiatus: true
|
||||
- url: "https://mangadex.org/title/59a592fa-91fa-4486-a05b-8c947a1b20eb"
|
||||
name: Taimashi to Akuma-chan
|
||||
volume: true
|
||||
- url: "https://mangadex.org/title/d86cf65b-5f6c-437d-a0af-19a31f94ec55"
|
||||
name: Ijiranaide, Nagatoro-san
|
||||
volume: true
|
||||
- url: "https://mangadex.org/title/d8f1d7da-8bb1-407b-8be3-10ac2894d3c6"
|
||||
name: Isekai Ojisan
|
||||
group: "'Striptease', 'Kontol ✓', 'Dead Elf Scans', 'Big Chungus Scans', 'Isekai Ojiscan', 'Afiaki', 'Unko Scans', 'alt.ver.', 'no group', '/a/nonymous'"
|
||||
- url: "https://mangadex.org/title/eeb2ab0e-7dbc-4f0c-b476-8181d44217a8"
|
||||
name: Tengoku Daimakyou
|
||||
volume: true
|
||||
- url: "https://mangadex.org/title/4ad8613b-1987-4d6f-ac0e-3d28a9b2b6f2"
|
||||
name: Franken Fran Frantic
|
||||
volume: true
|
||||
- url: "https://mangadex.org/title/9b78663c-850f-434b-8b33-d88d43cc3151"
|
||||
name: Arakure Ojousama wa Monmon Shiteiru
|
||||
volume: true
|
||||
- url: "https://mangadex.org/title/feff4eaf-01df-4a05-83f4-68bb5cdf4fad"
|
||||
name: Looking up to Magical Girls
|
||||
volume: true
|
||||
- url: "https://mangadex.org/title/b7d069cb-4ab9-4c21-a20b-38f7c269be4e"
|
||||
name: One Punch Man (Webcomic/Original)
|
||||
hiatus: false
|
||||
- url: "https://mangadex.org/title/801513ba-a712-498c-8f57-cae55b38cc92"
|
||||
name: Berserk
|
||||
hiatus: true
|
||||
- url: "https://mangadex.org/title/e4687487-9235-496d-9289-ea3ff955d3c0"
|
||||
name: Send My Regards to Kenshiro
|
||||
volume: true
|
||||
- url: https://mangadex.org/title/21758/kaifuku-jutsushi-no-yarinaoshi
|
||||
name: Kaifuku Jutsushi no Yarinaoshi
|
||||
- url: "https://mangadex.org/title/7a36beba-1365-46de-8220-28c193572ac7"
|
||||
name: Ushiro no Shoumen Kamui-san
|
||||
- url: "https://mangadex.org/title/c26269c7-0f5d-4966-8cd5-b79acb86fb7a"
|
||||
name: Sewayaki Kitsune no Senko-san
|
||||
volume: true
|
||||
- url: "https://mangadex.org/title/6e156d65-cf65-4d5b-9d04-52f2f8100fbf"
|
||||
name: Isekai Apocalypse MYNOGHRA ~The Conquest of the World Starts With the Civilisation of Ruin~
|
||||
volume: true
|
||||
- url: "https://mangadex.org/title/578ca54a-0aaa-4928-8dd1-219a706299f9"
|
||||
name: Another World Where I Can't Even Collapse and Die
|
||||
- url: "https://mangadex.org/title/740471f5-4f75-457a-8c0c-cb4e0a5a999f"
|
||||
name: Fushigi no Kuni no Bird
|
||||
volume: true
|
||||
- url: "https://mangadex.org/title/19e58e5a-4ecc-4f77-8b01-1ba7c615295d"
|
||||
name: Kumo Desu ga, Nani ka? Daily Life of the Four Spider Sisters
|
||||
- url: "https://mangadex.org/title/eb2d1a45-d4e7-4e32-a171-b5b029c5b0cb"
|
||||
name: Kumo Desu ga, Nani ka?
|
||||
volume: true
|
||||
- url: "https://mangadex.org/title/5a0ab49a-1e9b-4f19-9f86-da5d7d50885a/the-apothecary-will-make-this-battered-elf-happy"
|
||||
name: The Apothecary Is Gonna Make This Ragged Elf Happy
|
||||
- url: "https://mangadex.org/title/5f20aded-1216-41e3-b48d-87b0c4d9957c/kono-healer-mendokusai"
|
||||
name: Kono Healer Mendokusai
|
||||
volume: true
|
||||
- url: "https://mangadex.org/title/2f4e5f5b-d930-4266-8c8a-c4cf9a81e51f/jahy-sama-wa-kujikenai"
|
||||
name: Jahy-sama wa Kujikenai!
|
||||
volume: true
|
||||
- url: "https://mangadex.org/title/1180743d-8e38-4c00-b767-c53169fadc6a/tensura-nikki-tensei-shitara-slime-datta-ken"
|
||||
name: Tensura Nikki Tensei Shitara Slime Datta Ken
|
||||
volume: true
|
||||
- url: "https://mangadex.org/title/b89882d5-e2c8-457d-8b74-a70bf0b36b7e/ore-ga-fujoshi-de-aitsu-ga-yuriota-de"
|
||||
name: Ore ga Fujoshi de Aitsu ga Yuriota de
|
||||
- url: "https://mangadex.org/title/87ebd557-8394-4f16-8afe-a8644e555ddc/hirayasumi"
|
||||
name: Hirayasumi
|
||||
- url: "https://mangadex.org/title/5725100d-81bd-467d-b680-1f4dff43adbd/kyuuketsuki-sugu-shinu"
|
||||
name: Kyuuketsuki Sugu Shinu
|
||||
# name: The Vampire Dies in No Time
|
||||
- url: "https://mangadex.org/title/665766a3-905d-4a71-a90a-bd2c75d1a81f/alice-in-borderland"
|
||||
name: Alice in Borderland
|
||||
volume: true
|
||||
- url: "https://mangadex.org/title/a56698e8-b6c4-4e3c-9303-4c172465dd4d/imawabi-no-dakini"
|
||||
name: Imawabi no Dakini
|
||||
volume: true
|
||||
completed: true
|
||||
- url: "https://mangadex.org/title/6316eac8-53cc-4ac8-bc6b-7c5e229ac607/there-s-a-ghost-behind-the-gyaru"
|
||||
name: There's a Ghost Behind the Gyaru
|
||||
completed: true
|
||||
- url: "https://mangadex.org/title/a892e04c-e20c-4fd3-9169-d620cee8dbd4/my-divorced-crybaby-neighbour"
|
||||
name: My Divorced Crybaby Neighbour
|
||||
- url: "https://mangadex.org/title/4088c3cc-6be2-4fb6-80b5-8d8606f00196/shinka-no-mi"
|
||||
name: Shinka no Mi
|
||||
- url: "https://mangadex.org/title/835feda4-2db0-4753-8249-4575a3ceffe2/kenja-no-mago"
|
||||
volume: true
|
||||
name: Kenja no Mago
|
||||
- url: "https://mangadex.org/title/08a25bd7-ce34-4630-8552-b93fe16852d9/time-stop-brave"
|
||||
name: Time Stop Brave
|
||||
- url: "https://mangadex.org/title/eba602f3-5e5d-48ff-b054-d7776181e27c/akazukin-no-ookami-deshi"
|
||||
name: Akazukin no Ookami Deshi
|
||||
- url: "https://mangadex.org/title/7ce22c9e-5939-435e-b067-64ce659bb3b3/hazure-skill-gacha-de-tsuihou-sareta-ore-wa-wagamama-osananajimi-wo-zetsuen-shi-kakusei-suru"
|
||||
name: Hazure Skill “Gacha” de Tsuihou Sareta Ore wa, Wagamama Osananajimi wo Zetsuen Shi Kakusei Suru
|
||||
- url: "https://mangadex.org/title/cc121572-858e-4bd2-b5f3-ef505eca0081/hazure-skill-kage-ga-usui-o-motsu-guild-shokuin-ga-jitsuha-densetsu-no-ansatsusha"
|
||||
name: Hazure Skill "Kage ga Usui" o Motsu Guild Shokuin ga, Jitsuha Densetsu no Ansatsusha
|
||||
- url: "https://mangadex.org/title/1d44fa52-e344-42bd-9182-7b5887e1fe2c/i-became-the-mother-of-the-strongest-demon-lord-s-10-children-in-another-world"
|
||||
name: I Became the Mother of the Strongest Demon Lord's 10 Children in Another World.
|
||||
volume: true
|
||||
- url: "https://mangadex.org/title/bc94b9a7-e17e-4a00-be92-882ba520cb85/youjo-shachou"
|
||||
name: Youjo Shachou
|
||||
volume: true
|
||||
- url: "https://mangadex.org/title/0d8da574-3a62-48a8-aad2-05225160b1a6/one-piece-in-love"
|
||||
name: One Piece in Love
|
||||
- url: "https://mangadex.org/title/8f22b5ff-2d76-4f5d-9b35-7969de2dc66d/amagi-brilliant-park"
|
||||
name: Amagi Brilliant Park
|
||||
volume: true
|
||||
- url: "https://mangadex.org/title/a971a398-192c-457d-b803-78b029fb3c7f/reki-yomi"
|
||||
name: Reki Yomi
|
||||
volume: true
|
||||
- url: https://mangadex.org/title/607f0bbc-e36d-46af-9efd-b74a40cbbe9d/homeless-tensei-isekai-de-jiyuu-sugiru-jikyuu-jisoku-seikatsu
|
||||
name: "Homeless Tensei: Isekai de Jiyuu Sugiru Jikyuu Jisoku Seikatsu"
|
||||
- url: "https://mangadex.org/title/bd29a3d0-9551-45e3-b1ac-941214e535b5/heterogeneous-linguistics"
|
||||
name: Heterogeneous Linguistics
|
||||
- url: "https://mangadex.org/title/6057cba5-2300-4579-9acd-f19efd150270/yankee-shota-to-otaku-onee-san"
|
||||
name: Yankee Shota to Otaku Onee-san
|
||||
volume: true
|
||||
- url: https://mangadex.org/title/843c31ff-d390-4199-bc3b-94b0dfc63632/baki-gaiden-retsu-kaioh-isekai-tensei-shitemo-ikk-kamawan
|
||||
name: "Baki Gaiden - Retsu Kaioh Isekai Tensei Shitemo Ikkō Kamawan!"
|
||||
- url: "https://mangadex.org/title/ffe69cc2-3f9e-4eab-a7f7-c963cea9ec25/lonely-attack-on-a-different-world"
|
||||
name: Lonely Attack on a Different World
|
||||
volume: true
|
||||
- url: "https://mangadex.org/title/ec514ef4-fb77-43b9-b9b4-528229de1308/enen-no-shouboutai"
|
||||
name: Enen no Shouboutai
|
||||
volume: true
|
||||
- url: "https://mangadex.org/title/70fe972b-3c88-4165-b9a5-3db96d6d2c14/shikkaku-mon-no-saikyou-kenja-sekai-saikyou-no-kenja-ga-sara-ni-tsuyokunaru-tame-ni-tensei"
|
||||
name: "Shikkaku Mon no Saikyou Kenja - Sekai Saikyou no Kenja ga Sara ni Tsuyokunaru Tame ni Tensei Shimashita"
|
||||
- url: "https://mangadex.org/title/c2b32bf8-5015-4ef0-9bbf-a4e63033dabb/senmetsumadou-no-saikyou-kenja-musai-no-kenja-madou-wo-kiwame-saikyou-e-itaru"
|
||||
name: "Senmetsumadou no Saikyou Kenja: Musai no Kenja, Madou wo Kiwame Saikyou e Itaru"
|
||||
volume: true
|
||||
- url: "https://mangadex.org/title/b4615bd9-7cbd-4243-a8a2-5c24671663e0/yajin-tensei-karate-survivor-in-another-world"
|
||||
name: "Yajin Tensei: Karate Survivor in Another World"
|
||||
- url: "https://mangadex.org/title/08a25bd7-ce34-4630-8552-b93fe16852d9/jikan-teishi-yuusha-yomei-3-ka-no-settei-ja-sekai-wo-sukuu-ni-wa-mijika-sugiru"
|
||||
name: "Jikan Teishi Yuusha - Yomei 3-ka no Settei ja Sekai wo Sukuu ni wa Mijika Sugiru"
|
||||
- url: "https://mangadex.org/title/42603601-3659-430f-8306-ca703a884afe/uso-bitch-senpai?tab=chapters"
|
||||
name: "Uso-Bitch Senpai"
|
||||
- url: "https://mangadex.org/title/310d5beb-79fd-4a48-a028-95a016307efb/busted-darklord"
|
||||
name: "Busted! Darklord"
|
||||
- url: "https://mangadex.org/title/e0f2c98b-759d-4a86-8a73-7ed110eb32e3/elf-to-shuryoushi-no-item-koubou"
|
||||
name: "Elf to Shuryoushi no Item Koubou"
|
||||
volume: true
|
||||
- url: "https://mangadex.org/title/c4c04636-3774-4f39-8424-e1aef59ac6ff/the-mermaid-princess-s-guilty-meal"
|
||||
name: "The Mermaid Princess's Guilty Meal"
|
||||
volume: true
|
||||
- name: "The Girl, the Shovel, and the Evil Eye"
|
||||
url: "https://mangadex.org/title/57b8b608-1026-4cab-ad6a-28d796eca663/the-girl-the-shovel-and-the-evil-eye"
|
||||
- name: "The Exiled Reincarnated Heavy Knight Is Unrivaled in Game Knowledge"
|
||||
url: "https://mangadex.org/title/7c5ee2ae-5bed-4e72-8d75-91e3b8e9787a/the-exiled-reincarnated-heavy-knight-is-unrivaled-in-game-knowledge"
|
||||
- name: "Kage no Jitsuryokusha ni Naritakute"
|
||||
url: "https://mangadex.org/title/77bee52c-d2d6-44ad-a33a-1734c1fe696a/kage-no-jitsuryokusha-ni-naritakute?tab=chapters"
|
||||
volume: true
|
||||
- name: "Vampeerz"
|
||||
url: "https://mangadex.org/title/c431712b-231c-4d25-85fa-7ca6bf460f15/vampeerz"
|
||||
volume: true
|
||||
- name: "The Maid Who Can't Hide Her Feelings (Pre-serialization)"
|
||||
url: "https://mangadex.org/title/9b2e2852-2dff-4797-bc51-c18fac8b181e/the-maid-who-can-t-hide-her-feelings-pre-serialization"
|
||||
- name: "Tensei Shitara Ken Deshita"
|
||||
url: "https://mangadex.org/title/77fd8118-61b0-4b1f-95a6-2b839d754f81/tensei-shitara-ken-deshita"
|
||||
volume: true
|
||||
- name: "Zombie 100 ~Zombie ni Naru Made ni Shitai 100 no Koto~"
|
||||
url: "https://mangadex.org/title/efd02206-1cd8-4823-b497-02bb8b8d09ca/zombie-100-zombie-ni-naru-made-ni-shitai-100-no-koto"
|
||||
volume: true
|
||||
- name: "Orc Hero Story - Discovery Chronicles"
|
||||
url: "https://mangadex.org/title/cc1fc741-8ba5-4a18-9843-5d59d8a98d0d/orc-hero-story-discovery-chronicle"
|
||||
- name: "Dungeon no Osananajimi"
|
||||
url: "https://mangadex.org/title/8572da1b-3b5d-44aa-a40c-8a92b512c336/dungeon-no-osananajimi"
|
||||
- name: "Shinmai Ossan Bouken-sha, Saikyou paati ni shinu hodo kitae rarete Muteki ni naru"
|
||||
url: "https://mangadex.org/title/a2320293-f00e-43a0-8d08-1110cf26a894/shinmai-ossan-bouken-sha-saikyou-paati-ni-shinu-hodo-kitae-rarete-muteki-ni-naru"
|
||||
- name: "JoJo's Bizarre Adventure Part 9 - The JOJOLands"
|
||||
url: "https://mangadex.org/title/ab8cbb82-d0ed-45a7-8ffe-4bfa6d43d79c/jojo-s-bizarre-adventure-part-9-the-jojolands"
|
||||
- name: "Ore no Kokan wa Bishoujo Datta no ka"
|
||||
url: "https://mangadex.org/title/cf923481-1e96-4959-b3c1-9518718a4cc2/ore-no-kokan-wa-bishoujo-datta-no-ka"
|
||||
- name: "Yuko Sae Tatakaeba"
|
||||
url: "https://mangadex.org/title/e750ebbd-e54a-412c-92d0-e3c183692527/yuko-sae-tatakaeba"
|
||||
volume: true
|
||||
- url: "https://mangadex.org/title/daa29882-e5c4-4d24-8dc9-efb407a9e84b/tonari-no-seki-kun-junior?tab=chapters"
|
||||
name: "Tonari no Seki-kun Junior"
|
||||
volume: true
|
||||
- url: "https://mangadex.org/title/5896e05d-3900-4947-baf8-403a9d8fa5ec/nick-lever"
|
||||
name: "Nick & Lever"
|
||||
volume: true
|
||||
- url: "https://mangadex.org/title/71c05dbe-2012-4a7b-bc22-4970b7d0afc4/ani-to-imouto-no-shitai-shitai-shitai-koto"
|
||||
name: "Ani to Imouto no Shitai Shitai Shitai Koto"
|
125
script/Pictures/manga/update.sh
Executable file
125
script/Pictures/manga/update.sh
Executable file
|
@ -0,0 +1,125 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
normal=$(tput sgr0) # normal text
|
||||
bold=$(tput bold) # make colors bold/bright
|
||||
purple=$(tput setaf 5); # magenta text
|
||||
pink="$bold$purple" # bright magenta text
|
||||
darkcyan=$(tput setaf 6) # dim cyan text
|
||||
cyan="$bold$darkcyan" # bright cyan text
|
||||
#red="$bold$(tput setaf 1)" # bright red text
|
||||
#green=$(tput setaf 2) # dim green text
|
||||
#fawn=$(tput setaf 3); beige="$fawn" # dark yellow text
|
||||
#yellow="$bold$fawn" # bright yellow text
|
||||
#darkblue=$(tput setaf 4) # dim blue text
|
||||
#blue="$bold$darkblue" # bright blue text
|
||||
#gray=$(tput setaf 7) # dim white text
|
||||
#darkgray="$bold"$(tput setaf 0) # bold black = dark gray text
|
||||
#white="$bold$gray" # bright white text
|
||||
|
||||
MANGA_DIR="$HOME/Pictures/manga/mangadex"
|
||||
|
||||
# IN: text color icon
|
||||
pprint() {
|
||||
color=${2:-$cyan}
|
||||
icon=${3:-" "}
|
||||
echo "${color}${icon} ${1}${normal}"
|
||||
}
|
||||
|
||||
# progress() {
|
||||
# CHAPTER_ID=1234
|
||||
# curl -xPOST "https://mangadex.org/ajax/actions.ajax.php?function=chapter_mark_read&id=$CHAPTER_ID"
|
||||
# # Unselect: curl -xPOST "https://mangadex.org/ajax/actions.ajax.php?function=chapter_mark_unread&id=$CHAPTER_ID"
|
||||
# }
|
||||
|
||||
# IN: .dir
|
||||
# OUT: [string] last chapter
|
||||
chapter() {
|
||||
result=$(find "$1" -mindepth 1 -type d | sed -rn 's/.*c([0-9]+).*/\1/p' | sort | tail -n1)
|
||||
[ -n "$result" ] && echo "$result" || echo 0
|
||||
}
|
||||
|
||||
# IN: .dir
|
||||
# OUT: [string] last volume
|
||||
volume() {
|
||||
result=$(find "$1" -mindepth 1 -type d | sed -rn 's/.*v([0-9]+).*/\1/p' | sort | tail -n1)
|
||||
[ -n "$result" ] && echo "$result" || echo 0
|
||||
}
|
||||
|
||||
# IN: .url
|
||||
# OUT: [string] title code
|
||||
titlecode() {
|
||||
echo "$1" | sed 's#.*title/\([0-9a-z-]*\).*#\1#g'
|
||||
}
|
||||
|
||||
# IN: .dir .url
|
||||
cover() {
|
||||
DIRECTORY="$1"
|
||||
TITLE_CODE="$(titlecode "$2")"
|
||||
|
||||
for folder in "$DIRECTORY/"*/
|
||||
do
|
||||
folder=$(echo "$folder" | sed 's#/$##')
|
||||
VOLUME=$(echo "$folder" | sed -e 's#.*v\([0-9]*\).*#\1#' -e 's/^0//' | bc)
|
||||
COVER="$folder/000-cover.jpg"
|
||||
[ ! -f "$COVER" ] && [ "$VOLUME" -ge 0 ] && curl -s -o "$COVER" "https://uploads.mangadex.org//covers/${TITLE_CODE}/$(curl -s "https://api.mangadex.org/cover?manga[]=${TITLE_CODE}&limit=100" | jq -r ".data[].attributes | select(.volume == \"${VOLUME}\") | .fileName")"
|
||||
[ "$(file -b --mime-type "$COVER")" = "text/html" ] && rm "$COVER"
|
||||
done
|
||||
}
|
||||
|
||||
# IN: .dir .url
|
||||
bookshelf() {
|
||||
pprint "Generating volumes shortcuts..." "$pink" "└── "
|
||||
DIRECTORY="$1"
|
||||
VOLUME=$(volume "$1")
|
||||
TITLE="$(basename "$DIRECTORY")"
|
||||
URL="$2"
|
||||
fish -c "mkdir -p \"$DIRECTORY/$TITLE\"\ v{(seq -s',' -w \"$VOLUME\")}"
|
||||
seq -w "$VOLUME" | xargs -I% fish -c "mv \"$DIRECTORY/\"v%* \"$DIRECTORY/$TITLE\"\ v%" 2>/dev/null
|
||||
cover "$DIRECTORY" "$URL"
|
||||
fish -c "add_manga \"$DIRECTORY\""
|
||||
}
|
||||
# title() {
|
||||
# gallery-dl -j "$1" | jq -rc '(.[] | reverse)[0].manga' | head -n1
|
||||
# }
|
||||
|
||||
# IN: .dir .url .group .refetch .volume
|
||||
update() {
|
||||
VOLUME=0 LAST_CHAPTER=0 GROUP_OPTION="" PREFIX="└── "
|
||||
[ "$5" = "true" ] && PREFIX="├── "
|
||||
[ "$4" != "true" ] && VOLUME=$(volume "$1" | bc) LAST_CHAPTER=$(chapter "$1" | bc)
|
||||
[ "$3" != "" ] && [ "$3" != "null" ] && GROUP_OPTION=" and ($3) in group"
|
||||
pprint "v$VOLUME c$LAST_CHAPTER" "$pink" "$PREFIX"
|
||||
CHAPTER_FILTER="lang == 'en' and chapter > $LAST_CHAPTER$GROUP_OPTION"
|
||||
# echo "gallery-dl -d . \"$2\" --chapter-filter \"$CHAPTER_FILTER\""
|
||||
gallery-dl -d . "$2" --chapter-filter "$CHAPTER_FILTER"
|
||||
[ "$5" = "true" ] && bookshelf "$1" "$2"
|
||||
}
|
||||
|
||||
_manga() {
|
||||
pprint "Updating chapters from group $1..." "$bold"
|
||||
|
||||
list=$(yq -cr ."$1[]" "$HOME/Pictures/manga/manga.yaml" | grep "$2" | jq -r '. | @base64')
|
||||
for row in $list; do
|
||||
_jq() {
|
||||
echo "${row}" | base64 --decode | jq -r "${1}"
|
||||
}
|
||||
packageurl=$(_jq '.url')
|
||||
packagename=$(_jq '.name')
|
||||
packagegroup=$(_jq '.group')
|
||||
packagerefetch=$(_jq '.refetch')
|
||||
packagecompleted=$(_jq '.completed')
|
||||
packagehiatus=$(_jq '.hiatus')
|
||||
packagevolume=$(_jq '.volume')
|
||||
packagedir="$MANGA_DIR/$packagename"
|
||||
pprint "Updating $packagename..." "$cyan" " "
|
||||
{ [ "$packagecompleted" = "true" ] || [ "$packagehiatus" = "true" ]; } || update "$packagedir" "$packageurl" "$packagegroup" "$packagerefetch" "$packagevolume"
|
||||
done
|
||||
}
|
||||
|
||||
main() {
|
||||
[ ! -x "/bin/yq" ] && sudo xbps-install -S yq jq
|
||||
|
||||
_manga "mangadex" "$@"
|
||||
}
|
||||
|
||||
main "$@"
|
483
script/Videos/transmission-rss.conf
Normal file
483
script/Videos/transmission-rss.conf
Normal file
|
@ -0,0 +1,483 @@
|
|||
---
|
||||
# vi: set ft=yaml :
|
||||
|
||||
# List of feeds to watch.
|
||||
feeds:
|
||||
# - url: https://nyaa.si/?page=rss&q=erai+Ore+dake+Haireru+Kakushi+Dungeon+1080&c=1_2&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# regexp: ^((?!HEVC).)*$
|
||||
# - url: "https://nyaa.si/?page=rss&q=erai+Dragon+Quest+-+Dai+no+Daibouken+1080&c=1_2&f=0"
|
||||
# download_path: "/home/jojo/Videos/Dragon Quest - Dai no Daibouken"
|
||||
# regexp: ^((?!HEVC).)*$
|
||||
# - url: https://nyaa.si/?page=rss&q=erai+Hataraku+Saibou+Black+1080&c=1_2&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# regexp: ^((?!HEVC).)*$
|
||||
# - url: https://nyaa.si/?page=rss&q=erai+hataraku+saibou%21%21+1080&c=0_0&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# regexp: ^((?!v0).)*$
|
||||
# - url: https://nyaa.si/?page=rss&q=rom+rem+kaifuku+1080+uncensored&c=1_2&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# regexp: ^((?!HEVC).)*$
|
||||
# - url: https://nyaa.si/?page=rss&q=erai+yuru+camp+season+2+1080&c=1_2&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# regexp: ^((?!HEVC).)*$
|
||||
# - url: https://nyaa.si/?page=rss&q=erai+tatoeba+last+dungeon+1080&c=1_2&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# regexp: ^((?!HEVC).)*$
|
||||
# - url: https://nyaa.si/?page=rss&q=non+non+biyori+erai+1080&c=1_2&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# regexp: ^((?!HEVC).)*$
|
||||
# - url: https://nyaa.si/?page=rss&q=erai+Azur+Lane+Bisoku+Zenshin+1080&c=0_0&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# - url: https://nyaa.si/?page=rss&q=subsplease+Urasekai+Picnic+1080&c=1_2&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# - url: https://nyaa.si/?page=rss&q=entame+yu-gi-oh&c=1_2&f=0
|
||||
# download_path: "/home/jojo/Videos/Yu-Gi-Oh! SEVENS"
|
||||
# regexp: (Episode\s[3-9]\d\s)
|
||||
# - url: https://nyaa.si/?page=rss&q=erai+1080+Tenchi+Souzou+Design&c=0_0&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# regexp: ^((?!HEVC).)*$
|
||||
# - url: https://nyaa.si/?page=rss&q=molcar+carsplease+mkv&c=0_0&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# regexp: ^((?!HEVC).)*$
|
||||
# - url: https://nyaa.si/?page=rss&q=erai+Majo+no+Tabitabi+1080&c=0_0&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# regexp: ^((?!HEVC).)*$
|
||||
# - url: https://nyaa.si/?page=rss&q=erai+slime+2nd+1080&c=0_0&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# regexp: ^((?!HEVC).)*$
|
||||
# - url: https://nyaa.si/?page=rss&q=horrible+Sakamoto+Desu+ga+1080&c=0_0&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# - url: https://nyaa.si/?page=rss&q=slime+1080p+oad+erai&c=0_0&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# - url: https://nyaa.si/?page=rss&q=erai+otona+no+bouguya-san+1080&c=0_0&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# - url: https://nyaa.si/?page=rss&q=thunderbolt+fantasy+deepest+1080&c=0_0&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# - url: https://nyaa.si/?page=rss&q=+dragon+ie+o+kau+erai+1080&c=0_0&f=0
|
||||
# regexp: ^((?!HEVC).)*$
|
||||
# download_path: /home/jojo/Videos
|
||||
# - url: https://nyaa.si/?page=rss&q=tensura+slime+datta+ken+1080+erai&c=0_0&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# regexp: ^((?!HEVC).)*$
|
||||
# - url: https://nyaa.si/?page=rss&q=erai+slime+300+1080&c=0_0&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# regexp: ^((?!HEVC).)*$
|
||||
# - url: https://nyaa.si/?page=rss&q=erai+isekai+maou+omega+1080&c=0_0&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# regexp: ^((?!HEVC).)*$
|
||||
# - url: https://nyaa.si/?page=rss&q=erai+sentouin+1080&c=0_0&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# regexp: ^((?!HEVC).)*$
|
||||
# - url: https://nyaa.si/?page=rss&q=erai+1080+Seijo+no+Maryoku+wa+Bannou+Desu&c=0_0&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# regexp: ^((?!HEVC).)*$
|
||||
# - url: https://nyaa.si/?page=rss&q=erai+1080+Fumetsu+no+Anata+e&c=0_0&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# regexp: ^((?!HEVC).)*$
|
||||
# - url: https://nyaa.si/?page=rss&q=zombieland+1080+subs&c=0_0&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# regexp: ^((?!HEVC).)*$
|
||||
# - url: https://nyaa.si/?page=rss&q=iruma+erai+2nd+1080&c=0_0&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# regexp: ^((?!HEVC).)*$
|
||||
# - url: https://nyaa.si/?page=rss&q=erai+1080+dragon+mini&c=0_0&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# regexp: ^((?!HEVC).)*$
|
||||
# - url: https://nyaa.si/?page=rss&q=nagatoro+1080+rom&c=0_0&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# - url: https://nyaa.si/?page=rss&q=tensei+slime+hollow&c=1_2&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# - url: https://nyaa.si/?page=rss&q=otome+game+X+chihiro+1080&c=0_0&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# - url: https://nyaa.si/?page=rss&q=DameDesuYo+Kobayashi-san+Chi+no+Maid+Dragon+S&c=0_0&f=0
|
||||
# regexp: Kobayashi-san Chi no Maid Dragon S
|
||||
# download_path: /home/jojo/Videos
|
||||
# - url: https://nyaa.si/?page=rss&q=subsplease+Tsuki+ga+Michibiku+Isekai+1080&c=1_2&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# - url: https://nyaa.si/?page=rss&q=subsplease+cheat+kusushi+no+slow+life+1080&c=1_2&f=
|
||||
# download_path: /home/jojo/Videos
|
||||
# - url: https://nyaa.si/?page=rss&q=Megami-ryou+nyanpasu+1080&c=0_0&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# - url: https://nyaa.si/?page=rss&q=Seirei+Gensouki+1080+erai&c=1_2&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
- url: "https://nyaa.si/?page=rss&q=jahy+sama+GJM&c=1_2&f=0"
|
||||
download_path: "/home/jojo/Videos/Jahy-sama wa Kujikenai!"
|
||||
# - url: https://nyaa.si/?page=rss&q=ODD+Shinigami+Bocchan+to+Kuro+Maid&c=1_2&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# - url: https://nyaa.si/?page=rss&q=erai+Meikyuu+Black+Company+1080&c=1_2&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# - url: https://nyaa.si/?page=rss&q=Heion+Sedai+no+Idaten-tachi+erai+1080&c=1_2&f=0
|
||||
# download_path: "/home/jojo/Videos/Heion Sedai no Idaten-tachi"
|
||||
# - url: https://nyaa.si/?page=rss&q=machiavellian+Genjitsu+Shugi+Yuusha+no+Oukoku+1080&c=0_0&f=0
|
||||
# download_path: "/home/jojo/Videos/Genjitsu Shugi Yuusha no Oukoku Saikenki"
|
||||
# - url: https://nyaa.si/?page=rss&q=Deatte+5-byou+de+Battle+1080+subsplease&c=0_0&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# - url: https://nyaa.si/?page=rss&q=kuro+maid+erai+1080&c=0_0&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# regexp: ^((?!v0).)*$
|
||||
# - url: https://nyaa.si/?page=rss&q=akari+nanawo&c=2_1&f=0
|
||||
# download_path: /home/jojo/Music
|
||||
# - url: https://nyaa.si/?page=rss&q=erai+Genjitsu+Shugi+Yuusha+no+Oukoku+Saikenki+1080&c=0_0&f=
|
||||
# download_path: /home/jojo/Videos
|
||||
# regexp: ^((?!v0).)*$
|
||||
# # Fall 2021
|
||||
# - url: https://nyaa.si/?page=rss&q=Heike+Monogatari+1080+erai&c=0_0&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# regexp: ^((?!v0).)*$
|
||||
# - url: https://nyaa.si/?page=rss&q=subsplease+Kyuuketsuki+sugu+shinu+1080&c=0_0&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# - url: https://nyaa.si/?page=rss&q=shinka+no+mi+1080+subsplease&c=0_0&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# - url: https://nyaa.si/?page=rss&q=subsplease+isekai+shokudou+1080&c=0_0&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# - url: https://nyaa.si/?page=rss&q=mieruko+nekomimi+1080&c=0_0&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# - url: https://nyaa.si/?page=rss&q=MTBB+mushoku+v2&c=0_0&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# - url: https://nyaa.si/?page=rss&q=Taishou+Otome+1080+subsplease&c=0_0&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# - url: https://nyaa.si/?page=rss&q=jnzngn+Takt+Op.+Destiny+1080&c=0_0&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# - url: https://nyaa.si/?page=rss&q=Saihate+no+Paladin+subsplease+1080&c=0_0&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# - url: https://nyaa.si/?page=rss&q=Shin+no+Nakama+1080+subsplease&c=0_0&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# - url: https://nyaa.si/?page=rss&q=subsplease+saihate+no+paladin+1080&c=0_0&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# - url: https://nyaa.si/?page=rss&q=hanashi+1080+subsplease&c=0_0&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# - url: https://nyaa.si/?page=rss&q=ganbare+douki+1080+erai&c=1_2&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# - url: "https://nyaa.si/?page=rss&q=king+ousama+ranking+1080p+mkv&c=0_0&f=0"
|
||||
# download_path: /home/jojo/Videos/Ousama Ranking
|
||||
# - url: https://nyaa.si/?page=rss&q=erai+Mushoku+Tensei+2nd+1080&c=1_2&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# regexp: ^((?!v0).)*$
|
||||
# - url: https://nyaa.si/?page=rss&q=anime+chap+stone+ocean&c=0_0&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# - url: https://nyaa.si/?page=rss&q=daddy+kimetsu+entertainment&c=0_0&f=0
|
||||
# download_path: "/home/jojo/Videos/Kimetsu no Yaiba"
|
||||
# - url: https://nyaa.si/?page=rss&q=PQC+Sekai+Saikou+1080&c=1_2&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# - url: https://nyaa.si/?page=rss&q=official+translated+LN&c=0_0&f=0
|
||||
# download_path: /home/jojo/Books
|
||||
# - url: https://nyaa.si/?page=rss&q=jnzngn+ansatsu+kizoku&c=0_0&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# - url: https://nyaa.si/?page=rss&q=nosferatu+erai+1080&c=1_2&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# - url: https://nyaa.si/?page=rss&q=mtbb+mushoku+tensei&c=1_2&f=0
|
||||
# download_path: /home/jojo/Videos
|
||||
# - url: https://nyaa.si/?page=rss&q=NovaWorks+komi+san&c=1_2&f=0
|
||||
# regexp: ^((?!AnonymousSubs).)*$
|
||||
# download_path: "/home/jojo/Videos/Komi Can't Communicate"
|
||||
# - url: https://nyaa.si/?page=rss&q=Leadale+no+Daichi+nite+1080+erai&c=0_0&f=0
|
||||
# download_path: "/home/jojo/Videos/Leadale no Daichi nite"
|
||||
# - url: https://nyaa.si/?page=rss&q=Shikkakumon+no+Saikyou+Kenja+1080+subsplease&c=0_0&f=0
|
||||
# download_path: "/home/jojo/Videos/Shikkakumon no Saikyou Kenja"
|
||||
# - url: https://nyaa.si/?page=rss&q=erai+princess+connect+season+2+1080&c=0_0&f=0
|
||||
# download_path: "/home/jojo/Videos/Princess Connect! Re-Dive S2"
|
||||
# - url: https://nyaa.si/?page=rss&q=Kaijin+Kaihatsubu+no+Kuroitsu-san+erai+1080&c=0_0&f=0
|
||||
# download_path: "/home/jojo/Videos/Kaijin Kaihatsu-bu no Kuroitsu-san"
|
||||
# - url: https://nyaa.si/?page=rss&q=sabikui+bisco+1080+erai&c=0_0&f=0
|
||||
# download_path: "/home/jojo/Videos/Sabikui Bisco"
|
||||
# - url: https://nyaa.si/?page=rss&q=+Gensou+Sangokushi+1080+erai&c=0_0&f=0
|
||||
# download_path: "/home/jojo/Videos/Gensou Sangokushi"
|
||||
# - url: https://nyaa.si/?page=rss&q=Kenja+no+Deshi+1080+erai&c=0_0&f=0
|
||||
# download_path: "/home/jojo/Videos/Kenja no Deshi wo Nanoru Kenja"
|
||||
# - url: https://nyaa.si/?page=rss&q=+Tensai+Ouji+no+Akaji+1080+erai&c=0_0&f=0
|
||||
# download_path: "/home/jojo/Videos/Tensai Ouji no Akaji Kokka Saiseijutsu"
|
||||
# - url: https://nyaa.si/?page=rss&q=Fantasy+Bishoujo+Juniku+Ojisan+to+1080+erai&c=0_0&f=0
|
||||
# download_path: "/home/jojo/Videos/Fantasy Bishoujo Juniku Ojisan to"
|
||||
# Spring 2022
|
||||
# - url: https://nyaa.si/?page=rss&q=cue+erai+1080&c=1_2&f=0
|
||||
# download_path: "/home/jojo/Videos/Cue!"
|
||||
- url: "https://nyaa.si/?page=rss&q=sono+bisque+gjm&c=1_2&f=0"
|
||||
download_path: "/home/jojo/Videos/Sono Bisque Doll wa Koi wo Suru"
|
||||
# # - url: https://nyaa.si/?page=rss&q=slow+loop+loopsub&c=0_0&f=0
|
||||
# # download_path: "/home/jojo/Videos/Slow Loop"
|
||||
# - url: https://nyaa.si/?page=rss&q=Atasha+Kawajiri+Kodama+da+yo+erai+1080&c=0_0&f=0
|
||||
# download_path: "/home/jojo/Videos/Atasha Kawajiri Kodama Da yo"
|
||||
# - url: https://nyaa.si/?page=rss&q=tsundere+vanitas+no+carte+vostfr+mkv+1080&c=0_0&f=0
|
||||
# download_path: "/home/jojo/Videos/Vanitas no Carte"
|
||||
# - url: "https://nyaa.si/?page=rss&q=busted+darklord+nc+raws&c=1_2&f=0"
|
||||
# download_path: "/home/jojo/Videos/Busted! Darklord"
|
||||
# - url: "https://nyaa.si/?page=rss&q=cyan+Akebi-chan+no+Sailor-fuku&c=1_2&f=0"
|
||||
# download_path: "/home/jojo/Videos/Akebi-chan no Sailor-fuku"
|
||||
# - url: "https://nyaa.si/?page=rss&q=erai+raws+bessatsu+olympia+1080&c=0_0&f=0"
|
||||
# download_path: "/home/jojo/Videos/Bessatsu Olympia Kyklos"
|
||||
# - url: "https://nyaa.si/?page=rss&q=Paripi+Koumei+anime+chap+1080&c=0_0&f=0"
|
||||
# download_path: "/home/jojo/Videos/Paripi Koumei"
|
||||
# - url: "https://nyaa.si/?page=rss&q=chihiro+Shokei+Shoujo+no+Virgin+Road+1080&c=0_0&f=0"
|
||||
# download_path: "/home/jojo/Videos/Shokei Shoujo no Virgin Road"
|
||||
# - url: "https://nyaa.si/?page=rss&q=Otome+Game+Sekai+wa+Mob+ni+Kibishii+Sekai+desu+1080+judas&c=0_0&f=0"
|
||||
# download_path: "/home/jojo/Videos/Otomege Sekai wa Mob ni Kibishii Sekai Desu"
|
||||
# - url: "https://nyaa.si/?page=rss&q=Aharen-san+wa+Hakarenai+1080+erai&c=1_2&f=0"
|
||||
# download_path: "/home/jojo/Videos/Aharen-san wa Hakarenai"
|
||||
# - url: "https://nyaa.si/?page=rss&q=Yuusha+Yamemasu+subsplease+1080&c=0_0&f=0"
|
||||
# download_path: "/home/jojo/Videos/Yuusha Yamemasu"
|
||||
# - url: "https://nyaa.si/?page=rss&q=shijou+Saikyou+no+Daimaou+erai+1080&c=0_0&f=0"
|
||||
# download_path: "/home/jojo/Videos/Shijou Saikyou no Daimaou Murabito A ni Tensei suru"
|
||||
# regexp: ^((?!HEVC).)*$
|
||||
# - url: "https://nyaa.si/?page=rss&q=Deaimon+erai+raws+1080&c=0_0&f=0"
|
||||
# download_path: "/home/jojo/Videos/Deaimon"
|
||||
# - url: "https://nyaa.si/?page=rss&q=RPG+Fudousan+1080+erai&c=0_0&f=0"
|
||||
# download_path: "/home/jojo/Videos/RPG Fudousan"
|
||||
# - url: "https://nyaa.si/?page=rss&q=Gaikotsu+Kishi-sama+1080+erai&c=0_0&f=0"
|
||||
# download_path: "/home/jojo/Videos/Gaikotsu Kishi-sama"
|
||||
# regexp: ^((?!HEVC).)*$
|
||||
# - url: "https://nyaa.si/?page=rss&q=Shachiku-san+wa+Youjo+Yuurei+ni+Iyasaretai+1080+erai&c=0_0&f=0"
|
||||
# download_path: "/home/jojo/Videos/Shachiku-san wa Youjo Yuurei ni Iyasaretai"
|
||||
# - url: "https://nyaa.si/?page=rss&q=Estab-Life+1080+subsplease&c=1_2&f=0"
|
||||
# download_path: "/home/jojo/Videos/Estab-Life"
|
||||
# - url: "https://nyaa.si/?page=rss&q=Koi+wa+Sekai+Seifuku+no+Ato+de+erai+1080&c=0_0&f=0"
|
||||
# download_path: "/home/jojo/Videos/Koi wa Sekai Seifuku no Ato de"
|
||||
# - url: "https://nyaa.si/?page=rss&q=loopsubs+mazoku&c=0_0&f=0"
|
||||
# download_path: "/home/jojo/Videos/Machikado Mazoku S2"
|
||||
# - url: "https://nyaa.si/?page=rss&q=kono+healer+1080+subsplease&c=1_2&f=0"
|
||||
# download_path: "/home/jojo/Videos/Kono Healer Mendokusai"
|
||||
# - url: "https://nyaa.si/?page=rss&q=Kunoichi+Tsubaki+no+Mune+no+Uchi+anime+chap&c=1_2&f=0"
|
||||
# download_path: "/home/jojo/Videos/Kunoichi Tsubaki no Mune no Uchi"
|
||||
# - url: "https://nyaa.si/?page=rss&q=spy+x+family+anime+chap&c=1_2&f=0"
|
||||
# download_path: "/home/jojo/Videos/Spy x Family"
|
||||
- url: "https://nyaa.si/?page=rss&q=go+rush+entamesubs&c=0_0&f=0"
|
||||
download_path: "/home/jojo/Videos/Yu-Gi-Oh! GO RUSH"
|
||||
# - url: "https://nyaa.si/?page=rss&q=onipan+erai+1080&c=0_0&f=0"
|
||||
# download_path: "/home/jojo/Videos/Onipan!"
|
||||
# - url: "https://nyaa.si/?page=rss&q=Mahoutsukai+Reimeiki+1080+subsplease&c=0_0&f=0"
|
||||
# download_path: "/home/jojo/Videos/Mahoutsukai Reimeiki"
|
||||
# - url: "https://nyaa.si/?page=rss&q=Honzuki+no+Gekokujou+gjm&c=0_0&f=0"
|
||||
# download_path: "/home/jojo/Videos/Honzuki no Gekokujou"
|
||||
# - url: "https://nyaa.si/?page=rss&q=space+dandy+commie&c=0_0&f=0"
|
||||
# download_path: "/home/jojo/Videos/Space Dandy"
|
||||
# - url: "https://nyaa.si/?page=rss&q=jashin-chan+x+1080+erai&c=0_0&f=0"
|
||||
# download_path: "/home/jojo/Videos/Jashin-chan Dropkick X"
|
||||
# regexp: ^((?!HEVC).)*$
|
||||
# - url: "https://nyaa.si/?page=rss&q=Tensei+Kenja+no+Isekai+Life+1080+erai&c=0_0&f=0"
|
||||
# download_path: "/home/jojo/Videos/Tensei Kenja no Isekai Life"
|
||||
# regexp: ^((?!HEVC).)*$
|
||||
# - url: "https://nyaa.si/?page=rss&q=Isekai+yakkyoku+1080+erai&c=0_0&f=0"
|
||||
# download_path: "/home/jojo/Videos/Isekai Yakkyoku"
|
||||
# regexp: ^((?!HEVC).)*$
|
||||
# - url: "https://nyaa.si/?page=rss&q=Warau+Arsnotoria+Sun+1080+erai&c=0_0&f=0"
|
||||
# download_path: "/home/jojo/Videos/Warau Arsnotoria Sun!"
|
||||
# regexp: ^((?!HEVC).)*$
|
||||
# - url: "https://nyaa.si/?page=rss&q=Isekai+Meikyuu+de+Harem+wo+uncensored+mad&c=0_0&f=0"
|
||||
# download_path: "/home/jojo/Videos/Isekai Meikyuu de Harem wo"
|
||||
# regexp: ^((?!HEVC).)*$
|
||||
# - url: "https://nyaa.si/?page=rss&q=+Kinsou+no+Vermeil+1080+erai&c=1_2&f=0"
|
||||
# download_path: "/home/jojo/Videos/Kinsou no Vermeil"
|
||||
# regexp: ^((?!HEVC).)*$
|
||||
# - url: "https://nyaa.si/?page=rss&q=hataraku+maou-sama+erai+1080&c=0_0&f=0"
|
||||
# download_path: "/home/jojo/Videos/Hataraku Maou-sama"
|
||||
# regexp: ^((?!HEVC).)*$
|
||||
# - url: "https://nyaa.si/?page=rss&q=Kuro+no+Shoukanshi+1080+erai&c=1_2&f=0"
|
||||
# download_path: "/home/jojo/Videos/Kuro no Shoukanshi"
|
||||
# regexp: ^((?!HEVC).)*$
|
||||
# - url: "https://nyaa.si/?page=rss&q=Saikin+Yatotta+Maid+ga+Ayashii+1080+erai&c=0_0&f=0"
|
||||
# download_path: "/home/jojo/Videos/Saikin Yatotta Maid ga Ayashii"
|
||||
# regexp: ^((?!HEVC).)*$
|
||||
# - url: "https://nyaa.si/?page=rss&q=Tensei+Shitara+Ken+Deshita+1080+erai&c=0_0&f=0"
|
||||
# download_path: "/home/jojo/Videos/Tensei Shitara Ken Deshita"
|
||||
- url: "https://nyaa.si/?page=rss&q=erai+Kage+no+Jitsuryokusha+1080&c=0_0&f=0"
|
||||
download_path: "/home/jojo/Videos/Kage no Jitsuryokusha ni Naritakute"
|
||||
regexp: ^((?!HEVC).)*$
|
||||
- url: "https://nyaa.si/?page=rss&q=futoku+no+guild+anime+chap&c=0_0&f=0"
|
||||
download_path: "/home/jojo/Videos/Futoku no Guild"
|
||||
# - url: "https://nyaa.si/?page=rss&q=Seiken+Densetsu+1080+erai&c=0_0&f=0"
|
||||
# regexp: ^((?!HEVC).)*$
|
||||
# download_path: "/home/jojo/Videos/Seiken Densetsu"
|
||||
# - url: "https://nyaa.si/?page=rss&q=mob+psycho+1080+III+erai&c=0_0&f=0"
|
||||
# download_path: "/home/jojo/Videos/Mob Psycho 100 S3"
|
||||
# regexp: ^((?!HEVC).)*$
|
||||
# - url: "https://nyaa.si/?page=rss&q=Akuyaku+Reijou+nanode+Last+Boss+wo+Kattemimashita+1080+anime+chap&c=1_2&f=0"
|
||||
# download_path: "/home/jojo/Videos/Akuyaku Reijou nanode Last Boss wo Kattemimashita"
|
||||
# - url: "https://nyaa.si/?page=rss&q=Noumin+Kanren+no+Skill+bakka+Agetetara+Nazeka+Tsuyoku+Natta+1080+subsplease&c=0_0&f=0"
|
||||
# download_path: "/home/jojo/Videos/Noumin Kanren no Skill bakka Agetetara Nazeka Tsuyoku Natta"
|
||||
# - url: "https://nyaa.si/?page=rss&q=Yuusha+Party+wo+Tsuihou+sareta+Beast+Tamer+1080+judas&c=0_0&f=0"
|
||||
# download_path: "/home/jojo/Videos/Yuusha Party wo Tsuihou Sareta Beast Tamer"
|
||||
- url: "https://nyaa.si/?page=rss&q=iruma+erai+3rd+1080&c=1_2&f=0"
|
||||
download_path: "/home/jojo/Videos/Mairimashita! Iruma-kun S3"
|
||||
regexp: ^((?!HEVC).)*$
|
||||
- url: "https://nyaa.si/?page=rss&q=peter+grill+super+extra+jackie&c=0_0&f=0"
|
||||
download_path: "/home/jojo/Videos/Peter Grill to Kenja no Jikan - Super Extra"
|
||||
- url: "https://nyaa.si/?page=rss&q=bleach+sennen+kessen+nokiya&c=1_2&f=0"
|
||||
download_path: "/home/jojo/Videos/Bleach"
|
||||
- url: "https://nyaa.si/?page=rss&q=human+bug+daigaku+1080+erai&c=0_0&f=0"
|
||||
download_path: "/home/jojo/Videos/Human Bug Daigaku"
|
||||
regexp: ^((?!HEVC).)*$
|
||||
- url: "https://nyaa.si/?page=rss&q=do+it+yourself+pizza&c=0_0&f=0"
|
||||
download_path: "/home/jojo/Videos/Do it Yourself"
|
||||
- url: "https://nyaa.si/?page=rss&q=urusei+yatsura+2022+1080+pizza&c=1_2&f=0"
|
||||
download_path: "/home/jojo/Videos/Urusei Yatsura (2022)"
|
||||
- url: "https://nyaa.si/?page=rss&q=Shinmai+Renkinjutsushi+no+Tenpo+Keiei+1080+erai&c=0_0&f=0"
|
||||
regexp: ^((?!HEVC).)*$
|
||||
download_path: "/home/jojo/Videos/Shinmai Renkinjutsushi no Tenpo Keiei"
|
||||
- url: "https://nyaa.si/?page=rss&q=moyaicars+molcar+driving&c=1_2&f=0"
|
||||
download_path: "/home/jojo/Videos/Pui Pui Molcar Driving School"
|
||||
- url: "https://nyaa.si/?page=rss&q=Uchi+no+Shishou+wa+Shippo+1080+erai&c=1_2&f=0"
|
||||
download_path: "/home/jojo/Videos/Uchi no Shishou wa Shippo ga Nai"
|
||||
regexp: ^((?!HEVC).)*$
|
||||
# - url: "https://nyaa.si/?page=rss&q=bocchi+the+rock++gotch&c=1_2&f=0"
|
||||
- url: "https://nyaa.si/?page=rss&q=bocchi+the+rock+erai+1080&c=1_2&f=0"
|
||||
download_path: "/home/jojo/Videos/Bocchi the Rock"
|
||||
- url: "https://nyaa.si/?page=rss&q=Akiba+Maid+Sensou+anime+chap&c=1_2&f=0"
|
||||
download_path: "/home/jojo/Videos/Akiba Maid Sensou"
|
||||
# - url: "https://nyaa.si/?page=rss&q=shi+cao+lao+1080+mkv&c=0_0&f=0"
|
||||
# download_path: "/home/jojo/Videos/Shi Cao Lao Long Bei Guanyi E Long Zhi Ming"
|
||||
- url: "https://nyaa.si/?page=rss&q=jojo+stone+ocean+inid4c&c=0_0&f=0"
|
||||
download_path: "/home/jojo/Videos/JoJos Bizarre Adventure Stone Ocean"
|
||||
- url: "https://nyaa.si/?page=rss&q=bocchi+kessoku+band&c=2_1&f=0"
|
||||
download_path: "/home/jojo/Music"
|
||||
# ANIME WINTER 2023
|
||||
- url: "https://nyaa.si/?page=rss&q=bofuri+takanishi&c=0_0&f=0"
|
||||
download_path: "/home/jojo/Videos/Bofuri"
|
||||
- url: "https://nyaa.si/?page=rss&q=tensei+oujo+chihiro&c=0_0&f=0"
|
||||
download_path: "/home/jojo/Videos/Tensei Oujo to Tensai Reijou no Mahou Kakumei"
|
||||
- url: "https://nyaa.si/?page=rss&q=Erai-raws+Kyuuketsuki+Sugu+Shinu+2+1080+ENG&c=0_0&f=0"
|
||||
download_path: "/home/jojo/Videos/Kyuuketsuki Sugu Shinu S2"
|
||||
- url: "https://nyaa.si/?page=rss&q=tondemo+skill+de+isekai+hourou+meshi+erai+1080&c=0_0&f=0"
|
||||
download_path: "/home/jojo/Videos/Tondemo Skill de Isekai Hourou Meshi"
|
||||
- url: "https://nyaa.si/?page=rss&q=ningen+fushin+no+boukensha+1080+erai&c=0_0&f=0"
|
||||
download_path: "/home/jojo/Videos/Ningen Fushin no Boukensha-tachi ga Sekai o Sukuu You Desu"
|
||||
- url: "https://nyaa.si/?page=rss&q=Saikyou+Onmyouji+no+Isekai+Tenseiki+erai+1080&c=0_0&f=0"
|
||||
download_path: "/home/jojo/Videos/Saikyou Onmyouji no Isekai Tenseiki"
|
||||
- url: "https://nyaa.si/?page=rss&q=Saikyou+no+Minarai+Kishi+erai+1080&c=0_0&f=0"
|
||||
download_path: "/home/jojo/Videos/Eiyuu Ou, Bu o Kiwameru Tame Tenseisu - Soshite, Sekai Saikyou no Minarai Kishi"
|
||||
- url: "https://nyaa.si/?page=rss&q=benriya+saitou-san+erai+1080&c=0_0&f=0"
|
||||
download_path: "/home/jojo/Videos/Benriya Saitou-san, Isekai ni Iku"
|
||||
- url: "https://nyaa.si/?page=rss&q=oshimai+okay-subs&c=0_0&f=0"
|
||||
download_path: "/home/jojo/Videos/Oniichan wa Oshimai!"
|
||||
- url: "https://nyaa.si/?page=rss&q=Rougo+ni+Sonaete+Isekai+de+8-manmai+no+Kinka+o+Tamemasu+1080+erai&c=0_0&f=0"
|
||||
download_path: "/home/jojo/Videos/Rougo ni Sonaete Isekai de 8-manmai no Kinka o Tamemasu"
|
||||
- url: "https://nyaa.si/?page=rss&q=Isekai+Nonbiri+Nouka+erai+1080&c=1_2&f=0"
|
||||
download_path: "/home/jojo/Videos/Isekai Nonbiri Nouka"
|
||||
- url: "https://nyaa.si/?page=rss&q=erai+Kami-tachi+ni+Hirowareta+Otoko+2+1080&c=0_0&f=0"
|
||||
download_path: "/home/jojo/Videos/Kami-tachi ni Hirowareta Otoko S2"
|
||||
- url: "https://nyaa.si/?page=rss&q=erai+no+Slow+na+Second+Life+1080&c=0_0&f=0"
|
||||
download_path: "/home/jojo/Videos/Kaiko Sareta Ankoku Heishi (30-dai) no Slow na Second Life"
|
||||
- url: "https://nyaa.si/?page=rss&q=Maou+Gakuin+no+Futekigousha+II+erai+1080&c=0_0&f=0"
|
||||
download_path: "/home/jojo/Videos/Maou Gakuin no Futekigousha II"
|
||||
regexp: ^((?!HEVC).)*$
|
||||
- url: "https://nyaa.si/?page=rss&q=Hyouken+no+Majutsushi+ga+Sekai+o+Suberu+erai+1080&c=0_0&f=0"
|
||||
download_path: "/home/jojo/Videos/Hyouken no Majutsushi ga Sekai o Suberu"
|
||||
- url: "https://nyaa.si/?page=rss&q=Tsundere+Akuyaku+Reijou+Liselotte+to+Jikkyou+no+Endou-kun+to+Kaisetsu+no+Kobayashi-san+erai+1080&c=0_0&f=0"
|
||||
download_path: "/home/jojo/Videos/Tsundere Akuyaku Reijou Liselotte to Jikkyou no Endou-kun to Kaisetsu no Kobayashi-san"
|
||||
- url: "https://nyaa.si/?page=rss&q=Otonari+no+Tenshi-sama+ni+Itsunomanika+Dame+Ningen+ni+Sareteita+Ken+erai+1080&c=0_0&f=0"
|
||||
download_path: "/home/jojo/Videos/Otonari no Tenshi-sama ni Itsunomanika Dame Ningen ni Sareteita Ken"
|
||||
- url: "https://nyaa.si/?page=rss&q=Kubo-san+wa+Boku+o+Yurusanai+erai+1080&c=0_0&f=0"
|
||||
download_path: "/home/jojo/Videos/Kubo-san wa Boku o Yurusanai"
|
||||
- url: "https://nyaa.si/?page=rss&q=tomo-chan+1080+erai&c=0_0&f=0"
|
||||
download_path: "/home/jojo/Videos/Tomo-chan wa Onnanoko!"
|
||||
- url: "https://nyaa.si/?page=rss&q=Koori+Zokusei+Danshi+to+Cool+na+Douryou+Joshi+erai+1080&c=0_0&f=0"
|
||||
download_path: "/home/jojo/Videos/Koori Zokusei Danshi to Cool na Douryou Joshi"
|
||||
- url: "https://nyaa.si/?page=rss&q=nagatoro+2nd+bullysub&c=0_0&f=0"
|
||||
download_path: "/home/jojo/Videos/Ijiranaide, Nagatoro-san 2nd Attack"
|
||||
- url: "https://nyaa.si/?page=rss&q=inu+ni+nattara+suki+mgv&c=0_0&f=0"
|
||||
download_path: "/home/jojo/Videos/Inu ni Nattara Suki na Hito ni Hirowareta"
|
||||
- url: "https://nyaa.si/?page=rss&q=magical+destroyer+1080+otakuhero&c=1_2&f=0"
|
||||
download_path: "/home/jojo/Videos/Mahou Shoujo Magical Destroyers"
|
||||
- url: "https://nyaa.si/?page=rss&q=kuma+kuma+bear+s2+nines&c=1_2&f=0"
|
||||
download_path: "/home/jojo/Videos/Kuma Kuma Kuma Bear Punch!"
|
||||
- url: "https://nyaa.si/?page=rss&q=Kaminaki+Sekai+no+Kamisama+Katsudou+erai+1080&c=1_2&f=0"
|
||||
download_path: "/home/jojo/Videos/Kaminaki Sekai no Kamisama Katsudou"
|
||||
regexp: ^((?!HEVC).)*$
|
||||
- url: "https://nyaa.si/?page=rss&q=Kawaisugi+Crisis+seigyoku&c=1_2&f=0"
|
||||
download_path: "/home/jojo/Videos/Kawaisugi Crisis"
|
||||
- url: "https://nyaa.si/?page=rss&q=Kono+Subarashii+Sekai+ni+Bakuen+wo%21+chihiro+1080&c=0_0&f=0"
|
||||
download_path: "/home/jojo/Videos/Kono Subarashii Sekai ni Bakuen wo!"
|
||||
- url: "https://nyaa.si/?page=rss&q=one+turn+kill+nee-san+1080+erai&c=1_2&f=0"
|
||||
download_path: "/home/jojo/Videos/Isekai One Turn Kill Nee-san"
|
||||
regexp: ^((?!HEVC).)*$
|
||||
- url: "https://nyaa.si/?page=rss&q=Isekai+Shoukan+wa+Nidome+desu+1080+erai&c=1_2&f=0"
|
||||
download_path: "/home/jojo/Videos/Isekai Shoukan wa Nidome Desu"
|
||||
regexp: ^((?!HEVC).)*$
|
||||
- url: "https://nyaa.si/?page=rss&q=Tensei+Kizoku+no+Isekai+Boukenroku+1080+erai&c=1_2&f=0"
|
||||
download_path: "/home/jojo/Videos/Tensei Kizoku no Isekai Boukenroku - Jichou o Shiranai Kamigami no Shito"
|
||||
regexp: ^((?!HEVC).)*$
|
||||
- url: "https://nyaa.si/?page=rss&q=magical+destroyers+erai+1080&c=0_0&f=0"
|
||||
regexp: ^((?!HEVC).)*$
|
||||
download_path: "/home/jojo/Videos/Mahou Shoujo Magical Destroyers"
|
||||
- url: "https://nyaa.si/?page=rss&q=Edomae+Elf+1080+erai&c=1_2&f=0"
|
||||
regexp: ^((?!HEVC).)*$
|
||||
download_path: "/home/jojo/Videos/Edomae Elf"
|
||||
- url: "https://nyaa.si/?page=rss&q=rom+Isekai+wa+Smartphone+%222+-%22&c=0_0&f=0"
|
||||
download_path: "/media/sakura/jojo/Videos/Isekai wa Smartphone to Tomo ni 2"
|
||||
- url: "https://nyaa.si/?page=rss&q=vending+machine+judas&c=0_0&f=0"
|
||||
download_path: "/media/sakura/jojo/Videos/Reborn as a Vending Machine, I Now Wander the Dungeon"
|
||||
- url: "https://nyaa.si/?page=rss&q=Mushoku+Tensei+Jobless+Reincarnation+S2+mtbb&c=1_2&f=0"
|
||||
download_path: "/media/sakura/jojo/Videos/Mushoku Tensei Jobless Reincarnation"
|
||||
- url: "https://nyaa.si/?page=rss&q=+Level+1+Dakedo+Unique+Skill+de+Saikyou+Desu+erai+1080&c=1_2&f=0"
|
||||
regexp: ^((?!HEVC).)*$
|
||||
download_path: "/media/sakura/jojo/Videos/Level 1 Dakedo Unique Skill de Saikyou Desu"
|
||||
- url: "https://nyaa.si/?page=rss&q=helck+1080+subsplease&c=1_2&f=0"
|
||||
regexp: ^((?!HEVC).)*$
|
||||
download_path: "/media/sakura/jojo/Videos/Helck"
|
||||
- url: "https://nyaa.si/?page=rss&q=wrathmonth+lastame&c=1_2&f=0"
|
||||
regexp: ^((?!HEVC).)*$
|
||||
download_path: "/media/sakura/jojo/Videos/The Most Heretical Last Boss Queen: From Villainess to Savior"
|
||||
- url: "https://nyaa.si/?page=rss&q=Shinigami+Bocchan+to+Kuro+Maid+2nd+1080+&c=1_2&f=0"
|
||||
regexp: ^((?!HEVC).)*$
|
||||
download_path: "/media/sakura/jojo/Videos/Shinigami Bocchan to Kuro Maid 2"
|
||||
- url: "https://nyaa.si/?page=rss&q=Lv1+Maou+to+One+Room+Yuusha+1080+erai&c=1_2&f=0"
|
||||
regexp: ^((?!HEVC).)*$
|
||||
download_path: "/media/sakura/jojo/Videos/Lv1 Maou to One Room Yuusha"
|
||||
- url: "https://nyaa.si/?page=rss&q=shangri+la+frontier+1080+erai&c=0_0&f=0"
|
||||
regexp: ^((?!HEVC).)*$
|
||||
download_path: "/media/sakura/jojo/Videos/Shangri-La Frontier"
|
||||
- url: "https://nyaa.si/?page=rss&q=Toaru+Ossan+erai+1080&c=0_0&f=0"
|
||||
regexp: ^((?!HEVC).)*$
|
||||
download_path: "/media/sakura/jojo/Videos/Toaru Ossan no VRMMO Katsudou Ki"
|
||||
- url: "https://nyaa.si/?page=rss&q=Dekoboko+Majo+no+Oyako+Jijou+erai+1080&c=0_0&f=0"
|
||||
regexp: ^((?!HEVC).)*$
|
||||
download_path: "/media/sakura/jojo/Videos/Dekoboko Majo no Oyako Jijou"
|
||||
- url: "https://nyaa.si/?page=rss&q=potion+danomi+erai+1080&c=0_0&f=0"
|
||||
regexp: ^((?!HEVC).)*$
|
||||
download_path: "/media/sakura/jojo/Videos/Potion-danomi de Ikinobimasu!"
|
||||
- url: "https://nyaa.si/?page=rss&q=Hyakkano+1080+erai&c=0_0&f=0"
|
||||
regexp: ^((?!HEVC).)*$
|
||||
download_path: "/media/sakura/jojo/Videos/Hyakkano"
|
||||
- url: "https://nyaa.si/?page=rss&q=Tearmoon+1080+erai&c=0_0&f=0"
|
||||
regexp: ^((?!HEVC).)*$
|
||||
download_path: "/media/sakura/jojo/Videos/Tearmoon Teikoku Monogatari"
|
||||
- url: "https://nyaa.si/?page=rss&q=undead+unluck+1080+breeze&c=0_0&f=0"
|
||||
regexp: ^((?!HEVC).)*$
|
||||
download_path: "/media/sakura/jojo/Videos/Undead Unluck"
|
||||
- url: "https://nyaa.si/?page=rss&q=Watashi+no+Oshi+wa+Akuyaku+Reijou+erai+1080&c=0_0&f=0"
|
||||
regexp: ^((?!v0).)*$
|
||||
download_path: "/media/sakura/jojo/Videos/Watashi no Oshi wa Akuyaku Reijou"
|
||||
- url: "https://nyaa.si/?page=rss&q=Kikansha+no+Mahou+wa+Tokubetsu+desu+erai+1080&c=0_0&f=0"
|
||||
regexp: ^((?!HEVC).)*$
|
||||
download_path: "/media/sakura/jojo/Videos/Kikansha no Mahou wa Tokubetsu Desu"
|
||||
- url: "https://nyaa.si/?page=rss&q=Saihate+no+Paladin%3A+Tetsusabi+no+Yama+no+Ou+erai+1080&c=0_0&f=0"
|
||||
regexp: ^((?!HEVC).)*$
|
||||
download_path: "/media/sakura/jojo/Videos/Saihate no Paladin - Tetsusabi no Yama no Ou"
|
||||
- url: "https://nyaa.si/?page=rss&q=dark+gathering+elainaya&c=1_2&f=0"
|
||||
download_path: "/media/sakura/jojo/Videos/Dark Gathering"
|
||||
- url: "https://nyaa.si/?page=rss&q=buta+no+liver+erai+1080&c=1_2&f=0"
|
||||
regexp: ^((?!HEVC).)*$
|
||||
download_path: "/media/sakura/jojo/Videos/Buta no Liver wa Kanetsu Shiro"
|
||||
- url: "https://nyaa.si/?page=rss&q=kamierabi+1080+erai&c=1_2&f=0"
|
||||
regexp: ^((?!HEVC).)*$
|
||||
download_path: "/media/sakura/jojo/Videos/Kamierabi"
|
||||
- url: "https://nyaa.si/?page=rss&q=spy+x+family+season+2+1080+erai&c=1_2&f=0"
|
||||
regexp: ^((?!HEVC).)*$
|
||||
download_path: "/media/sakura/jojo/Videos/Spy x Family Season 2"
|
||||
- url: "https://nyaa.si/?page=rss&q=Ikenaikyo+1080+erai&c=1_2&f=0"
|
||||
regexp: ^((?!HEVC).)*$
|
||||
download_path: "/media/sakura/jojo/Videos/Ikenaikyo"
|
||||
- url: "https://nyaa.si/?page=rss&q=Yuzuki-san+Chi+no+Yonkyoudai+1080+subsplease+1080&c=1_2&f=0"
|
||||
regexp: ^((?!HEVC).)*$
|
||||
download_path: "/media/sakura/jojo/Videos/Yuzuki-san Chi no Yonkyoudai"
|
||||
- url: "https://nyaa.si/?page=rss&q=Boushoku+no+Berserk+1080+erai&c=0_0&f=0"
|
||||
regexp: ^((?!HEVC).)*$
|
||||
download_path: "/media/sakura/jojo/Videos/Boushoku no Berserk"
|
||||
- url: "https://nyaa.si/?page=rss&q=Hikikomari+Kyuuketsuki+no+Monmon+chihiro&c=0_0&f=0"
|
||||
regexp: ^((?!HEVC).)*$
|
||||
download_path: "/media/sakura/jojo/Videos/Hikikomari Kyuuketsuki no Monmon"
|
||||
- url: "https://nyaa.si/?page=rss&q=Nozomanu+Fushi+no+Boukensha+1080+erai&c=1_2&f=0"
|
||||
regexp: ^((?!HEVC).)*$
|
||||
download_path: "/media/sakura/jojo/Videos/Nozomanu Fushi no Boukensha"
|
||||
- url: "https://nyaa.si/?page=rss&q=Sasaki+to+Pii-chan+1080+subsplease&c=1_2&f=0"
|
||||
regexp: ^((?!HEVC).)*$
|
||||
download_path: "/media/sakura/jojo/Videos/Sasaki to Pii-chan"
|
5
script/bin/album.sh
Executable file
5
script/bin/album.sh
Executable file
|
@ -0,0 +1,5 @@
|
|||
#!/bin/sh
|
||||
|
||||
find . -maxdepth 1 -type d | while read -r i;do
|
||||
find "$i" -maxdepth 1 -iregex '.*\.\(jpg\|png\)' | sort | head -n1
|
||||
done | sxiv -qito | cut -d'/' -f2 | xargs -rI{} sxiv -qr {} &>/dev/null
|
23
script/bin/bspwm_resize
Executable file
23
script/bin/bspwm_resize
Executable file
|
@ -0,0 +1,23 @@
|
|||
#!/usr/bin/env dash
|
||||
#
|
||||
# easier resizing with bspwm
|
||||
#
|
||||
# wm key bindings
|
||||
|
||||
# set step
|
||||
if bspc query -N -n focused.floating > /dev/null; then
|
||||
step=20
|
||||
else
|
||||
step=100
|
||||
fi
|
||||
|
||||
case "$1" in
|
||||
west) dir=right; falldir=left; x="-$step"; y=0;;
|
||||
east) dir=right; falldir=left; x="$step"; y=0;;
|
||||
north) dir=top; falldir=bottom; x=0; y="-$step";;
|
||||
south) dir=top; falldir=bottom; x=0; y="$step";;
|
||||
esac
|
||||
|
||||
bspc node -z "$dir" "$x" "$y" || bspc node -z "$falldir" "$x" "$y"
|
||||
|
||||
# vim: ft=sh
|
13
script/bin/bspwmrc
Executable file
13
script/bin/bspwmrc
Executable file
|
@ -0,0 +1,13 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
# source the colors.
|
||||
. "${HOME}/.cache/wal/colors.sh"
|
||||
|
||||
# Set the border colors.
|
||||
bspc config normal_border_color "$color1"
|
||||
bspc config active_border_color "$color2"
|
||||
bspc config focused_border_color "$color15"
|
||||
# Use the line below if you are on bspwm >= 0.9.4
|
||||
bspc config presel_feedback_color "$color1"
|
||||
|
||||
cd "$HOME/.cache/wal" && plasma-theme -c MoeDarkCustom.colors -w qt5ct-style || exit
|
3
script/bin/dmenu
Executable file
3
script/bin/dmenu
Executable file
|
@ -0,0 +1,3 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
rofi -dmenu -fullscreen -p " Menu" "$1"
|
127
script/bin/epub-thumbnailer
Executable file
127
script/bin/epub-thumbnailer
Executable file
|
@ -0,0 +1,127 @@
|
|||
#!/usr/bin/python
|
||||
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# Author: Mariano Simone (http://marianosimone.com)
|
||||
# Version: 1.0
|
||||
# Name: epub-thumbnailer
|
||||
# Description: An implementation of a cover thumbnailer for epub files
|
||||
# Installation: see README
|
||||
|
||||
import os
|
||||
import re
|
||||
from io import BytesIO
|
||||
import sys
|
||||
from xml.dom import minidom
|
||||
|
||||
try:
|
||||
from urllib.request import urlopen
|
||||
except ImportError: # Python 2
|
||||
from urllib import urlopen
|
||||
|
||||
import zipfile
|
||||
try:
|
||||
from PIL import Image
|
||||
except ImportError:
|
||||
import Image
|
||||
|
||||
img_ext_regex = re.compile(r'^.*\.(jpg|jpeg|png)$', flags=re.IGNORECASE)
|
||||
cover_regex = re.compile(r'.*cover.*\.(jpg|jpeg|png)', flags=re.IGNORECASE)
|
||||
|
||||
def get_cover_from_manifest(epub):
|
||||
|
||||
# open the main container
|
||||
container = epub.open("META-INF/container.xml")
|
||||
container_root = minidom.parseString(container.read())
|
||||
|
||||
# locate the rootfile
|
||||
elem = container_root.getElementsByTagName("rootfile")[0]
|
||||
rootfile_path = elem.getAttribute("full-path")
|
||||
|
||||
# open the rootfile
|
||||
rootfile = epub.open(rootfile_path)
|
||||
rootfile_root = minidom.parseString(rootfile.read())
|
||||
|
||||
# find possible cover in meta
|
||||
cover_id = None
|
||||
for meta in rootfile_root.getElementsByTagName("meta"):
|
||||
if meta.getAttribute("name") == "cover":
|
||||
cover_id = meta.getAttribute("content")
|
||||
break
|
||||
|
||||
# find the manifest element
|
||||
manifest = rootfile_root.getElementsByTagName("manifest")[0]
|
||||
for item in manifest.getElementsByTagName("item"):
|
||||
item_id = item.getAttribute("id")
|
||||
item_properties = item.getAttribute("properties")
|
||||
item_href = item.getAttribute("href")
|
||||
item_href_is_image = img_ext_regex.match(item_href.lower())
|
||||
item_id_might_be_cover = item_id == cover_id or ('cover' in item_id and item_href_is_image)
|
||||
item_properties_might_be_cover = item_properties == cover_id or ('cover' in item_properties and item_href_is_image)
|
||||
if item_id_might_be_cover or item_properties_might_be_cover:
|
||||
return os.path.join(os.path.dirname(rootfile_path), item_href)
|
||||
|
||||
return None
|
||||
|
||||
def get_cover_by_filename(epub):
|
||||
no_matching_images = []
|
||||
for fileinfo in epub.filelist:
|
||||
if cover_regex.match(fileinfo.filename):
|
||||
return fileinfo.filename
|
||||
if img_ext_regex.match(fileinfo.filename):
|
||||
no_matching_images.append(fileinfo)
|
||||
return _choose_best_image(no_matching_images)
|
||||
|
||||
def _choose_best_image(images):
|
||||
if images:
|
||||
return max(images, key=lambda f: f.file_size)
|
||||
return None
|
||||
|
||||
def extract_cover(cover_path):
|
||||
if cover_path:
|
||||
cover = epub.open(cover_path)
|
||||
im = Image.open(BytesIO(cover.read()))
|
||||
im.thumbnail((size, size), Image.ANTIALIAS)
|
||||
if im.mode == "CMYK":
|
||||
im = im.convert("RGB")
|
||||
im.save(output_file, "PNG")
|
||||
return True
|
||||
return False
|
||||
|
||||
# Which file are we working with?
|
||||
input_file = sys.argv[1]
|
||||
# Where do does the file have to be saved?
|
||||
output_file = sys.argv[2]
|
||||
# Required size?
|
||||
size = int(sys.argv[3])
|
||||
|
||||
# An epub is just a zip
|
||||
if os.path.isfile(input_file):
|
||||
file_url = open(input_file, "rb")
|
||||
else:
|
||||
file_url = urlopen(input_file)
|
||||
|
||||
epub = zipfile.ZipFile(BytesIO(file_url.read()), "r")
|
||||
|
||||
extraction_strategies = [get_cover_from_manifest, get_cover_by_filename]
|
||||
|
||||
for strategy in extraction_strategies:
|
||||
try:
|
||||
cover_path = strategy(epub)
|
||||
if extract_cover(cover_path):
|
||||
exit(0)
|
||||
except Exception as ex:
|
||||
print("Error getting cover using %s: " % strategy.__name__, ex)
|
||||
|
||||
exit(1)
|
202
script/bin/mixer
Executable file
202
script/bin/mixer
Executable file
|
@ -0,0 +1,202 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
###########################################
|
||||
# Displays audio sinks and control volume #
|
||||
###########################################
|
||||
|
||||
sink="$HOME/.cache/mixer/sink"
|
||||
|
||||
# list options
|
||||
help() {
|
||||
echo "Usage: mixer COMMAND [OPTION] - Display audio sinks and control volume
|
||||
|
||||
listen [monitor events and display current sink volume]
|
||||
├── --color=color2 [xrdb foreground color]
|
||||
└── --volume-icons=\"奄,奔,墳, \" [comma separated list of icons]
|
||||
update {+,-}1% [update current sink volume]
|
||||
switch [switch to the next sink]
|
||||
--help, -h [this help page]
|
||||
懶 toggle [toggle between play and pause]
|
||||
玲 prev [play previous song]
|
||||
怜 next [play next song]
|
||||
栗 stop [stop playing]
|
||||
position [position in percent]
|
||||
"
|
||||
# restore [restore saved configuration]
|
||||
}
|
||||
|
||||
# return selected color generated by pywal
|
||||
get_color() {
|
||||
grep -o "$1.*" "$HOME/.cache/wal/colors.sh" | sed "s/$1='\(.*\)'.*/\1/"
|
||||
}
|
||||
|
||||
# display volume icon
|
||||
# @param: volume between 1 and 100, normalized_volume otherwise
|
||||
volume_icon() {
|
||||
volume=${1:-$(normalized_volume)}
|
||||
len_icons=$(echo "$volume_icons" | wc -l)
|
||||
for i in $(seq 1 "$len_icons"); do
|
||||
if [ "$(echo "$i * (100/$len_icons) + 1" | bc -l | xargs printf "%0.f\n" )" -ge "${volume}" ]; then
|
||||
echo "$volume_icons" | sed "$i!d"
|
||||
break
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# return current volume associated with current sink
|
||||
current_volume() {
|
||||
playerctl --player="$(current_sink)" volume
|
||||
}
|
||||
|
||||
# print current sink
|
||||
current_sink() {
|
||||
cat "$sink"
|
||||
}
|
||||
|
||||
# return volume between 0 and 100%
|
||||
# @param: volume between 0 and 1.0, current_volume otherwise
|
||||
normalized_volume() {
|
||||
volume=${1:-$(current_volume)}
|
||||
echo "${volume} * 100" | bc -l | xargs printf "%0.f\n"
|
||||
}
|
||||
|
||||
# save sinks with volumes
|
||||
# save() {
|
||||
# aucatctl | tr '\n' ' ' > "$save"
|
||||
# }
|
||||
|
||||
# update volume with increment of value
|
||||
# value between 0..130
|
||||
# increment +n or -n
|
||||
update() {
|
||||
operand=$(echo "$1" | grep -o '+\|-')
|
||||
value=$(echo "$1" | grep -o '[[:digit:]]*')
|
||||
volume=$(normalized_volume)
|
||||
{ [ "$volume" -eq 0 ] && [ "$operand" = "-" ]; } || { [ "$volume" -eq 130 ] && [ "$operand" = "+" ]; } && return
|
||||
# sndioctl "$(current_sink).level=$operand$(echo "scale=2;$value/100" | bc -l)"
|
||||
playerctl --player="$(current_sink)" volume "$(echo "scale=2;$value/100" | bc -l)$operand"
|
||||
}
|
||||
|
||||
# automatically set current sink to last modified
|
||||
auto_switch_sink() {
|
||||
new_sink="$(echo "$1" | cut -f 1 -d ' ')"
|
||||
[ "$new_sink" = '' ] && return
|
||||
[ "$new_sink" = 'No players were found' ] && return
|
||||
[ "$new_sink" = "$(current_sink)" ] || echo "$new_sink" > "$sink"
|
||||
}
|
||||
|
||||
mpris() {
|
||||
while true; do
|
||||
player_status=$(playerctl status 2> /dev/null)
|
||||
if [ "$player_status" = "Playing" ]; then
|
||||
volume=$(playerctl status --format '{{volume}}')
|
||||
player=$(playerctl status --format '{{playerName}}')
|
||||
normalized_volume=$(normalized_volume "$volume")
|
||||
echo "$player %{F$color}$(volume_icon "$normalized_volume")%{F-} ${normalized_volume}%"
|
||||
sleep 1
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# listen on sndiod new events and sink change
|
||||
listen() {
|
||||
# on separated thread listen to playerctl events
|
||||
{
|
||||
playerctl --all-players --follow --format '{{playerName}} {{volume}}' status 2> /dev/null | while read -r MSG; do
|
||||
auto_switch_sink "$MSG"
|
||||
display
|
||||
done
|
||||
} &
|
||||
# watch for current sink value stored in file change
|
||||
while inotifywait -q -q -e close_write "$sink"; do
|
||||
display
|
||||
done
|
||||
}
|
||||
|
||||
# display sink and associated volume in polybar
|
||||
display() {
|
||||
echo "$(current_sink) %{F$color}$(volume_icon)%{F-} $(normalized_volume)%"
|
||||
}
|
||||
|
||||
# switch to the next available sink
|
||||
switch() {
|
||||
sinks=$(playerctl -l | cut -f 1 -d '.')
|
||||
max_index=$(echo "$sinks" | wc -l)
|
||||
current_index=$(echo "$sinks" | grep -n "$(current_sink)" | cut -f 1 -d ':')
|
||||
next_index=$(echo "$current_index%$max_index + 1" | bc)
|
||||
echo "$sinks" | sed "$next_index!d" | cut -f 1 -d '=' | sed 's/.level//' > "$sink"
|
||||
}
|
||||
|
||||
# restore last saved volume per sink
|
||||
# restore() {
|
||||
# [ -f "$save" ] && aucatctl "$(cat "$save")"
|
||||
# }
|
||||
|
||||
is_mpd_sink() {
|
||||
[ "$(current_sink | grep -o 'mpd')" = "mpd" ] && echo "true" || echo "false"
|
||||
}
|
||||
|
||||
position() {
|
||||
[ "$(is_mpd_sink)" = "true" ] && mpc status | grep -oP "\(\K[^(].*(?=%)"
|
||||
}
|
||||
|
||||
toggle() {
|
||||
playerctl --player="$(current_sink)" play-pause
|
||||
eww open cover
|
||||
eww open progress-bar
|
||||
}
|
||||
|
||||
prev() {
|
||||
playerctl --player="$(current_sink)" previous
|
||||
"$HOME/.config/ncmpcpp/art.sh"
|
||||
}
|
||||
|
||||
next() {
|
||||
playerctl --player="$(current_sink)" next
|
||||
"$HOME/.config/ncmpcpp/art.sh"
|
||||
}
|
||||
|
||||
stop() {
|
||||
playerctl --player="$(current_sink)" stop
|
||||
eww close cover
|
||||
eww close progress-bar
|
||||
}
|
||||
|
||||
main() {
|
||||
[ ! -f "$sink" ] && mkdir -p "$HOME/.cache/mixer" && echo "output" > "$sink"
|
||||
color=$(get_color 'color2')
|
||||
volume_icons="奄\n奔\n墳\n"
|
||||
case "$1" in
|
||||
listen)
|
||||
case "$2" in
|
||||
--color=?*)
|
||||
case "$3" in
|
||||
--volume-icons=?*)
|
||||
volume_icons=$(echo "${3#*=}" | tr ',' '\n')
|
||||
esac
|
||||
color=$(get_color "${2#*=}");;
|
||||
esac
|
||||
listen;;
|
||||
mpris)
|
||||
mpris;;
|
||||
update)
|
||||
shift;
|
||||
update "$@";;
|
||||
switch)
|
||||
switch;;
|
||||
prev)
|
||||
prev;;
|
||||
next)
|
||||
next;;
|
||||
toggle)
|
||||
toggle;;
|
||||
stop)
|
||||
stop;;
|
||||
position)
|
||||
position;;
|
||||
--help|-h|*)
|
||||
help;;
|
||||
esac
|
||||
}
|
||||
|
||||
main "$@"
|
11
script/bin/mount_sailfish
Executable file
11
script/bin/mount_sailfish
Executable file
|
@ -0,0 +1,11 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
mount() {
|
||||
sshfs -o uid=1000 -o gid=1000 "$1:/home/defaultuser" "$HOME/mnt/sailfish/internal"
|
||||
sshfs -o uid=1000 -o gid=1000 "$1:/media/ebbfe37f-2979-4239-b5e0-725872f38289/Music" "$HOME/mnt/sailfish/sdcard"
|
||||
}
|
||||
|
||||
interface="${1:-wifi}"
|
||||
|
||||
[ "$interface" = "wifi" ] && sailfish="sailfish-x" || sailfish="sailfish-wired"
|
||||
mount "$sailfish"
|
234
script/bin/pidswallow
Executable file
234
script/bin/pidswallow
Executable file
|
@ -0,0 +1,234 @@
|
|||
#!/bin/sh
|
||||
usage="pidswallow (pid swallow WM/DE independent)
|
||||
Hides terminal window automatically, so that you don't have to
|
||||
|
||||
pidswallow [OPTION ...]
|
||||
|
||||
OPTIONS:
|
||||
-h --help Show this message
|
||||
-s --swallow <CWID> Hides parent window of the given child window id.
|
||||
-v --vomit <CWID> Unhides parent window of the given child window id.
|
||||
-t --toggle <CWID> toggle between swallow and vomit. (default)
|
||||
-g --glue treat if parent and child window are same. (recommended)
|
||||
-l --loop listen and hide / unhide window on launch / remove.
|
||||
-V --verbose Shows useful information.
|
||||
|
||||
bugs/issues: https://github.com/liupold/pidswallow.
|
||||
"
|
||||
shell=" ${PIDSWALLOW_SHELL:-" ${SHELL##*/} "} "
|
||||
terminal=" ${PIDSWALLOW_TERMINAL:-" $TERMINAL "} "
|
||||
blacklist=" ${PIDSWALLOW_BLACKLIST:-" $terminal "} "
|
||||
glue_blacklist=" $PIDSWALLOW_GLUE_BLACKLIST "
|
||||
swallow_command="${PIDSWALLOW_SWALLOW_COMMAND:-xdo hide \$pwid}"
|
||||
vomit_command="${PIDSWALLOW_VOMIT_COMMAND:-xdo show \$pwid}"
|
||||
preglue_hook="$PIDSWALLOW_PREGLUE_HOOK"
|
||||
|
||||
verbose=0
|
||||
glue=0
|
||||
|
||||
vecho() {
|
||||
[ "$verbose" -eq 1 ] && echo "$@" | paste -s -d ' '
|
||||
}
|
||||
|
||||
vomit() {
|
||||
unset cwid pwid x y w h # similar to local
|
||||
cwid=$(printf '0x%x' "$1") # hexadecimal conversion
|
||||
[ -f "/tmp/swallowed-by-$cwid" ] && read -r pwid < "/tmp/swallowed-by-$cwid"
|
||||
[ -n "$pwid" ] || return 1
|
||||
vecho "vomit - $cwid vomiting $pwid using $vomit_command"
|
||||
echo "pwid=$pwid;cwid=$cwid;" "$vomit_command" | /bin/sh
|
||||
|
||||
|
||||
vecho "vomit - $cwid vomited $pwid"
|
||||
rm "/tmp/swallowed-by-$cwid"
|
||||
|
||||
if xwininfo -id "$cwid" >/dev/null 2>&1; then
|
||||
xdo activate "$cwid" # if child still exists, re-focus it
|
||||
else
|
||||
xdo activate "$pwid"
|
||||
fi
|
||||
|
||||
if [ "$glue" -eq 1 ] && [ "${glue_blacklist#* $cname}" = "$glue_blacklist" ];
|
||||
then
|
||||
[ -f "/tmp/swallowed-by-$cwid-structure" ] && {
|
||||
read -r structure < "/tmp/swallowed-by-$cwid-structure"
|
||||
structure="${structure#*\(}"; x="${structure%%,*}"
|
||||
structure="${structure#*,}"; y="${structure%%)*}"
|
||||
structure="${structure#*width }"; w="${structure%%,*}"
|
||||
h="${structure#*height }"
|
||||
xdo resize -w "$w" -h "$h" "$pwid"
|
||||
xdo move -x "$x" -y "$y" "$pwid"
|
||||
}
|
||||
|
||||
[ -f "/tmp/swallowed-by-$cwid-desk" ] && {
|
||||
read -r desk < "/tmp/swallowed-by-$cwid-desk"
|
||||
desk="${desk##* }"
|
||||
xdotool set_desktop_for_window "$pwid" "$desk"
|
||||
}
|
||||
fi
|
||||
rm -f "/tmp/swallowed-by-$cwid-structure" "/tmp/swallowed-by-$cwid-desk"
|
||||
|
||||
}
|
||||
|
||||
swallow() {
|
||||
# return values
|
||||
# 0 -> Found and swallowed
|
||||
# 3 -> window lacks a _NET_WM_PID property.
|
||||
# 4 -> window already swallowed / not possible
|
||||
# 5 -> swallow_command failed
|
||||
unset cwid pwid cname pname ppid cpid x y w h # similar to local.
|
||||
cwid=$(printf '0x%x' "$1") # hexadecimal conversion
|
||||
[ -f "/tmp/swallowed-by-$cwid" ] && return 4
|
||||
cpid="$(xdo pid "$cwid")" || return 3
|
||||
cname="$(ps -p "$cpid" -o comm=)"
|
||||
[ "${blacklist#* $cname }" != "$blacklist" ] && return 0
|
||||
process_tree="$(pstree -ATlsp "$cpid" \
|
||||
| sed -n -e 's|(|:|g' -e 's|)||g' \
|
||||
-e 's|---|\n|g' -e 's|-+-|\n|g' \
|
||||
-e 's/\n'"$cname"':'"$cpid"'.*//' -e '1p' | tac)"
|
||||
vecho "swallow - Scanning process tree of $cname($cpid): $process_tree"
|
||||
for parent in $process_tree; do
|
||||
pname="${parent%%:*}" # ancestor name
|
||||
ppid="${parent##*:}"
|
||||
if [ "${shell#* $pname }" != "$shell" ] && [ -f "/tmp/term-wid-$ppid" ]; then
|
||||
vecho "swallow - $pname($ppid) detected as shell"
|
||||
read -r pwid < "/tmp/term-wid-$ppid"
|
||||
break
|
||||
elif [ "${terminal#* $pname}" != "$terminal" ]; then
|
||||
vecho "swallow - $pname($ppid) detected as terminal (fallback)"
|
||||
pwid=$(xdo id -p "$ppid" | {
|
||||
read -r temp; echo "$temp"
|
||||
} )
|
||||
break
|
||||
fi
|
||||
done
|
||||
[ -z "$pwid" ] && return 4
|
||||
if [ "$glue" -eq 1 ]; then
|
||||
vecho "swallow - Running preglue hook: $preglue_hook"
|
||||
echo "pwid=$pwid;cwid=$cwid;" "$preglue_hook" | /bin/sh
|
||||
fi
|
||||
vecho "swallow - $cwid swallowing $pwid using $swallow_command"
|
||||
echo "pwid=$pwid;cwid=$cwid;" "$swallow_command" | /bin/sh || return 5
|
||||
echo "$pwid" > "/tmp/swallowed-by-$cwid"
|
||||
vecho "swallow - $cname ($cwid) swallowed $pname (or its terminal) ($pwid)"
|
||||
|
||||
[ "$glue" -ne 1 ] ||\
|
||||
[ "${glue_blacklist#* $cname}" != "$glue_blacklist" ] && return 0
|
||||
|
||||
|
||||
pgeo=$(xwininfo -shape -id "$pwid" | tr -d '\n ')
|
||||
x="${pgeo##*Absoluteupper-leftX:}"; x="${x%%Absoluteupper-leftY:*}"
|
||||
y="${pgeo##*Absoluteupper-leftY:}"; y="${y%%Relativeupper-leftX:*}"
|
||||
w="${pgeo##*Width:}"; w="${w%%Height:*}"
|
||||
h="${pgeo##*Height:}"; h="${h%%Depth:*}"
|
||||
|
||||
xdo resize -w "$w" -h "$h" "$cwid"
|
||||
xdo move -x "$x" -y "$y" "$cwid"
|
||||
echo "event ($x,$y), width $w, height $h" \
|
||||
> "/tmp/swallowed-by-$cwid-structure"
|
||||
xprop -notype -id "$cwid" _NET_WM_DESKTOP > "/tmp/swallowed-by-$cwid-desk"
|
||||
# subscribe to window
|
||||
{
|
||||
xev -id "$cwid" -event structure -event property | while read -r event ; do
|
||||
[ "${event#*DestroyNotify}" != "$event" ] && pkill -s 0 -f "xev.*$cwid"
|
||||
[ "${event#* width }" != "$event" ] \
|
||||
&& echo "$event" > "/tmp/swallowed-by-$cwid-structure"
|
||||
[ "${event#*_NET_WM_DESKTOP}" != "$event" ] \
|
||||
&& xprop -notype -id "$cwid" _NET_WM_DESKTOP \
|
||||
> "/tmp/swallowed-by-$cwid-desk"
|
||||
done
|
||||
} &
|
||||
}
|
||||
|
||||
toggle() {
|
||||
cwid=$(printf '0x%x' "$1") # hexadecimal conversion
|
||||
if [ -f "/tmp/swallowed-by-$cwid" ]; then
|
||||
vomit "$cwid"
|
||||
return "$?"
|
||||
else
|
||||
glue_="$glue" && \
|
||||
glue=0 && swallow "$cwid" && glue="$glue_" # overwrite here.
|
||||
return "$?"
|
||||
fi
|
||||
}
|
||||
|
||||
loop() {
|
||||
prev_event="$(xprop -root _NET_CLIENT_LIST)"
|
||||
xprop -spy -root _NET_CLIENT_LIST | while read -r event; do
|
||||
unset node_added node_removed
|
||||
for wid in $(echo "${event##*# }" | tr -d ','); do
|
||||
[ "${prev_event#*$wid}" = "$prev_event" ] \
|
||||
&& node_added="$wid" && break
|
||||
done
|
||||
for wid in $(echo "${prev_event##*# }" | tr -d ','); do
|
||||
[ "${event#*$wid}" = "$event" ] \
|
||||
&& node_removed="$wid" && break
|
||||
done
|
||||
prev_event="$event"
|
||||
[ -n "$node_added" ] && swallow "$node_added"
|
||||
[ -n "$node_removed" ] && {
|
||||
xprop -id "$node_removed" >/dev/null 2>&1 || vomit "$node_removed"
|
||||
}
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
[ -p /dev/stdin ] && eval set -- "$* $(cat /dev/stdin)" # basic pipe support
|
||||
[ "$#" -eq 0 ] && echo "$usage" && exit 1
|
||||
|
||||
TEMP=$(getopt -o 'Vghlt:s:v:' --long 'verbose,glue,help,loop,toggle:,swallow:,vomit:' \
|
||||
-n 'pidswallow' -- "$@")
|
||||
|
||||
# precheck
|
||||
eval set -- "${TEMP}"
|
||||
while true; do
|
||||
case "$1" in
|
||||
'-V'|'--verbose')
|
||||
verbose=1
|
||||
vecho "shell: \"$shell\""
|
||||
vecho "terminal: \"$terminal\""
|
||||
shift; continue;;
|
||||
'-g'|'--glue')
|
||||
glue=1
|
||||
shift; continue;;
|
||||
'--')
|
||||
shift; break;;
|
||||
*)
|
||||
shift; continue;;
|
||||
esac
|
||||
done
|
||||
|
||||
eval set -- "${TEMP}"; unset TEMP
|
||||
while true; do
|
||||
case "$1" in
|
||||
'-V'|'--verbose')
|
||||
shift; continue;;
|
||||
'-g'|'--glue')
|
||||
shift; continue;;
|
||||
'-h' | '--help' )
|
||||
echo "$usage" && exit 0;;
|
||||
'-t'|'--toggle')
|
||||
toggle "$2" || exit "$?"
|
||||
shift 2; continue;;
|
||||
'-s'|'--swallow')
|
||||
swallow "$2" || exit "$?"
|
||||
shift 2; continue;;
|
||||
'-v'|'--vomit')
|
||||
vomit "$2" || exit "$?"
|
||||
shift 2; continue;;
|
||||
'-l'|'--loop')
|
||||
loop || exit "$?"
|
||||
shift; continue;;
|
||||
'--')
|
||||
shift; break;;
|
||||
*)
|
||||
echo "Internal error!" >&2
|
||||
echo "$usage" && exit 1;;
|
||||
esac
|
||||
done
|
||||
# toggle WID on first non-flag argument
|
||||
[ -n "$*" ] && toggle "$1" && shift
|
||||
# error if there's more than one non-flag argument
|
||||
if [ -n "$*" ]; then
|
||||
echo "Unrecognized trailing option '$*'" >&2; exit 1
|
||||
fi
|
17
script/bin/rounded_borders.sh
Executable file
17
script/bin/rounded_borders.sh
Executable file
|
@ -0,0 +1,17 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
SOURCE="$1"
|
||||
OUTPUT="$HOME/.config/feh/wallpaper.png"
|
||||
BORDER_RADIUS=10
|
||||
|
||||
rounded_corners() {
|
||||
convert -quiet "$SOURCE" -resize 1920x1080^ -gravity center -crop 1920x1080+0+0 +repage "$OUTPUT"
|
||||
convert -quiet "$OUTPUT" \
|
||||
\( +clone -crop $((BORDER_RADIUS+1))x$((BORDER_RADIUS+1))+0+0 -fill white -colorize 100% \
|
||||
-draw "fill black circle $BORDER_RADIUS,$BORDER_RADIUS $BORDER_RADIUS,0" \
|
||||
-background black -alpha shape \
|
||||
\( +clone -flip \) \( +clone -flop \) \( +clone -flip \) \
|
||||
\) -flatten "$OUTPUT"
|
||||
}
|
||||
|
||||
rounded_corners && feh --bg-fill "$OUTPUT"
|
7
script/bin/transmission-rss
Executable file
7
script/bin/transmission-rss
Executable file
|
@ -0,0 +1,7 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
#podman run -d --name transmission-rss --restart=always --network=host \
|
||||
# -v "$HOME/Videos/transmission-rss.conf:/etc/transmission-rss.conf" \
|
||||
# docker.io/nning2/transmission-rss:latest
|
||||
|
||||
podman start transmission-rss
|
8
script/bin/update-greasemonkey-filter
Executable file
8
script/bin/update-greasemonkey-filter
Executable file
|
@ -0,0 +1,8 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
cd "$HOME/bin/src/jhide" || exit
|
||||
|
||||
[ -f "$HOME/.local/share/qutebrowser/greasemonkey/jhide.js" ] && rm ~/.local/share/qutebrowser/greasemonkey/jhide.js
|
||||
./jhide.sh ~/.config/qutebrowser/my-filters.txt -o ~/.local/share/qutebrowser/greasemonkey/jhide.js
|
||||
|
||||
echo "Hidden elements updated. Run :greasemonkey-reload to take effect."
|
7
script/bin/wallpaper
Executable file
7
script/bin/wallpaper
Executable file
|
@ -0,0 +1,7 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
WALLPAPER="$1"
|
||||
|
||||
wal -i "$WALLPAPER" -o "$HOME/bin/bspwmrc" -q
|
||||
# "$HOME/bin/rounded_borders.sh" "$WALLPAPER"
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 11 MiB After Width: | Height: | Size: 11 MiB |
Loading…
Add table
Add a link
Reference in a new issue