Example #1
0
    async def irc_listener() -> None:
        serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        serversocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        serversocket.bind((ip, port))
        serversocket.listen(1)

        s, _ = serversocket.accept()
        serversocket.close()
        asyncio.get_running_loop().add_signal_handler(signal.SIGHUP, term_f)
        asyncio.get_running_loop().add_signal_handler(signal.SIGTERM, term_f)
        asyncio.get_running_loop().add_signal_handler(signal.SIGINT, term_f)
        reader, writer = await asyncio.open_connection(sock=s)

        previous_status = None
        if status_file is not None and status_file.exists():
            previous_status = status_file.read_bytes()
        sl_client = slack.Slack(token, cookie, previous_status)
        await sl_client.login()

        clientsettings = ClientSettings(
            nouserlist=nouserlist,
            autojoin=autojoin,
            provider=provider,
            ignored_channels=ignored_channels,
            downloads_directory=downloads_directory,
            formatted_max_lines=formatted_max_lines,
            silenced_yellers=silenced_yellers,
        )
        verify = clientsettings.verify()
        if verify is not None:
            exit(verify)
        ircclient = Client(writer, sl_client, clientsettings)

        try:
            from_irc_task = asyncio.create_task(from_irc(reader, ircclient))
            to_irc_task = asyncio.create_task(to_irc(sl_client, ircclient))

            await asyncio.gather(
                from_irc_task,
                to_irc_task,
            )
        finally:
            log('Closing connections')
            sl_client.close()
            if status_file:
                log(f'Writing status to {status_file}')
                status_file.write_bytes(sl_client.get_status())
            writer.close()
            log('Cancelling running tasks')
            from_irc_task.cancel()
            to_irc_task.cancel()
Example #2
0
 def executeAD(self, dataset):
     datasetlen = len(dataset)
     lastrecord = dataset[datasetlen - 1]
     lastdate = lastrecord[1]
     dataset = self.prepareDataset(dataset)
     newrecord = self.csv.getLatestInformation(lastdate)
     result = []
     if self.doAD == 1:
         test = self.createTest(lastrecord, newrecord)
         result = self.lof(dataset, test, len(dataset) - 1)
     else:
         result = [0, 1]
     sl = slack.Slack()
     if result[1] == 1:
         self.csv.addRow(newrecord, 0)
         print("no anomalies detected")
         sl.sendMessage("SpaceViewer: no anomalies detected, the release to production will continue automatically")
     if result[1] == -1:
         self.csv.addRow(newrecord, 1)
         print("anomalies detected")
         sl.sendMessage("SpaceViewer: anomalies detected, the release to production is suspended, you can choose to continue the release from Jenkins")
Example #3
0
import jenkins, github, codeclimate, manage_csv, slack, anomalydetection
jen = jenkins.Jenkins()
g = github.GitHub()
cc = codeclimate.Codeclimate()
sl = slack.Slack()
csv = manage_csv.Manage_csv(g, cc, jen)
ad = anomalydetection.AnomalyDetection(jen, csv, 1)
#csv.create_csv()
dataset = csv.read_csv()
ad.executeAD(dataset['dataset'])
Example #4
0
        contest_id_list = [c['id'] for i, c in contests.iterrows()]
        util.setReminder(
            contests.iloc[0]['finish_date'] + dt.timedelta(seconds=30),
            'cd ' + os.getcwd() + ' && python3 generate.py ' +
            ' '.join(contest_id_list) + ' >> log/generate.log 2>&1')


if __name__ == '__main__':
    logging.basicConfig()
    logger = logging.getLogger(__name__)
    logger.setLevel(logging.INFO)

    config = configparser.ConfigParser()
    config.read('config.ini')

    Slack = slack.Slack(channel=config['slack']['channel_name'],
                        token=config['slack']['token'])

    logger.info('Read previous contest list')
    registered_contest_list = readContestList()

    logger.info('Fetch current contest list')
    fetched_contest_list = fetchContestList()

    logger.info('Select new contest list')
    # コンテスト情報がいきなり変更されるかもしれないので、開始まで一日を切ったコンテストのみ登録する
    new_contest_list = fetched_contest_list[fetched_contest_list.apply(
        lambda contest: hasHeldToday(contest) and isNew(
            contest, registered_contest_list),
        axis=1)]

    if new_contest_list.empty:
