* Add nilsonlinux/rss-notifier plugin v1.0.0 * fix: correct all validation errors for rss-notifier * Update tags in plugin.toml for rss-notifier * Revise README for RSS Notifier plugin Updated README to reflect plugin name and improved clarity. * Update README.md by removing unnecessary content Removed placeholder text and installation instructions from README. * Update README with plugin details and usage instructions Expanded README to include plugin details, usage instructions, and settings configuration. * Traduz README.md para português e atualiza conteúdo Atualiza o README.md com informações em português sobre o plugin RSS/Atom Notifier, incluindo uso, configurações e notas sobre o funcionamento. * Update tags in plugin.toml Removed 'rss' tag from the plugin configuration. * Revise README for RSS Notifier plugin Updated the README to reflect changes in the plugin description, installation instructions, usage details, settings, and dependencies. * Enhance README with plugin details and usage Updated README.md to include detailed plugin features, settings, and usage instructions. * Update README for RSS Utils plugin * Add files via upload * Add xdg-open as a dependency in plugin.toml * Revise README for RSS/Atom Notifier plugin Updated configuration options and usage instructions in README. * Add Brazilian Portuguese translation file * Revise README for clarity and updated instructions Updated README to improve clarity and consistency, including installation and usage instructions. * Add xdg-open as a dependency in README Updated dependencies section to include xdg-open. * Fix formatting of requirements section in README * Add files via upload * feat: add individual item delete option and scrollbar - Implemented the ability to delete individual feed items using an 'X' button. - Added a fixed height scrollbar to the panel list. - Fixed badge synchronization and command communication for the V5 Beta 6 environment. * fix tags e correções de funcionamento * Add dependencies section to plugin.toml * Add files via upload * Enhance README with plugin details Updated README with plugin ID and entries table.
63 lines
1.9 KiB
Luau
63 lines
1.9 KiB
Luau
-- widget.luau
|
|
-- Widget de barra: icone RSS com uma pilula colorida (badge) de itens nao
|
|
-- lidos encostada no lado esquerdo, publicada pelo service via noctalia.state.
|
|
|
|
local unread = 0
|
|
|
|
local function render()
|
|
local children = {}
|
|
|
|
if unread > 0 then
|
|
-- pilula: um container com fundo colorido e cantos arredondados, com o
|
|
-- numero dentro - o mais perto que a API declarativa chega de um "badge"
|
|
table.insert(children, ui.row({
|
|
fill = "primary",
|
|
radius = 8,
|
|
paddingH = 5,
|
|
paddingV = 1,
|
|
align = "center",
|
|
justify = "center",
|
|
}, {
|
|
ui.label({ text = tostring(unread), fontSize = 10, fontWeight = "bold", color = "on_primary" }),
|
|
}))
|
|
end
|
|
|
|
table.insert(children, ui.glyph({ name = "rss", size = 14 }))
|
|
|
|
local container = barWidget.isVertical() and ui.column or ui.row
|
|
barWidget.render(container({ gap = 4, align = "center" }, children))
|
|
|
|
barWidget.setTooltip(unread > 0 and (tostring(unread) .. " novo(s) item(ns) nos feeds") or "Nenhum item novo")
|
|
end
|
|
|
|
noctalia.state.watch("unread", function(value)
|
|
unread = value or 0
|
|
render()
|
|
end)
|
|
|
|
render()
|
|
|
|
function update()
|
|
noctalia.setUpdateInterval(5000) -- so mantem o widget "vivo"; os dados reais vem do state
|
|
end
|
|
|
|
function onClick()
|
|
-- abre/fecha a janelinha com a lista de itens; o proprio painel marca
|
|
-- como lido (zera o badge) quando e aberto, via IPC pro service
|
|
noctalia.togglePanel("nilsonlinux/rss-notifier:list")
|
|
end
|
|
|
|
function onRightClick()
|
|
-- clique direito: forca uma nova checagem imediata dos feeds,
|
|
-- enviando um evento IPC para a entry [[service]] (que e um singleton, alvo "all")
|
|
noctalia.runAsync("noctalia msg plugin nilsonlinux/rss-notifier:fetcher all refresh")
|
|
noctalia.notify("RSS/Atom Notifier", "Atualizando feeds...")
|
|
end
|
|
|
|
function onIpc(event, payload)
|
|
if event == "set" then
|
|
unread = tonumber(payload) or 0
|
|
render()
|
|
end
|
|
end
|