def sign_in(self, email, password):
        """Called when the "Log in" button is pressed.
        Sends the user's email and password in an HTTP request to the Firebase
        Authentication service.
        """
        if self.debug:
            print("Attempting to sign user in: ", email, password)
        sign_in_url = "https://www.googleapis.com/identitytoolkit/v3/relyingparty/verifyPassword?key=" + self.web_api_key
        sign_in_payload = dumps({
            "email": email,
            "password": password,
            "returnSecureToken": True
        })

        UrlRequest(sign_in_url,
                   req_body=sign_in_payload,
                   on_success=self.successful_login,
                   on_failure=self.sign_in_failure,
                   on_error=self.sign_in_error,
                   ca_file=certifi.where())
Beispiel #2
0
    def load_players_config(self):
        app = App.get_running_app()

        if not os.path.exists(CACHE_DIR):
            os.makedirs(CACHE_DIR)

        with open("players.json", "r") as fp:
            config = json.load(fp)

        self._config = config
        app.user_config['zp_cookie'] = config.get("cookie")

        for player_id in self._config["users"]:
            player = Player(player_id)
            self.players[player_id] = player

            UrlRequest('http://127.0.0.1:3030/watch/add',
                       on_error=self._log_it,
                       req_headers={'Content-Type': 'application/json'},
                       req_body=json.dumps({"id": player_id}))
Beispiel #3
0
def test_ca_file(kivy_clock, scheme):
    """Passing a `ca_file` should not crash on http scheme, refs #6946"""
    from kivy.network.urlrequest import UrlRequest
    import certifi
    obj = UrlRequestQueue([])
    queue = obj.queue
    req = UrlRequest(f"{scheme}://httpbin.org/get",
                     on_success=obj._on_success,
                     on_progress=obj._on_progress,
                     on_error=obj._on_error,
                     on_redirect=obj._on_redirect,
                     ca_file=certifi.where(),
                     debug=True)
    wait_request_is_finished(kivy_clock, req)

    if req.error and req.error.errno == 11001:
        pytest.skip('Cannot connect to get address')

    ensure_called_from_thread(queue)
    check_queue_values(queue)
    def sign_up(self, email, password):
        """If you don't want to use Firebase, just overwrite this method and
        do whatever you need to do to sign the user up with their email and
        password.
        """
        if self.debug:
            print("Attempting to create a new account: ", email, password)
        signup_url = "https://www.googleapis.com/identitytoolkit/v3/relyingparty/signupNewUser?key=" + self.web_api_key
        signup_payload = dumps({
            "email": email,
            "password": password,
            "returnSecureToken": True
        })

        UrlRequest(signup_url,
                   req_body=signup_payload,
                   on_success=self.successful_login,
                   on_failure=self.sign_up_failure,
                   on_error=self.sign_up_error,
                   ca_file=certifi.where())
Beispiel #5
0
    def update_cb(self):
        def _lookup_rate(response, quote_id):
            return decimal.Decimal(str(response[str(quote_id)]))

        def on_success(request, response):
            quote_currencies = {}
            try:
                for r in response:
                    if r[:7] == "btc_to_":
                        quote_currencies[r[7:].upper()] =\
                            _lookup_rate(response, r)
                self.quote_currencies = quote_currencies
            except KeyError:
                pass
            self.parent.set_currencies(quote_currencies)

        req = UrlRequest(
            url='https://coinbase.com/api/v1/currencies/exchange_rates',
            on_success=on_success,
            timeout=5)
Beispiel #6
0
 def start_transaction(self):
     info = {
         "uid": "user1",
         "currency": "ZAR",
         "locale": "en-za",
         "country": "ZAF",
         "pay_method": "CC",
         "email": "*****@*****.**"
     }
     headers = {
         'Content-type': 'application/json',
         'Accept': 'application/json'
     }
     UrlRequest(
         f"{BASE_URL}/start-transaction",
         req_body=json.dumps(info),
         req_headers=headers,
         on_success=self.on_start_transaction_success,
         on_error=self.on_start_transaction_error,
     )
