From f3282d6e51f84fe8f5b5c46e62bfb3afa253a071 Mon Sep 17 00:00:00 2001 From: hmzakhan12 <102696434+hmzakhan12@users.noreply.github.com> Date: Wed, 6 Aug 2025 16:10:53 +0500 Subject: [PATCH] added RanDeviceGen for generating random devices and made changes in auth.py for greater control --- instagrapi/country_details.json | 452 ++++++++++++++++++++++++++++++ instagrapi/mixins/RanDeviceGen.py | 411 +++++++++++++++++++++++++++ instagrapi/mixins/auth.py | 115 +++++++- requirements.txt | 1 + 4 files changed, 967 insertions(+), 12 deletions(-) create mode 100644 instagrapi/country_details.json create mode 100644 instagrapi/mixins/RanDeviceGen.py diff --git a/instagrapi/country_details.json b/instagrapi/country_details.json new file mode 100644 index 00000000..4d01c199 --- /dev/null +++ b/instagrapi/country_details.json @@ -0,0 +1,452 @@ +{ + "US": { + "country_code": 1, + "locale": "en_US", + "timezone_offset": -14400 + }, + "CA": { + "country_code": 1, + "locale": "en_CA", + "timezone_offset": -14400 + }, + "GB": { + "country_code": 44, + "locale": "en_GB", + "timezone_offset": 0 + }, + "DE": { + "country_code": 49, + "locale": "de_DE", + "timezone_offset": 7200 + }, + "FR": { + "country_code": 33, + "locale": "fr_FR", + "timezone_offset": 7200 + }, + "ES": { + "country_code": 34, + "locale": "es_ES", + "timezone_offset": 7200 + }, + "IT": { + "country_code": 39, + "locale": "it_IT", + "timezone_offset": 7200 + }, + "AU": { + "country_code": 61, + "locale": "en_AU", + "timezone_offset": 36000 + }, + "JP": { + "country_code": 81, + "locale": "ja_JP", + "timezone_offset": 32400 + }, + "BR": { + "country_code": 55, + "locale": "pt_BR", + "timezone_offset": -10800 + }, + "IN": { + "country_code": 91, + "locale": "en_IN", + "timezone_offset": 19800 + }, + "PK": { + "country_code": 92, + "locale": "en_PK", + "timezone_offset": 18000 + }, + "CN": { + "country_code": 86, + "locale": "zh_CN", + "timezone_offset": 28800 + }, + "RU": { + "country_code": 7, + "locale": "ru_RU", + "timezone_offset": 10800 + }, + "MX": { + "country_code": 52, + "locale": "es_MX", + "timezone_offset": -18000 + }, + "KR": { + "country_code": 82, + "locale": "ko_KR", + "timezone_offset": 32400 + }, + "SA": { + "country_code": 966, + "locale": "ar_SA", + "timezone_offset": 10800 + }, + "ZA": { + "country_code": 27, + "locale": "en_ZA", + "timezone_offset": 7200 + }, + "EG": { + "country_code": 20, + "locale": "ar_EG", + "timezone_offset": 7200 + }, + "TR": { + "country_code": 90, + "locale": "tr_TR", + "timezone_offset": 10800 + }, + "ID": { + "country_code": 62, + "locale": "id_ID", + "timezone_offset": 25200 + }, + "NG": { + "country_code": 234, + "locale": "en_NG", + "timezone_offset": 3600 + }, + "NL": { + "country_code": 31, + "locale": "nl_NL", + "timezone_offset": 7200 + }, + "BE": { + "country_code": 32, + "locale": "nl_BE", + "timezone_offset": 7200 + }, + "SE": { + "country_code": 46, + "locale": "sv_SE", + "timezone_offset": 7200 + }, + "NO": { + "country_code": 47, + "locale": "nb_NO", + "timezone_offset": 7200 + }, + "FI": { + "country_code": 358, + "locale": "fi_FI", + "timezone_offset": 10800 + }, + "DK": { + "country_code": 45, + "locale": "da_DK", + "timezone_offset": 7200 + }, + "CH": { + "country_code": 41, + "locale": "de_CH", + "timezone_offset": 7200 + }, + "AT": { + "country_code": 43, + "locale": "de_AT", + "timezone_offset": 7200 + }, + "GR": { + "country_code": 30, + "locale": "el_GR", + "timezone_offset": 10800 + }, + "PT": { + "country_code": 351, + "locale": "pt_PT", + "timezone_offset": 3600 + }, + "PL": { + "country_code": 48, + "locale": "pl_PL", + "timezone_offset": 7200 + }, + "CZ": { + "country_code": 420, + "locale": "cs_CZ", + "timezone_offset": 7200 + }, + "HU": { + "country_code": 36, + "locale": "hu_HU", + "timezone_offset": 7200 + }, + "RO": { + "country_code": 40, + "locale": "ro_RO", + "timezone_offset": 10800 + }, + "IE": { + "country_code": 353, + "locale": "en_IE", + "timezone_offset": 3600 + }, + "IL": { + "country_code": 972, + "locale": "he_IL", + "timezone_offset": 10800 + }, + "AE": { + "country_code": 971, + "locale": "ar_AE", + "timezone_offset": 14400 + }, + "SG": { + "country_code": 65, + "locale": "en_SG", + "timezone_offset": 28800 + }, + "MY": { + "country_code": 60, + "locale": "ms_MY", + "timezone_offset": 28800 + }, + "TH": { + "country_code": 66, + "locale": "th_TH", + "timezone_offset": 25200 + }, + "PH": { + "country_code": 63, + "locale": "en_PH", + "timezone_offset": 28800 + }, + "AR": { + "country_code": 54, + "locale": "es_AR", + "timezone_offset": -10800 + }, + "CL": { + "country_code": 56, + "locale": "es_CL", + "timezone_offset": -14400 + }, + + "VE": { + "country_code": 58, + "locale": "es_VE", + "timezone_offset": -14400 + }, + "CO": { + "country_code": 57, + "locale": "es_CO", + "timezone_offset": -18000 + }, + "PE": { + "country_code": 51, + "locale": "es_PE", + "timezone_offset": -18000 + }, + "EC": { + "country_code": 593, + "locale": "es_EC", + "timezone_offset": -18000 + }, + "BO": { + "country_code": 591, + "locale": "es_BO", + "timezone_offset": -14400 + }, + "PY": { + "country_code": 595, + "locale": "es_PY", + "timezone_offset": -14400 + }, + "UY": { + "country_code": 598, + "locale": "es_UY", + "timezone_offset": -10800 + }, + "CR": { + "country_code": 506, + "locale": "es_CR", + "timezone_offset": -21600 + }, + "GT": { + "country_code": 502, + "locale": "es_GT", + "timezone_offset": -21600 + }, + "HN": { + "country_code": 504, + "locale": "es_HN", + "timezone_offset": -21600 + }, + "SV": { + "country_code": 503, + "locale": "es_SV", + "timezone_offset": -21600 + }, + "NI": { + "country_code": 505, + "locale": "es_NI", + "timezone_offset": -21600 + }, + "PA": { + "country_code": 507, + "locale": "es_PA", + "timezone_offset": -18000 + }, + "DO": { + "country_code": 1, + "locale": "es_DO", + "timezone_offset": -14400 + }, + "PR": { + "country_code": 1, + "locale": "es_PR", + "timezone_offset": -14400 + }, + "JM": { + "country_code": 1, + "locale": "en_JM", + "timezone_offset": -18000 + }, + "CU": { + "country_code": 53, + "locale": "es_CU", + "timezone_offset": -14400 + }, + "TT": { + "country_code": 1, + "locale": "en_TT", + "timezone_offset": -14400 + }, + "BS": { + "country_code": 1, + "locale": "en_BS", + "timezone_offset": -14400 + }, + "BB": { + "country_code": 1, + "locale": "en_BB", + "timezone_offset": -14400 + }, + "HT": { + "country_code": 509, + "locale": "fr_HT", + "timezone_offset": -14400 + }, + "LC": { + "country_code": 1, + "locale": "en_LC", + "timezone_offset": -14400 + }, + "DM": { + "country_code": 1, + "locale": "en_DM", + "timezone_offset": -14400 + }, + "VC": { + "country_code": 1, + "locale": "en_VC", + "timezone_offset": -14400 + }, + "AG": { + "country_code": 1, + "locale": "en_AG", + "timezone_offset": -14400 + }, + "GD": { + "country_code": 1, + "locale": "en_GD", + "timezone_offset": -14400 + }, + "SR": { + "country_code": 597, + "locale": "nl_SR", + "timezone_offset": -10800 + }, + "GY": { + "country_code": 592, + "locale": "en_GY", + "timezone_offset": -14400 + }, + "AW": { + "country_code": 297, + "locale": "nl_AW", + "timezone_offset": -14400 + }, + "CW": { + "country_code": 599, + "locale": "nl_CW", + "timezone_offset": -14400 + }, + "BQ": { + "country_code": 599, + "locale": "nl_BQ", + "timezone_offset": -14400 + }, + "SX": { + "country_code": 1, + "locale": "en_SX", + "timezone_offset": -14400 + }, + "MF": { + "country_code": 590, + "locale": "fr_MF", + "timezone_offset": -14400 + }, + "PM": { + "country_code": 508, + "locale": "fr_PM", + "timezone_offset": 7200 + }, + "MQ": { + "country_code": 596, + "locale": "fr_MQ", + "timezone_offset": -14400 + }, + "RE": { + "country_code": 262, + "locale": "fr_RE", + "timezone_offset": 14400 + }, + "YT": { + "country_code": 262, + "locale": "fr_YT", + "timezone_offset": 10800 + }, + "BL": { + "country_code": 590, + "locale": "fr_BL", + "timezone_offset": -14400 + }, + "GF": { + "country_code": 594, + "locale": "fr_GF", + "timezone_offset": -10800 + }, + "PF": { + "country_code": 689, + "locale": "fr_PF", + "timezone_offset": -36000 + }, + "NC": { + "country_code": 687, + "locale": "fr_NC", + "timezone_offset": 39600 + }, + "WF": { + "country_code": 681, + "locale": "fr_WF", + "timezone_offset": 43200 + }, + "TF": { + "country_code": 262, + "locale": "fr_TF", + "timezone_offset": 18000 + }, + "AF": { + "country_code": 93, + "locale": "en_AF", + "timezone_offset": 16200 + } + + + + +} diff --git a/instagrapi/mixins/RanDeviceGen.py b/instagrapi/mixins/RanDeviceGen.py new file mode 100644 index 00000000..9dd87017 --- /dev/null +++ b/instagrapi/mixins/RanDeviceGen.py @@ -0,0 +1,411 @@ +from faker import Faker +import random + +class DeviceGen: + + + def random_device(): + + # Create a Faker instance + fake = Faker() + + # Generate fake device information + # app_version = fake.numerify(text="###.###.###.###") + # Version = fake.random_int(min=21, max=30) + + # Define a dictionary mapping Android versions to their corresponding releases + android_releases = { + + 5: random.choice(["5.0.0", "5.1.0"]), + 6: "6.0.0", + 7: random.choice(["7.0.0", "7.1.0"]), + 8: random.choice(["8.0.0", "8.1.0"]), + 9: "9.0.0", + 10: "10.0.0", + 11: "11.0.0", + 12: "11.0.0", + + } + + # Select the corresponding release based on the generated Android version + # android_release = android_releases.get(Version) + + + app_versions = { + + + "7.0.0": ['322.0.0.37.95', '322.0.0.37.95', '322.0.0.37.95', '321.0.0.39.106', '321.0.0.39.106', + '320.0.0.42.101', '319.0.0.43.110', '319.0.0.43.110', '319.0.0.43.110', '318.0.0.30.110', + '317.0.0.34.109', '316.0.0.38.109', '315.0.0.29.109', '314.0.0.20.114', '314.0.0.14.114', + '313.0.0.26.328', '313.0.0.26.328', '312.1.0.34.111', '311.0.0.32.118', '310.0.0.37.328', + '309.1.0.41.113', '309.0.0.40.113', '309.0.0.40.113', '308.0.0.36.109', '308.0.0.36.109', + '307.0.0.34.111', '306.0.0.35.109', '306.0.0.35.109', '305.0.0.34.110', '304.0.0.35.106', + '303.0.0.40.109', '302.1.0.36.111', '302.1.0.36.111', '302.0.0.34.111', '301.1.0.33.110', + '301.0.0.33.110', '300.0.0.29.110', '300.0.0.29.110', '300.0.0.0.44', '299.0.0.34.111', + '298.0.0.31.110', '298.0.0.31.110', '297.0.0.33.109', '297.0.0.33.109', '296.0.0.35.109', + '295.0.0.32.109', '294.0.0.33.87', '293.0.2.28.93', '293.0.2.28.93', '292.0.0.31.110', + '292.0.0.18.110', '291.1.0.34.111', '291.1.0.34.111', '290.0.0.13.76', '289.0.0.25.49', + '289.0.0.25.49', '288.1.0.22.66', '287.0.0.25.77', '286.0.0.20.69', '286.0.0.20.69', + '285.0.0.25.62', '284.0.0.22.85', '283.0.0.20.105', '283.0.0.20.105', '282.0.0.22.119', + '281.0.0.19.105', '280.0.0.18.114', '280.0.0.18.114', '279.0.0.23.112', '279.0.0.23.112', + '279.0.0.18.112' + ], + + "7.1.0": ['322.0.0.37.95', '322.0.0.37.95', '322.0.0.37.95', '321.0.0.39.106', '321.0.0.39.106', + '320.0.0.42.101', '319.0.0.43.110', '319.0.0.43.110', '319.0.0.43.110', '318.0.0.30.110', + '317.0.0.34.109', '316.0.0.38.109', '315.0.0.29.109', '314.0.0.20.114', '314.0.0.14.114', + '313.0.0.26.328', '313.0.0.26.328', '312.1.0.34.111', '311.0.0.32.118', '310.0.0.37.328', + '309.1.0.41.113', '309.0.0.40.113', '309.0.0.40.113', '308.0.0.36.109', '308.0.0.36.109', + '307.0.0.34.111', '306.0.0.35.109', '306.0.0.35.109', '305.0.0.34.110', '304.0.0.35.106', + '303.0.0.40.109', '302.1.0.36.111', '302.1.0.36.111', '302.0.0.34.111', '301.1.0.33.110', + '301.0.0.33.110', '300.0.0.29.110', '300.0.0.29.110', '300.0.0.0.44', '299.0.0.34.111', + '298.0.0.31.110', '298.0.0.31.110', '297.0.0.33.109', '297.0.0.33.109', '296.0.0.35.109', + '295.0.0.32.109', '294.0.0.33.87', '293.0.2.28.93', '293.0.2.28.93', '292.0.0.31.110', + '292.0.0.18.110', '291.1.0.34.111', '291.1.0.34.111', '290.0.0.13.76', '289.0.0.25.49', + '289.0.0.25.49', '288.1.0.22.66', '287.0.0.25.77', '286.0.0.20.69', '286.0.0.20.69', + '285.0.0.25.62', '284.0.0.22.85', '283.0.0.20.105', '283.0.0.20.105', '282.0.0.22.119', + '281.0.0.19.105', '280.0.0.18.114', '280.0.0.18.114', '279.0.0.23.112', '279.0.0.23.112', + '279.0.0.18.112' + ], + + "6.0.0": ['253.0.0.17.114', '252.0.0.10.111', '247.0.0.11.113'], + + "5.0.0": ['278.0.0.22.117', '278.0.0.21.117', '277.0.0.17.107', '277.0.0.17.107', '276.1.0.26.103', + '276.0.0.26.103', '275.0.0.27.98', '274.0.0.26.90', '273.1.0.16.72', '273.0.0.16.72', + '272.0.0.16.73', '271.1.0.21.84', '271.0.0.20.84', '270.2.0.24.82', '270.0.0.23.82', + '269.0.0.18.75', '268.0.0.18.72', '267.0.0.18.93', '266.0.0.19.106', '265.0.0.19.301', + '265.0.0.19.301', '264.0.0.22.106', '264.0.0.0.99', '263.2.0.19.104', '263.0.0.19.104', + '262.0.0.24.327', '261.0.0.21.111', '260.0.0.23.115', '259.1.0.29.104', '259.0.0.29.104', + '258.1.0.26.100', '258.0.0.26.100', '257.1.0.16.110', '257.0.0.16.110', '256.0.0.18.105', + '255.1.0.17.102', '254.0.0.19.109', '253.0.0.23.114', '253.0.0.20.114', '252.0.0.17.111', + '251.1.0.11.106', '251.0.0.11.106', '250.0.0.21.109', '249.0.0.20.105', '248.0.0.17.109', + '247.0.0.17.113', '246.0.0.16.113', '245.0.0.18.108' + ], + + "5.1.0": ['278.0.0.22.117', '278.0.0.21.117', '277.0.0.17.107', '277.0.0.17.107', '276.1.0.26.103', + '276.0.0.26.103', '275.0.0.27.98', '274.0.0.26.90', '273.1.0.16.72', '273.0.0.16.72', + '272.0.0.16.73', '271.1.0.21.84', '271.0.0.20.84', '270.2.0.24.82', '270.0.0.23.82', + '269.0.0.18.75', '268.0.0.18.72', '267.0.0.18.93', '266.0.0.19.106', '265.0.0.19.301', + '265.0.0.19.301', '264.0.0.22.106', '264.0.0.0.99', '263.2.0.19.104', '263.0.0.19.104', + '262.0.0.24.327', '261.0.0.21.111', '260.0.0.23.115', '259.1.0.29.104', '259.0.0.29.104', + '258.1.0.26.100', '258.0.0.26.100', '257.1.0.16.110', '257.0.0.16.110', '256.0.0.18.105', + '255.1.0.17.102', '254.0.0.19.109', '253.0.0.23.114', '253.0.0.20.114', '252.0.0.17.111', + '251.1.0.11.106', '251.0.0.11.106', '250.0.0.21.109', '249.0.0.20.105', '248.0.0.17.109', + '247.0.0.17.113', '246.0.0.16.113', '245.0.0.18.108' + ], + + "9.0.0": ['313.0.0.0.263', '301.0.0.28.110', '301.0.0.27.110', '300.0.0.29.110', '294.0.4.0.15', + '293.0.2.0.28', '293.0.2.0.20', '293.0.2.0.11', '293.0.2.0.6', '292.0.0.26.110', + '292.0.0.18.110', '292.0.0.16.110', '283.0.0.20.105', '274.0.0.21.90', '269.0.0.14.75', + '268.0.0.13.72', '268.0.0.9.72', '265.0.0.1.301', '259.0.0.16.104'], + + + "8.0.0": ['313.0.0.0.263', '301.0.0.28.110', '301.0.0.27.110', '300.0.0.29.110', '294.0.4.0.15', + '293.0.2.0.28', '293.0.2.0.20', '293.0.2.0.11', '293.0.2.0.6', '292.0.0.26.110', + '292.0.0.18.110', '292.0.0.16.110', '283.0.0.20.105', '274.0.0.21.90', '269.0.0.14.75', + '268.0.0.13.72', '268.0.0.9.72', '265.0.0.1.301', '259.0.0.16.104'], + + "8.1.0": ['313.0.0.0.263', '301.0.0.28.110', '301.0.0.27.110', '300.0.0.29.110', '294.0.4.0.15', + '293.0.2.0.28', '293.0.2.0.20', '293.0.2.0.11', '293.0.2.0.6', '292.0.0.26.110', + '292.0.0.18.110', '292.0.0.16.110', '283.0.0.20.105', '274.0.0.21.90', '269.0.0.14.75', + '268.0.0.13.72', '268.0.0.9.72', '265.0.0.1.301', '259.0.0.16.104'], + + "10.0.0": ['313.0.0.0.263', '301.0.0.28.110', '301.0.0.27.110', '300.0.0.29.110', '294.0.4.0.15', + '293.0.2.0.28', '293.0.2.0.20', '293.0.2.0.11', '293.0.2.0.6', '292.0.0.26.110', + '292.0.0.18.110', '292.0.0.16.110', '283.0.0.20.105', '274.0.0.21.90', '269.0.0.14.75', + '268.0.0.13.72', '268.0.0.9.72', '265.0.0.1.301', '259.0.0.16.104'], + + "11.0.0": ['313.0.0.0.263', '301.0.0.28.110', '301.0.0.27.110', '300.0.0.29.110', '294.0.4.0.15', + '293.0.2.0.28', '293.0.2.0.20', '293.0.2.0.11', '293.0.2.0.6', '292.0.0.26.110', + '292.0.0.18.110', '292.0.0.16.110', '283.0.0.20.105', '274.0.0.21.90', '269.0.0.14.75', + '268.0.0.13.72', '268.0.0.9.72', '265.0.0.1.301', '259.0.0.16.104','313.0.0.0.263', '301.0.0.28.110', '301.0.0.27.110', '300.0.0.29.110', '294.0.4.0.15', + '293.0.2.0.28', '293.0.2.0.20', '293.0.2.0.11', '293.0.2.0.6', '292.0.0.26.110', + '292.0.0.18.110', '292.0.0.16.110', '283.0.0.20.105', '274.0.0.21.90', '269.0.0.14.75', + '268.0.0.13.72', '268.0.0.9.72', '265.0.0.1.301', '259.0.0.16.104'], + + + } + + + + + # Define a dictionary mapping manufacturer to model names along with DPI, resolution, and CPU + device_info = { + "Samsung": { + "Galaxy S20": {"Version": 10, "dpi": "480dpi", "resolution": "1440x3200", "cpu": "exynos"}, + "Galaxy Note 20": {"Version": 10, "dpi": "480dpi", "resolution": "1440x3088", "cpu": "exynos"}, + "Galaxy S21": {"Version": 11, "dpi": "421dpi", "resolution": "1080x2400", "cpu": "exynos"}, + "Galaxy S10": {"Version": 9, "dpi": "550dpi", "resolution": "1440x3040", "cpu": "exynos"}, + "Galaxy S9": {"Version": 8, "dpi": "570dpi", "resolution": "1440x2960", "cpu": "exynos"}, + "Galaxy Note 10": {"Version": 9, "dpi": "401dpi", "resolution": "1080x2280", "cpu": "exynos"}, + "Galaxy Note 9": {"Version": 8, "dpi": "520dpi", "resolution": "1440x2960", "cpu": "exynos"}, + "Galaxy S21 Ultra": {"Version": 11, "dpi": "515dpi", "resolution": "1440x3200", "cpu": "exynos"}, + "Galaxy S21 Plus": {"Version": 11, "dpi": "394dpi", "resolution": "1080x2400", "cpu": "exynos"}, + "Galaxy S21 FE": {"Version": 11, "dpi": "393dpi", "resolution": "1080x2400", "cpu": "exynos"}, + "Galaxy Note 20 Lite": {"Version": 10, "dpi": "393dpi", "resolution": "1080x2400", "cpu": "exynos"}, + "Galaxy A72": {"Version": 11, "dpi": "407dpi", "resolution": "1080x2400", "cpu": "exynos"}, + "Galaxy A52": {"Version": 11, "dpi": "405dpi", "resolution": "1080x2400", "cpu": "exynos"}, + "Galaxy A32": {"Version": 11, "dpi": "270dpi", "resolution": "720x1600", "cpu": "exynos"}, + "Galaxy M62": {"Version": 11, "dpi": "407dpi", "resolution": "1080x2400", "cpu": "exynos"}, + "Galaxy M51": {"Version": 10, "dpi": "393dpi", "resolution": "1080x2340", "cpu": "exynos"}, + "Galaxy M42": {"Version": 11, "dpi": "270dpi", "resolution": "720x1600", "cpu": "exynos"}, + "Galaxy F62": {"Version": 11, "dpi": "393dpi", "resolution": "1080x2340", "cpu": "exynos"}, + "Galaxy F41": {"Version": 10, "dpi": "403dpi", "resolution": "1080x2340", "cpu": "exynos"}, + "Galaxy Z Fold 2": {"Version": 10, "dpi": "373dpi", "resolution": "1768x2208", "cpu": "exynos"}, + "Galaxy Z Flip 3": {"Version": 11, "dpi": "425dpi", "resolution": "1080x2640", "cpu": "exynos"}, + "Galaxy Fold": {"Version": 9, "dpi": "362dpi", "resolution": "1536x2152", "cpu": "exynos"}, + "Galaxy Tab S7 Plus": {"Version": 10, "dpi": "266dpi", "resolution": "1600x2560", "cpu": "exynos"}, + "Galaxy Tab S6 Lite": {"Version": 10, "dpi": "224dpi", "resolution": "1200x2000", "cpu": "exynos"}, + "Galaxy Tab A7": {"Version": 10, "dpi": "224dpi", "resolution": "1200x2000", "cpu": "exynos"}, + "Galaxy Tab Active 3": {"Version": 10, "dpi": "224dpi", "resolution": "1200x2000", "cpu": "exynos"}, + + + + }, + # "Apple": { + # "iPhone 12": {"dpi": "458dpi", "resolution": "1170x2532", "cpu": "A14 Bionic", "Version": "14"}, + # "iPhone 11": {"dpi": "326dpi", "resolution": "828x1792", "cpu": "A13 Bionic", "Version": "13"}, + # "iPhone XS": {"dpi": "458dpi", "resolution": "1125x2436", "cpu": "A12 Bionic", "Version": "12"}, + # "iPhone XR": {"dpi": "326dpi", "resolution": "828x1792", "cpu": "A12 Bionic", "Version": "12"}, + # "iPhone SE": {"dpi": "326dpi", "resolution": "750x1334", "cpu": "A13 Bionic", "Version": "13"}, + # "iPhone 8": {"dpi": "326dpi", "resolution": "750x1334", "cpu": "A11 Bionic", "Version": "11"}, + # "iPhone 7": {"dpi": "326dpi", "resolution": "750x1334", "cpu": "A10 Fusion", "Version": "10"}, + # "iPhone 12 Pro": {"dpi": "458dpi", "resolution": "1170x2532", "cpu": "A14 Bionic", "Version": "14"}, + # "iPhone 11 Pro": {"dpi": "458dpi", "resolution": "1125x2436", "cpu": "A13 Bionic", "Version": "13"}, + # "iPhone XS Max": {"dpi": "458dpi", "resolution": "1242x2688", "cpu": "A12 Bionic", "Version": "12"}, + # "iPhone 8 Plus": {"dpi": "401dpi", "resolution": "1080x1920", "cpu": "A11 Bionic", "Version": "11"}, + # "iPhone 7 Plus": {"dpi": "401dpi", "resolution": "1080x1920", "cpu": "A10 Fusion", "Version": "10"} + # }, + + "OnePlus": { + "OnePlus 8T": {"Version": 10, "dpi": "402dpi", "resolution": "1080x2400", "cpu": "qcom"}, + "OnePlus 9": {"Version": 11, "dpi": "402dpi", "resolution": "1080x2400", "cpu": "qcom"}, + "OnePlus 7T": {"Version": 10, "dpi": "402dpi", "resolution": "1080x2400", "cpu": "qcom"}, + "OnePlus 6T": {"Version": 9, "dpi": "402dpi", "resolution": "1080x2280", "cpu": "qcom"}, + "OnePlus 5T": {"Version": 7, "dpi": "401dpi", "resolution": "1080x2160", "cpu": "qcom"}, + "OnePlus 8 Pro": {"Version": 10, "dpi": "513dpi", "resolution": "1440x3168", "cpu": "qcom"}, + "OnePlus 9 Pro": {"Version": 11, "dpi": "513dpi", "resolution": "1440x3216", "cpu": "qcom"}, + "OnePlus 7T Pro": {"Version": 10, "dpi": "513dpi", "resolution": "1440x3120", "cpu": "qcom"}, + "OnePlus 6T McLaren": {"Version": 9, "dpi": "402dpi", "resolution": "1080x2340", "cpu": "qcom"}, + "OnePlus 5T Star Wars": {"Version": 7, "dpi": "401dpi", "resolution": "1080x2160", "cpu": "qcom"} + }, + + "Google": { + "Pixel 5": {"Version": 11, "dpi": "432dpi", "resolution": "1080x2340", "cpu": "qcom"}, + "Pixel 4": {"Version": 10, "dpi": "444dpi", "resolution": "1080x2280", "cpu": "qcom"}, + "Pixel 3": {"Version": 9, "dpi": "443dpi", "resolution": "1080x2160", "cpu": "qcom"}, + "Pixel 2": {"Version": 8, "dpi": "441dpi", "resolution": "1080x1920", "cpu": "qcom"}, + "Pixel": {"Version": 7, "dpi": "441dpi", "resolution": "1080x1920", "cpu": "qcom"}, + "Pixel 5 Pro": {"Version": 11, "dpi": "432dpi", "resolution": "1440x3120", "cpu": "qcom"}, + "Pixel 5 Max": {"Version": 11, "dpi": "432dpi", "resolution": "1440x3120", "cpu": "qcom"}, + "Pixel 4 XL": {"Version": 10, "dpi": "537dpi", "resolution": "1440x3040", "cpu": "qcom"}, + "Pixel 4 Pro": {"Version": 10, "dpi": "537dpi", "resolution": "1440x3040", "cpu": "qcom"}, + "Pixel 4 Max": {"Version": 10, "dpi": "537dpi", "resolution": "1440x3040", "cpu": "qcom"}, + "Pixel 3 XL": {"Version": 9, "dpi": "523dpi", "resolution": "1440x2960", "cpu": "qcom"}, + "Pixel 3 Pro": {"Version": 9, "dpi": "523dpi", "resolution": "1440x2960", "cpu": "qcom"}, + "Pixel 3 Max": {"Version": 9, "dpi": "523dpi", "resolution": "1440x2960", "cpu": "qcom"}, + "Pixel 2 XL": {"Version": 8, "dpi": "537dpi", "resolution": "1440x2880", "cpu": "qcom"}, + "Pixel 2 Pro": {"Version": 8, "dpi": "537dpi", "resolution": "1440x2880", "cpu": "qcom"}, + "Pixel 2 Max": {"Version": 8, "dpi": "537dpi", "resolution": "1440x2880", "cpu": "qcom"}, + "Pixel XL": {"Version": 7, "dpi": "534dpi", "resolution": "1440x2560", "cpu": "qcom"}, + "Pixel Pro": {"Version": 7, "dpi": "534dpi", "resolution": "1440x2560", "cpu": "qcom"}, + "Pixel Max": {"Version": 7, "dpi": "534dpi", "resolution": "1440x2560", "cpu": "qcom"} + }, + + "Sony": { + "Xperia 1 III": {"Version": 11, "dpi": "643dpi", "resolution": "1644x3840", "cpu": "qcom"}, + "Xperia 1 III Pro": {"Version": 11, "dpi": "643dpi", "resolution": "1644x3840", "cpu": "qcom"}, + "Xperia 1 III Max": {"Version": 11, "dpi": "643dpi", "resolution": "1644x3840", "cpu": "qcom"}, + "Xperia 1 III Mini": {"Version": 11, "dpi": "643dpi", "resolution": "1644x3840", "cpu": "qcom"}, + "Xperia 5 III": {"Version": 11, "dpi": "643dpi", "resolution": "1080x2520", "cpu": "qcom"}, + "Xperia 5 III Pro": {"Version": 11, "dpi": "643dpi", "resolution": "1080x2520", "cpu": "qcom"}, + "Xperia 5 III Max": {"Version": 11, "dpi": "643dpi", "resolution": "1080x2520", "cpu": "qcom"}, + "Xperia 5 III Mini": {"Version": 11, "dpi": "643dpi", "resolution": "1080x2520", "cpu": "qcom"}, + "Xperia 1 II": {"Version": 10, "dpi": "643dpi", "resolution": "1644x3840", "cpu": "qcom"}, + "Xperia 1 II Pro": {"Version": 10, "dpi": "643dpi", "resolution": "1644x3840", "cpu": "qcom"}, + "Xperia 1 II Max": {"Version": 10, "dpi": "643dpi", "resolution": "1644x3840", "cpu": "qcom"}, + "Xperia 1 II Mini": {"Version": 10, "dpi": "643dpi", "resolution": "1644x3840", "cpu": "qcom"}, + "Xperia 10 III": {"Version": 11, "dpi": "457dpi", "resolution": "1080x2520", "cpu": "qcom"}, + "Xperia 10 III Pro": {"Version": 11, "dpi": "457dpi", "resolution": "1080x2520", "cpu": "qcom"}, + "Xperia 10 III Max": {"Version": 11, "dpi": "457dpi", "resolution": "1080x2520", "cpu": "qcom"}, + "Xperia 10 III Mini": {"Version": 11, "dpi": "457dpi", "resolution": "1080x2520", "cpu": "qcom"}, + "Xperia 10 II": {"Version": 10, "dpi": "457dpi", "resolution": "1080x2520", "cpu": "qcom"}, + "Xperia 10 II Pro": {"Version": 10, "dpi": "457dpi", "resolution": "1080x2520", "cpu": "qcom"}, + "Xperia 10 II Max": {"Version": 10, "dpi": "457dpi", "resolution": "1080x2520", "cpu": "qcom"}, + "Xperia 10 II Mini": {"Version": 10, "dpi": "457dpi", "resolution": "1080x2520", "cpu": "qcom"} + }, + "Huawei": { + "Mate 40 Pro": {"Version": 10, "dpi": "441dpi", "resolution": "1344x2772", "cpu": "kirin"}, + "Mate 40 Pro Max": {"Version": 10, "dpi": "441dpi", "resolution": "1344x2772", "cpu": "kirin"}, + "Mate 40 Pro Mini": {"Version": 10, "dpi": "441dpi", "resolution": "1344x2772", "cpu": "kirin"}, + "Mate 30 Pro": {"Version": 10, "dpi": "409dpi", "resolution": "1176x2400", "cpu": "kirin"}, + "Mate 30 Pro Max": {"Version": 10, "dpi": "409dpi", "resolution": "1176x2400", "cpu": "kirin"}, + "Mate 30 Pro Mini": {"Version": 10, "dpi": "409dpi", "resolution": "1176x2400", "cpu": "kirin"}, + "Mate 20 Pro": {"Version": 9, "dpi": "538dpi", "resolution": "1440x3120", "cpu": "kirin"}, + "Mate 20 Pro Max": {"Version": 9, "dpi": "538dpi", "resolution": "1440x3120", "cpu": "kirin"}, + "Mate 20 Pro Mini": {"Version": 9, "dpi": "538dpi", "resolution": "1440x3120", "cpu": "kirin"}, + "P40 Pro": {"Version": 10, "dpi": "441dpi", "resolution": "1200x2640", "cpu": "kirin"}, + "P40 Pro Max": {"Version": 10, "dpi": "441dpi", "resolution": "1200x2640", "cpu": "kirin"}, + "P40 Pro Mini": {"Version": 10, "dpi": "441dpi", "resolution": "1200x2640", "cpu": "kirin"}, + "P30 Pro": {"Version": 9, "dpi": "398dpi", "resolution": "1080x2340", "cpu": "kirin"}, + "P30 Pro Max": {"Version": 9, "dpi": "398dpi", "resolution": "1080x2340", "cpu": "kirin"}, + "P30 Pro Mini": {"Version": 9, "dpi": "398dpi", "resolution": "1080x2340", "cpu": "kirin"}, + "Mate X2": {"Version": 11, "dpi": "413dpi", "resolution": "2200x2480", "cpu": "kirin"}, + "Mate 40": {"Version": 10, "dpi": "441dpi", "resolution": "1080x2340", "cpu": "kirin"}, + "Mate 30": {"Version": 10, "dpi": "409dpi", "resolution": "1080x2340", "cpu": "kirin"}, + "Mate 20": {"Version": 9, "dpi": "538dpi", "resolution": "1080x2244", "cpu": "kirin"}, + "P40": {"Version": 10, "dpi": "441dpi", "resolution": "1080x2340", "cpu": "kirin"}, + "P30": {"Version": 9, "dpi": "398dpi", "resolution": "1080x2340", "cpu": "kirin"}, + "P20": {"Version": 8, "dpi": "429dpi", "resolution": "1080x2244", "cpu": "kirin"}, + "Nova 8": {"Version": 11, "dpi": "443dpi", "resolution": "1080x2400", "cpu": "kirin"}, + "Nova 7": {"Version": 10, "dpi": "405dpi", "resolution": "1080x2400", "cpu": "kirin"}, + "Honor V40": {"Version": 11, "dpi": "441dpi", "resolution": "1236x2676", "cpu": "kirin"}, + "Honor 30": {"Version": 10, "dpi": "400dpi", "resolution": "1080x2400", "cpu": "kirin"}, + "Honor 20": {"Version": 9, "dpi": "412dpi", "resolution": "1080x2340", "cpu": "kirin"}, + "Enjoy 20": {"Version": 10, "dpi": "269dpi", "resolution": "720x1600", "cpu": "kirin"}, + "Y9a": {"Version": 10, "dpi": "415dpi", "resolution": "1080x2400", "cpu": "kirin"}, + "Y7a": {"Version": 10, "dpi": "269dpi", "resolution": "720x1600", "cpu": "kirin"} + + + }, + + "Xiaomi": { + "Mi 11 Pro": {"Version": 11, "dpi": "515dpi", "resolution": "1440x3200", "cpu": "qcom"}, + "Mi 11 Ultra": {"Version": 11, "dpi": "515dpi", "resolution": "1440x3200", "cpu": "qcom"}, + "Mi 11 Lite": {"Version": 11, "dpi": "402dpi", "resolution": "1080x2400", "cpu": "qcom"}, + "Mi 10 Pro": {"Version": 10, "dpi": "386dpi", "resolution": "1080x2340", "cpu": "qcom"}, + "Mi 10 Ultra": {"Version": 10, "dpi": "386dpi", "resolution": "1080x2340", "cpu": "qcom"}, + "Mi 10 Lite": {"Version": 10, "dpi": "409dpi", "resolution": "1080x2400", "cpu": "qcom"}, + "Mi 9 Pro": {"Version": 9, "dpi": "403dpi", "resolution": "1080x2340", "cpu": "qcom"}, + "Mi 9T Pro": {"Version": 9, "dpi": "403dpi", "resolution": "1080x2340", "cpu": "qcom"}, + "Mi 9 SE": {"Version": 9, "dpi": "432dpi", "resolution": "1080x2340", "cpu": "qcom"}, + "Mi 8 Pro": {"Version": 8, "dpi": "403dpi", "resolution": "1080x2248", "cpu": "qcom"}, + "Mi 8 Max": {"Version": 8, "dpi": "403dpi", "resolution": "1080x2248", "cpu": "qcom"}, + "Mi 8 Mini": {"Version": 8, "dpi": "403dpi", "resolution": "1080x2248", "cpu": "qcom"}, + "Mi Mix Pro": {"Version": 7, "dpi": "362dpi", "resolution": "1080x2340", "cpu": "qcom"}, + "Mi Mix Max": {"Version": 7, "dpi": "362dpi", "resolution": "1080x2340", "cpu": "qcom"}, + "Mi Mix Mini": {"Version": 7, "dpi": "362dpi", "resolution": "1080x2340", "cpu": "qcom"}, + "Mi Note 10 Pro": {"Version": 10, "dpi": "398dpi", "resolution": "1080x2340", "cpu": "qcom"}, + "Mi Note 10 Max": {"Version": 10, "dpi": "398dpi", "resolution": "1080x2340", "cpu": "qcom"}, + "Mi Note 10 Mini": {"Version": 10, "dpi": "398dpi", "resolution": "1080x2340", "cpu": "qcom"}, + "Redmi Note 9 Pro": {"Version": 10, "dpi": "395dpi", "resolution": "1080x2340", "cpu": "qcom"}, + "Redmi Note 9 Max": {"Version": 10, "dpi": "395dpi", "resolution": "1080x2340", "cpu": "qcom"}, + "Redmi Note 9 Mini": {"Version": 10, "dpi": "395dpi", "resolution": "1080x2340", "cpu": "qcom"}, + "Redmi 10 Pro": {"Version": 11, "dpi": "402dpi", "resolution": "1080x2400", "cpu": "qcom"}, + "Redmi 10 Max": {"Version": 11, "dpi": "402dpi", "resolution": "1080x2400", "cpu": "qcom"}, + "Redmi 10 Mini": {"Version": 11, "dpi": "402dpi", "resolution": "1080x2400", "cpu": "qcom"}, + "POCO F3 Pro": {"Version": 11, "dpi": "395dpi", "resolution": "1080x2400", "cpu": "qcom"} + }, + + "ASUS": { + "ZenFone 7": {"Version": 10, "dpi": "386dpi", "resolution": "1080x2400", "cpu": "qcom"}, + "ZenFone 7 Pro": {"Version": 10, "dpi": "386dpi", "resolution": "1080x2400", "cpu": "qcom"}, + "ZenFone 7 Max": {"Version": 10, "dpi": "386dpi", "resolution": "1080x2400", "cpu": "qcom"}, + "ZenFone 7 Mini": {"Version": 10, "dpi": "386dpi", "resolution": "1080x2400", "cpu": "qcom"}, + "ZenFone 6": {"Version": 9, "dpi": "403dpi", "resolution": "1080x2340", "cpu": "qcom"}, + "ZenFone 6 Pro": {"Version": 9, "dpi": "403dpi", "resolution": "1080x2340", "cpu": "qcom"}, + "ZenFone 6 Max": {"Version": 9, "dpi": "403dpi", "resolution": "1080x2340", "cpu": "qcom"}, + "ZenFone 6 Mini": {"Version": 9, "dpi": "403dpi", "resolution": "1080x2340", "cpu": "qcom"}, + "ZenFone 5": {"Version": 8, "dpi": "403dpi", "resolution": "1080x2248", "cpu": "qcom"}, + "ZenFone 5 Pro": {"Version": 8, "dpi": "403dpi", "resolution": "1080x2248", "cpu": "qcom"}, + "ZenFone 5 Max": {"Version": 8, "dpi": "403dpi", "resolution": "1080x2248", "cpu": "qcom"}, + "ZenFone 5 Mini": {"Version": 8, "dpi": "403dpi", "resolution": "1080x2248", "cpu": "qcom"}, + "ZenFone 4": {"Version": 7, "dpi": "401dpi", "resolution": "1080x2246", "cpu": "qcom"}, + "ZenFone 4 Pro": {"Version": 7, "dpi": "401dpi", "resolution": "1080x2246", "cpu": "qcom"}, + "ZenFone 4 Max": {"Version": 7, "dpi": "401dpi", "resolution": "1080x2246", "cpu": "qcom"}, + "ZenFone 4 Mini": {"Version": 7, "dpi": "401dpi", "resolution": "1080x2246", "cpu": "qcom"}, + "ZenFone 8": {"Version": 11, "dpi": "400dpi", "resolution": "1080x2400", "cpu": "qcom"}, + "ZenFone 8 Pro": {"Version": 11, "dpi": "400dpi", "resolution": "1080x2400", "cpu": "qcom"}, + "ZenFone 8 Max": {"Version": 11, "dpi": "400dpi", "resolution": "1080x2400", "cpu": "qcom"}, + "ZenFone 8 Mini": {"Version": 11, "dpi": "400dpi", "resolution": "1080x2400", "cpu": "qcom"}, + "ROG Phone 5": {"Version": 11, "dpi": "391dpi", "resolution": "1080x2448", "cpu": "qcom"}, + "ROG Phone 5 Pro": {"Version": 11, "dpi": "391dpi", "resolution": "1080x2448", "cpu": "qcom"}, + "ROG Phone 5 Ultimate": {"Version": 11, "dpi": "391dpi", "resolution": "1080x2448", "cpu": "qcom"}, + "ZenFone 7 Deluxe": {"Version": 10, "dpi": "386dpi", "resolution": "1080x2400", "cpu": "qcom"}, + "ZenFone 7 Ultra": {"Version": 10, "dpi": "386dpi", "resolution": "1080x2400", "cpu": "qcom"}, + "ROG Phone 3": {"Version": 10, "dpi": "391dpi", "resolution": "1080x2340", "cpu": "qcom"}, + "ROG Phone 3 Pro": {"Version": 10, "dpi": "391dpi", "resolution": "1080x2340", "cpu": "qcom"}, + "ROG Phone 3 Ultimate": {"Version": 10, "dpi": "391dpi", "resolution": "1080x2340", "cpu": "qcom"}, + "ZenFone 6S": {"Version": 9, "dpi": "403dpi", "resolution": "1080x2340", "cpu": "qcom"}, + "ZenFone 6S Pro": {"Version": 9, "dpi": "403dpi", "resolution": "1080x2340", "cpu": "qcom"}, + "ZenFone 6S Max": {"Version": 9, "dpi": "403dpi", "resolution": "1080x2340", "cpu": "qcom"}, + "ZenFone 6S Mini": {"Version": 9, "dpi": "403dpi", "resolution": "1080x2340", "cpu": "qcom"} + }, + + + "LG": { + "LG Velvet": {"Version": 10, "dpi": "395dpi", "resolution": "1080x2460", "cpu": "qcom"}, + "LG Velvet Pro": {"Version": 10, "dpi": "395dpi", "resolution": "1080x2460", "cpu": "qcom"}, + "LG Velvet Max": {"Version": 10, "dpi": "395dpi", "resolution": "1080x2460", "cpu": "qcom"}, + "LG Velvet Mini": {"Version": 10, "dpi": "395dpi", "resolution": "1080x2460", "cpu": "qcom"}, + "LG G8": {"Version": 9, "dpi": "564dpi", "resolution": "1440x3120", "cpu": "qcom"}, + "LG G8 Pro": {"Version": 9, "dpi": "564dpi", "resolution": "1440x3120", "cpu": "qcom"}, + "LG G8 Max": {"Version": 9, "dpi": "564dpi", "resolution": "1440x3120", "cpu": "qcom"}, + "LG G8 Mini": {"Version": 9, "dpi": "564dpi", "resolution": "1440x3120", "cpu": "qcom"}, + "LG G7": {"Version": 8, "dpi": "563dpi", "resolution": "1440x3120", "cpu": "qcom"}, + "LG G7 Pro": {"Version": 8, "dpi": "563dpi", "resolution": "1440x3120", "cpu": "qcom"}, + "LG G7 Max": {"Version": 8, "dpi": "563dpi", "resolution": "1440x3120", "cpu": "qcom"}, + "LG G7 Mini": {"Version": 8, "dpi": "563dpi", "resolution": "1440x3120", "cpu": "qcom"}, + "LG G6": {"Version": 7, "dpi": "564dpi", "resolution": "1440x2880", "cpu": "qcom"}, + "LG G6 Pro": {"Version": 7, "dpi": "564dpi", "resolution": "1440x2880", "cpu": "qcom"}, + "LG G6 Max": {"Version": 7, "dpi": "564dpi", "resolution": "1440x2880", "cpu": "qcom"}, + "LG G6 Mini": {"Version": 7, "dpi": "564dpi", "resolution": "1440x2880", "cpu": "qcom"}, + "LG V60 ThinQ": {"Version": 10, "dpi": "395dpi", "resolution": "1080x2460", "cpu": "qcom"}, + "LG V60 ThinQ Pro": {"Version": 10, "dpi": "395dpi", "resolution": "1080x2460", "cpu": "qcom"}, + "LG V60 ThinQ Max": {"Version": 10, "dpi": "395dpi", "resolution": "1080x2460", "cpu": "qcom"}, + "LG V60 ThinQ Mini": {"Version": 10, "dpi": "395dpi", "resolution": "1080x2460", "cpu": "qcom"}, + "LG V50 ThinQ": {"Version": 9, "dpi": "564dpi", "resolution": "1440x3120", "cpu": "qcom"}, + "LG V50 ThinQ Pro": {"Version": 9, "dpi": "564dpi", "resolution": "1440x3120", "cpu": "qcom"}, + "LG V50 ThinQ Max": {"Version": 9, "dpi": "564dpi", "resolution": "1440x3120", "cpu": "qcom"}, + "LG V50 ThinQ Mini": {"Version": 9, "dpi": "564dpi", "resolution": "1440x3120", "cpu": "qcom"}, + "LG G5": {"Version": 7, "dpi": "564dpi", "resolution": "1440x2880", "cpu": "qcom"}, + "LG G5 Pro": {"Version": 7, "dpi": "564dpi", "resolution": "1440x2880", "cpu": "qcom"}, + "LG G5 Max": {"Version": 7, "dpi": "564dpi", "resolution": "1440x2880", "cpu": "qcom"}, + "LG G5 Mini": {"Version": 7, "dpi": "564dpi", "resolution": "1440x2880", "cpu": "qcom"} + + } + + } + #-------------------------------------------ADD APPLE------- + # Select a manufacturer + manufacturer = fake.random_element(elements=("Samsung", "OnePlus", "Google", "Sony", "Huawei", "Xiaomi", "ASUS", "LG")) + + # Select a model based on the manufacturer + model_info = device_info[manufacturer] + model = fake.random_element(elements=list(model_info.keys())) + + # Get the DPI, resolution, and CPU for the selected model + version = model_info[model]["Version"] + android_release = android_releases[version] + + + selected_app_version = random.choice(app_versions[android_release]) + + # selected_app_version = random.choice(app_versions[version]) + dpi = model_info[model]["dpi"] + resolution = model_info[model]["resolution"] + cpu = model_info[model]["cpu"] + + # Generate other fake device information + device_name = fake.user_name() + + version_code = fake.numerify(text="#########") + + device = { + "app_version": selected_app_version, + "android_version": version, + "android_release": android_release, + "dpi": dpi, + "resolution": resolution, + "manufacturer": manufacturer, + "device": device_name+fake.user_name(), + "model": model, + "cpu": cpu, + "version_code": version_code, + } + + + + return device + + diff --git a/instagrapi/mixins/auth.py b/instagrapi/mixins/auth.py index adb5b1dd..8cbd95ea 100644 --- a/instagrapi/mixins/auth.py +++ b/instagrapi/mixins/auth.py @@ -9,6 +9,7 @@ from pathlib import Path from typing import Dict, Union from uuid import uuid4 +from instagrapi.mixins.RanDeviceGen import DeviceGen import requests from pydantic import ValidationError @@ -652,23 +653,113 @@ def set_device(self, device: Dict = None, reset: bool = False) -> bool: bool A boolean value """ - self.device_settings = device or { - "app_version": "269.0.0.18.75", - "android_version": 26, - "android_release": "8.0.0", - "dpi": "480dpi", - "resolution": "1080x1920", - "manufacturer": "OnePlus", - "device": "devitron", - "model": "6T Dev", - "cpu": "qcom", - "version_code": "314665256", - } + self.device_settings = device or DeviceGen.random_device() + self.settings["device_settings"] = self.device_settings if reset: self.set_uuids({}) # self.settings = self.get_settings() return True + + def set_country_details(self, country: str = "", reset: bool = False) -> bool: + """ + Helper to set country + + Parameters + ---------- + country: str, optional + Country, default is "" + + Returns + ------- + bool + A boolean value + """ + + + with open('./instagrapi/country_details.json') as f: + country_details = json.load(f) + + try : + country_code = country_details[country]['country_code'] + locale = country_details[country]['locale'] + timezone_offset = country_details[country]['timezone_offset'] + + #setting the country + self.country = country + self.settings["country"] = self.country + + #setting the country code + self.set_country_code(country_code) + + #setting the locale + self.set_locale(locale) + + + #setting the timezone offset + self.set_timezone_offset(timezone_offset) + + + return True + + except Exception as e: + print('Country not found in the list. Error: ' ,e) + return False + + def set_locale(self, locale: str = "en_US") -> bool: + """ + Helper to set locale + + Parameters + ---------- + locale: str, optional + Locale, default is "en_US" + + Returns + ------- + bool + A boolean value + """ + self.locale = locale + self.settings["locale"] = self.locale + return True + + def set_country_code(self, country_code: int = 1) -> bool: + """ + Helper to set country code + + Parameters + ---------- + country_code: int, optional + Country code, default is 1 + + Returns + ------- + bool + A boolean value + """ + self.country_code = country_code + self.settings["country_code"] = self.country_code + return True + + + def set_timezone_offset(self, timezone_offset: int = -14400) -> bool: + """ + Helper to set timezone offset + + Parameters + ---------- + timezone_offset: int, optional + Timezone offset, default is -14400 + + Returns + ------- + bool + A boolean value + """ + self.timezone_offset = timezone_offset + self.settings["timezone_offset"] = self.timezone_offset + return True def set_user_agent(self, user_agent: str = "", reset: bool = False) -> bool: """ diff --git a/requirements.txt b/requirements.txt index 31163fb7..35d9129b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,3 +3,4 @@ PySocks==1.7.1 pydantic==2.11.7 moviepy==1.0.3 pycryptodomex==3.23.0 +faker==25.5.0