All of the GM_ functions no longer work in the latest version of Greasemonkey, as forced by Mozilla's recent changes. But you can replace them with new GM. functions that should get the job done. I'm a layman myself, but you can find more information on how to do this here: http://www.greasespot.net/
On Sunday, 26 November 2017 16:20:42 UTC+1, Tibor wrote: > > I wrote a script to make some changes on a webpage but can not use > GM_setValue and GM_getValue. For both the code goes to the undefined > section and writes to cookie instead of using GM_setValue and GM_getValue > functions. Can you help? > > // ==UserScript== > // @name nCore movie labeler > // @namespace ncoremovielabeler > // @include /^http(s)?://(www.)?ncore\.cc/torrents\.php.*/ > // @grant GM_getValue > // @grant GM_setValue > // ==/UserScript== > > > var lang_hun = new Array(); > var lang = lang_hun; > lang_hun['hidehiddenmovies'] = '[Elt\u00FCntetettek filmek > elrejt\u00E9se]'; > lang_hun['showhiddenmovies'] = '[Elt\u00FCntetettek filmek > felfed\u00E9se]'; > lang_hun['info'] = '[Inf\u00F3]'; > lang_hun['numberofmovies'] = 'Adatb\u00E1zisban l\u00E9v\u0151 filmek > sz\u00E1ma: '; > lang_hun['clearlist'] = '[Elt\u00FCntetett filmek list\u00E1j\u00E1nak > t\u00F6rl\u00E9se]'; > lang_hun['hide'] = ' -> Elt\u00FCntet'; > lang_hun['show'] = ' -> L\u00E1that\u00F3v\u00E1 tesz'; > lang_hun['clearconfirm'] = 'Val\u00F3ban t\u00F6r\u00F6lni akarod a > list\u00E1t?'; > lang_hun['ncoremovielabelerdisabled'] = 'nCore movie labeler erre az > oldalra kikapcsolva'; > > var imgdatabase64 = "data:image/gif;base64,"; > > var disablencoremovielabeler = getRequestParameter( > 'disablencoremovielabeler'); > > var imdbprefix = "http://hungarian.imdb.com/title/"; > > var showhiddenlabeldata = readCookie("showhiddenlabeldata"); > if (showhiddenlabeldata==null){ > showhiddenlabeldata = ""; > } > > var browser = xpath( > "//body/div/div/div/div[@id='main_all']/div/div/div[@class='lista_all']/div" > ); > for (var i = 0; i < browser.snapshotLength; i++) { > browserdiv = browser.snapshotItem(i); > if (i==0){ > browsertitle = browserdiv.innerHTML; > browserdiv.innerHTML = ""; > span = document.createElement('span'); > span.setAttribute("style", "float: right;margin-right:20px;"); > > showinfo = document.createElement('a'); > showinfo.href = "javascript: ;"; > showinfo.addEventListener("click", function(){ info(); }, 0); > showinfo.innerHTML = F('info'); > > title = document.createTextNode(browsertitle); > > if (disablencoremovielabeler=='true'){ > spandisabled = document.createElement('span'); > spandisabled.innerHTML = '<font style="color:red;">'+F( > 'ncoremovielabelerdisabled')+'</font> '; > > span.appendChild(spandisabled); > }else{ > spanavarage = document.createElement('span'); > spanavarage.innerHTML = ''; > > clearLabelsImage = document.createElement('a'); > clearLabelsImage.href = "javascript: ;"; > clearLabelsImage.addEventListener("click", function(){ > deleteTitles(); }, 0); > clearLabelsImage.innerHTML = F('clearlist'); > > showhiddens = document.createElement('a'); > showhiddens.href = "javascript: ;"; > showhiddens.addEventListener("click", function(){ > showhiddenlabeldata=="true" ? hideHiddenTitles() : showHiddenTitles(); }, > 0); > showhiddens.innerHTML = showhiddenlabeldata=="true" ? F( > 'hidehiddenmovies') : F('showhiddenmovies'); > > span.appendChild(spanavarage); > span.appendChild(clearLabelsImage); > span.appendChild(showhiddens); > } > > span.appendChild(showinfo); > browserdiv.appendChild(span); > browserdiv.appendChild(title); > break; > } > } > > if (disablencoremovielabeler!='true'){ > var allimdbs = xpath("//div/div/div/div/div/a[@class='infolink' and > @target='_blank' and contains(@href,'"+imdbprefix+"')]"); > > var alltitles = readCookie("labeldata"); > if (alltitles==null){ > alltitles = ""; > } > > var sum = 0; > var hiddens = 0; > > for (var i = 0; i < allimdbs.snapshotLength; i++) { > sum++; > > imdbanchor = allimdbs.snapshotItem(i); > titlenum = getTitleNumFromIMDBAnchor(imdbanchor); > > if (alltitles.indexOf(titlenum)==-1){ > addHideAnchor(imdbanchor); > }else{ > hiddens++; > if (showhiddenlabeldata == "true"){ > addShowHiddenAnchor(imdbanchor); > }else{ > hideonemovie(imdbanchor); > } > } > } > > spanavarage.innerHTML = hiddens+'/'+sum+' '; > } > > function getTitleNumFromIMDBAnchor(imdbanchor){ > href = imdbanchor.getAttribute("href"); > titlenum = href.substring(href.indexOf(imdbprefix)+imdbprefix.length); > titlenum = titlenum.substring(0,titlenum.length-1); > return titlenum; > } > > function addHideAnchor(imdbanchor){ > var image = document.createElement('a'); > image.href = "javascript: ;"; > // image.setAttribute("style","color: #FFA515;"); > image.setAttribute("class","highlight"); > image.setAttribute('imdbtitle', getTitleNumFromIMDBAnchor( > imdbanchor)); > image.addEventListener("click", function(){ appendTitle(this); }, 0); > image.innerHTML = F('hide'); > > imdbanchor.parentNode.insertBefore(image, imdbanchor.nextSibling); > } > > function addShowHiddenAnchor(imdbanchor){ > var image = document.createElement('a'); > image.href = "javascript: ;"; > image.setAttribute("style","color: #3399FF;"); > image.setAttribute('imdbtitle',getTitleNumFromIMDBAnchor(imdbanchor)); > image.addEventListener("click", function(){ removeTitle(this); }, 0); > image.innerHTML = F('show'); > > imdbanchor.parentNode.insertBefore(image, imdbanchor.nextSibling); > } > > function hideonemovie(imdbanchor){ > /* Last version > musthide = > imdbanchor.parentNode.parentNode.parentNode.parentNode.parentNode; > prev = musthide.previousSibling.previousSibling; > next = musthide.nextSibling.nextSibling; > musthideParent = musthide.parentNode; > > musthideParent.removeChild(musthide); > musthideParent.removeChild(prev); > musthideParent.removeChild(next); > */ > musthide = imdbanchor.parentNode.parentNode.parentNode.parentNode. > parentNode.parentNode.parentNode; > prev = musthide.previousSibling.previousSibling; > next = musthide.nextSibling.nextSibling; > next2 = musthide.nextSibling.nextSibling.nextSibling.nextSibling; > musthideParent = musthide.parentNode; > > musthideParent.removeChild(musthide); > musthideParent.removeChild(prev); > musthideParent.removeChild(next); > musthideParent.removeChild(next2); > } > > function appendTitle(obj){ > imdbtitle = obj.getAttribute('imdbtitle'); > cookiedata = readCookie("labeldata"); > if (cookiedata==null || cookiedata==""){ > cookiedata = ""; > }else{ > cookiedata = cookiedata + '|'; > } > cookiedata = cookiedata + imdbtitle; > createCookie("labeldata",cookiedata,3600); > > if (showhiddenlabeldata == "true"){ > var delo = xpath("//div/div/div/div/div/a[@imdbtitle='"+imdbtitle+ > "']"); > for (var i = 0; i < delo.snapshotLength; i++) { > delobj = delo.snapshotItem(i); > addShowHiddenAnchor(delobj.previousSibling); > delobj.parentNode.removeChild(delobj); > } > }else{ > hideonemovie(obj.previousSibling); > > var del = xpath("//div/div/div/div/div/a[@class='infolink' and > @target='_blank' and contains(@href,'"+imdbprefix+imdbtitle+"')]"); > for (var i = 0; i < del.snapshotLength; i++) { > dela = del.snapshotItem(i); > hideonemovie(dela); > } > } > } > > function removeTitle(obj){ > imdbtitle = obj.getAttribute('imdbtitle'); > cookiedata = readCookie("labeldata"); > if (cookiedata==null || cookiedata==""){ > cookiedata = ""; > }else{ > titles = cookiedata.split('|'); > cookiedata = ""; > for (var i=0;i<titles.length;i++){ > if (titles[i] != imdbtitle){ > if (cookiedata.length>0){ > cookiedata = cookiedata + '|'; > } > cookiedata = cookiedata + titles[i]; > } > } > } > createCookie("labeldata",cookiedata,3600); > > var deloa = xpath("//div/div/div/div/div/a[@imdbtitle='"+imdbtitle+ > "']"); > for (var i = 0; i < deloa.snapshotLength; i++) { > delobja = deloa.snapshotItem(i); > addHideAnchor(delobja.previousSibling); > delobja.parentNode.removeChild(delobja); > } > } > > function deleteTitles(){ > if (confirm(F('clearconfirm'))){ > eraseCookie("labeldata"); > window.location.reload(true); > } > } > > function showHiddenTitles(){ > createCookie("showhiddenlabeldata","true",3600); > window.location.reload(true); > } > > function hideHiddenTitles(){ > createCookie("showhiddenlabeldata","false",3600); > window.location.reload(true); > } > > function info(){ > var current = readCookie("labeldata"); > var numberofmovies = current.length-current.replace(/\|/gi,'').length+ > 1; > alert(F('numberofmovies')+numberofmovies); > } > > function createCookie(name, value, days){ > if (typeof GM.setValue == "undefined"){ > if (days){ > var date = new Date(); > date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); > var expires = "; expires=" + date.toGMTString(); > }else var expires = ""; > confirm("cookie1"); > document.cookie = name + "=" + value + expires + "; path=/"; > }else GM.setValue(name, value); > } > > function readCookie(name){ > if (typeof GM.getValue == 'undefined'){ > var ca = document.cookie.split(';'); > var nameEQ = name + "="; > for(var i = 0; i < ca.length; i++) { > var c = ca[i]; > while (c.charAt(0) == ' ') c = c.substring(1, c.length); > if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, > c.length); > } > return null; > }else return GM.getValue(name, null); > } > > function eraseCookie(name){ createCookie(name, "", -1); } > > function xpath(query) { > return document.evaluate(query, document, null, XPathResult. > UNORDERED_NODE_SNAPSHOT_TYPE, null); > } > > function F(key){ > return lang[key]; > } > > function getRequestParameter( name ) > { > name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); > var regexS = "[\\?&]"+name+"=([^&#]*)"; > var regex = new RegExp( regexS ); > var results = regex.exec( window.location.href ); > if( results == null ) > return ""; > else > return results[1]; > } > > > > > - greasemonkey (0) 1 -- You received this message because you are subscribed to the Google Groups "greasemonkey-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/greasemonkey-users. For more options, visit https://groups.google.com/d/optout.
