Skip to main content
Topic: foo_component_manager (Read 55316 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

foo_component_manager

I've decided to discontinue development of this component. Please see this post for the reason why. Thank you to all of those who have downloaded and used the component previously

Updated to version 0.1.6.2. Download here.

Changelist:
0.1.6.2 (2010-03-02)
- Handle multiple components in one dll with name changes between versions (uses <oldname> tag) (thanks to kode54)
- Fixed listbox scrolling

0.1.6.1 (2010-03-02)
- REALLY fixed crash when downloading non-existent link
- More version comparison tweaks
- Use SHCreateDirectoryEx instead of CreateDirectory

0.1.6 (2010-02-24)
- Fixed security attributes on copied files (no more lock icon). Re-downloading a component that has the lock icon will remove it and replace it with a file that has the correct security attributes.
- Don't ask for elevation unless required
- Added support for files needing to be installed to foobar2000 profile folder (eg foo_httpcontrol)

0.1.5.3 (2010-02-22)
- Added link dialog for developers who want traffic redirected to their webpage. The respective component is not downloaded.

0.1.5.2 (2010-02-21)
- Fixed support for compressed xml component list. Set the XML download location to http://58.108.209.133/foo_component_manager.7z to make use of it. Both plain xml and compressed xml files will continue to be updated.

0.1.5 (2010-02-20)
- Added support for compressed xml component list.
- Handle differently formatted version strings

See download link for complete changelist.

If you're a developer and don't want your component included as part of the auto update (due to bandwidth usage, lost webpage traffic, etc) please let me know. I can host the files myself, direct users to your homepage instead, or not include it at all.

-----------------------------------------
Hi all,

I'm pleased to release my second foobar2000 component, foo_component_manager. This component is intended to help manage the installation and updating of 3rd party foobar2000 components.

At the moment foo_component_manager only updates currently installed components, but this will expand to include adding of new components and removal of installed components. I just wanted to gauge foobar2000 users' feedback on this initial release before implementing those features.

The update procedure works by downloading an xml file containing a list of known components. This list includes the component's name, version, description, release date, author, download link and so on. The actual xml schema for a component is shown below. Items in bold are required, while items in italics can appear one of more times. I'll set up a HA wiki page on editing the xml file, as well as putting the xml file up on the wiki so people can edit it as new component versions are released. For now I'll maintain the xml file myself which is by no means complete, so if you want to see a component in there just PM me with the relevant details.

Code: [Select]
[b][i]<plugin>[/i][/b]
[b]<module></module>[/b]
<desc></desc>
<category></category>
<author></author>
<email></email>
<homepage></homepage>
<thread></thread>
<redirect></redirect> (only included if component is to redirect to developer's homepage)

[b][i]<release>[/i][/b]
[b][i]<component>
<name></name>
[i]<oldname></oldname>[/i]
<version></version>
</component>[/i][/b]
<date></date>
<foobar2000version></foobar2000version>
<requirements></requirements>
[b]<download></download>[/b]
<changelist></changelist>
[i]<installpath>
<src></src>
<dest></dest>
</installpath>[/i]
[i][b]</release>
</plugin>[/b][/i]

So basically the xml file contains one or more plugins, which itself contains one or more releases. Each release can have one or more component versions (because a single dll can contain multiple components, such as foo_unpack). There can also be zero or more install paths per release, depending on how many files are included in the zip/7z/rar file.

This component includes the expat xml parsing library to parse the xml file, and the command line version of 7zip to handle downloaded archives.

Download:
foo_component_manager 0.1.6.2

Installation:
- Unzip the downloaded file to your foobar2000 folder
- foo_component_manager should be in the components folder, while libexpatw.dll, 7z.exe and 7z.dll should be in the same folder as foobar2000.exe

Usage:
- To update installed components, go to Help->Check for component updates
- A dialog will appear displaying your currently installed components and their versions. By default any component with available updates will be checked.
- You can select a component from the list to view its details in the bottom half of the dialog.
- After checking the components you want to update, click either Download Only or Download & Install.
- Components will be downloaded to an updates folder within the foobar2000 folder, along with a batch file which performs the installation.
- If you clicked Download & Install, foobar2000 must be restarted for the updated components to be installed.

Known Problems:
- The update won't work if foobar2000 is installed to Program Files on Windows Vista or Window 7. Downloads can be performed if foobar2000 is run as an administrator, but the update batch file will fail. I will change this to use %APPDATA% asap. - FIXED
- Downloading a component from a link that no longer exists will cause foobar2000 to crash. - FIXED
- The auto check for updates and silent install options in the preferences page are placeholders at the moment as they haven't been implemented yet, so are greyed out.
- If component contains date as part of its version, it may be reported that the XML file is out of date - FIXED
- Keyboard navigation in dialogs isn't complete (tabbing, etc). Need to handle keyboard accelerators in modeless dialogs.
- Can't sort columns by status
- There's an issue with handling dlls that declare multiple components where component names have changes between versions (eg foo_adpcm.dll). - FIXED
- There are two different components both named foo_cuefilter. Will need to cross check their declared names and modules to determine which one is the correct one to update.

Future changes:
- Add a dialog to allow easy installation of new components and removal of old components. The dialog will allow searching by component types (UI, DSP, etc), name etc.
- Perhaps being able to parse webpages like the HA wiki in addition to/instead of a manually edited xml file.
- Ability to update to an older version of a component listed in the xml file (if the newest version is broken, or doesn't support the installed foobar2000 version).
- Handle compressed xml files (suggested by cerAmik) - DONE
- Configurable download location (suggested by cerAmik)
- Activate/deactivate components (suggested by cerAmik)
- Add option to search for and overwrite existing component paths (suggested by watercolor)
- Add path to 7zip if it is already installed (suggested by 2E7AH)
- Add "Restart fooobar2000" button to download completed message box (suggested by Hitchhiker427)

Please download it and let me know what you think

foo_component_manager

Reply #1
Thank you! I use many component and it has already helped me to keep them up to date.

Bug report:
The download works well, but install doesn't. I find the file in my temporary internet files, a command prompt is launched when closing foobar, but no update. The command prompt window is too fast to see what append...

Suggestions:
- Handle compressed xml files. They are many components, and if you keep all version for each, the list will be very big
- Option to choose where the files are downloaded
- Component deactivate option

foo_component_manager

Reply #2
Thanks for your suggestions, I'll add them to the list of to-dos.

Try downloading some components by clicking the Download Only button. Then look in the foobar2000/updates folder. Are there any files there?

What OS are you using? If it's Vista or 7, I'm guessing that you've installed foobar to the Program Files folder, but the component doesn't have write permissions to save the components or update them. You could try running foobar2000 as an admin and do a Download & Install to see if that makes a difference.

To see the output of the batch file, open up a command prompt (start->run and type cmd). Then type "cd <foobar2000 folder>\updates" (without the double quotes) and hit enter. Then type "update.bat" and hit enter. What text is displayed?


foo_component_manager

Reply #3
I'm using windows 7, and foobar is installed in program files, but i have taken ownership of the directory...
The files are in the foobar2000/updates

Code: [Select]
C:\Program Files\foobar2000\updates>update
foobar2000 component update in progress...

7-Zip 4.65  Copyright © 1999-2009 Igor Pavlov  2009-02-03


Error:
7-Zip cannot find the code that works with archives.
Un sous-répertoire ou un fichier ..\components existe déjà.
Le fichier spécifié est introuvable.
Le fichier spécifié est introuvable.

Update complete.


Maybe it's the foo_dop archive (the only update I have try, murphy law)

foo_component_manager

Reply #4
Thanks for that. It sounds like 7zip is missing a dependency.

Edit: Yep, it's missing a dll file. I'll include it in the zip file and re-upload the component.

Edit 2: OK, the missing dll is now included with the zip. Please re-download it and let me know how it goes.

foo_component_manager

Reply #5
Works fine now  Thanks

foo_component_manager

Reply #6
There is a request. I install component in sub component folder(e.g. foobar2000/component/ui/foo_ui_console.dll).
that is mean if I use update funciton of foo_component_manager, it will duplicate component file.(this component download to directly under component folder.)
so,I hope changing this component's downloading place to same as preexisting component's folder.

Sorry my poor english. Thank you.

foo_component_manager

Reply #7
Thanks for making this.  I've wished for this kind of functionality ever since I started using foobar, and now it's a reality.  Good job.

foo_component_manager

Reply #8
It looks very good, thanks

What does "XML file out of date" means?
More than 80% of my components are "Not found in XML list" and I wouldn't say I have exotic components
Can we use sort by clicking the column title?
I already have 7zip, can I just point component to it folder instead adding it to my foobar folder
Maybe list can be saved per foobar instance and not loaded each time user selects the command as there are certainly not changes to components if foobar isn't restarted

The update won't work if foobar2000 is installed to Program Files on Windows Vista or Window 7

You mean directly in Program Files? I haven't had a change to try downloading as my components are up to date

foo_component_manager

Reply #9
There is a request. I install component in sub component folder(e.g. foobar2000/component/ui/foo_ui_console.dll).
that is mean if I use update funciton of foo_component_manager, it will duplicate component file.(this component download to directly under component folder.)
so,I hope changing this component's downloading place to same as preexisting component's folder.

Sorry my poor english. Thank you.

Your English is perfectly understandable, so don't apologise

Thanks for the suggestion, I'll see what can be done.

foo_component_manager

Reply #10
Foobar seems to crash everytime I try to update, though I've got no idea what's wrong as the crash bypasses failure logs. Trying to download three components, foo_bpm 0.2.3 to 0.2.4), foo_dumb (0.9.9 to 0.9.9.12) and foo_uie_lyrics2 (0.4.2 to 0.4.6.5). I've tried both Download & Install, then Download Only, but the problem persists with both.

EDIT: Downloading each file individually seems to work. As far as I could tell, it crapped out every time I tried to download foo_uie_lyrics2.

Code: [Select]
Core (2010-01-09 12:47:00)
    foobar2000 core 1.0
foo_abx.dll (2009-06-07 13:25:26)
    ABX Comparator 1.3.4
foo_albumlist.dll (2010-01-09 12:44:46)
    Album List 4.4
foo_audioscrobbler.dll (2009-08-30 23:27:42)
    Audioscrobbler 1.4.2
foo_biometric.dll (2009-03-14 20:42:36)
    Fingerprint tools 0.3
foo_bpm.dll (2010-01-11 06:26:17)
    BPM Analyser 0.2.3
foo_cdda.dll (2010-01-09 12:44:42)
    CD Audio Decoder 3.0
foo_component_manager.dll (2010-02-15 03:24:04)
    Component Manager 0.1.0
foo_converter.dll (2010-01-09 12:44:32)
    Converter 1.4
foo_dop.dll (2009-12-27 16:06:53)
    iPod manager 0.6.6.4
foo_dsp_bs2b.dll (2009-06-29 19:28:12)
    bs2b 3.1.0
foo_dsp_loudspeakereq.dll (2009-07-02 07:52:58)
    Loudspeaker Equalizer 1.0.1
foo_dsp_std.dll (2010-01-09 12:44:48)
    Standard DSP Array 1.0
foo_dumb.dll (2009-09-06 16:34:42)
    DUMB module decoder 0.9.9
foo_fileops.dll (2010-01-09 12:43:32)
    File Operations 2.1.2
foo_input_monkey.dll (2009-05-01 13:40:52)
    Monkey's Audio Decoder 2.1.4
foo_input_std.dll (2010-01-09 12:44:24)
    Standard Input Array 1.0
foo_jesus.dll (2009-04-05 20:12:46)
    Autosave 0.0.3
foo_lyricsdb.dll (2009-09-21 22:06:04)
    foo_lyricsdb 0.0.8 alpha 1
foo_lyricsgrabber.dll (2008-12-11 19:27:08)
    Lyrics Grabber 0.2.6.2 Beta
foo_masstag.dll (2009-10-23 14:40:56)
    Masstagger 1.8.4
foo_np_simple.dll (2009-01-10 18:11:52)
    Now Playing Simple 1.8
foo_playcount.dll (2009-04-29 19:09:32)
    Playback Statistics 2.1.9
foo_playcount_sql.dll (2009-06-18 22:12:48)
    Playback statistics SQL 1.5.4.236
foo_pqview.dll (2008-03-11 18:02:54)
    Playback Queue Viewer 0.2
foo_rgscan.dll (2010-01-09 12:44:24)
    ReplayGain Scanner 2.0.9
foo_run.dll (2009-06-07 14:15:18)
    Run services 0.3.7
foo_softplaylists.dll (2010-01-09 04:47:02)
    Soft Playlists 2009-12-30.2
foo_texttools.dll (2009-12-13 00:46:02)
    Text Tools 1.0.3
foo_ui_columns.dll (2010-01-09 15:40:28)
    Columns UI 0.3.8.3
foo_ui_std.dll (2010-01-09 12:44:52)
    Default User Interface 0.9.5
foo_uie_biography.dll (2009-12-19 11:25:46)
    Biography View 0.3.4.4
foo_uie_lyrics2.dll (2009-12-16 18:33:08)
    Lyric Show Panel 0.4.2
foo_verifier.dll (2009-10-06 20:49:20)
    File Integrity Verifier 1.1
foo_wave_seekbar.dll (2010-01-17 00:11:28)
    Waveform seekbar 0.1.10
foo_whatsnew.dll (2008-08-30 14:45:00)
    Feature Watcher 1.0.6

foo_component_manager

Reply #11
What does "XML file out of date" means?

That means you have a component installed that is newer than what's listed in the xml file. What's the component that says XML file out of date?

[quote author=2E7AH link=msg=0 date=]More than 80% of my components are "Not found in XML list" and I wouldn't say I have exotic components[/quote]
I've been adding each of the components by hand to the xml file which can be a bit tedious and time consuming. In the coming days and weeks the list will become more complete.

[quote author=2E7AH link=msg=0 date=]Can we use sort by clicking the column title?[/quote]
Not yet, but it's on the cards.

[quote author=2E7AH link=msg=0 date=]I already have 7zip, can I just point component to it folder instead adding it to my foobar folder[/quote]
Good idea, I'll add it to the to-do list. For now, you can modify your %PATH% environment variable to include the 7zip installation folder.

[quote author=2E7AH link=msg=0 date=]Maybe list can be saved per foobar instance and not loaded each time user selects the command as there are certainly not changes to components if foobar isn't restarted[/quote]
That's true, though the list itself might have been updated even though foobar hasn't been restarted. Perhaps I'll make it a configurable option.

[quote author=2E7AH link=msg=0 date=]You mean directly in Program Files? I haven't had a change to try downloading as my components are up to date[/quote]
You can force a component download/update by checking its box and clicking Download Only. If you run the batch file from the command-line, you'll see 7zip complains that it can't extract the files.

foo_component_manager

Reply #12
Foobar seems to crash everytime I try to update, though I've got no idea what's wrong as the crash bypasses failure logs. Trying to download three components, foo_bpm 0.2.3 to 0.2.4), foo_dumb (0.9.9 to 0.9.9.12) and foo_uie_lyrics2 (0.4.2 to 0.4.6.5). I've tried both Download & Install, then Download Only, but the problem persists with both.

EDIT: Downloading each file individually seems to work. As far as I could tell, it crapped out every time I tried to download foo_uie_lyrics2.

The link to foo_uie_lyrics2 0.4.6.5 seems to no longer exist. The component development has moved really rapidly since I created the xml file, and is now up to 0.4.6.12, with the oldest available being 0.4.6.7. I've updated the xml file to show the latest version. Try doing an update again, hopefully it will work.

That said, the component should handle non-existent links so there's definitely a bug there.

foo_component_manager

Reply #13
That means you have a component installed that is newer than what's listed in the xml file. What's the component that says XML file out of date?

foo_ac3: Mine 0.9.4; Reported 0.9.3
foo_osd: Mine 1.52; Reported 1.6

You can force a component download/update by checking its box and clicking Download Only. If you run the batch file from the command-line, you'll see 7zip complains that it can't extract the files.

OK, it wasn't clear to me what you meant with Program Files. I updated successfully foo_bpm to it's current version

I tried some months ago (latest add on June 2009) collecting links to foobar components (like many others I guess) and thou it's not up to date or complete maybe it can save you some time: (CSV) http://pastebin.ca/1797059
It's before foobar component page existed or your foo_bpm (so it isn't there)

