(id)
| 117 | } |
| 118 | |
| 119 | function ChangeHeaders(id) { |
| 120 | const re = JSON.parse(JSON.stringify(req)); //easy deep copy |
| 121 | re.url = re.url.replace(/:\/\/.+?\//, '://testflight.apple.com/'); //prevent cdn issues |
| 122 | re.timeout = $.RequestTimeout * 1000; |
| 123 | re.insecure = true; //skip ssl |
| 124 | re['X-Surge-Skip-Scripting'] = true; //prevent shadowrocket loopback issues |
| 125 | if ($.ForceIOSlist && req.url.endsWith('/apps') && re.headers['user-agent'].includes('Mac')) { |
| 126 | re.headers['user-agent'] = 'Oasis/3.5.1 OasisBuild/425.2 iOS/17.4 model/iPhone16,2 hwp/t8130 build/21E219 (6; dt:311) AMS/1 TSE/0'; |
| 127 | } |
| 128 | if (id) { |
| 129 | $.log(`Request header replaced, using "${id}"`); |
| 130 | re.headers[k1] = list[id][k1]; |
| 131 | re.headers[k2] = list[id][k2]; |
| 132 | re.headers[k3] = list[id][k3]; |
| 133 | re.url = re.url.replace(/\/[a-z0-9-]{36}\//, `/${id}/`); |
| 134 | } |
| 135 | delete re.headers['if-none-match']; //prevent 304 |
| 136 | delete re.headers['content-length']; |
| 137 | $.log(`Send request: ${$.stringify(re)}`); |
| 138 | return re; |
| 139 | } |
| 140 | |
| 141 | function ChangeBody(resp) { |
| 142 | if (req.url.endsWith('/apps')) { |
no test coverage detected