Created
November 7, 2012 12:32
-
-
Save adis-io/4031354 to your computer and use it in GitHub Desktop.
Это отрывок кода от расширения для Google Chrome. Расширение позволяет поднимать свои темы вверх по списку, тем самым позволяя привлечь больше потенциальных клиентов.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| var requestTimerId; | |
| var ajaxUrl = 'http://diesel.elcat.kg/index.php?'; | |
| var topicUrl = 'http://diesel.elcat.kg/index.php?showtopic='; | |
| function init() { | |
| console.log('Поехали!'); | |
| startRequest(); | |
| } | |
| function scheduleRequest() { | |
| if (requestTimerId) { | |
| window.clearTimeout(requestTimerId); | |
| } | |
| /*var randomness = Math.random() * 2; | |
| var exponent = Math.pow(2, requestFailureCount); | |
| var multiplier = Math.max(randomness * exponent, 1); | |
| var delay = Math.min(multiplier * pollIntervalMin, pollIntervalMax); | |
| delay = Math.round(delay);*/ | |
| var delay = 1000*60*5; | |
| requestTimerId = window.setTimeout(startRequest, delay); | |
| } | |
| function startRequest() { | |
| checkArray(); | |
| scheduleRequest(); | |
| } | |
| function checkArray() { | |
| var arr = localStorage.getObject('dup'); | |
| console.log('Проверка данных'); | |
| var date = []; | |
| for (var i = 0, l = arr.length; i < l; i++) { | |
| date[i] = new Date(arr[i].nextUp); | |
| if (Date.now().compareTo(date[i]) == 1 && arr[i].upCount > 0 ) { | |
| var tid = arr[i].topicId; | |
| Auth(tid); | |
| break | |
| } | |
| } | |
| } | |
| function getLS(tid) { | |
| var arr = localStorage.getObject('dup'); | |
| for (var i = 0; i < arr.length; i++) { | |
| if (tid == arr[i].topicId) { | |
| var temp = arr[i]; | |
| break; | |
| } | |
| } | |
| return temp; | |
| } | |
| function parseData(data) { | |
| var parser = new DOMParser(); | |
| var xmlDoc = parser.parseFromString(data,"text/html"); | |
| var body = xmlDoc.getElementsByTagName("body"); | |
| return body; | |
| } | |
| function Auth(tid) { | |
| var tUrl = topicUrl+tid; | |
| var jqxhr = jQuery.ajax({ | |
| dataType: "html", | |
| url: tUrl | |
| }) | |
| jqxhr.done( function(data) { | |
| var doc = parseData(data); | |
| var auth_key = jQuery(doc).find("input[name='auth_key']").eq(0).attr('value'); | |
| var fid = jQuery(doc).find("input[name='f']").attr('value'); | |
| console.log('Тема: #' + tid +' Прошли авторизацию. '); | |
| DelPost(fid, tid, auth_key); | |
| }) | |
| jqxhr.fail( function(error) { | |
| console.log(error.statusText) | |
| }); | |
| }; | |
| function DelPost(fid, tid, auth_key) { | |
| var pid = getLS(tid).lastMsgId; | |
| if (pid != 0) { | |
| var baseData = { act: "Mod", CODE: "04", f: fid, t: tid, p : pid, auth_key: auth_key}; | |
| var jqxhr = jQuery.ajax({ | |
| type: "GET", | |
| data: baseData, | |
| url: ajaxUrl | |
| }); | |
| jqxhr.done( function(data) { | |
| var doc = parseData(data); | |
| var error = jQuery(doc).find(".errorwrap").text(); | |
| if (error) { | |
| console.log('Сообщение не удалено.' ); | |
| } else { | |
| console.log('Сообщение #' + pid + ' удалено'); | |
| }; | |
| NewPost(fid, tid, auth_key) | |
| }); | |
| jqxhr.fail( function(err) { | |
| console.log(err) | |
| }); | |
| } else { | |
| NewPost(fid, tid, auth_key) | |
| } | |
| }; | |
| function NewPost(fid, tid, auth_key) { | |
| var baseData = { act: "Post", CODE: "03", f: fid, t: tid, auth_key: auth_key, Post: "UpMyTopic", enableemo: 'yes'}; | |
| var jqxhr = jQuery.ajax({ | |
| type: "POST", | |
| data: baseData, | |
| dataType: "html", | |
| url: ajaxUrl | |
| }) | |
| jqxhr.done( function(data) { | |
| var doc = parseData(data); | |
| var lpid_url = jQuery(doc).find("div[align='right'] > .postdetails:last").children().attr('href'); | |
| var lpid = getParameterByName(lpid_url, 'p'); | |
| console.log('Новое сообщение создано #' + lpid + ' | ' + Date.now()); | |
| changeLS(tid, lpid); | |
| }) | |
| jqxhr.fail( function(err) { | |
| console.log(err) | |
| }) | |
| }; | |
| function changeLS(tid, last_pid) { | |
| var n = 30; | |
| var nextUp = n.minutes().fromNow(); | |
| var arr = localStorage.getObject('dup'); | |
| for (var i = 0; i < arr.length; i++) { | |
| if (tid == arr[i].topicId) { | |
| arr[i].lastMsgId = last_pid; | |
| arr[i].nextUp = nextUp | |
| arr[i].upCount--; | |
| console.log('Осталось апов - ' + arr[i].upCount) | |
| } | |
| } | |
| localStorage.setObject('dup', arr); | |
| } | |
| function checkForValidUrl(tabId, changeInfo, tab) { | |
| if (tab.url.indexOf(ajaxUrl) > -1 && getParameterByName(tab.url, "showtopic") != "") { | |
| chrome.pageAction.show(tabId); | |
| } | |
| }; | |
| chrome.pageAction.onClicked.addListener( | |
| function(tabId) { | |
| chrome.pageAction.setPopup(tabId) | |
| } | |
| ); | |
| // Listen for any changes to the URL of any tab. | |
| chrome.tabs.onUpdated.addListener(checkForValidUrl); | |
| document.addEventListener('DOMContentLoaded', init); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment