Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Capturing and Editing Video > Avisynth Development

Reply
 
Thread Tools Search this Thread Display Modes
Old 24th May 2019, 19:27   #1  |  Link
ChaosKing
Registered User
 
Join Date: Dec 2005
Location: Germany
Posts: 995
AVSRepoGUI - A simple plugin manager for AviSynth

I made a simple GUI for AVSRepo. Currently it won't detect avs plugins folders but you can set the paths by yourself in avsrepogui.json

Download alpha5
Source
Plugin repo

Some feedback and feature requests would be nice.

avsrepogui.json
Relative paths are also supported
(The \\ are important, a single \ will not work for paths)
Code:
{  
   "Bin":"avsrepo.exe",
   "win32": {
	"Binaries":"abc d\\p32",
	"Scripts":"..\\scripts"
   },
   "win64": {
	"Binaries":"D:\\PortableApps\\Avisynth\\plugins64",
	"Scripts":"D:\\abc d\\scripts"
   }
}
__________________
AVSRepoGUI // VSRepoGUI - Package Manager for AviSynth // VapourSynth
VapourSynth Portable FATPACK || VapourSynth Database || https://github.com/avisynth-repository

Last edited by ChaosKing; 24th May 2019 at 20:47.
ChaosKing is offline   Reply With Quote
Old 24th May 2019, 21:07   #2  |  Link
FranceBB
Broadcast Encoder
 
FranceBB's Avatar
 
Join Date: Nov 2013
Location: Germany
Posts: 656
Ok, so this is basically like dnf/yum on linux: a package manager.
That's really cool and very much needed now that there are so many plugins and so many versions scattered everywhere on the internet with original filters, mods, mods of the mods, re-compiled ones and so on.
Does it have both x86 and x64 repositories? Who's keeping updated the repositories?
I look forward to try it.

Thank you in advance. This project sure has potential!
__________________
Broadcast Encoder
Avisynth memes: 1 - 2 - 3
Videotek - Audacity XP
FranceBB is offline   Reply With Quote
Old 24th May 2019, 22:08   #3  |  Link
ChaosKing
Registered User
 