Example #5
0
def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('-p', '--port', type=int, action='store', dest='port',
                                default=9007, required=False,
                                help='set port number')
    parser.add_argument('-i', '--ip', type=str, action='store', dest='ip',
                                default='127.0.0.1', required=False,
                                help='set ip address')
    parser.add_argument('-t', '--tokenfile', type=str, action='store', dest='tokenfile',
                                default=expanduser('~')+'/.localslackirc',
                                required=False,
                                help='set the token file')
    parser.add_argument('-u', '--nouserlist', action='store_true',
                                dest='nouserlist', required=False,
                                help='don\'t display userlist')
    parser.add_argument('-o', '--override', action='store_true',
                                dest='overridelocalip', required=False,
                                help='allow non 127. addresses, this is potentially dangerous')

    args = parser.parse_args()
    # Exit if their chosden ip isn't local. User can override with -o if they so dare
    if not args.ip.startswith('127') and not args.overridelocalip:
        exit('supplied ip isn\'t local\nlocalslackirc has no encryption or ' \
                'authentication, it\'s recommended to only allow local connections\n' \
                'you can override this with -o')

    sl_client = slack.Slack(args.tokenfile)
    sl_events = sl_client.events_iter()
    serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    serversocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    serversocket.bind((args.ip, args.port))
    serversocket.listen(1)

    poller = select.poll()

    while True:
        s, _ = serversocket.accept()
        ircclient = Client(s, sl_client, args.nouserlist)

        poller.register(s.fileno(), select.POLLIN)
        if sl_client.fileno is not None:
            poller.register(sl_client.fileno, select.POLLIN)

        # Main loop
        timeout = 0.1
        while True:
            s_event = poller.poll(timeout)  # type: List[Tuple[int,int]]
            sl_event = next(sl_events)

            if s_event:
                text = s.recv(1024)
                if len(text) == 0:
                    break
                #FIXME handle the case when there is more to be read
                for i in text.split(b'\n')[:-1]:
                    i = i.strip()
                    if i:
                        ircclient.command(i)

            if sl_event:
                print(sl_event)
                ircclient.slack_event(sl_event)
                timeout = 0.1
            else:
                timeout = 7
Example #6
0
import slack
import sys
import json
import tornado.websocket
import websocket
import requests
from StringIO import StringIO
import grobid

config = json.loads(open(sys.argv[1]).read())

grobid = grobid.Grobid("http://localhost:10810")

s = slack.Slack(config['slack']['token'])

im = s.open_im('U04QRTZ3X')
channel = im['channel']['id']

response = s.rtm_start()

ws_url = response['url']

ws = websocket.create_connection(ws_url)

id = 1
while True:
	message_string = ws.recv()
	if message_string != "":
		
		message = json.loads(message_string)
		#print message
Example #7
0
def main() -> None:
    parser = argparse.ArgumentParser()
    parser.add_argument('-p',
                        '--port',
                        type=int,
                        action='store',
                        dest='port',
                        default=9007,
                        required=False,
                        help='set port number')
    parser.add_argument('-i',
                        '--ip',
                        type=str,
                        action='store',
                        dest='ip',
                        default='127.0.0.1',
                        required=False,
                        help='set ip address')
    parser.add_argument('-t',
                        '--tokenfile',
                        type=str,
                        action='store',
                        dest='tokenfile',
                        default=expanduser('~') + '/.localslackirc',
                        required=False,
                        help='set the token file')
    parser.add_argument('-u',
                        '--nouserlist',
                        action='store_true',
                        dest='nouserlist',
                        required=False,
                        help='don\'t display userlist')
    parser.add_argument('-j',
                        '--autojoin',
                        action='store_true',
                        dest='autojoin',
                        required=False,
                        help="Automatically join all remote channels")
    parser.add_argument(
        '-o',
        '--override',
        action='store_true',
        dest='overridelocalip',
        required=False,
        help='allow non 127. addresses, this is potentially dangerous')
    parser.add_argument(
        '--rc-url',
        type=str,
        action='store',
        dest='rc_url',
        default=None,
        required=False,
        help=
        'The rocketchat URL. Setting this changes the mode from slack to rocketchat'
    )

    args = parser.parse_args()
    # Exit if their chosden ip isn't local. User can override with -o if they so dare
    if not args.ip.startswith('127') and not args.overridelocalip:
        exit('supplied ip isn\'t local\nlocalslackirc has no encryption or ' \
                'authentication, it\'s recommended to only allow local connections\n' \
                'you can override this with -o')

    if 'PORT' in environ:
        port = int(environ['PORT'])
    else:
        port = args.port

    if 'TOKEN' in environ:
        token = environ['TOKEN']
    else:
        try:
            with open(args.tokenfile) as f:
                token = f.readline().strip()
        except (FileNotFoundError, PermissionError):
            exit(f'Unable to open the token file {args.tokenfile}')

    if args.rc_url:
        sl_client = rocket.Rocket(
            args.rc_url, token)  # type: Union[slack.Slack, rocket.Rocket]
        provider = Provider.ROCKETCHAT
    else:
        sl_client = slack.Slack(token)
        provider = Provider.SLACK
    sl_events = sl_client.events_iter()
    serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    serversocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    serversocket.bind((args.ip, port))
    serversocket.listen(1)

    poller = select.poll()

    while True:
        s, _ = serversocket.accept()
        ircclient = Client(s, sl_client, args.nouserlist, args.autojoin,
                           provider)

        poller.register(s.fileno(), select.POLLIN)
        if sl_client.fileno is not None:
            poller.register(sl_client.fileno, select.POLLIN)

        # Main loop
        timeout = 2
        while True:
            s_event = poller.poll(timeout)  # type: List[Tuple[int,int]]
            sl_event = next(sl_events)

            if s_event:
                text = s.recv(1024)
                if len(text) == 0:
                    break
                #FIXME handle the case when there is more to be read
                for i in text.split(b'\n')[:-1]:
                    i = i.strip()
                    if i:
                        ircclient.command(i)

            while sl_event:
                print(sl_event)
                ircclient.slack_event(sl_event)
                sl_event = next(sl_events)
