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()
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")
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'])
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:
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
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
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)
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)
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'