[PP-Script] VideoSort - better video sorting

Share your scripts or request scripts with specific features.
Forum rules
Please keep the forum clean - one topic per script. Questions not related to a specific script should be posted in Support forum.
minimeh
Posts: 33
Joined: 16 Aug 2013, 09:54

Re: [PP-Script] VideoSort - better video sorting

Post by minimeh » 22 Nov 2014, 21:25

The "Star Wars Rebels" issue appears to be another problem with guessit. When using code plucked from videosort.py, "Star" is interpreted as a specifier for subtitle language as Arabic:

Code: Select all

>>> path='Star.Wars.Rebels.S01E08.WEBRiP.x264-QCF.mp4'
>>> matcher = guessit.matcher.IterativeMatcher(unicode(path), filetype='autodetect', opts=['nolanguage', 'nocountry'])
>>> guess = matcher.matched()
>>> print guess.nice_string()
{
    [1.00] "mimetype": "video/mp4",
    [1.00] "episodeNumber": 8,
    [1.00] "videoCodec": "h264",
    [1.00] "container": "mp4",
    [1.00] "format": "WEBRip",
    [0.70] "series": "Wars Rebels",
    [0.80] "subtitleLanguage": [
        "Arabic"
    ],
    [1.00] "releaseGroup": "QCF",
    [1.00] "season": 1,
    [1.00] "type": "episode"
}
but using other code, the file name is parsed correctly

Code: Select all

>>> path='Star.Wars.Rebels.S01E08.WEBRiP.x264-QCF.mp4'
>>> guess = guessit.guess_file_info(path, info=['filename'])
>>> print guess.nice_string()
{
    [1.00] "mimetype": "video/mp4",
    [1.00] "episodeNumber": 8,
    [1.00] "videoCodec": "h264",
    [1.00] "container": "mp4",
    [1.00] "format": "WEBRip",
    [0.70] "series": "Star Wars Rebels",
    [1.00] "releaseGroup": "QCF",
    [1.00] "season": 1,
    [1.00] "type": "episode"
}
The results above are with guessit v0.8.dev0 that is currently distributed with videosort v5.0. Running the same code on guessit v0.9.4 returned similar results. Only the subtitle language of "Arabic" is abbreviated to "ar" in the current version.

I opened an issue ticket on the guessit project site: https://github.com/wackou/guessit/issues/177

minimeh
Posts: 33
Joined: 16 Aug 2013, 09:54

Re: [PP-Script] VideoSort - better video sorting

Post by minimeh » 03 Dec 2014, 19:12

minimeh wrote:I opened an issue ticket on the guessit project site: https://github.com/wackou/guessit/issues/177
Developer wackou just closed the ticket with the comment:
wackou wrote: what you really need to write if you want to do it like in the first example is the following:

Code: Select all

>>> matcher = guessit.matcher.IterativeMatcher(unicode(path), filetype='autodetect', options={'nolanguage': True, 'nocountry': True})
I do agree the nolanguage=True is not really idiomatic, though.
In any case, it is recommended to not use the IterativeMatcher unless you really know what you're doing, but rather the guess_*_info, as described here: http://guessit.readthedocs.org/en/lates ... ython.html
I plugged his suggested code into videosort.py:

Code: Select all

    # matcher = guessit.matcher.IterativeMatcher(unicode(guessfilename), filetype='autodetect', opts=['nolanguage', 'nocountry'])
    matcher = guessit.matcher.IterativeMatcher(unicode(guessfilename), filetype='autodetect', options={'nolanguage': True, 'nocountry': True})
It seems to work correctly:

Code: Select all

