Example #1
0
 def call(self, chat, author, arguments):
     player = db.find_player_by_telegram_id(author)
     if player is None:
         telegram.send(
             chat,
             "Introduce yourself by providing your psn id: /r register <psn-id>"
         )
         return
     (event_type_code, date_code, time_code,
      comment) = self.parse_arguments(chat, arguments)
     event_type = db.find_type_by_code(event_type_code)
     if event_type is None:
         telegram.send(
             chat, "Event type not found: " + event_type_code +
             ", see available types: /r types")
         return
     if date_code == 'today':
         day = date.today()
     elif date_code == 'tomorrow':
         day = date.today() + timedelta(days=1)
     else:
         year = date.today().year
         day = datetime.strptime(date_code, '%d/%m')
         day = day.replace(year=year)
     if comment is None:
         comment = ""
     d = datetime.combine(day, datetime.strptime(time_code, '%H:%M').time())
     db.add_event(player, event_type.key.id(), d, comment)
     telegram.send(chat, "Event added")
Example #2
0
 def test_get_events(self):
     """Getting event test."""
     package_members = self.prepare_package_members()
     db.create_package(package_members['escrow'][0],
                       package_members['launcher'][0],
                       package_members['recipient'][0], 50000000, 100000000,
                       time.time(), None, None, None, None)
     new_package_members = self.prepare_package_members()
     db.create_package(new_package_members['escrow'][0],
                       new_package_members['launcher'][0],
                       new_package_members['recipient'][0], 50000000,
                       100000000, time.time(), None, None, None, None)
     for user in new_package_members:
         db.add_event(new_package_members['escrow'][0], user[0],
                      'new event', None)
     events = db.get_package_events(package_members['escrow'][0])
     self.assertEqual(
         len(events), 1,
         "expected 1 event for package: '{}', but '{}' got instead".format(
             package_members['escrow'][0], len(events)))
     events = db.get_package_events(new_package_members['escrow'][0])
     self.assertEqual(
         len(events), 5,
         "expected 5 events for package: '{}', but '{}' got instead".format(
             package_members['escrow'][0], len(events)))
Example #3
0
def gates_sensor_handler(gpio):
    global bot
    if (c.DEVELOPER_COMPUTER != '64bit'):
        pin = int(gpio.getPin())
        new_state = gpio.read()
    else:
        pin = 45
        new_state = 1
    gate = -1
    for i in range(len(c.GPIOREAD_LIST)):
        if (pin == c.GPIOREAD_LIST[i]):
            gate = i
            break
    if (gate >= 0 and bot != None):
        subscribers = db.get_subscribers(gate)
        if (new_state == c.OPEN_GPIO):
            send_to_subscribers(
                bot, subscribers,
                "Informacion: Porton " + str(gate) + " fue abierto")
            Thread(target=timer_close_gate, args=(
                bot,
                gate,
            )).start()
        elif (new_state == c.CLOSED_GPIO):
            send_to_subscribers(
                bot, subscribers,
                "Informacion: Porton " + str(gate) + " fue cerrado")
        else:
            send_to_subscribers(
                bot, subscribers,
                "Informacion: Porton " + str(gate) + " estado desconocido")
    else:
        print(pin, new_state, gate)
        print("Error no encontro puerta")
    db.add_event(new_state, gate)
Example #4
0
def changed_location_handler(user_pubkey, escrow_pubkey, location):
    """
    Add new `changed_location` event for package.
    ---
    :param user_pubkey:
    :param escrow_pubkey:
    :param location:
    :return:
    """
    db.add_event(escrow_pubkey, user_pubkey, 'changed location', location)
    return {'status': 200}
Example #5
0
def add_event_handler(user_pubkey, escrow_pubkey, event_type, location):
    """
    ---
    :param user_pubkey:
    :param escrow_pubkey:
    :param event_type:
    :param location:
    :return:
    """
    db.add_event(escrow_pubkey, user_pubkey, event_type, location)
    return {'status': 200}
Example #6
0
    def post(self):
        event_type = self.request.get('event_type')
        date = self.request.get('date')
        time = self.request.get('time')
        comment = self.request.get('comment')

        event_date = datetime.strptime(date + ' ' + time, '%m/%d/%Y %H:%M')

        player = db.find_player(users.get_current_user().user_id())
        db.add_event(player, event_type, event_date, comment)

        events_for(self, player)
