|
#!/usr/bin/env python3 |
|
# proof of concept for an idea i've had for a while |
|
from peewee import * |
|
|
|
db = SqliteDatabase("wownav.db") |
|
|
|
class BaseModel(Model): |
|
class Meta: |
|
database = db |
|
class Faction(BaseModel): |
|
name = CharField() |
|
class City(BaseModel): |
|
name = CharField() |
|
faction = ForeignKeyField(Faction, backref="cities") |
|
class Location(BaseModel): |
|
name = CharField() |
|
city = ForeignKeyField(City, backref="locations") |
|
class Mode(BaseModel): |
|
name = CharField() |
|
class Path(BaseModel): |
|
start_city = ForeignKeyField(City, backref="paths_start") |
|
dest_city = ForeignKeyField(City, backref="paths_dest") |
|
start_loc = ForeignKeyField(Location, backref="paths_start") |
|
dest_loc = ForeignKeyField(Location, backref="paths_dest") |
|
seconds = IntegerField() |
|
mode = ForeignKeyField(Mode, backref="paths") |
|
danger = BooleanField() |
|
faction = ForeignKeyField(Faction, backref="paths") |
|
|
|
if __name__ == "__main__": |
|
db.connect() |
|
db.create_tables([Faction,City,Location,Mode,Path]) |
|
|
|
Neutral = Faction(name="Neutral") |
|
Alliance = Faction(name="Alliance") |
|
Horde = Faction(name="Horde") |
|
|
|
Boralus = City(name="Boralus", faction=Alliance) |
|
DazarAlor = City(name="Dazar'alor", faction=Horde) |
|
|
|
TradewindsFlightMaster = Location(name="Tradewinds Market Flight Master", city=Boralus) |
|
BFA_Alliance_PVP_Vendor = Location(name="BFA Alliance PVP Vendor", city=Boralus) |
|
|
|
GreatSealFlightMaster = Location(name="Great Seal Flight Master", city=DazarAlor) |
|
MugumbalaFlightMaster = Location(name="Mugumbala Flight Master", city=DazarAlor) |
|
BFA_Horde_PVP_Vendor = Location(name="BFA Horde PVP Vendor", city=DazarAlor) |
|
|
|
GroundMount = Mode(name="Ground mount") |
|
GoblinGlider = Mode(name="Goblin Glider") |
|
FlightMaster = Mode(name="Flight Master") |
|
|
|
tw_to_pvp = Path(start_city=Boralus, dest_city=Boralus, |
|
start_loc=TradewindsFlightMaster, dest_loc=BFA_Alliance_PVP_Vendor, |
|
seconds=17, mode=GroundMount, danger=False, faction=Alliance) |
|
gs_to_pvp = Path(start_city=DazarAlor, dest_city=DazarAlor, |
|
start_loc=GreatSealFlightMaster, dest_loc=BFA_Horde_PVP_Vendor, |
|
seconds=62, mode=GoblinGlider, danger=True, faction=Horde) |
|
gs_to_mug = Path(start_city=DazarAlor, dest_city=DazarAlor, |
|
start_loc=GreatSealFlightMaster, dest_loc=MugumbalaFlightMaster, |
|
seconds=37, mode=FlightMaster, danger=False, faction=Horde) |
|
mug_to_pvp = Path(start_city=DazarAlor, dest_city=DazarAlor, |
|
start_loc=MugumbalaFlightMaster, dest_loc=BFA_Horde_PVP_Vendor, |
|
seconds=7, mode=GroundMount, danger=False, faction=Horde) |