Giter Site home page Giter Site logo

nicotine-plus / nicotine-plus Goto Github PK

View Code? Open in Web Editor NEW
1.5K 23.0 127.0 104.78 MB

Graphical client for the Soulseek peer-to-peer network

Home Page: https://nicotine-plus.org

License: GNU General Public License v3.0

Python 71.93% CSS 0.23% XML 27.83%
python soulseek p2p gtk peer-to-peer gtk3 chat messaging files gtk4

nicotine-plus's Introduction

Nicotine+

Nicotine+ is a graphical client for the Soulseek peer-to-peer network.

Nicotine+ aims to be a lightweight, pleasant, free and open source (FOSS) alternative to the official Soulseek client, while also providing a comprehensive set of features.

Nicotine+ is written in Python and uses GTK for its graphical user interface.

Check out the screenshots and source code.

Download

The current stable version of Nicotine+ is 3.3.2, released on February 25, 2024. See the release notes.

Downloads are available for:

Get Involved

If you feel like contributing to Nicotine+, there are several ways to get involved:

  • Issue Tracker – Report a problem or suggest improvements
  • Testing – Download the latest unstable build and help test Nicotine+
  • Translations – Translate Nicotine+ into another language with Weblate
  • Packaging – Package Nicotine+ for a distribution or operating system
  • Development – Implement bug fixes, enhancements or new features
  • IRC Channel – Chat in the #nicotine+ IRC channel on Libera.Chat

Where did the name Nicotine come from?

I was in a geeky mood and was browsing http://www.bash.org's QDB.
I stumbled across this quote:

<etc> so tempting to release a product called 'nicotine' and wait for the patches.
<etc> then i would have a reason to only apply one patch a day. otherwise, i'm going against medical advise.

So I thought what the hell and bluntly stole etc's idea.

Hyriand, former Nicotine maintainer, 2003

Legal and Privacy

Nicotine+ does not collect any user data. Different policies may apply to the default Soulseek server, which is not operated by the Nicotine+ Team.

When connecting to the default Soulseek server, you agree to abide by the Soulseek rules and terms of service.

Soulseek is an unencrypted protocol not intended for secure communication.

Authors

Nicotine+ is free and open source software, released under the terms of the GNU Public License v3 or later. Nicotine+ exists thanks to its core team, translators and contributors.

nicotine-plus's People

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

nicotine-plus's Issues

Question - Nicotine Still Being Developed?

Hi,

Welcome to GItHub... :)

Is Nicotine still being developed because I haven't seen any new versions for serveral years, and then I see the project moved to GitHub and it made me wonder, is it still alive?

Please don't let this DIE!

Configure - Directories Page 4 of 5

I'm using Slackware 14.2 x86_64 with python-2.7.13.

This issue is with 1.4.0

When I start Nicotine for the first time with the configure window, under the Directories Page 4 of 5 section, Share the following directories when I clicked Add it then gave me another popup window asking to type a name of the vitual directory, but I could not type anything in it, and then when I tried to close it, clicking the ok or cancel button nothing happened.

So then I closed nicotine, reopened it and then this time to get the Forward button to appear I just clicked Remove, now the Forward appeared...

So for now can't add a directory to share... hmm

Please see the attached screen shot of this section that won't let me type anything, and can't close either.

nic-plus

Nicotine+ Windows 8.1 (64-bit) mutagen attempts to handle non-video files

Nicotine+ version 1.4.1

While rebuilding buddy shares:

14:10:25 Rescanning Buddy Shares started
14:10:25 0 directories found before rescan/rebuild
14:10:27 4769 directories found after rescan/rebuild
14:10:38 Mutagen crashed on 'S:\Video\Movies\Knowing\checksums.db': not a MP4 file
14:10:43 Mutagen crashed on 'S:\Video\Movies\Drag Me To Hell\checksums.db': not a MP4 file
14:10:58 Mutagen crashed on 'S:\Video\TV\American Horror Story\Season 2 (Asylum)\checksums.db': not a MP4 file

