Git Product home page Git Product logo

ricin's People

Contributors

benwaffle avatar comradekingu avatar probonopd avatar s1gtrap avatar silverrainz avatar skyzohkey 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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ricin's Issues

Markdown support.

Ricin should provide a way to use (basic) Markdown to format messages. This is not really hard to do but the real issue is for client compatibility. I guess this shouldn't be a major issue since markdown was reflexed to be readable, even in plaintext.

(Pseudo-) Markdown "balises" we could provide:

  • **bold** text : Permit to bold a message's part.
  • _italic_ text : Permit to italicize a message's part.
  • ~~striked~~ text : Permit to strike a message's part.
  • --underlined-- text : Permit to underline a message's part.

Ricin (with Markdown lite support):
Current Ricin's Markdown support

µTox (with no Markdown support):
Current µTox Markdown support: null

Also, see the qTox issue about that: qTox/qTox#2497
It was an issue opened on Tox-STS repo: Tox-Archive/Tox-STS#74
And @subliun opened a new issue: Tox/Tox-Client-Standard#19

Integrated voice transformer & video "pixeler".

In order to improve privacy of the users it would be a nice idea (from my opinion) to have an integrated voice transformer and a video "pixeler" in Ricin. These 2 tools could be native or plugins and should be configurable. Transforming the user voice would improve a lot it's privacy.

What i call video "pixeler" is the ability to detect faces and "pixel-blur" them (using OpenCV ?). This would be a nice feature to protect user privacy in video groupchats (if available a time).

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Allow viewing profile information of a contact.

This is an issue by @SlugFiller from the qTox issues manager but i found it interesting and I think it would be nice to add it in Ricin:

@SlugFiller commented on 13 Oct 2015, 16:08 GMT+2:

After the profile information of a contact is loaded, the list is updated with the name and (size-reduced) picture, instead of the ID. If you set an Alias (which is necessary to prevent people playing around with names), the name they set for themselves is no longer visible, as pointed out in #1195.

From my experience with certain other programs, I was expecting to be able to right click the contact, and pick "view profile", to see more details, such as the contact's ID, their current name (Not the alias I set), a zoomed-in version of their profile picture, etc. But no such option is present.

As an added bonus, it would be nice if there was a small textbox where I can add notes about a person. It's helpful in instances where you add more people than you are likely to remember in a month or two. This is a common occurrence to me, which I usually solve by going over our chat history, but sometimes I just want to add a little note specifying who this person is, and why I've added them.

PGP plugins to encrypt messages before sending them in ToxCore DHT.

It think that we should provide a plugin (or an app feature) to let the user setting a PGP key making it (the user) able to encrypt messages using PGP/GPG before sending them to the Tox handle.

If well implemented it would really good → even if Tox does eventually have a backdoor or some bug that breaks its security this PGP support will make sure it's still safe.

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Greentexting links

When greentexting and putting a link (url) in the message, the message fails to send and this error is returned:

Gtk-WARNING **: Failed to set text '<b>gmscs:</b> <span color="#2ecc71">&gt;testing <a href="http://a.uguu.se/irqxtp_9.png</span>">http://a.uguu.se/irqxtp_9.png</span></a>' from markup due to error parsing markup: Error on line 1 char 139: Element 'span' was closed, but the currently open element is 'a'

When greentexting links we should favour the link's format, so in ">https://github.com/" making the ">" green but the "https://github.com/" still blue and underlined.

Issue with file containing spaces in name.

** (Ricin:16757): DEBUG: Wrapper.vala:334: friend 12, file 65536: file_recv
**
ERROR:/home/skyzohkey/Dev/Vala/ValaTox/Ricin/src/Util.vala:26:util_arr2str: assertion failed: (result.validate ())

File name that caused the crash: Capture d'écran 2016-02-20 à 18.57.59.png

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

TO-DO before merging wip/clean

  • Fix ToxID not appearing on the settings-view
  • Fix settings-view combo-boxes not being populated
  • Fix theme being broken for several system themes (settings on Numix; text on Raleigh; tab-text on most themes...)
  • Fix name/status text selection (top-left) with theme
  • Make System Themes & System Icons an option
  • Be able to select more that one message in the chat view.
  • White theme

Please keep adding as stuff appears.

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
</bountysource-plugin

2 Factor Auth ?

Hey guys, wouldn't it be cool/nice to have a way to enable 2-FA on Ricin? I think it would permit to add an extra layer of security to the app.

