![Software Software](https://freesoft.ru/storage/images/85/843/84224/84224_normal.png)
![Gallery Gallery](/uploads/1/2/6/3/126357092/638704761.png)
Softlookup MAC software Archive. Gallery Grabber QED 1.3.3 - Download Gallery Mage 2.5.0 - Download Gallery Magic 1.0 - Download Gallery Monger 0.93 - Download. GameTracker Lite 1.3.3 - Download Gamleschule - Download Gamma Brothers 1.03 - Download Gamma Control 2.2 - Download. See: Example Galleries for more information about these types of gallery. Special Supported Websites. Gallery Grabber QED 2 also has special support for certain websites that don't conform to the layout of a standard gallery. Here we list some of the sites that work with Gallery Grabber QED due to.
Gallery Grabber Qed 1.3.3 Free
Gallery Grabber Qed 1.3.3 2
- // @name e-hentai.org grabber 1.3.4 2013-08-05
- // @namespace 2f06d1a9-e5ba-4491-b5d6-862280fa5abd
- // @description Grabs image links from e-hentai.org and exhentai.org http://p.pomf.se/3278 http://userscripts-mirror.org/scripts/show/153546.html
- // @downloadURL https://userscripts.org/scripts/source/153546.user.js
- // @updateURL https://userscripts.org/scripts/source/153546.meta.js
- // @include *://g.e-hentai.org/g/*
- // @grant GM_addStyle
- // /UserScript
- //Usage:
- // Visit a gallery on exhentai.org or e-hentai.org, a new button will be added on the righthand toolbar named 'Image Links (begin)'.
- // Click this to start the grabbing process, progress is tracked between the brackets.
- // The grabber will fetch all image links and put them in a hidden div right after the 'Image Links' button, wait for it to complete.
- // Using DownThemAll: Right click 'Image Links' and select 'DownThemAll!'. *text* for filename and *title*.*ext* for pagenumbered.
- //
- // These websites try to prevent automated downloading by limiting how quickly you can view the pages, adjust the options below to adjust the delay between page fetches.
- //Changelog
- //Version 1.3.4
- // Fixed the script when 'large image thumbnails' is enabled, thanks kitsame!
- //
- // Checks for originals if available
- //Version 1.3.2
- //
- // Recoded everything.
- // Does not autocontinue on error, user needs to click again to continue.
- // Added neat debug overlay displaying extended information.
- //
- // Fixed meta data for auto updates.
- //Version 1.2
- // Detects all errors and will retry if it can.
- // Fixed for filenames with spaces in it.
- //Version 1.1
- // Added proper error handling, will try to continue after a failure.
- //
- var options ={
- delay:1100,
- // Mouse over the ui stuff to display some internal data
- // Fetch originals if available (NOTE: DOES NOT WORK PROPERLY YET!)
- };
- //------------------------------------------------
- {
- this.div= document.createElement('div');
- this.div.innerHTML= html;
- // Add style
- GM_addStyle('#ehg { position:relative; color:#5C0D11; } #ehg a { cursor:pointer; } #ehg p.d { display:none; position:absolute; top:100%; border:2px solid #DFDFDF; background:#F8F8F8; padding:8px; min-width:350px; } #ehg>ul { display:none; }');
- if( options.debug) GM_addStyle('#ehg:hover p.d { display:block; } #ehg p.d:empty { display:none; }');
- // If auto, will automatically grab links on load
- this.div.querySelector('a').addEventListener('click',function(e){ grab.click();});
- }
- gui.prototype.progress=function( desc )
- var p =this.div.querySelector('.c');
- {
- this.finished();
- p.parentNode.title= desc;
- }
- gui.prototype.addlink=function( data )
- var a = document.createElement('a');
- a.appendChild( document.createTextNode(data.filename));
- a.title=(function(s,n){while(s.length<n)s='0'+s;return s;})('+data.page,Math.floor(1+Math.log(data.pagecount)/Math.log(10)));
- li.appendChild( a );
- ul.appendChild( li );
- // Output debug information
- {
- for(var i in data )
- if( data.hasOwnProperty( i ))
- }
- d.innerHTML= s;
- // Play finished sound
- {
- if( audio && options.finished)
- audio.src= options.finished;
- }
- //------------------------------------------------
- {
- // Create the ui
- var html ='<p><img src='data:image/gif;base64,R0lGODlhBQAHALMAAK6vr7OztK+urra2tkJCQsDAwEZGRrKyskdHR0FBQUhISP///wAAAAAAAAAAAAAAACH5BAEAAAsALAAAAAAFAAcAAAQUUI1FlREVpbOUSkTgbZ0CUEhBLREAOw%3D%3D'> <a>Image Links (<span>begin</span>)</a><br><span></span></p><p></p><audio></audio><ul></ul>';
- // Adjust the page
- el.parentNode.insertBefore(this.gui.div, el );
- document.querySelector('#gright').style.height='inherit';
- // Extract information from the page with regex
- {
- // Check if we get the error page
- if( m = re.exec(html))
- out.strike= parseInt(m[1]);
- else
- // The next button
- re =/<a [^>]*href='([^']*)'><img src='[^']*/n.png'/;
- {
- }
- re =/src='(http://d{1,3}.d{1,3}.d{1,3}.d{1,3}[^']*)'/;
- {
- // Fetch the file from the url
- out.linkfile=/([^/#?]*)[^/]*$/.exec(out.link)[1];
- if( out.linkfile'image.php')
- out.linkfile=/n=([^&=/]*)/.exec(out.link)[1];
- // Get page numbers
- re =/<span>(d+)</span> / <span>(d+)</span>/;
- {
- out.pagecount= parseInt(m[2]);
- out.pagevalid=( out.page>0&& out.page<=out.pagecount);
- // File information
- re =/<div>([^<]*?) :: (d+) x (d+) :: ([^B]*B)</div>/;
- {
- out.filesize= m[4];
- }
- re =/<a [^>]*href='([^']*)'[^>]*>Download original (d+) x (d+) ([^B]*B) source</a>/;
- {
- out.imgsize=[ parseInt(m[2]), parseInt(m[3])];
- out.original=true;
- }
- }
- {
- this.gui.debug( data );
- {
- this.current= data.next;
- this.gui.addlink( data );
- this.gui.progress( data );
- if( data.page<data.pagecount)
- var self =this;
- this.timer= setTimeout(function(){ self.fetch(data.next);}, options.delay);
- }
- {
- }
- this.data= data;
- ehgrabber.prototype.error=function( data )
- ++this.failures;
- // Update the gui with an error message
- if(!data )
- // Some connection error
- }
- {
- if( data.strike!undefined) msg ='strike '+data.strike;
- elseif( data.linkfile'509s.gif') msg ='bandwidth';
- elseif( data.linkfile'403.gif') msg ='forbidden';
- // The actual filename & filename advertised don't match
- elseif( data.linkfile&& data.linkfile!=data.filename) msg ='mismatch';
- else msg ='parser';
- this.gui.progress( msg );
- // Fetching is now paused, must click again to continue!
- ehgrabber.prototype.fetch=function( url )
- if(!url )
- this.error('gallery');
- }
- var self =this;
- GM_xmlhttpRequest({
- url: url,
- 'User-Agent': window.navigator.userAgent,
- 'Cookie': document.cookie,
- onload:function(resp){ self.process(resp.responseText);},
- });
- ehgrabber.prototype.click=function()
- if(this.timer)
- if(this.current)
- this.fetch(this.current);
- else
- // Find the first linked image on this gallery
- b = document.querySelector('#gdt>.gdtl a');
- }