def setUp(self): # Init: client gateway # This "client" sends messages through a remote server self.gw_client = Gateway() self.gw_client.add_provider( 'fwd', ForwardClientProvider, server_url='http://*****:*****@localhost:5001/sms/fwd') # Init: server gateway # This "server" receives messages from an external SMS server and forwards them to the client self.gw_server = Gateway() self.gw_server.add_provider('lo', LoopbackProvider) self.gw_server.add_provider( 'fwd', ForwardServerProvider, clients=['http://*****:*****@localhost:5000/sms/fwd']) self.lo = self.gw_server.get_provider( 'lo' ) # This is run in another thread, but we should have access to it ' :type: LoopbackProvider ' # Run client in a thread self.t_client = threading.Thread(target=self._runFlask, args=(self.gw_client, 5000)) self.t_client.start() # Run server in a thread self.t_server = threading.Thread(target=self._runFlask, args=(self.gw_server, 5001)) self.t_server.start() # Give Flask some time to initialize time.sleep(0.5)
def setUp(self): self.lock = threading.Lock() # Init: client gateway self.gw_client = Gateway() self.gw_client.add_provider('fwd', ForwardClientProvider, server_url='http://*****:*****@localhost:5001/sms/fwd') # Init: server gateway self.gw_server = Gateway() self.gw_server.add_provider('lo', LoopbackProvider) self.gw_server.add_provider('fwd', ForwardServerProvider, clients=['http://*****:*****@localhost:5000/sms/fwd']) self.lo = self.gw_server.get_provider('lo') ' :type: LoopbackProvider ' # Run client in a thread self.t_client = threading.Thread(target=self._runFlask, args=(self.gw_client, 5000)) self.t_client.daemon = True self.t_client.start() # Run server in a thread self.t_server = threading.Thread(target=self._runFlask, args=(self.gw_server, 5001)) self.t_server.daemon = True self.t_server.start() # Give Flask some time to initialize time.sleep(0.5)
def setUp(self): """Initialize AfricasTalkingProvider""" self.gw = gw = Gateway() gw.add_provider('africas_talking', AfricasTalkingProvider, username='******', api_key='api_key')
def setUp(self): # Gateway gw = self.gw = Gateway() gw.add_provider('null', NullProvider) # provocation gw.add_provider('main', YunpianProvider, apikey='my_api_key1234', signature='Google') # Flask app = self.app = Flask(__name__) # Register receivers gw.receiver_blueprints_register(app, prefix='/a/b/')
def setUp(self): # Gateway gw = self.gw = Gateway() gw.add_provider('main', TwilioStudioProvider, account_sid='sid', secret='secret', username='******') # Flask app = self.app = Flask(__name__) # Register receivers gw.receiver_blueprints_register(app, prefix='/msg/')
def setUp(self): # Gateway gw = self.gw = Gateway() gw.add_provider('null', NullProvider) # provocation gw.add_provider('main', PswinProvider, user='******', password='******') self.requests = [] # Flask app = self.app = Flask(__name__) # Register receivers gw.receiver_blueprints_register(app, prefix='/a/b/')
def setUp(self): # Gateway gw = self.gw = Gateway() gw.add_provider('null', NullProvider) # provocation gw.add_provider( 'main', Target365Provider, base_url='https://target365.api/', key_name='my_api_key', # Private key len is defined in the API SDK private_key=base64.binascii.hexlify( base64.b64encode(('a' * 23).encode('ascii')))) # Flask app = self.app = Flask(__name__) # Register receivers gw.receiver_blueprints_register(app, prefix='/a/b/')
def setUp(self): # Gateway gw = self.gw = Gateway() gw.add_provider('main', AmazonSNSProvider, access_key='A', secret_access_key='B', region_name='eu-west-1') # Flask app = self.app = Flask(__name__) # Register receivers gw.receiver_blueprints_register(app, prefix='/in-sms/') # botocore logging is too verbose; raise the level logging.getLogger('boto3').setLevel(logging.WARNING) logging.getLogger('botocore').setLevel(logging.WARNING)
def setUp(self): self.gw = Gateway() # Providers self.gw.add_provider('one', NullProvider) self.gw.add_provider('two', NullProvider) self.gw.add_provider('three', NullProvider) # Router def router(message, module, method): if module == 'main': return None # use 'one' for module 'main' elif method == 'alarm': return 'two' # use 'three' for all alerting methods else: return 'three' # use 'two' for everything else self.gw.router = router
def setUp(self): gw = self.gw = Gateway() # Providers self.gw.add_provider('main', LoopbackProvider) provider = self.provider = gw.get_provider('main') ' :type: LoopbackProvider ' # Add subscribers self.subscriber_log = [] def subscriber(name, replies=False): def callback(message): self.subscriber_log.append('{name}:{src}:{body}'.format( name=name, src=message.src, body=message.body)) if replies: message.reply('hello') return callback provider.subscribe('+1', subscriber('1')) provider.subscribe('+2', subscriber('2')) provider.subscribe('+3', subscriber('3', replies=True)) # Event handlers self.events_log = [] def out_msg(message): self.events_log.append(message) def in_msg(message): self.events_log.append(message) def in_status(status): self.events_log.append(status) gw.onSend += out_msg gw.onReceive += in_msg gw.onStatus += in_status
from django.conf import settings from django.core.mail import send_mail from django.db import models from django.db.models import Q from django.utils.translation import gettext_lazy as _ from sentry_sdk import capture_exception from smsframework import Gateway, OutgoingMessage from smsframework_gatewayapi import GatewayAPIProvider from twilio.rest import Client from .base import Address, TimestampedModel from .courier_models import CourierCompany, Courier, Sender if settings.SMS_PLATFORM == 'GatewayAPI': gateway = Gateway() gateway.add_provider('gapi', GatewayAPIProvider, key=settings.GATEWAY_API['KEY'], secret=settings.GATEWAY_API['SECRET']) class Package(TimestampedModel): name = models.CharField(max_length=64, blank=True) details = models.TextField(blank=True) pickup_at = models.ForeignKey(Address, verbose_name=_('pickup location'), related_name='outbound_packages', on_delete=models.PROTECT) deliver_to = models.ForeignKey(Address, verbose_name=_('destination'),
def setUp(self): self.gw = Gateway() # Providers self.gw.add_provider('main', LogProvider)
SLEEP = 1 COUNTY = 'Clark+County' PHONE_NUMBERS = ['+12223331234', '+12223331235'] ADMIN_NUMBER = ['+12223331234'] DATA = { "Available": { "Links": [], "LastLinks": [] }, "Possible": { "Links": [], "LastLinks": [] } } GATEWAY = Gateway() GATEWAY.add_provider( 'amazon', AmazonSNSProvider, access_key='AWS_ACCESS_KEY', secret_access_key='AWS_SECRET_KEY', region_name='us-west-2', ) def send_sms(recipients, message): '''Send SMS to recipients with message''' for pnumber in recipients: GATEWAY.send(OutgoingMessage(pnumber, message))