Example #7
0
    def post(self):
        event_type = self.request.get('event_type')
        date = self.request.get('date')
        time = self.request.get('time')
        comment = self.request.get('comment')

        event_date = datetime.strptime(date + ' ' + time, '%m/%d/%Y %H:%M')

        player = db.find_player(users.get_current_user().user_id())
        db.add_event(player, event_type, event_date, comment)

        events_for(self, player)
Example #8
0
    def post(self):
        event_type = self.request.get("event_type")
        date = self.request.get("date")
        time = self.request.get("time")
        comment = self.request.get("comment")

        event_date = datetime.strptime(date + " " + time, "%m/%d/%Y %H:%M")

        player = db.find_player(users.get_current_user().user_id())
        db.add_event(player, event_type, event_date, comment)

        events_for(self, player)
Example #9
0
def accept_package_handler(user_pubkey, escrow_pubkey, location=None):
    """
    Accept a package.
    If the package requires collateral, commit it.
    If user is the package's recipient, release all funds from the escrow.
    ---
    :param user_pubkey:
    :param escrow_pubkey:
    :param location:
    :return:
    """
    package = db.get_package(escrow_pubkey)
    event_type = 'received' if package['recipient_pubkey'] == user_pubkey else 'couriered'
    db.add_event(escrow_pubkey, user_pubkey, event_type, location)
    return {'status': 200}
Example #10
0
    def recv_event(self, environ, start_response):
        global eventslist
        formdata = environ['QUERY_STRING']

        results = urlparse.parse_qs(formdata)


        info = results.values()[3][0], results.values()[0][0], results.values()[1][0]
        eventslist[results.values()[2][0]] = info





        content_type ='text/html'
        data ="""<html>
 <head>
 <title>Events</title>
 <style type='text/css'>
 h3 {color:MediumOrchid;
  text-shadow: 0px 1px 1px #fff;
  border-bottom: 2px solid #b2b2b2;
 
  background: -webkit-gradient(linear, left top, left bottom, from(#beeae9), to(#a8cfce));
   -webkit-border-radius:7px;
  -moz-border-radius:7px;
  text-align:center;
  }
 body {
 font-size: 14px;
 background-color:LightGrey;
 text-align: center;
 }

 </style>

 </head>
 <body>
 <h3> Events </h3>
 <p>Listed Events </p>
        Event Name %s <br/>  Event Location %s <br/> Event Time %s <br/> Event Date %s <br/><a href= './'> Home </a>""" %(results.values()[2][0], results.values()[3][0], results.values()[0][0], results.values()[1][0])


        db.add_event(results)


        start_response('200 OK', list(html_headers))
        return [data]
Example #11
0
 def test_add_event(self):
     """Adding event test."""
     package_members = self.prepare_package_members()
     db.create_package(
         package_members['escrow'][0], package_members['launcher'][0], package_members['recipient'][0],
         '+490857461783', '+4904597863891', 50000000, 100000000, time.time(), 'Package description',
         '12.970686,77.595590', '41.156193,-8.637541', 'India Bengaluru', 'Spain Porto', '12.970686,77.595590', None)
     db.add_event(package_members['courier'][0], 'couriered', '12.970686,77.595590', package_members['escrow'][0])
     events = db.get_package_events(package_members['escrow'][0])
     self.assertEqual(len(events), 2, "2 events expected, but {} got instead".format(len(events)))
     couriered_event = next((event for event in events if event['event_type'] == 'couriered'), None)
     self.assertIsNotNone(couriered_event, "expected event with event_type: 'couriered', None got instead")
     self.assertEqual(
         couriered_event['user_pubkey'], package_members['courier'][0],
         "expected event with user_pubkey: {}, but {} got instead".format(
             package_members['courier'][0], couriered_event['user_pubkey']))
Example #12
0
def record_event_json_post(event, context):
    logger.info('Event1: %s' % (event, ))
    logger.info('Context1: %s' % (context, ))
    user_id, pet_id, action = event['user'], event['pet'], event['action']
    ret = db.add_event(user_id, pet_id, action)
    logger.info('Ret for record_event: %s' % (ret, ))
    return ret
