예제 #1
0
    def __init__(self, parent, *args, **kwargs):
        tk.Frame.__init__(self, parent, *args, **kwargs)
        self.parent = parent

        # Set Eth node endpoint.
        if self.LIVE:
            self.endpoint = self.MAINNET
        else:
            self.endpoint = self.TESTNET

        # Load data.json signal dict.
        with open("data.json") as file:
            self.data = json.load(file)

        # Init component modules.
        self.auditor = Auditor(self.endpoint, self.data,
                               self.ETHERSCAN_API_TOKEN, self.LIVE)
        self.publisher = Publisher(self.endpoint, self.pub_k, self.pvt_k,
                                   self.data)

        self.init_gui()

        # Check if address and key are valid
        self.output.insert(
            self.output.size() + 1,
            "Address check: " + str(self.auditor.validate(self.pub_k)))

        self.output.insert(
            self.output.size() + 1,
            "Private key check: " + str(self.auditor.validate(self.pvt_k)))
예제 #2
0
    def __init__(self, **kwargs):
        self.env = kwargs['env']
        self.name = kwargs['worker_name']
        self.initial_learning_rate = kwargs['learning_rate']
        self.algo_name = kwargs['algo_name']

        self.max_master_time_step = kwargs['max_master_time_step']
        self.max_clock_limit = kwargs['max_clock_limit']

        self.episode_reward = 0
        self.episode_length = 0
        self.episode_rewards = []
        self.episode_lengths = []
        self.episode_mean_values = []
        self.local_timesteps = 0

        self.auditor = Auditor(**kwargs)

        self.anneal_learning_rate = kwargs['anneal_learning_rate']
        self.start_clock = time()
        self.use_clock = kwargs['anneal_by_clock']
        self.max_clock_limit = kwargs['max_clock_limit']

        self.convs = kwargs['convs']
        self.hiddens = kwargs['hiddens']

        self.device = kwargs['device']
예제 #3
0
    def __init__(self, **kwargs):
        self.env = kwargs['env']
        self.name = kwargs['worker_name']
        self.initial_learning_rate = kwargs['learning_rate']
        self.algo_name = kwargs['algo_name']

        self.max_master_time_step = kwargs['max_master_time_step']
        self.max_clock_limit = kwargs['max_clock_limit']

        self.episode_rewards = []
        self.episode_lengths = []
        self.episode_mean_values = []
        self.local_timesteps = 0
        self.auditor = Auditor(**kwargs)

        self.anneal_learning_rate = kwargs['anneal_learning_rate']
        self.start_clock = time()
        self.use_clock = kwargs['anneal_by_clock']
        self.max_clock_limit = kwargs['max_clock_limit']

        self.log = logging.getLogger(__name__)
        self.log.setLevel(logging.WARN)

        self.master_timestep = tf.get_variable(
            "master_timestep", [],
            tf.int32,
            initializer=tf.constant_initializer(0, dtype=tf.int32),
            trainable=False)

        self.rollout_size = tf.placeholder(shape=[],
                                           dtype=tf.int32,
                                           name='rollout_size')
        self.inc_step = self.master_timestep.assign_add(self.rollout_size,
                                                        use_locking=True)
예제 #4
0
        "when": 0,
        "grade": 0,
        "class": {
            "hours": 10,
            "subject": "BOWL",
            "level": 300,
            "group": []
        }
    }]
}

# load in both maps
mapa = json.load(open('school-a/ba-english.json', "r"))
mapb = json.load(open('school-b/ba-english.json', "r"))

a = Auditor()

# run audit on school a
resa = a._make_request(mapa, student)

# convert classes from school a credits to school b
mapa_to_mapb_conversion = {"SCI 100": "SCIEN 102"}
student["classes"] = transfer(student, mapa_to_mapb_conversion)

# run audit on school b
resb = a._make_request(mapb, student)

# print results
# print(json.dumps(resa, indent=4))
# print(json.dumps(resb, indent=4))
예제 #5
0
from threading import Lock
import time
from datetime import datetime, timedelta
from colorama import Fore, Style

from auditor import Auditor
from ratelimiter import RateLimiter

mutex = Lock()

conn = sqlite3.connect('med.db',
                       check_same_thread=False,
                       detect_types=sqlite3.PARSE_DECLTYPES)
db = conn.cursor()

auditor = Auditor("audit.log")

loginLimiter = RateLimiter(5, 20)
registerLimiter = RateLimiter(3, 30)

