Bypassing online Timer

Posts 110 of 10 · Page 1 of 1
Bypassing online Timer
I have to do online driversed due to receiving a speeding ticket, please no "Do the class", "actually learn something" mumbo jumbo, I already went through drivers ed once and it was long and hellish.

Looking for a way to bypass the minimum required time before skipping to the next page.
I'm on chrome btw.

 
function
<div id="timerValue" class="timer">00:28</div>


(and no, editing the time to 00:00 does nothing, it just reverts)

Once the timer reaches 00:00 the next button is able to be clicked and onto the next page.
that's great. But what you need exactly? I don't understand what the Question is.
Quote Originally Posted by MikeRohsoft View Post
that's great. But what you need exactly? I don't understand what the Question is.
Is there a way to bypass the timer, and if so how?

- - - Updated - - -

Quote Originally Posted by _NightWare View Post
That div is only where the pages shows the time left, I suggest you look into the javascript files.

What /where should I be looking specifically. I know nothing about javascript.
Quote Originally Posted by Spencar View Post
Is there a way to bypass the timer, and if so how?
I've no crystall ball, so i've no idea.
It's depending of the Programmer.
If only Client Side check, then it's possible.
How? You have to do what happend after the Time is up by yourself, obvibiously.
If there are Server Side checks too, then it isn't possible.

- - - Updated - - -

Ok i've to correct the How?, because there are (like most times) more then one way to do it.
The easiest would be a Browser Plugin like GreaseMonkey, with a Script which change the Timer Variable to 0.
If you can press the Button and nothing happend, then the Server should checks the Timer.
Quote Originally Posted by MikeRohsoft View Post
I've no crystall ball, so i've no idea.
It's depending of the Programmer.
If only Client Side check, then it's possible.
How? You have to do what happend after the Time is up by yourself, obvibiously.
If there are Server Side checks too, then it isn't possible.

- - - Updated - - -

Ok i've to correct the How?, because there are (like most times) more then one way to do it.
The easiest would be a Browser Plugin like GreaseMonkey, with a Script which change the Timer Variable to 0.
If you can press the Button and nothing happend, then the Server should checks the Timer.
I have no clue on how to use "GreaseMonkey" nor do I have any background whatsoever of scripting. How can I change the time variable to 0?
That div is only where the pages shows the time left, I suggest you look into the javascript files.
And i have no clue how it works, so i can't say it.
You have to post the Javascript which is handle the Counter for get an Answer for this.

- - - Updated - - -

In the JavaScript File you will find getElementById("timerValue") or something like this. This will be the right part.
Quote Originally Posted by MikeRohsoft View Post
And i have no clue how it works, so i can't say it.
You have to post the Javascript which is handle the Counter for get an Answer for this.

- - - Updated - - -

In the JavaScript File you will find getElementById("timerValue") or something like this. This will be the right part.
Where do I find the JavaScript file?

- - - Updated - - -

