Giter Site home page Giter Site logo

avojak / iridium Goto Github PK

View Code? Open in Web Editor NEW
52.0 52.0 6.0 4.94 MB

Native Linux IRC client built in Vala and Gtk for elementary OS

License: GNU General Public License v3.0

Meson 2.37% Vala 95.83% Python 0.59% Shell 0.28% CSS 0.54% Makefile 0.39%
elementary-os gtk gtk3 irc irc-client linux vala vala-applications

iridium's Introduction

Hi there ๐Ÿ‘‹

iridium's People

Contributors

avojak avatar chayros avatar jeysonflores avatar nathanbnm avatar ryonakano avatar vistaus avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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

iridium's Issues

Add ability to delete all saved data

Add an option (maybe in preferences?) to delete all saved data. The only saved data is really the light/dark mode and connection details, so this would entail:

  • Resetting light/dark preference
  • Resetting the default name/username preference
  • Nuking the connection details from the database

Support SSL/TLS

Support connections over SSL/TLS. Might also add an option to the advanced connection settings for certificate validation (e.g. set_tls_validation_flags).

Add OARS metadata

Hi! I noticed that you doesn't mention OARS information in your appdata.xml file. This is required in order to publish you app in the AppCenter.

You just have to add and complete the following lines to your file. Default is none. You can identify what you have to change in the following lines here https://hughsie.github.io/oars/generate.html ๐Ÿ˜‰

You just have to add this and complete it to your appdata.xml file.

 <content_rating type="oars-1.1">
        <content_attribute id="violence-cartoon">none</content_attribute>
        <content_attribute id="violence-fantasy">none</content_attribute>
        <content_attribute id="violence-realistic">none</content_attribute>
        <content_attribute id="violence-bloodshed">none</content_attribute>
        <content_attribute id="violence-sexual">none</content_attribute>
        <content_attribute id="violence-desecration">none</content_attribute>
        <content_attribute id="violence-slavery">none</content_attribute>
        <content_attribute id="violence-worship">none</content_attribute>
        <content_attribute id="drugs-alcohol">none</content_attribute>
        <content_attribute id="drugs-narcotics">none</content_attribute>
        <content_attribute id="drugs-tobacco">none</content_attribute>
        <content_attribute id="sex-nudity">none</content_attribute>
        <content_attribute id="sex-themes">none</content_attribute>
        <content_attribute id="sex-homosexuality">none</content_attribute>
        <content_attribute id="sex-prostitution">none</content_attribute>
        <content_attribute id="sex-adultery">none</content_attribute>
        <content_attribute id="sex-appearance">none</content_attribute>
        <content_attribute id="language-profanity">none</content_attribute>
        <content_attribute id="language-humor">none</content_attribute>
        <content_attribute id="language-discrimination">none</content_attribute>
        <content_attribute id="social-chat">none</content_attribute>
        <content_attribute id="social-info">none</content_attribute>
        <content_attribute id="social-audio">none</content_attribute>
        <content_attribute id="social-location">none</content_attribute>
        <content_attribute id="social-contacts">none</content_attribute>
        <content_attribute id="money-purchasing">none</content_attribute>
        <content_attribute id="money-gambling">none</content_attribute>
</content_rating>

I think this is mainly concerning the social part.

Support private sessions

Support opening in a private session, where no connection information, credentials, etc. are saved.

Add tests

Learn how to write tests in Vala and add some!

Integrate with OS notifications

Integrate with the OS notifications to alert users.

  • Possibly only when tagged? Alerting on every message seems excessive.
  • This would cover audio notifications as well

Rework view management

The current management of views and dialogs is very flimsy. For example:

  • Closing the server connection dialog when the connection is successful
  • Closing the channel topic edit dialog when the topic changes

These are not very robust, as they are influenced by external factors (what if a different connection is successful? What if someone else changed the topic out from under you?).

This needs to be reworked to something more deterministic. This should also lay the groundwork for better handling of the initialization workflow.

Improve experience when closing/favoriting a channel

Currently when you favorite a channel, another view (some other channel or the server) will take the focus. This is not what you would expect - the channel should still be in the forefront after favoriting.

Similarly, when you close a channel, you don't expect it to still be visible (this is OK for leaving a channel, in my opinion).

1.0.0 Release checklist

