-
Notifications
You must be signed in to change notification settings - Fork 191
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Match accounts by id instead of username (#15)
* Replace account matching by (optional) username with (mandatory) id field * Use get instead of direct key retrieval * Bump version
- Loading branch information
1 parent
4011e91
commit fe57ce1
Showing
2 changed files
with
21 additions
and
14 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -12,23 +12,30 @@ def get_names(client, phone_number): | |
result = {} | ||
print(f'Checking: {phone_number=} ...', end="", flush=True) | ||
try: | ||
# Create a contact | ||
contact = InputPhoneContact(client_id = 0, phone = phone_number, first_name="", last_name="") | ||
# Attempt to add the contact from the address book | ||
contacts = client(functions.contacts.ImportContactsRequest([contact])) | ||
username = contacts.to_dict()['users'][0]['username'] | ||
if not username: | ||
result.update({"error": f'ERROR: no username detected'}) | ||
del_usr = client(functions.contacts.DeleteContactsRequest(id=[username])) | ||
else: | ||
result.update({"username": username}) | ||
del_usr = client(functions.contacts.DeleteContactsRequest(id=[username])) | ||
|
||
users = contacts.to_dict().get('users', []) | ||
number_of_matches = len(users) | ||
|
||
if number_of_matches == 0: | ||
result.update({"error": f'No response, the phone number is not on Telegram or has blocked contact adding.'}) | ||
elif number_of_matches == 1: | ||
user = users[0] | ||
# Attempt to remove the contact from the address book | ||
client(functions.contacts.DeleteContactsRequest(id=[user.get('id')])) | ||
# getting more information about the user | ||
id = del_usr.to_dict()['users'][0]['id'] | ||
first_name = del_usr.to_dict()['users'][0]['first_name'] | ||
last_name = del_usr.to_dict()['users'][0]['last_name'] | ||
result.update({"first_name": first_name, "last_name": last_name, "id": id}) | ||
result.update({ | ||
"id": user.get('id'), | ||
"username": user.get('username'), | ||
"first_name": user.get('first_name'), | ||
"last_name": user.get('last_name') | ||
}) | ||
else: | ||
result.update({"error": f'This phone number matched multiple Telegram accounts, which is unexpected. Please contact the developer: [email protected]'}) | ||
|
||
except IndexError as e: | ||
result.update({"error": f'ERROR: no response, the user does not exist or has blocked contact adding.'}) | ||
except TypeError as e: | ||
result.update({"error": f"TypeError: {e}. --> The error might have occurred due to the inability to delete the {phone_number=} from the contact list."}) | ||
except Exception as e: | ||
|