I've resisted using these platforms until i realised that what we're doing is about the doing, rather than strictly the end product.

So it makes sense to share it. Patreon's semi-paywall stuff actually makes some of my jobs easier - I can finally share to FB and Tw...Xitter from one push. If I could get the same posts to reliably appear here when they are posted I'd be stoked.

So far the RSS feed bot I tried was meh and I dont want another nickel and dime per month app...t
o support my efforts to get others onto a monthly nickel and dime app.

OH THE IRONY. At the same time, the 21st century is here and the way music works is different so...

Radio's more or less gone. The web is now a collection of 5 sites recycling content from the 20th century or their handpicked owned product.

Podcasting is whatever it is. Streaming services and youtube ad supported are the last vestiges of commercial usage charges and they pay Bupkes. It's grim. Why are we so dang cheerful?

Heh.

No time for DOOM! I have to integrate this bloodsucking app. I mean very reasonable new way of supporting the creators and artists you like. (did I get that right?).

This is all so nuts. Why worry. Beep boop.

Settings6.138MBMemory Usage179msRequest Duration
Theme
Open Button Position
Hide Empty Tabs
Autoshow
Reset to defaults
Joomla! Version5.3.0
PHP Version8.2.26
Identityguest
Response200
Templatet3_bs3_blank
Database
Server
mysql
Version
8.0.36-0ubuntu0.22.04.1
Collation
utf8mb3_unicode_ci
Conn Collation
utf8mb4_0900_ai_ci
$_GET
array:3 [ "catid" => "60" "id" => "3093:integrating-patreon-feed-grrr" "view" => "article" ]
$_POST
[]
$_SESSION
array:1 [ "joomla" => "***redacted***" ]
$_COOKIE
[]
$_SERVER
array:59 [ "PATH" => "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" "CONTENT_LEN...
session
array:3 [ "counter" => 1 "timer" => array:3 [ "start" => 1745380509 "last" => 1745380509...
registry
array:3 [ "data" => [] "initialized" => false "separator" => "." ]
user
array:21 [ "id" => 0 "name" => null "username" => null "email" => null "password" => "***r...
  • afterLoad (105.45KB) (543μs)
  • afterInitialise (1.16MB) (41.63ms)
  • afterRoute (534.38KB) (2.9ms)
  • beforeRenderComponent com_content (54.78KB) (673μs)
  • Before Access::preloadComponents (all components) (104.77KB) (902μs)
  • After Access::preloadComponents (all components) (137.83KB) (5.28ms)
  • Before Access::preloadPermissions (com_content) (1.85KB) (13μs)
  • After Access::preloadPermissions (com_content) (2.09MB) (19.18ms)
  • Before Access::getAssetRules (id:3302 name:com_content.article.3093) (66.65KB) (88μs)
  • After Access::getAssetRules (id:3302 name:com_content.article.3093) (7.38KB) (57μs)
  • afterRenderComponent com_content (987.19KB) (54.93ms)
  • afterDispatch (3.03KB) (354μs)
  • Before Access::preloadPermissions (com_dpcalendar) (251.82KB) (14.34ms)
  • After Access::preloadPermissions (com_dpcalendar) (6.91KB) (5.62ms)
  • Before Access::getAssetRules (id:3131 name:com_dpcalendar.category.90) (440B) (269μs)
  • After Access::getAssetRules (id:3131 name:com_dpcalendar.category.90) (6.03KB) (31μs)
  • afterRender (164.26KB) (32ms)
  • 1 x afterRenderComponent com_content (987.19KB) (30.67%)
    54.93ms
    1 x afterInitialise (1.16MB) (23.24%)
    41.63ms
    1 x afterRender (164.26KB) (17.87%)
    32.00ms
    1 x After Access::preloadPermissions (com_content) (2.09MB) (10.71%)
    19.18ms
    1 x Before Access::preloadPermissions (com_dpcalendar) (251.82KB) (8.01%)
    14.34ms
    1 x After Access::preloadPermissions (com_dpcalendar) (6.91KB) (3.14%)
    5.62ms
    1 x After Access::preloadComponents (all components) (137.83KB) (2.95%)
    5.28ms
    1 x afterRoute (534.38KB) (1.62%)
    2.90ms
    1 x Before Access::preloadComponents (all components) (104.77KB) (0.5%)
    902μs
    1 x beforeRenderComponent com_content (54.78KB) (0.38%)
    673μs
    1 x afterLoad (105.45KB) (0.3%)
    543μs
    1 x afterDispatch (3.03KB) (0.2%)
    354μs
    1 x Before Access::getAssetRules (id:3131 name:com_dpcalendar.category.90) (440B) (0.15%)
    269μs
    1 x Before Access::getAssetRules (id:3302 name:com_content.article.3093) (66.65KB) (0.05%)
    88μs
    1 x After Access::getAssetRules (id:3302 name:com_content.article.3093) (7.38KB) (0.03%)
    57μs
    1 x After Access::getAssetRules (id:3131 name:com_dpcalendar.category.90) (6.03KB) (0.02%)
    31μs
    1 x Before Access::preloadPermissions (com_content) (1.85KB) (0.01%)
    13μs
24 statements were executed, 6 of which were duplicates, 18 unique64.56ms408.53KB
  • SELECT @@SESSION.sql_mode;1.48ms968B/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:259Copy
  • SELECT `data` FROM `vm53n_session` WHERE `session_id` = ?1.21ms1008BParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:250Copy
  • SELECT `session_id` FROM `vm53n_session` WHERE `session_id` = :session_id LIMIT 11.53ms1.3KBParams/libraries/src/Session/MetadataManager.php:187Copy
  • INSERT INTO `vm53n_session` (`session_id`,`guest`,`time`,`userid`,`username`,`client_id`) VALUES (:session_id, :guest, :time, :user_id, :username, :client_id)2.6ms944BParams/libraries/src/Session/MetadataManager.php:260Copy
  • SELECT `id`,`rules` FROM `vm53n_viewlevels`1.52ms992B/libraries/src/Access/Access.php:955Copy
  • SELECT `b`.`id` FROM `vm53n_usergroups` AS `a` LEFT JOIN `vm53n_usergroups` AS `b` ON `b`.`lft` <= `a`.`lft` AND `b`.`rgt` >= `a`.`rgt` WHERE `a`.`id` = :guest2.09ms1.33KBParams/libraries/src/Access/Access.php:868Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `vm53n_assets` WHERE `name` IN (:preparedArray1,:preparedArray2,:preparedArray3,:preparedArray4,:preparedArray5,:preparedArray6,:preparedArray7,:preparedArray8,:preparedArray9,:preparedArray10,:preparedArray11,:preparedArray12,:preparedArray13,:preparedArray14,:preparedArray15,:preparedArray16,:preparedArray17,:preparedArray18,:preparedArray19,:preparedArray20,:preparedArray21,:preparedArray22,:preparedArray23,:preparedArray24,:preparedArray25,:preparedArray26,:preparedArray27,:preparedArray28,:preparedArray29,:preparedArray30,:preparedArray31,:preparedArray32,:preparedArray33,:preparedArray34,:preparedArray35,:preparedArray36,:preparedArray37,:preparedArray38,:preparedArray39,:preparedArray40,:preparedArray41,:preparedArray42,:preparedArray43,:preparedArray44,:preparedArray45,:preparedArray46,:preparedArray47,:preparedArray48)3.07ms7.81KBParams/libraries/src/Access/Access.php:357Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `vm53n_assets` WHERE `name` LIKE :asset OR `name` = :extension OR `parent_id` = 013.29ms341.48KBParams/libraries/src/Access/Access.php:301Copy
  • SHOW FULL COLUMNS FROM `vm53n_content`3.39ms2.39KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:539Copy
  • UPDATE `vm53n_content` SET `hits` = (`hits` + 1) WHERE `id` = '3093'4.1ms48B/libraries/src/Table/Table.php:1348Copy
  • SELECT `a`.`id`,`a`.`asset_id`,`a`.`title`,`a`.`alias`,`a`.`introtext`,`a`.`fulltext`,`a`.`state`,`a`.`catid`,`a`.`created`,`a`.`created_by`,`a`.`created_by_alias`,`a`.`modified`,`a`.`modified_by`,`a`.`checked_out`,`a`.`checked_out_time`,`a`.`publish_up`,`a`.`publish_down`,`a`.`images`,`a`.`urls`,`a`.`attribs`,`a`.`version`,`a`.`ordering`,`a`.`metakey`,`a`.`metadesc`,`a`.`access`,`a`.`hits`,`a`.`metadata`,`a`.`featured`,`a`.`language`,`fp`.`featured_up`,`fp`.`featured_down`,`c`.`title` AS `category_title`,`c`.`alias` AS `category_alias`,`c`.`access` AS `category_access`,`c`.`language` AS `category_language`,`fp`.`ordering`,`u`.`name` AS `author`,`parent`.`title` AS `parent_title`,`parent`.`id` AS `parent_id`,`parent`.`path` AS `parent_route`,`parent`.`alias` AS `parent_alias`,`parent`.`language` AS `parent_language`,ROUND(`v`.`rating_sum` / `v`.`rating_count`, 1) AS `rating`,`v`.`rating_count` AS `rating_count` FROM `vm53n_content` AS `a` INNER JOIN `vm53n_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `vm53n_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `vm53n_users` AS `u` ON `u`.`id` = `a`.`created_by` LEFT JOIN `vm53n_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `vm53n_content_rating` AS `v` ON `a`.`id` = `v`.`content_id` WHERE ( (`a`.`id` = :pk AND `c`.`published` > 0) AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp)) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown) AND `a`.`state` IN (:preparedArray1,:preparedArray2)1.62ms6.12KBParams/components/com_content/src/Model/ArticleModel.php:215Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `vm53n_categories` AS `s` INNER JOIN `vm53n_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2,:preparedArray3) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`1.54ms3.95KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `m`.`tag_id`,`t`.* FROM `vm53n_contentitem_tag_map` AS `m` INNER JOIN `vm53n_tags` AS `t` ON `m`.`tag_id` = `t`.`id` WHERE `m`.`type_alias` = :contentType AND `m`.`content_item_id` = :id AND `t`.`published` = 1 AND `t`.`access` IN (:preparedArray1,:preparedArray2,:preparedArray3)1.34ms4KBParams/libraries/src/Helper/TagsHelper.php:388Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `vm53n_categories` AS `s` INNER JOIN `vm53n_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2,:preparedArray3) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`1.45ms3.95KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT DISTINCT a.id, a.title, a.name, a.checked_out, a.checked_out_time, a.note, a.state, a.access, a.created_time, a.created_user_id, a.ordering, a.language, a.fieldparams, a.params, a.type, a.default_value, a.context, a.group_id, a.label, a.description, a.required, a.only_use_in_subform,l.title AS language_title, l.image AS language_image,uc.name AS editor,ag.title AS access_level,ua.name AS author_name,g.title AS group_title, g.access as group_access, g.state AS group_state, g.note as group_note FROM vm53n_fields AS a LEFT JOIN `vm53n_languages` AS l ON l.lang_code = a.language LEFT JOIN vm53n_users AS uc ON uc.id=a.checked_out LEFT JOIN vm53n_viewlevels AS ag ON ag.id = a.access LEFT JOIN vm53n_users AS ua ON ua.id = a.created_user_id LEFT JOIN vm53n_fields_groups AS g ON g.id = a.group_id LEFT JOIN `vm53n_fields_categories` AS fc ON fc.field_id = a.id WHERE ( (`a`.`context` = :context AND (`fc`.`category_id` IS NULL OR `fc`.`category_id` IN (:preparedArray1,:preparedArray2,:preparedArray3)) AND `a`.`access` IN (:preparedArray4,:preparedArray5,:preparedArray6)) AND (`a`.`group_id` = 0 OR `g`.`access` IN (:preparedArray7,:preparedArray8,:preparedArray9)) AND `a`.`state` = :state) AND (`a`.`group_id` = 0 OR `g`.`state` = :gstate) AND `a`.`only_use_in_subform` = :only_use_in_subform ORDER BY a.ordering ASC2.12ms4.81KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:164Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `vm53n_categories` AS `s` INNER JOIN `vm53n_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2,:preparedArray3) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`3.37ms3.95KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `vm53n_categories` AS `s` INNER JOIN `vm53n_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2,:preparedArray3) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`2.55ms5.19KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `vm53n_assets` WHERE `name` LIKE :asset OR `name` = :extension OR `parent_id` = 03.64ms1.53KBParams/libraries/src/Access/Access.php:301Copy
  • SELECT * FROM `vm53n_schemaorg` WHERE `itemId` = :itemId AND `context` = :context1.85ms1.55KBParams/plugins/system/schemaorg/src/Extension/Schemaorg.php:406Copy
  • SELECT `a`.`id`,`a`.`asset_id`,`a`.`title`,`a`.`alias`,`a`.`introtext`,`a`.`fulltext`,`a`.`state`,`a`.`catid`,`a`.`created`,`a`.`created_by`,`a`.`created_by_alias`,`a`.`modified`,`a`.`modified_by`,`a`.`checked_out`,`a`.`checked_out_time`,`a`.`publish_up`,`a`.`publish_down`,`a`.`images`,`a`.`urls`,`a`.`attribs`,`a`.`version`,`a`.`ordering`,`a`.`metakey`,`a`.`metadesc`,`a`.`access`,`a`.`hits`,`a`.`metadata`,`a`.`featured`,`a`.`language`,`fp`.`featured_up`,`fp`.`featured_down`,`c`.`title` AS `category_title`,`c`.`alias` AS `category_alias`,`c`.`access` AS `category_access`,`c`.`language` AS `category_language`,`fp`.`ordering`,`u`.`name` AS `author`,`parent`.`title` AS `parent_title`,`parent`.`id` AS `parent_id`,`parent`.`path` AS `parent_route`,`parent`.`alias` AS `parent_alias`,`parent`.`language` AS `parent_language`,ROUND(`v`.`rating_sum` / `v`.`rating_count`, 1) AS `rating`,`v`.`rating_count` AS `rating_count` FROM `vm53n_content` AS `a` INNER JOIN `vm53n_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `vm53n_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `vm53n_users` AS `u` ON `u`.`id` = `a`.`created_by` LEFT JOIN `vm53n_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `vm53n_content_rating` AS `v` ON `a`.`id` = `v`.`content_id` WHERE ( (`a`.`id` = :pk AND `c`.`published` > 0) AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp)) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown) AND `a`.`state` IN (:preparedArray1,:preparedArray2)2.14ms6.17KBParams/components/com_content/src/Model/ArticleModel.php:215Copy
  • SELECT `a`.`id`,`a`.`asset_id`,`a`.`title`,`a`.`alias`,`a`.`introtext`,`a`.`fulltext`,`a`.`state`,`a`.`catid`,`a`.`created`,`a`.`created_by`,`a`.`created_by_alias`,`a`.`modified`,`a`.`modified_by`,`a`.`checked_out`,`a`.`checked_out_time`,`a`.`publish_up`,`a`.`publish_down`,`a`.`images`,`a`.`urls`,`a`.`attribs`,`a`.`version`,`a`.`ordering`,`a`.`metakey`,`a`.`metadesc`,`a`.`access`,`a`.`hits`,`a`.`metadata`,`a`.`featured`,`a`.`language`,`fp`.`featured_up`,`fp`.`featured_down`,`c`.`title` AS `category_title`,`c`.`alias` AS `category_alias`,`c`.`access` AS `category_access`,`c`.`language` AS `category_language`,`fp`.`ordering`,`u`.`name` AS `author`,`parent`.`title` AS `parent_title`,`parent`.`id` AS `parent_id`,`parent`.`path` AS `parent_route`,`parent`.`alias` AS `parent_alias`,`parent`.`language` AS `parent_language`,ROUND(`v`.`rating_sum` / `v`.`rating_count`, 1) AS `rating`,`v`.`rating_count` AS `rating_count` FROM `vm53n_content` AS `a` INNER JOIN `vm53n_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `vm53n_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `vm53n_users` AS `u` ON `u`.`id` = `a`.`created_by` LEFT JOIN `vm53n_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `vm53n_content_rating` AS `v` ON `a`.`id` = `v`.`content_id` WHERE ( (`a`.`id` = :pk AND `c`.`published` > 0) AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp)) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown) AND `a`.`state` IN (:preparedArray1,:preparedArray2)2.35ms6.17KBParams/components/com_content/src/Model/ArticleModel.php:215Copy
  • SELECT SUM(CASE WHEN `a`.`next_execution` <= :now THEN 1 ELSE 0 END) AS due_count,SUM(CASE WHEN `a`.`locked` IS NULL THEN 0 ELSE 1 END) AS locked_count FROM `vm53n_scheduler_tasks` AS `a` WHERE `a`.`state` = 11.99ms1.37KBParams/administrator/components/com_scheduler/src/Model/TasksModel.php:517Copy
  • SELECT `session_id` FROM `vm53n_session` WHERE `session_id` = ?1.27ms1KBParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:277Copy
  • UPDATE `vm53n_session` SET `data` = ? , `time` = ? WHERE `session_id` = ?3.05ms592BParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:301Copy