mirror of
https://github.com/EDCD/EDMarketConnector.git
synced 2025-04-14 16:27:13 +03:00
parent
239c7872f5
commit
78dd0c5318
13
monitor.py
13
monitor.py
@ -71,7 +71,8 @@ else:
|
||||
class EDLogs(FileSystemEventHandler):
|
||||
|
||||
_POLL = 1 # Polling is cheap, so do it often
|
||||
_RE_CANONICALISE = re.compile('\$(.+)_name;')
|
||||
_RE_CANONICALISE = re.compile(r'\$(.+)_name;')
|
||||
_RE_CATEGORY = re.compile(r'\$MICRORESOURCE_CATEGORY_(.+);')
|
||||
|
||||
def __init__(self):
|
||||
FileSystemEventHandler.__init__(self) # futureproofing - not need for current version of watchdog
|
||||
@ -512,10 +513,11 @@ class EDLogs(FileSystemEventHandler):
|
||||
if self.state[category][material] <= 0:
|
||||
self.state[category].pop(material)
|
||||
elif entry['event'] == 'MaterialTrade':
|
||||
category = entry['TraderType'].capitalize()
|
||||
category = self.category(entry['Paid']['Category'])
|
||||
self.state[category][entry['Paid']['Material']] -= entry['Paid']['Quantity']
|
||||
if self.state[category][entry['Paid']['Material']] <= 0:
|
||||
self.state[category].pop(entry['Paid']['Material'])
|
||||
category = self.category(entry['Received']['Category'])
|
||||
self.state[category][entry['Received']['Material']] += entry['Received']['Quantity']
|
||||
|
||||
elif entry['event'] == 'EngineerCraft' or (entry['event'] == 'EngineerLegacyConvert' and not entry.get('IsPreview')):
|
||||
@ -550,8 +552,9 @@ class EDLogs(FileSystemEventHandler):
|
||||
self.state['Cargo'][commodity] += reward.get('Count', 1)
|
||||
for reward in entry.get('MaterialsReward', []):
|
||||
if 'Category' in reward: # Category not present in E:D 3.0
|
||||
category = self.category(reward['Category'])
|
||||
material = self.canonicalise(reward['Name'])
|
||||
self.state[self.canonicalise(reward['Category']).capitalize()][material] += reward.get('Count', 1)
|
||||
self.state[category][material] += reward.get('Count', 1)
|
||||
elif entry['event'] == 'EngineerContribution':
|
||||
commodity = self.canonicalise(entry.get('Commodity'))
|
||||
if commodity:
|
||||
@ -630,6 +633,10 @@ class EDLogs(FileSystemEventHandler):
|
||||
match = self._RE_CANONICALISE.match(item)
|
||||
return match and match.group(1) or item
|
||||
|
||||
def category(self, item):
|
||||
match = self._RE_CATEGORY.match(item)
|
||||
return (match and match.group(1) or item).capitalize()
|
||||
|
||||
def get_entry(self):
|
||||
if not self.event_queue:
|
||||
return None
|
||||
|
Loading…
x
Reference in New Issue
Block a user