From cc239d21c3b5f04a8ab25d98283b5d0254280886 Mon Sep 17 00:00:00 2001 From: dalfuss Date: Thu, 16 Jan 2025 09:38:46 +0100 Subject: [PATCH] I am the Captain, my name is Dave! --- README.md | 88 +++++++++++++++ lyrics.yml | 283 +++++++++++++++++++++++++++++++++++++++++++++++ mastodon.yml | 2 + requirements.txt | 12 ++ wicked.py | 33 ++++++ 5 files changed, 418 insertions(+) create mode 100644 README.md create mode 100644 lyrics.yml create mode 100644 mastodon.yml create mode 100644 requirements.txt create mode 100644 wicked.py diff --git a/README.md b/README.md new file mode 100644 index 0000000..9e7fe82 --- /dev/null +++ b/README.md @@ -0,0 +1,88 @@ +# Dave + +A Mastodon Bot written in Python that posts random Scooter quotes every time you run it. + +[@dave@cyber.ms](https://cyver.ms/@Dave) + +Big thanks to [Ramses](https://corteximplant.com/@revengeday) for helping me and making it even better! :3 + +--- + +## Requirements + +- Python3 +- pyYAML +- Mastodon.py + +--- + +## Installation + +1. **Clone the repository**: + + ```sh + git clone https://git.cyberwa.re/dalfuss/Dave.git + ``` + +2. **Navigate to the project directory**: + + ```sh + cd Dave + ``` + +3. **Create Mastodon App and enter Credentials**: + - Go to your Mastodon Settings -> Development + - Klick "New Application" + - Enter an Application Name + - Scroll down to "Scopes" and check "write:statuses" + - Submit + - Klick on your new Application and copy your access token + - In your Terminal enter + + ```sh + nano mastodon.yml + ``` + + - Replace the placeholders + + ```yaml + url: https://INSTANCE.URL # <-- Your instance URL here, e.g https://corteximplant.com + token: APP_TOKEN_HERE # <-- Your application token here + ``` + +4. **Create .venv so you don't mess up your global Python**: + + ```sh + sudo apt install virtualenv + virtualenv .venv + ``` + +5. **Switch to your Virtual Env and install the requirements**: + + ```sh + source .venv/bin/activate + + pip install -r requirements.txt + ``` + +6. Now you can either run it manually with + ```sh + python bot.py + ``` + +7. Or create a cronjob to run it on a timer (use [Crontab.guru](https://crontab.guru/) if you need help :3) + + ```sh + contab -e + + # This will run the script every 3 hours + 0 */3 * * * /path/to/Dave/.venv/bin/python /path/to/Dave/wicked.py + ``` + +## Contributing + +Want to add more Scooter lines?Just send a pull request. (Or don't and add them manually to your `lyrics.yml`) + +## Contact + +Got questions? Hit me up anywhere listed on [dalfuss.link](https://dalfuss.link/) :3 diff --git a/lyrics.yml b/lyrics.yml new file mode 100644 index 0000000..00e232c --- /dev/null +++ b/lyrics.yml @@ -0,0 +1,283 @@ + - quotes: + - Is everybody on the floor? + - We put some energy into this place! + - I want to ask you something: are you ready for the sound of Scooter?! + - I want to see you sweat! + - I said: I want to see you sweat! + - Hyper! Hyper! + - Excuse me! Where is the bass drum? + - We need the bass drum! + - Come on! + - It′s so beautiful to see your hands in the air! + - Put your hands in the air! + - This is Scooter! We want to sing a big shout to U.S., and to all ravers in the world! + - Keep the vibes... + - I'll have to ask you again: do you like it hardcore? + - Do you like it hardcore? + - We need the hardcore! + - Sit there, be good, bye-bye! + - Pump it up! + - Aaaah! I ramp, me no ramp! + - Me no skin! + - Me no play, yeah! + - When me chant 'pon the microphone + - Junglists in the place + - Scooter are you readyyy? + - Love, peace and unity + - Siberia, the place to be + - The K, the L, the F and the ology + - Halleluja! + - Siberiaaaaaaaaaaaaaa! Yay! + - We′re gettin′ jiggy! + - How much is the fish? + - The chase is better the catch + - Transforming the tunes + - We need your support + - If you′ve got the breath back + - It's the first page of the second chapter + - I want you back for the rhythm-attack + - Coming down on the floor like a maniac + - I want you back for the rhythm-attack + - Get down in full effect + - Sunshine in the air + - We′re breaking the rules + - Ignore the machine + - You won't ever stop this + - The chase is better than the catch + - Wooow + - I want you back so clean up the dish + - By the way, how much is the fish? + - I am the horseman + - I′m mentally mad + - I am a super sharp shooter sittin' on a rooftop + - My name is MC H. + - I got the big breaks, the bass + - One, two, check + - It′s a mixture rough to the core + - Through the texture + - Come and get a taste of the fixture, yeah + - Yeah, aaa, aaa, aah, yeah I feel hardcore + - Yeah, aaa, aaa, aah, yeah always hardcore + - Yeah, aaa, aaa, aah, yeah I feel hardcore + - Yeah, aaa, aaa, aah, yeah always hardcore + - Yeah, aaa, aaa, aah, yeah I feel hardcore + - Yeah, aaa, aaa, aah, yeah always hardcore + - Yeah, aaa, aaa, aah + - Want a lyrical sex + - Ice the platinum tech + - With a minute in the game + - When discover my necks, you don't fret + - Me and my crew we are too H O T + - For any crew out there or any MC + - Rippin' up the B you want H A T E + - Jealousy won′t get you nowhere, I′m H.P. yeah + - Alright + - One world, one people, one music + - Scooter, back in the house, yeah + - Get off your shirts and wait for further instructions + - Starting the, "Microphone business" + - I′ve got one message for the next decade + - Move your ass + - All right posse, keep it up + - Hardcore + - Come on, keep it up + - Ravers unite + - Maximum respect to the whole European posse + - Make some noise + - Ravers of the Universe + - You, keep the spirit alive + - Come on, come on, hardcore + - Sing it, yeah-ay, yeah-ay Yeah-ay, yeah-ay + - Alright, come on posse, you've gotta keep it up + - Come on, party, you′ve gotta move + - Alright, come on posse, you've gotta keep it up + - Come on, party, move your ass + - It's nice to be important. But it′s more important to be nice! + - Posse, you keep the spirit alive + - You still feel alright? + - You want some more? + - Come on + - Kickin′ it, kickin' it, kickin′ it yeah + - Move your ass, yeah + - Rave nation, stay tuned + - Welcome posse + - We′re kicking up + - Once again, we have the plan + - Driving you wild, as good as we can + - Don't stop us now, we′re gonna make you move + - Raving outside to the passionate groove + - So I wanna check the microphone + - I wanna check the microphone + - I wanna check, I wanna check + - The Rick, the Ferris and MC H.P. + - Scooter, back in the U.K. + - Yes, somewhere in England, banging the bass + - Join our trip to this weird place + - Back to nature where we can be + - Faster and harder, louder and free + - We started in 1994 + - In 1996, we're still on the case + - Hold tight crew + - Together no one can stop us now + - The birds, the trees, the clouds, the seas + - The Rick, The Ferris and MC H.P. + - Encore, hardcore + - Rock you down to the floor + - Posse saw ya on the border + - Jungle jumper under order + - Every minute, every hour, got the power + - Take a shower, brand stuff + - Screaming lord, wicked and tough + - Right now, say lord have mercy + - I′ve got the money, I've got the place + - You′ve got the figure, you've got the face + - Let's get together + - We′re jumping all over, all over the world + - Singing, jumping all over the world + - I′ve got the music, I've got the lights + - You′ve got the figure full of delights + - Let's get together + - I've got position, I′ve got the name + - You've got the power to drive me insane + - I′ve got the money, I've got the place + - You′ve got the figure, you've got the face + - I like the way it′s hard, I love the way it's loud + - I like the way it′s hard + - I love the way it's loud + - No one understands what the fuck I am about + - Just step into the place, and hear what I say + - I spit with the lyric, no time for delay + - Slam rock with the jungle man to man, with the jam + - You know who I am + - When me come me coming rough, you know I′m above + - Be there! + - I drop it medium rare, yeah! + - J'adore hardcore... + - Doin' it together! + - C′mon! + - Sing it! + - Yeahhh! + - For sure I got my plan, don′t really give a damn! + - On my own mission, I fight like a man + - Doin' it for myself, not for the industry! + - Check ′pon the rhythm, and to the M.I.C. + - Slam rock with the jungle hand to hand, hummin' a bum + - ′Cause I got the jam + - When me come me coming rough, I got the stuff + - Be there! + - Let's shuffle in the air, yeah! + - J′adore hardcore... + - Raise your hands up to the roof... + - Raise your hands up in the air... + - 3 a.m.! + - The painted cow! + - Yeah! + - You ain′t stopping us now! (Wonderful human beings) (hey!) + - Yeah! I am the Junglist souljah + - Come on! + - The rocket launcher stopped ya! (Hey!) + - It's not a bird, it's not a plane + - It must be Dave who′s on the train + - Wanna, wanna get′cha, gonna, gonna get'cha! + - Tell ′em that I told ya + - Yeah! + - Alright! + - Are you ready? It's not a game! + - I chant so much, I turn you insane + - Wanna, wanna get′cha, gonna, gonna get'cha! + - Messing up the area, yeah! (Hey!) + - Come on! (Hey!) + - I am the freshman + - Messing up the jam! + - Turning up the stereo + - Join the caravan (hey!) + - Skippy, the rain won't come! + - Alright everybody + - Tie you shoes + - Yeah + - From the H to the P on da mic you will see + - The people′s champ that's me + - Yeah + - Skibadee, skibadanger, I am the rearranger + - Hit them with the raw for sure + - Now bun your draw + - Skibadee, skibadanger + - I am the rearranger + - Never, never endeavour + - The good weather + - Or whether we be there + - Only for your pleasure + - Yeah + - Maria, believe me, I like it loud + - Right now posse + - We′re the special guest mixologists + - Yeah + - Aaargh... + - I ritz bits for da hits with the lyrics + - With a robotic, narcotic in the pocket + - The fire rocket, blood socket, I crack whip + - Elastic to plastic, my platinum hit + - You git, gudda gudda get up with it + - Me on the mic, be sophisticated + - DJ's articulated, me on the mic + - Yeah + - Here we go + - Thank you + - I want everybody as close to the stage as possible + - Get there speed + - We′re going back to the heavy weight jams + - Let's go out for a walk to the other side + - Get the sound + - Join the crew + - And you feel alright + - No more victory + - Go back to reality + - It′s the message + - So listen and you will see + - No illusion + - The spirit is what you feel + - Get the volume + - Tonight you can make it real + - I explain once again + - We wont let you down + - We can't stop going on that's what i′m about + - Faster, harder, scooter + - We′re getting faster harder scooter + - FASTER + - HARDER + - SCOOTER + - From japan and brasil to the usa + - Let me ask you if there is a better way + - I believe in missing the time we had + - Don't you know we just want you + - No bad rumours or chargers will make us stop + - Now the time has come we will reach the top + - I explain once again + - We wont let you down + - We can′t stop going on that's what i′m about + - Everbody shout + - 'Yes' + - Aah! + - Party people! + - The sky has changed + - Can you smell the sun? + - It′s time, for the most exciting season! + - It's time, for summer... an endless summer! + - Move to the baseline! + - Move to the baseline! Jump, jump! + - Endless summer, endless summer + - Can you feel it?! + - Love is in the air! Endless summer, endless summer + - Party people! + - Come follow me, come follow me, come follow me this sunny day! + - Generation of the future! See ya! + - We got the turbo + - We gonna hit you harder! + - Chicks in motion Across the ocean + - We start the party + - So come on everybody, yeahhhh! + - BASS! + - No more coffee, just have a beer + - You like to party? That's why I'm here! + - Can you tell me? How do I get off the bus, right? + - To the beat now, one two three four! \ No newline at end of file diff --git a/mastodon.yml b/mastodon.yml new file mode 100644 index 0000000..749f439 --- /dev/null +++ b/mastodon.yml @@ -0,0 +1,2 @@ +url: https://INSTANCE.URL +token: APP_TOKEN_HERE \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..7f8c6ac --- /dev/null +++ b/requirements.txt @@ -0,0 +1,12 @@ +blurhash==1.1.4 +certifi==2024.12.14 +charset-normalizer==3.4.1 +decorator==5.1.1 +idna==3.10 +Mastodon.py==1.8.1 +python-dateutil==2.9.0.post0 +python-magic==0.4.27 +PyYAML==6.0.2 +requests==2.32.3 +six==1.17.0 +urllib3==2.3.0 diff --git a/wicked.py b/wicked.py new file mode 100644 index 0000000..8736453 --- /dev/null +++ b/wicked.py @@ -0,0 +1,33 @@ +import random +import yaml +from mastodon import Mastodon + + +with open("mastodon.yml", "r") as config_file: + try: + mastodon_data = yaml.safe_load(config_file) + except yaml.YAMLError as e: + print(f"Scooter says: YAML error in config loading, hyper hyper! {e}") + exit(1) + +mastodon = Mastodon( + access_token=mastodon_data.get("token"), + api_base_url=mastodon_data.get("url") +) + +with open("lyrics.yml", "r") as lyrics_file: + try: + lines = yaml.safe_load(lyrics_file) + except yaml.YAMLError as e: + print(f"Scooter alert: YAML mix-up in lyrics! Call the doctor! {e}") + exit(1) + +output = random.choice(lines.get("quotes", [])) + +visibility = 'public' if random.random() >= 0.9 else 'unlisted' + +try: + mastodon.status_post(output, visibility=visibility) + print("Success! Our post has rocked the Mastodon stage!") +except Exception as e: + print(f"Scooter check: Something went bonkers with the Mastodon post! How much is the fish? {e}") \ No newline at end of file