db.execute("""CREATE TABLE IF NOT EXISTS account (
Username VARCHAR(255) PRIMARY KEY NOT NULL,
Password VARCHAR(128) NOT NULL,
Salt VARCHAR(128) NOT NULL,
Email VARCHAR(255) NOT NULL,
Role VARCHAR(255),
PWExpiryDate TIMESTAMP,
VerifyID INT,
Verified BOOLEAN);""")
db.execute("""CREATE TABLE IF NOT EXISTS staff (
Position VARCHAR(255),
예제 #6
0
def get_auditor():
	return Auditor()
예제 #7
0
commandPrefix = configFile.readline()[0]
pixivCredentials = {"user" : configFile.readline()[0:-1], "pw" : configFile.readline()[0:-1]}
configFile.close()
bot = commands.Bot(command_prefix=commandPrefix, case_insensitive=True)
bot.remove_command('help')
apiToken = ""
try:
    apiTokenFile = open('gelApiKey.config','r')
    apiToken = apiTokenFile.readline()
    apiTokenFile.close()
except OSError:
    print("No gelApiKey.config file found for a gelbooru api key, no api key will be used and you will not be able to access blacklisted content.")


torturing = False
auditor = Auditor("audit.txt")
auditor.generateAuditLog()
auditLines = auditor.getInitialAuditLog()
users = UserCollection(auditLines)
userStats = UserStatTracker(users.getUsers(), auditLines)
gelbooruLimiter = UserLimiter()
realbooruLimiter = UserLimiter()
uptimeTracker = Timekeeper()
ChannelFilter = Filter()
ClientConnector = ClientConnections()
bullyHandler = bullyLoader()
helpResponder = helpResponse()
responseProcessor = ResponseProcessor()
serverContextHandler = ServerContext(ClientConnector.connectedClients)
ChannelFilter.contextWordBanner = serverContextHandler
customFilterer = CustomFilter(serverContextHandler.getContext())
예제 #8
0
class App(tk.Frame):
    """Verify and publish trade signals on the Ethereum blockchain.

    Main.py is a GUI for accessing the functionality of publisher.py and
    auditor.py modules. Auditor.py and Publisher.py modules could be integrated
    into existing financial systems or trading software (minus this GUI)."""

    # Set true to run on Eth mainnet, otherwise run on Ropsten testnet.
    LIVE = False

    # Ethereum node endpoints.
    TESTNET = ""
    MAINNET = ""

    # Ethereum public address and private key.
    pub_k = ""
    pvt_k = ""

    # Get one at https://etherscan.io.
    ETHERSCAN_API_TOKEN = ""

    def __init__(self, parent, *args, **kwargs):
        tk.Frame.__init__(self, parent, *args, **kwargs)
        self.parent = parent

        # Set Eth node endpoint.
        if self.LIVE:
            self.endpoint = self.MAINNET
        else:
            self.endpoint = self.TESTNET

        # Load data.json signal dict.
        with open("data.json") as file:
            self.data = json.load(file)

        # Init component modules.
        self.auditor = Auditor(self.endpoint, self.data,
                               self.ETHERSCAN_API_TOKEN, self.LIVE)
        self.publisher = Publisher(self.endpoint, self.pub_k, self.pvt_k,
                                   self.data)

        self.init_gui()

        # Check if address and key are valid
        self.output.insert(
            self.output.size() + 1,
            "Address check: " + str(self.auditor.validate(self.pub_k)))

        self.output.insert(
            self.output.size() + 1,
            "Private key check: " + str(self.auditor.validate(self.pvt_k)))

    def publish(self):
        """Publish signal composed from gui combobox inputs to Ethereum,
        then print results and tx hash in the output pane."""

        # No need to check address & key as they are validated at init.
        # Signal is formed from combobox value strings
        signal = [
            self.instrumentcbb.get(),
            self.insttypecbb.get(),
            self.exchangecbb.get(),
            self.strategycbb.get(),
            self.directioncbb.get(),
            self.order_typecbb.get(),
            self.misccbb.get(),
            self.triggercbb.get()
        ]

        # Print params to output pane
        self.output.insert(self.output.size() + 1,
                           "Raw signal: " + str(signal))

        # Encode param strings
        encoded = self.publisher.encode(signal)
        self.output.insert(self.output.size() + 1,
                           "Encoded signal: " + str(encoded))

        # Publish and print hash
        txhash = self.publisher.publish(encoded)
        self.output.insert(self.output.size() + 1,
                           "Published signal. Tx hash: " + str(txhash))

    def audit(self):
        """Scrape and audit tx's using address parameter from addr_field
        then print the results in the output pane."""

        # Double check address is valid.
        address = self.addr_field.get()
        if not self.auditor.validate(address) == "Valid":
            self.output.insert(self.output.size() + 1, "Invalid address.")
        # Print to ouput pane
        result = self.auditor.scrape(address)
        if result:
            # First print the raw signal
            self.output.insert(
                self.output.size() + 1,
                str(len(result)) + " encoded signals found at " +
                str(address) + ":")
            for i in result:
                self.output.insert(self.output.size() + 1, i)

            # Now print decoded human-readable signals
            decoded = self.auditor.decode(result)
            self.output.insert(self.output.size() + 1,
                               "Decoded signal output:")
            for i in decoded:
                self.output.insert(self.output.size() + 1, i)
        else:
            self.output.insert(
                self.output.size() + 1,
                str("No signals present for address " + address + "."))
            pass

    def to_clipboard(self, item):
        """Write the given object to system clipboard."""

        c = tk.Tk()
        c.withdraw()
        c.clipboard_clear()
        c.clipboard_append(item)
        c.update()
        c.destroy()

    def init_gui(self):
        """Init gui components."""

        # left panel upper (input panel)
        self.input = tk.Frame(self, width=430)
        self.input_upper = tk.Frame(self.input, width=430, height=320)
        self.input_lower = tk.Frame(self.input, width=430)

        self.title_label_upper = tk.Label(
            self.input_upper,
            text="Search an Ethereum address for encoded signals:",
            font=('', 11, 'bold'))
        self.pub_k_label = tk.Label(self.input_upper,
                                    text="Your ETH address is " + self.pub_k)

        pvt_preview = self.pvt_k[:8] + "...." + self.pvt_k[-8:]
        self.pvt_k_label = tk.Label(self.input_upper,
                                    text="Your ETH private key is " +
                                    pvt_preview +
                                    "  (withheld for security)")  # noqa
        self.addr_field = tk.Entry(self.input_upper, width=50)
        self.addr_field.insert(0, self.pub_k)
        self.addr_label = tk.Label(self.input_upper,
                                   text="Originating address:")
        self.spacing_label = tk.Label(self.input_upper, text=" ")

        self.audit_button = tk.Button(self.input_upper,
                                      text="  Audit  ",
                                      command=self.audit)

        self.copy_pub_k_button = tk.Button(
            self.input_upper,
            text="  Copy  ",
            command=lambda: self.to_clipboard(self.pub_k))

        self.copy_pvt_k_button = tk.Button(
            self.input_upper,
            text="  Copy  ",
            command=lambda: self.to_clipboard(self.pvt_k))

        self.title_label_upper.grid(row=0, columnspan=5)
        self.addr_label.grid(row=1, column=0, columnspan=1, sticky="w")
        self.addr_field.grid(row=1, column=1, columnspan=2, pady=10)
        self.spacing_label.grid(row=1, column=4, columnspan=1)
        self.audit_button.grid(row=1, column=5, columnspan=1, sticky="e")
        self.pub_k_label.grid(row=2, columnspan=3, sticky="w", pady=20)
        self.pvt_k_label.grid(row=3, columnspan=3, sticky="w")
        self.copy_pub_k_button.grid(row=2, column=5, columnspan=1, sticky="w")
        self.copy_pvt_k_button.grid(row=3, column=5, columnspan=1, sticky="w")

        # Left panel lower (input panel)
        self.title_label_lower = tk.Label(
            self.input_lower,
            text="Publish trade signals to your Ethereum address:",
            font=('', 11, 'bold'))

        self.instrument_label = tk.Label(self.input_lower, text="Instrument:")
        self.instrumentcbb = ttk.Combobox(
            self.input_lower,
            state="readonly",
            values=list(self.data['data']['instrument'].values()),
            width=55)
        self.instrumentcbb.current(0)

        self.insttype_label = tk.Label(self.input_lower,
                                       text="Instrument type:")
        self.insttypecbb = ttk.Combobox(
            self.input_lower,
            state="readonly",
            values=list(self.data['data']['inst_type'].values()),
            width=55)
        self.insttypecbb.current(3)

        self.exchange_label = tk.Label(self.input_lower, text="Exchange:")
        self.exchangecbb = ttk.Combobox(
            self.input_lower,
            state="readonly",
            values=list(self.data['data']['exchange'].values()),
            width=55)
        self.exchangecbb.current(0)

        self.strategy_label = tk.Label(self.input_lower, text="Strategy:")
        self.strategycbb = ttk.Combobox(
            self.input_lower,
            state="readonly",
            values=list(self.data['data']['strategy'].values()),
            width=55)
        self.strategycbb.current(2)

        self.direction_label = tk.Label(self.input_lower, text="Direction:")
        self.directioncbb = ttk.Combobox(
            self.input_lower,
            state="readonly",
            values=list(self.data['data']['direction'].values()),
            width=55)
        self.directioncbb.current(0)

        self.order_type_label = tk.Label(self.input_lower, text="Order type:")
        self.order_typecbb = ttk.Combobox(
            self.input_lower,
            state="readonly",
            values=list(self.data['data']['order_type'].values()),
            width=55)
        self.order_typecbb.current(2)

        self.misc_label = tk.Label(self.input_lower, text="Misc:")
        self.misccbb = ttk.Combobox(self.input_lower,
                                    state="readonly",
                                    values=list(
                                        self.data['data']['misc'].values()),
                                    width=55)
        self.misccbb.current(1)

        self.trigger_label = tk.Label(self.input_lower, text="Trigger:")
        self.triggercbb = ttk.Combobox(
            self.input_lower,
            state="readonly",
            values=list(self.data['data']['trigger'].values()),
            width=55)
        self.triggercbb.current(0)

        self.publish_button = tk.Button(self.input_lower,
                                        text="  Publish Signal  ",
                                        width=20,
                                        command=self.publish)

        self.title_label_lower.grid(row=0, columnspan=5, pady=5)
        self.instrument_label.grid(row=1, column=0, columnspan=1, sticky="w")
        self.instrumentcbb.grid(row=1, column=2, columnspan=3)
        self.insttype_label.grid(row=2, column=0, columnspan=1, sticky="w")
        self.insttypecbb.grid(row=2, column=2, columnspan=3)
        self.exchange_label.grid(row=3, column=0, columnspan=1, sticky="w")
        self.exchangecbb.grid(row=3, column=2, columnspan=3)
        self.strategy_label.grid(row=4, column=0, columnspan=1, sticky="w")
        self.strategycbb.grid(row=4, column=2, columnspan=3)
        self.strategy_label.grid(row=5, column=0, columnspan=1, sticky="w")
        self.strategycbb.grid(row=5, column=2, columnspan=3)
        self.direction_label.grid(row=6, column=0, columnspan=1, sticky="w")
        self.directioncbb.grid(row=6, column=2, columnspan=3)
        self.order_type_label.grid(row=7, column=0, columnspan=1, sticky="w")
        self.order_typecbb.grid(row=7, column=2, columnspan=3)
        self.misc_label.grid(row=8, column=0, columnspan=1, sticky="w")
        self.misccbb.grid(row=8, column=2, columnspan=3)
        self.trigger_label.grid(row=9, column=0, columnspan=1, sticky="w")
        self.triggercbb.grid(row=9, column=2, columnspan=3)
        self.publish_button.grid(row=10, columnspan=6, pady=10)

        # Add input panels to window
        self.input_upper.pack(side="top", fill="both", expand=True)
        self.input_lower.pack(side="top", fill="both", expand=True)

        # Output pane (right)
        self.title_frame = tk.Frame(self)

        self.titlelabel = tk.Label(self.title_frame,
                                   text="Output:",
                                   font=('', 11, 'bold'))
        self.titlelabel.pack()

        self.output = tk.Listbox(self, selectmode=tk.SINGLE)
        self.output.config(width=100, height=100)
        self.output.grid(row=1, column=1)

        # # Status bar
        self.status_frame = tk.Frame(self)
        self.status = tk.Label(self.status_frame,
                               text="Ready...",
                               relief=tk.SUNKEN,
                               anchor='w')
        self.status.pack(fill="both", expand=True)

        # Add output pane and status bar to parent
        self.input.grid(row=0, column=0, rowspan=2, sticky="nsew")
        self.title_frame.grid(row=0, column=1, sticky="ew")
        self.output.grid(row=1, column=1, sticky="nsew")
        self.status_frame.grid(row=2, column=0, columnspan=2, sticky="ew")

        self.grid_rowconfigure(1, weight=1)
        self.grid_columnconfigure(1, weight=1)
예제 #9
0
from os import system
from discord.ext import commands
from discord.utils import get
from discord.ext.commands import Bot
from booruComm import booruComm
from gelbooruCaller import gelbooruCaller
from UserCollection import UserCollection
from UserStatTracker import UserStatTracker
from auditor import Auditor
from UserLimiter import UserLimiter
from booruLib import booruLib
from filter import Filter
from clientConnections import ClientConnections

client = commands.Bot(command_prefix='ns!')
auditor = Auditor("audit.txt")
auditor.generateAuditLog()
auditLines = auditor.getInitialAuditLog()
users = UserCollection(auditLines)
userStats = UserStatTracker(users.getUsers(), auditLines)
gelbooruLimiter = UserLimiter()
ChannelFilter = Filter()
ClientConnector = ClientConnections()
ROLE = "Space🔮"
try:
    apiTokenFile = open('gelApiKey.config', 'r')
    apiToken = apiTokenFile.readline()
    apiTokenFile.close()
except OSError:
    print(
        "No gelApiKey.config file found for a gelbooru api key, no api key will be used and you will not be able to access blacklisted content."