The question is the following:
How to do 2-FA on an already encrypted profile, since the key is generated for ~30 seconds (using Authy, Google Auth, any FIDO U2F compatible app or even via YubiKeys) ? The cool fact with 2-FA is that you doesn't need to have an internet access on your phone to get the security key.

So please discuss this in order to find a way of doing a such feature. It would be super cool :)

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Travis always fail.

This is the error to fix in order to have Travis working:

Ricin@exe/MainWindow.c:126:2: error: unknown type name ‘GListStore’
MainWindow.c:756:4: error: unknown type name ‘GListStore’
MainWindow.c:787:2: error: unknown type name ‘GListStore’
/home/travis/build/RicinApp/Ricin/src/MainWindow.vala:61:37: error: ‘GListModel’ undeclared (first use in this function)
     var friend = (this.friends.get_object (fr.position) as Tox.Friend);

/home/travis/build/RicinApp/Ricin/src/MainWindow.vala:61:48: error: expected expression before ‘)’ token
     var friend = (this.friends.get_object (fr.position) as Tox.Friend);

MainWindow.c:1201:4: error: unknown type name ‘GListStore’
MainWindow.c:1205:4: error: unknown type name ‘GListStore’

/home/travis/build/RicinApp/Ricin/src/MainWindow.vala:186:40: error: ‘GListModel’ undeclared (first use in this function)
             friend.position = friends.get_n_items ();

/home/travis/build/RicinApp/Ricin/src/MainWindow.vala:186:51: error: expected expression before ‘)’ token
             friend.position = friends.get_n_items ();

MainWindow.c:1411:3: error: unknown type name ‘GListStore’
MainWindow.c:1415:3: error: unknown type name ‘GListStore’

/home/travis/build/RicinApp/Ricin/src/MainWindow.vala:203:39: error: ‘GListModel’ undeclared (first use in this function)
         friend.position = friends.get_n_items ();

/home/travis/build/RicinApp/Ricin/src/MainWindow.vala:203:50: error: expected expression before ‘)’ token
         friend.position = friends.get_n_items ();

MainWindow.c:1601:2: error: unknown type name ‘GListStore’

/home/travis/build/RicinApp/Ricin/src/MainWindow.vala:125:37: error: ‘GListModel’ undeclared (first use in this function)
     this.friendlist.bind_model (this.friends, fr => new FriendListRow (fr as Tox.Friend));

/home/travis/build/RicinApp/Ricin/src/MainWindow.vala:125:48: error: expected expression before ‘)’ token
     this.friendlist.bind_model (this.friends, fr => new FriendListRow (fr as Tox.Friend));

MainWindow.c:1935:5: error: unknown type name ‘GListStore’
MainWindow.c:1939:5: error: unknown type name ‘GListStore’

/home/travis/build/RicinApp/Ricin/src/MainWindow.vala:135:53: error: expected expression before ‘)’ token
       friend.position = friends.get_n_items ();

MainWindow.c: In function ‘ricin_main_window_instance_init’:
MainWindow.c:3723:2: error: unknown type name ‘GListStore’

Possible cause: #19

Code and folders structure improvements.

I think we should rewrite most of Ricin's code to follow these simple rules.

Code files cleaning

A class constructor method must suit the following conventions:

[GtkTemplate (ui = "/path/to/layout.ui")]
class MyClass {
  // GTK members first.
  [GtkChild] Gtk.Button button_something;

  // Public members.
  public int some_int = 0;

  // Private members.
  private string baz = "";

  public MyObject (string foo, int bar = 0) {
    // Class variables assignements (only).
    this.baz = @"$foo:$bar";

    // Init methods calls.
    this.init_window   ();
    this.init_widgets  ();
    this.init_signals  ();
    this.init_whatever ();
  }

  private void init_window   () { /* Init the windows stuff here  */ }
  private void init_widgets  () { /* Init the widgets stuffs here */ }
  private void init_signals  () { /* Init the signals here        */ }
  private void init_whatever () { /* Init whatever u want         */ }

  ~MyObject () { /* Destructor at the end of the file */ }
}

Directory structure

We should categorize files in the src/ folder. This would permit to have a more organized code, being more modulable.

See the example:

src/
-| widgets/
  -| MessageListRow.vala
  -| FriendListRow.vala
  -| GroupListRow.vala
  -| InlineFileMessageListRow.vala
-| Ricin.vala
-| MainWindow.vala
-| Utils.vala

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Add User Editor View

The user should have a view where they are able to edit the information to their profile. In this view we should have:

  • Encrypt/Decrypt profile
  • Name edit
  • Status message edit
  • Set avatar
  • Qr code (for sharing with mobile devices)
  • Import/Export profile
  • Remove avatar

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Can't edit entry_username & entry_mood manually.

