示例#1
0
def startup(args=sys.argv[1:]):
    import optparse
    parser = optparse.OptionParser()
    parser.add_option("-l", "--listen", help="listening address:port", default="localhost:7770", dest="listening_addrinfo")
    parser.add_option("-c", "--connect", help="purple address:port", default="localhost:7771", dest="purple_addrinfo")
    parser.add_option("-s", help="does nothing. for compatibility", action="store_true", dest="dummy")
    options, args = parser.parse_args(args)
    
    tmp = options.listening_addrinfo.rsplit(":", 1)
    assert len(tmp) >= 2
    listen_address = tmp[0]
    listen_port = int(tmp[1])
    
    tmp = options.purple_addrinfo.rsplit(":", 1)
    assert len(tmp) >= 2
    connect_address = tmp[0]
    connect_port = int(tmp[1])

    if True:
        debuglog.init("Agent", title_color="cyan")
        log_info( "INSTALLING REACTOR...")
        from twisted.internet import reactor as _reactor
        global reactor
        reactor = _reactor
        
        yobotproto.yobot_proto_setlogger("Agent")
        svc = YobotServerService()
        
        log_info("connecting to purple at %s:%d" % (connect_address, connect_port))
        reactor.connectTCP(connect_address, connect_port, svc.getYobotPurpleFactory())
        
        log_info("listening on %s:%d" % (listen_address, listen_port))
        reactor.listenTCP(listen_port, svc.getYobotServerFactory(), interface=listen_address)
        
        reactor.run()
示例#2
0
文件: client.py 项目: mnunberg/yobot
def startup(args=sys.argv):
    import optparse
    options = optparse.OptionParser()
    options.add_option("-p", "--plugin", dest="selected_plugins", action="append",
                       help="include this plugin")
    options.add_option("-U", "--username", dest="username",
                       help="use this IM username")
    options.add_option("-P", "--password", dest="password",
                       help="use this password")
    options.add_option("-I", "--improto", dest="improto",
                       help="use this IM protocol [see documentation for a list]")
    options.add_option("-c", "--config-dir", dest="configdir",
                       help="client configuration directory",
                       default=yobot_interfaces.get_yobot_homedir())
    options.add_option("--use-proxy", dest="use_proxy", action="store_true",
                       help="use env proxy settings", default=False)
    options.add_option("--agent-address", dest="agent_addrinfo",
                       help="agent server:port")
    
    options, args = options.parse_args(args)
    
    #set our configuration directory
    yobot_interfaces.component_registry.register_component("yobot-config-dir", options.configdir)
    
    if options.selected_plugins:
        #generate dict:
        name_object = {}
        for plugin in yobot_interfaces.component_registry.get_plugins():
            name_object[plugin.plugin_name] = plugin
        for p in options.selected_plugins:
            plugin_object = name_object.get(p)
            if not plugin_object:
                log_warn("couldn't find plugin", p)
                continue
            yobot_interfaces.component_registry.activate_plugin(plugin_object)
    
    tmp = options.agent_addrinfo
    if tmp:
        tmp = tmp.rsplit(":", 1)
        address = tmp[0]
        if len(tmp) >= 2:
            port = int(tmp[1])
    else:
        #no address specified on the command line
        address, port = None, None
        
    debuglog.init("Client", title_color="green")
    yobotproto.yobot_proto_setlogger("Client")
    ui = UIClient()
    ui.run(address, port)
示例#3
0
    the name of the object can be used, to declare special patches,
    such as light sources or particles emmiter for instance.

TODO :
- multiple objects
- light sources
'''

from struct import unpack
from vector import Vec3
import numpy as np
from ansiprint import warning
import debuglog

logger = debuglog.init(__name__)


class Data:
    size = 0

    def __init__(self, parent, data):
        self.parent = parent

    def __repr__(self):
        return self.__class__.__name__


class Main(Data):
    pass
示例#4
0
#!/usr/bin/env python

import sys

try:
    sys.path.append("../")
    from debuglog import log_debug, log_err, log_warn, log_crit, log_info
    from gui_util import adjust_stylesheet_palette
    if __name__ == "__main__":
        import debuglog
        debuglog.init("Tabbed Windows", title_color="red")
except ImportError, e:
    def log_generic(*args):
        print " ".join([str(a) for a in args])
    log_debug = log_err = log_warn = log_crit = log_info = log_generic
    adjust_stylesheet_palette = lambda x: x
    log_err(e)

import os
if os.environ.get("USE_PYSIDE"):
    log_warn("Using PySide")
    from PySide.QtCore import *
    from PySide.QtGui import *
else:
    from PyQt4.Qt import (QHBoxLayout, QTabBar, QWidget, QMainWindow, QFrame,
                          QCursor, QVBoxLayout, QMenu, QPixmap, QApplication,
                          QPoint, QPushButton, QSizePolicy, QTabWidget, QMenuBar,
                          QLabel, QDrag, QTabBar, QAction, QPainter, QStyleOptionTab,
                          QImage, QDesktopWidget, QRect)
    from PyQt4.QtCore import (QMimeData, QObject, SIGNAL, QPoint, Qt, QTimer, QSize,
                              pyqtSignal)
示例#5
0
            
    
    def accept(self):
        #do some stuff first, like save
        if self.input_validated:
            self.config.save()
            QDialog.accept(self)
        else:
            QErrorMessage(self).showMessage("Bad input.. (somewhere?)")
    
if __name__ == "__main__":
    import sys
    import client_config
    import simplejson
    import debuglog
    debuglog.init("config_dialog", "cyan")
    app = QApplication(sys.argv)
    
    config = client_config.ClientConfig("/tmp/yobot_client_config", autocreate=True)
    yobot_interfaces.component_registry.register_component("client-config", config)
    
    #create some more account objects..
    a0 = {"name":"user0",
          "password":"******",
          "improto":"YOBOT_AIM",
          "autoconnect":True}
    a1 = a0.copy()
    a1["name"] = "user1"
    
    config.accounts.append(a0)
    config.accounts.append(a1)
示例#6
0
文件: shader.py 项目: flintforge/Aris
'''
ARIS
Author:  𝓟𝓱𝓲𝓵.𝓔𝓼𝓽𝓲𝓿𝓪𝓵  @ 𝓕𝓻𝓮𝓮.𝓯𝓻
Date:<2018-05-18 15:52:43>
Released under the MIT License
'''
from OpenGL.GL import *
from shadercompiler import ShaderCompiler
from ctypes import sizeof, c_float, c_void_p, c_uint
import debuglog
log = debuglog.init(__name__)

# goes in the c_size package
uint_size = sizeof(c_uint)
float_size = sizeof(c_float)
""" Important :
the order of attributes in the shader source matters.
The attributes MUST be declared in the same
order as the VBO packing occured :
index are automatically bound to location

exemple :
vertex_offset    = c_void_p(0 * float_size)
tex_coord_offset = c_void_p(3 * float_size)
normal_offset    = c_void_p(6 * float_size)
color_offset     = c_void_p(9 * float_size)
"""
record_len = 12 * float_size

# used for attributes locations
var_size = {