Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - nostra

Pages: 1 ... 79 80 81 82 83 [84] 85 86 87
1661
Development / MOVED: dvd
« on: May 23, 2008, 11:42:34 pm »

1662
You can scan any folder or disc in the same way you did with hdd. Just put the dvd into the drive, wait for a dialog to appear in PVD and select Scan files. You can index movies automatically using options in Tools -> Preferences -> Movies or manually by setting a value to the ID field.

1663
Changelogs / 0.9.8.9
« on: May 09, 2008, 01:22:10 am »
-Feature:SQL database engine
-Feature:More fields, filters, groups, statistics
-Feature:Faster saving, loading, grouping, import, export
-Feature:Improved Loan Manager
-Feature:Unlimited count of screenhots
-Feature:Unlimited count of posters and photos
-Feature:Better quality image resizing
-Feature:Improved gathering file information, because of the new version of mediainfo.dll
-Feature:Five different types of custom fields
-Feature:Acquire images from TWAIN device (eg. Scanner)
-Feature:A dialog with possible actions appears upon inserting of a CD or DVD
-Feature:Extremly improved Awards, Movie Coinnections and Filmography management
-Feature:Improved export
-Feature:Full Screen mode
-Feature:Improved support for roles in actors field and filmography
-Feature:Many new options
-Feature:New extremely powerful Advanced search
-Feature:Added a possibility to filter episodes
-Improved:TV Series support
-Improved:Some UI improvements
-Improved:Multiple movies editor
-Improved:Screenshot maker
A lot of other fixes and improvemnents

1664
Development / Re: traduction
« on: April 28, 2008, 11:39:06 pm »
Please note that the new version of PVD 0.9.8.х needs to be translated!

More info here: http://www.videodb.info/forum_en/index.php?topic=828.0

1665
Development / Re: dutch translation
« on: April 28, 2008, 11:38:53 pm »
Please note that the new version of PVD 0.9.8.х needs to be translated!

More info here: http://www.videodb.info/forum_en/index.php?topic=828.0

1666
Development / Re: Turkish Translation
« on: April 28, 2008, 11:38:20 pm »
Please note that the new version of PVD 0.9.8.х needs to be translated!

More info here: http://www.videodb.info/forum_en/index.php?topic=828.0

1667
Development / Re: Japanese translation
« on: April 28, 2008, 11:38:12 pm »
Please note that the new version of PVD 0.9.8.х needs to be translated!

More info here: http://www.videodb.info/forum_en/index.php?topic=828.0

1668
Scripts and Templates / Re: AMM to PVD converter
« on: April 22, 2008, 09:55:13 pm »
All My Movies.

This is program automatically converts All My Movies databases into PVD. Thanks to Moran.

1669
Development / MOVED: THE MOVIE PLAY BUTTON
« on: March 01, 2008, 03:36:54 am »

1670
Feature Suggestions / Re: Easier TV episode management
« on: February 24, 2008, 03:59:21 pm »
Episodes management will be improved in future.

1671
Development / Creating own scripts
« on: December 24, 2007, 02:00:02 pm »
Information in this topic is outdated. Please refer to this document for most current state of the script engine plug-in: http://www.videodb.info/help/hlp_scripting.html

Beginning with version 0.9.8.11 there is a possibility to create scripts using Pascal syntax to download movie and person information from the internet.

Scripts were added to make it possible for users to add additional functionality to the program without deep programming knowledge.

There are already some scripts available, so the only thing you will need to do in most cases is to set some values for constants  and write code to parse HTML pages. Mostly it is just about finding unique texts around information needed.

I have added multiple useful functions to make creating scripts easier.


Scripts should be saved in Scripts directory and have a .psf extension. All the scripts communicate with the main program with help of a special Script Engine plugin scriptint.dll.
Scripts can not work without this plugin.

PVD treats the scripts just like plugins, so you can configure them, combine in bacth files etc.