Wed Dec 03 10:53:25 2014	INFO	Executing post-process-script videosort\VideoSort.py for Star.Wars.Rebels.S01E08.WEBRiP.x264-QCF
Wed Dec 03 10:53:26 2014	WARNING	VideoSort: *** PREVIEW MODE ON - NO CHANGES TO FILE SYSTEM ***
Wed Dec 03 10:53:26 2014	INFO	VideoSort: Forcing TV sorting (category: TV)
Wed Dec 03 10:53:26 2014	INFO	VideoSort: Skipping small: sample-star.wars.rebels.s01e08.webrip.x264-qcf.mp4
Wed Dec 03 10:53:26 2014	INFO	VideoSort: filename: Z:\Media\TV\Star.Wars.Rebels.S01E08.WEBRiP.x264-QCF\star.wars.rebels.s01e08.webrip.x264-qcf.mp4
Wed Dec 03 10:53:26 2014	INFO	VideoSort: Using NZB-Name
Wed Dec 03 10:53:26 2014	INFO	VideoSort: Guessing: Star.Wars.Rebels.S01E08.WEBRiP.x264-QCF.mp4
Wed Dec 03 10:53:26 2014	INFO	VideoSort: 000000000000000000000000000000000000000 111
Wed Dec 03 10:53:26 2014	INFO	VideoSort: 000000000000000000000000000000000000000 000
Wed Dec 03 10:53:26 2014	INFO	VideoSort: 000000000000000000000000111111222222222 000
Wed Dec 03 10:53:26 2014	INFO	VideoSort: 000000000000000001111112      011112222
Wed Dec 03 10:53:26 2014	INFO	VideoSort:                                    0111
Wed Dec 03 10:53:26 2014	INFO	VideoSort: _______________________.______.____-___.___
Wed Dec 03 10:53:26 2014	INFO	VideoSort: TTTTTTTTTTTTTTTTTEEEEEE ffffff vvvv rrr ccc
Wed Dec 03 10:53:26 2014	INFO	VideoSort: Star.Wars.Rebels.S01E08.WEBRiP.x264-QCF.mp4
Wed Dec 03 10:53:26 2014	INFO	VideoSort: {u'type': u'episode'}
Wed Dec 03 10:53:26 2014	INFO	VideoSort: {u'series': u'Star Wars Rebels'}
Wed Dec 03 10:53:26 2014	INFO	VideoSort: {u'season': 1, u'episodeNumber': 8}
Wed Dec 03 10:53:26 2014	INFO	VideoSort: {u'format': u'WEBRip'}
Wed Dec 03 10:53:26 2014	INFO	VideoSort: {u'videoCodec': u'h264'}
Wed Dec 03 10:53:26 2014	INFO	VideoSort: {u'releaseGroup': u'QCF'}
Wed Dec 03 10:53:26 2014	INFO	VideoSort: {u'mimetype': u'video/mp4', u'container': u'mp4'}
Wed Dec 03 10:53:26 2014	INFO	VideoSort: {u'container': u'mp4'}
Wed Dec 03 10:53:26 2014	INFO	VideoSort: {
Wed Dec 03 10:53:26 2014	INFO	VideoSort:     [1.00] "mimetype": "video/mp4",
Wed Dec 03 10:53:26 2014	INFO	VideoSort:     [1.00] "episodeNumber": 8,
Wed Dec 03 10:53:26 2014	INFO	VideoSort:     [1.00] "videoCodec": "h264",
Wed Dec 03 10:53:27 2014	INFO	VideoSort:     [1.00] "container": "mp4",
Wed Dec 03 10:53:27 2014	INFO	VideoSort:     [1.00] "format": "WEBRip",
Wed Dec 03 10:53:27 2014	INFO	VideoSort:     [0.70] "series": "Star Wars Rebels",
Wed Dec 03 10:53:27 2014	INFO	VideoSort:     [1.00] "releaseGroup": "QCF",
Wed Dec 03 10:53:27 2014	INFO	VideoSort:     [1.00] "season": 1,
Wed Dec 03 10:53:27 2014	INFO	VideoSort:     [1.00] "type": "episode"
Wed Dec 03 10:53:27 2014	INFO	VideoSort: }
Wed Dec 03 10:53:27 2014	INFO	VideoSort: Type: series
Wed Dec 03 10:53:27 2014	INFO	VideoSort: format: %sn/Season %s/%s.n.S%0sE%0e.%ext
Wed Dec 03 10:53:27 2014	INFO	VideoSort: path after subst: Star Wars Rebels/Season 1/Star.Wars.Rebels.S01E08..mp4
Wed Dec 03 10:53:27 2014	INFO	VideoSort: path after cleanup: Star Wars Rebels\Season 1\Star.Wars.Rebels.S01E08.mp4
Wed Dec 03 10:53:27 2014	INFO	VideoSort: destination path: Z:\Media\TV\Star Wars Rebels\Season 1\Star.Wars.Rebels.S01E08.mp4
Wed Dec 03 10:53:27 2014	INFO	VideoSort: Moved: Z:\Media\TV\Star Wars Rebels\Season 1\Star.Wars.Rebels.S01E08.mp4
Wed Dec 03 10:53:27 2014	INFO	VideoSort: Move satellites for Z:\Media\TV\Star.Wars.Rebels.S01E08.WEBRiP.x264-QCF\star.wars.rebels.s01e08.webrip.x264-qcf.mp4

