-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTokenExtension.js
27 lines (24 loc) · 1.68 KB
/
TokenExtension.js
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
import got from 'got'
import {CookieJar} from 'tough-cookie'
const sessiontoken = 'fvdi07rkq5miv3vmc1p8j7llq3' //orig: fvdi07rkq5miv3vmc1p8j7llq3 other: 6mhol5qo7despjaj9hq3srtuv0
const cookieJar = new CookieJar()
//const setCookie = promisify(cookieJar.setCookie.bind(cookieJar))
await cookieJar.setCookie('MoodleSession='+sessiontoken,'https://moodle.rbs-ulm.de')
var client = got.extend({ cookieJar })
console.log(await cookieJar.getCookies('https://moodle.rbs-ulm.de'))
var login = await client.get('https://moodle.rbs-ulm.de/moodle/').text()
var userid = login.match(/(?<=php\?userid=)\d+/)[0]
var sessionkey = login.match(/(?<=sesskey=)\w{10}/)[0]
var username = login.match(/(?<=class="usertext mr-1">).*?(?=\<\/span)/)[0]
console.log('time='+Date.now()+'\nsessionkey='+sessionkey+'\nuserid='+userid+'\nusername='+username)
while (true) {
var timeleft = await client.post('https://moodle.rbs-ulm.de/moodle/lib/ajax/service.php?sesskey='+sessionkey+'&info=core_session_time_remaining&nosessionupdate=true',{json:[{"index":0,"methodname":"core_session_time_remaining","args":{}}]}).json()
timeleft = timeleft[0]['data']['timeremaining']
await new Promise(r => setTimeout(r, (timeleft-2)*1000));
var req = await client.get('https://moodle.rbs-ulm.de/moodle/login/index.php?testsession='+userid)
//var req = await client.get('https://moodle.rbs-ulm.de/moodle/')
//var req = await client.post('https://moodle.rbs-ulm.de/moodle/lib/ajax/service.php?sesskey='+sessionkey+'&info=core_session_touch',{json:[{"index":0,"methodname":"core_session_touch","args":{}}]})
console.log(Date.now())
console.log(req.statusCode)
console.log(cookieJar.getCookies('https://moodle.rbs-ulm.de'))
}