Kervala's avatar
kdAmn
By Kervala   |   Watch
7 50 1K (1 Today)
Published: July 22, 2013
© 2013 - 2019 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)
Image size
809x424px 65.27 KB
anonymous's avatar
Join the community to add your comment. Already a deviant? Sign In
Comments (30)
RedstoneGeek223's avatar
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  ·  
Kervala's avatar
Kervala|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  ·  
RedstoneGeek223's avatar
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  ·  
Kervala's avatar
Kervala|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  ·  
Precipitous120's avatar
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  ·  
Kervala's avatar
Kervala|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  ·  
Precipitous120's avatar
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  ·  
Kervala's avatar
Kervala|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  ·  
RedstoneGeek223's avatar
any chance this is available in .deb format?
also is it compatable with the raspberry pi? (can't install with LXtermnal) using: Raspbian
Reply  ·  
Kervala's avatar
Kervala|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  ·  
RedstoneGeek223's avatar
"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  ·  
Kervala's avatar
Kervala|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  ·  
RedstoneGeek223's avatar
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  ·  
Kervala's avatar
Kervala|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  ·  
RedstoneGeek223's avatar
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  ·  
Kervala's avatar
Kervala|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  ·  
ader-x's avatar
#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  ·  
Kervala's avatar
Kervala|Hobbyist General Artist
Thanks for your comment :D
Reply  ·  
deviant-garde's avatar
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  ·  
Kervala's avatar
Kervala|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  ·  
abluescarab's avatar
abluescarab|Hobbyist Digital Artist
Thanks for using my icon! The client looks great!
Reply  ·  
Kervala's avatar
Kervala|Hobbyist General Artist
Thanks again and you're welcome :hug:
Reply  ·  
electricjonny's avatar
electricjonny|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  ·  
View 1 reply
anonymous's avatar
Join the community to add your comment. Already a deviant? Sign In
©2019 DeviantArt
All Rights reserved