Page 14 of 170

Re: Again Field occasion

Posted: Sun Dec 23, 2007 4:03 am
by ZvezdanD
Poison Joe wrote:need help with the field "Occasion". What's wrong with this MagicNode: ... I remember some revisions before 1.5.0.2 this works fine.
I am really grateful for your reporting of a problem with the script. Unfortunately, a problem like this is difficult to reproduce for me because it depends of specific data in the database file. So, if you want to help me to remove a bug, I could only suggest that you send me your MM.DB file, packed with Zip, 7Z or Rar. If you don't know, location of the database file in MM3 is c:\Documents and Settings\<Your_name>\Local Settings\Application Data\MediaMonkey\. You could use some free file sharing server like http://www.yousendit.com. Before you do that, I suggest that you try again same MN mask with 1.4.3.1 version of the script, to be sure that a bug appeared in the last version of the script. Thank you.

Posted: Sun Dec 23, 2007 4:47 am
by ZvezdanD
nynaevelan wrote:1. ... Result: Shows me both tracks that have played today and yesterday
I didn't modified anything with this specific field, so same problem should be with the previous version of the script as well. Could you try the next mask:

Code: Select all

Played Today|SQL filter:CAST(julianday('now') - julianday('1899-12-30') - date(Songs.LastTimePlayed) AS integer) = 0\<genre>\<artist>
Could you also try your mask in the morning and in the evening? :) Seriously, there could be a problem with date/time functions which depends of the period of a day (before and after the midnight) - if this is a case, date() function could resolve that.
nynaevelan wrote:2. ... Result: Gives me an invalid call or argument at line 1308 Column 4
Count(Length) is not longer supported by the script. From the last version, Count function only accepts All, Tracks and Items arguments. You could read about that in the first post of this thread under Information about last version.

Instead of Length you should use All or Tracks (currently, they have same effect).
nynaevelan wrote:3. ... Result: Shows me both tracks that have added today and yesterday
Same answer as for 1. Please try to replace Songs.DateAdded with date(Songs.DateAdded).
nynaevelan wrote:4. MN: Played Yesterday|filter:DAYS SINCE LAST PLAYED < 0\<genre>\<artist>

or

Played Today|SQL filter:CAST(julianday('now') - julianday('1899-12-30') - Songs.LastTimePlayed AS integer) - 1\<genre>\<artist>

Result: Nothing
Same answer as for 1. Additionally, this masks are incorrect because of used conditions. In the first example (Played yesterday), instead of < 0 you should write = 1. In the second example (Played today), instead of - 1 you should write = 0. But in this second example, I suppose you wrote incorrectly "Played today" instead of "Played yesterday", so the condition in this example should be also = 1.

Thank you very much for reporting all of this and sorry for your inconvenience. Your testing are very valuable to me.

Posted: Sun Dec 23, 2007 5:01 am
by ZvezdanD
I should give one big apologize to all of you people. I am working very hard on the next major upgrade of this script, mainly on its user interface and I really don't have to much time to test all possible conditions of the database engine itself. Please, try to understand this and don't blame me to much for some bugs. I'll try to remove all of them, but you should help me with testing. Thanks!

3.4 stars

Posted: Sun Dec 23, 2007 8:07 am
by MM3 monkey
You can ignore this bcos you're busy but I'm feeling a bit special and proud of myself at the moment:

I've got a song that's rated 3.4 stars!

Cool, eh?

(Maybe it's an RC6 thing but) MM says it's got 3.5 stars but it's under my 'rating magic node' in a 3.4 stars node.

My mask:

Code: Select all

Rating|child of:location\<rating|statistic:count(all)|sort order:desc>\<Album artist|Sort by:Count(all)|Sort Order:Desc>\<Album>
It's the same in other nodes involving rating (but not the in-built MM one).

Any thoughts?

Re: 3.4 stars

Posted: Sun Dec 23, 2007 9:27 am
by ZvezdanD
MM3 monkey wrote:MM says it's got 3.5 stars but it's under my 'rating magic node' in a 3.4 stars node.
Your report is valuable as usual, but this one should be much easier to resolve. It is interesting that same behavior this script have from the same begin, even the official one, and nobody complained about that. The answer is simple: the Rating value is stored in the database in the range from 0 to 100, and the script round a value divided by 20 to the one decimal digit. Fix for this would be in the next revision. Thanks!

Posted: Sun Dec 23, 2007 11:23 am
by MM3 monkey
But it begs the question why MM has given a song one of those ratings? Maybe it's from my MEXP days. Some of my music was rated with MEXP and saved in the tags and I've no idea how it did it. That said, it only had 5 stars, no half stars, so ... ?

Posted: Sun Dec 23, 2007 12:11 pm
by ZvezdanD
Well, I don't know how rating value is stored in the tags of audio files and how MEXP works with this value internally. Anyway, half stars are nothing unusual - All Music Guide have them. BTW, IMDb have one decimal digit as MN :) .

Posted: Sun Dec 23, 2007 12:19 pm
by nynaevelan
ZvezdanD wrote:
nynaevelan wrote:1. ... Result: Shows me both tracks that have played today and yesterday
I didn't modified anything with this specific field, so same problem should be with the previous version of the script as well. Could you try the next mask:

Code: Select all

Played Today|SQL filter:CAST(julianday('now') - julianday('1899-12-30') - date(Songs.LastTimePlayed) AS integer) = 0\<genre>\<artist>
Could you also try your mask in the morning and in the evening? :) Seriously, there could be a problem with date/time functions which depends of the period of a day (before and after the midnight) - if this is a case, date() function could resolve that.
nynaevelan wrote:2. ... Result: Gives me an invalid call or argument at line 1308 Column 4
Count(Length) is not longer supported by the script. From the last version, Count function only accepts All, Tracks and Items arguments. You could read about that in the first post of this thread under Information about last version.