Beispiel #7
0
    def send_data(self, on_success, send_data):
        if on_success == None:
            on_success = self.__on_success__
        data = urllib.urlencode(send_data)
        headers = {
            'Content-type': 'application/x-www-form-urlencoded',
            'Accept': 'text/json'
        }
        r = UrlRequest(self.url,
                       on_success=on_success,
                       req_body=data,
                       req_headers=headers,
                       method="POST",
                       on_failure=self.got_fail,
                       on_error=self.got_error,
                       debug=True,
                       on_redirect=self.got_redirect)

        if wait:
            r.wait()
Beispiel #8
0
    def update_wd(self):

        def on_success(request, response):
            response = json.loads(response)
            quote_currencies = {'USD': 0.0}
            lenprices = len(response["prices"])
            usdprice = response['prices'][lenprices-1]['y']

            try:
                quote_currencies["USD"] = decimal.Decimal(usdprice)
            except KeyError:
                pass

            self.quote_currencies = quote_currencies
            self.parent.set_currencies(quote_currencies)

        req = UrlRequest(
            url='https://winkdex.com/static/data/0_600_288.json',
                        on_success=on_success,
                        timeout=5)
Beispiel #9
0
    def ws_call(self, *parms, callback=None):
        """Call the web service"""

        url = str(parms[0])
        try:
            url += '&p=%s' % parms[1]
        except:
            pass
        try:
            url += '&v=%s' % parms[2]
        except:
            pass
        try:
            url += '&w=%s' % parms[3]
        except:
            pass
        #print(cmd_url % url)
        if ENABLE_LOGGING:
            Logger.info("Calling: %s" % (cmd_url % url))
        return UrlRequest(cmd_url % url, callback)
Beispiel #10
0
    def search_term(self, term, engine, page):

        engines = {
            'met': ('http://www.metmuseum.org/'
                    'collection/the-collection-online/search'
                    '?ft={term}&ao=on&rpp={rpp}&pg={page}'),
            'getty':
            ('http://search.getty.edu/'
             'gateway/search'
             '?q={term}&cat=highlight&f="Open+Content+Images"&rows={rpp}&srt=&dir=s&dsp=0&img=0&pg={page}'
             )
        }

        url = engines[engine].format(term=term,
                                     rpp=self.config.get(
                                         'search', 'search_rpp'),
                                     page=page)
        clean_url = urllib.quote(url, safe="%/:=&?~#+!$,;'@()*[]")

        UrlRequest(clean_url, on_success=self.parse_results, debug=True)
Beispiel #11
0
    def request_download_file(self, url, path):
        """
        :type url: str;
        :param url: link to content;

        :type path: str;
        :param path: path to save content;
        """

        self.request = UrlRequest(
            url,
            file_path=path,
            chunk_size=102400,
            on_progress=self.update_progress,
            on_success=self.handle_success,
            on_redirect=self.handle_redirect,
            on_error=lambda req, error: self.handle_error(req, error),
            on_failure=lambda req, res: self.handle_error(req, "Failure"),
            on_cancel=lambda req: self.handle_error(req, "Cancelled"),
        )
Beispiel #12
0
    def refresh(self, *args):
        def change_actions(request, result):
            self.actions = result
            self.displaybox.refresh()

        def get_actions(request, result):
            ids = result

            headers = {'Content-type': 'application/json'}
            body = dumps({'command': 'get_actions', 'ids': ids})
            req = UrlRequest(url=self.server,
                             on_success=change_actions,
                             req_body=body,
                             req_headers=headers)

        def change_infos(request, result):
            self.infos = result

            headers = {'Content-type': 'application/json'}
            body = dumps({'command': 'get_list_ids', 'list': 'actions'})
            req = UrlRequest(url=self.server,
                             on_success=get_actions,
                             req_body=body,
                             req_headers=headers)

        def get_infos(request, result):
            ids = result

            headers = {'Content-type': 'application/json'}
            body = dumps({'command': 'get_infos', 'ids': ids})
            req = UrlRequest(url=self.server,
                             on_success=change_infos,
                             req_body=body,
                             req_headers=headers)

        headers = {'Content-type': 'application/json'}
        body = dumps({'command': 'get_list_ids', 'list': 'informations'})
        req = UrlRequest(url=self.server,
                         on_success=get_infos,
                         req_body=body,
                         req_headers=headers)
