From 3af4c88ab039218b3450a930879d79b2fd9f9c05 Mon Sep 17 00:00:00 2001 From: Timo Lins Date: Wed, 7 Mar 2018 21:38:35 +0100 Subject: [PATCH] Randomize userAgent --- lib/index.js | 5 +-- package-lock.json | 82 +++++++++++++++++++++++++++++++++++++++++++++-- package.json | 3 +- 3 files changed, 85 insertions(+), 5 deletions(-) diff --git a/lib/index.js b/lib/index.js index 3a1279e..d518f1d 100644 --- a/lib/index.js +++ b/lib/index.js @@ -5,10 +5,9 @@ const fs = require('fs') const request = require('request-promise-native') const { Cookie } = require('tough-cookie') const isUrl = require('is-url') +const useragentFromSeed = require('useragent-from-seed') const baseUrl = 'https://www.instagram.com' -const userAgent = - 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1' class Instagram { constructor({ username, password, cookies }, { language, proxy } = {}) { @@ -26,6 +25,8 @@ class Instagram { csrftoken = cookies.find(({ key }) => key === 'csrftoken').value } + const userAgent = useragentFromSeed(username) + this.request = request.defaults({ baseUrl, headers: { diff --git a/package-lock.json b/package-lock.json index 6892b70..a812376 100644 --- a/package-lock.json +++ b/package-lock.json @@ -80,6 +80,19 @@ "arrify": "1.0.1" } }, + "@sindresorhus/fnv1a": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/fnv1a/-/fnv1a-1.0.0.tgz", + "integrity": "sha512-n+7NAD9vCDb2PaCRFIGrT2UF8WPIfMgGvCiVsYKY1/eBTrZU80N9erKhX9UTdxyvWhNuxQxwZGzdOIOlt8WqsA==" + }, + "@sindresorhus/string-hash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/string-hash/-/string-hash-1.0.0.tgz", + "integrity": "sha512-f+MXwrsBBcicamPLVcvfoc1SBXLRRwRGe0atZlJFRypb6CKoODYwElIQLFuilFoD+7YWdjX42Lfx6mC0ClMKgw==", + "requires": { + "@sindresorhus/fnv1a": "1.0.0" + } + }, "acorn": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.2.1.tgz", @@ -1172,6 +1185,25 @@ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true }, + "color": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color/-/color-2.0.1.tgz", + "integrity": "sha512-ubUCVVKfT7r2w2D3qtHakj8mbmKms+tThR8gI8zEYCbUBl8/voqFGt3kgBqGwXAopgXybnkuOq+qMYCRrp4cXw==", + "requires": { + "color-convert": "1.9.1", + "color-string": "1.5.2" + }, + "dependencies": { + "color-convert": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "requires": { + "color-name": "1.1.3" + } + } + } + }, "color-convert": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz", @@ -1184,8 +1216,16 @@ "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "color-string": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.2.tgz", + "integrity": "sha1-JuRYFLw8mny9Z1FkikFDRRSnc6k=", + "requires": { + "color-name": "1.1.3", + "simple-swizzle": "0.2.2" + } }, "combined-stream": { "version": "1.0.5", @@ -5302,6 +5342,11 @@ "semver": "5.4.1" } }, + "park-miller": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/park-miller/-/park-miller-1.0.0.tgz", + "integrity": "sha512-Gdx+0DuJID9FpBFzBQGCqsVSpnW7AGTAXJkgSo9mSvRu/YBI9trLd3pUK4LQ6mwViZOCA/T9/GngkFRyPp63Rw==" + }, "parse-glob": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", @@ -5543,6 +5588,16 @@ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" }, + "randoma": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/randoma/-/randoma-1.2.0.tgz", + "integrity": "sha512-m7W2Eg8+6iXge4zH0y7qXRykoLF2WJd7AfSUSZa9LvxHBlEd3w49Bao2Tm1/nkTpp7ZsxS2Ur2jpSwbyQjkOKA==", + "requires": { + "@sindresorhus/string-hash": "1.0.0", + "color": "2.0.1", + "park-miller": "1.0.0" + } + }, "randomatic": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", @@ -6022,6 +6077,21 @@ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "requires": { + "is-arrayish": "0.3.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.1.tgz", + "integrity": "sha1-wt/DhquqDD4zxI2z/ocFnmkGXv0=" + } + } + }, "slash": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", @@ -6561,6 +6631,14 @@ "os-homedir": "1.0.2" } }, + "useragent-from-seed": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/useragent-from-seed/-/useragent-from-seed-1.0.0.tgz", + "integrity": "sha512-5cZphCcBPMYMDZOQLHl8hakVJ88fwu9HZGiapdiebxv7QGXutS3EN/42TgGAVfdNKDIDLllsnOxEBGXqid7l6Q==", + "requires": { + "randoma": "1.2.0" + } + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", diff --git a/package.json b/package.json index 1a638bf..fb01a35 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,8 @@ "is-url": "^1.2.2", "request": "^2.83.0", "request-promise-native": "^1.0.5", - "tough-cookie": "^2.3.3" + "tough-cookie": "^2.3.3", + "useragent-from-seed": "^1.0.0" }, "devDependencies": { "ava": "^0.24.0",