GithubHelp home page GithubHelp logo

luch00 / lxbtsc Goto Github PK

View Code? Open in Web Editor NEW
22.0 4.0 5.0 5.26 MB

Better Chat plugin for TeamSpeak 3 enables rich content for text chat

License: GNU General Public License v3.0

C 35.50% Objective-C 10.34% C++ 27.29% HTML 2.13% CSS 3.31% JavaScript 21.08% QMake 0.35%
teamspeak3 teamspeak3-plugin text-chat chat

lxbtsc's Introduction

Better Chat plugin for TeamSpeak 3

Build status

Releases: Here

Automatic build for current master: Windows 64bit only

What does it do?

  • Plugin inserts a new chat widget into TeamSpeak UI on top of the regular one
    • The new widget is based on QWebEngine (Chromium 69)
    • Enables html/css/javascript to be used to style, script and embed content into the chat
    • Option to have avatars in chat
    • Enables custom emotes easily shareable via Teamspeak server file system, packages or external urls

What does it NOT do

Features

Style with css, for example show user avatars in chat

Animated emotes & no size restrictions

Emotes

Embed linked images, youtube, tweets etc...

Youtube

Twitter

Building

Windows

Visual Studio 2017

Visual Studio 2017 (v141) toolset

Windows 8.1/10 SDK

Qt Visual Studio Tools

Qt 5.12.3

Building QWebEngine

With proprietary codecs enabled on Windows https://doc.qt.io/qt-5.12/qtwebengine-platform-notes.html

Install everything mentioned in above section

Install Python 2.7, Bison & Flex, GPerf

Make sure everything is in system PATH

Open Visual Studio 2017 x64 Developer Command Prompt and navigate to webengine directory in Qt sources

Run

qmake -- -webengine-proprietary-codecs
nmake

Thats it, hours later compilation should be done 😄. Paste the resulting QWebEngine files to teamspeak directory.

Linux

Install Qt sdk and in the project directory run:

qmake -config release
make

Debugging

To debug the javascript side of things, add the environment variable

QTWEBENGINE_REMOTE_DEBUGGING=PORT

and point your browser to http://127.0.0.1:PORT/

lxbtsc's People

Contributors

bluscream avatar luch00 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

lxbtsc's Issues

Bugs and Issues

