From ea138196196e6e394436faa17dbd5409e9e30e60 Mon Sep 17 00:00:00 2001 From: Ben Kurtovic Date: Sat, 31 Dec 2016 05:09:48 -0500 Subject: [PATCH] Fix up qualifiers; working demo. --- calefaction/modules/campaigns/update.py | 2 +- config/modules/campaigns.yml.sample | 6 ++++-- scripts/import_sde.py | 4 ++++ 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/calefaction/modules/campaigns/update.py b/calefaction/modules/campaigns/update.py index f19e2a4..1b339de 100644 --- a/calefaction/modules/campaigns/update.py +++ b/calefaction/modules/campaigns/update.py @@ -25,7 +25,7 @@ def _build_filter(qualifiers): contents of a config file because it originates from a known place on the filesystem. """ - namespace = {} + namespace = {"g": g} body = "def _func(kill):\n" + textwrap.indent(qualifiers, " " * 4) exec(body, namespace) return namespace["_func"] diff --git a/config/modules/campaigns.yml.sample b/config/modules/campaigns.yml.sample index 89a5d86..1d3c609 100644 --- a/config/modules/campaigns.yml.sample +++ b/config/modules/campaigns.yml.sample @@ -35,8 +35,10 @@ campaigns: isk: true # Python function to filter kills: qualifiers: |- - return (kill["victim"]["corporationName"] == "Foo Corporation" and - kill["victim"]["shipTypeID"] in ...) + victim = kill["victim"] + corpname = victim["corporationName"] + killed = g.eve.universe.killable(victim["shipTypeID"]) + return corpname == "Foo Corporation" and killed.group == "Frigate" # Will track possession of Tritanium by all corp members: titan: title: Let's Build a Titan diff --git a/scripts/import_sde.py b/scripts/import_sde.py index d3349fe..c5f6a85 100755 --- a/scripts/import_sde.py +++ b/scripts/import_sde.py @@ -1,6 +1,10 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- +""" +Import an EVE Online Static Data Export dump to Calefaction. +""" + import gzip from pathlib import Path import shutil