Example #13
0
def record_event_json_post(event, context):
    logger.info('Event1: %s' % (event, ))
    logger.info('Context1: %s' % (context, ))
    user_id, pet_id, action = event['user'], event['pet'], event['action']
    ret = db.add_event(user_id, pet_id, action)
    logger.info('Ret for record_event: %s' % (ret, ))
    return ret
Example #14
0
    def test_get_user_packages(self):
        """Getting user packages test."""
        user = self.generate_keypair()
        first_package_members = self.prepare_package_members()
        LOGGER.info('creating package with user role: launcher')
        db.create_package(
            first_package_members['escrow'][0], user[0], first_package_members['recipient'][0],
            '+490857461783', '+4904597863891', 50000000, 100000000, time.time(), 'Package description',
            '12.970686,77.595590', '41.156193,-8.637541', 'India Bengaluru', 'Spain Porto', '12.970686,77.595590', None)
        second_package_members = self.prepare_package_members()
        LOGGER.info('creating package with user role: recipient')
        db.create_package(
            second_package_members['escrow'][0], second_package_members['launcher'][0], user[0],
            '+490857461783', '+4904597863891', 50000000, 100000000, time.time(), 'Package description',
            '12.970686,77.595590', '41.156193,-8.637541', 'India Bengaluru', 'Spain Porto', '12.970686,77.595590', None)
        third_package_members = self.prepare_package_members()
        LOGGER.info('creating package with user role: courier')
        db.create_package(
            third_package_members['escrow'][0], third_package_members['launcher'][0],
            third_package_members['recipient'][0], '+490857461783', '+4904597863891',
            50000000, 100000000, time.time(), 'Package description', '12.970686,77.595590', '41.156193,-8.637541',
            'India Bengaluru', 'Spain Porto', '12.970686,77.595590', None)
        db.add_event(user[0], 'couriered', '12.970686,77.595590', third_package_members['escrow'][0])

        packages = db.get_packages(user[0])
        self.assertEqual(len(packages), 3, "3 packages expected, {} got instead".format(len(packages)))
        package = next((
            package for package in packages if package['launcher_pubkey'] == user[0]), None)
        self.assertEqual(package['user_role'], 'launcher',
                         "expected role: 'launcher', '{}' got instead".format(package['user_role']))
        self.assertEqual(package['custodian_pubkey'], user[0],
                         "{} expected as custodian, {} got instead".format(user[0], package['custodian_pubkey']))
        package = next((
            package for package in packages if package['recipient_pubkey'] == user[0]), None)
        self.assertEqual(package['user_role'], 'recipient',
                         "expected role: 'recipient', '{}' got instead".format(package['user_role']))
        self.assertEqual(package['custodian_pubkey'], second_package_members['launcher'][0],
                         "{} expected as custodian, {} got instead".format(
                             second_package_members['launcher'][0], package['custodian_pubkey']))
        package = next((
            package for package in packages
            if user[0] not in (package['recipient_pubkey'], package['launcher_pubkey'])), None)
        self.assertEqual(package['user_role'], 'courier',
                         "expected role: 'courier', '{}' got instead".format(package['user_role']))
        self.assertEqual(package['custodian_pubkey'], user[0],
                         "{} expected as custodian, {} got instead".format(user[0], package['custodian_pubkey']))
Example #15
0
def add_event_handler(user_pubkey,
                      event_type,
                      location,
                      escrow_pubkey=None,
                      kwargs=None,
                      photo=None):
    """
    Add new event for package.
    ---
    :param user_pubkey:
    :param event_type:
    :param location:
    :param escrow_pubkey:
    :param kwargs:
    :param photo:
    :return:
    """
    db.add_event(user_pubkey, event_type, location, escrow_pubkey, kwargs,
                 photo)
    return {'status': 200}