Beispiel #13
0
    def on_enter(self, *args):
        user = self.manager.ids.sc1.display.text
        print(user)

        def bug_posted(x, result):
            print('An error is detected', result['comment'])
            label = self.ids['labeltext']
            label.text = result['comment']

        x = UrlRequest(f"https://codeforces.com/api/user.info?handles={user}",
                       on_failure=bug_posted,
                       ca_file=cfi.where(),
                       verify=True)
        x.wait()
        try:
            rating = x.result['result'][0]['rating']
            print(rating)
            label = self.ids['labeltext']
            label.text = f"User {user} rating is {rating}"
        except:
            print("Already given error report")
Beispiel #14
0
        def hit_cloud_function(self, blob_name):

            try:
                from urllib.parse import urlencode
                msg_data = urlencode({'message': blob_name})
                headers = {
                    'Content-type': 'application/x-www-form-urlencoded',
                    'Accept': 'text/plain'
                }

                print("Sending trigger request")
                trigger_url = "https://us-central1-endless-theorem-297112.cloudfunctions.net/detect_handwriting"
                UrlRequest(trigger_url,
                           req_body=msg_data,
                           req_headers=headers,
                           ca_file=certifi.where(),
                           on_failure=self.error,
                           on_error=self.error,
                           on_success=self.success)
            except:
                pass
Beispiel #15
0
 def showbookmarks(self):
     self.cur = -1
     self.ids.acc.clear_widgets()
     conn = sqlite3.connect("signup.db")
     c = conn.cursor()
     user = (list(c.execute("Select * from register")))
     conn.commit()
     c.close()
     if len(user):
         self.userToken = user[0][0]
     str_signup = 'http://20.0.0.94:4000/bookmark/getall'
     headers = {
         'Content-type': 'application/x-www-form-urlencoded',
         'Accept': 'text/plain'
     }
     Json_obj1_SignUp = {'userToken': self.userToken}
     params = urllib.parse.urlencode(Json_obj1_SignUp)
     req = UrlRequest(str_signup,
                      on_success=self.showIt,
                      req_body=params,
                      req_headers=headers)
Beispiel #16
0
    def createinvoice(self, sessionid):
        print("Create invoice")
        print(self.sessionid)
        session_id = self.sessionid
        print(session_id)

        print("http-start")
        params = urllib.urlencode({'sessionid': sessionid})
        headers = {
            'Content-type': 'application/x-www-form-urlencoded',
            'Accept': 'text/plain'
        }

        self.request = UrlRequest('https://www.myinv.org/api/getsupplierdata',
                                  req_body=params,
                                  req_headers=headers,
                                  on_success=self.sessionid_validate,
                                  on_failure=self.fail,
                                  on_error=self.error,
                                  method='POST',
                                  verify=False)
Beispiel #17
0
    def reset_password(self, email):
        """Called when the "Reset password" button is pressed.

        Sends an automated email on behalf of your Firebase project to the user
        with a link to reset the password. This email can be customized to say
        whatever you want. Simply change the content of the template by going to
        Authentication (in your Firebase project) -> Templates -> Password reset
        """
        if self.debug:
            print("Attempting to send a password reset email to: ", email)
        reset_pw_url = "https://www.googleapis.com/identitytoolkit/v3/relyingparty/getOobConfirmationCode?key=" + self.web_api_key
        reset_pw_data = dumps({
            "email": email,
            "requestType": "PASSWORD_RESET"
        })

        UrlRequest(reset_pw_url,
                   req_body=reset_pw_data,
                   on_success=self.successful_reset,
                   on_failure=self.sign_in_failure,
                   on_error=self.sign_in_error)
    def refresh_friend_list(self):

        to_be_remove = self.parent.ids['FriendListScreen'].ids['ScrollView']

        to_be_remove.clear_widgets()
        my_id = self.parent.ids['LoginScreen'].account
        target = self.parent.ids['FriendListScreen'].ids['ScrollView']

        url = f'https://kivypractice.firebaseio.com/{my_id}.json'
        result = requests.get(url, timeout=30)
        data = json.loads(result.content.decode())

        if 'friend' in data.keys():
            for k in data['friend']:
                url = f'https://kivypractice.firebaseio.com/' + k + '.json'
                self.response = UrlRequest(url,
                                           timeout=10,
                                           on_success=partial(
                                               self.get_result, k, target))
        else:
            pass