First of all, this is a great addon. However, while I was playing around with user styles I came across a couple of points, some probably part of the restrictions (but without a list I can't tell for sure).

  • 'Clear and Reload Chat' doesn't display new messages in current Better Chat tab until "refreshed" (leave tab and switch back)
  • Server errors are not printed in Better Chat
  • Certain Info messages are not printed in Better Chat ('Trying to resolve hostname', 'Trying to connect to server on', 'Banned', 'Connected to', etc)
  • Pokes are not printed in Better Chat
  • Info Messages Icon (anything that is printed by server - purely visual)
  • Placeholder avatar is overlaid with Broken Image icon (fancybox related? (The requested content cannot be loaded. Please try again later.))
  • Emoticon menu doesn't work in Toggled chat (TeamSpeak default) while Better Chat is enabled

Cheers

Load tab history

The client has a few native options of logging a lot of data to appdata
image
These options allow any text in the tabs to be loaded back on application startup, which makes it a lot easier to find old content.
Having this feature ported over would help. But I would not consider embedding any of these elements as rich objects. History could be mad long, application would shit itself

font and text and settings to bright and big

great awesome plugin but the only down drop is the settings windows is all white and u cant see what settings are what, you can just barely see the tick boxses but dont no what they do,

the other issue is , when u toggle chat from normal to better chat style, the text is way to large and cuts out alot of the normal messages like server messages and so on, but nice to have the style of better chat to show all normal font and size, with the emotes and so on showing the preview of say a video u post in the chat,

Force emote reload

Is it possible that maybe a way to check if the emotes.json has changed? such as if someone types /emotereload in the serverchat box or something along those lines.

Proxy support

I dont know if QNetworkRequest supports http proxies but if yes, it would be great if users can set one in the config ui

  • HTTP
  • HTTPS
  • Socks 4
  • Socks 5

Der Prozedureinsprungpunkt wurde in der DLL nicht gefunden.

---------------------------
ts3client_win64.exe - Einsprungpunkt nicht gefunden
---------------------------
Der Prozedureinsprungpunkt "?dropEvent@QWebEngineView@@MEAAXPEAVQDropEvent@@@Z" wurde in der DLL "C:\Users\blusc\AppData\Roaming\TS3Client\plugins\QtLxBTSC_win64.dll" nicht gefunden. 
---------------------------
OK   
---------------------------

I get this error since the latest update (even on master)

text size

how do i make font smaller? text in chat is a little larger than i'd like.

Plugin print messages

Could you find a way to tunnel printMessage() and printMessageToCurrentTab() messages to your chatwidget?

[Suggestion] Config Dialog

Please add a small Qt settings widget that shows up on onConfigure where users can toggle the different embeds and change the most common colors (currently just )

Plugin messages feature

Kinda like the old GroupChat Plugin, which allows users of the plugin to argue hipster style without anyone else knowing 👀

It should be usable to send server, channel and client plugin messages which get shown in the recievers chat (toggable ofc)

Just need to check which tab is open when recieving the /lxb chat <msg> command and send it there.

We could also use https://github.com/ReSpeak/TsPressor/blob/master/src/lib.rs to compress and obfuscate it.

The plugincmd should look like this: <senderclid>|<targetmode>|<targetid|0>|<compressedMSG>

Youtube embeds broken

Teamspeak reinstall the addon after a fresh install of arch linux and now the youtube embeds are not working i already tried reinstalling the addon and still no luck

Create functions for get*URL

Like the python example

    def clientURL(self, schid=None, clid=1, uid=None, nickname=None, encodednick=None):
        if schid == None:
            try: schid = ts3lib.getCurrentServerConnectionHandlerID()
            except: pass
        if uid == None:
            try: (error, uid) = ts3lib.getClientVariableAsString(schid, clid, ts3defines.ClientProperties.CLIENT_UNIQUE_IDENTIFIER)
            except: pass
        if nickname == None:
            try: (error, nickname) = ts3lib.getClientVariableAsString(schid, clid, ts3defines.ClientProperties.CLIENT_NICKNAME)
            except: nickname = uid
        if encodednick == None:
            try: encodednick = urlencode(nickname)
            except: pass
        return "[url=client://{0}/{1}~{2}]{3}[/url]".format(clid, uid, encodednick, nickname)

but same for channel and server links

  • ClientURL:
string getClientURL(uint64 schid, anyID clid) {
    return "[url=client://{clid}/{uid}~{encodednick}]\"{nick}\"[/url]"
}
  • ChannelURL:
string getChannelURL(uint64 schid, anyID cid) {
    return "[url=channel://{cid}]\"{name}\"[/url]"
}
  • ServerURL:
string getServerURL(uint64 schid) {
    return "[url=channel://0]\"{server}\"[/url]"
}

Dependencies?

Can you provide some infos on the dependencies?

It seems like you didn't include Teamspeaks plugin api, i figured i'd have to put their files in QtLxBTSC/teamspeak and QtLxBTSC/teamlog.

What about the missing bbcode_parser.h? Is it https://github.com/mrataj/BBCodeParser ?

Console tab

It would be so incredible awesome if you could add a (4th) tab when the client was started with the -c (shorthand for -console) parameter so that one could have access to the stdout and stderr without the need of the ugly windows cmd or unix terminal?

I would even pay you for that :)

[Suggestion] Restyle successful embeds.

I don't think successfull embeds need the additional url so it would be nice if these messages would just contain the embed itself.
Also for 'bigger' messages it would be nice to have the author in the 'middle' rather than the top:

grafik

Update readme

We shouod update the gif in the readme to showcase more stuff that's already implemented :)

Restyle iframes?

How would i restyle embeds like the github one? On Dark styles it's hard to read

Linker error on build

Hello,
when trying to build the code myself i receive lots of linker errors.
Im using the dependencies linked in the readme, did anyone make experiences with similar errors?

Schweregrad	Code	Beschreibung	Projekt	Datei	Zeile	Unterdrückungszustand
Fehler	LNK2001	Nicht aufgelöstes externes Symbol ""public: virtual void * __cdecl ConfigWidget::qt_metacast(char const *)" (?qt_metacast@ConfigWidget@@UEAAPEAXPEBD@Z)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\ConfigWidget.obj	1
	
Fehler	LNK2001	Nicht aufgelöstes externes Symbol ""public: virtual struct QMetaObject const * __cdecl ConfigWidget::metaObject(void)const " (?metaObject@ConfigWidget@@UEBAPEBUQMetaObject@@XZ)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\ConfigWidget.obj	1	

Fehler	LNK2001	Nicht aufgelöstes externes Symbol ""public: virtual int __cdecl ConfigWidget::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@ConfigWidget@@UEAAHW4Call@QMetaObject@@HPEAPEAX@Z)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\ConfigWidget.obj	1	

