View Full Version : AVSRepoGUI - A simple plugin manager for AviSynth
ChaosKing
24th May 2019, 19:27
I made a simple GUI for AVSRepo (https://forum.doom9.org/showthread.php?t=175822). Currently it won't detect avs plugins folders but you can set the paths by yourself in avsrepogui.json
Releases (https://github.com/theChaosCoder/AVSRepoGUI/releases)
Plugin repo (https://github.com/theChaosCoder/avsrepo/tree/master/packages)
You need also the latest avsrepo binary https://github.com/theChaosCoder/avsrepo/releases
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)
{
"Bin":"avsrepo.exe",
"win32": {
"Binaries":"abc d\\p32",
"Scripts":"..\\scripts"
},
"win64": {
"Binaries":"D:\\PortableApps\\Avisynth\\plugins64",
"Scripts":"D:\\abc d\\scripts"
}
}
https://i.imgur.com/FLtAlKf.png
FranceBB
24th May 2019, 21:07
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! :D
ChaosKing
24th May 2019, 22:08
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 (https://forum.doom9.org/showthread.php?t=175590) "compiled" with PyInstaller (so you don't need python installed).
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! :D
yes it supports both x86 and x64. Currently it is maintained only by me. Pull Requests welcome :D
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.
lansing
28th July 2019, 21:03
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.
ChaosKing
28th July 2019, 21:18
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?
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.
ChaosKing
31st July 2019, 18:49
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: / 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 ;)
ChaosKing
31st July 2019, 19:31
Here's what it looks like currently:
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
StvG
1st August 2019, 01:23
... I only need the function names in a avs file...
Is it ok? ^[f-fF-F]unction\s\w+
ChaosKing
1st August 2019, 08:16
Is it ok? ^[f-fF-F]unction\s\w+
Thx, much better and simpler. Since I use the global case insensitive flag I reduced it to ^function\s\w+ /i
One tiny thing :D
If there is a space before function it won't be detected. (and a few scripts have this)
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
Myrsloik
1st August 2019, 08:33
Just write a simple parser already. It's easy and builds character.
ChaosKing
1st August 2019, 08:37
Just write a simple parser already. It's easy and builds character.
Nah I think I got it now ^(?!#)(.|)function\s+\w+
Myrsloik
1st August 2019, 08:58
Nah I think I got it now ^(?!#)(.|)function\s+\w+
Here's a testcase for you:
Subtitle("function Rule6(clip clip)")
StvG
1st August 2019, 08:59
Nah I think I got it now ^(?!#)(.|)function\s+\w+
In case you have more than one space before "function" or for above case:^(?!#)(.+|)function\s+\w+
ChaosKing
1st August 2019, 09:05
In case you have more than one space before "function" or for above case:^(?!#)(.+|)function\s+\w+
Totally missed that
But now it has some miss detections like
(space) # script function from Didée, at the VERY GRAINY thread
But it doesn't matter since I check for 2 words anyway. Thx.
StvG
1st August 2019, 09:35
^(?!#)(?!.+#.+function)(.+|)function\s+\w+
ChaosKing
1st August 2019, 09:51
^(?!#)(?!.+#.+function)(.+|)function\s+\w+
Fixes one thing and breaks another :D
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.
StvG
1st August 2019, 10:10
:)
^(?!#|assert|.+#.+function)(.+|)function\s+\w+
ChaosKing
1st August 2019, 10:53
:)
^(?!#|assert|.+#.+function)(.+|)function\s+\w+
Less false detections now. Only these 3 are left:
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.
StvG
2nd August 2019, 04:39
^(?!#|assert|.+#.+function)(.+|)function\s+\w+(\s+)?(?=\()
ChaosKing
2nd August 2019, 08:58
^(?!#|assert|.+#.+function)(.+|)function\s+\w+(\s+)?(?=\()
looks "error free" but misses now some functions like this one: (from srestore.avsi)
#######################################
# 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 :)
StvG
2nd August 2019, 09:22
^(?!#|assert|.+#.+function)(.+|)function\s+\w+(\s+|.{5})?(?=\()
{5} - 5 could be increased in case there are more than 5 special characters appended to the function name.
ChaosKing
2nd August 2019, 11:27
^(?!#|assert|.+#.+function)(.+|)function\s+\w+(\s+|.{5})?(?=\()
{5} - 5 could be increased in case there are more than 5 special characters appended to the function name.
Seems to be the best version so far.
Pat357
12th November 2019, 16:55
When I try to update the package_file, I get the following error :
d:\programs\AVSRepo>avsrepo update
Traceback (most recent call last):
File "vsrepo.py", line 500, in <module>
File "vsrepo.py", line 419, in update_package_definition
File "urllib\request.py", line 222, in urlopen
File "urllib\request.py", line 531, in open
File "urllib\request.py", line 641, in http_response
File "urllib\request.py", line 569, in error
File "urllib\request.py", line 503, in _call_chain
File "urllib\request.py", line 649, in http_error_default
urllib.error.HTTPError: HTTP Error 403: Forbidden
[8928] Failed to execute script vsrepo
A couple of weeks ago I was able to install all packages in .\avisynth64\plugins and .\avisynth32\plugins.
I tried avsrepo with and without admin-rights.
Any idea why I'm getting this "HTTP Error 403: Forbidden" ?
ChaosKing
12th November 2019, 17:20
Hmm I get the same error. I don't know why (yet). For now you can download the packages.json manually here http://vsdb.top/avspackages.zip
Extract the zip and replace your old avspackages.json
ChaosKing
12th November 2019, 21:30
I found the problem. I use cloudflare to manage my domains and I activated the proxy some days/weeks ago. It seems that it causes some problems with python / urllib.request ... or rather cloudflare is blocking the python agent :-/
https://github.com/IATI/IATI-Standard-Website/issues/230
It should work again.
lansing
21st November 2019, 03:23
No 64 bit colormatrix? AVS+ doesn't have it included any more.
ChaosKing
21st November 2019, 10:31
When was it ever included in avs+?
Groucho2004 has compiled a 64bit version http://www.iol.ie/~schubert/gas/gas.html
lansing
21st November 2019, 10:48
When was it ever included in avs+?
Groucho2004 has compiled a 64bit version http://www.iol.ie/~schubert/gas/gas.html
Thanks this one works perfectly.
ChaosKing
28th June 2020, 12:57
New release with some bug fixes https://github.com/theChaosCoder/AVSRepoGUI/releases
You need the latest avsrepo binary https://github.com/theChaosCoder/avsrepo/releases
ChaosKing
24th November 2020, 00:35
New release: Fixed a bug where it chrashed if no package file is present. Added some checks and helper messages.
zambelli
2nd January 2021, 21:56
Thanks for writing this app, Chaos, this is super helpful!
If I may make a feature request: it'd be great to be able to update both x86 and x64 plugin versions at the same time with one click.
In cases where certain plugins contain multiple versions made with multiple compilers (e.g. MSVC, GCC, Clang, etc) or compied with different optimization sets (e.g. SSE, AVX, AVX2, etc) - how does AVSRepo select the most appropriate one?
ChaosKing
2nd January 2021, 22:05
If I may make a feature request: it'd be great to be able to update both x86 and x64 plugin versions at the same time with one click.
You can use a bat file for that:
avsrepo.exe -t win32 -b D:\AvisynthRepository\AVSPLUS_x86\plugins -s D:\AvisynthRepository\SCRIPTS upgrade-all
avsrepo.exe -t win64 -b D:\AvisynthRepository\AVSPLUS_x64\plugins -s D:\AvisynthRepository\SCRIPTS upgrade-all
pause
In cases where certain plugins contain multiple versions made with multiple compilers (e.g. MSVC, GCC, Clang, etc) or compied with different optimization sets (e.g. SSE, AVX, AVX2, etc) - how does AVSRepo select the most appropriate one?
It only supports one compiled version of it. I usually pick either the fastest version of it (MSVC vs GCC vs Clang) and/or the most compatible one (AVX over AVX2).
I may add support for it in the future but I would rather have the plugin author properly bench it and release one version of it.
StvG
4th January 2022, 04:35
The link of "Plugin repo" ( https://github.com/theChaosCoder/avsrepo/tree/master/local ) from the opening post gives error.
kedautinh12
4th January 2022, 04:46
The link of "Plugin repo" ( https://github.com/theChaosCoder/avsrepo/tree/master/local ) from the opening post gives error.
I think he deleted it (maybe)
https://github.com/theChaosCoder/avsrepo
ChaosKing
4th January 2022, 10:55
Thx, the folder was renamed to packages https://github.com/theChaosCoder/avsrepo/tree/master/packages
ajp_anton
17th February 2022, 21:44
Median 64-bit version downloads a 0B file. The filename seems to be wrong in the .json?
ChaosKing
17th February 2022, 22:34
Thx, should be fixed now.
zambelli
19th July 2023, 05:48
Is this project still actively maintained? Or has it perhaps been superseded by another plugin manager?
ChaosKing
19th July 2023, 22:31
I simply forgot to update it :D (I haven't used avisynth in a while)
Try to update it now.
lansing
17th January 2024, 03:45
I haven't use avisynth for a while, but now all plugins and script are downloaded into the avsrepogui folder instead of the avisynth folders. Clicking "setting" also crashed the program.
ChaosKing
17th January 2024, 19:37
The settings option should be invisible (not ready yet). Haven't noticed it since I use the avsrepogui.json config file where the settings option is invisible :D
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.