Beispiel #19
0
def get_gps(device_id, num, street, zipcode, city):

    address = quote_plus(num + ", " + street + ", " + city + ", " + zipcode)
    format = "json"

    params = "search?q=" + address + "&format=" + format
    url = "https://nominatim.openstreetmap.org/" + params

    headers = {"User-Agent": device_id}

    response = UrlRequest(url, req_headers=headers)

    while not response.is_finished:
        sleep(0.1)
        Clock.tick()

    # print(f"Lat: {response.result[0]['lat']}, Long: {response.result[0]['lon']}")
    if response.result:
        return response.result[0]['lat'], response.result[0]['lon']
    else:
        return None, None
Beispiel #20
0
def main():
    command = "start"
    print("Sending request")
    params = urllib.parse.urlencode({
        "@number": 12524,
        "@type": "issue",
        "@action": "show"
    })
    headers = {
        "Content-type": "application/x-www-form-urlencoded",
        "Accept": "text/plain"
    }

    r = UrlRequest(
        url=f"http://192.168.0.23/{command}",
        req_headers=headers,
        on_success=partial(success, command),
        on_failure=partial(failure, command),
    )
    print(str(r))
    sleep(1)
Beispiel #21
0
    def send(self, on_success=None, wait=True):
        if on_success == None:
            on_success = self.__on_success__

        SEND_DATA = {'data': json.dumps(self.qson_sender)}
        data = urllib.urlencode(SEND_DATA)
        headers = {
            'Content-type': 'application/x-www-form-urlencoded',
            'Accept': 'text/json'
        }
        r = UrlRequest(self.url,
                       on_success=on_success,
                       req_body=data,
                       req_headers=headers,
                       method="POST",
                       on_failure=self.__got_fail__,
                       on_error=self.__got_error__,
                       on_redirect=self.__got_redirect__)

        if wait:
            r.wait()
    def test_auth_auto(self):
        if os.environ.get('NONETWORK'):
            return
        self.queue = []
        req = UrlRequest(
            'http://*****:*****@httpbin.org/basic-auth/user/passwd',
            on_success=self._on_success,
            on_progress=self._on_progress,
            on_error=self._on_error,
            on_redirect=self._on_redirect,
            debug=True)

        # don't use wait, but maximum 10s timeout
        for i in range(50):
            Clock.tick()
            sleep(.5)
            if req.is_finished:
                break

        self.assertTrue(req.is_finished)

        # we should have 2 progress minimum and one success
        self.assertTrue(len(self.queue) >= 3)

        # ensure the callback is called from this thread (main).
        tid = _thread.get_ident()
        self.assertEqual(self.queue[0][0], tid)
        self.assertEqual(self.queue[-2][0], tid)
        self.assertEqual(self.queue[-1][0], tid)

        self.assertEqual(self.queue[0][1], 'progress')
        self.assertEqual(self.queue[-2][1], 'progress')
        self.assertIn(self.queue[-1][1], ('success', 'redirect'))
        self.assertEqual(self.queue[-1][2], ({
            'authenticated': True,
            'user': '******'
        }, ))

        self.assertEqual(self.queue[0][2][0], 0)
        self.assertEqual(self.queue[-2][2][0], self.queue[-2][2][1])