Example #8
0
import logging
import webapp2
from google.appengine.api import users

from config_page import ConfigPage
import commands
import context
import slack

SLACK = slack.Slack()


class MainPage(webapp2.RequestHandler):
    def get(self):
        template = context.jinja_environment.get_template('index.html')
        self.response.out.write(template.render({}))


class LogoutPage(webapp2.RequestHandler):
    def get(self):
        self.redirect(users.create_logout_url('/'))


class CommandPage(webapp2.RequestHandler):
    def post(self):
        logging.info(self.request)
        response = commands.run(SLACK, self.request)
        if response:
            self.response.headers['Content-Type'] = 'text/plain; charset=utf-8'
            self.response.write(response.encode('utf-8'))
    isSomeone = False
    for (box, pred) in zip(locs, preds):
        isSomeone = True

        # unpack the bounding box and predictions
        (startX, startY, endX, endY) = box
        (mask, withoutMask) = pred

        if not wasCalled:
            wasCalled = True
            if mask > withoutMask:
                clientsCounter = clientsCounter + 1
                print(clientsCounter)
                engine.say("Entre em nossa loja, obrigado por vir")
                engine.runAndWait()
                slack.Slack('Novo cliente entrando em sua loja (' +
                            str(clientsCounter) + ' cliente(s) ja passaram)')
                time.sleep(2)

        # determine the class label and color we'll use to draw
        # the bounding box and text
        label = "Mask" if mask > withoutMask else "No Mask"
        color = (0, 255, 0) if label == "Mask" else (0, 0, 255)

        # include the probability in the label
        label = "{}: {:.2f}%".format(label, max(mask, withoutMask) * 100)

        # display the label and bounding box rectangle on the output
        # frame
        cv2.putText(frame, label, (startX, startY - 10),
                    cv2.FONT_HERSHEY_SIMPLEX, 0.45, color, 2)
        cv2.rectangle(frame, (startX, startY), (endX, endY), color, 2)
Example #10
0
if __name__ == '__main__':
    logging.basicConfig()
    logger = logging.getLogger(__name__)
    logger.setLevel(logging.INFO)

    parser = argparse.ArgumentParser()
    parser.add_argument('contest_id_list', nargs='+',)
    parser.add_argument('--mode', default='deployment')
    args = parser.parse_args()

    config = configparser.ConfigParser()
    config.read('config.ini')

    Slack = slack.Slack(
        channel=config['slack']['channel_name']
        if args.mode == 'deployment' else config['slack']['test_channel_name'],
        token=config['slack']['token']
    )

    Jinja2 = jinja2.Environment(
        loader=jinja2.FileSystemLoader(searchpath='./tpl', encoding='utf8'))
    Jinja2.globals.update(
        zip=zip,
        list=list,
        str=str,
        int=int,
    )

    logger.info('Contest list: ' + ' '.join(args.contest_id_list))

    data_path = 'data' if args.mode == 'deployment' else 'tmp/data'