Example #16
0
 def test_get_events(self):
     """Getting event test."""
     package_members = self.prepare_package_members()
     db.create_package(
         package_members['escrow'][0], package_members['launcher'][0], package_members['recipient'][0],
         '+490857461783', '+4904597863891', 50000000, 100000000, time.time(), 'Package description',
         '12.970686,77.595590', '41.156193,-8.637541', 'India Bengaluru', 'Spain Porto', '12.970686,77.595590', None)
     new_package_members = self.prepare_package_members()
     db.create_package(
         new_package_members['escrow'][0], new_package_members['launcher'][0], new_package_members['recipient'][0],
         '+490857461783', '+4904597863891', 50000000, 100000000, time.time(), 'Package description',
         '12.970686,77.595590', '41.156193,-8.637541', 'India Bengaluru', 'Spain Porto', '12.970686,77.595590', None)
     for user in new_package_members:
         db.add_event(new_package_members[user][0], 'new event',
                      '12.970686,77.595590', new_package_members['escrow'][0])
     events = db.get_package_events(package_members['escrow'][0])
     self.assertEqual(len(events), 1, "expected 1 event for package: '{}', but '{}' got instead".format(
         package_members['escrow'][0], len(events)))
     events = db.get_package_events(new_package_members['escrow'][0])
     self.assertEqual(len(events), 5, "expected 5 events for package: '{}', but '{}' got instead".format(
         package_members['escrow'][0], len(events)))
Example #17
0
    def test_get_escrow_events(self):
        """Getting escrow events test."""
        packages_members = [self.prepare_package_members() for _ in range(3)]
        for members in packages_members:
            db.create_package(members['escrow'][0], members['launcher'][0], members['recipient'][0],
                              '+490857461783', '+4904597863891', 50000000, 100000000, time.time(),
                              'Package description', '12.970686,77.595590', '41.156193,-8.637541',
                              'India Bengaluru', 'Spain Porto', '12.970686,77.595590', None)
        for members in packages_members:
            events = db.get_package_events(members['escrow'][0])
            self.assertEqual(len(events), 1,
                             "1 event expected for escrow: {}, but {} got instead".format(
                                 members['escrow'][0], len(events)))

        for index, members in enumerate(packages_members):
            for _ in range(index):
                db.add_event(members['courier'][0], 'new event', '12.970686,77.595590', members['escrow'][0])
        for index, members in enumerate(packages_members):
            events = db.get_package_events(members['escrow'][0])
            self.assertEqual(len(events), index+1, "{} event expected for escrow: {}, but {} got instead".format(
                index + 1, members['escrow'][0], len(events)))
Example #18
0
 def call(self, chat, author, arguments):
     player = db.find_player_by_telegram_id(author)
     if player is None:
         telegram.send(chat, "Introduce yourself by providing your psn id: /r register <psn-id>")
         return
     (event_type_code, date_code, time_code, comment) = self.parse_arguments(chat, arguments)
     event_type = db.find_type_by_code(event_type_code)
     if event_type is None:
         telegram.send(chat, "Event type not found: " + event_type_code + ", see available types: /r types")
         return
     if date_code == 'today':
         day = date.today()
     elif date_code == 'tomorrow':
         day = date.today() + timedelta(days=1)
     else:
         year = date.today().year
         day = datetime.strptime(date_code, '%d/%m')
         day = day.replace(year=year)
     if comment is None:
         comment = ""
     d = datetime.combine(day, datetime.strptime(time_code, '%H:%M').time())
     db.add_event(player, event_type.key.id(), d, comment)
     telegram.send(chat, "Event added")
Example #19
0
 def test_add_event(self):
     """Adding event test."""
     package_members = self.prepare_package_members()
     db.create_package(package_members['escrow'][0],
                       package_members['launcher'][0],
                       package_members['recipient'][0], 50000000, 100000000,
                       time.time(), None, None, None, None)
     db.add_event(package_members['escrow'][0],
                  package_members['courier'][0], 'couriered', None)
     events = db.get_package_events(package_members['escrow'][0])
     self.assertEqual(
         len(events), 2,
         "2 events expected, but {} got instead".format(len(events)))
     couriered_event = next(
         (event for event in events if event['event_type'] == 'couriered'),
         None)
     self.assertIsNotNone(
         couriered_event,
         "expected event with event_type: 'couriered', None got instead")
     self.assertEqual(
         couriered_event['user_pubkey'], package_members['courier'][0],
         "expected event with user_pubkey: {}, but {} got instead".format(
             package_members['courier'][0], couriered_event['user_pubkey']))
