Created
May 11, 2020 11:39
-
-
Save divadsn/f2c0ca3a61c6f191bfc06c174d476cd8 to your computer and use it in GitHub Desktop.
Przykładowy skrypt pobierający dane domków z Mapy Play Your Life i sprawdzający które wygasają kolejnego dnia.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/python | |
# -*- coding: utf-8 -*- | |
__author__ = "xDivadz (David Sn)" | |
__license__ = "GPLv3" | |
# standardowe biblioteki Python | |
import urllib.request | |
import datetime | |
import json | |
# dodatkowa biblioteka do stref czasowych, bo głupi Pytong jej nie ma | |
import pytz | |
# zmień na inną jeżeli np mieszkasz w Anglii | |
timezone = pytz.timezone("Europe/Warsaw") | |
# zmień na twój obecny nick na serwerze, możesz go podać bez tagów/prefixów/sufixów | |
nick = "xDivadz" | |
# funkcja pomocnicza do czytania dat | |
def parse_date(date): | |
return datetime.datetime.strptime(date, "%a, %d %b %Y %H:%M:%S %Z") | |
# pobieranie danych z Mapy Play Your Life | |
with urllib.request.urlopen("https://mapapy.life/points/houses") as url: | |
# załaduj dane pobrane z mapy jako json | |
response = json.loads(url.read().decode()) | |
houses = response["data"] | |
# oblicz datę następnego dnia | |
nextday = datetime.date.today() + datetime.timedelta(days=1) | |
# ustaw godzinę na północ | |
nextday = datetime.datetime.combine(nextday, datetime.time(hour=0, minute=0)) | |
# zmień godzinę na strefę czasową | |
nextday = timezone.localize(nextday).astimezone(pytz.UTC).replace(tzinfo=None) | |
print("Domki, które wygasają dnia kolejnego po północy:") | |
# oblicz ile musisz wydać na opłacenie domków na jedną dobę | |
cena = 0 | |
# sprawdź w liście jakie domki wygasają dnia kolejnego i wypisz | |
for house in houses: | |
# pomiń sprawdzanie jeśli dom nie ma właściciela | |
if not house["owner"]: | |
continue | |
if nick in house["owner"] and parse_date(house['expiry']) == nextday: | |
print(f" - {house['id']}. {house['name']} w {house['location']}") | |
print(f" Cena za dobę: {house['price']}€") | |
# dodaj cenę za dobę na wynajem | |
cena += house['price'] | |
# wypisz ile za dobę cena wynosi lub tekst jeśli nie masz domków do opłacenia | |
if cena > 0: | |
print(f"\nMusisz mieć co najmniej {cena}€ na opłacenie tych domków lub {cena * 7}€ na 7 dni.") | |
print("Opłać je najlepiej przed północą!") | |
else: | |
print(" - Wygląda na to że masz już wszystkie domki do jutra opłacone! :)") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Wymaga wcześniej zainstalowaną bibliotekę pytz: http://pytz.sourceforge.net/