hugbug
Developer & Admin
Posts: 7645
Joined: 09 Sep 2008, 11:58
Location: Germany

Re: [PP-Script] VideoSort - better video sorting

Post by hugbug » 03 Dec 2014, 23:30

Thank you for clarifying this thing. I'll do the change as you suggest.

johnbon
Posts: 2
Joined: 05 Dec 2014, 06:41

Re: [PP-Script] VideoSort - better video sorting

Post by johnbon » 05 Dec 2014, 06:49

I recently switched over to NZBGet and NZBDrone and would love to be able to use your script but I'm getting an error that I haven't been able to figure out. Perhaps I'm missing something obvious. I'm running Windows and have Python 2.7.8 installed. I'm using a category for Movies and selected VideoSort for the pp-script in that category. Every time I run the script on any file I get this error "VideoSort: must be string without null bytes or None, not str". Any help would be appreciated.

Here's the log:

Code: Select all

INFO	Thu Dec 04 2014 22:36:57	Collection Village.Of.The.Damned.1995.REMASTERED.BDRiP.x264-CREEPSHOW added to history
ERROR	Thu Dec 04 2014 22:36:57	Post-process-script videosort\VideoSort.py for Village.Of.The.Damned.1995.REMASTERED.BDRiP.x264-CREEPSHOW failed
INFO	Thu Dec 04 2014 22:36:57	VideoSort: TypeError: must be string without null bytes or None, not str
INFO	Thu Dec 04 2014 22:36:57	VideoSort: with _winreg.OpenKey(hkcr, subkeyname) as subkey:
INFO	Thu Dec 04 2014 22:36:57	VideoSort: File "C:\Python27\lib\mimetypes.py", line 254, in read_windows_registry
INFO	Thu Dec 04 2014 22:36:57	VideoSort: db.read_windows_registry()
INFO	Thu Dec 04 2014 22:36:57	VideoSort: File "C:\Python27\lib\mimetypes.py", line 351, in init
INFO	Thu Dec 04 2014 22:36:57	VideoSort: init()
INFO	Thu Dec 04 2014 22:36:56	VideoSort: File "C:\Python27\lib\mimetypes.py", line 290, in guess_type
INFO	Thu Dec 04 2014 22:36:56	VideoSort: mime, _ = mimetypes.guess_type(mtree.string, strict=False)
INFO	Thu Dec 04 2014 22:36:56	VideoSort: File "C:\Program Files (x86)\NZBGet\scripts\videosort/lib\guessit\transfo\guess_filetype.py", line 202, in process
INFO	Thu Dec 04 2014 22:36:56	VideoSort: transformer.process(self.match_tree, self.options)
INFO	Thu Dec 04 2014 22:36:56	VideoSort: File "C:\Program Files (x86)\NZBGet\scripts\videosort/lib\guessit\matcher.py", line 120, in _process
INFO	Thu Dec 04 2014 22:36:56	VideoSort: self._process(transformer, False)
INFO	Thu Dec 04 2014 22:36:56	VideoSort: File "C:\Program Files (x86)\NZBGet\scripts\videosort/lib\guessit\matcher.py", line 105, in __init__
INFO	Thu Dec 04 2014 22:36:56	VideoSort: matcher = guessit.matcher.IterativeMatcher(unicode(guessfilename), filetype='autodetect', opts=['nolanguage', 'nocountry'])
INFO	Thu Dec 04 2014 22:36:56	VideoSort: File "C:\Program Files (x86)\NZBGet\scripts\videosort\VideoSort.py", line 959, in guess_info
INFO	Thu Dec 04 2014 22:36:56	VideoSort: guess = guess_info(filename)
INFO	Thu Dec 04 2014 22:36:56	VideoSort: File "C:\Program Files (x86)\NZBGet\scripts\videosort\VideoSort.py", line 1022, in construct_path
INFO	Thu Dec 04 2014 22:36:56	VideoSort: new_path = construct_path(old_path)
INFO	Thu Dec 04 2014 22:36:56	VideoSort: File "C:\Program Files (x86)\NZBGet\scripts\videosort\VideoSort.py", line 1135, in <module>
INFO	Thu Dec 04 2014 22:36:56	VideoSort: Traceback (most recent call last):
ERROR	Thu Dec 04 2014 22:36:56	VideoSort: must be string without null bytes or None, not str
ERROR	Thu Dec 04 2014 22:36:56	VideoSort: Failed: creep-villageofdamnedsd.rar
INFO	Thu Dec 04 2014 22:36:56	VideoSort: Guessing: Village.Of.The.Damned.1995.REMASTERED.BDRiP.x264-CREEPSHOW.mkv
INFO	Thu Dec 04 2014 22:36:56	VideoSort: Using NZB-Name
INFO	Thu Dec 04 2014 22:36:56	VideoSort: filename: G:\Stuff\NZBGet\\complete\movies\Village.Of.The.Damned.1995.REMASTERED.BDRiP.x264-CREEPSHOW\creep-villageofdamnedsd.mkv
INFO	Thu Dec 04 2014 22:36:55	Executing post-process-script videosort\VideoSort.py for Village.Of.The.Damned.1995.REMASTERED.BDRiP.x264-CREEPSHOW

