dhwty / flist-messenger Goto Github PK
View Code? Open in Web Editor NEWA multi-platform desktop client for the F-Chat protocol.
A multi-platform desktop client for the F-Chat protocol.
Fortunately, Kira, Nisrae, and I have finally managed to document FKS, so there is no longer a question of syntax. Unfortunately, what the server returns is still up for interpretation.
>>IDN {"method":"ticket","account":"REDACTED","character":"Teal Deer","ticket":"fct_8b867bde66e0609c82a36717c3a859693855e3649345541a010f8f48e613ea0d","cname":"F-List Desktop Client","cversion":"0.8.3"}
Not serious, but definitely a thing. I may fix this one, myself.
That's because 0.9.0 isn't packed with a 'sounds' directory. The sounds are in /flist_messenger/. If you create the directory '/flist_messenger/sounds/', the problem solves itself.
This may also be the problem with highlights, but that wasn't throwing an error, so we'll see...
Build information:
$ pacman -Q cmake qt4 qt5-base gcc
cmake 2.8.11.2-1
qt4 4.8.5-1
qt5-base 5.0.2-2
gcc 4.8.1-1
General packaging suggestions:
0.8.4 bugs:
0.9.0 bugs:
Feature differences:
On Windows, if a message comes through and the application is not focussed, the taskbar icon is highlighted indefinitely. On Linux, it appears to always blink ten times. I notice that "http://doc-snapshot.qt-project.org/qt5-stable/qtgui/qwindow.html" has the following excerpt:
void QWindow::alert(int msec) [slot]
Causes an alert to be shown for msec miliseconds. If msec is 0 (the default), then the alert is shown indefinitely until the window becomes active again. In alert state, the window indicates that it demands attention, for example by flashing or bouncing the taskbar entry. This function was introduced in QtGui 5.1.
Perhaps this can be implemented to provide feature parity, given Qt 5.1 just got released and should be rolling out to all platforms very soon.
Feature Requests:
The ability to save two channels= options, one per character. Perhaps Character_Name-channels=?
Right-clicking a username and selecting 'Open Profile' sometimes freezes and crashes the client.
If your password contains '%' or certain other non-alphanumeric characters, it may cause a password mismatch error. Changing your password will make it work.
Reported:
Three people, three POSIX systems, the same problem. If you don't start from the console and in the directory that contains the executable, this happens:
From Silent-Hunter using Fedora 16 x86_64:
silent@TERMINAL-BMRF-9 build$ ./flist_messenger
ASSERT failure in QList::operator[]: "index out of range", file /usr/include/QtCore/qlist.h, line 477
Aborted (core dumped)
From [Kurt Grey](http://www.f-list.net/c/Kurt Grey) using Mac OS 10.6:
Last login: Thu Apr 11 03:36:24 on ttys003
/Users/XXXXX/Downloads/fchat0.8.4/flist_messenger ; exit;
XXXXX-Macintosh:~ XXXXX$ /Users/XXXXX/Downloads/fchat0.8.4/flist_messenger ; exit;
ASSERT failure in QList::operator[]: "index out of range", file /usr/local/Cellar/qt/4.8.4/include/QtCore/qlist.h, line 477
Abort trap
logout
From my system using Ubuntu 12.04 x86:
[21:23:52][dhwty@muraki ~/Downloads/F-Chat/F-List Messenger 0.9.0]$ ./flist_messenger/flist_messenger
ASSERT failure in QList::operator[]: "index out of range", file /usr/include/qt5/QtCore/qlist.h, line 462
Aborted (core dumped)
It looks like it's finding the executable, but it may not be finding any of the config files, since Silent-Hunter seems to be starting from the build/
directory, which would mean the exe is there, but the configs aren't.
Copying the contents of this misplaced bug report, so I can close the original. You and I tested this, the same day the report was filed, apparently, and we couldn't reproduce the problem.
Browser: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.152 Safari/537.22
at 13 Mar,2013 9:59:33 PM
Bug report:
Dice rolls in a room showed up in my PM's (Desktop Client), and then all instances of my f-chat crashed.
The same thing happened again when other people rolled die in the same room.
Reproduction steps:
I was using F-list Messenger 0.8.3
Discussing in a PM/Whisper
A dice roll message from another room was displayed in the PM and the characters I was logged in both crashed.
Posted at 13 Mar,2013 10:12:38 PM by Teal Deer
I can't reproduce this problem. In fact, Viona and I just rolled dice in the Desktop Client channel, and I don't think we lost anyone.
Starting the client with a dual-screen setup causes the client to split across the screens.
Reported:
/clear
- #30/logout
/profile [username]
PRO | PRD/kinks [username]
KIN | KID/who
- possibly not strictly necessary, because sidebar list./users
/ignorelist
IGN | IGN/close
LCH | LCH - #32 (Despite the fact that /leave
works, the official command (according to the wiki) is /close
, so people are going to be just as confused as me, until this is fixed.)/getdescription
/setowner
CSO/ctimeout
And since we're talking commands... can I pleeeease have a /search
command that more or less takes raw FKS requests for an arguments? Gotta be easier that writing the GUI for FKS, right?
At least one of these is Mac only. Others seem to apply in Linux, as well. Haven't tested in Windows.
Kurt: I'm trying to make a room. I typed in the room name. [Enter] won't automatically hit the submit button for me. Tab doesn't even go anywhere. So it's not either. Enter doesn't work on the set status page either. Nor can I tab through settings. Or press enter from the 'notify me on these words' textfield.
Dhwty: Tab/enter works on status. Hm, no, your enter problems seem to be a Mac thing. I can hit enter from the status field, and it submits.
Kurt: Oh! Wait a moment. Okay, enter does work from the status message box. But I can't tab into the your status box. It doesn't focus.
Dhwty: Checking this...
Kurt: I can't get the blue outline around it. If you select something from 'Your Status', it doesn't select.
Dhwty: Hmm. I can tab into it from the selection field.
Kurt: The typing bar stays the focus. I can't tab or shift tab into it.
Dhwty: Wow, yeah, can tab out of the select box, but can't tab into it.
Kurt: I can't SELECT the select box. Right, just for entertainment value. Select the away status. Click the status dropdown, and choose 'Away'.
Dhwty: No, apparently, I can tab into the select box, it just doesn't show me I've done it.
Kurt: Then, immediately press the up arrow.
Dhwty: nods Works fine. Selects Looking.
Kurt: Does not work here. No matter what I pick, the blue outline is on 'status message:'
Quickly disconnecting and reconnecting may cause broken login, where the client believes it has connected, but no data is sent to or received from the server.
So, I'm not sure if this is caused by certain characters in channel names, because I remember that causing some display problems in the 2.0 webclient, and I know there's a bug report for that somewhere... One tab open with a pm, typed /prooms
in the console, got this in the terminal. Can reproduce this on command. (Can also reproduce this with /channels
.)
>>CHA
>>ORS
<<CHA
{"channels":[{"name":"All in the Family","mode":"both","characters":100},{"name":"Dragons","mode":"both","characters":128},{"name":"Aquatics","mode":"chat","characters":17},{"name":"Gamers","mode":"chat","characters":115},{"name":"Watersports","mode":"both","characters":62},{"name":"Love and Affection","mode":"both","characters":67},{"name":"Muscle Bound","mode":"both","characters":91},{"name":"Politics","mode":"chat","characters":4},{"name":"Literate Roleplayers","mode":"both","characters":122},{"name":"Vore","mode":"both","characters":136},{"name":"Artists / Writers","mode":"both","characters":29},{"name":"RP Bar","mode":"both","characters":63},{"name":"German Furry","mode":"both","characters":6},{"name":"Cuntboys","mode":"both","characters":37},{"name":"RP Pokefurs","mode":"chat","characters":18},{"name":"Custom Kinks Sharing","mode":"both","characters":21},{"name":"Xenophiles","mode":"chat","characters":51},{"name":"Monster's Lair","mode":"both","characters":156},{"name":"Fantasy","mode":"both","characters":133},{"name":"Ferals / Bestiality","mode":"both","characters":155},{"name":"Femdom","mode":"both","characters":79},{"name":"Hyper Endowed","mode":"both","characters":140},{"name":"Lesbians","mode":"both","characters":67},{"name":"Straight Roleplay","mode":"both","characters":37},{"name":"Canon Characters","mode":"both","characters":225},{"name":"Ass Play","mode":"both","characters":103},{"name":"German IC","mode":"both","characters":17},{"name":"Avians","mode":"chat","characters":21},{"name":"Femboy","mode":"both","characters":110},{"name":"RP Dark City","mode":"both","characters":67},{"name":"Growth","mode":"both","characters":62},{"name":"Fat and Pudgy","mode":"both","characters":98},{"name":"Newbie Help","mode":"both","characters":3},{"name":"Force/Non-Con","mode":"both","characters":150},{"name":"The Slob Den","mode":"both","characters":41},{"name":"Inflation","mode":"both","characters":49},{"name":"Obscene Boundaries","mode":"both","characters":69},{"name":"Frontpage","mode":"chat","characters":1094},{"name":"Micro/Macro","mode":"both","characters":85},{"name":"Scat Play","mode":"both","characters":53},{"name":"Humans/Humanoids","mode":"chat","characters":52},{"name":"Domination/Submission","mode":"both","characters":140},{"name":"Diapers/Infantilism","mode":"both","characters":42},{"name":"Sadism/Masochism","mode":"both","characters":48},{"name":"Cum Lovers","mode":"both","characters":131},{"name":"Canon Characters OOC","mode":"both","characters":112},{"name":"Ageplay","mode":"both","characters":239},{"name":"Sex Driven LFRP","mode":"ads","characters":1091},{"name":"Cum Inflation","mode":"both","characters":78},{"name":"Mind Control","mode":"both","characters":91},{"name":"Sergals and Sergal lovers","mode":"chat","characters":32},{"name":"Medical Play","mode":"both","characters":15},{"name":"Furries","mode":"chat","characters":59},{"name":"Pregnancy and Impregnation","mode":"both","characters":150},{"name":"Warhammer General","mode":"both","characters":16},{"name":"Latex","mode":"both","characters":32},{"name":"Transformation","mode":"both","characters":99},{"name":"Helpdesk","mode":"chat","characters":6},{"name":"Sci-fi","mode":"both","characters":101},{"name":"Footplay","mode":"both","characters":79},{"name":"Gay Males","mode":"both","characters":118},{"name":"German OOC","mode":"both","characters":31},{"name":"Pokefurs","mode":"both","characters":132},{"name":"RP Nudist Camp","mode":"both","characters":13},{"name":"Non-Sex Driven LFRP","mode":"ads","characters":240},{"name":"F-chat Desktop Client","mode":"chat","characters":31},{"name":"Development","mode":"chat","characters":3},{"name":"Size Difference","mode":"both","characters":93},{"name":"Equestria ","mode":"both","characters":48},{"name":"Hermaphrodites","mode":"both","characters":168},{"name":"Digimon","mode":"both","characters":31},{"name":"Bondage","mode":"both","characters":69},{"name":"World of Warcraft","mode":"both","characters":89}]}
[1]+ Segmentation fault (core dumped) ./flist_messenger
What it says on the tin.
"content-type missing in HTTP POST, defaulting to application/x-www-form-urlencoded. Use QNetworkRequest::setHeader() to fix this problem."
You can only see this if you launch from the terminal and watch, but it's there. It's between login and character select. Probably a pretty easy fix.
PMs do not ping when they are the open tab, even with "Always ping on PM/Highlight" set.
Attempting to log in without a password produces an error window with no message.
I know this was reported as fixed in this version, but someone appears to still be having this problem.
So, I kept poking that highlight problem ( #35 ), and it came out that I'm not getting dropped into Frontpage, when the client starts. There doesn't seem to be a problem saving changes from Settings into settings.ini, but it doesn't save channels (thank god, because I can't close channels) and I don't think it's reading it on startup.
Adding a new word to the list will not cause that word to highlight, until the client is restarted.
I have no idea what it's supposed to say, but I'm pretty sure it's not 'login'.
Saving settings causes open channels to save in reverse order.
Just what it says. They render as plain text. Until some other server-side stuff gets straightened out, this may not get fixed.
The "Always ping on PM/Highlight" option doesn't stay set. I'm not sure this one isn't already fixed. I'll close it if it is.
On Linux, a less than interpretable error message when 'colors.ini' is not found:
ASSERT failure in QList::operator[]: "index out of range", file /usr/include/QtCore/qlist.h, line 477
Aborted
Yeah, so, I was reading the code, and it suddenly occurred to me that a whole lot of UI bugs I've reported all have the same cause: the contents of the function are commented. So, here's the master list of all the commented shit in the UI, and whether it's been rewritten, yet.
I think that's all of it. Merging #32 and #34 into this.
[EDIT] Two more from Kurt. I have to check the code for these:
"QObject::connect: No such slot FGui::inputChanged() in gui/flist_gui.cpp:191"
"QObject::connect: No such slot FGui::btnSendChatClicked() in gui/flist_gui.cpp:202"
Up and Down arrow selections in the userlist deselect after a few seconds, untouched.
Kurt and I have no earthly idea what's going on, here.
Kurt: It looks like what happened didn't get logged. As in, there was an entirely OK <<NLN. And then a failed (something).
Dhwty: Probably someone coming into the room. It's either that or a user link in an advert.
Kurt: I'm wondering. It was a failure in setGender. So... Are all of the genders definitely set and well defined? I'm trying to analyse what +54 is. It just sets charGender to a constant. So I'm assuming either the lgender didn't match (which can't be the case, because then it would have just used GENDER_NONE... Or one of these GENDER_X don't exist. They do exist, though.
Dhwty: Yeah, which makes this particularly weird.
Kurt: I'm wondering if the hyphen gets parsed badly. You know, because it turns the gender lowercase.
Dhwty: So, it'd be either cunt-boy or male-herm
(Except it's not. We checked that.)
Kurt: What would be nice is if the message was printed to console in parseCommand. i.e. BEFORE any possible crash in processing.
Dhwty: I'm really starting to think it's JCH.
Kurt: Sorry to burst your bubble, but it cannot have been. Because I was only in one private room I made and invited nobody to.
Dhwty: Oh, fail. NLN, FLN, and STA are the three most common message types, with JCH out of the way.
Kurt: I mean, there is one thing to try. If I push those messages to std::cerr instead of std::cout. That might let me see it. std::cerr goes to STDERR, which is a character buffered output file descriptor, so every message is written one letter at a time. std::cout goes to STDOUT, which is a line-buffered FD.
Kurt: SEGFAULT! On setGender. With... The exact same message as before. As in, not the right one. Every time, the segfault has happened after an NLN for one of my friends/bookmarks. Maybe that's a pattern.
Dhwty: Ok, so it's happening in the friends online list. That's what we were missing. Because that's the only place an NLN would call setGender.
Dhwty: Except... why is it calling setGender, if it's not displaying the list? Friends online messages, maybe? Connection of somebody else usually goes NLN, STA, JCH.
Kurt: Weird. Because other friends are NLNing me just fine.
Dhwty: Hm. Is it a reconnect after disconnect problem? Like NLN FLN NLN 'Cause that would make it a problem, maybe, with something getting set by FLN and not getting unset/reset by NLN.
Kurt: Nope. I even asked the same person who it crashed on before to disconnect and reconnect. And it didn't crash second time.
This is actually kind of serious. I can get into rooms, just fine, but I can't figure out how to get out of them.
What it says on the tin.
Straight from Kurt:
"I'm seeing a lot of warnings that the UI elements on first draw aren't set to be 'free'd when necessary. I'm not sure if Qt just doesn't do that. Or if there is an autorelease pool that's missing."
"OS X's user interface is written in Objective-C, and in that the method of telling the compiler a set of UI elements that should be thrown away at once at the end is weird as hell."
Error message:
__NSAutoreleaseNoPool():Object 0x102905130 of class NSCustomReleaseData autoreleased with no pool in place - just leaking
Seriously. There's nothing attached to this button. It doesn't even have an error.
[Kurt Grey](http://www.f-list.net/c/Kurt Grey) was kind enough to compile 0.8.4, and take a shot at breaking it.
/me
commands) renders italics-only text. (See screenshot below)I need to go add a label for 'program is not usable for intended purpose until this bug is fixed'...
Apparently, messages I send will show just fine, but incoming messages just add a blank line. Switching tabs will cause the timestamps for those messages to show, but not the messages.
[EDIT] And here's why:
`<<MSG {"channel":"ADH-2dbb9c57b136ac5ecab5","message":"this is a test","character":"Jinni Wicked"}
Scraped that from the messages in the terminal. Channel messages are getting routed incorrectly.
[EDIT2] Super-interesting: RP ads and PMs are getting routed to both the tab and the debug log, which is probably what's supposed to happen.
[EDIT3] Super-wonky: only LRP works on the Mac. PRI and MSG only print to the terminal.
Yep. It does. I'm going to fix that in like... the next ten minutes. Unfortunately, anyone who wants that fix is still going to have to build from source, because I have no Windows machine to compile on.
I expect 0.9.0 will be correctly labelled.
QObject::connect: No such slot FGui::destroyMenu() in /home/thoth/Downloads/F-Chat/F-List Messenger 0.9.0/flist_messenger/gui/flist_gui.cpp:1540
QObject::connect: (receiver name: 'MainWindow')
I'm assuming the second bit is supposed to do that. The first part looks suspiciously like an error message.
Haven't checked kick or ban yet.
"[2:27 AM] Sea has joined the channel."
It's great that this shows up in the console, but it would be even more great if it included the channel name.
This may be me not completely understanding how SFC works, because I don't get staff messages. However, I think this is broken. If it's not, laugh at me and close it.
Here's the raw from the debug log:
http://www.f-list.net/json/api/report-submit.php?account=REDACTED&character=Jinni Wicked&ticket=fct_758d96f072a574bfb536fbb0a0b9be3fe94191297aa27298242bfb668458e968
content-type missing in HTTP POST, defaulting to application/x-www-form-urlencoded. Use QNetworkRequest::setHeader() to fix this problem.
6666
>>SFC {"action":"report","character":"Jinni Wicked","report":"Current Tab\/Channel: Sex Driven LFRP | Reporting User: REDACTED | Last ad in Sex Driven LFRP, by this user contains the line 'Overal naughty OOC chat welcome as well.' Relevant logs are at about 2 minutes past the hour.","logid":"6666"}
<<SYS {"message":"The moderators have been alerted."}
In the 'Settings' window, the tabs change colour, when selected. The background changes to light blue (supposed to happen) and the text to white/grey (not supposed to happen). The text is intended to remain black, so I'm not sure what's getting called here that isn't getting called on buttons, because the 'Save' button doesn't do it.
I know /clear is completely clientside code, but it... half-worked in 0.8.4, and it doesn't do anything now.
Appended lines do not pick up CSS. Originally reported in 0.8.1, confirmed persistent in 0.8.4.
Cannot bookmark/friend users from the client.
I can't get anything out of the debug log, here, so I'm guessing this is just unimplemented.
[EDIT] This appears to be part of a larger problem at #41 where settings.ini just isn't getting read, or not read all the way through.
Kurt says:
Going back to the Inspector complaint. OS X has two types of windows. Windows that are used to see things always... And tool windows that are useful only within the context of that application. (An idea would be that drawing tools would disappear entirely if you were no longer on Paint.) Notice that F-Chat Channels stays when I stay within the context of the application... But if I focus the terminal? It's gone.
I'm not sure this is advisable behaviour for one reason and one reason alone. I want to make a room, hurrdurr. I want to click away, hurrdurr. I need to focus F-List messenger again. Wait, where's the window? Oh, yeah, this window is now IN FRONT of that other window. There it is!
Inspector windows only should be used to the SIDE of the other window. Generally you have them pop out of the left or the right. Or they're set to be 'always on top'.
So, I'm thinking maybe 'always on top' is the answer, here? He's talking about the main messenger window blocking out the windows it spawns, if you tab away and then back.
I believe this may be because it only filters MSG and not LRP.
Highlight words ping when they are part of another word that is said. (Del/delete, ice/nice)
/clear reverses itself, if you switch tabs and then return to the cleared tab.
'Copy Link Location' sticks '#LNK-' at the beginning of the copied URL.
"Socket Error: The remote host closed the connection", followed by display of console, but not connected to server.
This is usually a user-side problem, and related to something blocking websockets. However, I think a more descriptive error message is called for, because this one seems to point the finger at the server.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.