A basic outline on seive configuration in Imagus—based on previous posts by developer, with additions based on own usage.
Before it's sent to matching, every URL has its protocol and subdomain removed using the following regex:
/^https?:\/\/(?:www\.)?/
This is to allow the use of ^
. If you don't start to
with a protocol, it will be readded later. For example, the url https://some.url/thumbnail.jpg
will be sent to the seive as some.url/thumbnail.jpg
.
Regex match expression applied to the href
attribute of a link (anchor tag).
Replacement.
Only active when res
is set (next parameter). Generates a URL for res
instead of using the link or image address.
Regex match expression.
If there is no way to get the larger image address with link
or img
, this will load the page (if url
parameter is not set, then the link or image address is used, otherwise the url
replace) in background and will parse the content, and match the image URL.
res
has different effects based on input:
-
Regexp: First group from the match will be the full image URL.
-
Regexp - Multiple groups: Starting with the second group, captures will be concatenated to be used as caption.
-
Second Line Additional Regexp: First group from the second regex match will be the caption.
JavaScript can be evaluated by beginning with a colon and newline, like so:
:
A $
variable will be available in that piece of code, which holds the resolved content, including the $._
property.
Return Values:
- Falsy values: Triggers the yellow spinner.
- String: Resolved URL.
- URL + Caption Array
[URL, caption]
- Array of URL + Caption arrays: Gallery
Regex matching the src
attribute of an IMG
tag or style (eg. background-image: url(thumbnail)
) for any elements.
to
can have multiple lines, every one of them will be converted to a result URL.
If #
is the first character in a line then it marks the URL as hi-res.
If #
is not the first then it may be followed by space separated strings closed by a #
sign again. This will generate URLs for every variant. E.g. //some.url/path/full-image.#jpg png gif#
, which will generate three URLs, testing them in order.
Also, at the end of the line you can add #{media_extension}
, so the the extension will recognize it as video or audio, instead of image (default). E.g., https://some.url/path/without/extension?id=13#mp4
The :\n
works in here as well (but the $ value there will have only the matched groups).
Javascript RegExp can be used with the builtin constructor:
RegExp('yourRegexInput')
The conversion happens with a simple URL.replace(yourRegex, rule.to)
.
Notes.
It will recheck the result, e.g., a Google image link may point to a twitter thumbnail, and if you enable loop on Google images, then the resolved twitter thumbnail will be checked again, so it can get the larger image.
Some providers, like Bing, Yandex, etc. puts the encoded image address as a parameter in the URL.
if both link
and res
or img
are set, then img
will be preferred.
Taken from replies of this post.
to
can have multiple lines, every one of them will be converted to a result URL.
If #
is the first character in a line then it marks the URL as hi-res.
If #
is not the first then it may be followed by space separated strings closed by a #
sign again. This will generate URLs for every variant. E.g. //some.url/path/full-image.#jpg png gif#
, which will generate three URLs, testing them in order.
Also, at the end of the line you can add #{media_extension}
, so the the extension will recognize it as video or audio, instead of image (default). E.g., https://some.url/path/without/extension?id=13#mp4
Javascript RegExp is used (obviously). In the code it's simply RegExp('yourRegexInput')
. The conversion happens with a simple URL.replace(yourRegex, rule.to)
.
res
has different formats. If you simply write a regexp there, then the first group from the match will be the full image URL. If you have multiple groups, then starting with the second they will be concatenated to be used as caption. If you write a second regexp in a new line, then it's first group from the match will be the caption.
If res
starts with :\n
(so colon plus new line) then you can write JavaScript code there, and do whatever you want. A $
variable will be available in that piece of code, which holds the resolved content for example ($._
). From res
you can return null
, this will make the spinner yellow. Other falsy values will hide the spinner. You can return a string, that will be the URL. An array with two members [URL, caption]. An array with multiple of the previous is an album.
The :\n
works in to
as well (but the $ value there will have only the matched groups).
From every URL, before it's sent to matching, the https?://(www\.)?
part is removed (and added to the result URL later, if you don't start to
with a protocol). So, you're basically matching some.url/thumbnail.jpg
instead of https://some.url/thumbnail.jpg
. The reason for this is to allow the use of ^
(which you already noticed).
Well, I'm the lazy kind who doesn't write documentation. I've always wanted to though...
link
matches the href
attributes from a
tags (so, something that is a page, and not a direct media file/thumbnail). img
matches src
from img
tag (some something that is known to be an image file).
If res
is used then link
will be resolved. If you don't want to use link
you can use the url
parameter to modify the URL which will be resolved.
Possible (basic) combinations: (link
or img
) > to
(both can be set at the same time and they would resolve to to
, link
with higher priority), (img
or img
) (> url
)? > res
, if link
, res
, img
, and to
is set at the same time, then link
will be paired with res
, and img
with to
.
The checkboxes beside the link
and img
have tooltips. The case-insensitiveness applies to the regex, the loop and decodeURI applies to the result URL.
I will, when the time comes. Though, the basics probably won't change much, so...
Practically regular expressions is the only knowledge , need to have (and a bit Javascript and HTML.). Parameters:
Regex, working on "href" attribute of a link (anchor tag).
replacement, it has meaning only when 'res. (next parameter) is set. Generates a URL for 'res. if , need other, instead of link or image address.
regex match, if there is no way to get the larger image address with link' or Img", this will load the page (if Lir parameter is not set, then the link or image address is used, otherwise the .urP replace) in background and will parse the content, and match the image URL.
Regex, in for src
attribute of an IMG
tag or style, background-image: url(thumbnail)
for any elements.
(Multiple) replacement or function, a link or image address will be replaced this based on link or img.
Notes.
It will recheck the result, e.g., a Google image link may point to a twitter thumbnail, and if you enable loop on Google images, then the resolved twitter thumbnail will be checked again, so it can get the larger image.
Some providers, like Bing, Yandex, etc. puts the encoded image address as a parameter in the URL.
if both link
and res
or img
are set, then img
will be preferred.
Rules dont' belong to specific sites, so all rules will be checked on any site when you hover your mouse on a link or thumbnail-like object. If no link
parameter set/matched, and img
is present, then img
will be used on link address as well (this is when someone links to a thumbnail image), so no need to set the same value for link
and img
, it's enough for the img
(at least, this feature will be introduced) in v0.8.10
).
Corrections and addtional information welcome (especially from dev).