Instead of Length you should use All or Tracks (currently, they have same effect).
nynaevelan wrote:3. ... Result: Shows me both tracks that have added today and yesterday
Same answer as for 1. Please try to replace Songs.DateAdded with date(Songs.DateAdded).
nynaevelan wrote:4. MN: Played Yesterday|filter:DAYS SINCE LAST PLAYED < 0\<genre>\<artist>

or

Played Today|SQL filter:CAST(julianday('now') - julianday('1899-12-30') - Songs.LastTimePlayed AS integer) - 1\<genre>\<artist>

Result: Nothing
Same answer as for 1. Additionally, this masks are incorrect because of used conditions. In the first example (Played yesterday), instead of < 0 you should write = 1. In the second example (Played today), instead of - 1 you should write = 0. But in this second example, I suppose you wrote incorrectly "Played today" instead of "Played yesterday", so the condition in this example should be also = 1.

Thank you very much for reporting all of this and sorry for your inconvenience. Your testing are very valuable to me.
Thanks for the help, I will read the new instructions and try to reconfigure my nodes.

Posted: Tue Dec 25, 2007 3:49 pm
by nynaevelan
How do you write a node when you are interested in finding results which have a null value?

Nyn

Posted: Tue Dec 25, 2007 5:56 pm
by ZvezdanD
nynaevelan wrote:How do you write a node when you are interested in finding results which have a null value?
If you are interested in MM3, you could write something like this:

Code: Select all

SQL filter:TypeOf(ArtistsSongs.PersonType) = 'null'
I am not sure if it will work, because word "null" should be written with small caps and MN script converts SQL filter to uppercase. I'll try to modify the script to support this if this not works. Please, let me know about a result.

BTW, did you tried my previous suggestion about nodes with date function?

Posted: Tue Dec 25, 2007 10:56 pm
by nynaevelan
ZvezdanD wrote:
nynaevelan wrote:How do you write a node when you are interested in finding results which have a null value?
If you are interested in MM3, you could write something like this:

Code: Select all

SQL filter:TypeOf(ArtistsSongs.PersonType) = 'null'
I am not sure if it will work, because word "null" should be written with small caps and MN script converts SQL filter to uppercase. I'll try to modify the script to support this if this not works. Please, let me know about a result.

Z:

I tried your suggestion but I think my inexperience is not enough to get a successful result. Here is what I used but I did not get any results. Please forgive my ignorance when it comes to programming, I am completely illiterate.

Code: Select all

Songs with no lyrics|SQL filter: TypeOf(Songs.lyrics) = 'null'\<Artist>
BTW, did you tried my previous suggestion about nodes with date function?
Yes I did I was going to send you a big THANK YOU after I finished testing all my current nodes and (trying to) convert them over to MM3.

Nyn

Posted: Wed Dec 26, 2007 2:57 am
by ZvezdanD
nynaevelan wrote:I tried your suggestion ...

Code: Select all

Songs with no lyrics|SQL filter: TypeOf(Songs.lyrics) = 'null'\<Artist>
I tried this condition again and came to same conclusion - "null" should be written with lowercase characters, but the script itself converts user masks to uppercase. I need to modify it to disable this behavior.

Anyway, your mask do not need to test the condition about null, it should test if the string value is empty:

Code: Select all

Songs with no lyrics|SQL filter:Length(Songs.Lyrics) = 0\<Artist>
nynaevelan wrote:I was going to send you a big THANK YOU after I finished testing all my current nodes
Please don't get me wrong. I didn't wanted your thanks, although I am glad if you do. I just wanted to know if my sugestion works correctly, so I could modify the script to incorporate mentioned date function.

Posted: Wed Dec 26, 2007 8:29 am
by nynaevelan
ZvezdanD wrote:
nynaevelan wrote:I tried your suggestion ...

Code: Select all

Songs with no lyrics|SQL filter: TypeOf(Songs.lyrics) = 'null'\<Artist>
I tried this condition again and came to same conclusion - "null" should be written with lowercase characters, but the script itself converts user masks to uppercase. I need to modify it to disable this behavior.

Anyway, your mask do not need to test the condition about null, it should test if the string value is empty:

Code: Select all

Songs with no lyrics|SQL filter:Length(Songs.Lyrics) = 0\<Artist>
This worked perfectly, thank you.
nynaevelan wrote:I was going to send you a big THANK YOU after I finished testing all my current nodes
Please don't get me wrong. I didn't wanted your thanks, although I am glad if you do. I just wanted to know if my sugestion works correctly, so I could modify the script to incorporate mentioned date function.
I understand, but since I was "beta testing" I thought I would complete all of my nodes before sending in a results.

Nyn

Posted: Mon Dec 31, 2007 1:44 am
by Eminent
First of all, I'd like to to point to this thread, I'm Mikkel.

The problem occurs when changing the search setting to "entire library". This setting stays in effect without any issues until you select a Magic Node, at which point the setting reverts to "current selection" until a standard node is selected again (at which point it changes back to "entire library"). I'm using the latest versions of both MM (version 3.0.1.1127) and Magic Nodes (version 1.5.0.2).

I'm not sure whether or not it's a bug or incompability, nor whether or not it's MediaMonkey or Magic Nodes "fault". But I thought I better report it anyhow. I've also posted a bug report.

Posted: Mon Dec 31, 2007 6:36 am
by ZvezdanD
Eminent wrote:The problem occurs when changing the search setting to "entire library".
Thanks for the report. Unfortunately, there is very little I can do in this situation because the script itself don't change anything about search settings. AFAIK, there is no API functions for this, but I'll look further.