Fehler	LNK2019	Verweis auf nicht aufgelöstes externes Symbol ""public: void __cdecl ConfigWidget::configChanged(void)" (?configChanged@ConfigWidget@@QEAAXXZ)" in Funktion ""private: void __cdecl ConfigWidget::save(void)" (?save@ConfigWidget@@AEAAXXZ)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\ConfigWidget.obj	1	

Fehler	LNK2001	Nicht aufgelöstes externes Symbol ""public: void __cdecl ConfigWidget::configChanged(void)" (?configChanged@ConfigWidget@@QEAAXXZ)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\PluginHelper.obj	1
	
Fehler	LNK2001	Nicht aufgelöstes externes Symbol ""public: virtual struct QMetaObject const * __cdecl FileTransferItemWidget::metaObject(void)const " (?metaObject@FileTransferItemWidget@@UEBAPEBUQMetaObject@@XZ)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\FileTransferItemWidget.obj	1	

Fehler	LNK2001	Nicht aufgelöstes externes Symbol ""public: virtual void * __cdecl FileTransferItemWidget::qt_metacast(char const *)" (?qt_metacast@FileTransferItemWidget@@UEAAPEAXPEBD@Z)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\FileTransferItemWidget.obj	1	

Fehler	LNK2001	Nicht aufgelöstes externes Symbol ""public: virtual int __cdecl FileTransferItemWidget::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@FileTransferItemWidget@@UEAAHW4Call@QMetaObject@@HPEAPEAX@Z)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\FileTransferItemWidget.obj	1
	
Fehler	LNK2019	Verweis auf nicht aufgelöstes externes Symbol ""public: void __cdecl FileTransferItemWidget::cancelTransfer(unsigned short)" (?cancelTransfer@FileTransferItemWidget@@QEAAXG@Z)" in Funktion ""public: void __cdecl FileTransferItemWidget::cancelClicked(void)" (?cancelClicked@FileTransferItemWidget@@QEAAXXZ)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\FileTransferItemWidget.obj	1
	
Fehler	LNK2001	Nicht aufgelöstes externes Symbol ""public: void __cdecl FileTransferItemWidget::cancelTransfer(unsigned short)" (?cancelTransfer@FileTransferItemWidget@@QEAAXG@Z)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\FileTransferListWidget.obj	1	

Fehler	LNK2001	Nicht aufgelöstes externes Symbol ""public: virtual struct QMetaObject const * __cdecl FileTransferListWidget::metaObject(void)const " (?metaObject@FileTransferListWidget@@UEBAPEBUQMetaObject@@XZ)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\FileTransferListWidget.obj	1	

Fehler	LNK2001	Nicht aufgelöstes externes Symbol ""public: virtual void * __cdecl FileTransferListWidget::qt_metacast(char const *)" (?qt_metacast@FileTransferListWidget@@UEAAPEAXPEBD@Z)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\FileTransferListWidget.obj	1	

Fehler	LNK2001	Nicht aufgelöstes externes Symbol ""public: virtual int __cdecl FileTransferListWidget::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@FileTransferListWidget@@UEAAHW4Call@QMetaObject@@HPEAPEAX@Z)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\FileTransferListWidget.obj	1	

Fehler	LNK2019	Verweis auf nicht aufgelöstes externes Symbol ""public: void __cdecl FileTransferListWidget::showTransferCompletePop(class QString)" (?showTransferCompletePop@FileTransferListWidget@@QEAAXVQString@@@Z)" in Funktion ""public: void __cdecl FileTransferListWidget::transferStatusChanged(unsigned short,unsigned int)" (?transferStatusChanged@FileTransferListWidget@@QEAAXGI@Z)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\FileTransferListWidget.obj	1	

Fehler	LNK2019	Verweis auf nicht aufgelöstes externes Symbol ""public: void __cdecl FileTransferListWidget::transferComplete(unsigned short)" (?transferComplete@FileTransferListWidget@@QEAAXG@Z)" in Funktion ""private: void __cdecl FileTransferListWidget::addTransferItem(unsigned short,class QString)" (?addTransferItem@FileTransferListWidget@@AEAAXGVQString@@@Z)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\FileTransferListWidget.obj	1	

Fehler	LNK2019	Verweis auf nicht aufgelöstes externes Symbol ""public: void __cdecl FileTransferListWidget::transferCancelled(unsigned short)" (?transferCancelled@FileTransferListWidget@@QEAAXG@Z)" in Funktion ""private: void __cdecl FileTransferListWidget::addTransferItem(unsigned short,class QString)" (?addTransferItem@FileTransferListWidget@@AEAAXGVQString@@@Z)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\FileTransferListWidget.obj	1	

