From 50bd4409f51c2d04e360c232415e6a5e80bfd2f1 Mon Sep 17 00:00:00 2001 From: Jannis R Date: Wed, 8 Aug 2018 18:46:20 +0200 Subject: [PATCH] better User-Agent randomization :bug: --- .gitignore | 2 ++ lib/request.js | 8 +++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index d6fb75eb..44af817e 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,5 @@ Thumbs.db .nvm-version node_modules npm-debug.log + +/id.json diff --git a/lib/request.js b/lib/request.js index b17baf9c..681626c6 100644 --- a/lib/request.js +++ b/lib/request.js @@ -9,10 +9,16 @@ const {stringify} = require('query-string') const Promise = require('pinkie-promise') const {fetch} = require('fetch-ponyfill')({Promise}) +const userAgent = 'https://github.com/public-transport/hafas-client' const clientId = Math.random().toString(16).substr(2, 10) const md5 = input => createHash('md5').update(input).digest() +const randomizeUserAgent = () => { + const i = Math.round(Math.random() * userAgent.length) + return userAgent.slice(0, i) + clientId + userAgent.slice(i) +} + const request = (profile, data) => { const body = profile.transformReqBody({lang: 'en', svcReqL: [data]}) const req = profile.transformReq({ @@ -23,7 +29,7 @@ const request = (profile, data) => { 'Content-Type': 'application/json', 'Accept-Encoding': 'gzip, deflate', 'Accept': 'application/json', - 'user-agent': clientId + ' https://github.com/public-transport/hafas-client' + 'user-agent': randomizeUserAgent() }, query: {} })