Join Date: Dec 2005
Location: Germany
Posts: 995
Quote:
Originally Posted by FranceBB View Post
Ok, so this is basically like dnf/yum on linux: a package manager.
That's really cool and very much needed now that there are so many plugins and so many versions scattered everywhere on the internet with original filters, mods, mods of the mods, re-compiled ones and so on.
It is more or less a dependency downloader. This is just a gui for avsrepo which is basically vsrepo "compiled" with PyInstaller (so you don't need python installed).

Quote:
Originally Posted by FranceBB View Post
Does it have both x86 and x64 repositories? Who's keeping updated the repositories?
I look forward to try it.

Thank you in advance. This project sure has potential!
yes it supports both x86 and x64. Currently it is maintained only by me. Pull Requests welcome
Click on the Plugin repo link in the first post to see all currently supported plugins. Should be the latest and "best" version of every plugin/script.
Plugins on Github can be updated automatically, others needs to be updated by hand.
__________________
AVSRepoGUI // VSRepoGUI - Package Manager for AviSynth // VapourSynth
VapourSynth Portable FATPACK || VapourSynth Database || https://github.com/avisynth-repository

Last edited by ChaosKing; 24th May 2019 at 22:16.
ChaosKing is offline   Reply With Quote
Old 28th July 2019, 21:03   #4  |  Link
lansing
Registered User
 
Join Date: Sep 2006
Posts: 1,151
Some link in your threads and in the program are linking to the vs version, it is confusing.

And a new avsrepogui.json should be auto generated when I deleted the original one.
lansing is offline   Reply With Quote
Old 28th July 2019, 21:18   #5  |  Link
ChaosKing
Registered User
 
Join Date: Dec 2005
Location: Germany
Posts: 995
Quote:
Originally Posted by lansing View Post
Some link in your threads and in the program are linking to the vs version, it is confusing.

And a new avsrepogui.json should be auto generated when I deleted the original one.
Avsrepo is basically vsrepo, same soure code.
EDIT: you mean the About link I guess?

Quote:
Originally Posted by lansing View Post
And a new avsrepogui.json should be auto generated when I deleted the original one.
ok in case of avsrepo it makes sense to auto genrate avsrepogui.json

I will add a settings windows soon where you can choose you avs installation etc + the settings will be saved globally -> no avsrepogui.json needed anymore.
__________________
AVSRepoGUI // VSRepoGUI - Package Manager for AviSynth // VapourSynth
VapourSynth Portable FATPACK || VapourSynth Database || https://github.com/avisynth-repository
ChaosKing is offline   Reply With Quote
Old 31st July 2019, 18:49   #6  |  Link
ChaosKing
Registered User
 
Join Date: Dec 2005
Location: Germany
Posts: 995
Is here someone with regex experience? I'm a regex noob and need a bit help. I only need the function names in a avs file.

My regex:
Code:
/   function\s+.+[\s|\S](?=\()   /gi
(test here https://regex101.com/)

Currently my regex finds this:

function Denoise(clip clp, int a) {...}

But it also detects commented lines which I don't want.

# function Denoise(clip clp, int a) {...}


And "one liner" have some problems too, it detects everything till "Crop".

Function MCPP_get_msb(clip src){ return src.Crop(0, 0, src.Width, src.Height/2) }


My goal is to check all avsi files if there are duplicate function names. Because funcABC() in B.avsi could overwrite funcABC() in A.avsi... and it's easier to find duplicate scripts
__________________
AVSRepoGUI // VSRepoGUI - Package Manager for AviSynth // VapourSynth
VapourSynth Portable FATPACK || VapourSynth Database || https://github.com/avisynth-repository
ChaosKing is offline   Reply With Quote
Old 31st July 2019, 19:31   #7  |  Link
ChaosKing
Registered User
 
Join Date: Dec 2005
Location: Germany
Posts: 995
Here's what it looks like currently:

Code:
Duplicate Function Name Detection 
------------------------------------------------------------
Found 5 potential conflicts.
Path of *.avsi files: D:\AvisynthRepository\SCRIPTS

Function name: bbb
	D:\AvisynthRepository\SCRIPTS\a - copy.avsi
	D:\AvisynthRepository\SCRIPTS\a.avsi
	D:\AvisynthRepository\SCRIPTS\b.avsi

Function name: ss
	D:\AvisynthRepository\SCRIPTS\a - copy.avsi
	D:\AvisynthRepository\SCRIPTS\a.avsi

Function name: maa2
	D:\AvisynthRepository\SCRIPTS\maa2_mod - v0.429.avsi
	D:\AvisynthRepository\SCRIPTS\maa2_mod.avsi

Function name: Sangnom2AA
	D:\AvisynthRepository\SCRIPTS\maa2_mod - v0.429.avsi
	D:\AvisynthRepository\SCRIPTS\maa2_mod.avsi

Function name: GetCSP_Y8_YV411
	D:\AvisynthRepository\SCRIPTS\HQDeringmod_v1.8.avsi
	D:\AvisynthRepository\SCRIPTS\nnedi3_resize16.avsi
__________________
AVSRepoGUI // VSRepoGUI - Package Manager for AviSynth // VapourSynth
VapourSynth Portable FATPACK || VapourSynth Database || https://github.com/avisynth-repository

Last edited by ChaosKing; 31st July 2019 at 19:34.
ChaosKing is offline   Reply With Quote
Old 1st August 2019, 01:23   #8  |  Link
StvG
Registered User
 
Join Date: Jul 2018
Posts: 104
Quote:
Originally Posted by ChaosKing View Post
... I only need the function names in a avs file...
Is it ok?
Code:
^[f-fF-F]unction\s\w+
StvG is offline   Reply With Quote
Old 1st August 2019, 08:16   #9  |  Link
ChaosKing
Registered User
 
Join Date: Dec 2005
Location: Germany
Posts: 995
Quote:
Originally Posted by StvG View Post
Is it ok?
Code:
^[f-fF-F]unction\s\w+
Thx, much better and simpler. Since I use the global case insensitive flag I reduced it to
Code:
^function\s\w+ /i
One tiny thing

If there is a space before function it won't be detected. (and a few scripts have this)

Code:
 function abc <- not detected
function abc <- detected
p.s. i don't care if white space around "function X" is also detected, I will trim it anyway.

EDIT
here is a link with example text https://regexr.com/4ifq4
__________________
AVSRepoGUI // VSRepoGUI - Package Manager for AviSynth // VapourSynth
VapourSynth Portable FATPACK || VapourSynth Database || https://github.com/avisynth-repository

Last edited by ChaosKing; 1st August 2019 at 08:21.
ChaosKing is offline   Reply With Quote
Old 1st August 2019, 08:33   #10  |  Link
Myrsloik
Professional Code Monkey
 
Myrsloik's Avatar
 
Join Date: Jun 2003
Location: Ikea Chair
Posts: 2,002
Just write a simple parser already. It's easy and builds character.
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet
Myrsloik is offline   Reply With Quote
Old 1st August 2019, 08:37   #11  |  Link
ChaosKing
Registered User
 
Join Date: Dec 2005
Location: Germany
Posts: 995
Quote:
Originally Posted by Myrsloik View Post
Just write a simple parser already. It's easy and builds character.
Nah I think I got it now
Code:
^(?!#)(.|)function\s+\w+
__________________
AVSRepoGUI // VSRepoGUI - Package Manager for AviSynth // VapourSynth
VapourSynth Portable FATPACK || VapourSynth Database || https://github.com/avisynth-repository
ChaosKing is offline   Reply With Quote
Old 1st August 2019, 08:58   #12  |  Link
Myrsloik
Professional Code Monkey
 
Myrsloik's Avatar
 
Join Date: Jun 2003
Location: Ikea Chair
Posts: 2,002
Quote:
Originally Posted by ChaosKing View Post
Nah I think I got it now
Code:
^(?!#)(.|)function\s+\w+
Here's a testcase for you:
Code:
Subtitle("function Rule6(clip clip)")
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet
Myrsloik is offline   Reply With Quote
Old 1st August 2019, 08:59   #13  |  Link
StvG
Registered User
 
Join Date: Jul 2018
Posts: 104
Quote:
Originally Posted by ChaosKing View Post
Nah I think I got it now
Code:
^(?!#)(.|)function\s+\w+
In case you have more than one space before "function" or for above case:
Code:
^(?!#)(.+|)function\s+\w+
StvG is offline   Reply With Quote
Old 1st August 2019, 09:05   #14  |  Link
ChaosKing
Registered User
 
Join Date: Dec 2005
Location: Germany
Posts: 995
Quote:
Originally Posted by StvG View Post
In case you have more than one space before "function" or for above case:
Code:
^(?!#)(.+|)function\s+\w+
Totally missed that

But now it has some miss detections like

Code:
 (space) # script function from Didée, at the VERY GRAINY thread
But it doesn't matter since I check for 2 words anyway. Thx.
__________________
AVSRepoGUI // VSRepoGUI - Package Manager for AviSynth // VapourSynth
VapourSynth Portable FATPACK || VapourSynth Database || https://github.com/avisynth-repository
ChaosKing is offline   Reply With Quote
Old 1st August 2019, 09:35   #15  |  Link
StvG
Registered User
 
Join Date: Jul 2018
Posts: 104
Code:
^(?!#)(?!.+#.+function)(.+|)function\s+\w+

Last edited by StvG; 1st August 2019 at 09:47.
StvG is offline   Reply With Quote
Old 1st August 2019, 09:51   #16  |  Link
ChaosKing
Registered User
 
Join Date: Dec 2005
Location: Germany
Posts: 995
Quote:
Originally Posted by StvG View Post
Code:
^(?!#)(?!.+#.+function)(.+|)function\s+\w+
Fixes one thing and breaks another

Assert(!(sisfullchroma || sislumaonly), "nnchromaupsubsampling: this function for subsampling sources")
ResizeX is a wrapper function for AviSynth's internal resizers and Dither_resize16 <- the whole sentence is marked

The previous one is good enough.
__________________
AVSRepoGUI // VSRepoGUI - Package Manager for AviSynth // VapourSynth
VapourSynth Portable FATPACK || VapourSynth Database || https://github.com/avisynth-repository
ChaosKing is offline   Reply With Quote
Old 1st August 2019, 10:10   #17  |  Link
StvG
Registered User
 
Join Date: Jul 2018
Posts: 104

Code:
^(?!#|assert|.+#.+function)(.+|)function\s+\w+
StvG is offline   Reply With Quote
Old 1st August 2019, 10:53   #18  |  Link
ChaosKing
Registered User
 
Join Date: Dec 2005
Location: Germany
Posts: 995
Quote:
Originally Posted by StvG View Post

Code:
^(?!#|assert|.+#.+function)(.+|)function\s+\w+
Less false detections now. Only these 3 are left:

Code:
ResizeX is a wrapper function for AviSynth's internal resizers and Dither_resize16
       *   External aa clip or function to use it instead of Sangnom2, you can use nnedi3_resize16(Width*2, Height*2) t

An improved rpow2 function for nnedi3, nnedi3ocl, eedi3, and eedi2.
__________________
AVSRepoGUI // VSRepoGUI - Package Manager for AviSynth // VapourSynth
VapourSynth Portable FATPACK || VapourSynth Database || https://github.com/avisynth-repository
ChaosKing is offline   Reply With Quote
Old 2nd August 2019, 04:39   #19  |  Link
StvG
Registered User
 
Join Date: Jul 2018
Posts: 104
Code:
^(?!#|assert|.+#.+function)(.+|)function\s+\w+(\s+)?(?=\()
StvG is offline   Reply With Quote
Old 2nd August 2019, 08:58   #20  |  Link
ChaosKing
Registered User
 
Join Date: Dec 2005
Location: Germany
Posts: 995
Quote:
Originally Posted by StvG View Post
Code:
^(?!#|assert|.+#.+function)(.+|)function\s+\w+(\s+)?(?=\()
looks "error free" but misses now some functions like this one: (from srestore.avsi)

Code:
        #######################################
        # 3) Unique Runtime Function Definition
        #######################################
		function srestore_inside_%%%(clip source, dm, om, bom, thr, frfac, numr, denm, mec, det, bclp, dclp, fin, sisphbd) {
			ssIsVF  = sisphbd ? source.IsVideoFloat() : false
The previous regex is good enough
__________________
AVSRepoGUI // VSRepoGUI - Package Manager for AviSynth // VapourSynth
VapourSynth Portable FATPACK || VapourSynth Database || https://github.com/avisynth-repository
ChaosKing is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 05:06.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, vBulletin Solutions Inc.