The following information can be set using scripts:
  • All movie information fields, including custom fields
  • All person information fields
  • Posters

Please take into account that only a small subset of information fields can be set up in the program to be overwritten or not. All other fields are always overwritten.

1672
Development / Re: Creating templates for export plugin
« on: December 05, 2007, 08:44:47 pm »
File header can be placed between tag: %HEAD%
File footer can be placed between tag: %FOOT%
Ex.:
Code: [Select]
%HEAD%<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>My Video Database</title>
</head>
<body>
%HEAD%
Template Example
%FOOT%
</body>
</html>%FOOT%


Variables

Variables are formatted like this: {%value=[number] oprion1="value" optionN="value"}
There are also some special variables:
{%value}(without number or options) is used in subtemplates for fields with multiple values, pages subtemplates for page numbers and in rating subtemplates (rating as stars) for rating value.
{%param=[value]} is used in subtemplates for fields with different types of data associated (for example actors field can include such information as person id (pid), names, URL, role)
{%groupparam=[value]} is used in subtemplates that support grouping (for example: awards, filmography) to identify by what parameter values should be gouped


Varables for information fields:
Movies:
Field nameNumberOptions
MID0
Num1
Title2
Origtitle3
Aka4
Year5
MPAA6
Release7
URL8
IMDBRating9template
Rating10template
OtherRating11template
OtherName12
Location13
Tagline14
Description15
Comment16
DateAdded17
Quality18
Length19
Translation20
Resolution21
FrameRate22
VideoCodec23
VideoBitrate24
AudioBitrate25
Size26
Path27
MediaType28
MediaCount29
Features30
Barcode31
Viewed32
ViewDate33
Wish34
Bookmark35
Loaned36
Series37
EPID38
Visible39
ParentSeason40
Episode41
Season42
AudioCodec43template, maxvalues
Genres44template, maxvalues
Countries45template, maxvalues
Category46template, maxvalues
Labels47template, maxvalues
Languages48template, maxvalues
Subs49template, maxvalues
Studios50template, maxvalues
Tags51template, maxvalues
Actors52template, maxvalues, params
Directors53template, maxvalues, params
Writers54template, maxvalues, params
Composers55template, maxvalues, params
Producers56template, maxvalues, params
Borrower57
LoanDate58
LoanPeriod59
UserMail60
Links61template, grouptemplate
Awards62template, grouptemplate
Poster63width, height, template, maxvalues, params
Screenshots64width, height, template, maxvalues, params
FrontCover65width, height, template, maxvalues, params
CDCover66width, height, template, maxvalues, params
Credits67template, grouptemplate
Episodes68template, grouptemplate


Persons:
PID0
Name1
TransName2
AltNames3
Birthday4
Death5
Birthplace6
URL7
Rating8
Bio9
Comment10
Bookmark11
Visible12
Genres13template, maxvalues
Filmography14template, grouptemplate
Career15template, maxvalues
Awards16template, grouptemplate
Photo17width, height, template, maxvalues, params


Meaning of the options:
widthMaximum image width
heightMaximum image height
templatePath to subtemplate for fields with multiple values
grouptemplatePath to group subtemplate for fields that support grouping
maxvaluesMaximum values count for fields with multiple values
paramsif param="full" is set, all associated data is retrieved
customthe field is a custom field and the number after value= is it's position


Possible values for {%param=[value]}:
FieldValues
Actorspid, name, transname, url, role
Directospid, name, transname, url, role
Producerspid, name, transname, url, role
Writerspid, name, transname, url, role
Composerspid, name, transname, url, role
Linksmid, linktype, linkname, num, title, origtitle, year, imdbrating, rating, description, url
Awardsevent, year, result, award, category
Episodesepid, mid, epnum, season, num, title, origtitle, year, imdbrating, rating, description, url
Creditsctype, pid, name, transname, url, role
Filmographyctype, ctypestr, mid, title, origtitle, year, role, url
All image fieldsimgid, imgformat, imgpath