minimeh
Posts: 33
Joined: 16 Aug 2013, 09:54

Re: [PP-Script] VideoSort - better video sorting

Post by minimeh » 05 Dec 2014, 09:07

Interesting problem (albeit frustrating). I first thought maybe it was something in Python 2.7.8. I have 2.7.7 still and have not seen the problem. The Python 2.7.8 download page( https://www.python.org/downloads/release/python-278/) lists "A regression in the mimetypes module on Windows has been fixed." as one of the fixes. On the other hand, if that was all that the problem was you would not have been the first to see it.

I checked the current Python bugs and found one report of what you are seeing (http://bugs.python.org/issue22028, but that is not specific to 2.7.8. So probably downgrading to 2.7.7 won't help.

Then I googled and found "Python ‘pip’ and Windows registry corruption" (http://www.swarley.me.uk/blog/2014/04/2 ... orruption/). The author found that registry corruption was the problem. When a registry key contains an embedded null character in the key, the error you are seeing is thrown. Same thing as mentioned in the Python bug above. The article gives you some approaches to deal with the issue.

johnbon
Posts: 2
Joined: 05 Dec 2014, 06:41

Re: [PP-Script] VideoSort - better video sorting

Post by johnbon » 05 Dec 2014, 19:34

Thank you very much, that did the trick! I ended up removing corrupted keys with the RedDelNull tool and all is well now. That would be have been a very tough one for me to figure out, so much appreciated.

ablitz
Posts: 4
Joined: 09 Dec 2014, 19:33

Re: [PP-Script] VideoSort - better video sorting

Post by ablitz » 09 Dec 2014, 19:43

I have an issue with the codec renaming on a couple of files. PP renames them to h264 when they are named x264. See log below

Code: Select all

INFO    2014-12-09 20:24:28     Post-process-script FailureLink.py for Ax Men S06E18 720p HDTV x264-KILLERS successful
INFO    2014-12-09 20:24:28     Executing post-process-script videosort/VideoSort.py for Ax Men S06E18 720p HDTV x264-KILLERS
WARNING 2014-12-09 20:24:28     VideoSort: *** PREVIEW MODE ON - NO CHANGES TO FILE SYSTEM ***
INFO    2014-12-09 20:24:28     VideoSort: Skipping small: cdgxneGxXxjbBYzEhJLg-sample.mkv
INFO    2014-12-09 20:24:28     VideoSort: filename: /home/xxxx/ActiveDownload/Rename/Ax Men S06E18 720p HDTV x264-KIL$
INFO    2014-12-09 20:24:28     VideoSort: Using NZB-Name
INFO    2014-12-09 20:24:28     VideoSort: Guessing: Ax Men S06E18 720p HDTV x264-KILLERS.mkv
INFO    2014-12-09 20:24:28     VideoSort: 000000000000000000000000000000000000 111
INFO    2014-12-09 20:24:28     VideoSort: 000000000000000000000000000000000000 000
INFO    2014-12-09 20:24:28     VideoSort: 000000000000000000011112222222222222 000
INFO    2014-12-09 20:24:28     VideoSort: 0000000000000011112    0111122222222
INFO    2014-12-09 20:24:28     VideoSort: 00000001111112              01111111
INFO    2014-12-09 20:24:28     VideoSort: _____________ ____ ____ ____-_______.___
INFO    2014-12-09 20:24:28     VideoSort: TTTTTTTEEEEEE ssss ffff vvvv rrrrrrr ccc
INFO    2014-12-09 20:24:28     VideoSort: Ax Men S06E18 720p HDTV x264-KILLERS.mkv
INFO    2014-12-09 20:24:28     VideoSort: {u'type': u'episode'}
INFO    2014-12-09 20:24:28     VideoSort: {u'series': u'Ax Men'}
INFO    2014-12-09 20:24:28     VideoSort: {u'season': 6, u'episodeNumber': 18}
INFO    2014-12-09 20:24:28     VideoSort: {u'screenSize': u'720p'}
INFO    2014-12-09 20:24:28     VideoSort: {u'format': u'HDTV'}
INFO    2014-12-09 20:24:28     VideoSort: {u'videoCodec': u'h264'}
INFO    2014-12-09 20:24:28     VideoSort: {u'releaseGroup': u'KILLERS'}
INFO    2014-12-09 20:24:28     VideoSort: {u'mimetype': u'video/x-matroska', u'container': u'mkv'}
INFO    2014-12-09 20:24:28     VideoSort: {u'container': u'mkv'}
INFO    2014-12-09 20:24:28     VideoSort: {
INFO    2014-12-09 20:24:28     VideoSort:     [1.00] "mimetype": "video/x-matroska",
INFO    2014-12-09 20:24:28     VideoSort:     [1.00] "episodeNumber": 18,
INFO    2014-12-09 20:24:28     VideoSort:     [1.00] "videoCodec": "h264",
INFO    2014-12-09 20:24:28     VideoSort: {u'releaseGroup': u'KILLERS'}
INFO    2014-12-09 20:24:28     VideoSort: {u'mimetype': u'video/x-matroska', u'container': u'mkv'}
INFO    2014-12-09 20:24:28     VideoSort: {u'container': u'mkv'}
INFO    2014-12-09 20:24:28     VideoSort: {
INFO    2014-12-09 20:24:28     VideoSort:     [1.00] "mimetype": "video/x-matroska",
INFO    2014-12-09 20:24:28     VideoSort:     [1.00] "episodeNumber": 18,
INFO    2014-12-09 20:24:28     VideoSort:     [1.00] "videoCodec": "h264",
INFO    2014-12-09 20:24:28     VideoSort:     [1.00] "container": "mkv",
INFO    2014-12-09 20:24:28     VideoSort:     [1.00] "format": "HDTV",
INFO    2014-12-09 20:24:28     VideoSort:     [0.70] "series": "Ax Men",
INFO    2014-12-09 20:24:28     VideoSort:     [1.00] "releaseGroup": "KILLERS",
INFO    2014-12-09 20:24:28     VideoSort:     [1.00] "screenSize": "720p",
INFO    2014-12-09 20:24:28     VideoSort:     [1.00] "season": 6,
INFO    2014-12-09 20:24:28     VideoSort:     [1.00] "type": "episode"
INFO    2014-12-09 20:24:28     VideoSort: }
INFO    2014-12-09 20:24:28     VideoSort: Using DNZB-ProperName
INFO    2014-12-09 20:24:28     VideoSort: Using DNZB-EpisodeName
INFO    2014-12-09 20:24:28     VideoSort: Using DNZB-MoreInfo
INFO    2014-12-09 20:24:28     VideoSort: {
INFO    2014-12-09 20:24:28     VideoSort:     [1.00] "mimetype": "video/x-matroska",
INFO    2014-12-09 20:24:28     VideoSort:     [1.00] "episodeNumber": 18,
INFO    2014-12-09 20:24:28     VideoSort:     [1.00] "videoCodec": "h264",
INFO    2014-12-09 20:24:28     VideoSort:     [1.00] "container": "mkv",
INFO    2014-12-09 20:24:28     VideoSort:     [1.00] "format": "HDTV",
INFO    2014-12-09 20:24:28     VideoSort:     [0.70] "series": "Ax Men",
INFO    2014-12-09 20:24:28     VideoSort:     [1.00] "title": "Risking it All",
INFO    2014-12-09 20:24:28     VideoSort:     [1.00] "releaseGroup": "KILLERS",
INFO    2014-12-09 20:24:28     VideoSort:     [1.00] "vtype": "series",
INFO    2014-12-09 20:24:28     VideoSort:     [1.00] "screenSize": "720p",
INFO    2014-12-09 20:24:28     VideoSort:     [1.00] "season": 6,
INFO    2014-12-09 20:24:28     VideoSort:     [1.00] "type": "episode"
INFO    2014-12-09 20:24:28     VideoSort: }
INFO    2014-12-09 20:24:28     VideoSort: Type: series
INFO    2014-12-09 20:24:28     VideoSort: format: %s.N.S%0sE%0e.%e.N.%qf.%qss.%qvc.%ext
INFO    2014-12-09 20:24:28     VideoSort: path after subst: Ax.Men.S06E18.Risking.it.All.HDTV.720p.h264..mkv
INFO    2014-12-09 20:24:28     VideoSort: path after cleanup: Ax.Men.S06E18.Risking.it.All.HDTV.720p.h264.mkv
INFO    2014-12-09 20:24:28     VideoSort: destination path: /home/xxxx/Ax.Men.S06E18.Risking.it.All.HDTV.720p.h264.mkv
INFO    2014-12-09 20:24:28     VideoSort: Moved: /home/xxxx/Ax.Men.S06E18.Risking.it.All.HDTV.720p.h264.mkv
INFO    2014-12-09 20:24:28     VideoSort: Move satellites for /home/xxxx/ActiveDownload/Rename/Ax Men S06E18 720p HDTV x264-KILLERS/Ax.Men.S06E18.720p.HDTV.x264-KILLERS.mkv
INFO    2014-12-09 20:24:28     Post-process-script videosort/VideoSort.py for Ax Men S06E18 720p HDTV x264-KILLERS successful
INFO    2014-12-09 20:24:28     Executing post-process-script Logger.py for Ax Men S06E18 720p HDTV x264-KILLERS


hugbug
Developer & Admin
Posts: 7645
Joined: 09 Sep 2008, 11:58
Location: Germany

Re: [PP-Script] VideoSort - better video sorting

Post by hugbug » 09 Dec 2014, 19:46

Is this bad?

ablitz
Posts: 4
Joined: 09 Dec 2014, 19:33

Re: [PP-Script] VideoSort - better video sorting

Post by ablitz » 09 Dec 2014, 20:04

hugbug wrote:Is this bad?
The problem for me is that Sickgear specifies that HDTV should contain x264. So it messes up the sorting, I assume the other Sick* forks uses the same rename function.

minimeh
Posts: 33
Joined: 16 Aug 2013, 09:54

Re: [PP-Script] VideoSort - better video sorting

Post by minimeh » 09 Dec 2014, 20:50

ablitz wrote:
hugbug wrote:Is this bad?
The problem for me is that Sickgear specifies that HDTV should contain x264. So it messes up the sorting, I assume the other Sick* forks uses the same rename function.
One of the great aspects of nzbget is DIY customizations.

You can use a text editor to modify your copy of videosort.py to meet your needs. Find the following code:

Code: Select all

    elif guess['type'] == 'episode':
        guess['vtype'] = 'series'
    else:
        guess['vtype'] = guess['type']

    if dnzb_headers:
        apply_dnzb_headers(guess)
and modify it to this:

Code: Select all

    elif guess['type'] == 'episode':
        guess['vtype'] = 'series'
    else:
        guess['vtype'] = guess['type']

    # specialization to accommodate Sickgear
    if guess['videoCodec'] == 'h264':
        guess['videoCodec'] = 'x264'

    if dnzb_headers:
        apply_dnzb_headers(guess)
NOTE: python is very particular about the leading whitespace in the statements. Pay close attention to the existing whitespace and match it. That is, if the indentations are made with tabs, ensure that your patch's indentations are made with tabs. Or if the whitespace is made with spaces, use spaces. And be sure to keep an un-modified copy of vidwosort.py so you can revert if worse comes to worse.

Post Reply

Who is online

Users browsing this forum: No registered users and 40 guests