JREAM
9/28/2014 - 2:58 AM

SS Bot - File Purposes

SS Bot - File Purposes

Some of these files are self-explanatory. I'm trying to get to the root of what these files serve as a purpose.
Downloaded from: https://code.google.com/p/subspace-python-core/downloads/list

    __init__.py     - Just Loads Directory
    Amysql.py       - Looks like the SQL Adapter
    BotConfig.py    - Passes a {} here from where?
    BotInstance.py  - Receivies many arguments and the Handles Bot Events. 
                      Runs on a thread, so this "Bundle of Bot Items" can run multiple Bots at a time, So do you add to the JSON list of Bots? This looks very out of date.
    BotUtilities.py - This is a large file, but I noticed a LoadBot function in here, I don't understand this because in TestBoy.py it doesn't call BotUtilities.LoadBot().
    Bots.json       - Possibly loaded into the BotConfig?
    build.bat       - Why are you doing Py2Exe? Aren't you running the Python files themselves?
    chat.py         - Appears to be a Bot for chatting? Is that true?
    Master.py       - Looks like the Bot Controller, something I wouldn't have to touch.
    p_stats.py      - This looks like a useless file with an old date?
    PlayerInfo.py   - Appears to be a utility class that could be used for events? Or is this global stuff?
    PopSet.py       - Another class named Bot (Which appears to allow you to run a bot in a stand-alone mode apart from Master.py?
    SSParsers.py    - Looks like something I don't need to be concerned with ATM.
    SubspaceBot.py  - A lot of values and a Player Class -- What is the difference with this versus "TestBot.py"?
    SubspaceCoreStack.py - Appears to apply with Packetloss/Players rather than an actual Bot.
    SubspaceEncryption.py - Do I need to know?
    SubspaceFileChecksum.py - Checksum of what? If a file changed? Why is this here?
    SubspaceSettings.py - Appears to adjust the arena settings for an event bot?
    TestBoy.py        - This has a __main__ method, I'm guessing it's not a production but but just a test? Because Master.py handles the loading right?
    TimeManager.py    - Just a Utility class?
    TweetBot.py       - Oddly I see import twitter but no requirements.txt to use with PIP, have I missed something?
    
It appears that there may be some classes that are "System", "Utility", and "Config", but it's all in one Directory. If I'm not mistaken, wouldn't it be wise to do the following file structure and naming convention (Or something similar?)

    /config
    /bots
      /global
      /generic
    /utils
    /system (or core)

Then toss our `__init__.py`'s in there and have a cleanup up application? If that's too much work, can you atleast explain to me the flow of the bot system, for example:

    Admin Calls Master.py and Loads BotApple.py
       BotApple.py uses JSON config 
         The Master.py calls HandleEvent for the life of the Bot
            .. What is happening in this flow?