Other variables:
NumberMeaning
200Total records count
201Total pages count
202Current page number
203Current record number
204Path to the database file (including file name)
205Database name
206Path to the first page (HTML)
207Path to the index file for the current record (HTML)
208Path to the last page (HTML)
209Path to the previous page (HTML)
210Path to the next page (HTML)
211Insert pages template
212List of pages
213Insert previous page template
214Insert next page template
215Path to the current record's file (HTML)
216Path to the previous record's file (HTML)
217Path to the next record's file (HTML)
218Path to a certain page (HTML)
219Path to the first page
220Path to the index file for the current record
221Path to the last page
222Path to the previous page
223Path to the next page
224Path to the current record's file
225Path to the previous record's file
226Path to the next record's file

1673
Development / Creating templates for export plugin
« on: December 05, 2007, 05:15:18 am »
Information in this topic is outdated. Please refer to this document for most current state of the export plug-in: http://www.videodb.info/help/hlp_export.html

Templates are file with .ptm extension. Main template files must be saved in Plugins\Templates directory, subtemplates can be saved anywhere.

Options

Template options have to be at the top of the main template file between %OPTIONS% tag.

Following options are available:
replace="value1<->value2"Replaces value1 with value2 in all variables. You can set value1 or value2 to a line break using #13#10
filter="value"File filter used in "Save as" dialog. Ex.: HTML Files|*.html;*.htm
encoding="value"Text encoding. This parameter can be the following value:
  • ANSI - Save as ANSI text (using Windows default code page)
  • UTF8 - Save as UTF8
sortby="value"Number of the field that should be used for sorting.
sortdir="value"Sorting direction.
  • sdAscending - Sort Ascending
  • sdDescending - Sort Descending
imagepath="value"Where images are to be saved. This path should be relative to the resulting text file.
recordtemplate="значение"Path to a template for generating a file for each record relative to main template file.
recordfilename=[name]%d.[extension]How to name files generated using recordtemplate. %d will be replaced with a counter
pagestpl="value"Path to a template for generating a list of pages relative to main template file.
prevtpl="value"Path to a template used in pagestpl to create a link to a previous page relative to main template file.
nexttpl="value"Path to a template used in pagestpl to create a link to a next page relative to main template file.
pagelinktpl="value"Path to a template used in pagestpl to create a link to a certain page number relative to main template file.
pagecurtpl="value"Path to a template used in pagestpl to output current page number relative to main template file.
copyfile="file1<->file2"Copy file1 to file2
fullstar="value"Path to the full star image. (relative to resulting text file)
halfstar="value"Path to the half star image. (relative to resulting text file)
nonestar="value"Path to the empty star image. (relative to resulting text file)
itemsperpage="value"Number of movies per page

1674
Development / Batch plugins
« on: December 05, 2007, 05:14:37 am »
You can combine plugins, so they are executed one by one.

To do so you need to create a file with extension .batch and put it into the Plugins directory.

Those files have following format:

NAME={VALUE}
DESC={VALUE}
TYPE={VALUE}
EXECUTE={LIST_OF_PLUGINS}


NAME - a short name of the plugin that will be shown in New Movie Master (for example)
DESC - Decription of the plugin. This text is shown in Main Menu
TYPE - Type of the plugin. This parameter accepts following values:
  • 2 - Movie Information
  • 3 - Import from other databases
  • 4 - Poster Import
  • 5 - Cover import
  • 6 - Persons Import
  • 7 - Export
EXECUTE - List of plugins to be executed. Filenames of the plugins are listed here separated with |


Example of batch file:
Code: [Select]
NAME=IMDB+KinoPoisk[EN+RU]
DESC=[EN+RU]Get movie information from IMDB.com and then from Kinopoisk.ru
TYPE=2
EXECUTE=imdb.dll|kinopoisk.dll

1675
Development / Re: Programming own plugins
« on: December 05, 2007, 05:12:17 am »
Cover and Disc image Plugins


