├── README.md └── progress.xml /README.md: -------------------------------------------------------------------------------- 1 | # 坏孩子的高校邦工具箱(北航🐍院专属) 2 | 3 | ## 批量完成视频观看 4 | 5 | 感谢[@TakiVotoid](https://github.com/TakiVotoid)提供插件脚本:[#1](https://github.com/DDoSolitary/gxb-buaa73/issues/1) 6 | 1. 在任意视频播放页面按F12打开开发者工具,切换到控制台(不同浏览器情况不同,一般显示为`控制台`,`Console`等)。 7 | 2. 粘贴以下代码并按回车,将会自动完成当前课程所有视频的观看。等几秒刷新即可看到效果。 8 | 9 | ```js 10 | var urlPrefix = `${location.protocol}//${location.host}`; 11 | unitList.forEach(function (unit) { 12 | unit.itemList.forEach(function (item) { 13 | item.chapterList.forEach(function (chapter) { 14 | if (chapter.contentType == 'Video') { 15 | $.ajax({ 16 | url: `${urlPrefix}/class/${classinfo.classId}/chapter/${chapter.chapterId}/api`, 17 | type: 'GET', 18 | success: function (result) { 19 | $.ajax({ 20 | url: `${urlPrefix}/log/video/${chapter.chapterId}/${classinfo.classId}/api`, 21 | type: 'POST', 22 | data: { 23 | data: JSON.stringify([{ 24 | "state": "listening", 25 | "level": 2, 26 | "ch": result.chapter.video.seconds, 27 | "mh": 0 28 | }]) 29 | } 30 | }); 31 | } 32 | }); 33 | } 34 | }); 35 | }); 36 | }); 37 | ``` 38 | 39 | 40 | ## 快速播放 41 | 42 | 1. 在视频播放页面按F12打开开发者工具,切换到控制台(不同浏览器情况不同,一般显示为`控制台`,`Console`等)。 43 | 2. 粘贴以下代码并按回车,将会防止窗口切换时自动暂停,并且以两倍速播放视频。 44 | 45 | ```js 46 | var p = videojs.players.video_player; 47 | p.muted(true); 48 | p.pause = function() {}; 49 | p.realTrigger = p.trigger; 50 | p.trigger = function(e, h) { 51 | if (e !== "ratechange") { 52 | p.realTrigger(e, h); 53 | } 54 | }; 55 | p.playbackRate(2); 56 | ``` 57 | 58 | 最后一行括号中数字为视频加速倍数,目前来看2~3倍比较安全,倍率较高可能会因服务器检测到异常而不更新播放进度,建议自己测试后选择最佳值。 59 | 60 | ## 测验答案自动填充 61 | 62 | 1. 在视频播放页面按F12打开开发者工具,切换到控制台(不同浏览器情况不同,一般显示为`控制台`,`Console`等)。 63 | 2. 粘贴以下代码并按回车,将会自动勾选所有当前页面所有题目的正确答案。 64 | 65 | 66 | ```js 67 | var data = { 68 | 33943: { 69 | 170974: [[0, 1, 2, 3], [1]], 70 | 170975: [[0], [0, 1, 2], [0], [1], [0, 2, 3], [0], [0, 1, 2], [1, 2, 3], [2]], 71 | 170976: [[0, 1], [0], [0], [0], [1], [0], [0], [0, 1, 2, 3], [0], [1], [0], [0, 1, 2, 3], [0], [0]], 72 | 170977: [[3], [1, 2, 3], [0, 1, 2, 3], [1, 2, 3], [0, 1, 2]], 73 | 170978: [[0, 1, 2, 3], [0, 1, 2, 3], [0, 2], [0, 1, 2, 3], [0, 3], [0, 1, 2, 3]], 74 | 170979: [[0], [0], [1], [0], [0], [0], [2, 3], [0], [1], [0, 1, 2, 3], [0, 1], [1]], 75 | 170980: [[2], [0], [0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3]], 76 | 170981: [[0, 1], [0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 3], [0, 1, 2, 3], [0, 1, 3]], 77 | 170982: [[0], [0], [0, 2, 3], [1], [0], [2], [1, 2, 3], [1]], 78 | 170983: [[0, 1, 2], [0], [0], [1], [0], [0], [0, 1, 2, 3], [0, 1], [0, 1], [0, 1, 2, 3], [3], [0, 1, 2, 3], [0, 1, 2, 3], [1], [0]], 79 | 170984: [[0, 1, 2, 3], [0, 1, 2, 3], [0, 1]], 80 | 170985: [[0, 1, 2], [0, 1, 3], [0, 1, 2], [0, 1, 2, 3], [0, 1, 2], [0, 1, 3]], 81 | 170986: [[0, 1, 2, 3], [0, 1, 2], [0, 1, 2], [0, 1, 2, 3], [0], [0, 1, 2], [0]] 82 | }, 83 | 33944: { 84 | 170987: [[0, 1, 2], [2], [0, 1, 2], [0, 1, 2, 3], [1, 2], [1], [0], [3], [1], [2], [0, 2, 3], [0, 1, 3], [0, 1, 3], [1, 3], [0], [3], [0, 1, 3], [2], [0, 1, 2, 3], [1, 2], [0, 3], [1], [0, 2, 3], [1, 2, 3], [1], [0], [0, 1, 2], [0, 1], [0], [0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2], [0], [2], [0], [0, 1, 2], [0, 1], [0], [3], [0, 1, 3], [0, 1, 2, 3], [0], [0, 1, 2, 3], [3], [3], [1, 2, 3], [1], [3], [2], [2], [1], [0, 3], [2], [1], [1], [2], [1, 2, 3], [1, 3], [0, 1, 3], [0, 2, 3], [1], [0], [0, 1], [0, 1, 2, 3], [2], [0, 1, 2], [2], [0, 1, 2], [0, 1, 2, 3]], 85 | 170988: [[0, 1, 2, 3], [0, 1, 2, 3, 4], [0, 1, 3], [3], [2], [1], [0, 1], [0, 1, 2, 3, 4], [2], [0, 1, 2], [0, 1, 2, 3], [2], [0, 2], [3], [0, 2], [0, 1, 2, 3], [0], [0, 1, 2], [0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3], [1], [3], [0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2, 3], [2], [0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2]] 86 | }, 87 | 33946: { 88 | 170991: [[0, 1, 2, 3], [3], [2], [3], [0, 1, 2, 3]], 89 | 170992: [[1], [3], [3], [3], [0], [2], [3], [3], [2], [3], [3], [3], [3], [2], [1], [2], [2], [2], [1], [3], [2], [2], [3], [2], [3], [1], [1], [3], [1], [3], [2], [0, 1, 2, 3], [2], [3], [3], [3]], 90 | 170993: [[0], [1], [2], [2], [1], [3], [0], [3], [3], [2], [3], [3], [3], [1, 3], [0, 1, 2, 3], [3]], 91 | 170994: [[3], [1], [3], [0], [3], [3], [3], [0], [3], [3], [0], [2], [2], [2], [1], [0], [3], [3], [2], [3], [3], [3], [0, 1, 2, 3], [0], [2], [1], [3], [3]], 92 | 170995: [[3], [0], [0, 1, 2, 3], [3], [0], [1], [3], [3], [1], [3], [3], [0, 1, 2, 3], [0, 1, 2, 3], [0, 1, 2]], 93 | 170996: [[1], [1], [3], [2], [0], [3], [0, 1, 2, 3], [2], [0, 1, 2, 3], [0], [3], [1], [3], [2], [3], [0], [0], [0], [2], [0, 2], [1], [3], [3], [0, 1, 2, 3], [3], [3]] 94 | }, 95 | 33947: { 96 | 170997: [[0, 1, 2], [3], [0, 1, 2, 3], [0, 1, 2, 3]], 97 | 170998: [[0, 1], [3], [0, 1, 2, 3], [1, 2, 3]], 98 | 170999: [[0, 1], [0, 1, 2, 3], [0, 1, 3], [0]], 99 | 171000: [[0], [0, 1, 2], [0, 1], [1]], 100 | 171001: [[1], [0, 3], [0, 2], [0, 1, 2, 3]], 101 | 171002: [[2], [3], [0, 1, 2, 3], [1]], 102 | 171003: [[0, 2], [1, 2, 3, 4]], 103 | 171004: [[2]], 104 | 171005: [[0, 1, 2], [0, 1, 3]] 105 | }, 106 | 38251: { 107 | 194644: [[0], [0, 1, 2, 3]], 108 | 194645: [[3]], 109 | 194646: [[2], [1], [0, 1, 2, 3], [0, 1, 2, 3], [3]] 110 | }, 111 | 38253: { 112 | 194667: [[0, 2, 3], [0], [0, 1], [0], [0, 1], [2], [1], [0], [0], [0]] 113 | }, 114 | 38254: { 115 | 194682: [[3], [3], [2], [2]] 116 | }, 117 | 38255: { 118 | 194692: [[0, 1, 2, 3], [0], [0], [1], [0, 1, 2, 3], [0, 1, 2], [0], [1], [1, 2], [3], [0], [1], [0], [0], [0]] 119 | }, 120 | 38258: { 121 | 194713: [[0, 1, 2]], 122 | 194714: [[0], [1], [0], [1]] 123 | }, 124 | 38259: { 125 | 194723: [[1], [1], [1]] 126 | } 127 | }; 128 | var answers = data[quizInfo.contextId][quizInfo.quizId]; 129 | $('.question-item').each(function (i) { 130 | var boxes = $(this).find('[answer_id]'); 131 | answers[i].forEach(function (x) { 132 | boxes.eq(x).click(); 133 | }); 134 | }); 135 | ``` 136 | 137 | ## 快速播放增强版 138 | 139 | 此方法可以一次性快速看完所有所有视频,但是需要已root的安卓手机 140 | 141 | 1. 下载repo中的[`progress.xml`](https://github.com/DDoSolitary/gxb-buaa73/raw/master/progress.xml)文件。 142 | 2. 参照下文[获取用户ID](#获取用户ID)中的内容获取自己的用户ID,然后把`progress.xml`中每一行`name="`之后,`null`之前的`2333`替换为自己的用户ID。 143 | 3. 下载[高校邦App](http://android.myapp.com/myapp/detail.htm?apkName=com.kaikeba.u.student),通过课程页面右上角的下载按钮下载所有你还未看完的视频。 144 | 4. 彻底退出高校邦App。 145 | 5. 随便你用什么方法,用修改后的`progress.xml`的内容,替换手机上`/data/data/com.kaikeba.u.student/shared_prefs/progress_file.xml`和`/data/data/com.kaikeba.u.student/shared_prefs/maxprogress_file.xml`这两个文件的内容。(这一步需要root) 146 | 6. 手机断开WiFi和流量,打开高校邦App,打开`我的`->`离线课程`,逐个打开之前下载好的课程视频并等待其播放完毕。(如果之前修改文件的操作没有问题,这时每个视频打开后都会自动跳到最后,只要等几秒就可以播放完毕了) 147 | 7. 不要关闭App,联网,等待App自动同步数据,此时可以在电脑端刷新一下课程页面看看相应的视频是否都显示看完了。 148 | 149 | ## 获取用户ID 150 | 151 | 1. 打开高校邦任意页面,确保已经登录 152 | 2. 按`Ctrl+U`打开网页源代码 153 | 3. 在页面中查找`UserID`,第一个结果应该类似于`config.identifier.setUserID('2333');`,引号中的数字(这里用`2333`代替)就是你的用户ID。 154 | -------------------------------------------------------------------------------- /progress.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | --------------------------------------------------------------------------------