F95zone > threads > HTML <title> rearrangement

F95zone threads pages - HTML <title> rearrangement - moving labels from the beginning of the title to after the developer name.

  1. // ==UserScript==
  2. // @name F95zone > threads > HTML <title> rearrangement
  3. // @namespace Violentmonkey Scripts
  4. // @match *://f95zone.to/threads/*
  5. // @grant none
  6. // @version 0.1.12
  7. // #timestamp 2025-03-28 18:39:11
  8. // @author BtDt
  9. // @license MIT
  10. // @description F95zone threads pages - HTML <title> rearrangement - moving labels from the beginning of the title to after the developer name.
  11. // ==/UserScript==
  12.  
  13. (function() {
  14. 'use strict';
  15.  
  16. function XPathEvalAndIter(
  17. xpath,
  18. ctxNode,
  19. callback = (subnode) => {})
  20. {
  21. const result = document.evaluate(
  22. xpath,
  23. ctxNode,
  24. null,
  25. XPathResult.ORDERED_NODE_ITERATOR_TYPE,
  26. null);
  27. let node = result.iterateNext();
  28. while (node) {
  29. callback(node);
  30. node = result.iterateNext();
  31. }
  32. }
  33. let title = '';
  34. let labels = '';
  35. function ProcessTitle(subnode) {
  36. XPathEvalAndIter(
  37. "text()",
  38. subnode,
  39. (subnode) => { title += subnode.textContent; });
  40. XPathEvalAndIter(
  41. "a[@class='labelLink']/span",
  42. subnode,
  43. (subnode) => { labels += ` #${subnode.textContent}`; });
  44. }
  45. XPathEvalAndIter(
  46. "//h1[@class='p-title-value']",
  47. document,
  48. ProcessTitle);
  49. document.title = `${title} ${labels} | F95zone`;
  50.  
  51. })();