예제 #1
0
    def run(self) -> None:
        discord_client = discord.Client()

        weather_service = WeatherService(
            self._settings.integration_settings.open_weather_map_api_key,
            self._settings.integration_settings.weather_underground_api_key)

        message_factory = MessageFactory(self._settings)

        command_handler = CommandHandler(self._settings, weather_service,
                                         discord_client, message_factory)

        weather_discord_service = WeatherDiscordService(
            self._settings.measurement_system, self._settings.home_settings,
            weather_service, discord_client)

        @discord_client.event
        async def on_message(message) -> None:
            await command_handler.handle(message)

        discord_client.loop.create_task(
            weather_discord_service.send_home_forecast())
        discord_client.loop.create_task(
            weather_discord_service.update_profile())
        discord_client.loop.create_task(
            weather_discord_service.update_presence())
        discord_client.run(
            self._settings.integration_settings.discord_bot_token)
예제 #2
0
 async def handle_help(self, command) -> None:
     logging.info("handling help...")
     msg = MessageFactory.format_help()
     await self._discord_client.send_message(command.channel, msg)
예제 #3
0
 async def execute(self) -> None:
     msg = MessageFactory.format_presence(self._weather, self._should_help)
     await self._discord_client.change_presence(game=discord.Game(name=msg))
예제 #4
0
        start_response('200 OK', [('Content-type', 'charset=utf-8')])
        return open('./sms.html')
    # Check whether the parameters are legal.
    if 'from' not in url_para or 'pswd' not in url_para or 'msg' not in url_para:
        status = '200 OK'
        response_headers = [('Content-type', 'application/json;charset=utf-8')]
        start_response(status, response_headers)
        return [json.dumps({"sendCode": -1, "info": u"参数错误!"})]
    # If receiver's mobile phone number is not set, send to the sender as default.
    if 'to' not in url_para or url_para['to'] == '':
        url_para['to'] = url_para['from']
    else:
        url_para['to'] = url_para['to'].split(',')

    config = ConfigParser.ConfigParser()
    try:
        config.read('./sms/config.ini')
        msg_cls_type = config.get('Message', 'class type')
    except Exception, error:
        print(error)
        print('Use short fetion message as default message sender class.')
        msg_cls_type = 'Short Fetion'

    sms_sender = MessageFactory.create_message(msg_cls_type, url_para['from'], url_para['pswd'])

    status = '200 OK'
    response_headers = [('Content-type', 'application/json;charset=utf-8')]
    start_response(status, response_headers)

    return [json.dumps(sms_sender.send(url_para['msg'], url_para['to']))]
예제 #5
0
파일: filters.py 프로젝트: kliput/peanotes
        for f in self.filter_list:
            if f.matches(msg):
                return True
        return False

class AndFilter:
    def __init__(self, filter_list):
        self.filter_list = filter_list
    def matches(self, msg):
        for f in self.filter_list:
            if not f.matches(msg):
                return False
        return True

if __name__ == '__main__':
    msg_factory = MessageFactory()
    msg_factory.set_sender("*****@*****.**")
    msg_factory.set_content("ilikecats")
    msg_factory.set_recipients(["*****@*****.**", "*****@*****.**"])
    msg = msg_factory.build()
    
    re_filter1 = RegexFilter("ihate.*");
    print "regexfilter1 = ", re_filter1.matches(msg)
    
    re_filter2 = RegexFilter(".*cats");
    print "regexfilter2 = ", re_filter2.matches(msg)
    
    word_filter1 = WordFilter("doesanyonereadthis?, ilikecatz");
    print "wordfilter1 = ", word_filter1.matches(msg)
    
    word_filter2 = WordFilter("catsaretasty,  ilikecats");
예제 #6
0
파일: run.py 프로젝트: ripples-alive/SMS
#!/usr/bin/env python
# encoding:utf-8
__author__ = 'Jayvic'
__date__ = '14-7-22'

import ConfigParser
import getpass

from message_factory import MessageFactory


config = ConfigParser.ConfigParser()
config.read('config.ini')
msg_cls_type = config.get('Message', 'class type')

from_tel = raw_input('Your mobile number: ')
password = getpass.getpass('Your password: '******'Send to: ')
    msg = raw_input('Content: ')
    if (to_tel == '') or (to_tel == from_tel):
        sms_sender.send_to_self(msg)
    else:
        sms_sender.send(msg, to_tel.split(','))
예제 #7
0
 def send_image_frame(self, image):
     self.__logger.debug(__name__ + "sending image frame with size {0}".format(image.size))
     command = MessageFactory.create_display_frame_message(image)
     self.send_message(command)
예제 #8
0
 def send_set_size(self, size):
     self.__logger.info(__name__ + " sending size message {0}".format(size))
     command = MessageFactory.create_set_size_message(size)
     self.send_message(command)