Beispiel #23
0
    def upload_payslips(self, fn, pb_inc, *args):
        def on_success(req, result):
            self.pb.value += pb_inc
            print("Progressbar is on {0}%".format(self.pb.value))
            try:
                os.remove(fn)
            except OSError:
                print(traceback.format_exc())
                print "POSScreen.upload_payslips() on_success: no such file or directory"
            if self.pb.value >= 99.9:
                self.popup.dismiss()
                self.parent.parent.parent.update_icon(True)

        def on_failure(req, result):
            on_error(req, result)

        def on_error(req, result):
            self.pb.value += pb_inc
            print("Progressbar is on {0}%".format(self.pb.value))
            if self.pb.value >= 99.9:
                self.popup.dismiss()
                self.parent.parent.parent.update_icon(False)

        try:
            print ("POSScreen.upload_payslips()" + fn + ' ' + str(pb_inc))
            config = ConfigParser.get_configparser(name='app')
            print(config.get('serverconnection', 'server.url'))
            saleurl = config.get('serverconnection', 'server.url') + "pos/sale/"
            with open(fn) as data_file:
                result = json.load(data_file)
                file_param = dict([])
                file_param['filename'] = fn
                result['filename'] = file_param
                data_json = json.dumps(result)
                headers = {'Content-type': 'application/jsonrequest', 'Accept': 'application/jsonrequest'}
                UrlRequest(url=saleurl, on_success=on_success, on_failure=on_failure, on_error=on_error,
                           req_headers=headers, req_body=data_json)
        except Exception:
            print(traceback.format_exc())
            print "POSScreen.upload_payslips() Error: Could not upload payslip"
Beispiel #24
0
	def sendOTP ( self , x ):
		if( self.otp.text == '1729'):
			print("test-value")
			token.put(" ", value = "user")
			screens.current = "nextScreen"
			
			return
		global phoneNumber
		params = urllib.urlencode( {"phone_number" : unicode(phoneNumber) , "otp" : unicode(self.otp.text) })
		print(params)
		headers = {'Content-type':'application/x-www-form-urlencoded'}
		req = UrlRequest('https://secure-garden-80717.herokuapp.com/authenticate' , method = "POST" ,	req_headers = headers , req_body = params)
		#req = UrlRequest("https://inputtools.google.com/request"  , on_success = success , on_error = error , on_failure = fail ,	req_body = data)
		#print( type( req )  )
		#print(params )
		
		print (req.result,unicode("token"),type(unicode("token")))
		if ( req.result["success"] ):
			screens.current = "nextScreen"  #  flag=True
		else:
			self.popup = Popup(title='', content=Label(text='Incorrect OTP,\n Please Check Again'), size_hint=(None, None), size=(400, 400),auto_dismiss=True)
			self.popup.open()
Beispiel #25
0
    def register(self):
        if not self.inp_email.text or not self.inp_password.text:
            self.action_msg.color = "red"
            self.action_msg.text = "Enter email and password"
            return

        if self.register_attempt:
            self.register_btn.text = "Confirm Register"
            self.register_btn.color = "red"
            self.register_btn.background_color = (255, 255, 255)
            self.register_attempt = False
            self.switch_clear_button_state()
            self.switch_buttons_state({'l': True, 'd': True})

            return

        self.register_btn.text = "Register"
        self.register_btn.color = "white"
        self.register_btn.background_color = (1, 1, 1)
        self.switch_buttons_state({'r': True, 'c': True, 'l': True})

        self.register_attempt = True

        self.email = self.inp_email.text
        self.password = self.inp_password.text

        url = "http://localhost:8000/api/register/"
        params = json.dumps({"email": self.email, "password": self.password})
        headers = {"Content-Type": "application/json"}
        req = UrlRequest(url,
                         req_headers=headers,
                         on_success=self.show_action_msg,
                         on_failure=self.show_action_msg,
                         on_error=self.show_action_msg,
                         method='Post',
                         req_body=params)
        self.switch_clear_button_state()

        return
