TryNinja
Legendary
Offline
Activity: 3290
Merit: 8554
♻️ Automatic Exchange
|
 |
July 21, 2025, 03:13:11 AM |
|
I noticed that drafts are only saved when you preview or post a reply/topic. This makes it possible to still lose your writeup while typing and then your browser crashes or the page refreshes before you click the preview button. I believe that it would be great if the forum supported an autosave draft feature while typing, like every 30 seconds or so especially for those with lengthy writeups and then an unstable internet connection.
FYI, I created an userscript that adds auto-saving using the draft system. You just need to add it to tampermonkey/greasymonkey or anyoner user script browser extension. Inspired by libert19's suggestion, I wrote a small script that auto saves your posts to the forum draft every couple of seconds (customizable). Once upon a time I was writing a middle sized post and missclicked F5, losing the entire thing. This script helps mitigate this dangerous mistake! Installation: https://greasyfork.org/en/scripts/484095-auto-save-draft-for-bitcointalk-orgEdit the INTERVAL_SECONDS variable at the top with the number of seconds you want your draft to automatically save (default: 60 seconds). If there are no changes on your post since the last draft (this includes pressing the "preview" button), the process is skipped. P.S: "Drafts are saved whenever you preview or post a topic, post, or PM. Up to 100 drafts are kept. Drafts are deleted after 7 days."
|
░░░░▄▄████████████▄ ░▄████████████████▀ ▄████████████████▀▄█▄ ▄███████▀▀░░▄███▀▄████▄ ▄██████▀░░░▄███▀░▀██████▄ ██████▀░░▄████▄░░░▀██████ ██████░░▀▀▀▀░▄▄▄▄░░██████ ██████▄░░░▀████▀░░▄██████ ▀██████▄░▄███▀░░░▄██████▀ ▀████▀▄████░░▄▄███████▀ ▀█▀▄████████████████▀ ▄████████████████▀░ ▀████████████▀▀░░░░ | | CCECASH | | | | ANN THREAD TUTORIAL |
|
|
|
vapourminer
Legendary
Offline
Activity: 4788
Merit: 4943
what is this "brake pedal" you speak of?
|
I noticed that drafts are only saved when you preview or post a reply/topic. This makes it possible to still lose your writeup while typing and then your browser crashes or the page refreshes before you click the preview button. I believe that it would be great if the forum supported an autosave draft feature while typing, like every 30 seconds or so especially for those with lengthy writeups and then an unstable internet connection.
as long as its optional i dislike "active" web pages that automagically sweep input boxes on a whim.
|
|
|
|
Btcdeybodi
|
 |
July 26, 2025, 08:11:06 AM |
|
I tried changing the forum's theme to dark mode, it was showing disabled 45. In fact, there was no available theme, only the forum's default theme. I literally set the theme of my phone and pc to dark mode, it helps my eyes from being affected by the ray of light. Is there a way the themes can be fixed @PowerGlove 
|
▄▄█████████████████▄▄ ▄█████████████████████▄ ███▀▀█████▀▀░░▀▀███████ ███▄░░▀▀░░▄▄██▄░░██████ █████░░░████████░░█████ ████▌░▄░░█████▀░░██████ ███▌░▐█▌░░▀▀▀▀░░▄██████ ███░░▌██░░▄░░▄█████████ ███▌░▀▄▀░░█▄░░█████████ ████▄░░░▄███▄░░▀▀█▀▀███ ██████████████▄▄░░░▄███ ▀█████████████████████▀ ▀▀█████████████████▀▀ | Rainbet.com CRYPTO CASINO & SPORTSBOOK | | | █▄█▄█▄███████▄█▄█▄█ ███████████████████ ███████████████████ ███████████████████ █████▀█▀▀▄▄▄▀██████ █████▀▄▀████░██████ █████░██░█▀▄███████ ████▄▀▀▄▄▀███████ █████████▄▀▄███ █████████████████ ███████████████████ ███████████████████ ███████████████████ | | | |
▄█████████▄ █████████ ██ ▄▄█░▄░▄█▄░▄░█▄▄ ▀██░▐█████▌░██▀ ▄█▄░▀▀▀▀▀░▄█▄ ▀▀▀█▄▄░▄▄█▀▀▀ ▀█▀░▀█▀
| 10K WEEKLY RACE | | 100K MONTHLY RACE | | | ██
█████
| ███████▄█ ██████████▄ ████████████▄▄ ████▄███████████▄ ██████████████████▄ ░▄█████████████████▄ ▄███████████████████▄ █████████████████▀████ ██████████▀███████████ ▀█████████████████████ ░████████████████████▀ ░░▀█████████████████▀ ████▀▀██████████▀▀ | ████████ ██████████████ |
|
|
|
Ivystar5
Full Member
 
Offline
Activity: 364
Merit: 215
Stressed since 19's
|
 |
July 26, 2025, 08:17:45 AM |
|
I tried changing the forum's theme to dark mode, it was showing disabled 45. In fact, there was no available theme, only the forum's default theme. I literally set the theme of my phone and pc to dark mode, it helps my eyes from being affected by the ray of light. Is there a way the themes can be fixed @PowerGlove  I think your browsers should be responsible for that! I use opera mini before hand and it has an option of dark mode/night mode. I also don't think that's a bug but it's just your interest and wants to see that integrated into Bitcointalk which is not a bad idea the only thing there is that what you desire someone else out there may not desire that or want it, it's simple. Maybe you should consider using the browser feature instead of waiting on it on the forum itself.
|
|
|
|
Btcdeybodi
|
 |
July 26, 2025, 09:58:50 AM |
|
I tried changing the forum's theme to dark mode, it was showing disabled 45. In fact, there was no available theme, only the forum's default theme. I literally set the theme of my phone and pc to dark mode, it helps my eyes from being affected by the ray of light. Is there a way the themes can be fixed @PowerGlove  I think your browsers should be responsible for that! I use opera mini before hand and it has an option of dark mode/night mode. I also don't think that's a bug but it's just your interest and wants to see that integrated into Bitcointalk which is not a bad idea the only thing there is that what you desire someone else out there may not desire that or want it, it's simple. Maybe you should consider using the browser feature instead of waiting on it on the forum itself. The browser's theme doesn't change the theme of the forum okay. Yes it's not a bug but just a forum feature i feel concerned about. If you change your browser to night mode it doesn't change the forum's background as it still remains in white background but assuming the themes are enabled, it can change the whole interface of the forum's site. Hope you get it now 
|
▄▄█████████████████▄▄ ▄█████████████████████▄ ███▀▀█████▀▀░░▀▀███████ ███▄░░▀▀░░▄▄██▄░░██████ █████░░░████████░░█████ ████▌░▄░░█████▀░░██████ ███▌░▐█▌░░▀▀▀▀░░▄██████ ███░░▌██░░▄░░▄█████████ ███▌░▀▄▀░░█▄░░█████████ ████▄░░░▄███▄░░▀▀█▀▀███ ██████████████▄▄░░░▄███ ▀█████████████████████▀ ▀▀█████████████████▀▀ | Rainbet.com CRYPTO CASINO & SPORTSBOOK | | | █▄█▄█▄███████▄█▄█▄█ ███████████████████ ███████████████████ ███████████████████ █████▀█▀▀▄▄▄▀██████ █████▀▄▀████░██████ █████░██░█▀▄███████ ████▄▀▀▄▄▀███████ █████████▄▀▄███ █████████████████ ███████████████████ ███████████████████ ███████████████████ | | | |
▄█████████▄ █████████ ██ ▄▄█░▄░▄█▄░▄░█▄▄ ▀██░▐█████▌░██▀ ▄█▄░▀▀▀▀▀░▄█▄ ▀▀▀█▄▄░▄▄█▀▀▀ ▀█▀░▀█▀
| 10K WEEKLY RACE | | 100K MONTHLY RACE | | | ██
█████
| ███████▄█ ██████████▄ ████████████▄▄ ████▄███████████▄ ██████████████████▄ ░▄█████████████████▄ ▄███████████████████▄ █████████████████▀████ ██████████▀███████████ ▀█████████████████████ ░████████████████████▀ ░░▀█████████████████▀ ████▀▀██████████▀▀ | ████████ ██████████████ |
|
|
|
Alone055
|
 |
