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
Register FAQ Calendar Today's Posts Search

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: 1,795
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

Releases
Plugin repo

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)
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

Last edited by ChaosKing; 4th January 2022 at 10:56.
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: Royal Borough of Kensington & Chelsea, UK
Posts: 2,905
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!
FranceBB is offline   Reply With Quote
Old 24th May 2019, 22:08   #3  |  Link
ChaosKing
Registered User
 
Join Date: Dec 2005
Location: Germany
Posts: 1,795
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

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,657
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: 1,795
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
ChaosKing is offline   Reply With Quote
Old 31st July 2019, 18:49   #6  |  Link
ChaosKing
Registered User
 
Join Date: Dec 2005
Location: Germany
Posts: 1,795
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
ChaosKing is offline   Reply With Quote
Old 1st August 2019, 01:23   #7  |  Link
StvG
Registered User
 
Join Date: Jul 2018
Posts: 450
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   #8  |  Link
ChaosKing
Registered User
 
Join Date: Dec 2005
Location: Germany
Posts: 1,795
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

Last edited by ChaosKing; 1st August 2019 at 08:21.
ChaosKing is offline   Reply With Quote
Old 31st July 2019, 19:31   #9  |  Link
ChaosKing
Registered User
 
Join Date: Dec 2005
Location: Germany
Posts: 1,795
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

Last edited by ChaosKing; 31st July 2019 at 19:34.
ChaosKing is offline   Reply With Quote
Old 1st August 2019, 09:35   #10  |  Link
StvG
Registered User
 
Join Date: Jul 2018
Posts: 450
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   #11  |  Link
ChaosKing
Registered User
 
Join Date: Dec 2005
Location: Germany
Posts: 1,795
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
ChaosKing is offline   Reply With Quote
Old 1st August 2019, 10:10   #12  |  Link
StvG
Registered User
 
Join Date: Jul 2018
Posts: 450

Code:
^(?!#|assert|.+#.+function)(.+|)function\s+\w+
StvG is offline   Reply With Quote
Old 1st August 2019, 10:53   #13  |  Link
ChaosKing
Registered User
 
Join Date: Dec 2005
Location: Germany
Posts: 1,795
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
ChaosKing is offline   Reply With Quote
Old 2nd August 2019, 04:39   #14  |  Link
StvG
Registered User
 
Join Date: Jul 2018
Posts: 450
Code:
^(?!#|assert|.+#.+function)(.+|)function\s+\w+(\s+)?(?=\()
StvG is offline   Reply With Quote
Old 2nd August 2019, 08:58   #15  |  Link
ChaosKing
Registered User
 
Join Date: Dec 2005
Location: Germany
Posts: 1,795
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
ChaosKing is offline   Reply With Quote
Old 2nd August 2019, 09:22   #16  |  Link
StvG
Registered User
 
Join Date: Jul 2018
Posts: 450
Code:
^(?!#|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.
StvG is offline   Reply With Quote
Old 2nd August 2019, 11:27   #17  |  Link
ChaosKing
Registered User
 
Join Date: Dec 2005
Location: Germany
Posts: 1,795
Quote:
Originally Posted by StvG View Post
Code:
^(?!#|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.
__________________
AVSRepoGUI // VSRepoGUI - Package Manager for AviSynth // VapourSynth
VapourSynth Portable FATPACK || VapourSynth Database
ChaosKing is offline   Reply With Quote
Old 12th November 2019, 16:55   #18  |  Link
Pat357
Registered User
 
Join Date: Jun 2006
Posts: 452
When I try to update the package_file, I get the following error :

Code:
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" ?
Pat357 is offline   Reply With Quote
Old 12th November 2019, 17:20   #19  |  Link
ChaosKing
Registered User
 
Join Date: Dec 2005
Location: Germany
Posts: 1,795
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
__________________
AVSRepoGUI // VSRepoGUI - Package Manager for AviSynth // VapourSynth
VapourSynth Portable FATPACK || VapourSynth Database
ChaosKing is offline   Reply With Quote
Old 12th November 2019, 21:30   #20  |  Link
ChaosKing
Registered User
 
Join Date: Dec 2005
Location: Germany
Posts: 1,795
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-Standar...ite/issues/230

It should work again.
__________________
AVSRepoGUI // VSRepoGUI - Package Manager for AviSynth // VapourSynth
VapourSynth Portable FATPACK || VapourSynth Database
ChaosKing is offline   Reply With Quote
Reply


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 01:39.


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