Beispiel #26
0
    def get_server_file_download(self, req_url, callback, file_path):
        def update_progress(request, current_size, total_size):
            pass

        username = self.app.config.get("General", "username")
        api_key = self.app.config.get("General", "api_key")
        str_cookie = f"API_apiKey={api_key}; BCR_username={username}"
        head = {
            "Content-Type": "application/json",
            "Accept": "application/json",
            "Cookie": str_cookie,
        }

        req = UrlRequest(
            req_url,
            req_headers=head,
            on_success=callback,
            on_error=self.got_error,
            on_redirect=self.got_redirect,
            on_failure=self.got_error,
            file_path=file_path,
        )
    def do_search(self):
        def on_success(req, result):
            print ('search success.')
            for i in result['result']:
                code = str(i['code'])
                if code == '':
                    code = '200001'
                btn = ImageButton(source='./products/'+code+'-small.png', id=code, text=str(i['id']),
                                  size_hint_y=None, width=300, height=100)
                btn.bind(on_press=self.do_add_item)
                self.products_search_list.append(btn)
                self.grid_layout_search_wid.add_widget(btn)
                self.tabbed_panel_wid.switch_to(self.tab_search_wid)
            self.grid_layout_search_wid.height = (len(result['result'])/4+4)*110

        if len(self.products_search_list) > 0:
            for n in self.products_search_list:
                self.grid_layout_search_wid.remove_widget(n)
        self.products_search_list = []
        config = ConfigParser.get_configparser(name='app')
        producturl = config.get('serverconnection', 'server.url') + "pos/product/" + self.text_input_wid.text
        UrlRequest(producturl, on_success)
    def get_station_metadata(self):
        """ Get the metadata associated with the selected station
        """

        self.ids.switch_button.text = 'Fetching Station information'
        self.ids.switch_button.disabled = 1
        if hasattr(self, 'pendingRequest'):
            self.pendingRequest.cancel()
        if hasattr(self, 'activeRequest'):
            self.activeRequest.cancel()
        if self.station_details:
            station = self.ids.station_dropdown.text
            URL = 'https://swd.weatherflow.com/swd/rest/observations/station/{}?token={}'
            URL = URL.format(
                self.station_details[station]['station_id'],
                App.get_running_app().config['Keys']['WeatherFlow'])
            self.activeRequest = UrlRequest(
                URL,
                on_success=self.parse_station_metadata,
                on_failure=self.fail_station_metadata,
                on_error=self.fail_station_metadata,
                ca_file=certifi.where())
Beispiel #29
0
    def auth(self):
        print('Guardando..')

        os.environ['SSL_CERT_FILE'] = certifi.where()
        search_url = "https://bazarapi.herokuapp.com/Lamina"
        params = urllib.parse.urlencode({
            'numero': str(self.ids.num.text),
            'nombre': str(self.ids.nom.text),
            'numero_seccion': self.ids.num_sec.text,
            'seccion': str(self.ids.sec.text),
            'stock': self.ids.stock.text
        })
        headers = {
            'Content-type': 'application/x-www-form-urlencoded',
            'Accept': 'text/plain'
        }
        self.req = UrlRequest(search_url,
                              on_success=self.bug_posted,
                              req_body=params,
                              req_headers=headers,
                              ca_file=cfi.where(),
                              verify=True)
Beispiel #30
0
    def observeNfcReader(self):
        while True:
            if self.nfc.complete_flag:
                self.ids.nfc_inf.text = "決済情報をデータベースに送信中..."

                url = DatabaseInfo.HTTP + "/transaction"
                if self.pay_type == PayType.PAYMENT:
                    url += "/payment"
                    self.rb = json.dumps(PayInfo.get_DictPaymentInfo())
                elif self.pay_type == PayType.CHARGE:
                    url += "/charge"
                    self.rb = json.dumps(PayInfo.get_DictChargeInfo())

                req = UrlRequest(url,
                                 on_success=self.successRequest,
                                 on_failure=self.failRequest,
                                 req_body=self.rb,
                                 req_headers=DatabaseInfo.HEADER)
                break

            if self.nfc.cancel_flag:
                break