Fehler	LNK2019	Verweis auf nicht aufgelöstes externes Symbol ""public: void __cdecl FileTransferListWidget::transferFailed(void)" (?transferFailed@FileTransferListWidget@@QEAAXXZ)" in Funktion ""private: void __cdecl FileTransferListWidget::startDownload(void)" (?startDownload@FileTransferListWidget@@AEAAXXZ)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\FileTransferListWidget.obj	1	
Fehler	LNK2001	Nicht aufgelöstes externes Symbol ""public: void __cdecl FileTransferListWidget::transferFailed(void)" (?transferFailed@FileTransferListWidget@@QEAAXXZ)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\PluginHelper.obj	1	

Fehler	LNK2019	Verweis auf nicht aufgelöstes externes Symbol ""public: static struct QMetaObject const FileTransferItemWidget::staticMetaObject" (?staticMetaObject@FileTransferItemWidget@@2UQMetaObject@@B)" in Funktion ""private: void __cdecl FileTransferListWidget::addTransferItem(unsigned short,class QString)" (?addTransferItem@FileTransferListWidget@@AEAAXGVQString@@@Z)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\FileTransferListWidget.obj	1	

Fehler	LNK2019	Verweis auf nicht aufgelöstes externes Symbol ""public: static struct QMetaObject const FileTransferListWidget::staticMetaObject" (?staticMetaObject@FileTransferListWidget@@2UQMetaObject@@B)" in Funktion ""private: void __cdecl FileTransferListWidget::addTransferItem(unsigned short,class QString)" (?addTransferItem@FileTransferListWidget@@AEAAXGVQString@@@Z)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\FileTransferListWidget.obj	1	

Fehler	LNK2001	Nicht aufgelöstes externes Symbol ""public: static struct QMetaObject const FileTransferListWidget::staticMetaObject" (?staticMetaObject@FileTransferListWidget@@2UQMetaObject@@B)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\PluginHelper.obj	1	

Fehler	LNK2001	Nicht aufgelöstes externes Symbol ""public: virtual struct QMetaObject const * __cdecl FullScreenWindow::metaObject(void)const " (?metaObject@FullScreenWindow@@UEBAPEBUQMetaObject@@XZ)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\FullScreenWindow.obj	1	

Fehler	LNK2001	Nicht aufgelöstes externes Symbol ""public: virtual void * __cdecl FullScreenWindow::qt_metacast(char const *)" (?qt_metacast@FullScreenWindow@@UEAAPEAXPEBD@Z)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\FullScreenWindow.obj	1	

Fehler	LNK2001	Nicht aufgelöstes externes Symbol ""public: virtual int __cdecl FullScreenWindow::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@FullScreenWindow@@UEAAHW4Call@QMetaObject@@HPEAPEAX@Z)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\FullScreenWindow.obj	1	

Fehler	LNK2001	Nicht aufgelöstes externes Symbol ""public: virtual struct QMetaObject const * __cdecl TsWebEnginePage::metaObject(void)const " (?metaObject@TsWebEnginePage@@UEBAPEBUQMetaObject@@XZ)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\ChatWidget.obj	1	

Fehler	LNK2001	Nicht aufgelöstes externes Symbol ""public: virtual void * __cdecl TsWebEnginePage::qt_metacast(char const *)" (?qt_metacast@TsWebEnginePage@@UEAAPEAXPEBD@Z)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\ChatWidget.obj	1	

Fehler	LNK2001	Nicht aufgelöstes externes Symbol ""public: virtual int __cdecl TsWebEnginePage::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@TsWebEnginePage@@UEAAHW4Call@QMetaObject@@HPEAPEAX@Z)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\ChatWidget.obj	1	

Fehler	LNK2019	Verweis auf nicht aufgelöstes externes Symbol ""public: void __cdecl TsWebEnginePage::fileUrlClicked(class QUrl)" (?fileUrlClicked@TsWebEnginePage@@QEAAXVQUrl@@@Z)" in Funktion ""public: virtual bool __cdecl TsWebEnginePage::acceptNavigationRequest(class QUrl const &,enum QWebEnginePage::NavigationType,bool)" (?acceptNavigationRequest@TsWebEnginePage@@UEAA_NAEBVQUrl@@W4NavigationType@QWebEnginePage@@_N@Z)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\ChatWidget.obj	1	

