Skip to content

Instantly share code, notes, and snippets.

@divadsn
Created May 11, 2020 11:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save divadsn/f2c0ca3a61c6f191bfc06c174d476cd8 to your computer and use it in GitHub Desktop.
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.
#!/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! :)")
@divadsn
Copy link
Author

divadsn commented May 11, 2020

Wymaga wcześniej zainstalowaną bibliotekę pytz: http://pytz.sourceforge.net/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment