Shop Forum More Submit  Join Login
kdAmn by Kervala kdAmn by Kervala
Kervala deviantART Messaging Network client written in C++ and using Qt framework.

Please click on Download Application on the right to access to download page.

Project page : dev.kervala.net/projects/kdamn…
Download page : dev.kervala.net/projects/kdamn…

Debian/Ubuntu : please add ppa:kervala/ppa in your sources, update packages and install package kdamn

You can download its source code on : hg.kervala.net/kdamn

Changelog:

2017-11-18 - Version 1.2.621
- display a message when no update are available
- improved About... dialog
- cycle between users when pressing <tab>
- support latest DA API changes
- allow to create/edit CSS styles
- AFK mode with /afk
- implements URL content changes
- DeviantART now uses oEmbed for :thumb:
- truncate deviation title if too long
- support latest versions of compilers (GCC, clang and Visual C++)
- packages creation on command-line
- updated translations
- fixed several bugs

2015-01-24 - Version 0.9.329
- encode special characters and accents as HTML entities
- open logs menu
- fixed a lot of bugs
- check for new version at launch and propose to install it
- notes manager (read and write notes)
- new DA icon
- support oEmbed for different sites (see oembed.ini)
- use oEmbed to get thumbnail for stash links

2014-09-29 - Version 0.9.199
- check for notes
- create a new session when launching kdAmn et close it when leaving

Features:

- dAmn protocol
- tablumps (proprietary DA format syntax) to HTML conversion
- all DA specific code (icon, dev, thumb, emotes, etc...)
- download of thumbnails/icons/avatars
- channel management
- users management
- privilege classes management
- DA and OAuth2 authentication
- display of time before the message
- users auto-completion with
- multi-lines messages
- save channels and connection parameters in an INI file
- tray icon
- class to manage settings
- tray icon/tab color change when a user writes in a channel or talk to you
- compilation under GNU/Linux
- list of known channels
- choice between OAuth2 and DA login
- log files in html or raw text for each channel
- drag and drop to upload a file to stash
- update OAuth2 token before it expires
- supports both Qt 4 and 5
- progress bar in window task bar under Windows 7 while uploading a file to stash
- auto save settings
- Debian packages
- allows to upload a screenshot on stash
- double-click on a user opens up his DA homepage (thanks to :iconsymilde: for the suggestion :D)
- oEmbed for some sites (DA, Youtube, Kickstarter, Dailymotion, Flickr and Instagram) see oembed.ini
- check, view and send notes

To implement :

- details on a user (connections to other channels, idle time, online time, avatar, group, etc...)
- admin dialog to manage a channel
- private chats
- multiple selection for users (allows private chat)
Add a Comment:
 
:iconredstonegeek223:
RedstoneGeek223 Featured By Owner Edited Mar 1, 2018  Student Writer
how hard is it to get it to auto check for updates on app-startup? (Windows/OSX/Linux) Edit: literally just read the description