foo_component_manager

Reply #14
foo_ac3: Mine 0.9.4; Reported 0.9.3
foo_osd: Mine 1.52; Reported 1.6

Thanks, I'll update the xml file for foo_ac3.
Looking at the versions for foo_osd, 1.6 is the newest (just downloaded from kode54's site) although my version comparison function sees .52 being newer than .6 so it complains the xml file is out of date. I'll add it to the list of bugs  In the mean time you can safely update foo_osd to 1.6.

[quote author=2E7AH link=msg=0 date=]I tried some months ago (latest add on June 2009) collecting links to foobar components (like many others I guess) and thou it's not up to date or complete maybe it can save you some time: (CSV) http://pastebin.ca/1797059
It's before foobar component page existed or your foo_bpm (so it isn't there)[/quote]
Awesome work, this'll give a big head start to filling in the xml file

foo_component_manager

Reply #15
I don't know if 1.6 is GDI+ or GDI, as GDI version renders fonts better on my display so I'll keep what I have right now

About csv, glad if it's helpful, thou many of them are now on foobar components page as you know

foo_component_manager

Reply #16
foo_osd 1.6 reports its name as On-Screen Display GDI+, so it seems to use GDI+ rather than GDI. If that's the case, you can add foo_osd to the list of components to ignore when checking for updates under the Component Manager Preferences.