Fehler	LNK2019	Verweis auf nicht aufgelöstes externes Symbol ""public: void __cdecl TsWebEnginePage::clientUrlClicked(class QUrl)" (?clientUrlClicked@TsWebEnginePage@@QEAAXVQUrl@@@Z)" in Funktion ""public: virtual bool __cdecl TsWebEnginePage::acceptNavigationRequest(class QUrl const &,enum QWebEnginePage::NavigationType,bool)" (?acceptNavigationRequest@TsWebEnginePage@@UEAA_NAEBVQUrl@@W4NavigationType@QWebEnginePage@@_N@Z)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\ChatWidget.obj	1	

Fehler	LNK2019	Verweis auf nicht aufgelöstes externes Symbol ""public: void __cdecl TsWebEnginePage::channelUrlClicked(class QUrl)" (?channelUrlClicked@TsWebEnginePage@@QEAAXVQUrl@@@Z)" in Funktion ""public: virtual bool __cdecl TsWebEnginePage::acceptNavigationRequest(class QUrl const &,enum QWebEnginePage::NavigationType,bool)" (?acceptNavigationRequest@TsWebEnginePage@@UEAA_NAEBVQUrl@@W4NavigationType@QWebEnginePage@@_N@Z)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\ChatWidget.obj	1	

Fehler	LNK2019	Verweis auf nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: __cdecl QWebChannel::QWebChannel(class QObject *)" (__imp_??0QWebChannel@@QEAA@PEAVQObject@@@Z)" in Funktion ""public: __cdecl ChatWidget::ChatWidget(class QString const &,class TsWebObject *,class QWidget *)" (??0ChatWidget@@QEAA@AEBVQString@@PEAVTsWebObject@@PEAVQWidget@@@Z)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\ChatWidget.obj	1	