Is this it?

 
jquery.courseplayer.js
;(function ($, window, document, undefined) {
'use strict';


function DECoursePlayer (element,options) {
var settings = $.extend({
userID: '',
refID: '',
courseID: '',
schoolID: '',
moduleID:'',
isReviewMode:'False',
toRootURL: '',
activityTime:0,
dashboardpath: '',
isAllowToContinueChecking: 'False',
isAllowToContinueCheckingTime:0,
CourseSessionTrackInterval:15
}, options);

var $elt = null;
var $thisPlugin = this;

var SessionCD = '';
var _CourseSessionTrackTimer = null;
var _IsAllowToContinueTimer = null;

var CourseSessionTrackPing = function(dfd){
$.ajax({
type: "GET",
url:settings.toRootURL+"wsrest/player.svc/"+settings.userID+"/"+settings.refID+"/course/"+settings.schoolID+"/"+settings.courseID+"/session-track/ping/"+SessionCD,
contentType: "application/json",
dataType: "json",
cache: false,
success: function (result){
_CourseSessionTrackTimer = setTimeout(function () { CourseSessionTrackPing(); }, settings.CourseSessionTrackInterval*1000);
return true;
},
complete: function(){
if (dfd)
dfd.resolve();
}
});
}
var CourseSessionTrackingStart = function(dfd){
SessionCD = (settings.isReviewMode=='True')?'REVIEW':'COURSE';
$.ajax({
type: "GET",
url:settings.toRootURL+"wsrest/player.svc/"+settings.userID+"/"+settings.refID+"/course/"+settings.schoolID+"/"+settings.courseID+"/session-track/start/"+SessionCD,
contentType: "application/json",
dataType: "json",
cache: false,
success: function (result){
_CourseSessionTrackTimer = setTimeout(function () { CourseSessionTrackPing(); }, settings.CourseSessionTrackInterval*1000);
return true;
},
complete: function(){
if (dfd)
dfd.resolve();
}
});
}
var CourseSessionTrackingEnd = function(dfd){

$.ajax({
type: "GET",
url:settings.toRootURL+"wsrest/player.svc/"+settings.userID+"/"+settings.refID+"/course/"+settings.schoolID+"/"+settings.courseID+"/session-track/end/"+SessionCD,
contentType: "application/json",
dataType: "json",
cache: false,
success: function (result){
clearTimeout(_CourseSessionTrackTimer);
clearTimeout(_IsAllowToContinueTimer);
return true;
},
complete: function(){
if (dfd)
dfd.resolve();
}
});
}

//Y.K. check state machine && kicked him out to Dashboard if it is locked
var GetAllowToContinue = function (dfd) {
$.ajax({
type: "GET",
url: settings.toRootURL + "wsrest/player.svc/" + settings.userID + "/" + settings.refID + "/course/" + settings.schoolID + "/" + settings.courseID + "/isallowtocontinue",
contentType: "application/json",
dataType: "json",
cache: false,
success: function (result) {

if (result.Commands && result.Commands[0].__type == 'ExitPlayerCmd') {

$('.courseplayer').block({ message: $("<img src='/forum/" + settings.toRootURL + "img/icons/loading.gif' alt='' height='32' width='32' />") });
$.when($.Deferred(function (dfd) { $('.courseplayer').DECoursePlayer('on-player-exit', dfd); }))
.then(function () {
window.location.replace(settings.dashboardpath + '?refID=' + settings.refID);
});

return false;
} else
_IsAllowToContinueTimer = setTimeout(function () { GetAllowToContinue(); }, settings.isAllowToContinueCheckingTime * 60000);

return true;
},
complete: function () {
if (dfd)
dfd.resolve();
}
});
}

this.OnPlayerExit = function(dfd){

CourseSessionTrackingEnd(dfd);
};



var ActivityTimerStart = function(){
if(settings.activityTime>0) //setup activity time on whole CoursePlayer
{
$(document).bind("idle.idleTimer", function(){

$.when($.Deferred(function(dfd){$('.courseplayer') .DECoursePlayer('on-player-exit',dfd);}))
.then(function(){
window.location.replace(settings.dashboardpath+'?r efID='+settings.refID);
});
});
$(document).bind("active.idleTimer", function(e){
//don't do nothing
});
var timemillisecond=settings.activityTime*60000;
$.idleTimer(timemillisecond);
}
}


this.OnTimerActivityStop = function(dfd){

$.idleTimer('destroy');
};

this.OnTimerActivityStart = function(dfd){

ActivityTimerStart();
};


var init = function ($e)
{
$elt = $e;
CourseSessionTrackingStart();
ActivityTimerStart();

if (settings.isAllowToContinueChecking == 'True')
_IsAllowToContinueTimer = setTimeout(function () { GetAllowToContinue(); }, settings.isAllowToContinueCheckingTime*60000);
}

//initialize plugin.
init($(element));
};

var _pluginName = 'DECoursePlayer';
$.fn[_pluginName] = function(options,args){
if (options && typeof(options) == 'string') {

switch(options){
case 'on-player-exit':
return $(this).data('pl_'+_pluginName).OnPlayerExit(args) ;
case 'on-activitytimer-stop':
return $(this).data('pl_'+_pluginName).OnTimerActivitySto p(args);
case 'on-activitytimer-start':
return $(this).data('pl_'+_pluginName).OnTimerActivitySta rt(args);

}
}

return this.each(function(){
if (! $(this).data('pl_'+_pluginName)){
$(this).data('pl_'+_pluginName, new DECoursePlayer(this,options,args));
}
});
}


//special external function fore process CoursePlayer FeedBack ajax calls with all parametrs
$.fn.SubmitFeedBack = function ($context) {

var UserMessage = '';
var ItemID = '';
var SlideID = '';


var $primaryFeedbackDropdown = $context.primaryFeedbackDropdown;
var _primaryFeedbackDropdownValue = $primaryFeedbackDropdown.find('option:selected').v al();
ItemID+=_primaryFeedbackDropdownValue;

var $secondaryFeedbackDropdown = $context.secondaryFeedbackDropdown;
var _secondaryFeedbackDropdownValue = $secondaryFeedbackDropdown.find('option:selected') .val();
ItemID+='-'+_secondaryFeedbackDropdownValue;


var $formData = $context.formData;
for (var key in $formData) {
UserMessage=$formData[key];
}

var $ItemCollections = $("#ItemsCollection");
var $numrelated=$('#ItemsCollection > li:visible');
if($numrelated.length>0) SlideID=$numrelated.data("slideid");


var eqDocData = {};
eqDocData.ID=$context.options.docID;
eqDocData.SchoolID = $context.options.schoolID;
eqDocData.CourseID = $context.options.courseID;
eqDocData.ModuleID = $context.options.moduleID;
eqDocData.TopicID = $context.options.topicID;
eqDocData.CourseMode = $context.options.courseMode;
eqDocData.UserMessage = UserMessage;

if(SlideID!=undefined&&SlideID!='')
{
eqDocData.SlideID=SlideID;
eqDocData.SlideSequence=$('#currslideTitle').text( );
}

eqDocData.ItemID=ItemID;
eqDocData.UserAgent = 'PLATFORM:'+navigator.platform +' OSCPU:'+navigator.oscpu+' USERAGENT:'+navigator.userAgent;


$.ajax({
type: "POST",
url: $context.options.toRootURL + 'wsrest/player.svc/' + $context.options.userID + '/' + $context.options.refID + '/feedback/submit',
contentType: "application/json; charset=utf-8",
dataType: "json",
data: JSON.stringify(eqDocData),
cache: false,
success: function (result) {},
error: function () { }
});



};




})(jQuery, window, document);



Bump. Deadass I'll pay someone $10 to figure this out.
Quote Originally Posted by Spencar View Post
Bump. Deadass I'll pay someone $10 to figure this out.
Send you a pm.
Posts 110 of 10 · Page 1 of 1

Post a Reply

Similar Threads

Tags for this Thread

None

Need help?