Each movie directory has multiple non-video files:

  • subtitles (.srt/.sub-.idx) self-explanatory
  • movie poster (.jpg/.png) self-explanatory
  • checksum (.db) support files to implement a bit-rot detection scheme over ntfs, they hold the md5sum of all files in that directory, in the BSD-style (md5sum --tag).
    the error message above are repeated for every single directory shared that has a .db file in them, in my case, all of them.

i seem to remember that under windows mutagen handled only files with specific video/audio file extensions (rather than rely on their magic number) why is it opening .db files?

Some characters in password not handled correctly

First of all, this project does seem to be dead, but for the sake of documenting it, here goes...

While creating a new account through the 'fast configure' I used an automatically generated password (very tiresome to keep inventing and memorizing new passwords), in this case (not in use any more): 9l-t>@YoWs.A.eMdw\cU?,]vHLQ1ZS0{

It takes the password and logs in.
Problem is when the application is closed or session disconnected: upon reconnection the stored/sent password won't ever match the original one resulting in a frustrating INVALID PASS.

Possible way of recovering the username is using a different client to change the password.

Also, (some) characters seem to be replaced silently, which would make it probably impossible to ever recover the user name without requesting the server to purge that username.
This can be easily checked by changing the password to anything with a '_'. A pop-up will follow with the successfully changed password with a '-' in its stead.

"invalid operation on closed shelf" error on every download

Every time a download completes, I get the error in this output:

Sat 18:38 Nicotine+ supports a country code blocker. That requires a (GPL'ed) library called GeoIP. You can find it here: C library:       http://www.maxmind.com/app/c Python bindings: http://www.maxmind.com/app/python (the python bindings require the C
          library)
Sat 18:39 adoblivione is making a BrowseShares request
Failed to lookup 4008 in self.transfers
Entering old part FileRequest
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/pynicotine/gtkgui/frame.py", line 1482, in OnNetworkEvent
    self.np.events[i.__class__](i)
  File "/usr/lib/python2.7/site-packages/pynicotine/pynicotine.py", line 1372, in FileDownload
    self.transfers.FileDownload(msg)
  File "/usr/lib/python2.7/site-packages/pynicotine/transfers.py", line 1064, in FileDownload
    self.addToShared(newname)
  File "/usr/lib/python2.7/site-packages/pynicotine/transfers.py", line 1102, in addToShared
    self.eventprocessor.shares.addToShared(name)
  File "/usr/lib/python2.7/site-packages/pynicotine/shares.py", line 962, in addToShared
    shared, sharedstreams, wordindex, fileindex, sharedmtimes
  File "/usr/lib/python2.7/site-packages/pynicotine/config.py", line 890, in setShares
    self._storeObjects(storable_objects)
  File "/usr/lib/python2.7/site-packages/pynicotine/config.py", line 900, in _storeObjects
    for (key, value) in source.iteritems():
  File "/usr/lib/python2.7/UserDict.py", line 143, in iteritems
    for k in self:
  File "/usr/lib/python2.7/UserDict.py", line 130, in __iter__
    for k in self.keys():
  File "/usr/lib/python2.7/shelve.py", line 101, in keys
    return self.dict.keys()
  File "/usr/lib/python2.7/shelve.py", line 79, in closed
    raise ValueError('invalid operation on closed shelf')
ValueError: invalid operation on closed shelf

Further information:

  • I am on Arch Linux with the latest packages
  • I have also tried installing from master
  • I have installed the latest packages for Python2.7, GTK+ 2.24, PyGTK 2.24, and mutagen
  • I cleared out my ~/.nicotine folder on every fresh install
  • I get errors on git versions further back than nicotine+ will actually work for me, so it's likely a dependency or user error, but I cannot narrow this down further on my own

Please Help - Columns Position Not Being Maintained

Hello,

If anyone sees this and can just enable this request, this would be great! I'm using the latest version...

For me the application is working fine, except for the Columns positions are not being maintained.

The Downloads, Uploads sections, when opening and closing nicotine the positions are not maintained after you move them. And the Search Files section loosses the position everytime you do a new search.

Please see the attached screen shot below, you'll notice some of the Columns are bunched together in the Downloads section with the words cut off.

I find this such a pain in the butt, especially with the Search Files section needing them moved everytime you do a new search, and not just maintaining position.

This constant need of moving the columns has me ready to toss this app to the trash, but if someone could fix this issue, it would really make using nicotine+ enjoyable. I can't believe for how much development had gone on with this application, the columns were never made to maintain position, hmm...

Maybe this works on some desktops and window managers, I'm using Openbox and Openbox doesn't maintain something like this...

Thank you very much for those that look at this issue/request, and consider it!

Happy New Year!

nicotine

bug in userbrowse.py

i m not coder and i m nubie with nicotine
but i found bug
it dont download some mp3s from some filelist
i removed part of code in userbrowse.py:

            if attrs[2]:
                bitrate += _(" (vbr)")
            try:
                rl = int(attrs[1])
            except ValueError:
                rl = 0
            length = "%i:%02i" % (int(rl // 60), rl % 60)

and now it works well

another bug (r its only for me)
totally black tabs as showed in pic. buddy list is ok. and when u click on tab it shows name of current tab. maybe becausse its not compiled? i dont know how to compile
http://fastpic.ru/view/66/2015/0320/2ad9184b22082b2c52eb6199ebbd41de.png.html

and i wanted ask to move download options like Download Directory and Download files from submenu to menu
is there is any chance that get new features? please. please. please
export filelist to xml (yeah i know that it can save filelist, but it would be beter to bz2.xml)
show locked share (to see what shared for buddylist only, as SoulseekQT has that)

1.4.0 Text Off Set Under Columns

I'm using Slackware 14.2 x86_64 with python-2.7.13.

I noticed under the Search and Downloads sections text is offset, meaning, for the given section text is not appearing directly underneath the section aligned under the first letter as some of the sections are.

Size under the Search Files the text is located more to the right, and right next to the text for Speed. The numbers should appear under the S, appearing as an example like below;

Size
9.5MB

In queue under the Search Files the text is also located more to the right, and right next to the text for Immediate Download

Same thing, text, the numbers for In queue don't appear lined up under the letter I as they should like below;

In queue
20

Length section the numbers are off set to the right and not appearing under, the letter L lined up like below as example;

Length
3:59

Please see the attached screen shot for what I mean.

It would be nice to have separation of the text, like how the other sections all appear. Not sure why these sections are like this, hmm...

nic

Thanks

Crash When Selecting Text

Reproducible. Crashes on OSX whenever text is selected. Could be linked to being unable to paste text.
CoreDragMessageHandler : Cannot track drag receiver. No pasteboard name.
zsh: segmentation fault nicotine

Build fails on archlinux, can't copy mo file...

error: can't copy 'languages/lt/nicotine.mo': doesn't exist or not a regular file
And for some reason it thinks it's on windows?
/usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'windows'

What could I be doing wrong?

Nicotine + 1.4.1, windows 8.1 (64-bit) buttons not working

The following buttons don't work:

Configuration wizard: "check my ports (opens in your browser)", no action: there was an open browser window (chrome), but neither a new window, nor a new tab opened.

Settings/Server: "Check port status", no action, same as above

UPnP Port Mapping piles up in the router

The way nicotine+ handle UPnP Port Mapping falls a little short.
Each time you restart nicotine+ it tries to create a new port mapping without reusing existing ones (using the python binding).

capture du 2016-07-24 19-03-44

Sorry the screenshot is in french but you can see 4 UPnP redirections created.
With UPnP IGDv1 these port mappings are static the way nicotine+ create them.
With UPnP IGDv2 they expire after 7 days and your transfer stop working.

Also when using the MiniUPnPc binary you have no way to have an external WAN port different from your local LAN port.

Configure - Username

I'm using Slackware 14.2 x86_64 with python-2.7.13.

This issue is with 1.4.0

I use KeePassX to create nice long mixed character passwords, so I type in the username, but I copy and paste a password, and I noticed if I copy and paste the password, I have to backspace to remove one character in order for the Forward button to appear...

The only way this is working is if I copy and paste in the password first, then type in the username, or if I just typed in a password...

If I type in a username and then copy and paste the password the Forward button is greyed out...

Hmm odd

1.4.0 - Upload issues

Hello,

I'm running 1.4.0 on Debian Jessie (stable) 64 bit with a backported kernel (version 4.9).

Uploads seemed to be working just fine after installing 1.4.0, but after a few hours I stopped getting new peers, and I could no longer search my own files from another account. Restarting the program seems to fix the issue, but I don't know how consistent it is. Uploads work fine in SoulseekQT with same listening ports, so it doesn't appear to be a firewall issue.

I should note that I've had similar issues with all versions of nicotine-plus that I have tried so far: the stable version in the main Debian repos, and the main trunk version that was released prior to 1.4.0.

I'm new to the bug reporting process, so please let me know if I've omitted anything, or there is anything I can clarify.

Thank you!

1.4.0 /usr/bin empty

I'm compiling on Slackware 14.2 x86_64 with python-2.7.13.

This is my build script;

PRGNAM=nicotine-plus
VERSION=${VERSION:-1.4.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_foo}

if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i486 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
fi

CWD=$(pwd)
TMP=${TMP:-/tmp/foo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}

set -eu

rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tar.?z*
cd $PRGNAM-$VERSION
chown -R root:root .
find -L .
( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555
-o -perm 511 ) -exec chmod 755 {} ; -o
( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444
-o -perm 440 -o -perm 400 ) -exec chmod 644 {} ;

python setup.py install --root=$PKG

mv $PKG/usr/share/man $PKG/usr

find $PKG/usr/man -type f -exec gzip -9 {} ;
for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done

mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a AUTHORS.md COPYING NEWS README.md $PKG/usr/doc/$PRGNAM-$VERSION
mv $PKG/usr/share/doc/nicotine/* $PKG/usr/doc/$PRGNAM-$VERSION

rm -rf $PKG/usr/share/doc/
rm -rf $PKG/usr/share/locale/

mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/doinst.sh > $PKG/install/doinst.sh

cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}

After running the script the contents of /usr/bin is empty.

With the last version of nicotine+ 1.2.16 using pretty much the same build script it had;

/usr/bin/nicotine.py
/usr/bin/nicotine-import-winconfig

Hmm something missing in the setup.py?

Scanning File Error: 'MPEGInfo' object has no attribute '_MPEGInfo__BITRATE'

08:08:12 Scanning File Error: 'MPEGInfo' object has no attribute '_MPEGInfo__BITRATE' Path: ***
08:08:12 Traceback: AttributeError: 'MPEGInfo' object has no attribute '_MPEGInfo__BITRATE'
08:08:12   File "/usr/lib/python2.7/dist-packages/pynicotine/shares.py", line 568, in getFileInfo
    info = metadata.detect(pathname)
08:08:12   File "/usr/lib/python2.7/dist-packages/pynicotine/metadata_mutagen.py", line 26, in detect
    return processMPEG(audio)
08:08:12   File "/usr/lib/python2.7/dist-packages/pynicotine/metadata_mutagen.py", line 62, in processMPEG
    rates = audio.info._MPEGInfo__BITRATE[(audio.info.version, audio.info.layer)]
08:08:12 Traceback: AttributeError: 'MPEGInfo' object has no attribute '_MPEGInfo__BITRATE'
08:08:12   File "/usr/lib/python2.7/dist-packages/pynicotine/shares.py", line 568, in getFileInfo
    info = metadata.detect(pathname)
08:08:12   File "/usr/lib/python2.7/dist-packages/pynicotine/metadata_mutagen.py", line 26, in detect
    return processMPEG(audio)
08:08:12   File "/usr/lib/python2.7/dist-packages/pynicotine/metadata_mutagen.py", line 62, in processMPEG
    rates = audio.info._MPEGInfo__BITRATE[(audio.info.version, audio.info.layer)]
08:08:12 Scanning File Error: 'MPEGInfo' object has no attribute '_MPEGInfo__BITRATE'

Debian testing
Package: nicotine
Version: 1.2.16+dfsg-1.1

Downloads tab hanging when adding a lot of files

Extracted from #32

When you have a lot (about 3000 or more) files added to download, the program hangs for several seconds when doing anything, if the Downloads tab is visible. I suspect that it is trying to sort every item each tick of the GUI main loop.

File Error: can't sync to MPEG frame

08:08:12 Scanning File Error: can't sync to MPEG frame Path: ****
08:08:12 Traceback: HeaderNotFoundError: can't sync to MPEG frame
08:08:12   File "/usr/lib/python2.7/dist-packages/pynicotine/shares.py", line 568, in getFileInfo
    info = metadata.detect(pathname)
08:08:12   File "/usr/lib/python2.7/dist-packages/pynicotine/metadata_mutagen.py", line 19, in detect
    audio = mutagen.File(path)
08:08:12   File "/usr/lib/python2.7/dist-packages/mutagen/_util.py", line 131, in wrapper_func
    return func(h, *args, **kwargs)
08:08:12   File "/usr/lib/python2.7/dist-packages/mutagen/_file.py", line 295, in File
    return Kind(fileobj, filename=filething.filename)
08:08:12   File "/usr/lib/python2.7/dist-packages/mutagen/_file.py", line 48, in __init__
    self.load(*args, **kwargs)
08:08:12   File "/usr/lib/python2.7/dist-packages/mutagen/_util.py", line 123, in wrapper
    return func(self, h, *args, **kwargs)
08:08:12   File "/usr/lib/python2.7/dist-packages/mutagen/id3/_file.py", line 406, in load
    self.info = self._Info(fileobj, offset)
08:08:12   File "/usr/lib/python2.7/dist-packages/mutagen/_util.py", line 152, in wrapper
    return func(*args, **kwargs)
08:08:12   File "/usr/lib/python2.7/dist-packages/mutagen/mp3/__init__.py", line 387, in __init__
    raise HeaderNotFoundError("can't sync to MPEG frame")

Debian testing
Package: nicotine
Version: 1.2.16+dfsg-1.1

some bugs or misconfiguration ?

Hello, just noticed some diif between 1.2.17 and 1.4.0 upnp seems to does not work, the way to change icons also does not work 'as before'

(~/Téléchargements/nicotine-plus-master$ ./nicotine
mar. 16:53 UPnP exception: Échec de redirection du port WAN externe: Invalid Args
mar. 16:53 Échec de création de la règle de redirection de port UPnP.)

and the way to modify languages: now im in french and i still to keep it in english

thank you.

im ><((((*> in nicotine room if you need/want helps

Uploads stop working after a while

Extracted from #32

Sometimes uploads stop working, with no reason given. It will just sit at "Waiting for peer to connect". A restart of Nicotine fixes this.

Information On nicotine-plus.org

@gfarmerfr
It would be a good idea if you have access to nicotine-plus.org to make a note on the site letting end-users know that development has begun again on nicotine-plus. :)

SSL Certificate Expired

https://www.nicotine-plus.org/ is reported to be using an expired ssl certificate, according to Chromium.
The message is as follows:
This server could not prove that it is www.nicotine-plus.org; its security certificate expired 69 days ago. This may be caused by a misconfiguration or an attacker intercepting your connection. Your computer's clock is currently set to Thursday, 13 April 2017. Does that look right? If not, you should correct your system's clock and then refresh this page. Find out more.

userbrowse core dump

Step to reproduce:

  1. Browse your own share or anyone else for that matter.
  2. Start scrolling throught the share by pressing the down arrow.
  3. Wait for the core dump :

**
ERROR:gailtreeview.c:2314:idle_expand_row: code should not be reached

[1] + 10743 abort (core dumped) python nicotine.py

Bisected to 12424d4 if i'm not wrong.

Can anyone confirm this ?

this hangs the program since a few days, I'm using the git head version

Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/threading.py", line 810, in __bootstrap_inner
self.run()
File "/home/user/opt/nicotine/pynicotine/slskproto.py", line 385, in run
conns, connsinprogress, server_socket = self.process_queue(queue, conns, connsinprogress, server_socket)
File "/home/user/opt/nicotine/pynicotine/slskproto.py", line 919, in process_queue
msg = msgObj.makeNetworkMessage()
File "/home/user/opt/nicotine/pynicotine/slskmessages.py", line 1763, in makeNetworkMessage
self.packObject(2) +
File "/home/user/opt/nicotine/pynicotine/slskmessages.py", line 304, in packObject
return struct.pack("<I", object.value)
error: integer out of range for 'I' format code

/home/user/opt/nicotine/pynicotine/gtkgui/frame.py:1295: Warning: Source ID 27653 was not found when attempting to remove it
gobject.source_remove(self.awaytimer)

Unable to save settings

Using the latest git release. Upon pressing the Apply button, output to terminal shows:

Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/pynicotine/gtkgui/frame.py", line 2173, in OnSettingsClosed
    output = self.settingswindow.GetSettings()
  File "/usr/lib/python2.7/site-packages/pynicotine/gtkgui/settingswindow.py", line 3670, in GetSettings
    sub = page.GetSettings()
  File "/usr/lib/python2.7/site-packages/pynicotine/gtkgui/settingswindow.py", line 2101, in GetSettings
    iter_Main = self.PosList.get_iter(self.MainPosition.get_active())
ValueError: invalid tree path

Segmentation fault on Ubuntu Gnome 17.04

Nicotine used to work on this machine. However, since this afternoon, every time I try to start it it closes as soon as it tries to scan/rebuild my share directory.

I tried starting it from Terminal, and all that shows is Segmentation fault (core dumped)

Any idea how I can get this working again? It's a real drag having to use SoulseekQT, because that client doesn't even save my settings on exit, so I then have to go back and try to download anything that hadn't completed again manually, which is a pain in the ass.

Any help would be greatly appreciated.

Thanks!

Add "Group by folder" option to search results

I love the ideas of FOSS, and of Python and of Nicotine+ ... but after trying Nictine+ for a while I went back to SoulSeekQT, for one main reason. Namely this feature, which SoulSeekQT has, Nicotine+ lacks and that I find essential for navigating search results sensibly.

Michael Labouebe ( @gfarmerfr) suggested posting it as a bug and to include screenshots. So here it is as an issue to adddress and here is what the SoulSeekQT resutls look like for a sample search (on Led Zeppelin), grouped by folder:

Image of SoulSeekQT Search results

and here is what Nicotine+ looks like:

Image of Nicotine+ Search results

Notice that Nicotine+ can group by user, but not by folder. Which alas for me is a fail :-(. Else I'd probably still be using Nicotine+ and potentially, given it's in Python, keeping the code on hand, and tweaking it if I ever felt the need, but the idea of implementing group by folder when SoulSeekQT already did it, didn't appeal to me I guess as I'd rather spend what little time I have on other projects.

upnp functionality is used despite being config'd as False

In frame.py's OnFirstConnect function there are initializations and checks of upnp functionality even when upnp is configured as False (and such functionality is not desired or needed)

Please relocate

if self.np.config.sections["server"]["upnp"]:

to the very start of OnFirstConnect()

This is an issue as the reworked code broke the ability of the user to Torify Nicotine+.

Can't download from certain users

Having followed the advice given in the documentation, I ensured that the port that Nicotine+ was operating on is open, and I tested it with several port-testing utilities, the result being that Nicotine+ should be able to work fine.

However I am simply unable to download from a large number of users. No error at all is reported, I simply click "download" on a file in the Downloads tab and nothing happens. With some users it works, but often I have to try 6 or 7 different users before finding one that I can download from.

I have uPnP disabled due to the fact that Nicotine+ complains about an "unknown exception" when loading uPnP. I am under the impression that I don't need uPnP to use the software.

The problem happens on both the version run from this current git repo, and on the Debian stable install.

I'm not sure if this counts as a bug or not, as this behaviour should be what happens when my ports are incorrectly configured. However there seems to be no such problem.

Thanks.

Hidden directory files now showing up in file shares (Windows)

I have directories both with attrib +h and also that start with a dot. In the past this prevented sharing on both the official soulseek clients (which respect the attribute) and with nicotine+ (which in the past hid the .directories).

The hidden .directory files are now showing up in shares when running nicotine+ on windows.

File transfers are failing.

Some encoding issues are preventing people from downloading files - this is not good.

I tested running nicotine-plus on Windows, using a remote client (SlskQT, also on Windows) to request a file from the nicotine-plus client. The file transfer fails due to a problem with nicotine-plus:

"TypeError: String or Integer object expected for key, unicode found"

I found that correctPath(self, path) in shares.py was being called with 'path' encoded as unicode, whereas the shelve keys are encoded string! Obviously, this leads to the TypeError.

Functionality of correctPath() is not even needed when running nicotine-plus on windows. The most straightforward fix is adding a nope-out to the start of correctPath:

if win32:
    return

Do you have a better fix?

Settings window slow to open

Extracted from #32

It takes a few seconds for the Settings window to display when opening it. The program is unresponsive until it does.

Percent: 100%, Status: Transferring

I queued a few downloads from various and they've sat like that for ages. A seeming bug. The files are all in the .nicotine/incompletefiles folder and prefixed with INCOMPLETE and what looks like it may be a GUID or a very long number in any case. They play fine in Banshee though and so it seems a bug in Nictoine+ which is simply failing to notice they are complete and finalising the transaction.

As others have noted development seems stalled. If I have time and enough passion I'll try to download, build and diagnose ... but even if I did, I loathe to invest time find and fix a bug only find there is no way to push it into the master branch. If someone is alive and watching this and prepared to ensure such stagnation doesn't mean any fixes are purely personal, and local but contribute to the master branch it's a fair disincentive.

Bitrate - Length - Speed

I noticed a few things with 1.4.0, not sure I understand what is going on, if this is just the way it is, depending on the user or something to do with soulseek?

I noticed when doing a search for a song, many of the songs don't even show a bitrate or length.

For me bitrate is really important to look for better quality...

Also under the Downloads section I noticed when I was done downloading the song under Speed it appeared like this;

Speed
0.1

By the way this is with 1.4.0 from your repo, is there suppose to be a speed indicated when done, like showing the average of what the download was? if so then ok it's showing something but 0.1 must be a bug since it's not showing the true average which was 20KB.

Also shouldn't a KB or MB be appearing after the numbers, when done as well as when a download is in progress? Also when downloading I will only see as example 25.5

Thanks

Currently broken on windows

Traceback (most recent call last):
File "nicotine.py", line 36, in
ApplyTranslation()
File "Z:\dev\new\nicotine-plus-master\pynicotine\utils.py", line 144, in ApplyTranslation
currentlang = locale.getlocale()[0].split('_')[0]
AttributeError: 'NoneType' object has no attribute 'split'

CPU usage spikes and remains high after period of usage

Hi @gfarmerfr

I am using the master version 1.4.1 on Debian Stretch with kernel 4.9.0-2.

If I leave N+ open and seeding, after a variable period of time (between let's say 6 and 24 hours) its CPU usage will spike very high, and remain high thereafter. If I run htop during this high CPU usage phase I see two PIDs associated with nicotine with very high usage (~150% and ~85%). Restarting nicotine temporarily fixes the problem.

Please let me know if there is any other information I can provide.

Thanks.

bug or feature ?

Hello, just noticed some diif between 1.2.17 and 1.4.0 upnp seems to does not work, the way to change icons also does not work 'as before'

(~/Téléchargements/nicotine-plus-master$ ./nicotine
mar. 16:53 UPnP exception: Échec de redirection du port WAN externe: Invalid Args
mar. 16:53 Échec de création de la règle de redirection de port UPnP.)

and the way to modify languages: now im in french and i still to keep it in english

thank you.

im ><((((*> in nicotine room if you need/want helps

send to player does not work.

Hello im using nic+ from today it looks like send to player option does not work
im using ubuntu 16.10 with default player Rhythmbox

Double clicking options are activated to "send to player" both up/dl but does not send to player.
no log or debug info in log aera .

when activate "open directory" nautilus starts and open folder with good place

thank you best regards

Some users get "file not shared" only when downloading containing folders

Hello,

I've been having a frequent issue where I see a string of Queued upload request: User [user]... messages (one for each file a peer is attempting to download from me), but no files are added to my Uploads. I usually try to message them to see what's happening on their end, and every person who has responded has said that they received a File not shared error.

Curiously, one user who got the error said that they could download the same file that just failed by clicking on each song individually; they only got the error when selecting Download containing folder(s). Consistent with this account, I haven't seen this queued upload request problem happen with any single file downloaders.which happens pretty frequently. I looked to see if any of the problematic folders had any weird characters, and they looked normal to me.

According to some research I did, the File not shared error is caused either by the client not having the proper permissions, or because of a port forwarding issue. All my files and folders have 755 permissions, so I don't think it's that. A user in chat thought it might be ports issue, where either myself or the peer couldn't receive direct connections. They thought it was just something that happens with soulseek. They suggested I try to telnet the ports of the peers who had a failed download to see if they are open or not, but I can't seem to connect to any external ports with telnet - not sure why. This person could telnet to my ports, which seems to confirm its not a ports issue on my end.

This happens around once for every five users that try to download from me. I do not see anything like this happening with QT, which you might expect if it was just a soulseek thing like the person I talked to suggested.

It's not a gigantic issue for me because I am getting a lot of uploads lately, but I just thought I should mention it. If I'm the only person with this issue, I'm more than happy to just live with it.

I should perhaps note that the file system my songs are located on is NTFS. I don't have any issues with this setup otherwise, but maybe it's a potential problem. Edit: I actually think I'll try reformatting this drive as ext4 sometime tomorrow, just in case. Edit2: Problem still exists after formatting to ext4. ¯_(ツ)_/¯

Thanks!

1.4.0 - Hide Buddy List

Slackware 14.2 x86_64 with python-2.7.13, with nic+ 1.4.0 I noticed I can hide all the tabs except the Buddy List.

When I right click Buddy List nothing appears like the other tabs. I see under the Modes that Buddy List is shown, so I'm assuming it should be able to be hidden as well...

THANKS

NTFS support on linux

N+ seems to have problems with files names on NTFS.
Need to investigate and find a common way to handle this with all OS / Filesystems.
See #48

Nicotine+ 1.4.1, windows 8.1 (64-bit) Spurious error messages

At 1st run the configuration wizard is launched, and i provided all the necessary information. On conclusion, the log shows the following:

13:45:56 You need to configure your settings (Server, Username, Password, Download Directory) before connecting...
13:45:56 Config option unset: Section: server, Option: passw
13:45:56 Config option unset: Section: server, Option: login

I checked the settings, but all of this information was filled properly, so I don't understand how this is possible.

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.