signal-spam/signalspam.py

50 lines
1.2 KiB
Python
Raw Normal View History

2022-10-14 09:59:57 +00:00
"""Send .eml files to signal-spam.fr."""
from base64 import b64encode
from pathlib import Path
from getpass import getpass
import argparse
import requests
2022-11-06 08:36:00 +00:00
__version__ = "0.2"
2022-10-14 09:59:57 +00:00
CONF = Path("~/.signal-spam").expanduser()
def parse_args():
parser = argparse.ArgumentParser(description=__doc__)
2022-11-06 08:36:00 +00:00
parser.add_argument(
"eml", nargs="+", type=str, help="An email file to report as spam."
)
2022-10-14 09:59:57 +00:00
return parser.parse_args()
def main():
args = parse_args()
try:
username, password = CONF.read_text(encoding="UTF-8").splitlines()
except FileNotFoundError:
username = input("signal spam username: ")
password = getpass("signal spam password: ")
2022-11-06 08:36:00 +00:00
CONF.write_text(f"{username}\n{password}\n", encoding="UTF-8")
2022-10-14 09:59:57 +00:00
CONF.chmod(0o600)
2022-11-06 08:36:00 +00:00
for eml in args.eml:
print("Reporting", eml)
payload = {
"dossier": 0,
"message": b64encode(Path(eml).read_text(encoding="UTF-8").encode("UTF-8")),
}
response = requests.post(
"https://www.signal-spam.fr/api/signaler",
auth=(username, password),
timeout=10,
data=payload,
)
print(response.text)
if __name__ == "__main__":
2022-10-14 09:59:57 +00:00
main()