July 26, 2025, 11:06:42 PM |
|
The browser's theme doesn't change the theme of the forum okay. Yes it's not a bug but just a forum feature i feel concerned about. If you change your browser to night mode it doesn't change the forum's background as it still remains in white background but assuming the themes are enabled, it can change the whole interface of the forum's site. Hope you get it now  Let me help you with that. There is an extension called Dark Reader that allows you to change the theme of the webpage you are using, and it works very well with the forum. You can download the suitable version for your browser from their official website. Once installed, you can enable it and change the settings as per your liking. Here, let me show you how the forum looks when I turn it on:  Here are the settings that I'm using:  So, you should download it, enable it, and apply the settings, and you won't hurt your eyes anymore. 
|
|
|
|
PowerGlove (OP)
|
 |
July 26, 2025, 11:15:54 PM |
|
Is there a way the themes can be fixed @PowerGlove  No easy way, I'm afraid.  As I understand it, theymos disabled all but the default theme both as a security-related decision (to reduce the amount of attack surface), and as a maintenance-related decision (to reduce the number of files that need to be touched when fixing bugs and implementing new features). Given SMF's code architecture, I would have done exactly the same thing. It's hard to explain to the uninitiated, but, SMF's conception and implementation of "theming" is very backwards (to my way of thinking). If I were designing things from scratch, I'd probably use many of the ideas I bumped into back when I was doing a lot of C++ GUI programming (in Qt, wxWidgets, and the like). Qt, as a toolkit, was really nice back in the day and contained a lot of good ideas (back when it was still being developed by a very small and very skilled team with a very clear vision; I'd say that that era started to end for them around the transition from Qt 3 to Qt 4, and things really started turning to mush after Nokia acquired Trolltech). Anyway, long story short: I don't see a sensible (to me) way to do a theme/style system on SMF (as in, one that wouldn't involve a serious restructuring of the code). I forget who suggested it (maybe Cyrus), but, I guess a carefully-designed feature to let the user replace/extend the forum's CSS could be implemented (though, I have more than a few reservations about doing that, including that the markup isn't really optimized for it, and I've noticed that most people aren't nearly as concerned as I am about running browser extensions, so, they may as well then just install a style-management or user-scripting extension and adjust the forum's frontend that way). I can't recall where my thinking trailed off the last time I considered this, but, I reckon it was with a hunch that 90% of the problem (from the perspective of users) could be solved by implementing a palette system rather than a full-blown theme system (as in, in Qt's terminology, thinking in terms of QPalette rather than QStyle). That's a much easier lift, and would manifest as a new section under "Look and Layout Preferences" where you could individually pick/adjust semantically-named color entries (and choose between a few completed presets to use either as-is or as a starting point for tweaking). Unfortunately, even something like a simplified palette system would be pretty awkward to successfully retrofit onto the forum's version of SMF (which is already near breaking point, and is a quagmire of sloppy code, half-developed ideas, abandoned disciplines, and difficult-to-reason-about cross-cutting concerns/effects). This PM from last year still captures most of my position on working within the constraints set by SMF: I wrote the below reply before realizing that the thread had been locked. I figured you wouldn't mind me sending it to you via PM. (No need to reply yourself, though I'm happy if you do, I just didn't want a post I spent 30 minutes on to go to waste.)  Normally, I would've said our best bet would be @PowerGlove, but this is what he/she said about this specific matter: (...)
Yup, outside of a few big background things, I'm mostly focused on doing little micro-improvements. To be clear, I'd like to tackle search (and a great many other things), but it's unwise (IMO) to do any "major surgeries" on such an old and creaky codebase. From my point of view, SMF's whole technical design is just wrong. There's an unbelievable amount of attack surface. It's all fun and games until something I've done opens up a security hole... I'm an extremely careful programmer, but I also know that, given enough time, mistakes are basically inevitable. I've left some ideas with theymos about what I believe to be the most promising technical direction for Bitcointalk. If those ideas ever get any traction, then I'm confident that I'll be able to maneuver myself into a position where I can squarely hit just about any ball the community might throw my way, but until that happens (and it may never happen), I'm basically only willing to swing at things that make sense to me in the context of an about-to-explode codebase (which is a pretty small subset of the things that make sense to me in general).
|
|
|
|
Btcdeybodi
|
 |
July 27, 2025, 12:27:49 PM Last edit: July 27, 2025, 12:38:02 PM by Btcdeybodi |
|
The browser's theme doesn't change the theme of the forum okay. Yes it's not a bug but just a forum feature i feel concerned about. If you change your browser to night mode it doesn't change the forum's background as it still remains in white background but assuming the themes are enabled, it can change the whole interface of the forum's site. Hope you get it now  Let me help you with that. There is an extension called Dark Reader that allows you to change the theme of the webpage you are using, and it works very well with the forum. You can download the suitable version for your browser from their official website. Once installed, you can enable it and change the settings as per your liking. Here, let me show you how the forum looks when I turn it on:  Here are the settings that I'm using:  So, you should download it, enable it, and apply the settings, and you won't hurt your eyes anymore.  This seems to be a good solution and exactly what i asked for, thanks for the help, the dark background is superb will give it a try now.
|
▄▄█████████████████▄▄ ▄█████████████████████▄ ███▀▀█████▀▀░░▀▀███████ ███▄░░▀▀░░▄▄██▄░░██████ █████░░░████████░░█████ ████▌░▄░░█████▀░░██████ ███▌░▐█▌░░▀▀▀▀░░▄██████ ███░░▌██░░▄░░▄█████████ ███▌░▀▄▀░░█▄░░█████████ ████▄░░░▄███▄░░▀▀█▀▀███ ██████████████▄▄░░░▄███ ▀█████████████████████▀ ▀▀█████████████████▀▀ | Rainbet.com CRYPTO CASINO & SPORTSBOOK | | | █▄█▄█▄███████▄█▄█▄█ ███████████████████ ███████████████████ ███████████████████ █████▀█▀▀▄▄▄▀██████ █████▀▄▀████░██████ █████░██░█▀▄███████ ████▄▀▀▄▄▀███████ █████████▄▀▄███ █████████████████ ███████████████████ ███████████████████ ███████████████████ | | | |
▄█████████▄ █████████ ██ ▄▄█░▄░▄█▄░▄░█▄▄ ▀██░▐█████▌░██▀ ▄█▄░▀▀▀▀▀░▄█▄ ▀▀▀█▄▄░▄▄█▀▀▀ ▀█▀░▀█▀
| 10K WEEKLY RACE | | 100K MONTHLY RACE | | | ██
█████
| ███████▄█ ██████████▄ ████████████▄▄ ████▄███████████▄ ██████████████████▄ ░▄█████████████████▄ ▄███████████████████▄ █████████████████▀████ ██████████▀███████████ ▀█████████████████████ ░████████████████████▀ ░░▀█████████████████▀ ████▀▀██████████▀▀ | ████████ ██████████████ |
|
|
|
Cricktor
Legendary
Offline
Activity: 1218
Merit: 2851
|
This seems to be a good solution and exactly what i asked for, thanks for the help, the dark background is superb will give it a try now.
But don't forget that you trust this browser extension to access anything of your data on webpages. I quote from Firefox's manage extensions "Permissions and data" tab of Dark Reader: Required permissions for core functionality: - Access your data for all websites
- Access browser tabs
To do its thing, Dark Reader has to inject CSS and code into every page's code where it's enabled. Dark Reader is a very popular browser extension and fortunately open-source, but seriously how many have the knowledge and/or time to scrutinize the extension's code? I for certain don't have either of it. It would be a nightmare for all who use it (or similar extensions permission-wise) if for some reason the devs turn rogue (e.g. does silently nasty things while you input credentials to login on web pages). We all who use browser extensions put pretty much faith in the devs to play fair all the time. Let's hope the extension's devs have their security and minds in good shape. Fingers crossed... Keep this in mind.
|
|
|
|
coinlary
Member

Offline
Activity: 91
Merit: 19
|
 |
July 27, 2025, 08:56:53 PM |
|
But don't forget that you trust this browser extension to access anything of your data on webpages. I quote from Firefox's manage extensions "Permissions and data" tab of Dark Reader: Required permissions for core functionality: - Access your data for all websites
- Access browser tabs
I will suggest turning it off when the user is outside the forum or trying to enter any sensitive info. i use darkmode too but my browser allows dark mode and i don't trust extensions because of the exact permission i have to give it
|
|
|
|
ChiBitCTy
Legendary
Offline
Activity: 2674
Merit: 3620
|
 |
July 29, 2025, 02:09:47 PM |
|
PG (or anyone whom might be able to answer this).. Maybe a little off topic, I dunno ..forgive me if so. I’ve suggested to Theymos a few times now that I would love to see r/bitcoin ad a bot that reacted to physical bitcoin/cryptocurrency..perhaps saying something like “I see you’re discussing physical bitcoins, want to learn more, visit the birthplace and an active marketplace on btctalk xxx” .. What originally sparked the idea is when I work on scam busting in the space. In particular I continue to see users there inquiring about Titan Mint BTC, which is an ongoing major fraud case. “Help, I can’t redeem my Titan coin”. Most often people either have no clue how to help, shit talk, or give false info. It’s a niche hobby, while growing, but I don’t see this kinda thing not continuing to happen for a long time. I’m sure you’re aware thymos is the head mod there too and I’ve pitched this idea as a way to help promote the hobby and btalk. Whether he saw it or not I’m not sure, but I can’t be the first to pitch the idea of promoting the forum there in some fashion. I don’t see them as competitors either, for what that’s worth. That said, could this be “reversed” somehow perhaps? Say we 📍 a topic in collectible where mentions of physical btc’s come up there , and maybe the same w/twatter. For me this would be a service for those people and this forum. This way when someone posts about Titan, I can log in to Reddit, share my Titan scam thread, helping them and promoting the forum simultaneously. Is this stupid ? We’re buds you can be honest w/me lol. Thx for all ya do, if I haven’t told ya before , you’re appreciated 
|
|
|
|
PowerGlove (OP)
|
 |
August 04, 2025, 05:07:25 PM |
|
Is this stupid ? We’re buds you can be honest w/me lol.
The first part of your proposal makes sense to me... I'm struggling to follow your "reversed" idea, though. Maybe try giving me the ELI5 version. Thx for all ya do, if I haven’t told ya before , you’re appreciated  Thanks, Chi. 
Changing the subject abruptly, I may as well use this post to ask (the forum) a question that's been on my mind for a while now: Is anyone else bothered by SMF externalizing PMs? As in, does anyone else find it odd that, on the one hand, the highest bug bounty ($60K, currently) on Bitcointalk relates to PM privacy, but, on the other hand, and in the name of convenience, the PMs you send are likely being re-sent to some outside server that you almost always have no dependable details on? (As in, who is the PM recipient's mailbox provider? Are you OK with that provider's data-handling policy? Are you OK with their level of programming/security competence, along with their stance on privacy to begin with? Is it Microsoft? Is it Google? Are you OK with the contents of your correspondence, either now or in the future, being used to improve their services and train their models? And so on.) I've been on-and-off thinking about this for a long time, but, what reminded me of it recently was reading the following (from a wonderful essay I bumped into while going over the WabiSabi paper): To be more prosaic: I pick up the phone and call my colleague, Mihir Bellare, or I tap out an email to him. How many copies of this communication will be stored, and by whom? What algorithms will analyze it—now and in the future? What other data will it be combined with in an attempt to form a picture of me? What would trigger a human analyst to get involved? Might my call or email contribute to a tax audit, a negative grant-funding decision, some Hoover-style dirty tricks, or even an assassination? There is not a single person who knows the answer to these questions, and those who know most aren’t about to tell.
I see three arguments against caring too much about this problem (all of which I can poke holes in, but, I'm playing devil's advocate here): (a1) The forum is already man-in-the-middled (courtesy of Cloudflare, which is an obvious intelligence-gathering nexus), so, chances are good that the forum's PMs are being collected anyway. (a2) People should be encrypting sensitive correspondence. (a3) It's very convenient to be able to entirely read incoming PMs without having to be signed-in to Bitcointalk. I guess, my counter-arguments go: (c1) That's true, but, in my heart of hearts, I hope that theymos will eventually either find the energy himself, or develop enough trust in another networking-savvy programmer, to move the forum back to an in-house anti-DDoS system. (c2) That's true, and it's what I do myself when something is really sensitive, but, I have a really hard time believing that most forum users know how to correctly do this and are disciplined enough to actually make themselves do it (especially for typical PM conversations, where no individual thing you're discussing is especially sensitive, but, taken as a whole, you'd still prefer the conversation to remain just between the communicating parties). (c3) Is it, though? If you still received a notification by e-mail (with just the sender and subject of the PM, but without the actual message), would it really be so inconvenient if you couldn't read the whole PM right from your mailbox? (I mean, you'll have to use Bitcointalk anyway in order to reply to the message, so, what have you really gained by being able to quickly pre-read the PM? Isn't knowing who sent the message, and what it concerns, enough for you to go on until the next time you're signed-in?) There's a really simple SMF patch that would prevent personal messages from being routinely transmitted outside of Bitcointalk's own system boundary: --- baseline/Themes/default/languages/PersonalMessage.english.php 2011-02-07 16:45:09.000000000 +0000 +++ modified/Themes/default/languages/PersonalMessage.english.php 2025-08-04 15:59:48.000000000 +0000 @@ -16,7 +16,7 @@ // Don't translate the word "SUBJECT" here, as it is used to format the message - use numeric entities as well. $txt[561] = 'New Personal Message: SUBJECT'; // Don't translate SENDER or MESSAGE in this language string; they are replaced with the corresponding text - use numeric entities too. -$txt[562] = 'You have just been sent a personal message by SENDER on ' . $context['forum_name'] . '.' . "\n\n" . 'IMPORTANT: Remember, this is just a notification. Please do not reply to this email.' . "\n\n" . 'The message they sent you was:' . "\n\n" . 'MESSAGE'; +$txt[562] = 'You have just been sent a personal message by SENDER on ' . $context['forum_name'] . '.' . "\n\n" . 'IMPORTANT: Remember, this is just a notification. Please do not reply to this email.'; $txt[748] = '(multiple recipients: \'name1, name2\')'; // Use numeric entities in the below string. $txt['instant_reply'] = 'Reply to this Personal Message here:';
Basically, e-mailed PM notifications would remain as-is, except that the "The message they sent you was:" part would no longer be included. Is it only me, or, does it make sense to you, too, to take a convenience (experienced by some subset of PM-receiving users), and swap it for a very probable increase in privacy (experienced by basically every PM-sending user)?
|
|
|
|
bitmover
Legendary
Offline
Activity: 2758
Merit: 6812
bitcoindata.science
|
Changing the subject abruptly, I may as well use this post to ask (the forum) a question that's been on my mind for a while now: Is anyone else bothered by SMF externalizing PMs? As in, does anyone else find it odd that, on the one hand, the highest bug bounty ($60K, currently) on Bitcointalk relates to PM privacy, but, on the other hand, and in the name of convenience, the PMs you send are likely being re-sent to some outside server that you almost always have no dependable details on? (As in, who is the PM recipient's mailbox provider? Are you OK with that provider's data-handling policy? Are you OK with their level of programming/security competence, along with their stance on privacy to begin with? Is it Microsoft? Is it Google? Are you OK with the contents of your correspondence, either now or in the future, being used to improve their services and train their models? And so on.) I have never worked on this subject, so my comment my be completely irrelevant.. but ... Can't the PM have some end to end encryption? Like WhatsApp and other message software? You could still rely on those third party servers to send the encrypted messages, but they would be encrypted, so nobody would be able to read them. Why cant this be implemented?
|
|
|
|
mcdouglasx
|
I will suggest turning it off when the user is outside the forum or trying to enter any sensitive info. i use darkmode too but my browser allows dark mode and i don't trust extensions because of the exact permission i have to give it
I sometimes use a userscript with Tampermonkey because I'm not a big fan of the extension mentioned, as it simply doesn't work as it should in some ways, or the Darkmode isn't set up properly. I'm sharing the userscript for anyone who might be interested. // ==UserScript== // @name Bitcointalk Dark // @namespace bitcointalk-dark // @version 3.17 // @description Dark theme for Bitcointalk // @author mcdouglasx // @match https://bitcointalk.org/* // @grant GM_addStyle // @run-at document-start // ==/UserScript==
(function() { const cssVariables = ` :root { --dark-background: #1A1A1A; --medium-background: #252525; --light-background: #2f2f2f; --border-color: #404040; --text-color: #e0e0e0; --secondary-text-color: #bbbbbb; --link-color: #6A97D9; --link-hover-color: #8CB0E6; --button-color: #3E6F9F; --button-hover-color: #5A8ABA; --input-background: #333333; --input-text-color: #eeeeee; --avatar-background: #ffffff; --avatar-border: #dddddd; --post-background: #181818; --post-alternate-background: #2C2C2C; --banner-background: #181818; --banner-text-color: #f0f0f0; --tab-background: #2a2a2a; --active-tab: #004488; --dark-text-background: #3a3a3a; --moderator-color: #FFCCCC; --trust-good: #66CC66; --trust-neutral: #DDDD99; --trust-bad: #FF6666; } `;
const mainStyles = ` html, body, .tborder { background-color: var(--dark-background) !important; color: var(--text-color) !important; border-color: var(--border-color) !important; } tbody { background-color: var(--dark-background) !important; color: var(--text-color) !important; } .tborder { border: 1px solid var(--border-color) !important; } .tborder table, .tborder tr, .tborder td { background-color: var(--dark-background) !important; border-color: var(--border-color) !important; } .catbg, .catbg2, .catbg3 { background: none !important; background-color: var(--light-background) !important; color: #ffffff !important; border-color: var(--border-color) !important; background-image: none !important; } tr.catbg td { background: none !important; background-color: var(--light-background) !important; color: #ffffff !important; } div.bordercolor table tr.catbg td { background: none !important; background-color: var(--light-background) !important; color: #ffffff !important; } tr.catbg3 td { background: none !important; background-color: var(--light-background) !important; color: #ffffff !important; border-color: var(--border-color) !important; }
table.tborder tr.windowbg { background-color: var(--post-background) !important; color: var(--text-color) !important; } table.tborder tr.windowbg2 { background-color: var(--post-alternate-background) !important; color: var(--text-color) !important; }
table.tborder tr.windowbg td.td_headerandpost { background-color: var(--post-background) !important; } table.tborder tr.windowbg2 td.td_headerandpost { background-color: var(--post-alternate-background) !important; }
table.tborder tr.windowbg td.poster_info { background-color: var(--post-background) !important; } table.tborder tr.windowbg2 td.poster_info { background-color: var(--post-alternate-background) !important; }
td.windowbg { background-color: var(--post-background) !important; color: var(--text-color) !important; border-color: var(--border-color) !important; } td.windowbg2 { background-color: var(--post-alternate-background) !important; color: var(--text-color) !important; border-color: var(--border-color) !important; }
.tborder .titlebg, .tborder .titlebg2 { background-color: var(--light-background) !important; color: #ffffff !important; border-color: var(--border-color) !important; background-image: none !important; } .moderator { color: var(--moderator-color) !important; font-weight: bold !important; background-color: transparent !important; } .catbg a[href*="action=moderate"], .catbg b { color: var(--text-color) !important; font-weight: normal !important; } .nav, .nav b { color: var(--text-color) !important; } .nav a.nav { color: var(--link-color) !important; } .nav a.nav:hover { color: var(--link-hover-color) !important; } .nav span { color: var(--text-color) !important; } .windowbg3 { background-color: var(--dark-background) !important; color: var(--text-color) !important; } .catbg3 #top_subject { color: var(--text-color) !important; font-weight: bold !important; font-size: 1.1em !important; } #bodyarea { background-color: var(--dark-background) !important; } #bodyarea table.bordercolor { background-color: var(--medium-background) !important; border-color: var(--border-color) !important; } .titlebg, .titlebg2, tr.titlebg td, tr.titlebg2 td, td.titlebg, td.titlebg2 { background-color: var(--light-background) !important; color: #ffffff !important; border-color: var(--border-color) !important; background-image: none !important; background: none !important; } #bodyarea td[width="180"] table.bordercolor { background-color: var(--medium-background) !important; border-color: var(--border-color) !important; } #bodyarea td[width="180"] table.bordercolor td.catbg { background-color: var(--light-background) !important; color: #ffffff !important; border-color: var(--border-color) !important; background-image: none !important; background: none !important; } #bodyarea td[width="180"] table.bordercolor tr.windowbg2 td.smalltext { background-color: var(--post-alternate-background) !important; color: var(--text-color) !important; } #bodyarea td[width="180"] table.bordercolor tr.windowbg2 td.smalltext a { color: var(--link-color) !important; } #bodyarea td[width="180"] table.bordercolor tr.windowbg2 td.smalltext a:hover { color: var(--link-hover-color) !important; } table.bordercolor td.catbg { background-color: var(--light-background) !important; color: #ffffff !important; border-color: var(--border-color) !important; } #smfheader { background-color: var(--banner-background) !important; border-bottom: 1px solid var(--border-color) !important; background-image: none !important; } #smfheader td.catbg { background: none !important; background-color: var(--banner-background) !important; color: var(--banner-text-color) !important; } #smfheader img { filter: brightness(0.7) contrast(1.2) grayscale(0.2) !important; opacity: 0.9 !important; } #upshrinkHeader, #upshrinkHeaderIC { background-color: var(--medium-background) !important; } #upshrinkHeader2 { background-color: var(--medium-background) !important; color: var(--banner-text-color) !important; border-color: var(--border-color) !important; } #upshrinkHeader2 td.titlebg2 { background-color: var(--medium-background) !important; color: var(--banner-text-color) !important; background-image: none !important; background: none !important; border-color: var(--border-color) !important; } #footerarea { background-color: var(--dark-background) !important; color: var(--secondary-text-color) !important; border-top: 1px solid var(--border-color) !important; } .maintab_back, .maintab_first, .maintab_last, .mirrortab_back, .mirrortab_first, .mirrortab_last { background-color: var(--tab-background) !important; background-image: none !important; border-color: var(--border-color) !important; color: var(--text-color) !important; } .maintab_active_back, .maintab_active_first, .maintab_active_last { background-color: var(--active-tab) !important; background-image: none !important; border-color: var(--border-color) !important; color: #ffffff !important; } .maintab_back a, .maintab_active_back a, .mirrortab_back a, .mirrortab_first a, .mirrortab_last a, .maintab_active_first a, .maintab_active_last a { color: inherit !important; } .maintab_back a:hover, .mirrortab_back a:hover { color: var(--link-hover-color) !important; } a, a:visited, .smalltext, .middletext, .normaltext, .largetext { color: var(--link-color) !important; } a:hover { color: var(--link-hover-color) !important; } body, .smalltext, .middletext, .normaltext, .largetext, td { color: var(--text-color) !important; } .subject a { color: var(--link-color) !important; font-weight: bold !important; } .subject a:hover { color: var(--link-hover-color) !important; } .bordercolor, table, tr, td, .tborder table, .tborder tr, .tborder td { border-color: var(--border-color) !important; } hr, .hrcolor { border-top: 1px solid var(--border-color) !important; background-color: transparent !important; height: 1px !important; } input, select, textarea { background-color: var(--input-background) !important; color: var(--input-text-color) !important; border: 1px solid var(--border-color) !important; border-radius: 4px; } input[type="submit"], input[type="button"], .button_submit { background-color: var(--button-color) !important; color: #ffffff !important; border: 1px solid var(--button-color) !important; cursor: pointer; padding: 6px 12px; border-radius: 4px; transition: background-color 0.2s ease; } input[type="submit"]:hover, input[type="button"]:hover, .button_submit:hover { background-color: var(--button-hover-color) !important; border-color: var(--button-hover-color) !important; } img { opacity: 0.9; filter: brightness(0.9); } img:hover { opacity: 1; filter: brightness(1); } .messageicon { filter: invert(0.9) brightness(0.9); } img.avatar { background-color: var(--avatar-background) !important; border: 1px solid var(--avatar-border) !important; padding: 2px !important; border-radius: 4px !important; filter: none !important; opacity: 1 !important; } table.tborder { border-collapse: separate !important; border-spacing: 0 !important; table-layout: fixed !important; width: 100% !important; } table.tborder td.poster_info { border-right: 1px solid var(--border-color) !important; border-bottom-color: var(--avatar-border) !important; box-sizing: border-box; width: 16% !important; vertical-align: top; min-width: 100px !important; color: var(--secondary-text-color) !important; } .poster_info .smalltext, .poster_info span.membergroup, .poster_info .profile_text, .poster_info > font, .poster_info > span, .poster_info > b, .poster_info > i { color: var(--text-color) !important; } #profile_content .normaltext, #profile_content .smalltext, #profile_content table.tborder td, #profile_content td.profilebg, #profile_content td.profilebg .normaltext, #profile_content td.profilebg .smalltext { color: var(--text-color) !important; } #profile_content td span.trustscore { color: #FFFFFF !important; background-color: transparent !important; } #profile_content td span.trustscore b { color: #FFFFFF !important; }
.poster_info .smalltext span, .poster_info .smalltext font, #profile_content .smalltext span, #profile_content .smalltext font { color: var(--text-color) !important; } .trust_good { color: var(--trust-good) !important; } .trust_neutral { color: var(--trust-neutral) !important; } .trust_bad { color: var(--trust-bad) !important; } #profile_content .trust_good { color: var(--trust-good) !important; } #profile_content .trust_neutral { color: var(--trust-neutral) !important; } #profile_content .trust_bad { color: var(--trust-bad) !important; } td.td_headerandpost { border-bottom-color: var(--avatar-border) !important; border-right-color: var(--avatar-border) !important; border-left: none !important; width: auto !important; min-width: 1px !important; box-sizing: border-box; overflow-x: hidden !important; word-wrap: break-word !important; overflow-wrap: break-word !important; word-break: normal !important; white-space: normal !important; padding: 15px 8px 15px 8px !important; vertical-align: top !important; } table.tborder td.poster_info img { filter: none !important; opacity: 1 !important; } .quoteheader { background-color: var(--light-background) !important; color: var(--secondary-text-color) !important; border-bottom: 1px solid var(--border-color) !important; padding: 4px 8px !important; font-weight: bold; } .quote { background-color: var(--medium-background) !important; border: 1px solid var(--border-color) !important; color: var(--text-color) !important; padding: 8px !important; margin: 0px !important; margin-bottom: 10px !important; border-radius: 0px !important; box-sizing: border-box; width: 100% !important; max-width: 100% !important; word-wrap: break-word !important; overflow-wrap: break-word !important; word-break: normal !important; white-space: normal !important; overflow-x: hidden !important; line-height: 1.5 !important; } .codeheader { background-color: var(--light-background) !important; color: var(--secondary-text-color) !important; border-bottom: 1px solid var(--border-color) !important; padding: 4px 8px !important; font-weight: bold; } .code { background-color: #2b2b2b !important; border: 1px solid var(--border-color) !important; color: #a9b7c6 !important; padding: 8px !important; margin-bottom: 10px !important; font-family: 'Consolas', 'Monaco', 'Courier New', monospace !important; overflow-x: auto !important; word-wrap: normal !important; overflow-wrap: normal !important; word-break: normal !important; white-space: pre !important; border-radius: 4px; } .poster_info { color: var(--secondary-text-color) !important; } .poster_info a { color: var(--link-color) !important; } .post { color: var(--text-color) !important; background-color: transparent !important; padding: 0px !important; border-radius: 4px; box-sizing: border-box !important; word-wrap: break-word !important; overflow-wrap: break-word !important; word-break: normal !important; white-space: normal !important; } .td_headerandpost { color: var(--text-color) !important; word-wrap: break-word !important; overflow-wrap: break-word !important; word-break: normal !important; white-space: normal !important; overflow-x: hidden !important; min-width: 1px !important; box-sizing: border-box !important; padding: 15px 8px 15px 8px !important; vertical-align: top !important; } table.tborder tr.windowbg td, table.tborder tr.windowbg2 td, table.tborder tr.windowbg3 td { border-color: var(--border-color) !important; } .pagelinks { background-color: var(--medium-background) !important; border: 1px solid var(--border-color) !important; padding: 5px 10px !important; margin-top: 10px !important; border-radius: 4px; color: var(--text-color) !important; } .pagelinks a { color: var(--link-color) !important; padding: 2px 5px; text-decoration: none; } .pagelinks a:hover { background-color: var(--light-background) !important; color: var(--link-hover-color) !important; border-radius: 3px; } .pagelinks strong { background-color: var(--button-color) !important; color: #ffffff !important; padding: 2px 5px; border-radius: 3px; } .error, .success, .warning { background-color: #3d2d2d !important; color: #ff9999 !important; border: 1px solid #663333 !important; padding: 10px; margin-bottom: 10px; border-radius: 4px; } .success { background-color: #2d3d2d !important; color: #99ff99 !important; border-color: #336633 !important; } .warning { background-color: #3d3d2d !important; color: #ffff99 !important; border-color: #666633 !important; } .dropmenu { background-color: var(--light-background) !important; border: 1px solid var(--border-color) !important; border-radius: 4px; } .dropmenu ul li a { color: var(--text-color) !important; } .dropmenu ul li a:hover { background-color: var(--medium-background) !important; color: var(--link-hover-color) !important; } #footerarea span.smalltext { color: var(--secondary-text-color) !important; } .img_normal, .img_new, .img_locked, .img_sticky, .img_announcement { filter: invert(0.8) brightness(0.9); } td.windowbg[width="20"][valign="middle"][align="center"] { background-color: var(--post-background) !important; } td.windowbg2[width="100%"][colspan="2"] { background-color: var(--post-alternate-background) !important; } table.bordercolor tr.windowbg td[width="48%"], table.bordercolor tr.windowbg2 td[width="14%"], table.bordercolor tr.windowbg2 td[width="5%"] { background-color: inherit !important; }
body.profile #bodyarea table.tborder > tbody > tr > td[width]:not([width="180"]) { width: 100% !important; display: block !important; box-sizing: border-box !important; padding: 0 !important; } body.profile #profile_content { width: 100% !important; box-sizing: border-box !important; overflow-x: hidden !important; } body.profile #profile_content table { width: 100% !important; table-layout: auto !important; max-width: 100% !important; box-sizing: border-box !important; } body.profile td.windowbg[colspan="2"] { width: 100% !important; display: block !important; box-sizing: border-box !important; padding: 8px !important; overflow-x: hidden !important; } body.profile .signature { width: 100% !important; max-width: 100% !important; box-sizing: border-box !important; overflow-x: hidden !important; word-wrap: break-word !important; overflow-wrap: break-word !important; } body.profile .signature-wrapper { border: 1px dashed var(--border-color) !important; padding: 5px !important; margin: 10px auto !important; box-sizing: border-box !important; max-width: calc(100% - 20px) !important; display: block !important; } body.profile .signature-wrapper > div[style*="inline-block"] { max-width: 100% !important; overflow-x: hidden !important; } `;
GM_addStyle(cssVariables + mainStyles);
function isolateSignatures() { const signatures = document.querySelectorAll('.signature');
signatures.forEach(signature => { if (signature.classList.contains('processed')) return; signature.classList.add('processed');
const parentTd = signature.closest('td'); if (parentTd) { parentTd.style.padding = '0'; parentTd.style.margin = '0'; }
const container = document.createElement('div'); container.style.display = 'inline-block'; container.style.marginTop = '0px'; container.style.maxWidth = '100%'; container.style.overflowX = 'hidden';
const clone = signature.cloneNode(true);
const shadow = container.attachShadow({ mode: 'open' });
const style = document.createElement('style'); style.textContent = ` :host { display: block !important; text-align: center !important; max-width: 100% !important; overflow-x: hidden !important; word-wrap: break-word !important; overflow-wrap: break-word !important; } img { max-width: 100% !important; height: auto !important; display: block !important; margin: 0 auto !important; } a { text-decoration: none !important; } a:hover { text-decoration: underline !important; } table { border-collapse: collapse !important; width: auto !important; max-width: 100% !important; margin: 0 auto !important; table-layout: auto !important; } td { padding: 3px !important; vertical-align: top !important; word-wrap: break-word !important; overflow-wrap: break-word !important; } span, font, div { display: inline-block; max-width: 100%; box-sizing: border-box; } p { margin: 0 !important; padding: 0 !important; } `;
shadow.appendChild(style); shadow.appendChild(clone);
const wrapperForCentering = document.createElement('div'); wrapperForCentering.classList.add('signature-wrapper'); wrapperForCentering.style.textAlign = 'center'; wrapperForCentering.style.width = '100%'; wrapperForCentering.appendChild(container);
signature.parentNode.replaceChild(wrapperForCentering, signature); }); }
function applyTrustColorFix() { const profileContent = document.getElementById('profile_content'); if (profileContent) { const trustSpan = profileContent.querySelector('span.trustscore'); if (trustSpan) { trustSpan.style.setProperty('color', '#FFFFFF', 'important'); trustSpan.style.backgroundColor = 'transparent'; const boldElement = trustSpan.querySelector('b'); if (boldElement) { boldElement.style.setProperty('color', '#FFFFFF', 'important'); } }
const trustTd = profileContent.querySelector('td[width="50%"][valign="middle"][align="left"]'); if (trustTd && trustTd.firstChild && trustTd.firstChild.nodeType === Node.TEXT_NODE && trustTd.firstChild.nodeValue.includes('Trust:')) { trustTd.style.setProperty('color', '#FFFFFF', 'important'); } } }
function setupProfileContentObserver() { const profileContent = document.getElementById('profile_content'); if (profileContent) { const observer = new MutationObserver(mutations => { let signatureMutated = false; let trustScoreMutated = false;
for (const mutation of mutations) { if (mutation.type === 'childList' && mutation.addedNodes.length > 0) { for (const node of mutation.addedNodes) { if (node.nodeType === 1) { if (node.classList.contains('signature') || node.querySelector('.signature')) { signatureMutated = true; } if (node.matches('span.trustscore') || node.querySelector('span.trustscore')) { trustScoreMutated = true; } } } } else if (mutation.type === 'attributes' && mutation.attributeName === 'style') { if (mutation.target.matches('span.trustscore')) { trustScoreMutated = true; } } }
if (signatureMutated) { isolateSignatures(); } if (trustScoreMutated) { applyTrustColorFix(); } });
observer.observe(profileContent, { attributes: true, childList: true, subtree: true }); } }
function setupBodyObserver() { const bodyObserver = new MutationObserver((mutations, observer) => { const profileContent = document.getElementById('profile_content'); if (profileContent) { applyTrustColorFix(); isolateSignatures(); setupProfileContentObserver(); observer.disconnect(); } });
bodyObserver.observe(document.body, { childList: true, subtree: true }); }
if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', () => { applyTrustColorFix(); isolateSignatures(); setupProfileContentObserver(); }); } else { applyTrustColorFix(); isolateSignatures(); setupProfileContentObserver(); }
setupBodyObserver(); })(); 
|
▄▄█████████████████▄▄ ▄█████████████████████▄ ███▀▀█████▀▀░░▀▀███████ ███▄░░▀▀░░▄▄██▄░░██████ █████░░░████████░░█████ ████▌░▄░░█████▀░░██████ ███▌░▐█▌░░▀▀▀▀░░▄██████ ███░░▌██░░▄░░▄█████████ ███▌░▀▄▀░░█▄░░█████████ ████▄░░░▄███▄░░▀▀█▀▀███ ██████████████▄▄░░░▄███ ▀█████████████████████▀ ▀▀█████████████████▀▀ | Rainbet.com CRYPTO CASINO & SPORTSBOOK | | | █▄█▄█▄███████▄█▄█▄█ ███████████████████ ███████████████████ ███████████████████ █████▀█▀▀▄▄▄▀██████ █████▀▄▀████░██████ █████░██░█▀▄███████ ████▄▀▀▄▄▀███████ █████████▄▀▄███ █████████████████ ███████████████████ ███████████████████ ███████████████████ | | | |
▄█████████▄ █████████ ██ ▄▄█░▄░▄█▄░▄░█▄▄ ▀██░▐█████▌░██▀ ▄█▄░▀▀▀▀▀░▄█▄ ▀▀▀█▄▄░▄▄█▀▀▀ ▀█▀░▀█▀
| 10K WEEKLY RACE | | 100K MONTHLY RACE | | | ██
█████
| ███████▄█ ██████████▄ ████████████▄▄ ████▄███████████▄ ██████████████████▄ ░▄█████████████████▄ ▄███████████████████▄ █████████████████▀████ ██████████▀███████████ ▀█████████████████████ ░████████████████████▀ ░░▀█████████████████▀ ████▀▀██████████▀▀ | ████████ ██████████████ |
|
|
|
joker_josue
Legendary
Offline
Activity: 2114
Merit: 6095
**In BTC since 2013**
|
 |
August 04, 2025, 05:48:34 PM Merited by PowerGlove (1) |
|
Is it only me, or, does it make sense to you, too, to take a convenience (experienced by some subset of PM-receiving users), and swap it for a very probable increase in privacy (experienced by basically every PM-sending user)?
I agree that the email notification is unnecessary, I have to include the full message. Just indicate the subject and the user who sent it. Or just say that we received a message. It might not solve the whole privacy problem, but it would at least reduce the number of intermediaries I'm working on a project that can help make messages more private. It is an external solution, but I believe it can be useful and effective. Soon I will have news.
|
.Winna.com.. | │ | ░░░░░░░▄▀▀▀ ░░█ █ █▒█ ▐▌▒▐▌ ▄▄▄█▒▒▒█▄▄▄ █████████████ █████████████ ▀███▀▒▀███▀
▄▄▄▄▄▄▄▄
| | ██████████████ █████████████▄ █████▄████████ ███▄███▄█████▌ ███▀▀█▀▀██████ ████▀▀▀█████▌█ ██████████████ ███████████▌██ █████▀▀▀██████
▄▄▄▄▄▄▄▄
| | | THE ULTIMATE CRYPTO ...CASINO & SPORTSBOOK... ───── ♠ ♥ ♣ ♦ ───── | | | ▄▄██▄▄ ▄▄████████▄▄ ▄██████████████▄ ████████████████ ████████████████ ████████████████ ▀██████████████▀ ▀██████████▀ ▀████▀
▄▄▄▄▄▄▄▄
| | ▄▄▀███▀▄▄ ▄███████████▄ ███████████████ ███▄▄█▄███▄█▄▄███ █████▀█████▀█████ █████████████████ ███████████████ ▀███████████▀ ▀▀█████▀▀
▄▄▄▄▄▄▄▄
| │ | ►
► | .....INSTANT..... WITHDRAWALS ...UP TO 30%... LOSSBACK | │ |
| │ |
PLAY NOW |
|
|
|
Cricktor
Legendary
Offline
Activity: 1218
Merit: 2851
|
Is it only me, or, does it make sense to you, too, to take a convenience (experienced by some subset of PM-receiving users), and swap it for a very probable increase in privacy (experienced by basically every PM-sending user)?
For a start, I don't send nor receive that many PMs, so no PM poweruser opinion here. I agree with you and I'd prefer to just get a notification email with the sole detail that I've a new PM, just that, nothing else. No sender name, no subject, no text body, much more privacy. If I had really sensitive PMs to exchange, I'd use encryption. I wish it were possible to deploy a GPG public key in user's own profile, which recipients of encrypted PMs could easily fetch for decryption and senders for encryption. So many wishes...
|
|
|
|
coinlary
Member

Offline
Activity: 91
Merit: 19
|
 |
August 04, 2025, 11:18:28 PM |
|
~
This looks nice, will check it out and probably tweak some changes too.
|
|
|
|
LoyceV
Legendary
Offline
Activity: 3766
Merit: 19520
Thick-Skinned Gang Leader and Golden Feather 2021
|
Is anyone else bothered by SMF externalizing PMs? Not really, because anyone can disable PM-notification-emails if they want to (but you have a point). in the name of convenience, the PMs you send are likely being re-sent to some outside server that you almost always have no dependable details on? (As in, who is the PM recipient's mailbox provider? I miss the days when email was easy (and not very private), but used for anything. Now, it's mostly used for automated notifications from companies, and because of privacy the actual message isn't included. I have to go to a website, login, go through 2FA because they know many users can't handle passwords, click through a few pages, and read the message. It's annoying and far too much work for something that's usually unimportant. On Bitcointalk on the other hand, all I have to do it go to the website, my browser keeps me logged in, and I can read any PM. I don't even read the content of the email notification, because the layout is less clear than the actual PM. So I wouldn't miss it if it's gone. (a1) The forum is already man-in-the-middled (courtesy of Cloudflare, which is an obvious intelligence-gathering nexus), so, chances are good that the forum's PMs are being collected anyway. How cool would it be if the forum has an easy to use client side encryption (like Protonmail)? PGP involves copy/pasting messages and even if I'd want to use it, it would be the rare exception amongst thousands of PMs. Privacy should be easy for mass-adoption. (a2) People should be encrypting sensitive correspondence. By encrypting everything by default, any outside observer wouldn't know if it's sensitive or not. I don't remember where I read it, but: "nobody has to know I have nothing to hide". (a3) It's very convenient to be able to entirely read incoming PMs without having to be signed-in to Bitcointalk. CTRL-N > b ENTER > click MESSAGES. The slowest part is loading the messages (with hundreds of pages). Unless you're not signed-in already, but I don't really see a reason for that on my own computer. Basically, e-mailed PM notifications would remain as-is, except that the "The message they sent you was:" part would no longer be included. I sent you a PM from LoyceBot2, just in case you've never seen what the email looks like: The message they sent you was:
(The body is omitted from this email because the sender is a newbie. Check the forum to read it.) That may be close enough to what you're suggesting, and it's already implemented (for Newbie-senders only).
|
¡uʍop ǝpᴉsdn pɐǝɥ ɹnoʎ ɥʇᴉʍ ʎuunɟ ʞool no⅄
|
|
|
dkbit98
Legendary
Offline
Activity: 2688
Merit: 8172
⚡ ₿ ⚡
|
 |
August 05, 2025, 02:56:23 PM |
|
Can't the PM have some end to end encryption? Like WhatsApp and other message software?
You could still rely on those third party servers to send the encrypted messages, but they would be encrypted, so nobody would be able to read them. Why cant this be implemented?
I would support adding something like that. Not long ago one forum member released browser based project, and that could also deliver some kind of encrypted communication between forum members. However, I don't think making something similar directly with forum code won't be that easy, but I could be wrong.
|
|
|
|
PowerGlove (OP)
|
Not really, because anyone can disable PM-notification-emails if they want to (but you have a point).
Yeah, but, that setting affects reception, not transmission. As in, if you disable e-mailed PM notifications, then the PMs you receive won't be duplicated over SMTP, but the PMs you send can still be. On Bitcointalk on the other hand, all I have to do it go to the website, my browser keeps me logged in, and I can read any PM. I don't even read the content of the email notification, because the layout is less clear than the actual PM. So I wouldn't miss it if it's gone.
Yup. That's kind of my point: If very few people have a genuine need (or at least, a deep appreciation) for the ability to be out-of-band sent HTML-stripped versions of the PMs they receive, then, I think the forum should take the message content itself out of any e-mailed PM notifications (for all the reasons I mentioned). If it were up to me, I'd take out the subject, the sender, and the instant-reply link, too, but, I can't see getting a change like that past theymos. How cool would it be if the forum has an easy to use client side encryption (like Protonmail)? PGP involves copy/pasting messages and even if I'd want to use it, it would be the rare exception amongst thousands of PMs. Privacy should be easy for mass-adoption.
By encrypting everything by default, any outside observer wouldn't know if it's sensitive or not. I don't remember where I read it, but: "nobody has to know I have nothing to hide".
Agreed. And it's something that I've considered doing more than once... There are three stumbling blocks (that I can see): (*) It would involve JavaScript and move Bitcointalk even further toward a state of not being able to work without scripting. (This doesn't bother me any, but, I'm aware that there are some no-JS folks out there that really bristle at being forced to enable browser scripting. I don't find their stance to be realistic, but, I can't say that I blame them for feeling the way that they do: Most programmers, and especially web developers, seem to have no problem with relying on a mutating nest of dependencies that they could never have written on their own, and therefore can't fully understand. You shouldn't accept a vouch from someone when it's about something that they don't understand. If you can't program a given thing from scratch, then you don't understand it.) (*) It would break PM search. (But, I don't see this as a huge problem. When I originally made this topic, I was working on a filter-by-user patch for PMs. That patch slipped through the cracks and I forgot about it, but, I left it in a close-to-finished state, and if I finish it now and manage to convince theymos to merge it, then, I could see a lack of server-side PM search being much less annoying. Eventually, I could implement client-side search based on server-side user-filtering, but, its first-use/uncached bandwidth usage would depend on how many PMs you've sent to or received from that particular user. I've also got some ideas around re-basing the whole PM system on top of a rank-dependent amount of per-user API-accessible storage, and I could make something like that work really efficiently, but, those ideas are too involved to unpack here.) (*) I forget the third point I was going to make. It was prolly good, though.  Anyway, when something gets complicated enough that I either can't see a way to very safely splice it into the existing software design, or I can see a way to do that but I expect it to be a huge uphill battle to get it merged, then, my energy wanes and I try to turn my attention back to very small improvements that don't leave much room for argument. I think what a lot of people don't really understand about me is that I'm in a very particular "mode" when I'm on Bitcointalk: I very rarely suggest (or code) the things that I personally want, because I realize that the things I want are radical, and I don't have the energy to argue for them in what I perceive to be a very change-resistant environment (I don't only mean the user base; I'm also referring to theymos, because, ultimately, things come down to, or are at least very affected by, what he personally likes and dislikes). I don't begrudge theymos his iron grip on Bitcointalk, because I understand it, and my own grip would be at least as tight if I were in his position, but, it leaves me in a situation where I know that I'm not going to be able to get things over a certain complexity-limit or even with a certain flavor past him. Unfortunately, I also know that I'm not really built for the kind of work that I get to do for the forum, and so I'm almost certainly going to run out of interest at some point and move on to things that I actually find stimulating (or at least ideologically satisfying). So, I'm stuck with the problem of how to intelligently ration out my dwindling supply of energy so that I can get the most amount of "good" done while I'm still around to affect things (not only that, but, I also have to make my decisions as smartly as I can in the presence of a tech lead that seems to lean very heavily toward inaction, and a community that sometimes makes either the mistake of engaging in far too much wishful thinking given the status quo, or the mistake of encouraging inaction by discussing things to death, instead of just saying: "Yeah, that would be an improvement. +1").CTRL-N > b ENTER > click MESSAGES. The slowest part is loading the messages (with hundreds of pages). Unless you're not signed-in already, but I don't really see a reason for that on my own computer.
Yup. That's the basis of that argument (not being signed-in). Like you, I have no need to read PMs without also being signed-in to Bitcointalk, but, like I said, I'm playing devil's advocate with all three of my arguments against implementing this change. That may be close enough to what you're suggesting, and it's already implemented (for Newbie-senders only).
Yup. That came up in a private conversation I had a while ago about this. Like most of the diffs I share on the forum, my expectation is that theymos will re-imagine them in terms of his own source tree (as in, I can't see anything besides 1.1.19, so it's often the case that my diffs are "wrong", but, he knows that, and can account for it).
|
|
|
|
|