function GetURL(const CurrentURL : PCHAR; out NewURL : PCHAR; const ASearchText : PChar) : Integer; stdcall;

The same as for other web import plugins, but with additional parameter ASearchText, so you can prepare the search request in the plugin.

   
function GetCurrentType : SHORT; stdcall;

This function must return the type of cover (TCoverType) plugin is working with at the moment.


procedure SetSelection(const AVal : Integer); stdcall;

When user selects one of the movies from the list the program passes index of selected movie to the plugin using this procedure.

1676
Development / Re: Programming own plugins
« on: December 05, 2007, 05:11:22 am »
General import plugins


function GetFilter(AppHandle : HWND; const LangID : Integer; CustomFields : PWideChar) : PWideChar; stdcall

    AppHandle - Handle of the application window
    LangID - Currently selected user interface language
    CustomFields - List of custom fields (#0 - separator, #8#0 - end of the list)


This function must return a filter for the File Open Dialog, when selecting a file to import from.


procedure Parse(AppHandle : HWND; const LangID : Integer; FileName : PWideChar; MovieCallback : TPluginImpGenMovieCallback; HumanCallback : TPluginImpGenHumanCallback; CustomFields : PWideChar); stdcall;

    LangID - Currently selected user interface language
    AppHandle - Handle of the application window
    FileName - Name of the file to import from.
    MovieCallback - A callback procedure that should be called from the plugin every time a movie should be added to the database.
    HumanCallback - A callback procedure that should be called from the plugin every time a human should be added to the database.
    CustomFields - List of custom fields (#0 - separator, #8#0 - end of the list)


This procedure must be present in this type of plugins. It is called just after the user selected the file to import from.

1677
Development / Re: Programming own plugins
« on: December 05, 2007, 05:10:03 am »
Web import plugins (information and posters)


function GetURL(const isEpisode : Boolean; const CurrentURL : PCHAR; out NewURL : PCHAR) : Integer; stdcall;

    isEpisode - should plugin search for a normal movie or tv episode
    CurrentURL - URLs specified for the movie separated with Space
    NewURL - This variable is used to pass a new URL to the application (to search (for ex. "http://imdb.com/find?s=tt&q=%s") or just download)


This function must be present.

function GetCodePage : Cardinal; stdcall;

This function must return code page need to format HTTP requests.

   
function Parse(URL : PCHAR; Data : PWideChar) : SHORT; stdcall;

    URL - Address of this page
    Data - Response from the Web service (normally HTML) which should be processed by the plugin.


This function is always called when Personal Video Database gets a web page from the Server.

   
function GetResultsCount : Integer; stdcall;

This function is called when the Parse function returned PLUGIN_RESPONSE_LIST previously to get the count of items in the list.

   
function GetSelection(const N : Integer; out Title, Title2 : PWideChar; out URL, Preview, Browse : PCHAR; out Year : Smallint) : BOOL; stdcall;

    N - Item in the list that should be copied into the next 3 parameters.
    Title, Title2, Year, URL, PreviewURL, BrowseURL - Data which represents movie or poster. PreviewURL is only used when posters have a preview image.


The function should return True if everything went ok, False otherwise.


function GetMovie(const N : Integer; var AMovieInfo : PWideChar) : BOOL; stdcall;
function GetHuman(const N : Integer; var AHumanInfo : PWideChar) : Integer; stdcall;

    N - Number of the movie/human in the list


If user select a movie/human from the list or only one movie/human is in the list this function will be called to get the data.
Movie information should be passed back as XML . The function should return True if everything was ok and False otherwise. (movies)
Result can be PLUGIN_RESPONSE_ERROR .. PLUGIN_RESPONSE_OKPHOTO (people)

   
procedure GetLoginInfo(out ScriptURL : PCHAR; out Params : PCHAR); stdcall;

    ScriptURL - Address of the login script
    Params - Parameters that should be passed to the script


This procedure is only needed if the web service the plugin is working with need such information.

   
function GetReferrer : PCHAR;

Implement this function and return a String with Referrer if the Web service works only wit special one.

   
function GetSelectTitle(const LangID : Integer) : PWideChar; stdcall;

    LangID - Currently selected user interface language


Implement this function if you want to set a special Selection Window title.

1678
Development / Re: Programming own plugins
« on: December 05, 2007, 05:08:06 am »
Common functions for all types of plugins


function GetType : SHORT; stdcall;

This function must be present in all plugins. It should return the type of the plugin.


function GetName(const LangID : Integer) : PWideChar; stdcall;

    LangID - Currently selected user interface language


This function must be present in all plugins. It should return a short name of the plugin.


function GetDescription(const LangID : Integer) : PWideChar; stdcall;

    LangID - Currently selected user interface language


This function must be present in all plugins. It should return the description of the plugin.


function GetVersionSupported : DWORD; stdcall;

This function must be present in all plugins. It should return minimum supported Personal Video Database version. Use 0 for all versions.

Version is assumed to be a number like:
001005000000 = 1005000 = "1.5.0.0"
000009000000 = 9000 = "0.9.0.0"


function GetPluginVersion : PCHAR; stdcall;

Returns the version of the plugin. This function is not obligatory and can be absent in the plugin.


function CheckPVDVerion(const V : Integer) : BOOL; stdcall;

This function is also not obligatory. If Personal Video Database finds this function it passes it's version to it. The function should return True if the plugin is compatible with the passed version of the program and False otherwise.

   
function GetPluginLanguage : Integer; stdcall;

Returns the language of the plugin. It is useful especially for Web Import plugins to pass the language of the information they are getting from Web. If this function is not present English is assumed.

 
function GetAbout(const LangID : Integer) : PWideChar; stdcall;

    LangID - Currently selected user interface language


Returns information about the plugin. Not obligatory.

   
function CanConfig : BOOL; stdcall;

This function must return True if the plugin is configurable and False otherwise. If no such function is found in the plugin False is assumed.


function Configure(const LangID : Integer; AppHandle : HWND; CustomFields : PWideChar) : BOOL; stdcall;

    LangID - Currently selected user interface language
    AppHandle - Handle of the application window
    CustomFields - List of custom fields (#0 - separator, #8#0 - end of the list)


This function is called when a user wants to configure a plugin. Return True if configuration was successful.

function BeginWork : Integer; stdcall;

Obligatory function. It is called each time the main program starts to work with the plugin.

procedure EndWork; stdcall;

Obligatory function. Called each time the work with the plugin is finished.

1679
Development / Re: Programming own plugins
« on: December 05, 2007, 05:04:00 am »
Types


Types for movie general import plugins:

   TPluginImpGenMovieCallback = function (Movie : PWideChar) : BOOL;
  TPluginImpGenPersonCallback = function (Person : PWideChar) : BOOL;


Types for human general export plugins:

    TExpValueCallback = function (ValueIndex : Integer; IsCustomIndex : Boolean) : PWideChar;
  TExpNextCallback = function : BOOL;

1680
Development / Re: Programming own plugins
« on: December 05, 2007, 05:02:51 am »
Constants


Plugin types:

    PLUGIN_UNKNOWN = 0; //You do not need this one actually
    PLUGIN_GENERAL = 1; //Is not currently used
    PLUGIN_WEBIMPORT = 2; //Plugin is importing information from a web service
    PLUGIN_GENIMPORT = 3; //Plugin is importing information from other type of database
    PLUGIN_WEBPICIMPORT = 4; //Plugin is importing Posters from a web service
    PLUGIN_WEBCOVERIMPORT = 5; //Plugin is importing Cover and Disc images from a web service
    PLUGIN_WEBPEOPLEIMPORT = 6; //Plugin is importing information about people from a web service
    PLUGIN_EXPORT = 7; //Export plugin


Plugin responses:

    PLUGIN_RESPONSE_ERROR = 0; //An error acquired while parsing the result
    PLUGIN_RESPONSE_OK = 1; //Everything ok, nothing more to be done
    PLUGIN_RESPONSE_LIST = 2; //Plugin generated a list which should be read by the program
    PLUGIN_RESPONSE_DOWNLOAD = 3; //The program should request a page from the web
    PLUGIN_RESPONSE_OKPHOTO = 4; //Used in plugins importing info about people and signalizes that the program needs to download a photo


URL types (result of GetURL function):

    WEB_URL_NONE = -1; //There is no need to download anything
    WEB_URL_SEARCH = 0; //NewURL is a link to search movie
    WEB_URL_DIRECT = 1; //NewURL is a direct URL of the movie


Cover types:

    ctFront = 0;
    ctCD = 1;


Data types:

    dtMovies = 0;
    dtActors = 1;


XML Tags used to pass movie/person data from import plugins to the main application:

XML_MOVIE'movie';
XML_NUMBER'num';
XML_TITLE'title';
XML_ORIGTITLE'origtitle';
XML_AKA'aka';
XML_YEAR'year';
XML_GENRE'genre';
XML_COUNTRY'country';
XML_STUDIO'studio';
XML_RELEASE'release';
XML_MPAA'mpaa';
XML_LOCATION'location';
XML_CATEGORY'category';
XML_TAGLINE'tagline';
XML_DESCRIPTION'description';
XML_MEDIACOUNT'count';
XML_MEDIATYPE'type';
XML_RATING'rating';
XML_IMDBRATING'imdbrating';
XML_OTHERRATING'orating';
XML_OTHERNAME'orname';
XML_RIPTYPE'rip';
XML_DURATION'length';
XML_LANGUAGES'langs';
XML_TRANSLATION'translation';
XML_RESOLUTION'resolution';
XML_VIDEOCODEC'videocodec';
XML_VIDEOBITRATE'videobitrate';
XML_AUDIOCODEC'audiocodec';
XML_AUDIOBITRATE'audiobitrate';
XML_SIZE'size';
XML_URL'url';
XML_PATH'path';
XML_COMMENT'comment';
XML_DATE'dateadded';
XML_BARCODE'code';
XML_MEDIALABEL'label';
XML_LOAN'loan';
XML_SUBS'subs';
XML_FRAMERATE'framerate';
XML_LABEL'label';
XML_FEATURES'features';
XML_VIEWED'viewed';
XML_BOOKMARKED'bookmark';
XML_WISH'wish';
XML_EPISODES'episodes';
XML_SEASON'season';
XML_EPISODE'episode';
XML_EPNUM'epnum';
XML_CUSTOMVALUE'custom';
XML_CUSTOM'value';
XML_CUSTOMID'customid';
XML_LOANDATE'loandate';
XML_VIEWDATE'viewdate';
XML_TAGS'tags';
XML_AWARDS'awards';
XML_EVENT'event';
XML_RESULT'result';
XML_AWARD'award';
XML_AWARD_CAT'cat';
XML_LINKS'links';
XML_ACTORS'actors';
XML_DIRECTORS'directors';
XML_PRODUCERS'producers';
XML_COMPOSERS'composers';
XML_WRITERS'writers';
XML_CAREERTYPE'careertype';
XML_HUMAN'human';
XML_NAME'name';
XML_TRANSNAME'transname';
XML_ALTNAMES'altnames';
XML_BIRTHDAY'birthday';
XML_BIRTHPLACE'birthplace';
XML_BIO'bio';
XML_FILMOGRAPHY'filmography';
XML_TYPE'category';
XML_ROLE'role';
XML_DEATH'death';
XML_IMAGES'images';
XML_IMGTYPE'imgtype';
XML_IMGPATH'imgpath';
XML_IMGFORMAT'imgformat';
XML_IMGDATA'imgdata';

Pages: 1 ... 79 80 81 82 83 [84] 85 86 87