I am the Captain, my name is Dave!
This commit is contained in:
commit
cc239d21c3
5 changed files with 418 additions and 0 deletions
88
README.md
Normal file
88
README.md
Normal file
|
@ -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
|
283
lyrics.yml
Normal file
283
lyrics.yml
Normal file
|
@ -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!
|
2
mastodon.yml
Normal file
2
mastodon.yml
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
url: https://INSTANCE.URL
|
||||||
|
token: APP_TOKEN_HERE
|
12
requirements.txt
Normal file
12
requirements.txt
Normal file
|
@ -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
|
33
wicked.py
Normal file
33
wicked.py
Normal file
|
@ -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}")
|
Loading…
Reference in a new issue