PS: If you need Linux install Packages 'Alien' can help with that
Reply
:iconkervala:
Kervala Featured By Owner Mar 1, 2018  Hobbyist General Artist
That's why I provide .tar.gz packages statically linked to Qt 5 :D It'll be too hard to maintain packages for every distro :( For Ubuntu and Debian, I have a PPA with the uptodate version.
Reply
:iconredstonegeek223:
RedstoneGeek223 Featured By Owner Mar 1, 2018  Student Writer
Debian, Red Hat, and Slackware are really the only ones you need to worry about, almost everything else is based off one of those three and it's rare that they're not
Reply
:iconkervala:
Kervala Featured By Owner Mar 1, 2018  Hobbyist General Artist
Problem is I'm an open-source developer and 56 people are using kdAmn, I can't package myself for all existing OSes.

Usually, there is developers and each distro has its maintainers who will package the application.

I'm sorry, but I don't have enough free time to maintain everything myself. I'm already doing more than most of the other alone developers (some of them keep their application closed source and/or only package for Windows). I try to be multi-platform and that's never enough :(

All my code is open-source, if someone want to package kdAmn, he can create a package and/or fork my code and adapt it.
Reply
:iconprecipitous120:
Precipitous120 Featured By Owner Feb 21, 2018
Does it have the ability to save messages, so when you return later all the messages that were sent when you weren't around are there to see when you are back?

We really new a proper forum for our Programmers united club, and if this program could be used to create either an app on every users desktop, or a journal entry that magically displaces the content of the chat

then it would be absolutely perfect for team discussions and community growth
Reply
:iconkervala:
Kervala Featured By Owner Feb 21, 2018  Hobbyist General Artist
Currently, all messages are saved to files (HTML and/or text), but it should be possible to load the last one :D

I found DA chat very cool because it supports images thumbnails, differents smilies, etc... in fact, the same syntax used in comments, journals, deviations, etc...
Reply
:iconprecipitous120:
Precipitous120 Featured By Owner Feb 21, 2018
Would there be a possibility to open a journal entry with http code that links to a deviant chat?

I've actually discussed this before and apparently it isn't possible, but you are closer to the inner workings of the chat. I'm hoping you can prove the impossible is possible :D
Reply
:iconkervala:
Kervala Featured By Owner Feb 21, 2018  Hobbyist General Artist
I think that's possible by defining a custom scheme such as "damn" so a link like damn://ChatRoomName will launch the program associated with "damn" protocol and open the channel "ChatRoomName"
Reply
:iconprecipitous120:
Precipitous120 Featured By Owner Feb 21, 2018
Could you set that up for free or how many points are we talking about here :D
Reply
:iconkervala:
Kervala Featured By Owner Feb 21, 2018  Hobbyist General Artist
It's not very difficult to do, I already did that for another program :D I'll try to implement that when I'll have a little free time.
Reply
:iconprecipitous120:
Precipitous120 Featured By Owner Feb 22, 2018
Just don't forget me and good luck :D
Reply
:iconkervala:
Kervala Featured By Owner Feb 22, 2018  Hobbyist General Artist
Thanks :hug: I begun to implement it, but I would like to improve the order of tabs and which tab has focus :D
Reply
(1 Reply)
:iconredstonegeek223:
RedstoneGeek223 Featured By Owner Dec 28, 2015  Student Writer
any chance this is available in .deb format?
also is it compatable with the raspberry pi? (can't install with LXtermnal) using: Raspbian
Reply
:iconkervala:
Kervala Featured By Owner Dec 29, 2015  Hobbyist General Artist
Sure, I'm using Ubuntu's PPA to package for Debian/Ubuntu, just add in your software sources : ppa:kervala/ppa

You can see all supported versions of Ubuntu on : launchpad.net/~kervala/+archiv…

And you just need to find the Debian equivalent to be sure dependencies are satisfied :)

For example :

Ubuntu => Debian

15.10 wily => jessie / sid
15.04 vivid => jessie / sid
14.10 utopic => jessie / sid
14.04 trusty => jessie / sid
13.10 saucy => wheezy / sid
13.04 raring => wheezy / sid
12.10 quantal => wheezy / sid
12.04 precise => wheezy / sid
11.10 oneiric => wheezy / sid
11.04 natty => squeeze / sid
10.10 maverick => squeeze / sid
10.04 lucid => squeeze / sid
Reply
:iconredstonegeek223:
RedstoneGeek223 Featured By Owner Dec 29, 2015  Student Writer
"sudo add-apt-repository ppa:kervala/ppa" doesn't work on the Raspberry pi. Raspbian is different then Debian, Raspbian is for the ARM(ARM11 ARMv6) processor, Debian is for i386(32-bit) and amd64(64-bit) not ARM((ARM11 ARMv6)<=same thing) so I don't think that they are the same at all. you can probably look up the command list for Raspbian and, Debian I'm not sure but if you do please compare them.

~Plasma Blast
Reply
:iconkervala:
Kervala Featured By Owner Dec 29, 2015  Hobbyist General Artist
Ah yes, sorry I forgot it was an ARM device :(

But you could compile it yourself :) You just need to install Qt 5 libs and follow tutorial in : hg.kervala.net/kdamn/file/7017…
Reply
:iconredstonegeek223:
RedstoneGeek223 Featured By Owner Dec 30, 2015  Student Writer
is it architecture dependent? because if it is that would suck :( because i would have to remake it so that it would work on my R-pi. also could you tell me (specifically) what version of qt you use as coding can change over time.
Reply
:iconkervala:
Kervala Featured By Owner Dec 30, 2015  Hobbyist General Artist
Yes, you only need Qt 5 and CMake. Qt 4 should work too if Qt 5 is not found.
Reply
:iconredstonegeek223:
RedstoneGeek223 Featured By Owner Edited Oct 21, 2015  Student Writer
kdamn... for kde? :?
MD5 hash? are you serious? that just proves that the hash is the same as MD5 is outdated
also fun little tidbit OSX has a Linux base system
Reply
:iconkervala:
Kervala Featured By Owner Oct 21, 2015  Hobbyist General Artist
Hum what ? :D

kdAmn stands for "Kervala deviantART Messaging Network" so K is Kervala not KDE :p

Why do you talk about MD5 hash and OS X ? Sorry, but I don't understand :(

kdAmn is an open-source software I write on my free time, if you want to use it, do it, if you don't want, don't do it...

I'm sorry, but I don't see the aim of your comment...
Reply
:iconredstonegeek223:
RedstoneGeek223 Featured By Owner Oct 21, 2015  Student Writer
I have kubuntu 15.04 beta and most things with a "K" in front of them is for KDE

as for MD5 hash on "dev.kervala.net/projects/kdamn…" it just confirms that the hash on the file is the same as the given hash I would recommend that you use SHA-2 (I don't know about SHA-256) on your files it will help prevent people from creating a file with a virus in it with the same hash

as for the bit about OS X that's unimportant it's info
Reply
:iconkervala:
Kervala Featured By Owner Oct 21, 2015  Hobbyist General Artist
I know for KWrite and other softwares, but unfortunately my nickname also begin with a K :D And, of course, kdAmn should work under KDE because both are using Qt :)

About MD5, I'm just using Redmine project management so I didn't code anything related. You should post a suggestion on : www.redmine.org

I thought you were taking about : hg.kervala.net/kdamn/file/d8f2…

Because I'm using MD5 to associate content with downloaded images in C++ :) Problem is that Win32 full paths are limited to 255 characters so if I use SHA-1 or SHA-256, it's more likely to exceed this limit since the cache folder is already very long.

About OS X, Darwin (OS X core) is based on NeXTSTEP and FreeBSD not Linux. OS X uses its owns APIs but since Qt is multi-platform, it allows me to code for both platforms (with some manual fixes) :D

Thanks :D
Reply
:iconredstonegeek223:
RedstoneGeek223 Featured By Owner Oct 22, 2015  Student Writer
On OS X... why does the sudo su command work in the "Terminal"? Linux is the only OS (To my knowledge) that has that. also (faiap) test.desktop? that I know is a Linux thing
Reply
:iconkervala:
Kervala Featured By Owner Oct 22, 2015  Hobbyist General Artist
sudo and su are UNIX commands so that's normal they exists under ALL unices : en.wikipedia.org/wiki/Sudo

And Linux is a UNIX :p

There is a drawing explaining UNIX history : en.wikipedia.org/wiki/Unix#/me…
Reply
:iconredstonegeek223:
RedstoneGeek223 Featured By Owner Oct 22, 2015  Student Writer
ugh.. you know your a research junkie when... do you have any other resources other then wikipedia?
Reply
:iconkervala:
Kervala Featured By Owner Oct 22, 2015  Hobbyist General Artist
Ok
Reply
:iconader-x:
ader-x Featured By Owner Edited Jan 15, 2015
#include <da/da.h>
#include <stdio.h>



int main(int argc, char **argv)
{
    da_page page;
    char user[DA_USER_NAME_MAXLENGTH];
    char message[DA_USER_MESSAGE_MAXLENGTH];

    if (da_init(DA_LOGIN_URL, "ader-x", ADER_X_PASS) != DA_SUCCESS)
    {
        printf("Could not login to DA !\n");
        return 1;
    }

    if (da_page_set("kervala.deviantart.com/art/kdA…", &page) != DA_SUCCESS)
    {
        printf("Cannot set page !\n");
        da_exit();
        return 2;
    {

    if (da_page_writenew(page, "Aha, you're a programmer too ? Interesting !") != DA_SUCCESS)
    {
        printf("Cannot write comment !\n");
        da_exit();
        return 3;
    }

    if (da_page_waitreply(page, 60*60*24*7*2) != DA_SUCCESS)
    {
        printf("Two weeks gone. Kervala probably doesn't want to reply, or there was a network error at the end of the timeout !\n");
        da_exit();
        return 4;
    }

    if (da_page_readreply(page, &user, &message) != DA_SUCCESS)
    {
        printf("Cannot read reply !\n");
        da_exit();
        return 5;
    }

    printf("%s replied: %s\n", user, message);

    da_exit();
    return 0;
}



May need debugging and design reconsideration :)
Reply
:iconkervala:
Kervala Featured By Owner Jan 15, 2015  Hobbyist General Artist
Thanks for your comment :D
Reply
:iconader-x:
ader-x Featured By Owner Jan 15, 2015
;) (Wink) 
Reply
:icondeviant-garde:
deviant-garde Featured By Owner Aug 3, 2013
Hey, I don't know if you've been around before, but I'm an admin in a room on dAmn dedicated to developing for dAmn called #Botdom and we wouldn't mind you stopping by and chatting with us. We've also got a group. I've shown people from the room your project and they think it's interesting, especially since we haven't had a new native dAmn client for the desktop in a long time.
Reply
:iconkervala:
Kervala Featured By Owner Aug 4, 2013  Hobbyist General Artist
Hi :D

Thanks for your comment !

I know the channel name, because I saw it mentionned on wikis where dAmn protocol is described :)

I'll join #Botdom to discuss with you further :)
Reply
:iconabluescarab:
abluescarab Featured By Owner Jul 27, 2013  Hobbyist Digital Artist
Thanks for using my icon! The client looks great!
Reply
:iconkervala:
Kervala Featured By Owner Jul 28, 2013  Hobbyist General Artist
Thanks again and you're welcome :hug:
Reply
:iconelectricjonny:
electricjonny Featured By Owner Jul 26, 2013  Hobbyist Photographer
Not bad :)

Although I'm getting this on the server page:
Unable to parse property: symbol=`
Unable to parse property: realname= The Electronic Me



And my room has a pretty ugly topic sta.sh/0iell9m8aft  And the settings don't seem to be working :o
Reply
:iconkervala:
Kervala Featured By Owner Jul 26, 2013  Hobbyist General Artist
Ahah, thank you so much :D I used very restricted regular expressions, I'll fix that ASAP :)


For the topic and title, I completely forget to convert "tablump" into HTML :( I'll fix that too.


And for the settings, they are not yet implemented :(


I'll try to complete it these 2 next weeks :)


Thanks again foir testing !
Reply
:iconelectricjonny:
electricjonny Featured By Owner Jul 26, 2013  Hobbyist Photographer
Good to hear :)

Yeah parsing the HTML tags in topic/title would help.  But all in all, pretty good program :)  I used to use dAmn[win] and it seems to be getting a tad outdated.

As for loging in, perhaps add an alert/notice discribing how to grab your auth token (javascript:alert(dAmn_Client_AuthToken);)?  Or does using your password work basically the same way?
Reply
:iconkervala:
Kervala Featured By Owner Jul 27, 2013  Hobbyist General Artist

Thanks, I'll add some details on connect dialog :)


In fact, I implemented 2 ways :


- connect to DA login page with login and password, remember cookies, get the dAmn Token in HTML code from chat.deviant.com

- connect to DA OAuth2 page, use DA Api to get the dAmn Token


The first one is the first I implemented but I plan to upload files to stash while drag'n droping them on the window, so I'm using the second one now, but I could ask to the user what method he prefers :D


Almost all operations are done with sending POST data or parsing HTML/JSON.


Once the authtoken is saved, it won't use the password anymore excepted if it receive a authentication failed message from chat server.


If you want to check the source : hg.kervala.net/kdamn


Reply
:iconelectricjonny:
electricjonny Featured By Owner Jul 27, 2013  Hobbyist Photographer
Makes sense :nod:

I am not that well versed in coding (other than js really), so not sure if I could understand that, but might check it out later.  I know a decent bit about the js that works in chats, and have a few *.user.js scripts, although I still don't proclaim to be that good :lol:
Reply
:iconkervala:
Kervala Featured By Owner Jul 27, 2013  Hobbyist General Artist

Hehe :D I'm working on kdAmn right now :) I'll post a new version when the bugs you found are fixed and I'll implement some other functionnalities :)

Reply
:iconelectricjonny:
electricjonny Featured By Owner Jul 27, 2013  Hobbyist Photographer
Goodness :nod:
Reply
:iconkervala:
Kervala Featured By Owner Jul 27, 2013  Hobbyist General Artist

New version uploaded :D


I added some details in connect dialog but it doesn't do anything for the moment (I didn't add the code), fixed the problems with HTML code in title and topic, and values for properties, begun to refactor the code for a better readability and allowed to send several lines at once :)

Reply
(1 Reply)
:icondeviant-garde:
deviant-garde Featured By Owner Jul 26, 2013
Nevermind, I found it. It's just I'd rather build it for Linux than to be stuck using it on Windows.
Reply
:icondeviant-garde:
deviant-garde Featured By Owner Jul 26, 2013
Do you have the source up anywhere?
Reply
:iconkervala:
Kervala Featured By Owner Jul 26, 2013  Hobbyist General Artist

First, thanks for your comments :D


Sources are available in my Mercurial repository at : hg.kervala.net/kdamn but you'll need CMake modules from hg.kervala.net/cmake


I'm doing that because almost all my projects and using the same CMake modules and I prefer to not copy them in each repository :)


You can do that :


hg clone hg.kervala.net/cmake

cd cmake/modules

export CMAKE_MODULE_PATH=$(pwd)


hg clone hg.kervala.net/kdamn

cd kdamn

mkdir build

cd build

cmake ..

make


It should work under Linux and Mac OS X but I didn't take time to check yet :(


Good luck :)


Reply
Add a Comment:
 
×



Details

Submitted on
July 22, 2013
Image Size
65.3 KB
Resolution
809×424
Link
Thumb

Stats

Views
1,195
Favourites
7 (who?)
Comments
50
×