Checklist of items to verify prior to 1.0.0 readiness:

  • Ensure only required debugging/print statements to console and log (still print noisier output in dev mode for debugging)
  • Update debian/changelog
  • Set description in debian/control
  • Set release version (meson.build, debian/changelog)
  • Set release date (debian/changelog, appdata.xml)
  • Use updated screenshots (data/appdata.xml)
  • Set price
  • Check POTFILES up-to-date

Support operator actions

Support operator actions (kick, ban, etc.) and granting operator privileges to other uses. Should be integrated into the UI rather than via command only.

User quit message doesn't always appear

The user quit message doesn't always appear in a channel.

[FATAL 18:41:36.669963] gee_map_get: assertion 'self != NULL' failed
[WARNING 18:41:36.670054] MainLayout.vala:400: No chat view exists for chat.freenode.net, thedesertmonk

The log warning isn't unexpected, but the fatal error needs to be addressed, as well as whatever is causing the message to not appear.

Cleanup nickname vs. username

Currently the nickname and username are used interchangeably throughout, but this is not correct. Typically only the nickname truly matters, so perhaps we should default the username to the nickname and only present changing the username under an "advanced" or other setting. This would cleanup the UI a bit as well.

Add Recent Connections option to Welcome view

Add an option to the welcome view to open a recent connection. This may be connections that are no longer in the server list, but were saved from before. Would require additional work to no completely remove the connection details when closing a connection. Might have to make this configurable, since it wouldn't be apparent to the user that connection information is still saved.

Opening previous connections on startup closes server connection dialog

  1. Have at least one previous open server connection and the app is closed
  2. Open the app
  3. Click the Connect to Server option from the welcome view
  4. When the previous connection opens successfully the server connection dialog is closed

This is probably due to some bad assumptions and will need a re-work of the initialization workflow or the signal handling.

Add recent servers to the welcome view

Maybe display a couple recent servers to the welcome view? Would make it easy for a user to go back to a server they were on even after closing it from the side panel.

Errors when opening app with no enabled servers

This occurs with stored connection details, but the enabled flag is set to 0:

[WARNING 16:40:56.322152] MainWindow.vala:429: No connection details found for server: chat.freenode.net
[FATAL 16:40:56.322207] iridium_views_server_chat_view_construct: assertion 'nickname != NULL' failed
[FATAL 16:40:56.322227] [GLib-GObject] g_object_ref_sink: assertion 'G_IS_OBJECT (object)' failed
[FATAL 16:40:56.322244] iridium_layouts_main_layout_add_server_chat_view: assertion 'view != NULL' failed
[WARNING 16:40:56.322281] [GLib-GObject] invalid (NULL) pointer instance
[FATAL 16:40:56.322317] [GLib-GObject] g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
[WARNING 16:40:56.322352] [GLib-GObject] invalid (NULL) pointer instance
[FATAL 16:40:56.322387] [GLib-GObject] g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
[FATAL 16:40:56.322423] iridium_views_chat_view_set_enabled: assertion 'self != NULL' failed
[WARNING 16:40:56.330377] MainWindow.vala:445: No connection details found for server: chat.freenode.net
[FATAL 16:40:56.330421] iridium_views_channel_chat_view_construct: assertion 'nickname != NULL' failed
[FATAL 16:40:56.330445] [GLib-GObject] g_object_ref_sink: assertion 'G_IS_OBJECT (object)' failed
[FATAL 16:40:56.330466] iridium_layouts_main_layout_add_channel_chat_view: assertion 'view != NULL' failed
[WARNING 16:40:56.330505] [GLib-GObject] invalid (NULL) pointer instance
[FATAL 16:40:56.330521] [GLib-GObject] g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
[WARNING 16:40:56.330561] [GLib-GObject] invalid (NULL) pointer instance
[FATAL 16:40:56.330579] [GLib-GObject] g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
[FATAL 16:40:56.330595] iridium_views_chat_view_set_enabled: assertion 'self != NULL' failed

Fix server messaging

Some of the messages from the server are cut-off during connection (number of operators, channels, etc.). This could also include better messaging for invalid server commands.

Allow suppressing of join/part messages

Add the ability to suppress join/part messages in channels.

  • Should this be per-channel, per-server, or global?
  • Is this a good candidate for a preference view?

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.