Example #20
0
def share_link(update: Update, context: CallbackContext) -> int:
    query = update.callback_query
    query.answer()
    bot = context.bot

    user_data = context.user_data['payment']
    numOfPersons = int(user_data['Number of people'])

    payloads = []
    i = 0
    if (context.user_data['payment']['equal']['bool'] == True):
        text = f"{facts_to_str(user_data)}"
    else:
        text = f"{multi_users_to_str(user_data)}"

    event_id = add_event(context.user_data['user_id'], user_data['Title'])
    while i < numOfPersons:
        payloads.append(generate_token())
        # TODO: link can only share to groups not individuals
        url = helpers.create_deep_linked_url(bot.username, str(payloads[i]))
        if (context.user_data['payment']['equal']['bool'] == True):
            amount = int(context.user_data['payment']['Amount'])
            add_payment(context.user_data['user_id'], amount / numOfPersons,
                        event_id, str(payloads[i]), user_data['Title'])
            text += (
                f"Share the payment information to your friend {i+1}: [▶️ CLICK HERE]({url}). \n"
            )
        else:
            amount = context.user_data['payment']['Amount'][i + 1]['amount']
            add_payment(context.user_data['user_id'], amount, event_id,
                        str(payloads[i]), user_data['Title'])
            text += (
                f"Share the payment information to *{context.user_data['payment']['Amount'][i+1]['name']}* : [▶️ CLICK HERE]({url}). \n"
            )
        i += 1

    keyboard = [[InlineKeyboardButton(BACK, callback_data=str("start"))]]
    reply_markup = InlineKeyboardMarkup(keyboard)

    # clear payment
    context.user_data['payment'] = {}
    # create_deep_linked_url(bot_username, payload=None, group=False)
    # the link will start the bot with /start, cant start with other command
    # url = helpers.create_deep_linked_url(bot.username, CHECK_THIS_OUT, group=True)
    query.edit_message_text(text=text,
                            parse_mode='Markdown',
                            disable_web_page_preview=True,
                            reply_markup=reply_markup)

    return START_OVER
Example #21
0
    def test_get_escrow_events(self):
        """Getting escrow events test."""
        packages_members = [self.prepare_package_members() for _ in range(3)]
        for members in packages_members:
            db.create_package(members['escrow'][0], members['launcher'][0],
                              members['recipient'][0], 50000000, 100000000,
                              time.time(), None, None, None, None)
        for members in packages_members:
            events = db.get_package_events(members['escrow'][0])
            self.assertEqual(
                len(events), 1,
                "1 event expected for escrow: {}, but {} got instead".format(
                    members['escrow'][0], len(events)))

        for index, members in enumerate(packages_members):
            for _ in range(index):
                db.add_event(members['escrow'][0], members['courier'][0],
                             'couriered', None)
        for index, members in enumerate(packages_members):
            events = db.get_package_events(members['escrow'][0])
            self.assertEqual(
                len(events), index + 1,
                "{} event expected for escrow: {}, but {} got instead".format(
                    index + 1, members['escrow'][0], len(events)))
Example #22
0
async def user_event(sid, *, user, name):
    # cache
    await user_auth(sid, name=user)

    global event_count_total, event_count_today, event_count_hour
    event_count_total += 1
    event_count_today += 1
    event_count_hour += 1

    # user
    users[sid]["event_count_session"] += 1

    # event
    if name not in ["rickroll", "exmatrikulieren"]:
        event = db.add_event(user=user, name=name, timestamp=utils.time())
        await emit_message(f"{user} triggered {name}!")
        await sio.emit("event", event)
    else:
        await sio.emit("event", {
            "user": user,
            "name": name,
            "timestamp": utils.time()
        })