Fehler	LNK2019	Verweis auf nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: virtual __cdecl QWebChannel::~QWebChannel(void)" (__imp_??1QWebChannel@@UEAA@XZ)" in Funktion ""public: virtual void * __cdecl QWebChannel::`scalar deleting destructor'(unsigned int)" (??_GQWebChannel@@UEAAPEAXI@Z)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\ChatWidget.obj	1	

Fehler	LNK2019	Verweis auf nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: void __cdecl QWebChannel::registerObject(class QString const &,class QObject *)" (__imp_?registerObject@QWebChannel@@QEAAXAEBVQString@@PEAVQObject@@@Z)" in Funktion ""private: void __cdecl ChatWidget::setupPage(void)const " (?setupPage@ChatWidget@@AEBAXXZ)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\ChatWidget.obj	1	

Fehler	LNK2001	Nicht aufgelöstes externes Symbol ""public: virtual struct QMetaObject const * __cdecl ChatWidget::metaObject(void)const " (?metaObject@ChatWidget@@UEBAPEBUQMetaObject@@XZ)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\ChatWidget.obj	1	
Fehler	LNK2001	Nicht aufgelöstes externes Symbol ""public: virtual void * __cdecl ChatWidget::qt_metacast(char const *)" (?qt_metacast@ChatWidget@@UEAAPEAXPEBD@Z)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\ChatWidget.obj	1	

Fehler	LNK2001	Nicht aufgelöstes externes Symbol ""public: virtual int __cdecl ChatWidget::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@ChatWidget@@UEAAHW4Call@QMetaObject@@HPEAPEAX@Z)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\ChatWidget.obj	1	
Fehler	LNK2019	Verweis auf nicht aufgelöstes externes Symbol ""public: void __cdecl ChatWidget::fileUrlClicked(class QUrl const &)" (?fileUrlClicked@ChatWidget@@QEAAXAEBVQUrl@@@Z)" in Funktion ""private: void __cdecl ChatWidget::setupPage(void)const " (?setupPage@ChatWidget@@AEBAXXZ)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\ChatWidget.obj	1	

Fehler	LNK2001	Nicht aufgelöstes externes Symbol ""public: void __cdecl ChatWidget::fileUrlClicked(class QUrl const &)" (?fileUrlClicked@ChatWidget@@QEAAXAEBVQUrl@@@Z)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\PluginHelper.obj	1	

Fehler	LNK2019	Verweis auf nicht aufgelöstes externes Symbol ""public: void __cdecl ChatWidget::clientUrlClicked(class QUrl const &)" (?clientUrlClicked@ChatWidget@@QEAAXAEBVQUrl@@@Z)" in Funktion ""private: void __cdecl ChatWidget::setupPage(void)const " (?setupPage@ChatWidget@@AEBAXXZ)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\ChatWidget.obj	1	

Fehler	LNK2001	Nicht aufgelöstes externes Symbol ""public: void __cdecl ChatWidget::clientUrlClicked(class QUrl const &)" (?clientUrlClicked@ChatWidget@@QEAAXAEBVQUrl@@@Z)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\PluginHelper.obj	1	

Fehler	LNK2019	Verweis auf nicht aufgelöstes externes Symbol ""public: void __cdecl ChatWidget::channelUrlClicked(class QUrl const &)" (?channelUrlClicked@ChatWidget@@QEAAXAEBVQUrl@@@Z)" in Funktion ""private: void __cdecl ChatWidget::setupPage(void)const " (?setupPage@ChatWidget@@AEBAXXZ)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\ChatWidget.obj	1	

Fehler	LNK2001	Nicht aufgelöstes externes Symbol ""public: void __cdecl ChatWidget::channelUrlClicked(class QUrl const &)" (?channelUrlClicked@ChatWidget@@QEAAXAEBVQUrl@@@Z)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\PluginHelper.obj	1	

Fehler	LNK2019	Verweis auf nicht aufgelöstes externes Symbol ""public: void __cdecl ChatWidget::linkHovered(class QUrl const &)" (?linkHovered@ChatWidget@@QEAAXAEBVQUrl@@@Z)" in Funktion ""private: void __cdecl ChatWidget::onLinkHovered(class QUrl const &)" (?onLinkHovered@ChatWidget@@AEAAXAEBVQUrl@@@Z)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\ChatWidget.obj	1	
Fehler	LNK2001	Nicht aufgelöstes externes Symbol ""public: void __cdecl ChatWidget::linkHovered(class QUrl const &)" (?linkHovered@ChatWidget@@QEAAXAEBVQUrl@@@Z)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\PluginHelper.obj	1	

Fehler	LNK2019	Verweis auf nicht aufgelöstes externes Symbol ""public: void __cdecl ChatWidget::pageReloaded(void)" (?pageReloaded@ChatWidget@@QEAAXXZ)" in Funktion ""private: static void __cdecl QtPrivate::QFunctorSlotObject<class <lambda_23a707c1b4b33f023b43d77b363c29fc>,1,struct QtPrivate::List<bool>,void>::impl(int,class QtPrivate::QSlotObjectBase *,class QObject *,void * *,bool *)" (?impl@?$QFunctorSlotObject@V<lambda_23a707c1b4b33f023b43d77b363c29fc>@@$00U?$List@_N@QtPrivate@@X@QtPrivate@@CAXHPEAVQSlotObjectBase@2@PEAVQObject@@PEAPEAXPEA_N@Z)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\ChatWidget.obj	1	
Fehler	LNK2001	Nicht aufgelöstes externes Symbol ""public: void __cdecl ChatWidget::pageReloaded(void)" (?pageReloaded@ChatWidget@@QEAAXXZ)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\PluginHelper.obj	1	

Fehler	LNK2001	Nicht aufgelöstes externes Symbol ""public: virtual struct QMetaObject const * __cdecl QWebChannel::metaObject(void)const " (?metaObject@QWebChannel@@UEBAPEBUQMetaObject@@XZ)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\ChatWidget.obj	1	

Fehler	LNK2001	Nicht aufgelöstes externes Symbol ""public: virtual int __cdecl QWebChannel::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@QWebChannel@@UEAAHW4Call@QMetaObject@@HPEAPEAX@Z)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\ChatWidget.obj	1	

Fehler	LNK2001	Nicht aufgelöstes externes Symbol ""public: virtual void * __cdecl QWebChannel::qt_metacast(char const *)" (?qt_metacast@QWebChannel@@UEAAPEAXPEBD@Z)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\ChatWidget.obj	1	

Fehler	LNK2019	Verweis auf nicht aufgelöstes externes Symbol ""public: static struct QMetaObject const TsWebEnginePage::staticMetaObject" (?staticMetaObject@TsWebEnginePage@@2UQMetaObject@@B)" in Funktion ""private: void __cdecl ChatWidget::setupPage(void)const " (?setupPage@ChatWidget@@AEBAXXZ)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\ChatWidget.obj	1	

Fehler	LNK2019	Verweis auf nicht aufgelöstes externes Symbol ""public: void __cdecl TsWebObject::addServer(class QString)" (?addServer@TsWebObject@@QEAAXVQString@@@Z)" in Funktion ""public: void __cdecl PluginHelper::serverConnected(unsigned __int64)" (?serverConnected@PluginHelper@@QEAAX_K@Z)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\PluginHelper.obj	1	

Fehler	LNK2019	Verweis auf nicht aufgelöstes externes Symbol ""public: void __cdecl TsWebObject::tabChanged(class QString,int,class QString)" (?tabChanged@TsWebObject@@QEAAXVQString@@H0@Z)" in Funktion ""private: void __cdecl PluginHelper::onReloaded(void)const " (?onReloaded@PluginHelper@@AEBAXXZ)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\PluginHelper.obj	1	

Fehler	LNK2019	Verweis auf nicht aufgelöstes externes Symbol ""public: void __cdecl TsWebObject::toggleEmoteMenu(void)" (?toggleEmoteMenu@TsWebObject@@QEAAXXZ)" in Funktion ""private: void __cdecl PluginHelper::onEmoticonButtonClicked(bool)const " (?onEmoticonButtonClicked@PluginHelper@@AEBAX_N@Z)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\PluginHelper.obj	1	

Fehler	LNK2019	Verweis auf nicht aufgelöstes externes Symbol ""public: void __cdecl TsWebObject::emoteSignal(class QString)" (?emoteSignal@TsWebObject@@QEAAXVQString@@@Z)" in Funktion ""private: void __cdecl PluginHelper::initUi(void)" (?initUi@PluginHelper@@AEAAXXZ)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\PluginHelper.obj	1	

Fehler	LNK2001	Nicht aufgelöstes externes Symbol ""public: void __cdecl TsWebObject::emoteSignal(class QString)" (?emoteSignal@TsWebObject@@QEAAXVQString@@@Z)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\TsWebObject.obj	1	

Fehler	LNK2019	Verweis auf nicht aufgelöstes externes Symbol ""public: void __cdecl TsWebObject::loadEmotes(void)" (?loadEmotes@TsWebObject@@QEAAXXZ)" in Funktion ""public: __cdecl PluginHelper::PluginHelper(class QString const &,class QObject *)" (??0PluginHelper@@QEAA@AEBVQString@@PEAVQObject@@@Z)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\PluginHelper.obj	1	

Fehler	LNK2019	Verweis auf nicht aufgelöstes externes Symbol ""public: void __cdecl TsWebObject::configChanged(void)" (?configChanged@TsWebObject@@QEAAXXZ)" in Funktion ""public: __cdecl PluginHelper::PluginHelper(class QString const &,class QObject *)" (??0PluginHelper@@QEAA@AEBVQString@@PEAVQObject@@@Z)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\PluginHelper.obj	1	

Fehler	LNK2019	Verweis auf nicht aufgelöstes externes Symbol ""public: void __cdecl TsWebObject::sendMessage(class QJsonObject)" (?sendMessage@TsWebObject@@QEAAXVQJsonObject@@@Z)" in Funktion ""public: void __cdecl PluginHelper::channelCreated(unsigned __int64,unsigned __int64,unsigned short,class QString const &,class QString const &)" (?channelCreated@PluginHelper@@QEAAX_K0GAEBVQString@@1@Z)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\PluginHelper.obj	1	

Fehler	LNK2001	Nicht aufgelöstes externes Symbol ""public: virtual struct QMetaObject const * __cdecl PluginHelper::metaObject(void)const " (?metaObject@PluginHelper@@UEBAPEBUQMetaObject@@XZ)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\PluginHelper.obj	1	

Fehler	LNK2001	Nicht aufgelöstes externes Symbol ""public: virtual void * __cdecl PluginHelper::qt_metacast(char const *)" (?qt_metacast@PluginHelper@@UEAAPEAXPEBD@Z)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\PluginHelper.obj	1
	
Fehler	LNK2001	Nicht aufgelöstes externes Symbol ""public: virtual int __cdecl PluginHelper::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@PluginHelper@@UEAAHW4Call@QMetaObject@@HPEAPEAX@Z)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\PluginHelper.obj	1	

Fehler	LNK2019	Verweis auf nicht aufgelöstes externes Symbol ""public: void __cdecl PluginHelper::triggerReloadEmotes(void)" (?triggerReloadEmotes@PluginHelper@@QEAAXXZ)" in Funktion ""public: __cdecl PluginHelper::PluginHelper(class QString const &,class QObject *)" (??0PluginHelper@@QEAA@AEBVQString@@PEAVQObject@@@Z)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\PluginHelper.obj	1	

Fehler	LNK2019	Verweis auf nicht aufgelöstes externes Symbol ""public: static struct QMetaObject const TsWebObject::staticMetaObject" (?staticMetaObject@TsWebObject@@2UQMetaObject@@B)" in Funktion ""private: void __cdecl PluginHelper::initUi(void)" (?initUi@PluginHelper@@AEAAXXZ)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\PluginHelper.obj	1	

Fehler	LNK2019	Verweis auf nicht aufgelöstes externes Symbol ""public: static struct QMetaObject const ChatWidget::staticMetaObject" (?staticMetaObject@ChatWidget@@2UQMetaObject@@B)" in Funktion ""public: __cdecl PluginHelper::PluginHelper(class QString const &,class QObject *)" (??0PluginHelper@@QEAA@AEBVQString@@PEAVQObject@@@Z)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\PluginHelper.obj	1	

Fehler	LNK2019	Verweis auf nicht aufgelöstes externes Symbol ""public: static struct QMetaObject const ConfigWidget::staticMetaObject" (?staticMetaObject@ConfigWidget@@2UQMetaObject@@B)" in Funktion ""public: __cdecl PluginHelper::PluginHelper(class QString const &,class QObject *)" (??0PluginHelper@@QEAA@AEBVQString@@PEAVQObject@@@Z)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\PluginHelper.obj	1	

Fehler	LNK2019	Verweis auf nicht aufgelöstes externes Symbol ""public: static struct QMetaObject const PluginHelper::staticMetaObject" (?staticMetaObject@PluginHelper@@2UQMetaObject@@B)" in Funktion ""public: __cdecl PluginHelper::PluginHelper(class QString const &,class QObject *)" (??0PluginHelper@@QEAA@AEBVQString@@PEAVQObject@@@Z)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\PluginHelper.obj	1	

Fehler	LNK2001	Nicht aufgelöstes externes Symbol ""public: virtual struct QMetaObject const * __cdecl TsWebObject::metaObject(void)const " (?metaObject@TsWebObject@@UEBAPEBUQMetaObject@@XZ)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\TsWebObject.obj	1	

Fehler	LNK2001	Nicht aufgelöstes externes Symbol ""public: virtual void * __cdecl TsWebObject::qt_metacast(char const *)" (?qt_metacast@TsWebObject@@UEAAPEAXPEBD@Z)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\TsWebObject.obj	1
	
Fehler	LNK2001	Nicht aufgelöstes externes Symbol ""public: virtual int __cdecl TsWebObject::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@TsWebObject@@UEAAHW4Call@QMetaObject@@HPEAPEAX@Z)".	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\QtLxBTSC\TsWebObject.obj	1	

Fehler	LNK1120	59 nicht aufgelöste Externe	QtLxBTSC	C:\Users\******\Documents\Visual Studio 2017\LxBTSC-master\x64\Release\QtLxBTSC_win64.dll	1	

Server based emote lists

How much effort would it be to fetch an additional json file from the default channel of a server?
It would be interesting feature if server admins would be able to define these in a file stored on the server itself, allowing all the clients to see them, without having to define these in their own configurations.

[Bug] Mixed chats

Sometimes the tabs of two or more clients get mixed so both tabs show the messages of all conversations.

Add image/video fullscreen preview

Can you add some preview mode where you click on a image it shows it in original res with a opaque background either over the size of the whole application or atleast the whole chat window.

As discord does it

Add missing events

... so we can push to myTeamspeak and you can get your well deserved badge

  • onServerErrorEvent
  • onTextMessageEvent
  • onClientPokeEvent
  • onServerPermissionErrorEvent
  • onFileTransferStatusEvent
  • onAvatarUpdated
  • onBanListEvent
  • onChannelDescriptionUpdateEvent
  • onChannelMoveEvent
  • onChannelPasswordChangedEvent
  • onClientBanFromServerEvent
  • onClientChannelGroupChangedEvent
  • onClientChatClosedEvent
  • onClientChatComposingEvent
  • onClientDisplayNameChanged
  • onClientKickFromChannelEvent
  • onClientKickFromServerEvent
  • onClientMoveEvent
    • Connected
    • Disconnected
    • Switched
  • onClientMoveMovedEvent
  • onClientMoveSubscriptionEvent
  • onClientMoveTimeoutEvent
  • onClientSelfVariableUpdateEvent
  • onConnectStatusChangeEvent
    • Connected
    • Disconnected
  • onDelChannelEvent
  • onMessageGetEvent
  • onNewChannelCreatedEvent
  • onPluginCommandEvent (#28)
  • onServerEditedEvent
  • onServerGroupClientAddedEvent
  • onServerGroupClientDeletedEvent
  • onServerStopEvent
  • onUpdateChannelEditedEvent

Proxy for url addresses

A great addition, I miss the proxy option here.
There are people in this world who send unpleasant links.
Of course, I can sponsor such a proxy server, just write me if it will be implemented.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.