Skip to content

Commit 8c008c0

Browse files
committed
Remove expired boosters from database
1 parent e22c94f commit 8c008c0

1 file changed

Lines changed: 21 additions & 0 deletions

File tree

db_update.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
#======================================================================
2020

2121

22+
import datetime
2223
import functools
2324
import itertools
2425
import json
@@ -612,6 +613,26 @@ def processImplantSets(eveTypesData):
612613
continue
613614
item.published = False
614615

616+
# Remove boosters which were expired at the time data dump was generated
617+
attr = eos.db.gamedata_session.query(eos.gamedata.AttributeInfo).filter(eos.gamedata.AttributeInfo.name == 'boosterLastInjectionDatetime').first()
618+
dumpTime = eos.db.gamedata_session.query(eos.gamedata.MetaData).filter(eos.gamedata.MetaData.field_name == 'dump_time').first()
619+
if attr is not None and dumpTime is not None and dumpTime.field_value.isdigit():
620+
epochDelta = (datetime.datetime.fromtimestamp(timestamp=int(dumpTime.field_value), tz=datetime.UTC)
621+
- datetime.datetime(year=1970, month=1, day=1, tzinfo=datetime.timezone.utc))
622+
dumpDatetime = epochDelta.days + epochDelta.seconds / (24 * 60 * 60)
623+
query = (
624+
eos.db.gamedata_session.query(eos.gamedata.Item)
625+
.join(eos.gamedata.Item.group, eos.gamedata.Group.category, eos.gamedata.Attribute)
626+
.filter(and_(
627+
eos.gamedata.Item.published,
628+
eos.gamedata.Category.name == 'Implant',
629+
eos.gamedata.Attribute.ID == attr.ID,
630+
eos.gamedata.Attribute.value < dumpDatetime)))
631+
if query.count() > 0:
632+
print(f'Removing {query.count()} expired boosters')
633+
for eveType in query:
634+
eos.db.gamedata_session.delete(eveType)
635+
615636
for x in [
616637
30 # Apparel
617638
]:

0 commit comments

Comments
 (0)