You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#47 landed the filename template engine. {platform}, {type}, {index} and {date} work today. {postId} and {username} render as nothing, because no resolver populates item.meta yet.
The renderer absorbs a missing token along with its separator, so a template naming them degrades to a shorter name rather than a broken one — but two of six advertised tokens being permanently empty is not a finished feature.
Contract
Resolvers attach the structured parts alongside the name they already build:
items.push({
url,type: 'image',filename: id ? `photo_${id}_${index}` : null,// unchanged, still the defaultmeta: {postId: id, username },});
filename stays as-is. It is what an unconfigured user gets, and #47 keeps templates opt-in precisely so an update does not rename anyone's files.
username is only available where the resolver can read it from the DOM or the API response. Leave it unset where it cannot rather than guessing: a wrong username in a filename is worse than a missing one.
Do not set postId on the facebook capture fallback. That store is page-wide and those URLs were not read from the post's own DOM, so an id extracted from one is not reliably this post's.
#47 landed the filename template engine.
{platform},{type},{index}and{date}work today.{postId}and{username}render as nothing, because no resolver populatesitem.metayet.The renderer absorbs a missing token along with its separator, so a template naming them degrades to a shorter name rather than a broken one — but two of six advertised tokens being permanently empty is not a finished feature.
Contract
Resolvers attach the structured parts alongside the name they already build:
filenamestays as-is. It is what an unconfigured user gets, and #47 keeps templates opt-in precisely so an update does not rename anyone's files.Platforms
facebook.js— do this one after Stop the Facebook album walk from emitting one photo twice #45 merges. It rewrites the same item-construction lines, so doing both at once conflicts.instagram.js— hasshortcodein scope.twitter.js— hastweetId.linkedin.js— has the post id.tiktok.js— hasvideoId.bluesky.js— check what it exposes.usernameis only available where the resolver can read it from the DOM or the API response. Leave it unset where it cannot rather than guessing: a wrong username in a filename is worse than a missing one.Do not set
postIdon the facebook capture fallback. That store is page-wide and those URLs were not read from the post's own DOM, so an id extracted from one is not reliably this post's.