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
}
} ]