Official HQ review of El Matador is live, check it out: viewtopic.php?p=103777-el-matador
We have a Steam curator now. You should be following it. https://store.steampowered.com/curator/44994899-RPGHQ/
Support RPGHQ
HQ doesn't use ads or trackers; we rely entirely on donations from the community to fund operations and development. This independence ensures we can continue without any outside interference.
Click here to see donation options.
HQ doesn't use ads or trackers; we rely entirely on donations from the community to fund operations and development. This independence ensures we can continue without any outside interference.
Click here to see donation options.
We have a new chat service
-
- Site Admin
- Posts: 11909
- Joined: Feb 2, '23
- Gender: Watermelon
We have a new chat service
https://chat.rpghq.org/
It directly bridges with our IRC room, so there is no pressure to switch over if you're fine using IRC.
It directly bridges with our IRC room, so there is no pressure to switch over if you're fine using IRC.
Last edited by rusty_shackleford on May 25th, 2024, 07:27, edited 1 time in total.
-
- Site Admin
- Posts: 11909
- Joined: Feb 2, '23
- Gender: Watermelon
For those that prefer it, Lounge can still be accessed at https://rpghq.org/chat it won't be going away.
-
- Posts: 930
- Joined: Sep 9, '23
- Location: Poland
"How to connect using desktop version" guide for dummies would be kino
It's just my opinion, not the absolute truth
___________________________________
"Why don't you put that in your signature instead of having to type it every week?"
~Dead about me being gay
"Read his signature, he's gay"
~Dead
___________________________________
"Why don't you put that in your signature instead of having to type it every week?"
~Dead about me being gay
"Read his signature, he's gay"
~Dead
-
- Posts: 228
- Joined: Apr 6, '24
-
- Site Admin
- Posts: 11909
- Joined: Feb 2, '23
- Gender: Watermelon
nope, you can if you want to
I'm unfamiliar with Cinny what am I accepting?rusty_shackleford wrote: ↑ May 25th, 2024, 22:42nope, you can if you want to
The three evils that humanity faces:
Censorship
Telemetry
DRM
-
- Posts: 4682
- Joined: Sep 6, '23
I declined them but we warned it'll invite you every time you log in if you log out.
As soon as they like you, make 'em unlike you.
-
- Site Admin
- Posts: 11909
- Joined: Feb 2, '23
- Gender: Watermelon
one is a PM from the IRC bridge bot, the other is a PM from the IRC network itselfSpellSword wrote: ↑ May 25th, 2024, 22:45I'm unfamiliar with Cinny what am I accepting?rusty_shackleford wrote: ↑ May 25th, 2024, 22:42nope, you can if you want to
-
- Turtle
- Posts: 710
- Joined: Feb 2, '23
- Gender: Helicopter
-
- Posts: 4682
- Joined: Sep 6, '23
You don't have to announce your arrival everytime like this.
As soon as they like you, make 'em unlike you.
-
- Posts: 687
- Joined: Mar 29, '23
-
- Posts: 407
- Joined: Dec 3, '23
Userscript to add profile pics and "[irc]" to irc users
Code: Select all
// ==UserScript==
// @name Add User Pictures and Add [irc] to Names
// @namespace http://tampermonkey.net/
// @version 2.0
// @description Add pictures to users in Cinny Matrix client by user ID and add [irc] to their display names
// @author loregamer
// @match https://chat.rpghq.org/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=rpghq.org
// @grant none
// ==/UserScript==
(function() {
'use strict';
const userPictures = [
{
userId: '@irc_Gregz:rpghq.org',
baseImageUrl: 'https://rpghq.org/forums/download/file.php?avatar=87'
},
{
userId: '@irc_Kalarion:rpghq.org',
baseImageUrl: 'https://rpghq.org/forums/download/file.php?avatar=71'
},
{
userId: '@irc_Kalarion1:rpghq.org',
baseImageUrl: 'https://rpghq.org/forums/download/file.php?avatar=71'
},
{
userId: '@irc_Kalarion7:rpghq.org',
baseImageUrl: 'https://rpghq.org/forums/download/file.php?avatar=71'
},
{
userId: '@irc_Kalarionis:rpghq.org',
baseImageUrl: 'https://rpghq.org/forums/download/file.php?avatar=71'
},
{
userId: '@irc_Tweed:rpghq.org',
baseImageUrl: 'https://rpghq.org/forums/download/file.php?avatar=68'
},
{
userId: '@irc_Tweedagain:rpghq.org',
baseImageUrl: 'https://rpghq.org/forums/download/file.php?avatar=68'
},
{
userId: '@irc_WhiteShark:rpghq.org',
baseImageUrl: 'https://rpghq.org/forums/download/file.php?avatar=63'
},
{
userId: '@irc_decline:rpghq.org',
baseImageUrl: 'https://rpghq.org/forums/download/file.php?avatar=225'
},
{
userId: '@irc_Norfleet:rpghq.org',
baseImageUrl: 'https://i.postimg.cc/T2z1mDLK/image'
},
{
userId: '@irc_Sex_Cult_Leader:rpghq.org',
baseImageUrl: 'https://rpghq.org/forums/download/file.php?avatar=65'
},
{
userId: '@irc_stackofturtles:rpghq.org',
baseImageUrl: 'https://rpghq.org/forums/download/file.php?avatar=3301'
},
{
userId: '@irc_twig:rpghq.org',
baseImageUrl: 'https://rpghq.org/forums/download/file.php?avatar=2'
},
{
userId: '@irc_Roguey:rpghq.org',
baseImageUrl: 'https://rpghq.org/forums/download/file.php?avatar=86'
},
{
userId: '@irc_Chonkem:rpghq.org',
baseImageUrl: 'https://rpghq.org/forums/download/file.php?avatar=69'
},
{
userId: '@irc_Chonkem:rpghq.org',
baseImageUrl: 'https://rpghq.org/forums/download/file.php?avatar=69'
},
{
userId: '@irc_herkzter:rpghq.org',
baseImageUrl: 'https://rpghq.org/forums/download/file.php?avatar=289'
},
{
userId: '@irc_The_Mask:rpghq.org',
baseImageUrl: 'https://rpghq.org/forums/download/file.php?avatar=113'
},
{
userId: '@irc_Eyestabber:rpghq.org',
baseImageUrl: 'https://rpghq.org/forums/download/file.php?avatar=85'
},
{
userId: '@irc_wraith:rpghq.org',
baseImageUrl: 'https://rpghq.org/forums/download/file.php?avatar=62'
}
];
function setImageSource(img, baseImageUrl) {
const extensions = ['jpg', 'jpeg', 'png', 'gif'];
let imageSet = false;
extensions.forEach(ext => {
if (!imageSet) {
const imgSrc = `${baseImageUrl}.${ext}`;
const testerImg = new Image();
testerImg.src = imgSrc;
testerImg.onload = () => {
if (testerImg.complete && testerImg.naturalHeight !== 0) {
img.src = imgSrc;
imageSet = true;
}
};
testerImg.onerror = () => {
if (!imageSet) {
img.src = `${baseImageUrl}.jpg`; // Fallback
}
};
}
});
}
function addUserPictures() {
const allUserElements = document.querySelectorAll('[data-user-id], .profile-viewer__user__info, .prxiv40, ._13tt0gb6');
allUserElements.forEach(function(element) {
const userId = element.getAttribute('data-user-id') || element.querySelector('p.text.text-b2.text-normal, p._1xny9xlc')?.textContent;
const avatarContainer = element.querySelector('span._1684mq5d, .avatar__border, span._1684mq51');
const displayNameElement = element.querySelector('span._1xny9xl0 b, h4.text.text-s1.text-medium, p._1xny9xl0, span._1xny9xl1');
const user = userPictures.find(user => user.userId === userId);
if (user && avatarContainer) {
if (!avatarContainer.querySelector('img')) {
const img = document.createElement('img');
img.alt = user.userId;
img.classList.add('_1684mq5c', '_1mqalmd1', '_1mqalmd0', 'awo2r00');
img.style.width = '100%';
img.style.height = '100%';
setImageSource(img, user.baseImageUrl);
avatarContainer.innerHTML = '';
avatarContainer.appendChild(img);
}
}
if (userId && userId.includes('@irc') && displayNameElement && !displayNameElement.textContent.includes('[irc]') && !element.classList.contains('_13tt0gb6')) {
displayNameElement.textContent += ' [irc]';
}
});
}
function addSidebarNames() {
const sidebarElements = document.querySelectorAll('[data-user-id], .prxiv40, ._13tt0gb6');
sidebarElements.forEach(function(element) {
const userId = element.getAttribute('data-user-id') || element.querySelector('p._1xny9xlc')?.textContent;
const sidebarNameElement = element.querySelector('div.prxiv40._1mqalmd1._1mqalmd0.prxiv41.prxiv41s p._1xny9xl0._1mqalmd1._1mqalmd0._1xny9xla._1xny9xlr._1xny9xln, span._1xny9xl1');
if (userId && userId.includes('@irc') && sidebarNameElement && !sidebarNameElement.textContent.includes('[irc]')) {
sidebarNameElement.textContent += ' [irc]';
}
});
}
function updateProfileViewer() {
const profileViewerElements = document.querySelectorAll('.ReactModal__Content .profile-viewer__user__info');
profileViewerElements.forEach(function(element) {
const userIdElement = element.querySelector('p.text.text-b2.text-normal');
if (userIdElement) {
const userId = userIdElement.textContent;
const user = userPictures.find(user => user.userId === userId);
const avatarContainer = element.closest('.profile-viewer__user').querySelector('.avatar-container');
if (user && avatarContainer) {
if (!avatarContainer.querySelector('img')) {
const img = document.createElement('img');
img.draggable = false;
img.alt = user.userId;
img.style.backgroundColor = 'transparent';
setImageSource(img, user.baseImageUrl);
avatarContainer.innerHTML = '';
avatarContainer.appendChild(img);
}
}
}
});
}
function updatePingUserBox() {
const pingUserBoxElements = document.querySelectorAll('._13tt0gb6');
pingUserBoxElements.forEach(function(element) {
const userIdElement = element.querySelector('p._1xny9xlc');
if (userIdElement) {
const userId = userIdElement.textContent;
const user = userPictures.find(user => user.userId === userId);
const avatarContainer = element.querySelector('span._1684mq5d, span._1684mq51');
if (user && avatarContainer) {
if (!avatarContainer.querySelector('img')) {
const img = document.createElement('img');
img.draggable = false;
img.alt = user.userId;
img.classList.add('_1684mq5c', '_1mqalmd1', '_1mqalmd0', 'awo2r00');
img.style.width = '32px';
img.style.height = '32px';
setImageSource(img, user.baseImageUrl);
avatarContainer.innerHTML = '';
avatarContainer.appendChild(img);
}
}
}
});
}
const observer = new MutationObserver((mutations) => {
mutations.forEach((mutation) => {
if (mutation.addedNodes.length > 0) {
addUserPictures();
addSidebarNames();
updateProfileViewer();
updatePingUserBox();
}
});
});
observer.observe(document.body, { childList: true, subtree: true });
window.addEventListener('load', function() {
addUserPictures();
addSidebarNames();
updateProfileViewer();
updatePingUserBox();
});
function handleDynamicElements() {
document.body.addEventListener('DOMNodeInserted', function(event) {
if (event.target && event.target.classList && event.target.classList.contains('ReactModal__Content')) {
addUserPictures();
addSidebarNames();
updateProfileViewer();
updatePingUserBox();
}
});
}
handleDynamicElements();
})();
Last edited by loregamer on June 17th, 2024, 01:01, edited 5 times in total.
-
- Site Admin
- Posts: 11909
- Joined: Feb 2, '23
- Gender: Watermelon
Those avatar URLs aren't stable, you can use the URL with just the user ID to get a stable one e.g.,
download/file.php?avatar=87.jpg
-
- Posts: 407
- Joined: Dec 3, '23
Cool cool. Any chance you could make it so I could fetch avatars with a username? Then I think I could make it so we don't have to just add to the array manually.rusty_shackleford wrote: ↑ Yesterday, 19:37Those avatar URLs aren't stable, you can use the URL with just the user ID to get a stable one e.g.,download/file.php?avatar=87.jpg
-
- Site Admin
- Posts: 11909
- Joined: Feb 2, '23
- Gender: Watermelon
Don't think there's any way to fetch usernames by user ID, off the top of my head anywaysloregamer wrote: ↑ Yesterday, 19:40Cool cool. Any chance you could make it so I could fetch avatars with a username? Then I think I could make it so we don't have to just add to the array manually.rusty_shackleford wrote: ↑ Yesterday, 19:37Those avatar URLs aren't stable, you can use the URL with just the user ID to get a stable one e.g.,download/file.php?avatar=87.jpg
-
- Turtle
- Posts: 710
- Joined: Feb 2, '23
- Gender: Helicopter
-
- Posts: 407
- Joined: Dec 3, '23
-
- Turtle
- Posts: 174
- Joined: Feb 4, '23
Where is the "decline" button?rusty_shackleford wrote: ↑ May 25th, 2024, 06:31https://chat.rpghq.org/
It directly bridges with our IRC room, so there is no pressure to switch over if you're fine using IRC.
-
- Posts: 407
- Joined: Dec 3, '23
Alright script is finalized and should be safe from any avatar updates. Should work on any popups and whatnot as well.
I couldn't get srcset working, though @rusty_shackleford. If it contains links that are invalid in srcset then it breaks for me