Alan001
Alan001

Reputation: 13

Python: TypeError: inet_aton() argument 1 must be str, not None

I am working with a mobile game API and a Telegram Bot. It worked when I put in a fixed Clantag, but now I wanted to let the user write a tag and add it to the link. The app then should search for the clan and get the right stats. Everything is ok but I get this message now and cannot find my mistake. Would be happy if you could help!

def main():
    last_update_id = None
    message = ""
    while True:
        updates = get_updates(last_update_id)
        if len(updates["result"]) > 0:
            last_update_id = get_last_update_id(updates) + 1
            message = get_last_update_Message(updates)
            clan_stats(updates, message)
def get_last_update_Message(updates):
    message = ""
    for update in updates["result"]:
        message = update["message"]
    return message["text"]
def clan_stats(updates, ID):
    #https://api.royaleapi.com/clan/1RLU78YU
    Link = '"https://api.royaleapi.com/clan/' + ID + '"'

    r=requests.get(Link, headers={"Accept":"application/json",
    "authorization":"Bearer TOKENHERE"})
    clan = r.json()

Full Traceback:

Traceback (most recent call last):
  File "/home/Lee63225/clashroyaleclanbot.py", line 188, in <module>
    main()
  File "/home/Lee63225/clashroyaleclanbot.py", line 184, in main
    clan_stats(updates, message)
  File "/home/Lee63225/clashroyaleclanbot.py", line 80, in clan_stats
    "authorization":"Bearer TOKENHERE"})
  File "/usr/lib/python3.7/site-packages/requests/api.py", line 72, in get
    return request('get', url, params=params, **kwargs)
  File "/usr/lib/python3.7/site-packages/requests/api.py", line 58, in request
    return session.request(method=method, url=url, **kwargs)
  File "/usr/lib/python3.7/site-packages/requests/sessions.py", line 503, in request
    prep.url, proxies, stream, verify, cert
  File "/usr/lib/python3.7/site-packages/requests/sessions.py", line 676, in merge_environment_settings
    env_proxies = get_environ_proxies(url, no_proxy=no_proxy)
  File "/usr/lib/python3.7/site-packages/requests/utils.py", line 760, in get_environ_proxies
    if should_bypass_proxies(url, no_proxy=no_proxy):
File "/usr/lib/python3.7/site-packages/requests/utils.py", line 716, in should_bypass_proxies
    if is_ipv4_address(parsed.hostname):
  File "/usr/lib/python3.7/site-packages/requests/utils.py", line 640, in is_ipv4_address
    socket.inet_aton(string_ip)
TypeError: inet_aton() argument 1 must be str, not None

Thank you!

Upvotes: 0

Views: 1289

Answers (1)

tevemadar
tevemadar

Reputation: 13195

I think it should rather be

Link = 'https://api.royaleapi.com/clan/' + ID

There is some surrounding " in your attempt.

But now as I look, the function is called as clan_stats(update,message). That "message" should be a clantag, make sure it is (as now it comes from get_last_update_Message(), and looks very suspicious.

Upvotes: 1

Related Questions