Example #23
0
                  "4.Посмотреть список клиентов\n" + \
                  "5.Проверить последнюю транзакцию\n" + \
                  "6.Проверить подключение к сети\n"

        choose = input(message + ': ')

        if choose == "1":
            text = input("Введите сообщение: ")
            to = input("Получатель: ")
            if any(to in addr for addr, prt in clients):
                string = (str(public_key[0]) + ":" + str(core.hash(text)) +
                          ":" + str(to))
                try:
                    mess = 'message::' + text
                    s1.sendto(ttb(mess), (to, 9090))
                    db.add_event(string)
                    print("Сообщение отправлено!")
                except:
                    print("Ошибка при отправке сообщения!")
            else:
                print('Клиент с IP - {} не подключен к сети.'.format(to))

        elif choose == "2":
            last_tx = db.get_last_transaction()
            if last_tx is not None:
                print(
                    "Последняя транзакция:\nid {0}\nОт кого: {1}\nсообщение: {2}\nКому: {3}\nДата: {4}\n----------------\n"
                    .format(last_tx[0], last_tx[1], last_tx[2], last_tx[3],
                            date(last_tx[4])))
            else:
                print("Транзакций не найдено!")
Example #24
0
    def test_get_user_packages(self):
        """Getting user packages test."""
        user = self.generate_keypair()
        first_package_members = self.prepare_package_members()
        LOGGER.info('creating package with user role: launcher')
        db.create_package(first_package_members['escrow'][0], user[0],
                          first_package_members['recipient'][0], 50000000,
                          100000000, time.time(), None, None, None, None)
        second_package_members = self.prepare_package_members()
        LOGGER.info('creating package with user role: recipient')
        db.create_package(second_package_members['escrow'][0],
                          second_package_members['launcher'][0], user[0],
                          50000000, 100000000, time.time(), None, None, None,
                          None)
        third_package_members = self.prepare_package_members()
        LOGGER.info('creating package with user role: courier')
        db.create_package(third_package_members['escrow'][0],
                          third_package_members['launcher'][0],
                          third_package_members['recipient'][0], 50000000,
                          100000000, time.time(), None, None, None, None)
        db.add_event(third_package_members['escrow'][0], user[0], 'couriered',
                     None)

        packages = db.get_packages(user[0])
        self.assertEqual(
            len(packages), 3,
            "3 packages expected, {} got instead".format(len(packages)))
        package = next(
            (package
             for package in packages if package['launcher_pubkey'] == user[0]),
            None)
        self.assertEqual(
            package['user_role'], 'launcher',
            "expected role: 'launcher', '{}' got instead".format(
                package['user_role']))
        self.assertEqual(
            package['custodian_pubkey'], user[0],
            "{} expected as custodian, {} got instead".format(
                user[0], package['custodian_pubkey']))
        package = next((package for package in packages
                        if package['recipient_pubkey'] == user[0]), None)
        self.assertEqual(
            package['user_role'], 'recipient',
            "expected role: 'recipient', '{}' got instead".format(
                package['user_role']))
        self.assertEqual(
            package['custodian_pubkey'], second_package_members['launcher'][0],
            "{} expected as custodian, {} got instead".format(
                second_package_members['launcher'][0],
                package['custodian_pubkey']))
        package = next((package for package in packages
                        if user[0] not in (package['recipient_pubkey'],
                                           package['launcher_pubkey'])), None)
        self.assertEqual(
            package['user_role'], 'courier',
            "expected role: 'courier', '{}' got instead".format(
                package['user_role']))
        self.assertEqual(
            package['custodian_pubkey'], user[0],
            "{} expected as custodian, {} got instead".format(
                user[0], package['custodian_pubkey']))
Example #25
0
 def get(self, pid, evt, g):
     pid = int(pid)
     db.add_event(pid, evt)
     self.finish('1')
Example #26
0
import RPi.GPIO as GPIO
import time
import db

db.add_event('start')

GPIO.setmode(GPIO.BCM)
pin = 18
C = 420 / float(1000)  #uF


def rc_time(pin):
    GPIO.setup(pin, GPIO.OUT)
    GPIO.output(pin, GPIO.LOW)
    time.sleep(0.01)

    GPIO.setup(pin, GPIO.IN)
    t1 = time.time()
    while (GPIO.input(pin) == GPIO.LOW):
        pass
    t2 = time.time()

    return (t2 - t1) * 1000000


def avg_rc_time(pin, samples):
    total = 0
    for i in range(1, samples):
        total += rc_time(pin)
    t = total / float(samples)
    return t