foo_component_manager

Reply #18
Vista x64 here, fb2k installed in "Program files (x86)": running the update from the normal instance of fb2k doesn't have any effect as expected, but "download & install" succeed when running as administrator. Maybe it's because I have the components folder shared.
Anyway, nice component!

foo_component_manager

Reply #19
Fantastic component, worked for doing a few updates on first try with no issues.  This has some serious potential!

foo_component_manager

Reply #20
Great component!!!!!!!! I hardly can't wait for broader component support
Can't wait for a HD-AAC encoder :P

foo_component_manager

Reply #21
Version 0.1.1 has been uploaded. It now requests UAC permission when running the update script, so should work on default installations in Vista and 7.

foo_component_manager

Reply #22
- Activate/deactivate components (suggested by cerAmik)
This is what I am waiting for. Without the need of delete the plugin from component's folder and when you want it back you have to search for it again.

foo_component_manager

Reply #23
Thank you for this long awaited component.

can't wait for more components to be added!

foo_component_manager

Reply #24
This old version of foo_adpcm crashes the plugin just after "Status: Downloading XML data", probably when you enumerates plugins.
This is probably related to the fact this component declare several components. The latest foo_adpcm available on the components page do not crash your plugin.
Also what was strange is that when crashing I direclty got the Microsoft submit crash dialog instead of foobar2000's one.

I had to disable plugins one by one to find the offender .

 
SimplePortal 1.0.0 RC1 © 2008-2018