MCPcopy Index your code
hub / github.com/hoothin/UserScripts / requestDoc

Function requestDoc

DownloadAllContent/DownloadAllContent.user.js:1123–1248  ·  view source on GitHub ↗
(_charset)

Source from the content-addressed store, hash-verified

1121 let tryTimes=0;
1122 let validTimes=0;
1123 function requestDoc(_charset) {
1124 if (!_charset) _charset = charset;
1125 return GM_xmlhttpRequest({
1126 method: 'GET',
1127 url: aTag.href,
1128 headers:{
1129 referer:aTag.href,
1130 "Content-Type":"text/html;charset="+_charset
1131 },
1132 timeout:10000,
1133 overrideMimeType:"text/html;charset="+_charset,
1134 onload: async function(result) {
1135 let doc = getDocEle(result.responseText);
1136 if (charsetValid) {
1137 let equiv = doc.querySelector('[http-equiv="Content-Type"]');
1138 if (equiv && equiv.content) {
1139 let innerCharSet = equiv.content.match(/charset\=([^;]+)/);
1140 if (innerCharSet && innerCharSet[1].replace("-", "").toLowerCase() != _charset.replace("-", "").toLowerCase()) {
1141 charset = innerCharSet[1];
1142 return requestDoc(charset);
1143 }
1144 }
1145 }
1146 downIndex++;
1147 downNum++;
1148 if (/^{/.test(result.responseText)) {
1149 doc.json = () => {
1150 try {
1151 return JSON.parse(result.responseText);
1152 } catch(e) {}
1153 return {};
1154 }
1155 }
1156 let base = doc.querySelector("base");
1157 let nextPages = !disableNextPage && (!processFunc || nextPageFunc) && await checkNextPage(doc, base ? base.href : aTag.href);
1158 if (nextPages) {
1159 if (!nextPages.length) nextPages = [nextPages];
1160 nextPages.forEach(nextPage => {
1161 var inArr=false;
1162 for(var ai=0;ai<aEles.length;ai++){
1163 if(aEles[ai].href==nextPage.href){
1164 inArr=true;
1165 break;
1166 }
1167 }
1168 if(!inArr){
1169 nextPage.innerText=aTag.innerText+"\t>>";
1170 aEles.push(nextPage);
1171 let targetIndex = curIndex;
1172 for(let a=0;a<insertSigns.length;a++){
1173 let signs=insertSigns[a],breakSign=false;
1174 if(signs){
1175 for(let b=0;b<signs.length;b++){
1176 let sign=signs[b];
1177 if(sign==curIndex){
1178 targetIndex=a;
1179 breakSign=true;
1180 break;

Callers 1

requestFunction · 0.70

Calls 4

getDocEleFunction · 0.85
checkNextPageFunction · 0.85
processDocFunction · 0.85
downOnceFunction · 0.85

Tested by

no test coverage detected