maxurl
1.0.0
英语|葡萄牙(巴西)
图像最大URL是一个程序,它将尝试查找图像和视频的较大/原始版本,通常是通过替换URL模式。
它目前包含对> 9000个硬编码网站的支持(sites.txt中的完整列表),但它还支持许多通用引擎(例如WordPress和Mediawiki),这意味着它也可以适用于许多其他网站。
它目前被发布为:
社区:
#image-max-url:tedomum.net )该扩展程序当前不可用其他浏览器的附加商店(例如Chrome和Microsoft Edge),但是如果您希望使用扩展版本而不是用户标题,则可以使用此存储库。
任何贡献都将不胜感激!如果您有任何错误报告,功能请求或您想要支持的新网站,请在此处提出问题。
如果您没有GitHub帐户,请随时使用上面的一个社区链接或直接与我联系。
如果您想为存储库本身(代码贡献,翻译等)做出贡献,请检查贡献rathing.md以获取更多信息。
如上所述,usercript.user.js也充当节点模块。
var maximage = require ( './userscript.user.js' ) ;
maximage ( smallimage , {
// If set to false, it will return only the URL if there aren't any special properties
// Recommended to keep true.
//
// The only reason this option exists is as a small hack for a helper userscript used to find new rules,
// to check if IMU already supports a rule.
fill_object : true ,
// Maximum amount of times it should be run.
// Recommended to be at least 5.
iterations : 200 ,
// Whether or not to store to, and use an internal cache for URLs.
// Set this to "read" if you want to use the cache without storing results to it.
use_cache : true ,
// Timeout (in seconds) for cache entries in the URL cache
urlcache_time : 60 * 60 ,
// List of "problems" (such as watermarks or possibly broken image) to exclude.
//
// By default, all problems are excluded.
// You can access the excluded problems through maximage.default_options.exclude_problems
// By setting it to [], no problems will be excluded.
//exclude_problems: [],
// Whether or not to exclude videos
exclude_videos : false ,
// This will include a "history" of objects found through iterations.
// Disabling this will only keep the objects found through the last successful iteration.
include_pastobjs : true ,
// This will try to find the original page for an image, even if it requires extra requests.
force_page : false ,
// This allows rules that use 3rd-party websites to find larger images
allow_thirdparty : false ,
// This is useful for implementing a blacklist or whitelist.
// If unspecified, it accepts all URLs.
filter : function ( url ) {
return true ;
} ,
// Helper function to perform HTTP requests, used for sites like Flickr
// The API is expected to be like GM_xmlHTTPRequest's API.
// An implementation using node's request module can be found in reddit-bot/dourl.js
do_request : function ( options ) {
// options = {
// url: "",
// method: "GET",
// data: "", // for method: "POST"
// overrideMimeType: "", // used to decode alternate charsets
// headers: {}, // If a header is null or "", don't include that header
// onload: function(resp) {
// // resp is expected to be XMLHttpRequest-like object, implementing these fields:
// // finalUrl
// // readyState
// // responseText
// // status
// }
// }
} ,
// Callback
cb : function ( result ) {
if ( ! result )
return ;
if ( result . length === 1 && result [ 0 ] . url === smallimage ) {
// No larger image was found
return ;
}
for ( var i = 0 ; i < result . length ; i ++ ) {
// Do something with the object
}
}
} ) ;结果是包含可能在使用返回图像的对象的列表:
[ {
// The URL of the image
url : null ,
// Whether or not this URL is a video
video : false ,
// Whether it's expected that it will always work or not.
// Don't rely on this value if you don't have to
always_ok : false ,
// Whether or not the URL is likely to work.
likely_broken : false ,
// Whether or not the server supports a HEAD request.
can_head : true ,
// HEAD errors that can be ignored
head_ok_errors : [ ] ,
// Whether or not the server might return the wrong Content-Type header in the HEAD request
head_wrong_contenttype : false ,
// Whether or not the server might return the wrong Content-Length header in the HEAD request
head_wrong_contentlength : false ,
// This is used in the return value of the exported function.
// If you're using a callback (as shown in the code example above),
// this value will always be false
waiting : false ,
// Whether or not the returned URL is expected to redirect to another URL
redirects : false ,
// Whether or not the URL is temporary/only works on the current IP (such as a generated download link)
is_private : false ,
// Whether or not the URL is expected to be the original image stored on the website's servers.
is_original : false ,
// If this is true, you shouldn't input this URL again into IMU.
norecurse : false ,
// Whether or not this URL should be used.
// If true, treat this like a 404
// If "mask", this image is an overlayed mask
bad : false ,
// Same as above, but contains a list of objects, e.g.:
// [{
// headers: {"Content-Length": "1000"},
// status: 301
// }]
// If one of the objects matches the response, it's a bad image.
// You can use maximage.check_bad_if(bad_if, resp) to check.
// (resp is expected to be an XHR-like object)
bad_if : [ ] ,
// Whether or not this URL is a "fake" URL that was used internally (i.e. if true, don't use this)
fake : false ,
// Headers required to view the returned URL
// If a header is null, don't include that header.
headers : { } ,
// Additional properties that could be useful
extra : {
// The original page where this image was hosted
page : null ,
// The title/caption attached to the image
caption : null
} ,
// If set, this is a more descriptive filename for the image
filename : "" ,
// A list of problems with this image. Use exclude_problems to exclude images with specific problems
problems : {
// If true, the image is likely larger than the one inputted, but it also has a watermark (when the inputted one doesn't)
watermark : false ,
// If true, the image is likely smaller than the one inputted, but it has no watermark
smaller : false ,
// If true, the image might be entirely different from the one inputted
possibly_different : false ,
// If true, the image might be broken (such as GIFs on Tumblr)
possibly_broken : false
}
} ]