Init
This commit is contained in:
commit
2d8b03d65b
|
@ -0,0 +1,24 @@
|
|||
This is free and unencumbered software released into the public domain.
|
||||
|
||||
Anyone is free to copy, modify, publish, use, compile, sell, or
|
||||
distribute this software, either in source code form or as a compiled
|
||||
binary, for any purpose, commercial or non-commercial, and by any
|
||||
means.
|
||||
|
||||
In jurisdictions that recognize copyright laws, the author or authors
|
||||
of this software dedicate any and all copyright interest in the
|
||||
software to the public domain. We make this dedication for the benefit
|
||||
of the public at large and to the detriment of our heirs and
|
||||
successors. We intend this dedication to be an overt act of
|
||||
relinquishment in perpetuity of all present and future rights to this
|
||||
software under copyright law.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
For more information, please refer to <https://unlicense.org>
|
|
@ -0,0 +1,18 @@
|
|||
# morrowsay-bot
|
||||
|
||||
Just a bot which posts random generic quotes to your Mastodon timeline!
|
||||
|
||||
Currently posting on: https://social.inex.rocks/@MorrowindNPCbot
|
||||
|
||||
### How to run ###
|
||||
* For posting you can use already pre-saved quotes from the repository. If you want "your own", you can...
|
||||
* ...download quotes:
|
||||
```bash
|
||||
python3 loadquotes.py
|
||||
```
|
||||
* To make a single post with a random quote from the gotten file, run `post.py`
|
||||
* Don't forget to setup your bot account, get access tokens and establish the environment around it. I am not providing any instructions of how to do it, since all the steps are different and depend on what, where and how you want to run the bot.
|
||||
|
||||
* That's all!
|
||||
|
||||
![alt text](https://i.imgur.com/3ao6VLt.png)
|
|
@ -0,0 +1,30 @@
|
|||
import sys
|
||||
import os.path as op
|
||||
from urllib.parse import urlparse
|
||||
from pprint import pprint
|
||||
|
||||
import requests
|
||||
from bs4 import BeautifulSoup
|
||||
|
||||
# --------------------------------------------------
|
||||
|
||||
URL = "https://elderscrolls.fandom.com/wiki/Generic_Dialogue_(Morrowind)"
|
||||
|
||||
def main():
|
||||
|
||||
|
||||
print('REQUEST ' + URL)
|
||||
resp = requests.get(URL)
|
||||
soup = BeautifulSoup(resp.text, 'lxml')
|
||||
|
||||
print('DOWNLOADING')
|
||||
res = [icont.string for icont in soup('i') if icont.string is not None]
|
||||
|
||||
with open('quotes.dat', 'w', encoding='utf-8') as file:
|
||||
for quote in res:
|
||||
print(quote, file=file)
|
||||
|
||||
print('YAY SUCCESS!\n\n! ! ! Now don\'t forget to run replacevars.py ! ! !')
|
||||
|
||||
if __name__ == '__main__':
|
||||
sys.exit(main())
|
|
@ -0,0 +1,29 @@
|
|||
import sys
|
||||
import random
|
||||
import datetime
|
||||
import os.path as op
|
||||
from pprint import pprint
|
||||
|
||||
import requests
|
||||
from mastodon import Mastodon
|
||||
|
||||
# --------------------------------------------------
|
||||
|
||||
def main():
|
||||
|
||||
mastodon = Mastodon(
|
||||
access_token = 'token.dat',
|
||||
api_base_url = 'https://social.inex.rocks/'
|
||||
)
|
||||
|
||||
with open('quotes.dat', 'r', encoding='utf-8') as file:
|
||||
data = file.readlines()
|
||||
|
||||
quote = data[random.randint(0, len(data))]
|
||||
toot = quote
|
||||
|
||||
mastodon.status_post(toot, media_ids=None, visibility='unlisted')
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
sys.exit(main())
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,64 @@
|
|||
import sys
|
||||
import os.path as op
|
||||
|
||||
# --------------------------------------------------
|
||||
|
||||
VARIABLES = {
|
||||
|
||||
'[PC Guild Rank]\nLike in \"[PC Guild Rank], what can be said. We are the few, the proud, the ... under-paid! HarHarHar!\"':
|
||||
'[PC Guild Rank]',
|
||||
|
||||
'[Speaker\'s Name]\nLike in \"But perhaps [Speaker\'s Name] should not speak about this in public. And who would listen, anyway?\"':
|
||||
'[Speaker\'s Name]',
|
||||
|
||||
'[PC Name]\nLike in \"[PC Name]. Once before, Lord Nerevar thought Dagoth Ur and all his kin were dead.\"':
|
||||
'[PC Name]',
|
||||
|
||||
'[PC Race]\nLike in \"I don\'t like you, [PC Race]. You better stay out of this.\"':
|
||||
'[PC Race]',
|
||||
|
||||
'[PC Rank]\nLike in \"What do you want, [PC Rank]?\"':
|
||||
'[PC Rank]',
|
||||
|
||||
'[Next PC Rank]\nLike in "You are now [PC Name] the [Next PC Rank] in the Fighters Guild.\"':
|
||||
'[Next PC Rank]',
|
||||
|
||||
'[Faction]\nLike in \"The [Faction] can forgive your actions this one time only, [PC Rank] [PC Name].\"':
|
||||
'[Faction]',
|
||||
|
||||
'[Rank]\nLike in \"I\'ve risen to [Rank] rank in this outfit by being smart and careful.\"':
|
||||
'[Rank]',
|
||||
|
||||
'[Name]\nLike in \"Hello, [PC Name]. I\'m [Name], and I\'m here to clean out this den of Daedra worshippers.\"':
|
||||
'[Name]'
|
||||
}
|
||||
|
||||
# Replaces [macros] with strings you want
|
||||
|
||||
def main():
|
||||
|
||||
with open('quotes.dat', 'r', encoding='utf-8') as file:
|
||||
quotes = file.readlines()
|
||||
|
||||
replacer = ''
|
||||
|
||||
if (input('Do you want to remove broken strings? y/n ') == 'y'):
|
||||
quotes.remove('The Elder Scrolls III: Morrowind\n')
|
||||
for quote in quotes:
|
||||
if (len(quote) < 5 or not quote.strip().endswith('\"') or not quote.strip().startswith('\"')):
|
||||
quotes.remove(quote)
|
||||
|
||||
for to_print, to_replace in VARIABLES.items():
|
||||
while not replacer.strip():
|
||||
replacer = input('\n' + to_print + '\n Input what do you want to replace ' + to_replace + ' with:')
|
||||
for i, quote in enumerate(quotes):
|
||||
quotes[i] = quote.replace(to_replace, replacer)
|
||||
replacer = ''
|
||||
|
||||
|
||||
with open('quotes.dat', 'w', encoding='utf-8') as file:
|
||||
for quote in quotes:
|
||||
print(quote, file=file, end='')
|
||||
|
||||
if __name__ == '__main__':
|
||||
sys.exit(main())
|
|
@ -0,0 +1,19 @@
|
|||
requests==2.22.0
|
||||
requests-oauthlib==1.2.0
|
||||
beautifulsoup4==4.8.0
|
||||
certifi==2019.6.16
|
||||
chardet==3.0.4
|
||||
decorator==4.4.0
|
||||
idna==2.8
|
||||
lxml==4.3.4
|
||||
Mastodon.py==1.4.6
|
||||
oauthlib==3.0.2
|
||||
PySocks==1.7.0
|
||||
python-dateutil==2.8.0
|
||||
python-docx==0.8.10
|
||||
python-magic==0.4.15
|
||||
pytz==2019.2
|
||||
six==1.12.0
|
||||
soupsieve==1.9.2
|
||||
tweepy==3.8.0
|
||||
urllib3==1.25.3
|
Loading…
Reference in New Issue