This is an issue I can't fix (don't know what is the problem ^^).
Try to focus the 2 entries a the top-left and try to edit them by typing text, it wont work.

Anyway you can right click → select all → delete → copy a string → paste → press enter. And it works, so how to fix this, looks weird and i wasn't able to fix. :x

Quit properly

Try running utox + qtox, and quitting one. The fact that the user is offline is shown instantly. We must be doing something wrong.

Ricin could remind user to delete users not seen from X time

PoC:
Concept

It could be nice if Ricin could remind the user that a friend is not came back online during more than X time, and to ask if the user want to delete this friend.

Of course, this should be an opt-in/opt-out option (opt-in by default) that could be configurable (time before reminder).

This can be easily accomplished by comparing the last_seen date of each friend with the current date.

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Copying entire friend ID via custom_packets.

A user should be able to copy friends ToxID. To achieve this I think it would be nice to use the custom_packets "method" provided by ToxCore.

Example:

  • Alice right click Bob FriendListRow and click on "Ask for ToxID" ;
  • Alice client send a friend_request_toxid packet to Bob ;
  • Bob is asked for sending his entire ToxID (not only the pubkey) ;
    • If Bob answer by Yes his client send a friend_response_toxid containing it's ToxID ;
    • If Bob answer by No his client send a friend_response_toxid containing null or false.
  • Alice client get notified of the friend_response_toxid and can:
    • Copy Bob ToxID in the Clipboard ;
    • Notify Alice that Bob rejected her request to get Bob entire ToxID.

Extra: It should be possible to auto-accept friend_request_toxid but this should be disabled by default.

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Is Ricin abandoned?

Hello Key, i cannot log in into groupchat (not Ricin fault, at any client), and I came here, and see last commit was 20 days ago. Why? (and don't you have an idea why i couldn't log in?)

And I wanna try Ricin on Windows, but i can't find built version. Does it exists?

GTK+3.16 issues

  • Unpopulated ComboBoxText's
  • No text in ToxID label
  • No "About" tab

Have a few Gtk-CRITICAL messages:

(Ricin:3423): Gtk-CRITICAL **: gtk_label_set_text: assertion 'GTK_IS_LABEL (label)' failed

(Ricin:3423): Gtk-CRITICAL **: gtk_combo_box_text_insert: assertion 'GTK_IS_COMBO_BOX_TEXT (combo_box)' failed

(Ricin:3423): Gtk-CRITICAL **: gtk_combo_box_text_insert: assertion 'GTK_IS_COMBO_BOX_TEXT (combo_box)' failed

(Ricin:3423): Gtk-CRITICAL **: gtk_combo_box_set_active_id: assertion 'GTK_IS_COMBO_BOX (combo_box)' failed

(Ricin:3423): Gtk-CRITICAL **: gtk_combo_box_text_insert: assertion 'GTK_IS_COMBO_BOX_TEXT (combo_box)' failed

(Ricin:3423): Gtk-CRITICAL **: gtk_combo_box_text_insert: assertion 'GTK_IS_COMBO_BOX_TEXT (combo_box)' failed

(Ricin:3423): Gtk-CRITICAL **: gtk_combo_box_text_insert: assertion 'GTK_IS_COMBO_BOX_TEXT (combo_box)' failed

(Ricin:3423): Gtk-CRITICAL **: gtk_combo_box_set_active_id: assertion 'GTK_IS_COMBO_BOX (combo_box)' failed

File transfers to offline contacts

It should not be possible to send files to offline contacts. The button is not greyed out and the text "Sending file *** " still shows up.

How to handle settings efficiently?

So, it would be nice to have a way to get/set settings in Ricin, I think using a database would be over-head for this. I searched a way to do it properly and had an idea that was also proposed at irungentoo/toxcore#1487.

Problem to solve:

An user should be able to switch to another computer only by saving it's profile file and then download Ricin and import this profile file. The issue here is that if the user only copy it's profile, he'll loose the settings from the first computer.

Potential solution:

A .txz, sort of tar.gz-like. It would contains the following files:

- example.txz
  |- example.tox   // This is the user .tox file.
  |- settings.json // Here we would store settings as json.
  |- aliases.json // The friend's profiles.
  |- Any other standardized datafile...

All of what the client should do is to extract the file in memory and get the file at the inside, then update them and rezip the file.

Note:

Ricin must provide a button to export the user .tox file to a conventional format. It just need to extract the user profile from the .txz archive to the extract path.

References:

irungentoo/toxcore#1487 (comment)

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.