diff --git a/.gitignore b/.gitignore index 731fee9..becd0fa 100644 --- a/.gitignore +++ b/.gitignore @@ -3,7 +3,6 @@ Thumbs.db #Ignore files build by Visual Studio *.obj -*.exe *.pdb *.user *.aps @@ -19,7 +18,6 @@ Thumbs.db *.cache *.ilk *.log -[Bb]in [Dd]ebug*/ *.lib *.sbr diff --git a/.nuget/NuGet.exe b/.nuget/NuGet.exe new file mode 100644 index 0000000..e313ff9 Binary files /dev/null and b/.nuget/NuGet.exe differ diff --git a/Addons/generic.EmberCore.BulkRename/Langs/generic.EmberCore.BulkRename.Debug_(db_DB).xml b/Addons/generic.EmberCore.BulkRename/Langs/generic.EmberCore.BulkRename.Debug_(db_DB).xml new file mode 100644 index 0000000..dc32df1 --- /dev/null +++ b/Addons/generic.EmberCore.BulkRename/Langs/generic.EmberCore.BulkRename.Debug_(db_DB).xml @@ -0,0 +1,902 @@ + + bulk1 + bulk2 + bulk3 + bulk4 + bulk5 + bulk6 + bulk7 + bulk8 + bulk9 + bulk10 + bulk11 + bulk12 + bulk13 + bulk14 + bulk15 + bulk16 + bulk17 + bulk18 + bulk19 + bulk20 + bulk21 + bulk22 + bulk23 + bulk24 + bulk25 + bulk26 + bulk27 + bulk28 + bulk29 + bulk30 + bulk31 + bulk32 + bulk33 + bulk34 + bulk35 + bulk36 + bulk37 + bulk38 + bulk39 + bulk40 + bulk41 + bulk42 + bulk43 + bulk44 + bulk45 + bulk46 + bulk47 + bulk48 + bulk49 + bulk50 + bulk51 + bulk52 + bulk53 + bulk54 + bulk55 + bulk56 + bulk57 + bulk58 + bulk59 + bulk60 + bulk61 + bulk62 + bulk63 + bulk64 + bulk65 + bulk66 + bulk67 + bulk68 + bulk69 + bulk70 + bulk71 + bulk72 + bulk73 + bulk74 + bulk75 + bulk76 + bulk77 + bulk78 + bulk79 + bulk80 + bulk81 + bulk82 + bulk83 + bulk84 + bulk85 + bulk86 + bulk87 + bulk88 + bulk89 + bulk90 + bulk91 + bulk92 + bulk93 + bulk94 + bulk95 + bulk96 + bulk97 + bulk98 + bulk99 + bulk100 + bulk101 + bulk102 + bulk103 + bulk104 + bulk105 + bulk106 + bulk107 + bulk108 + bulk109 + bulk110 + bulk111 + bulk112 + bulk113 + bulk114 + bulk115 + bulk116 + bulk117 + bulk118 + bulk119 + bulk120 + bulk121 + bulk122 + bulk123 + bulk124 + bulk125 + bulk126 + bulk127 + bulk128 + bulk129 + bulk130 + bulk131 + bulk132 + bulk133 + bulk134 + bulk135 + bulk136 + bulk137 + bulk138 + bulk139 + bulk140 + bulk141 + bulk142 + bulk143 + bulk144 + bulk145 + bulk146 + bulk147 + bulk148 + bulk149 + bulk150 + bulk151 + bulk152 + bulk153 + bulk154 + bulk155 + bulk156 + bulk157 + bulk158 + bulk159 + bulk160 + bulk161 + bulk162 + bulk163 + bulk164 + bulk165 + bulk166 + bulk167 + bulk168 + bulk169 + bulk170 + bulk171 + bulk172 + bulk173 + bulk174 + bulk175 + bulk176 + bulk177 + bulk178 + bulk179 + bulk180 + bulk181 + bulk182 + bulk183 + bulk184 + bulk185 + bulk186 + bulk187 + bulk188 + bulk189 + bulk190 + bulk191 + bulk192 + bulk193 + bulk194 + bulk195 + bulk196 + bulk197 + bulk198 + bulk199 + bulk200 + bulk201 + bulk202 + bulk203 + bulk204 + bulk205 + bulk206 + bulk207 + bulk208 + bulk209 + bulk210 + bulk211 + bulk212 + bulk213 + bulk214 + bulk215 + bulk216 + bulk217 + bulk218 + bulk219 + bulk220 + bulk221 + bulk222 + bulk223 + bulk224 + bulk225 + bulk226 + bulk227 + bulk228 + bulk229 + bulk230 + bulk231 + bulk232 + bulk233 + bulk234 + bulk235 + bulk236 + bulk237 + bulk238 + bulk239 + bulk240 + bulk241 + bulk242 + bulk243 + bulk244 + bulk245 + bulk246 + bulk247 + bulk248 + bulk249 + bulk250 + bulk251 + bulk252 + bulk253 + bulk254 + bulk255 + bulk256 + bulk257 + bulk258 + bulk259 + bulk260 + bulk261 + bulk262 + bulk263 + bulk264 + bulk265 + bulk266 + bulk267 + bulk268 + bulk269 + bulk270 + bulk271 + bulk272 + bulk273 + bulk274 + bulk275 + bulk276 + bulk277 + bulk278 + bulk279 + bulk280 + bulk281 + bulk282 + bulk283 + bulk284 + bulk285 + bulk286 + bulk287 + bulk288 + bulk289 + bulk290 + bulk291 + bulk292 + bulk293 + bulk294 + bulk295 + bulk296 + bulk297 + bulk298 + bulk299 + bulk300 + bulk301 + bulk302 + bulk303 + bulk304 + bulk305 + bulk306 + bulk307 + bulk308 + bulk309 + bulk310 + bulk311 + bulk312 + bulk313 + bulk314 + bulk315 + bulk316 + bulk317 + bulk318 + bulk319 + bulk320 + bulk321 + bulk322 + bulk323 + bulk324 + bulk325 + bulk326 + bulk327 + bulk328 + bulk329 + bulk330 + bulk331 + bulk332 + bulk333 + bulk334 + bulk335 + bulk336 + bulk337 + bulk338 + bulk339 + bulk340 + bulk341 + bulk342 + bulk343 + bulk344 + bulk345 + bulk346 + bulk347 + bulk348 + bulk349 + bulk350 + bulk351 + bulk352 + bulk353 + bulk354 + bulk355 + bulk356 + bulk357 + bulk358 + bulk359 + bulk360 + bulk361 + bulk362 + bulk363 + bulk364 + bulk365 + bulk366 + bulk367 + bulk368 + bulk369 + bulk370 + bulk371 + bulk372 + bulk373 + bulk374 + bulk375 + bulk376 + bulk377 + bulk378 + bulk379 + bulk380 + bulk381 + bulk382 + bulk383 + bulk384 + bulk385 + bulk386 + bulk387 + bulk388 + bulk389 + bulk390 + bulk391 + bulk392 + bulk393 + bulk394 + bulk395 + bulk396 + bulk397 + bulk398 + bulk399 + bulk400 + bulk401 + bulk402 + bulk403 + bulk404 + bulk405 + bulk406 + bulk407 + bulk408 + bulk409 + bulk410 + bulk411 + bulk412 + bulk413 + bulk414 + bulk415 + bulk416 + bulk417 + bulk418 + bulk419 + bulk420 + bulk421 + bulk422 + bulk423 + bulk424 + bulk425 + bulk426 + bulk427 + bulk428 + bulk429 + bulk430 + bulk431 + bulk432 + bulk433 + bulk434 + bulk435 + bulk436 + bulk437 + bulk438 + bulk439 + bulk440 + bulk441 + bulk442 + bulk443 + bulk444 + bulk445 + bulk446 + bulk447 + bulk448 + bulk449 + bulk450 + bulk451 + bulk452 + bulk453 + bulk454 + bulk455 + bulk456 + bulk457 + bulk458 + bulk459 + bulk460 + bulk461 + bulk462 + bulk463 + bulk464 + bulk465 + bulk466 + bulk467 + bulk468 + bulk469 + bulk470 + bulk471 + bulk472 + bulk473 + bulk474 + bulk475 + bulk476 + bulk477 + bulk478 + bulk479 + bulk480 + bulk481 + bulk482 + bulk483 + bulk484 + bulk485 + bulk486 + bulk487 + bulk488 + bulk489 + bulk490 + bulk491 + bulk492 + bulk493 + bulk494 + bulk495 + bulk496 + bulk497 + bulk498 + bulk499 + bulk500 + bulk501 + bulk502 + bulk503 + bulk504 + bulk505 + bulk506 + bulk507 + bulk508 + bulk509 + bulk510 + bulk511 + bulk512 + bulk513 + bulk514 + bulk515 + bulk516 + bulk517 + bulk518 + bulk519 + bulk520 + bulk521 + bulk522 + bulk523 + bulk524 + bulk525 + bulk526 + bulk527 + bulk528 + bulk529 + bulk530 + bulk531 + bulk532 + bulk533 + bulk534 + bulk535 + bulk536 + bulk537 + bulk538 + bulk539 + bulk540 + bulk541 + bulk542 + bulk543 + bulk544 + bulk545 + bulk546 + bulk547 + bulk548 + bulk549 + bulk550 + bulk551 + bulk552 + bulk553 + bulk554 + bulk555 + bulk556 + bulk557 + bulk558 + bulk559 + bulk560 + bulk561 + bulk562 + bulk563 + bulk564 + bulk565 + bulk566 + bulk567 + bulk568 + bulk569 + bulk570 + bulk571 + bulk572 + bulk573 + bulk574 + bulk575 + bulk576 + bulk577 + bulk578 + bulk579 + bulk580 + bulk581 + bulk582 + bulk583 + bulk584 + bulk585 + bulk586 + bulk587 + bulk588 + bulk589 + bulk590 + bulk591 + bulk592 + bulk593 + bulk594 + bulk595 + bulk596 + bulk597 + bulk598 + bulk599 + bulk600 + bulk601 + bulk602 + bulk603 + bulk604 + bulk605 + bulk606 + bulk607 + bulk608 + bulk609 + bulk610 + bulk611 + bulk612 + bulk613 + bulk614 + bulk615 + bulk616 + bulk617 + bulk618 + bulk619 + bulk620 + bulk621 + bulk622 + bulk623 + bulk624 + bulk625 + bulk626 + bulk627 + bulk628 + bulk629 + bulk630 + bulk631 + bulk632 + bulk633 + bulk634 + bulk635 + bulk636 + bulk637 + bulk638 + bulk639 + bulk640 + bulk641 + bulk642 + bulk643 + bulk644 + bulk645 + bulk646 + bulk647 + bulk648 + bulk649 + bulk650 + bulk651 + bulk652 + bulk653 + bulk654 + bulk655 + bulk656 + bulk657 + bulk658 + bulk659 + bulk660 + bulk661 + bulk662 + bulk663 + bulk664 + bulk665 + bulk666 + bulk667 + bulk668 + bulk669 + bulk670 + bulk671 + bulk672 + bulk673 + bulk674 + bulk675 + bulk676 + bulk677 + bulk678 + bulk679 + bulk680 + bulk681 + bulk682 + bulk683 + bulk684 + bulk685 + bulk686 + bulk687 + bulk688 + bulk689 + bulk690 + bulk691 + bulk692 + bulk693 + bulk694 + bulk695 + bulk696 + bulk697 + bulk698 + bulk699 + bulk700 + bulk701 + bulk702 + bulk703 + bulk704 + bulk705 + bulk706 + bulk707 + bulk708 + bulk709 + bulk710 + bulk711 + bulk712 + bulk713 + bulk714 + bulk715 + bulk716 + bulk717 + bulk718 + bulk719 + bulk720 + bulk721 + bulk722 + bulk723 + bulk724 + bulk725 + bulk726 + bulk727 + bulk728 + bulk729 + bulk730 + bulk731 + bulk732 + bulk733 + bulk734 + bulk735 + bulk736 + bulk737 + bulk738 + bulk739 + bulk740 + bulk741 + bulk742 + bulk743 + bulk744 + bulk745 + bulk746 + bulk747 + bulk748 + bulk749 + bulk750 + bulk751 + bulk752 + bulk753 + bulk754 + bulk755 + bulk756 + bulk757 + bulk758 + bulk759 + bulk760 + bulk761 + bulk762 + bulk763 + bulk764 + bulk765 + bulk766 + bulk767 + bulk768 + bulk769 + bulk770 + bulk771 + bulk772 + bulk773 + bulk774 + bulk775 + bulk776 + bulk777 + bulk778 + bulk779 + bulk780 + bulk781 + bulk782 + bulk783 + bulk784 + bulk785 + bulk786 + bulk787 + bulk788 + bulk789 + bulk790 + bulk791 + bulk792 + bulk793 + bulk794 + bulk795 + bulk796 + bulk797 + bulk798 + bulk799 + bulk800 + bulk801 + bulk802 + bulk803 + bulk804 + bulk805 + bulk806 + bulk807 + bulk808 + bulk809 + bulk810 + bulk811 + bulk812 + bulk813 + bulk814 + bulk815 + bulk816 + bulk817 + bulk818 + bulk819 + bulk820 + bulk821 + bulk822 + bulk823 + bulk824 + bulk825 + bulk826 + bulk827 + bulk828 + bulk829 + bulk830 + bulk831 + bulk832 + bulk833 + bulk834 + bulk835 + bulk836 + bulk837 + bulk838 + bulk839 + bulk840 + bulk841 + bulk842 + bulk843 + bulk844 + bulk845 + bulk846 + bulk847 + bulk848 + bulk849 + bulk850 + bulk851 + bulk852 + bulk853 + bulk854 + bulk855 + bulk856 + bulk857 + bulk858 + bulk859 + bulk860 + bulk861 + bulk862 + bulk863 + bulk864 + bulk865 + bulk866 + bulk867 + bulk868 + bulk869 + bulk870 + bulk871 + bulk872 + bulk873 + bulk874 + bulk875 + bulk876 + bulk877 + bulk878 + bulk879 + bulk880 + bulk881 + bulk882 + bulk883 + bulk884 + bulk885 + bulk886 + bulk887 + bulk888 + bulk889 + bulk890 + bulk891 + bulk892 + bulk893 + bulk894 + bulk895 + bulk896 + bulk897 + bulk898 + bulk899 + bulk900 + \ No newline at end of file diff --git a/Addons/generic.EmberCore.BulkRename/Langs/generic.EmberCore.BulkRename.Dutch_(nl_NL)-Help.xml b/Addons/generic.EmberCore.BulkRename/Langs/generic.EmberCore.BulkRename.Dutch_(nl_NL)-Help.xml new file mode 100644 index 0000000..e63613e --- /dev/null +++ b/Addons/generic.EmberCore.BulkRename/Langs/generic.EmberCore.BulkRename.Dutch_(nl_NL)-Help.xml @@ -0,0 +1,9 @@ + + Gebruik deze module wel of niet + (De)activeer algemene hernoem functies + Voer een patroon in voor het automatisch hernoemen van mappen. + Voer een patroon in voor het automatisch hernoemen van bestanden. + Indien geactiveerd zal Ember automatisch bestanden en mappen hernoemen tijdens het scannen van meerdere films. + Indien geactiveerd zal Ember automatisch bestanden en mappen hernoemen tijdens het scannen van een enkele film. + Activeer de bul hernoem tool. + diff --git a/Addons/generic.EmberCore.BulkRename/Langs/generic.EmberCore.BulkRename.Dutch_(nl_NL).xml b/Addons/generic.EmberCore.BulkRename/Langs/generic.EmberCore.BulkRename.Dutch_(nl_NL).xml new file mode 100644 index 0000000..3535e84 --- /dev/null +++ b/Addons/generic.EmberCore.BulkRename/Langs/generic.EmberCore.BulkRename.Dutch_(nl_NL).xml @@ -0,0 +1,36 @@ + + Hernoemer + Hernoemen... + Bulk hernoemer + Hernoem films en bestanden + Film lijst compileren... + Afbreken compileren.... + Hernoem + Map patroon (voor enkele film in map) + Bestandspatroon + Map patroon (voor meerdere films in één map) + Toon alleen films die hernoemd worden + $T = Titel{0}$X. (Vervang spatie met .){0}$D = Map{0}$F = Bestandsnaam{0}$O = Originele titel{0}$Y = Jaar{0}$I = IMDB ID{0}$R = Resolutie{0}$A = Audio{0}$S = Bron{0}$M = MPAA{0}$B = Bron pad{0}$L = Lijst titel{0}{{}} = Optioneel{0}$?aaa?bbb? = Vervang aaa met bbb{0}$- = Verwijder voorgaand karakter als het volgende patroon geen waarde heeft{0}$+ = Verwijder volgend karakter als vorig patroon geen waarde heeft{0}$^ = Verwijder vorig en volgend karakter als volgend patroon geen waarde heeft + Er is een fout opgetreden bij het hernoemen van de map:{0}{0}{1}{0}{0}Controleer dat je deze map niet in een ander programma geopend hebt (inclusief Windows Explorer) + Map hernoemen niet mogelijk + Er is een fout opgetreden bij het hernoemen van een bestand:{0}{0}{1}{0}{0}Controleer dat het bestand niet in een ander programma geopend is. + Bestand hernoemen niet mogelijk + Handmatig hernoemen + Map naam + Bestandsnaam + Titel: + Hernoemen mappen/bestanden... + Automatisch hernoemen tijdens het multi-scannen + Automatisch hernoemen tijdens het enkel-scannen + Standaard hernoem patronen + Bestandspatroon + Map patroon + Bulk &Hernoemer + + Auto + Hamdmatig + Nieuw pad + Nieuwe bestandsnaam: + Gebruik rename module wel of niet + Gebruik bulk-hernoemer wel of niet + diff --git a/Addons/generic.EmberCore.BulkRename/Langs/generic.EmberCore.BulkRename.English_(en_US)-Help.xml b/Addons/generic.EmberCore.BulkRename/Langs/generic.EmberCore.BulkRename.English_(en_US)-Help.xml index 642205a..634ac2e 100644 --- a/Addons/generic.EmberCore.BulkRename/Langs/generic.EmberCore.BulkRename.English_(en_US)-Help.xml +++ b/Addons/generic.EmberCore.BulkRename/Langs/generic.EmberCore.BulkRename.English_(en_US)-Help.xml @@ -1,10 +1,9 @@ - - Enable or disable this module. - Enable or disable generic renaming functions. - Enter a renaming pattern to be used for automatic renaming of folders. - Enter a renaming pattern to be used for automatic renaming of files. - If enabled, Ember will automatically rename files and folders when scraping multiple movies. - If enabled, Ember will automatically rename files and folders when scraping a single movie. - Enable the bulk renaming tool. - \ No newline at end of file + Enable or disable this module. + Enable or disable generic renaming functions. + Enter a renaming pattern to be used for automatic renaming of folders. + Enter a renaming pattern to be used for automatic renaming of files. + If enabled, Ember will automatically rename files and folders when scraping multiple movies. + If enabled, Ember will automatically rename files and folders when scraping a single movie. + Enable the bulk renaming tool. + diff --git a/Addons/generic.EmberCore.BulkRename/Langs/generic.EmberCore.BulkRename.English_(en_US).xml b/Addons/generic.EmberCore.BulkRename/Langs/generic.EmberCore.BulkRename.English_(en_US).xml index 3a041e8..32ba5fe 100644 --- a/Addons/generic.EmberCore.BulkRename/Langs/generic.EmberCore.BulkRename.English_(en_US).xml +++ b/Addons/generic.EmberCore.BulkRename/Langs/generic.EmberCore.BulkRename.English_(en_US).xml @@ -1,37 +1,36 @@ - - Renamer - Renaming... - Bulk Renamer - Rename movies and files - Compiling Movie List... - Canceling Compilation... - Rename - Folder Pattern (for Single movie in Folder) - File Pattern - Folder Pattern (for Multiple movies in Folder) - Display Only Movies That Will Be Renamed - $T = Title{0}$X. (Replace Space with .){0}$D = Directory{0}$F = File Name{0}$O = OriginalTitle{0}$Y = Year{0}$I = IMDB ID{0}$R = Resolution{0}$A = Audio{0}$S = Source{0}$M = MPAA{0}$B = Base Path{0}$L = List Title{0}{{}} = Optional{0}$?aaa?bbb? = Replace aaa with bbb{0}$- = Remove previous char if next pattern does not have a value{0}$+ = Remove next char if previous pattern does not have a value{0}$^ = Remove previous and next char if next pattern does not have a value - An error occured while attempting to rename the folder:{0}{0}{1}{0}{0}Please ensure that you are not accessing this folder or any of its files from another program (including browsing via Windows Explorer - Unable to Rename Folder - An error occured while attempting to rename a file:{0}{0}{1}{0}{0}Please ensure that you are not accessing this file from another program. - Unable to Rename File - Manual Rename - Folder Name - File Name - Title: - Renaming Folder/Files... - Automatically Rename Files During Multi-Scraper - Automatically Rename Files During Single-Scraper - Default Renaming Patterns - Files Pattern - Folders Pattern - Bulk &Renamer - Rename - Auto - Manual - New Path - New File Name - Enable Generic Rename Module - Enable Bulk Renamer Tool - \ No newline at end of file + Renamer + Renaming... + Bulk Renamer + Rename movies and files + Compiling Movie List... + Canceling Compilation... + Rename + Folder Pattern (for Single movie in Folder) + File Pattern + Folder Pattern (for Multiple movies in Folder) + Display Only Movies That Will Be Renamed + $T = Title{0}$X. (Replace Space with .){0}$D = Directory{0}$F = File Name{0}$O = OriginalTitle{0}$Y = Year{0}$I = IMDB ID{0}$R = Resolution{0}$A = Audio{0}$S = Source{0}$M = MPAA{0}$B = Base Path{0}$L = List Title{0}{{}} = Optional{0}$?aaa?bbb? = Replace aaa with bbb{0}$- = Remove previous char if next pattern does not have a value{0}$+ = Remove next char if previous pattern does not have a value{0}$^ = Remove previous and next char if next pattern does not have a value + An error occured while attempting to rename the folder:{0}{0}{1}{0}{0}Please ensure that you are not accessing this folder or any of its files from another program (including browsing via Windows Explorer + Unable to Rename Folder + An error occured while attempting to rename a file:{0}{0}{1}{0}{0}Please ensure that you are not accessing this file from another program. + Unable to Rename File + Manual Rename + Folder Name + File Name + Title: + Renaming Folder/Files... + Automatically Rename Files During Multi-Scraper + Automatically Rename Files During Single-Scraper + Default Renaming Patterns + Files Pattern + Folders Pattern + Bulk &Renamer + + Auto + Manual + New Path + New File Name + Enable Generic Rename Module + Enable Bulk Renamer Tool + diff --git a/Addons/generic.EmberCore.BulkRename/Langs/generic.EmberCore.BulkRename.German_(de_DE)-Help.xml b/Addons/generic.EmberCore.BulkRename/Langs/generic.EmberCore.BulkRename.German_(de_DE)-Help.xml index 9224d12..98bdf69 100644 --- a/Addons/generic.EmberCore.BulkRename/Langs/generic.EmberCore.BulkRename.German_(de_DE)-Help.xml +++ b/Addons/generic.EmberCore.BulkRename/Langs/generic.EmberCore.BulkRename.German_(de_DE)-Help.xml @@ -1,11 +1,9 @@ - - Aktiviert dieses Modul - Aktiviert den eingebauten Mehrfach Umbenenner - Gib ein Schema zum automatischen Umbenennen von Verzeichnissen ein. - Gib ein Schema zum automatischen Umbenennen von Dateien ein. - Wenn aktiviert wird Ember automatisch Dateien und Verzeichnisse beim Multi-Scrapen umbenennen - Wenn aktiviert wird Ember automatisch Dateien und Verzeichnisse beim Einzel-Scrapen umbenennen - Aktiviert den Mehrfach Umbenenner + Aktiviert oder deaktiviert dieses Modul + Aktiviert den eingebauten Mehrfach Umbenenner. + Gib ein Schema zum automatischen Umbenennen von Verzeichnissen ein. + Gib ein Schema zum automatischen Umbenennen von Dateien ein. + Wenn aktiviert wird Ember automatisch Dateien und Verzeichnisse beim Multi-Scrapen umbenennen + Wenn aktiviert wird Ember automatisch Dateien und Verzeichnisse beim Einzel-Scrapen umbenennen + Aktiviert den Mehrfach Umbenenner - diff --git a/Addons/generic.EmberCore.BulkRename/Langs/generic.EmberCore.BulkRename.German_(de_DE).xml b/Addons/generic.EmberCore.BulkRename/Langs/generic.EmberCore.BulkRename.German_(de_DE).xml index 6eb31ce..d5e1ad3 100644 --- a/Addons/generic.EmberCore.BulkRename/Langs/generic.EmberCore.BulkRename.German_(de_DE).xml +++ b/Addons/generic.EmberCore.BulkRename/Langs/generic.EmberCore.BulkRename.German_(de_DE).xml @@ -1,9 +1,8 @@ - Umbenenner Benenne um... Bulk Renamer - Rename movies and files + Benenne Filme und Dateien um Stelle Liste zusammen... Breche Zusammenstellung ab... Benenne um @@ -12,27 +11,26 @@ Verzeichnis Schema (Mehrere Filme pro Verzeichnis) Zeige nur Elemente die umbenannt werden $T = Titel{0}$X. (Leerzeichen durch Punkt ersetzen){0}$D = Verzeichnis{0}$F = Dateiname{0}$O = OriginalTitel{0}$Y = Jahr{0}$R = Auflösung{0}$A = Audio{0}$S = Quelle{0}$M = MPAA{0}$B = Base Pfad{0}$L = List Titel{0}$E = Sort Titel{0}{{}} = Optional{0}$?aaa?bbb? = Ersetze aaa mit bbb{0}$- = Entferne das vorherige Zeichen wenn die nächste Variable keinen Wert hat{0}$+ = Entferne das nächste Zeichen wenn die vorherige Variable keinen Wert hat{0}$^ = Entferne das nächste vorherige Zeichen wenn die nächste Variable keinen Wert hat - Fehler beim umbenennen von:{0}{0}{1}{0}{0}Bitte prüfe, dass dieses Verzeichnis nicht geöffnet ist (z.B. im Explorer). - Fehler beim umbenennen - Fehler beim umbenennen von:{0}{0}{1}{0}{0}Bitte prüfe, dass diese Datei nicht geöffnet ist. - Fehler beim umbenennen + Fehler beim Umbenennen des Verzeichnisses:{0}{0}{1}{0}{0}Bitte prüfe, dass dieses Verzeichnis nicht geöffnet ist (z.B. im Explorer). + Verzeichnis konnte nicht umbenannt werden + Fehler beim Umbenennen der Datei:{0}{0}{1}{0}{0}Bitte prüfe, dass diese Datei nicht geöffnet ist. + Datei konnte nicht umbenannt werden Manuell Umben. Verzeichnis - Datei + Dateiname Titel: - Benenne um... + Benenne Verzeichn./Dateien um Automatisch Dateien beim Multi-Scrapen umbenennen Automatisch Dateien beim Einzel-Scrapen umbenennen - Standard Umbenennungs Schema - Datei Schema - Verzeichnis Schema + Standard Umbenenn.-Schema + Dateien Schema + Verzeichnisse Schema Bulk &Renamer - Benenne um + Automatisch Manuell Neues Verz. Neuer Dateiname - Umbenennungsmodul einschalten - Mehrfach Umbenenner einschalten + Umbenennungsmodul aktivieren + Mehrfach Umbenenner aktivieren - diff --git a/Addons/generic.EmberCore.BulkRename/Langs/generic.EmberCore.BulkRename.Italian_(it_IT)-Help.xml b/Addons/generic.EmberCore.BulkRename/Langs/generic.EmberCore.BulkRename.Italian_(it_IT)-Help.xml new file mode 100644 index 0000000..060113e --- /dev/null +++ b/Addons/generic.EmberCore.BulkRename/Langs/generic.EmberCore.BulkRename.Italian_(it_IT)-Help.xml @@ -0,0 +1,9 @@ + + Abilita o disabilita questo modulo. + Abilita o disabilita le funzioni di ridenominazione generica. + Inserisci uno schema di ridenominazione da essere usato automaticamente per le cartelle. + Inserisci uno schema di ridenominazione da essere usato automaticamente per i files. + Se abilitato, Ember rinominerà automaticamente i files e le cartelle durante l'analisi di più film alla volta. + Se abilitato, Ember rinominerà automaticamente i files e le cartelle durante l'analisi del film. + Abilita la funzione di ridenominazione di gruppo. + diff --git a/Addons/generic.EmberCore.BulkRename/Langs/generic.EmberCore.BulkRename.Italian_(it_IT).xml b/Addons/generic.EmberCore.BulkRename/Langs/generic.EmberCore.BulkRename.Italian_(it_IT).xml new file mode 100644 index 0000000..cf9a1bd --- /dev/null +++ b/Addons/generic.EmberCore.BulkRename/Langs/generic.EmberCore.BulkRename.Italian_(it_IT).xml @@ -0,0 +1,36 @@ + + Rinominatore + Rinomino... + Rinominatore di massa + Rinomina Films e Files + Compilazione Lista Film... + Cancellazione Compilazione... + Rinomina + Schema Cartella (per Film singolo nella Cartella) + Schema File + Schema Cartella (per Film Multipli nella Cartella) + Mostra solo i Films che saranno rinominati + $T = Title{0}$X. (Replace Space with .){0}$D = Directory{0}$F = File Name{0}$O = OriginalTitle{0}$Y = Year{0}$I = IMDB ID{0}$R = Resolution{0}$A = Audio{0}$S = Source{0}$M = MPAA{0}$B = Base Path{0}$L = List Title{0}{{}} = Optional{0}$?aaa?bbb? = Replace aaa with bbb{0}$- = Remove previous char if next pattern does not have a value{0}$+ = Remove next char if previous pattern does not have a value{0}$^ = Remove previous and next char if next pattern does not have a value + C'è stato un errore nel tentativo di rinominare una cartella:{0}{0}{1}{0}{0}Assicurati che la cartella o uno dei files contenuti non siano in uso da un altro programma (inclusa la navigazione da Windows Explorer) + Impossibile Rinominare la Cartella + C'è stato un errore nel tentativo di rinominare un file:{0}{0}{1}{0}{0}Assicurati che il file non sia in uso da un altro programma. + Impossibile Rinominare File + Rinomina Manualmente + Nome Cartella + Nome File + Titolo: + Sto Rinominando Cartelle/Files... + Rinomina Automaticamente i Files durante un'Analisi Multipla + Rinomina Automaticamente i Files durante un'Analisi Singola + Schemi predefiniti di ridenominazione + Schema Files + Schema Cartelle + &Rinominatore di massa + + Auto + Manuale + Nuovo Percorso + Nuovo Nome File + Abilita Modulo Generico di Ridenominazione + Abilita lo Strumento Rinominatore di Massa + diff --git a/Addons/generic.EmberCore.BulkRename/Langs/generic.EmberCore.BulkRename.Norwegian_(no_NO)-Help.xml b/Addons/generic.EmberCore.BulkRename/Langs/generic.EmberCore.BulkRename.Norwegian_(no_NO)-Help.xml new file mode 100644 index 0000000..4019e19 --- /dev/null +++ b/Addons/generic.EmberCore.BulkRename/Langs/generic.EmberCore.BulkRename.Norwegian_(no_NO)-Help.xml @@ -0,0 +1,9 @@ + + Slå på eller slå av denne modulen. + Slå generiske navnebytte-funksjoner av eller på. + Før inn en navneendring-stil som skal brukes for automatisk navneendring av mapper. + Før inn en navneendring-stil som skal brukes for automatisk navneendring av filer. + Hvis påslått, så vil EMM automatisk endre navn på filer og mapper under detaljhenting av flere filmer. + Hvis påslått, så vil EMM automatisk endre navn på filer og mapper under detaljhenting av én film. + Slå på massenavnebytteverktøyet. + diff --git a/Addons/generic.EmberCore.BulkRename/Langs/generic.EmberCore.BulkRename.Norwegian_(no_NO).xml b/Addons/generic.EmberCore.BulkRename/Langs/generic.EmberCore.BulkRename.Norwegian_(no_NO).xml new file mode 100644 index 0000000..0418c39 --- /dev/null +++ b/Addons/generic.EmberCore.BulkRename/Langs/generic.EmberCore.BulkRename.Norwegian_(no_NO).xml @@ -0,0 +1,36 @@ + + Navnendrer + Endrer navn... + Masse-endrer + Endre navn på filmer og filer + Kompilerer filmliste.... + Kansellerer kompilasjon... + Endre navn + Mappestil (for én film i mappe) + Fil-stil + Mappestil (for flere filmer i en mappe) + Hvis kun filmer som vil få endret navn + $T = Tittel{0}$X. (Bytt mellomrom .){0}$D = Mappe{0}$F = Filnavn{0}$O = OriginalTittel{0}$Y = År{0}$I = IMDB ID{0}$R = Oppløsning{0}$A = Audio{0}$S = Kilde{0}$M = MPAA{0}$B = Grunnleggende bane{0}$L = Listetittel{0}{{}} = Ikke nødvendig{0}$?aaa?bbb? = bytt aaa med bbb{0}$- = Fjern forrige symbol hvis neste stil ikke har en verdi{0}$+ = Fjern neste symbol hvis forrige stil ikke har en verdi{0}$^ = Fjern forrige og neste symbol hvis neste stil ikke har en verdi + En feil oppsto under forsøk på å endre navn på:{0}{0}{1}{0}{0}Vennligst vær sikker på at du ikke bruker denne mappen eller noen av dens filer i noen andre programmer. + Kan ikke endre navn på mappe + En feil oppstå under forsøk på å endre navn på:{0}{0}{1}{0}{0}Vennligst påse at du ikke bruker denne filen i et annet program. + Kan ikke endre navn på fil + Manuell navneendring + Mappenavn + Filnavn + Tittel: + Endrer navn på mappe/filer... + Automatisk endre navn på filer under multi-detaljhenting + Automatisk endre navn på filer under detaljhenting (singel) + Standard navneendring-stiler + Fil-stiler + Mappe-stiler + Masse- &Endrer + + Auto + Manuell + Ny bane + Nytt filnavn + Slå på generisk navneendrer-modul + Slå på massenavnebytteverktøyet. + diff --git a/Addons/generic.EmberCore.BulkRename/Langs/generic.EmberCore.BulkRename.Spanish_(es_ES)-Help.xml b/Addons/generic.EmberCore.BulkRename/Langs/generic.EmberCore.BulkRename.Spanish_(es_ES)-Help.xml new file mode 100644 index 0000000..cfe562c --- /dev/null +++ b/Addons/generic.EmberCore.BulkRename/Langs/generic.EmberCore.BulkRename.Spanish_(es_ES)-Help.xml @@ -0,0 +1,9 @@ + + Habilitar o deshabilitar este módulo. + Habilitar o deshabilitar las funciones de renombramiento genérico. + Digite un patrón de renombramiento para ser utilizado en renombramiento automático de folders. + Digite un patrón de renombramiento para ser utilizado en renombramiento automático de archivos. + Si está habilitado, Ember renombrará automáticamente archivos y folders cuando haga scraping de múltiples películas. + Si está habilitado, EMber renombrará automáticamente archivos y folders cuando haga scraping de una sola película. + Habilitar la herramienta de renombramiento en masa. + diff --git a/Addons/generic.EmberCore.BulkRename/Langs/generic.EmberCore.BulkRename.Spanish_(es_ES).xml b/Addons/generic.EmberCore.BulkRename/Langs/generic.EmberCore.BulkRename.Spanish_(es_ES).xml new file mode 100644 index 0000000..9cf26aa --- /dev/null +++ b/Addons/generic.EmberCore.BulkRename/Langs/generic.EmberCore.BulkRename.Spanish_(es_ES).xml @@ -0,0 +1,36 @@ + + Renombrador + Renombrando... + Renombrador en Masa + Renombrar películas y archivos + Compilando lista de Películas... + Cancelando la Compilación... + Renombrar + Patrón de Folder (para una Sola película en el Folder) + Patrón de Archivo + Patrón de Folder (para Múltiples películas en el Folder) + Mostrar Sólo Películas Que Serán Renombradas + $T = Título{0}$X. (Reemplazar espacio con .){0}$D = Directorio{0}$F = Nombre de Archivo{0}$O = TítuloOriginal{0}$Y = Año{0}$I = IMDB ID{0}$R = Resolución{0}$A = Audio{0}$S = Fuente{0}$M = MPAA{0}$B = DIrección Base{0}$L = Título de Lista{0}{{}} = Opcional{0}$?aaa?bbb? = Reemplazar aaa con bbb{0}$- = Remover caracter previo si el próximo patrón no tiene un valor{0}$+ = Remove el siguiente caracter si el patrón previo no tiene un valor{0}$^ = Remover los caracteres previo y siguiente si el próximo patrón no tiene un valor + Ha ocurrido un error al intentar renombrar el folder:{0}{0}{1}{0}{0}Por favor asegúrese de no estar accediendo a este folder o a ninguno de sus archivos desde otro programa (incluyendo visualizando a través del Windows Explorer + No fue posible Renombrar el Folder + Ha ocurrido un error al intentar renombrar el archivo:{0}{0}{1}{0}{0}Por favor asegúrese de no estar accediendo a este archivo desde otro programa. + No fue posible Renombrar el Archivo + Renombramiento Manual + Nombre de Folder + Nombre de Archivo + Título: + Renombrando Folder/Archivos... + Renombrar Archivos automáticamente durante Scrape Múltiple + Renombrar Archivos automáticamente durante Scrape Unitario + Patrones de Renombramiento por Defecto + Patrón de Archivos + Patrón de Folders + &Renombrador en Masa + + Automático + Manual + Nueva Dirección + Nuevo Nombre de Archivo + Habilitar Módulo de Renombramiento Genérico + Hbilitar Herramienta de Renombramiento en Masa + diff --git a/Addons/generic.EmberCore.BulkRename/Module.BulkRenamer.vb b/Addons/generic.EmberCore.BulkRename/Module.BulkRenamer.vb index 4abf957..43b9d8b 100644 --- a/Addons/generic.EmberCore.BulkRename/Module.BulkRenamer.vb +++ b/Addons/generic.EmberCore.BulkRename/Module.BulkRenamer.vb @@ -158,7 +158,7 @@ Public Class BulkRenamerModule tsi = DirectCast(ModulesManager.Instance.RuntimeObjects.TrayMenu.Items("cmnuTrayIconTools"), ToolStripMenuItem) tsi.DropDownItems.Add(MyTrayMenu) - ctxMyMenu.Text = Master.eLang.GetString(27, "Rename") + ctxMyMenu.Text = Master.eLang.GetString(6, "Rename") ctxMyMenu.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.R), System.Windows.Forms.Keys) ctxMySubMenu1.Text = Master.eLang.GetString(28, "Auto") ctxMySubMenu2.Text = Master.eLang.GetString(29, "Manual") diff --git a/Addons/generic.EmberCore.BulkRename/My Project/AssemblyInfo.vb b/Addons/generic.EmberCore.BulkRename/My Project/AssemblyInfo.vb index 629698f..88e84c0 100644 --- a/Addons/generic.EmberCore.BulkRename/My Project/AssemblyInfo.vb +++ b/Addons/generic.EmberCore.BulkRename/My Project/AssemblyInfo.vb @@ -9,10 +9,10 @@ Imports System.Runtime.InteropServices ' Review the values of the assembly attributes - + - + @@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices ' by using the '*' as shown below: ' - - + + diff --git a/Addons/generic.EmberCore.BulkRename/clsAPIRenamer.vb b/Addons/generic.EmberCore.BulkRename/clsAPIRenamer.vb index aa103f3..0d46dc4 100644 --- a/Addons/generic.EmberCore.BulkRename/clsAPIRenamer.vb +++ b/Addons/generic.EmberCore.BulkRename/clsAPIRenamer.vb @@ -218,15 +218,7 @@ Public Class FileFolderRenamer pattern = String.Concat(pattern, strmore) nextC = pattern.IndexOf("$?") End While - pattern = pattern.Replace(":", " -") - pattern = pattern.Replace("/", String.Empty) - 'pattern = pattern.Replace("\", String.Empty) - pattern = pattern.Replace("|", String.Empty) - pattern = pattern.Replace("<", String.Empty) - pattern = pattern.Replace(">", String.Empty) - pattern = pattern.Replace("?", String.Empty) - pattern = pattern.Replace("*", String.Empty) - pattern = pattern.Replace(" ", " ") + pattern = StringUtils.CleanFileName(pattern) For Each Invalid As Char In Path.GetInvalidPathChars pattern = pattern.Replace(Invalid, String.Empty) @@ -275,6 +267,7 @@ Public Class FileFolderRenamer MovieFile.Director = _tmpMovie.Movie.Director MovieFile.FileSource = _tmpMovie.FileSource MovieFile.Country = _tmpMovie.Movie.Country + MovieFile.IMDBID = _tmpMovie.Movie.IMDBID Dim mFolders As New List(Of String) Using SQLNewcommand As SQLite.SQLiteCommand = Master.DB.MediaDBConn.CreateCommand() SQLNewcommand.CommandText = String.Concat("SELECT Path FROM Sources;") @@ -324,12 +317,18 @@ Public Class FileFolderRenamer MovieFile.Path = If(MovieFile.Path.StartsWith(Path.DirectorySeparatorChar), MovieFile.Path.Substring(1), MovieFile.Path) If Not MovieFile.IsVideo_TS AndAlso Not MovieFile.IsBDMV Then - MovieFile.FileName = StringUtils.CleanStackingMarkers(Path.GetFileNameWithoutExtension(_tmpMovie.Filename)) - Dim stackMark As String = Path.GetFileNameWithoutExtension(_tmpMovie.Filename).Replace(MovieFile.FileName, String.Empty).ToLower - If Not stackMark = String.Empty AndAlso _tmpMovie.Movie.Title.ToLower.EndsWith(stackMark) Then - MovieFile.FileName = Path.GetFileNameWithoutExtension(_tmpMovie.Filename) + If Path.GetFileName(_tmpMovie.Filename.ToLower) = "video_ts.ifo" Then + MovieFile.FileName = "VIDEO_TS" + MovieFile.NewFileName = MovieFile.FileName + Else + MovieFile.FileName = StringUtils.CleanStackingMarkers(Path.GetFileNameWithoutExtension(_tmpMovie.Filename)) + Dim stackMark As String = Path.GetFileNameWithoutExtension(_tmpMovie.Filename).Replace(MovieFile.FileName, String.Empty).ToLower + If Not stackMark = String.Empty AndAlso _tmpMovie.Movie.Title.ToLower.EndsWith(stackMark) Then + MovieFile.FileName = Path.GetFileNameWithoutExtension(_tmpMovie.Filename) + End If + MovieFile.NewFileName = ProccessPattern(MovieFile, filePattern).Trim + End If - MovieFile.NewFileName = ProccessPattern(MovieFile, filePattern).Trim ElseIf MovieFile.IsBDMV Then MovieFile.FileName = String.Concat("BDMV", Path.DirectorySeparatorChar, "STREAM") MovieFile.NewFileName = MovieFile.FileName @@ -410,13 +409,13 @@ Public Class FileFolderRenamer Dim srcDir As String = Path.Combine(f.BasePath, f.Path) Dim destDir As String = Path.Combine(f.BasePath, f.NewPath) - If f.IsVideo_TS Then - srcDir = Path.Combine(srcDir, "VIDEO_TS") - destDir = Path.Combine(destDir, "VIDEO_TS") - ElseIf f.IsBDMV Then - srcDir = Path.Combine(srcDir, String.Concat("BDMV", Path.DirectorySeparatorChar, "STREAM")) - destDir = Path.Combine(destDir, String.Concat("BDMV", Path.DirectorySeparatorChar, "STREAM")) - End If + 'If f.IsVideo_TS Then + ' srcDir = Path.Combine(srcDir, "VIDEO_TS") + ' destDir = Path.Combine(destDir, "VIDEO_TS") + 'ElseIf f.IsBDMV Then + ' srcDir = Path.Combine(srcDir, String.Concat("BDMV", Path.DirectorySeparatorChar, "STREAM")) + ' destDir = Path.Combine(destDir, String.Concat("BDMV", Path.DirectorySeparatorChar, "STREAM")) + 'End If If Not f.ID = -1 Then _movieDB = Master.DB.LoadMovieFromDB(f.ID) @@ -503,7 +502,7 @@ Public Class FileFolderRenamer End If If DoDB AndAlso DoUpdate Then - UpdateFaSPaths(_movieDB, destDir, f.FileName, f.NewFileName) + UpdateFaSPaths(_movieDB, srcDir, destDir, f.FileName, f.NewFileName) Master.DB.SaveMovieToDB(_movieDB, False) If Not f.IsSingle Then Dim fileCount As Integer = 0 @@ -595,7 +594,11 @@ Public Class FileFolderRenamer ElseIf f.IsBDMV Then f.NewFileName = String.Concat("BDMV", Path.DirectorySeparatorChar, "STREAM") Else - f.NewFileName = ProccessPattern(f, filePattern).Trim + If Path.GetFileName(f.FileName.ToLower) = "video_ts" Then + f.NewFileName = "VIDEO_TS" + Else + f.NewFileName = ProccessPattern(f, filePattern).Trim + End If End If If HaveBase(localFolderPattern) Then @@ -665,14 +668,14 @@ Public Class FileFolderRenamer Dim srcDir As String = Path.Combine(_frename.BasePath, _frename.Path) Dim destDir As String = Path.Combine(_frename.BasePath, _frename.NewPath) - If _frename.IsVideo_TS Then - srcDir = Path.Combine(srcDir, "VIDEO_TS") - destDir = Path.Combine(destDir, "VIDEO_TS") + 'If _frename.IsVideo_TS Then + ' srcDir = Path.Combine(srcDir, "VIDEO_TS") + ' destDir = Path.Combine(destDir, "VIDEO_TS") - ElseIf _frename.IsBDMV Then - srcDir = Path.Combine(srcDir, String.Concat("BDMV", Path.DirectorySeparatorChar, "STREAM")) - destDir = Path.Combine(destDir, String.Concat("BDMV", Path.DirectorySeparatorChar, "STREAM")) - End If + 'ElseIf _frename.IsBDMV Then + ' srcDir = Path.Combine(srcDir, String.Concat("BDMV", Path.DirectorySeparatorChar, "STREAM")) + ' destDir = Path.Combine(destDir, String.Concat("BDMV", Path.DirectorySeparatorChar, "STREAM")) + 'End If 'Rename Directory If Not srcDir = destDir Then @@ -744,7 +747,7 @@ Public Class FileFolderRenamer End If End If - UpdateFaSPaths(_movie, destDir, _frename.FileName, _frename.NewFileName) + UpdateFaSPaths(_movie, srcDir, destDir, _frename.FileName, _frename.NewFileName) Master.DB.SaveMovieToDB(_movie, False, BatchMode, toNfo) If Not _frename.IsSingle Then Dim fileCount As Integer = 0 @@ -775,14 +778,14 @@ Public Class FileFolderRenamer End Try End Sub - Private Shared Sub UpdateFaSPaths(ByRef _DBM As Structures.DBMovie, ByVal newPath As String, ByVal oldFile As String, ByVal newFile As String) - If Not String.IsNullOrEmpty(_DBM.FanartPath) Then _DBM.FanartPath = Path.Combine(newPath, Path.GetFileName(_DBM.FanartPath).Replace(oldFile, newFile)) - If Not String.IsNullOrEmpty(_DBM.ExtraPath) Then _DBM.ExtraPath = Path.Combine(newPath, Path.GetFileName(_DBM.ExtraPath).Replace(oldFile, newFile)) - If Not String.IsNullOrEmpty(_DBM.Filename) Then _DBM.Filename = Path.Combine(newPath, Path.GetFileName(_DBM.Filename).Replace(oldFile, newFile)) - If Not String.IsNullOrEmpty(_DBM.NfoPath) Then _DBM.NfoPath = Path.Combine(newPath, Path.GetFileName(_DBM.NfoPath).Replace(oldFile, newFile)) - If Not String.IsNullOrEmpty(_DBM.PosterPath) Then _DBM.PosterPath = Path.Combine(newPath, Path.GetFileName(_DBM.PosterPath).Replace(oldFile, newFile)) - If Not String.IsNullOrEmpty(_DBM.SubPath) Then _DBM.SubPath = Path.Combine(newPath, Path.GetFileName(_DBM.SubPath).Replace(oldFile, newFile)) - If Not String.IsNullOrEmpty(_DBM.TrailerPath) Then _DBM.TrailerPath = Path.Combine(newPath, Path.GetFileName(_DBM.TrailerPath).Replace(oldFile, newFile)) + Private Shared Sub UpdateFaSPaths(ByRef _DBM As Structures.DBMovie, ByVal oldPath As String, ByVal newPath As String, ByVal oldFile As String, ByVal newFile As String) + If Not String.IsNullOrEmpty(_DBM.FanartPath) Then _DBM.FanartPath = Path.Combine(Directory.GetParent(_DBM.FanartPath).FullName.Replace(oldPath, newPath), Path.GetFileName(_DBM.FanartPath).Replace(oldFile, newFile)) + If Not String.IsNullOrEmpty(_DBM.ExtraPath) Then _DBM.ExtraPath = Path.Combine(Directory.GetParent(_DBM.ExtraPath).FullName.Replace(oldPath, newPath), Path.GetFileName(_DBM.ExtraPath).Replace(oldFile, newFile)) + If Not String.IsNullOrEmpty(_DBM.Filename) Then _DBM.Filename = Path.Combine(Directory.GetParent(_DBM.Filename).FullName.Replace(oldPath, newPath), Path.GetFileName(_DBM.Filename).Replace(oldFile, newFile)) + If Not String.IsNullOrEmpty(_DBM.NfoPath) Then _DBM.NfoPath = Path.Combine(Directory.GetParent(_DBM.NfoPath).FullName.Replace(oldPath, newPath), Path.GetFileName(_DBM.NfoPath).Replace(oldFile, newFile)) + If Not String.IsNullOrEmpty(_DBM.PosterPath) Then _DBM.PosterPath = Path.Combine(Directory.GetParent(_DBM.PosterPath).FullName.Replace(oldPath, newPath), Path.GetFileName(_DBM.PosterPath).Replace(oldFile, newFile)) + If Not String.IsNullOrEmpty(_DBM.SubPath) Then _DBM.SubPath = Path.Combine(Directory.GetParent(_DBM.SubPath).FullName.Replace(oldPath, newPath), Path.GetFileName(_DBM.SubPath).Replace(oldFile, newFile)) + If Not String.IsNullOrEmpty(_DBM.TrailerPath) Then _DBM.TrailerPath = Path.Combine(Directory.GetParent(_DBM.TrailerPath).FullName.Replace(oldPath, newPath), Path.GetFileName(_DBM.TrailerPath).Replace(oldFile, newFile)) End Sub #End Region 'Methods diff --git a/Addons/generic.EmberCore.BulkRename/dlgBulkRename.vb b/Addons/generic.EmberCore.BulkRename/dlgBulkRename.vb index 22bc166..e94f456 100644 --- a/Addons/generic.EmberCore.BulkRename/dlgBulkRename.vb +++ b/Addons/generic.EmberCore.BulkRename/dlgBulkRename.vb @@ -599,8 +599,8 @@ Public Class dlgBulkRenamer End If Dim s As String = String.Format(Master.eLang.GetString(11, "$1 = First Letter of the Title{0}$A = Audio{0}$B = Base Path{0}$C = Director{0}$D = Directory{0}$E = Sort Title{0}$F = File Name{0}$G = Genre (Follow with a space, dot or hyphen to change separator){0}$I = IMDB ID{0}$L = List Title{0}$M = MPAA{0}$O = OriginalTitle{0}$R = Resolution{0}$S = Source{0}$T = Title{0}$Y = Year{0}$X. (Replace Space with .){0}{{}} = Optional{0}$?aaa?bbb? = Replace aaa with bbb{0}$- = Remove previous char if next pattern does not have a value{0}$+ = Remove next char if previous pattern does not have a value{0}$^ = Remove previous and next char if next pattern does not have a value"), vbNewLine) dHelpTips.lblTips.Text = s - dHelpTips.Width = dHelpTips.lblTips.Width + 5 - dHelpTips.Height = dHelpTips.lblTips.Height + 35 + dHelpTips.Width = dHelpTips.lblTips.Width + 20 + dHelpTips.Height = dHelpTips.lblTips.Height + 45 dHelpTips.Top = Me.Top + 10 dHelpTips.Left = Me.Right - dHelpTips.Width - 10 If dHelpTips.Visible Then diff --git a/Addons/generic.EmberCore.BulkRename/dlgRenameManual.vb b/Addons/generic.EmberCore.BulkRename/dlgRenameManual.vb index 0dd1413..ccaae95 100644 --- a/Addons/generic.EmberCore.BulkRename/dlgRenameManual.vb +++ b/Addons/generic.EmberCore.BulkRename/dlgRenameManual.vb @@ -48,18 +48,34 @@ Public Class dlgRenameManual Private Sub dlgRenameManual_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.SetUp() - Dim FileName = Path.GetFileNameWithoutExtension(StringUtils.CleanStackingMarkers(Master.currMovie.Filename)) - Dim stackMark As String = Path.GetFileNameWithoutExtension(Master.currMovie.Filename).Replace(FileName, String.Empty).ToLower - If Not stackMark = String.Empty AndAlso Master.currMovie.Movie.Title.ToLower.EndsWith(stackMark) Then - FileName = Path.GetFileNameWithoutExtension(Master.currMovie.Filename) - End If - If Master.currMovie.isSingle Then - txtFolder.Text = Directory.GetParent(Master.currMovie.Filename).Name + If FileUtils.Common.isVideoTS(Master.currMovie.Filename) Then + txtFile.Text = "$F" + txtFile.Visible = False + txtFolder.Text = Directory.GetParent(Directory.GetParent(Master.currMovie.Filename).FullName).Name + ElseIf FileUtils.Common.isBDRip(Master.currMovie.Filename) Then + txtFile.Text = "$F" + txtFile.Visible = False + txtFolder.Text = Directory.GetParent(Directory.GetParent(Directory.GetParent(Master.currMovie.Filename).FullName).FullName).Name Else - txtFolder.Text = "$D" - txtFolder.Visible = False + Dim FileName = Path.GetFileNameWithoutExtension(StringUtils.CleanStackingMarkers(Master.currMovie.Filename)) + Dim stackMark As String = Path.GetFileNameWithoutExtension(Master.currMovie.Filename).Replace(FileName, String.Empty).ToLower + If Not FileName.ToLower = "video_ts" Then + If Not stackMark = String.Empty AndAlso Master.currMovie.Movie.Title.ToLower.EndsWith(stackMark) Then + FileName = Path.GetFileNameWithoutExtension(Master.currMovie.Filename) + End If + If Master.currMovie.isSingle Then + txtFolder.Text = Directory.GetParent(Master.currMovie.Filename).Name + Else + txtFolder.Text = "$D" + txtFolder.Visible = False + End If + txtFile.Text = FileName + Else + txtFile.Text = "$F" + txtFile.Visible = False + txtFolder.Text = Directory.GetParent(Master.currMovie.Filename).Name + End If End If - txtFile.Text = FileName End Sub Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click diff --git a/Addons/generic.EmberCore.BulkRename/generic.EmberCore.BulkRename.vbproj b/Addons/generic.EmberCore.BulkRename/generic.EmberCore.BulkRename.vbproj index e629cfc..bab1150 100644 --- a/Addons/generic.EmberCore.BulkRename/generic.EmberCore.BulkRename.vbproj +++ b/Addons/generic.EmberCore.BulkRename/generic.EmberCore.BulkRename.vbproj @@ -198,6 +198,15 @@ + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + PreserveNewest @@ -210,7 +219,22 @@ PreserveNewest - + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + PreserveNewest diff --git a/Addons/generic.EmberCore.Extractor/Langs/generic.EmberCore.Extractor.Debug_(db_DB).xml b/Addons/generic.EmberCore.Extractor/Langs/generic.EmberCore.Extractor.Debug_(db_DB).xml new file mode 100644 index 0000000..bbae9e6 --- /dev/null +++ b/Addons/generic.EmberCore.Extractor/Langs/generic.EmberCore.Extractor.Debug_(db_DB).xml @@ -0,0 +1,902 @@ + + extrct1 + extrct2 + extrct3 + extrct4 + extrct5 + extrct6 + extrct7 + extrct8 + extrct9 + extrct10 + extrct11 + extrct12 + extrct13 + extrct14 + extrct15 + extrct16 + extrct17 + extrct18 + extrct19 + extrct20 + extrct21 + extrct22 + extrct23 + extrct24 + extrct25 + extrct26 + extrct27 + extrct28 + extrct29 + extrct30 + extrct31 + extrct32 + extrct33 + extrct34 + extrct35 + extrct36 + extrct37 + extrct38 + extrct39 + extrct40 + extrct41 + extrct42 + extrct43 + extrct44 + extrct45 + extrct46 + extrct47 + extrct48 + extrct49 + extrct50 + extrct51 + extrct52 + extrct53 + extrct54 + extrct55 + extrct56 + extrct57 + extrct58 + extrct59 + extrct60 + extrct61 + extrct62 + extrct63 + extrct64 + extrct65 + extrct66 + extrct67 + extrct68 + extrct69 + extrct70 + extrct71 + extrct72 + extrct73 + extrct74 + extrct75 + extrct76 + extrct77 + extrct78 + extrct79 + extrct80 + extrct81 + extrct82 + extrct83 + extrct84 + extrct85 + extrct86 + extrct87 + extrct88 + extrct89 + extrct90 + extrct91 + extrct92 + extrct93 + extrct94 + extrct95 + extrct96 + extrct97 + extrct98 + extrct99 + extrct100 + extrct101 + extrct102 + extrct103 + extrct104 + extrct105 + extrct106 + extrct107 + extrct108 + extrct109 + extrct110 + extrct111 + extrct112 + extrct113 + extrct114 + extrct115 + extrct116 + extrct117 + extrct118 + extrct119 + extrct120 + extrct121 + extrct122 + extrct123 + extrct124 + extrct125 + extrct126 + extrct127 + extrct128 + extrct129 + extrct130 + extrct131 + extrct132 + extrct133 + extrct134 + extrct135 + extrct136 + extrct137 + extrct138 + extrct139 + extrct140 + extrct141 + extrct142 + extrct143 + extrct144 + extrct145 + extrct146 + extrct147 + extrct148 + extrct149 + extrct150 + extrct151 + extrct152 + extrct153 + extrct154 + extrct155 + extrct156 + extrct157 + extrct158 + extrct159 + extrct160 + extrct161 + extrct162 + extrct163 + extrct164 + extrct165 + extrct166 + extrct167 + extrct168 + extrct169 + extrct170 + extrct171 + extrct172 + extrct173 + extrct174 + extrct175 + extrct176 + extrct177 + extrct178 + extrct179 + extrct180 + extrct181 + extrct182 + extrct183 + extrct184 + extrct185 + extrct186 + extrct187 + extrct188 + extrct189 + extrct190 + extrct191 + extrct192 + extrct193 + extrct194 + extrct195 + extrct196 + extrct197 + extrct198 + extrct199 + extrct200 + extrct201 + extrct202 + extrct203 + extrct204 + extrct205 + extrct206 + extrct207 + extrct208 + extrct209 + extrct210 + extrct211 + extrct212 + extrct213 + extrct214 + extrct215 + extrct216 + extrct217 + extrct218 + extrct219 + extrct220 + extrct221 + extrct222 + extrct223 + extrct224 + extrct225 + extrct226 + extrct227 + extrct228 + extrct229 + extrct230 + extrct231 + extrct232 + extrct233 + extrct234 + extrct235 + extrct236 + extrct237 + extrct238 + extrct239 + extrct240 + extrct241 + extrct242 + extrct243 + extrct244 + extrct245 + extrct246 + extrct247 + extrct248 + extrct249 + extrct250 + extrct251 + extrct252 + extrct253 + extrct254 + extrct255 + extrct256 + extrct257 + extrct258 + extrct259 + extrct260 + extrct261 + extrct262 + extrct263 + extrct264 + extrct265 + extrct266 + extrct267 + extrct268 + extrct269 + extrct270 + extrct271 + extrct272 + extrct273 + extrct274 + extrct275 + extrct276 + extrct277 + extrct278 + extrct279 + extrct280 + extrct281 + extrct282 + extrct283 + extrct284 + extrct285 + extrct286 + extrct287 + extrct288 + extrct289 + extrct290 + extrct291 + extrct292 + extrct293 + extrct294 + extrct295 + extrct296 + extrct297 + extrct298 + extrct299 + extrct300 + extrct301 + extrct302 + extrct303 + extrct304 + extrct305 + extrct306 + extrct307 + extrct308 + extrct309 + extrct310 + extrct311 + extrct312 + extrct313 + extrct314 + extrct315 + extrct316 + extrct317 + extrct318 + extrct319 + extrct320 + extrct321 + extrct322 + extrct323 + extrct324 + extrct325 + extrct326 + extrct327 + extrct328 + extrct329 + extrct330 + extrct331 + extrct332 + extrct333 + extrct334 + extrct335 + extrct336 + extrct337 + extrct338 + extrct339 + extrct340 + extrct341 + extrct342 + extrct343 + extrct344 + extrct345 + extrct346 + extrct347 + extrct348 + extrct349 + extrct350 + extrct351 + extrct352 + extrct353 + extrct354 + extrct355 + extrct356 + extrct357 + extrct358 + extrct359 + extrct360 + extrct361 + extrct362 + extrct363 + extrct364 + extrct365 + extrct366 + extrct367 + extrct368 + extrct369 + extrct370 + extrct371 + extrct372 + extrct373 + extrct374 + extrct375 + extrct376 + extrct377 + extrct378 + extrct379 + extrct380 + extrct381 + extrct382 + extrct383 + extrct384 + extrct385 + extrct386 + extrct387 + extrct388 + extrct389 + extrct390 + extrct391 + extrct392 + extrct393 + extrct394 + extrct395 + extrct396 + extrct397 + extrct398 + extrct399 + extrct400 + extrct401 + extrct402 + extrct403 + extrct404 + extrct405 + extrct406 + extrct407 + extrct408 + extrct409 + extrct410 + extrct411 + extrct412 + extrct413 + extrct414 + extrct415 + extrct416 + extrct417 + extrct418 + extrct419 + extrct420 + extrct421 + extrct422 + extrct423 + extrct424 + extrct425 + extrct426 + extrct427 + extrct428 + extrct429 + extrct430 + extrct431 + extrct432 + extrct433 + extrct434 + extrct435 + extrct436 + extrct437 + extrct438 + extrct439 + extrct440 + extrct441 + extrct442 + extrct443 + extrct444 + extrct445 + extrct446 + extrct447 + extrct448 + extrct449 + extrct450 + extrct451 + extrct452 + extrct453 + extrct454 + extrct455 + extrct456 + extrct457 + extrct458 + extrct459 + extrct460 + extrct461 + extrct462 + extrct463 + extrct464 + extrct465 + extrct466 + extrct467 + extrct468 + extrct469 + extrct470 + extrct471 + extrct472 + extrct473 + extrct474 + extrct475 + extrct476 + extrct477 + extrct478 + extrct479 + extrct480 + extrct481 + extrct482 + extrct483 + extrct484 + extrct485 + extrct486 + extrct487 + extrct488 + extrct489 + extrct490 + extrct491 + extrct492 + extrct493 + extrct494 + extrct495 + extrct496 + extrct497 + extrct498 + extrct499 + extrct500 + extrct501 + extrct502 + extrct503 + extrct504 + extrct505 + extrct506 + extrct507 + extrct508 + extrct509 + extrct510 + extrct511 + extrct512 + extrct513 + extrct514 + extrct515 + extrct516 + extrct517 + extrct518 + extrct519 + extrct520 + extrct521 + extrct522 + extrct523 + extrct524 + extrct525 + extrct526 + extrct527 + extrct528 + extrct529 + extrct530 + extrct531 + extrct532 + extrct533 + extrct534 + extrct535 + extrct536 + extrct537 + extrct538 + extrct539 + extrct540 + extrct541 + extrct542 + extrct543 + extrct544 + extrct545 + extrct546 + extrct547 + extrct548 + extrct549 + extrct550 + extrct551 + extrct552 + extrct553 + extrct554 + extrct555 + extrct556 + extrct557 + extrct558 + extrct559 + extrct560 + extrct561 + extrct562 + extrct563 + extrct564 + extrct565 + extrct566 + extrct567 + extrct568 + extrct569 + extrct570 + extrct571 + extrct572 + extrct573 + extrct574 + extrct575 + extrct576 + extrct577 + extrct578 + extrct579 + extrct580 + extrct581 + extrct582 + extrct583 + extrct584 + extrct585 + extrct586 + extrct587 + extrct588 + extrct589 + extrct590 + extrct591 + extrct592 + extrct593 + extrct594 + extrct595 + extrct596 + extrct597 + extrct598 + extrct599 + extrct600 + extrct601 + extrct602 + extrct603 + extrct604 + extrct605 + extrct606 + extrct607 + extrct608 + extrct609 + extrct610 + extrct611 + extrct612 + extrct613 + extrct614 + extrct615 + extrct616 + extrct617 + extrct618 + extrct619 + extrct620 + extrct621 + extrct622 + extrct623 + extrct624 + extrct625 + extrct626 + extrct627 + extrct628 + extrct629 + extrct630 + extrct631 + extrct632 + extrct633 + extrct634 + extrct635 + extrct636 + extrct637 + extrct638 + extrct639 + extrct640 + extrct641 + extrct642 + extrct643 + extrct644 + extrct645 + extrct646 + extrct647 + extrct648 + extrct649 + extrct650 + extrct651 + extrct652 + extrct653 + extrct654 + extrct655 + extrct656 + extrct657 + extrct658 + extrct659 + extrct660 + extrct661 + extrct662 + extrct663 + extrct664 + extrct665 + extrct666 + extrct667 + extrct668 + extrct669 + extrct670 + extrct671 + extrct672 + extrct673 + extrct674 + extrct675 + extrct676 + extrct677 + extrct678 + extrct679 + extrct680 + extrct681 + extrct682 + extrct683 + extrct684 + extrct685 + extrct686 + extrct687 + extrct688 + extrct689 + extrct690 + extrct691 + extrct692 + extrct693 + extrct694 + extrct695 + extrct696 + extrct697 + extrct698 + extrct699 + extrct700 + extrct701 + extrct702 + extrct703 + extrct704 + extrct705 + extrct706 + extrct707 + extrct708 + extrct709 + extrct710 + extrct711 + extrct712 + extrct713 + extrct714 + extrct715 + extrct716 + extrct717 + extrct718 + extrct719 + extrct720 + extrct721 + extrct722 + extrct723 + extrct724 + extrct725 + extrct726 + extrct727 + extrct728 + extrct729 + extrct730 + extrct731 + extrct732 + extrct733 + extrct734 + extrct735 + extrct736 + extrct737 + extrct738 + extrct739 + extrct740 + extrct741 + extrct742 + extrct743 + extrct744 + extrct745 + extrct746 + extrct747 + extrct748 + extrct749 + extrct750 + extrct751 + extrct752 + extrct753 + extrct754 + extrct755 + extrct756 + extrct757 + extrct758 + extrct759 + extrct760 + extrct761 + extrct762 + extrct763 + extrct764 + extrct765 + extrct766 + extrct767 + extrct768 + extrct769 + extrct770 + extrct771 + extrct772 + extrct773 + extrct774 + extrct775 + extrct776 + extrct777 + extrct778 + extrct779 + extrct780 + extrct781 + extrct782 + extrct783 + extrct784 + extrct785 + extrct786 + extrct787 + extrct788 + extrct789 + extrct790 + extrct791 + extrct792 + extrct793 + extrct794 + extrct795 + extrct796 + extrct797 + extrct798 + extrct799 + extrct800 + extrct801 + extrct802 + extrct803 + extrct804 + extrct805 + extrct806 + extrct807 + extrct808 + extrct809 + extrct810 + extrct811 + extrct812 + extrct813 + extrct814 + extrct815 + extrct816 + extrct817 + extrct818 + extrct819 + extrct820 + extrct821 + extrct822 + extrct823 + extrct824 + extrct825 + extrct826 + extrct827 + extrct828 + extrct829 + extrct830 + extrct831 + extrct832 + extrct833 + extrct834 + extrct835 + extrct836 + extrct837 + extrct838 + extrct839 + extrct840 + extrct841 + extrct842 + extrct843 + extrct844 + extrct845 + extrct846 + extrct847 + extrct848 + extrct849 + extrct850 + extrct851 + extrct852 + extrct853 + extrct854 + extrct855 + extrct856 + extrct857 + extrct858 + extrct859 + extrct860 + extrct861 + extrct862 + extrct863 + extrct864 + extrct865 + extrct866 + extrct867 + extrct868 + extrct869 + extrct870 + extrct871 + extrct872 + extrct873 + extrct874 + extrct875 + extrct876 + extrct877 + extrct878 + extrct879 + extrct880 + extrct881 + extrct882 + extrct883 + extrct884 + extrct885 + extrct886 + extrct887 + extrct888 + extrct889 + extrct890 + extrct891 + extrct892 + extrct893 + extrct894 + extrct895 + extrct896 + extrct897 + extrct898 + extrct899 + extrct900 + \ No newline at end of file diff --git a/Addons/generic.EmberCore.Extractor/Langs/generic.EmberCore.Extractor.Dutch_(nl_NL).xml b/Addons/generic.EmberCore.Extractor/Langs/generic.EmberCore.Extractor.Dutch_(nl_NL).xml new file mode 100644 index 0000000..05a09f1 --- /dev/null +++ b/Addons/generic.EmberCore.Extractor/Langs/generic.EmberCore.Extractor.Dutch_(nl_NL).xml @@ -0,0 +1,11 @@ + + Beeld extractor + auto-genereer + # te creëren + auto-genereer + Bewaar extrathumb + Bewaren frame... + Laad film + Laad aflevering + Bewaar als poster + diff --git a/Addons/generic.EmberCore.Extractor/Langs/generic.EmberCore.Extractor.English_(en_US).xml b/Addons/generic.EmberCore.Extractor/Langs/generic.EmberCore.Extractor.English_(en_US).xml index ef6503e..4dd7737 100644 --- a/Addons/generic.EmberCore.Extractor/Langs/generic.EmberCore.Extractor.English_(en_US).xml +++ b/Addons/generic.EmberCore.Extractor/Langs/generic.EmberCore.Extractor.English_(en_US).xml @@ -1,12 +1,11 @@ - - Frame Extractor - Auto-Generate - # to Create: - Auto-Gen - Save Extrathumb - Extracting Frame... - Load Movie - Load Episode - Save as Poster - \ No newline at end of file + Frame Extractor + Auto-Generate + # to Create: + Auto-Gen + Save Extrathumb + Extracting Frame... + Load Movie + Load Episode + Save as Poster + diff --git a/Addons/generic.EmberCore.Extractor/Langs/generic.EmberCore.Extractor.German_(de_DE).xml b/Addons/generic.EmberCore.Extractor/Langs/generic.EmberCore.Extractor.German_(de_DE).xml index 5ddfb54..bd99d45 100644 --- a/Addons/generic.EmberCore.Extractor/Langs/generic.EmberCore.Extractor.German_(de_DE).xml +++ b/Addons/generic.EmberCore.Extractor/Langs/generic.EmberCore.Extractor.German_(de_DE).xml @@ -1,12 +1,11 @@ - - Auto-generieren - # Anzahl - Auto-Gen - Extrathumb speichern - Extrahiere Frame... - Film laden - Episode laden - Als Poster speichern + Frame Extractor + Auto-generieren + # Anzahl + Auto-Gen + Extrathumb speichern + Extrahiere Frame... + Film laden + Episode laden + Als Poster speichern - diff --git a/Addons/generic.EmberCore.Extractor/Langs/generic.EmberCore.Extractor.Italian_(it_IT).xml b/Addons/generic.EmberCore.Extractor/Langs/generic.EmberCore.Extractor.Italian_(it_IT).xml new file mode 100644 index 0000000..caf31a7 --- /dev/null +++ b/Addons/generic.EmberCore.Extractor/Langs/generic.EmberCore.Extractor.Italian_(it_IT).xml @@ -0,0 +1,11 @@ + + Estrattore fotogramma + Generazione Automatica + # Creare: + Generazione Automatica + Salva Extrathumb + Estrazione Fotogramma... + Carica Film + Carica Episodio + Salva come Poster + diff --git a/Addons/generic.EmberCore.Extractor/Langs/generic.EmberCore.Extractor.Norwegian_(no_NO).xml b/Addons/generic.EmberCore.Extractor/Langs/generic.EmberCore.Extractor.Norwegian_(no_NO).xml new file mode 100644 index 0000000..f107c6c --- /dev/null +++ b/Addons/generic.EmberCore.Extractor/Langs/generic.EmberCore.Extractor.Norwegian_(no_NO).xml @@ -0,0 +1,11 @@ + + Bildeekstraktør + Auto-generator + # til å lage: + Auto-gen + Lagre ekstrakunst + Henter bilde... + Last film + Last episode + Lagre som plakat + diff --git a/Addons/generic.EmberCore.Extractor/Langs/generic.EmberCore.Extractor.Spanish_(es_ES).xml b/Addons/generic.EmberCore.Extractor/Langs/generic.EmberCore.Extractor.Spanish_(es_ES).xml new file mode 100644 index 0000000..e566ebd --- /dev/null +++ b/Addons/generic.EmberCore.Extractor/Langs/generic.EmberCore.Extractor.Spanish_(es_ES).xml @@ -0,0 +1,11 @@ + + Extractor de Fotograma + Auto-Generar + # a Crear: + Auto-Generar + Guardar Extrathumb + Extrayendo Fotograma... + Cargar Película + Cargar Episodio + Guardar como Poster + diff --git a/Addons/generic.EmberCore.Extractor/My Project/AssemblyInfo.vb b/Addons/generic.EmberCore.Extractor/My Project/AssemblyInfo.vb index 098ef9a..f17c97d 100644 --- a/Addons/generic.EmberCore.Extractor/My Project/AssemblyInfo.vb +++ b/Addons/generic.EmberCore.Extractor/My Project/AssemblyInfo.vb @@ -9,7 +9,7 @@ Imports System.Runtime.InteropServices ' Review the values of the assembly attributes - + @@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices ' by using the '*' as shown below: ' - - + + diff --git a/Addons/generic.EmberCore.Extractor/frmTVExtrator.vb b/Addons/generic.EmberCore.Extractor/frmTVExtrator.vb index a2b8a0c..c2b94c5 100644 --- a/Addons/generic.EmberCore.Extractor/frmTVExtrator.vb +++ b/Addons/generic.EmberCore.Extractor/frmTVExtrator.vb @@ -36,7 +36,7 @@ Public Class frmTVExtrator Private Sub btnFrameSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFrameSave.Click If Not IsNothing(pbFrame.Image) Then - RaiseEvent GenericEvent(Enums.ModuleEventType.TVFrameExtrator, New List(Of Object)(New Object() {New Bitmap(pbFrame.Image), pbFrame.Image})) + RaiseEvent GenericEvent(Enums.ModuleEventType.TVFrameExtrator, Nothing) End If End Sub diff --git a/Addons/generic.EmberCore.Extractor/generic.EmberCore.Extractor.vbproj b/Addons/generic.EmberCore.Extractor/generic.EmberCore.Extractor.vbproj index e85ddcf..fb499e9 100644 --- a/Addons/generic.EmberCore.Extractor/generic.EmberCore.Extractor.vbproj +++ b/Addons/generic.EmberCore.Extractor/generic.EmberCore.Extractor.vbproj @@ -189,13 +189,25 @@ + + PreserveNewest + + + PreserveNewest + PreserveNewest PreserveNewest - + + PreserveNewest + + + PreserveNewest + + PreserveNewest diff --git a/Addons/generic.EmberCore.MediaFileManager/Langs/generic.EmberCore.MediaFileManager.Debug_(db_DB).xml b/Addons/generic.EmberCore.MediaFileManager/Langs/generic.EmberCore.MediaFileManager.Debug_(db_DB).xml new file mode 100644 index 0000000..aea2229 --- /dev/null +++ b/Addons/generic.EmberCore.MediaFileManager/Langs/generic.EmberCore.MediaFileManager.Debug_(db_DB).xml @@ -0,0 +1,902 @@ + + media1 + media2 + media3 + media4 + media5 + media6 + media7 + media8 + media9 + media10 + media11 + media12 + media13 + media14 + media15 + media16 + media17 + media18 + media19 + media20 + media21 + media22 + media23 + media24 + media25 + media26 + media27 + media28 + media29 + media30 + media31 + media32 + media33 + media34 + media35 + media36 + media37 + media38 + media39 + media40 + media41 + media42 + media43 + media44 + media45 + media46 + media47 + media48 + media49 + media50 + media51 + media52 + media53 + media54 + media55 + media56 + media57 + media58 + media59 + media60 + media61 + media62 + media63 + media64 + media65 + media66 + media67 + media68 + media69 + media70 + media71 + media72 + media73 + media74 + media75 + media76 + media77 + media78 + media79 + media80 + media81 + media82 + media83 + media84 + media85 + media86 + media87 + media88 + media89 + media90 + media91 + media92 + media93 + media94 + media95 + media96 + media97 + media98 + media99 + media100 + media101 + media102 + media103 + media104 + media105 + media106 + media107 + media108 + media109 + media110 + media111 + media112 + media113 + media114 + media115 + media116 + media117 + media118 + media119 + media120 + media121 + media122 + media123 + media124 + media125 + media126 + media127 + media128 + media129 + media130 + media131 + media132 + media133 + media134 + media135 + media136 + media137 + media138 + media139 + media140 + media141 + media142 + media143 + media144 + media145 + media146 + media147 + media148 + media149 + media150 + media151 + media152 + media153 + media154 + media155 + media156 + media157 + media158 + media159 + media160 + media161 + media162 + media163 + media164 + media165 + media166 + media167 + media168 + media169 + media170 + media171 + media172 + media173 + media174 + media175 + media176 + media177 + media178 + media179 + media180 + media181 + media182 + media183 + media184 + media185 + media186 + media187 + media188 + media189 + media190 + media191 + media192 + media193 + media194 + media195 + media196 + media197 + media198 + media199 + media200 + media201 + media202 + media203 + media204 + media205 + media206 + media207 + media208 + media209 + media210 + media211 + media212 + media213 + media214 + media215 + media216 + media217 + media218 + media219 + media220 + media221 + media222 + media223 + media224 + media225 + media226 + media227 + media228 + media229 + media230 + media231 + media232 + media233 + media234 + media235 + media236 + media237 + media238 + media239 + media240 + media241 + media242 + media243 + media244 + media245 + media246 + media247 + media248 + media249 + media250 + media251 + media252 + media253 + media254 + media255 + media256 + media257 + media258 + media259 + media260 + media261 + media262 + media263 + media264 + media265 + media266 + media267 + media268 + media269 + media270 + media271 + media272 + media273 + media274 + media275 + media276 + media277 + media278 + media279 + media280 + media281 + media282 + media283 + media284 + media285 + media286 + media287 + media288 + media289 + media290 + media291 + media292 + media293 + media294 + media295 + media296 + media297 + media298 + media299 + media300 + media301 + media302 + media303 + media304 + media305 + media306 + media307 + media308 + media309 + media310 + media311 + media312 + media313 + media314 + media315 + media316 + media317 + media318 + media319 + media320 + media321 + media322 + media323 + media324 + media325 + media326 + media327 + media328 + media329 + media330 + media331 + media332 + media333 + media334 + media335 + media336 + media337 + media338 + media339 + media340 + media341 + media342 + media343 + media344 + media345 + media346 + media347 + media348 + media349 + media350 + media351 + media352 + media353 + media354 + media355 + media356 + media357 + media358 + media359 + media360 + media361 + media362 + media363 + media364 + media365 + media366 + media367 + media368 + media369 + media370 + media371 + media372 + media373 + media374 + media375 + media376 + media377 + media378 + media379 + media380 + media381 + media382 + media383 + media384 + media385 + media386 + media387 + media388 + media389 + media390 + media391 + media392 + media393 + media394 + media395 + media396 + media397 + media398 + media399 + media400 + media401 + media402 + media403 + media404 + media405 + media406 + media407 + media408 + media409 + media410 + media411 + media412 + media413 + media414 + media415 + media416 + media417 + media418 + media419 + media420 + media421 + media422 + media423 + media424 + media425 + media426 + media427 + media428 + media429 + media430 + media431 + media432 + media433 + media434 + media435 + media436 + media437 + media438 + media439 + media440 + media441 + media442 + media443 + media444 + media445 + media446 + media447 + media448 + media449 + media450 + media451 + media452 + media453 + media454 + media455 + media456 + media457 + media458 + media459 + media460 + media461 + media462 + media463 + media464 + media465 + media466 + media467 + media468 + media469 + media470 + media471 + media472 + media473 + media474 + media475 + media476 + media477 + media478 + media479 + media480 + media481 + media482 + media483 + media484 + media485 + media486 + media487 + media488 + media489 + media490 + media491 + media492 + media493 + media494 + media495 + media496 + media497 + media498 + media499 + media500 + media501 + media502 + media503 + media504 + media505 + media506 + media507 + media508 + media509 + media510 + media511 + media512 + media513 + media514 + media515 + media516 + media517 + media518 + media519 + media520 + media521 + media522 + media523 + media524 + media525 + media526 + media527 + media528 + media529 + media530 + media531 + media532 + media533 + media534 + media535 + media536 + media537 + media538 + media539 + media540 + media541 + media542 + media543 + media544 + media545 + media546 + media547 + media548 + media549 + media550 + media551 + media552 + media553 + media554 + media555 + media556 + media557 + media558 + media559 + media560 + media561 + media562 + media563 + media564 + media565 + media566 + media567 + media568 + media569 + media570 + media571 + media572 + media573 + media574 + media575 + media576 + media577 + media578 + media579 + media580 + media581 + media582 + media583 + media584 + media585 + media586 + media587 + media588 + media589 + media590 + media591 + media592 + media593 + media594 + media595 + media596 + media597 + media598 + media599 + media600 + media601 + media602 + media603 + media604 + media605 + media606 + media607 + media608 + media609 + media610 + media611 + media612 + media613 + media614 + media615 + media616 + media617 + media618 + media619 + media620 + media621 + media622 + media623 + media624 + media625 + media626 + media627 + media628 + media629 + media630 + media631 + media632 + media633 + media634 + media635 + media636 + media637 + media638 + media639 + media640 + media641 + media642 + media643 + media644 + media645 + media646 + media647 + media648 + media649 + media650 + media651 + media652 + media653 + media654 + media655 + media656 + media657 + media658 + media659 + media660 + media661 + media662 + media663 + media664 + media665 + media666 + media667 + media668 + media669 + media670 + media671 + media672 + media673 + media674 + media675 + media676 + media677 + media678 + media679 + media680 + media681 + media682 + media683 + media684 + media685 + media686 + media687 + media688 + media689 + media690 + media691 + media692 + media693 + media694 + media695 + media696 + media697 + media698 + media699 + media700 + media701 + media702 + media703 + media704 + media705 + media706 + media707 + media708 + media709 + media710 + media711 + media712 + media713 + media714 + media715 + media716 + media717 + media718 + media719 + media720 + media721 + media722 + media723 + media724 + media725 + media726 + media727 + media728 + media729 + media730 + media731 + media732 + media733 + media734 + media735 + media736 + media737 + media738 + media739 + media740 + media741 + media742 + media743 + media744 + media745 + media746 + media747 + media748 + media749 + media750 + media751 + media752 + media753 + media754 + media755 + media756 + media757 + media758 + media759 + media760 + media761 + media762 + media763 + media764 + media765 + media766 + media767 + media768 + media769 + media770 + media771 + media772 + media773 + media774 + media775 + media776 + media777 + media778 + media779 + media780 + media781 + media782 + media783 + media784 + media785 + media786 + media787 + media788 + media789 + media790 + media791 + media792 + media793 + media794 + media795 + media796 + media797 + media798 + media799 + media800 + media801 + media802 + media803 + media804 + media805 + media806 + media807 + media808 + media809 + media810 + media811 + media812 + media813 + media814 + media815 + media816 + media817 + media818 + media819 + media820 + media821 + media822 + media823 + media824 + media825 + media826 + media827 + media828 + media829 + media830 + media831 + media832 + media833 + media834 + media835 + media836 + media837 + media838 + media839 + media840 + media841 + media842 + media843 + media844 + media845 + media846 + media847 + media848 + media849 + media850 + media851 + media852 + media853 + media854 + media855 + media856 + media857 + media858 + media859 + media860 + media861 + media862 + media863 + media864 + media865 + media866 + media867 + media868 + media869 + media870 + media871 + media872 + media873 + media874 + media875 + media876 + media877 + media878 + media879 + media880 + media881 + media882 + media883 + media884 + media885 + media886 + media887 + media888 + media889 + media890 + media891 + media892 + media893 + media894 + media895 + media896 + media897 + media898 + media899 + media900 + \ No newline at end of file diff --git a/Addons/generic.EmberCore.MediaFileManager/Langs/generic.EmberCore.MediaFileManager.Dutch_(nl_NL)-Help.xml b/Addons/generic.EmberCore.MediaFileManager/Langs/generic.EmberCore.MediaFileManager.Dutch_(nl_NL)-Help.xml new file mode 100644 index 0000000..07fca6f --- /dev/null +++ b/Addons/generic.EmberCore.MediaFileManager/Langs/generic.EmberCore.MediaFileManager.Dutch_(nl_NL)-Help.xml @@ -0,0 +1,12 @@ + + Gebruik deze module wel of niet + + + + + + + + + + diff --git a/Addons/generic.EmberCore.MediaFileManager/Langs/generic.EmberCore.MediaFileManager.Dutch_(nl_NL).xml b/Addons/generic.EmberCore.MediaFileManager/Langs/generic.EmberCore.MediaFileManager.Dutch_(nl_NL).xml new file mode 100644 index 0000000..7d77bff --- /dev/null +++ b/Addons/generic.EmberCore.MediaFileManager/Langs/generic.EmberCore.MediaFileManager.Dutch_(nl_NL).xml @@ -0,0 +1,10 @@ + + Media file manager + Media file manager + Verplaats naar + Kopieer naar + Verplaats van {0} naar {1} + Kopieer van {0} naar {1} + Verplaatsen film + Kopiëren film + diff --git a/Addons/generic.EmberCore.MediaFileManager/Langs/generic.EmberCore.MediaFileManager.English_(en_US)-Help.xml b/Addons/generic.EmberCore.MediaFileManager/Langs/generic.EmberCore.MediaFileManager.English_(en_US)-Help.xml index 134992e..76075e4 100644 --- a/Addons/generic.EmberCore.MediaFileManager/Langs/generic.EmberCore.MediaFileManager.English_(en_US)-Help.xml +++ b/Addons/generic.EmberCore.MediaFileManager/Langs/generic.EmberCore.MediaFileManager.English_(en_US)-Help.xml @@ -1,13 +1,12 @@ - - Enable or disable this module. - - - - - - - - - - \ No newline at end of file + Enable or disable this module. + + + + + + + + + + diff --git a/Addons/generic.EmberCore.MediaFileManager/Langs/generic.EmberCore.MediaFileManager.English_(en_US).xml b/Addons/generic.EmberCore.MediaFileManager/Langs/generic.EmberCore.MediaFileManager.English_(en_US).xml index 442d6ab..bdccc38 100644 --- a/Addons/generic.EmberCore.MediaFileManager/Langs/generic.EmberCore.MediaFileManager.English_(en_US).xml +++ b/Addons/generic.EmberCore.MediaFileManager/Langs/generic.EmberCore.MediaFileManager.English_(en_US).xml @@ -1,11 +1,10 @@ - - Media File Manager - Media File Manager - Move To - Copy To - Move from {0} To {1} - Copy from {0} To {1} - Moving Movie - Copying Movie - \ No newline at end of file + Media File Manager + Media File Manager + Move To + Copy To + Move from {0} To {1} + Copy from {0} To {1} + Moving Movie + Copying Movie + diff --git a/Addons/generic.EmberCore.MediaFileManager/Langs/generic.EmberCore.MediaFileManager.German_(de_DE)-Help.xml b/Addons/generic.EmberCore.MediaFileManager/Langs/generic.EmberCore.MediaFileManager.German_(de_DE)-Help.xml index 975ca42..03a384c 100644 --- a/Addons/generic.EmberCore.MediaFileManager/Langs/generic.EmberCore.MediaFileManager.German_(de_DE)-Help.xml +++ b/Addons/generic.EmberCore.MediaFileManager/Langs/generic.EmberCore.MediaFileManager.German_(de_DE)-Help.xml @@ -1,14 +1,12 @@ - - Aktiviert dieses Modul. - - - - - - - - - + Aktiviert oder deaktiviert dieses Modul. + + + + + + + + + - diff --git a/Addons/generic.EmberCore.MediaFileManager/Langs/generic.EmberCore.MediaFileManager.German_(de_DE).xml b/Addons/generic.EmberCore.MediaFileManager/Langs/generic.EmberCore.MediaFileManager.German_(de_DE).xml index 668cd4f..54c43c7 100644 --- a/Addons/generic.EmberCore.MediaFileManager/Langs/generic.EmberCore.MediaFileManager.German_(de_DE).xml +++ b/Addons/generic.EmberCore.MediaFileManager/Langs/generic.EmberCore.MediaFileManager.German_(de_DE).xml @@ -1,11 +1,10 @@ - - Medien Datei Manager - Verschiebe nach - Kopiere nach - Verschiebe von {0} nach {1} - Kopiere von {0} nach {1} - Verschiebe Film - Kopiere Film + Medien Datei Manager + Medien Datei Manager + Verschiebe nach + Kopiere nach + Verschiebe von {0} nach {1} + Kopiere von {0} nach {1} + Verschiebe Film + Kopiere Film - diff --git a/Addons/generic.EmberCore.MediaFileManager/Langs/generic.EmberCore.MediaFileManager.Italian_(it_IT)-Help.xml b/Addons/generic.EmberCore.MediaFileManager/Langs/generic.EmberCore.MediaFileManager.Italian_(it_IT)-Help.xml new file mode 100644 index 0000000..0e71fb7 --- /dev/null +++ b/Addons/generic.EmberCore.MediaFileManager/Langs/generic.EmberCore.MediaFileManager.Italian_(it_IT)-Help.xml @@ -0,0 +1,12 @@ + + Abilita o disabilita questo modulo + + + + + + + + + + diff --git a/Addons/generic.EmberCore.MediaFileManager/Langs/generic.EmberCore.MediaFileManager.Italian_(it_IT).xml b/Addons/generic.EmberCore.MediaFileManager/Langs/generic.EmberCore.MediaFileManager.Italian_(it_IT).xml new file mode 100644 index 0000000..20d3451 --- /dev/null +++ b/Addons/generic.EmberCore.MediaFileManager/Langs/generic.EmberCore.MediaFileManager.Italian_(it_IT).xml @@ -0,0 +1,10 @@ + + Media File Manager + Media File Manager + Sposta in + Copia in + Sposta da {0} a {1} + Copia da {0} a {1} + Spostamento Film + Copia Film + diff --git a/Addons/generic.EmberCore.MediaFileManager/Langs/generic.EmberCore.MediaFileManager.Norwegian_(no_NO)-Help.xml b/Addons/generic.EmberCore.MediaFileManager/Langs/generic.EmberCore.MediaFileManager.Norwegian_(no_NO)-Help.xml new file mode 100644 index 0000000..74808ef --- /dev/null +++ b/Addons/generic.EmberCore.MediaFileManager/Langs/generic.EmberCore.MediaFileManager.Norwegian_(no_NO)-Help.xml @@ -0,0 +1,12 @@ + + Slå på eller slå av denne modulen. + + + + + + + + + + diff --git a/Addons/generic.EmberCore.MediaFileManager/Langs/generic.EmberCore.MediaFileManager.Norwegian_(no_NO).xml b/Addons/generic.EmberCore.MediaFileManager/Langs/generic.EmberCore.MediaFileManager.Norwegian_(no_NO).xml new file mode 100644 index 0000000..1ee6996 --- /dev/null +++ b/Addons/generic.EmberCore.MediaFileManager/Langs/generic.EmberCore.MediaFileManager.Norwegian_(no_NO).xml @@ -0,0 +1,10 @@ + + Mediafil-manager + Mediafil-manager + Flytt til + Kopiér til + Flytt fra {0} til {1} + Kopiér fra {0} til {1} + Flytter fil + Kopierer film + diff --git a/Addons/generic.EmberCore.MediaFileManager/Langs/generic.EmberCore.MediaFileManager.Spanish_(es_ES)-Help.xml b/Addons/generic.EmberCore.MediaFileManager/Langs/generic.EmberCore.MediaFileManager.Spanish_(es_ES)-Help.xml new file mode 100644 index 0000000..1aff0db --- /dev/null +++ b/Addons/generic.EmberCore.MediaFileManager/Langs/generic.EmberCore.MediaFileManager.Spanish_(es_ES)-Help.xml @@ -0,0 +1,12 @@ + + Habilitar o deshabilitar este módulo. + + + + + + + + + + diff --git a/Addons/generic.EmberCore.MediaFileManager/Langs/generic.EmberCore.MediaFileManager.Spanish_(es_ES).xml b/Addons/generic.EmberCore.MediaFileManager/Langs/generic.EmberCore.MediaFileManager.Spanish_(es_ES).xml new file mode 100644 index 0000000..a814dd0 --- /dev/null +++ b/Addons/generic.EmberCore.MediaFileManager/Langs/generic.EmberCore.MediaFileManager.Spanish_(es_ES).xml @@ -0,0 +1,10 @@ + + Gestor de Archivos de Media + Gestor de Archivos de Media + Mover A + Copiar A + Mover desde {0} hacia {1} + Copiar desde {0} hacia {1} + Moviendo Película + Copiando Película + diff --git a/Addons/generic.EmberCore.MediaFileManager/My Project/AssemblyInfo.vb b/Addons/generic.EmberCore.MediaFileManager/My Project/AssemblyInfo.vb index 05f670c..513d26c 100644 --- a/Addons/generic.EmberCore.MediaFileManager/My Project/AssemblyInfo.vb +++ b/Addons/generic.EmberCore.MediaFileManager/My Project/AssemblyInfo.vb @@ -9,7 +9,7 @@ Imports System.Runtime.InteropServices ' Review the values of the assembly attributes - + diff --git a/Addons/generic.EmberCore.MediaFileManager/generic.EmberCore.MediaFileManager.vbproj b/Addons/generic.EmberCore.MediaFileManager/generic.EmberCore.MediaFileManager.vbproj index a979d1e..8576967 100644 --- a/Addons/generic.EmberCore.MediaFileManager/generic.EmberCore.MediaFileManager.vbproj +++ b/Addons/generic.EmberCore.MediaFileManager/generic.EmberCore.MediaFileManager.vbproj @@ -176,6 +176,15 @@ + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + PreserveNewest @@ -188,7 +197,22 @@ PreserveNewest - + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + PreserveNewest diff --git a/Addons/generic.EmberCore.MovieExport/Langs/generic.EmberCore.MovieExporter.Debug_(db_DB).xml b/Addons/generic.EmberCore.MovieExport/Langs/generic.EmberCore.MovieExporter.Debug_(db_DB).xml new file mode 100644 index 0000000..49d204f --- /dev/null +++ b/Addons/generic.EmberCore.MovieExport/Langs/generic.EmberCore.MovieExporter.Debug_(db_DB).xml @@ -0,0 +1,902 @@ + + export1 + export2 + export3 + export4 + export5 + export6 + export7 + export8 + export9 + export10 + export11 + export12 + export13 + export14 + export15 + export16 + export17 + export18 + export19 + export20 + export21 + export22 + export23 + export24 + export25 + export26 + export27 + export28 + export29 + export30 + export31 + export32 + export33 + export34 + export35 + export36 + export37 + export38 + export39 + export40 + export41 + export42 + export43 + export44 + export45 + export46 + export47 + export48 + export49 + export50 + export51 + export52 + export53 + export54 + export55 + export56 + export57 + export58 + export59 + export60 + export61 + export62 + export63 + export64 + export65 + export66 + export67 + export68 + export69 + export70 + export71 + export72 + export73 + export74 + export75 + export76 + export77 + export78 + export79 + export80 + export81 + export82 + export83 + export84 + export85 + export86 + export87 + export88 + export89 + export90 + export91 + export92 + export93 + export94 + export95 + export96 + export97 + export98 + export99 + export100 + export101 + export102 + export103 + export104 + export105 + export106 + export107 + export108 + export109 + export110 + export111 + export112 + export113 + export114 + export115 + export116 + export117 + export118 + export119 + export120 + export121 + export122 + export123 + export124 + export125 + export126 + export127 + export128 + export129 + export130 + export131 + export132 + export133 + export134 + export135 + export136 + export137 + export138 + export139 + export140 + export141 + export142 + export143 + export144 + export145 + export146 + export147 + export148 + export149 + export150 + export151 + export152 + export153 + export154 + export155 + export156 + export157 + export158 + export159 + export160 + export161 + export162 + export163 + export164 + export165 + export166 + export167 + export168 + export169 + export170 + export171 + export172 + export173 + export174 + export175 + export176 + export177 + export178 + export179 + export180 + export181 + export182 + export183 + export184 + export185 + export186 + export187 + export188 + export189 + export190 + export191 + export192 + export193 + export194 + export195 + export196 + export197 + export198 + export199 + export200 + export201 + export202 + export203 + export204 + export205 + export206 + export207 + export208 + export209 + export210 + export211 + export212 + export213 + export214 + export215 + export216 + export217 + export218 + export219 + export220 + export221 + export222 + export223 + export224 + export225 + export226 + export227 + export228 + export229 + export230 + export231 + export232 + export233 + export234 + export235 + export236 + export237 + export238 + export239 + export240 + export241 + export242 + export243 + export244 + export245 + export246 + export247 + export248 + export249 + export250 + export251 + export252 + export253 + export254 + export255 + export256 + export257 + export258 + export259 + export260 + export261 + export262 + export263 + export264 + export265 + export266 + export267 + export268 + export269 + export270 + export271 + export272 + export273 + export274 + export275 + export276 + export277 + export278 + export279 + export280 + export281 + export282 + export283 + export284 + export285 + export286 + export287 + export288 + export289 + export290 + export291 + export292 + export293 + export294 + export295 + export296 + export297 + export298 + export299 + export300 + export301 + export302 + export303 + export304 + export305 + export306 + export307 + export308 + export309 + export310 + export311 + export312 + export313 + export314 + export315 + export316 + export317 + export318 + export319 + export320 + export321 + export322 + export323 + export324 + export325 + export326 + export327 + export328 + export329 + export330 + export331 + export332 + export333 + export334 + export335 + export336 + export337 + export338 + export339 + export340 + export341 + export342 + export343 + export344 + export345 + export346 + export347 + export348 + export349 + export350 + export351 + export352 + export353 + export354 + export355 + export356 + export357 + export358 + export359 + export360 + export361 + export362 + export363 + export364 + export365 + export366 + export367 + export368 + export369 + export370 + export371 + export372 + export373 + export374 + export375 + export376 + export377 + export378 + export379 + export380 + export381 + export382 + export383 + export384 + export385 + export386 + export387 + export388 + export389 + export390 + export391 + export392 + export393 + export394 + export395 + export396 + export397 + export398 + export399 + export400 + export401 + export402 + export403 + export404 + export405 + export406 + export407 + export408 + export409 + export410 + export411 + export412 + export413 + export414 + export415 + export416 + export417 + export418 + export419 + export420 + export421 + export422 + export423 + export424 + export425 + export426 + export427 + export428 + export429 + export430 + export431 + export432 + export433 + export434 + export435 + export436 + export437 + export438 + export439 + export440 + export441 + export442 + export443 + export444 + export445 + export446 + export447 + export448 + export449 + export450 + export451 + export452 + export453 + export454 + export455 + export456 + export457 + export458 + export459 + export460 + export461 + export462 + export463 + export464 + export465 + export466 + export467 + export468 + export469 + export470 + export471 + export472 + export473 + export474 + export475 + export476 + export477 + export478 + export479 + export480 + export481 + export482 + export483 + export484 + export485 + export486 + export487 + export488 + export489 + export490 + export491 + export492 + export493 + export494 + export495 + export496 + export497 + export498 + export499 + export500 + export501 + export502 + export503 + export504 + export505 + export506 + export507 + export508 + export509 + export510 + export511 + export512 + export513 + export514 + export515 + export516 + export517 + export518 + export519 + export520 + export521 + export522 + export523 + export524 + export525 + export526 + export527 + export528 + export529 + export530 + export531 + export532 + export533 + export534 + export535 + export536 + export537 + export538 + export539 + export540 + export541 + export542 + export543 + export544 + export545 + export546 + export547 + export548 + export549 + export550 + export551 + export552 + export553 + export554 + export555 + export556 + export557 + export558 + export559 + export560 + export561 + export562 + export563 + export564 + export565 + export566 + export567 + export568 + export569 + export570 + export571 + export572 + export573 + export574 + export575 + export576 + export577 + export578 + export579 + export580 + export581 + export582 + export583 + export584 + export585 + export586 + export587 + export588 + export589 + export590 + export591 + export592 + export593 + export594 + export595 + export596 + export597 + export598 + export599 + export600 + export601 + export602 + export603 + export604 + export605 + export606 + export607 + export608 + export609 + export610 + export611 + export612 + export613 + export614 + export615 + export616 + export617 + export618 + export619 + export620 + export621 + export622 + export623 + export624 + export625 + export626 + export627 + export628 + export629 + export630 + export631 + export632 + export633 + export634 + export635 + export636 + export637 + export638 + export639 + export640 + export641 + export642 + export643 + export644 + export645 + export646 + export647 + export648 + export649 + export650 + export651 + export652 + export653 + export654 + export655 + export656 + export657 + export658 + export659 + export660 + export661 + export662 + export663 + export664 + export665 + export666 + export667 + export668 + export669 + export670 + export671 + export672 + export673 + export674 + export675 + export676 + export677 + export678 + export679 + export680 + export681 + export682 + export683 + export684 + export685 + export686 + export687 + export688 + export689 + export690 + export691 + export692 + export693 + export694 + export695 + export696 + export697 + export698 + export699 + export700 + export701 + export702 + export703 + export704 + export705 + export706 + export707 + export708 + export709 + export710 + export711 + export712 + export713 + export714 + export715 + export716 + export717 + export718 + export719 + export720 + export721 + export722 + export723 + export724 + export725 + export726 + export727 + export728 + export729 + export730 + export731 + export732 + export733 + export734 + export735 + export736 + export737 + export738 + export739 + export740 + export741 + export742 + export743 + export744 + export745 + export746 + export747 + export748 + export749 + export750 + export751 + export752 + export753 + export754 + export755 + export756 + export757 + export758 + export759 + export760 + export761 + export762 + export763 + export764 + export765 + export766 + export767 + export768 + export769 + export770 + export771 + export772 + export773 + export774 + export775 + export776 + export777 + export778 + export779 + export780 + export781 + export782 + export783 + export784 + export785 + export786 + export787 + export788 + export789 + export790 + export791 + export792 + export793 + export794 + export795 + export796 + export797 + export798 + export799 + export800 + export801 + export802 + export803 + export804 + export805 + export806 + export807 + export808 + export809 + export810 + export811 + export812 + export813 + export814 + export815 + export816 + export817 + export818 + export819 + export820 + export821 + export822 + export823 + export824 + export825 + export826 + export827 + export828 + export829 + export830 + export831 + export832 + export833 + export834 + export835 + export836 + export837 + export838 + export839 + export840 + export841 + export842 + export843 + export844 + export845 + export846 + export847 + export848 + export849 + export850 + export851 + export852 + export853 + export854 + export855 + export856 + export857 + export858 + export859 + export860 + export861 + export862 + export863 + export864 + export865 + export866 + export867 + export868 + export869 + export870 + export871 + export872 + export873 + export874 + export875 + export876 + export877 + export878 + export879 + export880 + export881 + export882 + export883 + export884 + export885 + export886 + export887 + export888 + export889 + export890 + export891 + export892 + export893 + export894 + export895 + export896 + export897 + export898 + export899 + export900 + \ No newline at end of file diff --git a/Addons/generic.EmberCore.MovieExport/Langs/generic.EmberCore.MovieExporter.Dutch_(nl_NL)-Help.xml b/Addons/generic.EmberCore.MovieExport/Langs/generic.EmberCore.MovieExporter.Dutch_(nl_NL)-Help.xml new file mode 100644 index 0000000..ca92163 --- /dev/null +++ b/Addons/generic.EmberCore.MovieExport/Langs/generic.EmberCore.MovieExporter.Dutch_(nl_NL)-Help.xml @@ -0,0 +1,11 @@ + + Activeer of deactiveer deze module. + De map waar de aangemaakte HTML is bewaard + De gewenste breedte van de ge-exporteerde fanart. Een lagere waarde resulteert in kleinere bestanden en snellere laadtijden. + De gewenste breedte van de ge-exporteerde poster. Een lagere waarde resulteert in kleinere bestanden en snellere laadtijden. + 100 wil zeggen geen gegevensverlies, maar ook de grootste bestandsgrootte - stel een lagere waarde in om de laadtijden te verbeteren! + Drie filters die gebruikt kunnen worden om verschillende filters in te bewaren. Deze kunnen in de Film Exporteur Interface aangeduid worden. + Verschillende filtertypes om uit te kiezen + Sla de geselecteerde filter op + Stel de geselecteerde filter opnieuw in + diff --git a/Addons/generic.EmberCore.MovieExport/Langs/generic.EmberCore.MovieExporter.Dutch_(nl_NL).xml b/Addons/generic.EmberCore.MovieExport/Langs/generic.EmberCore.MovieExporter.Dutch_(nl_NL).xml new file mode 100644 index 0000000..8a5a30e --- /dev/null +++ b/Addons/generic.EmberCore.MovieExport/Langs/generic.EmberCore.MovieExporter.Dutch_(nl_NL).xml @@ -0,0 +1,30 @@ + + Filmlijst Exporteur + Bron map + Video vlag + Audio vlag + Voorbereiden voorbeeld. Even wachten a.u.b. ... + Bron map + Laden. Even geduld a.u.b. ... + Opslaan van bestanden. Even geduld a.u.b. ... + Exporteer films + Opnieuw instellen + Filter + in + Compileren filmlijst... + Afbreken compilatie... + Sjabloon + Exporteer filmlijst + Exporteer TV Serie + Maak filter aan + Exporteer pad + Fanart breedte [px] + Poster hoogte [px] + Filter Instellingen + Afbeelding Instellingen + Algemene Instellingen + Bewaar Filter + Filter herinstellen + HTML aanmaken... + Sjabloon opgeslagen naar: + diff --git a/Addons/generic.EmberCore.MovieExport/Langs/generic.EmberCore.MovieExporter.English_(en_US)-Help.xml b/Addons/generic.EmberCore.MovieExport/Langs/generic.EmberCore.MovieExporter.English_(en_US)-Help.xml index c7f4652..90ebade 100644 --- a/Addons/generic.EmberCore.MovieExport/Langs/generic.EmberCore.MovieExporter.English_(en_US)-Help.xml +++ b/Addons/generic.EmberCore.MovieExport/Langs/generic.EmberCore.MovieExporter.English_(en_US)-Help.xml @@ -1,4 +1,11 @@ - - Enable or disable this module. - \ No newline at end of file + Enable or disable this module. + The folder where the created HTML Template is stored + The desired width of exported fanart. A smaller value results in smaller files and faster loading times + The desired width of exported poster. A smaller value results in smaller files and faster loading times + 100 means no quality loss, but also biggest filesize - set smaller value to enhance loading times! + Three filters which an can be used to store different filters. Those can be selected in Movie Export Interface + Different filtertypes to choose from + Save selected filter + Reset selected filter + diff --git a/Addons/generic.EmberCore.MovieExport/Langs/generic.EmberCore.MovieExporter.English_(en_US).xml b/Addons/generic.EmberCore.MovieExport/Langs/generic.EmberCore.MovieExporter.English_(en_US).xml index 6b65299..eefa544 100644 --- a/Addons/generic.EmberCore.MovieExport/Langs/generic.EmberCore.MovieExporter.English_(en_US).xml +++ b/Addons/generic.EmberCore.MovieExport/Langs/generic.EmberCore.MovieExporter.English_(en_US).xml @@ -1,19 +1,30 @@ - - Movie List Exporter - Source Folder - Video Flag - Audio Flag - Preparing preview. Please wait... - Source Folder - Loading. Please wait... - Saving all files. Please wait... - Export Movies - Reset - Filter - in - Compiling Movie List... - Canceling Compilation... - Template - Export Movie List - \ No newline at end of file + Movie List Exporter + Source Folder + Video Flag + Audio Flag + Preparing preview. Please wait... + Source Folder + Loading. Please wait... + Saving all files. Please wait... + Export Movies + Reset + Filter + in + Compiling Movie List... + Canceling Compilation... + Template + Export Movie List + Export TV Shows + Generate Filter + Export Path + Fanart Width [px] + Poster Height [px] + Filter Settings + Image Settings + General Settings + Save Filter + Reset Filter + Generate HTML... + Template saved to: + diff --git a/Addons/generic.EmberCore.MovieExport/Langs/generic.EmberCore.MovieExporter.German_(de_DE)-Help.xml b/Addons/generic.EmberCore.MovieExport/Langs/generic.EmberCore.MovieExporter.German_(de_DE)-Help.xml index f1152fe..a1a24ce 100644 --- a/Addons/generic.EmberCore.MovieExport/Langs/generic.EmberCore.MovieExporter.German_(de_DE)-Help.xml +++ b/Addons/generic.EmberCore.MovieExport/Langs/generic.EmberCore.MovieExporter.German_(de_DE)-Help.xml @@ -1,5 +1,14 @@ - - Aktiviert dieses Modul + Aktiviert oder deaktiviert dieses Modul + Das Ablageverzeichnis der generierten HTML-Templates. Zum Starten des Templates auf die index.htm Datei in diesem Verzeichnis klicken. +Tipp: Zum Veröffentlichen im Internet, den Inhalt des Verzeichnisses auf einem Webhoster kopieren + Die gewünschte Breite der Fanarts des Templates. Eine geringe Breite verringert ebenfalls die Dateigröße der Bilddateien und bewirkt damit eine schnellere Ladezeit und Anzeige der einzelnen Filme in bildlastigen Templates wie z.B. dem Movietemplate + Die gewünschte Höhe der Filmposter des Templates. Ein geringer Wert verringert ebenfalls die Dateigröße der Bilddateien und bewirkt damit eine schnellere Ladezeit und Anzeige der einzelnen Filme in bildlastigen Templates wie z.B. dem Movietemplate + JPG-Qualitätseinstellung: +100: Kein Qualitätsverlust gegenüber Original, aber auch größere Dateien +Tipp: Wert zwischen 65 - 80 einstellen! Der Qualitätsverlust ist dann nicht sichtbar, Dateigrößen dafür deutlich kleiner und somit schnellere Ladezeit in bildlastigen Templates wie dem MovieTemplate + Hier können bis zu 3 Filter gespeichert werden, die dann im HTML-Export Menü ausgewählt werden können + Verschiedene Filtertypen die für den Aufbau des Filters verwendet werden können + Ausgewählten Filter speichern + Ausgewählten Filter zurücksetzen - diff --git a/Addons/generic.EmberCore.MovieExport/Langs/generic.EmberCore.MovieExporter.German_(de_DE).xml b/Addons/generic.EmberCore.MovieExport/Langs/generic.EmberCore.MovieExporter.German_(de_DE).xml index 75750f9..1028bae 100644 --- a/Addons/generic.EmberCore.MovieExport/Langs/generic.EmberCore.MovieExporter.German_(de_DE).xml +++ b/Addons/generic.EmberCore.MovieExport/Langs/generic.EmberCore.MovieExporter.German_(de_DE).xml @@ -1,19 +1,30 @@ - - Quellverzeichnis - Video Flag - Audio Flag - Bereite Vorschau vor, bitte warten... - Quellverzeichnis - Lade, bitte warten... - Speichere allen Dateien, bitte warten... - Filme exportieren - Zurücksetzen - Filter - in - Stelle Filmliste zusammen... - Zusammenstellung abbrechen... - Template - Export Film Liste + Filmlisten Exporter + Quellverzeichnis + Video Flag + Audio Flag + Bereite Vorschau vor, bitte warten... + Quellverzeichnis + Lade, bitte warten... + Speichere allen Dateien, bitte warten... + Filme exportieren + Zurücksetzen + Filter + in + Stelle Filmliste zusammen... + Zusammenstellung abbrechen... + Template + Exportiere Filmliste + Exportiere Serien (BETA!) + Filter erstellen + Export Verzeichnis + Fanart Breite [px] + Poster Höhe [px] + Filtereinstellungen + Bildeinstellungen + Allgemeine Einstellungen + Filter speichern + Filter zurücksetzen + HTML generieren... + Template speichern unter: - diff --git a/Addons/generic.EmberCore.MovieExport/Langs/generic.EmberCore.MovieExporter.Italian_(it_IT)-Help.xml b/Addons/generic.EmberCore.MovieExport/Langs/generic.EmberCore.MovieExporter.Italian_(it_IT)-Help.xml new file mode 100644 index 0000000..690be1c --- /dev/null +++ b/Addons/generic.EmberCore.MovieExport/Langs/generic.EmberCore.MovieExporter.Italian_(it_IT)-Help.xml @@ -0,0 +1,11 @@ + + Abilita o disabilita questo modulo. + The folder where the created HTML Template is stored + The desired width of exported fanart. A smaller value results in smaller files and faster loading times + The desired width of exported poster. A smaller value results in smaller files and faster loading times + 100 means no quality loss, but also biggest filesize - set smaller value to enhance loading times! + Three filters which an can be used to store different filters. Those can be selected in Movie Export Interface + Different filtertypes to choose from + Save selected filter + Reset selected filter + diff --git a/Addons/generic.EmberCore.MovieExport/Langs/generic.EmberCore.MovieExporter.Italian_(it_IT).xml b/Addons/generic.EmberCore.MovieExport/Langs/generic.EmberCore.MovieExporter.Italian_(it_IT).xml new file mode 100644 index 0000000..f3dfa55 --- /dev/null +++ b/Addons/generic.EmberCore.MovieExport/Langs/generic.EmberCore.MovieExporter.Italian_(it_IT).xml @@ -0,0 +1,30 @@ + + Esportatore Lista Film + Cartella Sorgente + Bandiera Video + Bandiera Audio + Anteprima in preparazione. Attendere... + Cartella Sorgente + Carico. Attendere... + Salvataggio di tutti i files. Attendere... + Esporta Films + Reset + Filtro + in + Compilazione Lista Film + Cancellazione Compilazione... + Modello + Esporta Lista Film + Export TV Shows + Generate Filter + Export Path + Fanart Width [px] + Poster Height [px] + Filter Settings + Image Settings + General Settings + Save Filter + Reset Filter + Generate HTML... + Template saved to: + diff --git a/Addons/generic.EmberCore.MovieExport/Langs/generic.EmberCore.MovieExporter.Norwegian_(no_NO)-Help.xml b/Addons/generic.EmberCore.MovieExport/Langs/generic.EmberCore.MovieExporter.Norwegian_(no_NO)-Help.xml new file mode 100644 index 0000000..17423a5 --- /dev/null +++ b/Addons/generic.EmberCore.MovieExport/Langs/generic.EmberCore.MovieExporter.Norwegian_(no_NO)-Help.xml @@ -0,0 +1,11 @@ + + Slå på eller slå av denne modulen. + Mappen hvor den lagrede HTMLtemplaten befinner seg + Ønskede bredde av eksportert fankunst. En lavere verdi resulterer i mindre filer, og raskere lastetider. + Ønsket bredde av eksportert plakatt. Lavere verdi resulterer i mindre filer, og raskere lastetider. + 100 betyr null kvalitetstap, men også størst filstørrelse. Velg lavere verdi for raskere lastetider! + Tre filtere kan bli brukt for å lagre forskjellige filtere. Disse kan bli valgt i Filmeksporterings-grensesnittet. + Forskjellige filtertype å velge fra + Lagre valgt filter + Nullstill valgt filter. + diff --git a/Addons/generic.EmberCore.MovieExport/Langs/generic.EmberCore.MovieExporter.Norwegian_(no_NO).xml b/Addons/generic.EmberCore.MovieExport/Langs/generic.EmberCore.MovieExporter.Norwegian_(no_NO).xml new file mode 100644 index 0000000..3ae76ba --- /dev/null +++ b/Addons/generic.EmberCore.MovieExport/Langs/generic.EmberCore.MovieExporter.Norwegian_(no_NO).xml @@ -0,0 +1,30 @@ + + Filmliste-eksport + Kildemappe + Videoflagg + Lydflagg + Forbereder sniktitt. Vennligst vent... + Kildemappe + Laster... Vennligst vent... + Lagrer alle filer. Vennligst vent... + Eksportér filmer + Nullstill + Filter + inn + Kompilerer filmliste... + Kansellerer kompilasjon... + Templat + Exportér filmliste + Eksportér TV-serier + Generér filter + Eksportérbane + Fankunst-bredde [px] + Plakat-høyde [px] + Filterinnstillinger + Bildeinnstillinger + Generelle innstillinger + Lagre filter + Tilbakestill filter + Generér HTML... + Templat lagret til: + diff --git a/Addons/generic.EmberCore.MovieExport/Langs/generic.EmberCore.MovieExporter.Spanish_(es_ES)-Help.xml b/Addons/generic.EmberCore.MovieExport/Langs/generic.EmberCore.MovieExporter.Spanish_(es_ES)-Help.xml new file mode 100644 index 0000000..7bd8240 --- /dev/null +++ b/Addons/generic.EmberCore.MovieExport/Langs/generic.EmberCore.MovieExporter.Spanish_(es_ES)-Help.xml @@ -0,0 +1,11 @@ + + Habilitar o deshabilitar este módulo. + El directorio donde se guarda la Plantilla HTML creada + La anchura deseada para el fanart exportado. Un valor más pequeño da como resultado ficheros más pequeños y tiempos de carga más rápidos. + La anchura deseada para el poster exportado. Un valor más pequeño da como resultado ficheros más pequeños + 100 significa sin pérdida de calidad, pero tambien un tamaño de fichero más grande - Pon valores más pequeños para mejorar tiempos de carga! + Tres filtros que se pueden usar para almacenar diferentes filtros. Aquellos que se pueden seleccionar en el interfaz de Exportar Películas + Tipos de filtros diferentes para elegir + Guardar filtro seleccionado + Limpiar filtro seleccionado + diff --git a/Addons/generic.EmberCore.MovieExport/Langs/generic.EmberCore.MovieExporter.Spanish_(es_ES).xml b/Addons/generic.EmberCore.MovieExport/Langs/generic.EmberCore.MovieExporter.Spanish_(es_ES).xml new file mode 100644 index 0000000..6e46ddc --- /dev/null +++ b/Addons/generic.EmberCore.MovieExport/Langs/generic.EmberCore.MovieExporter.Spanish_(es_ES).xml @@ -0,0 +1,30 @@ + + Exportador de Lista de Películas + Folder Fuente + Indicador de Vídeo + Indicador de Audio + Preparando vista previa. Por favor espere... + Folder Fuente + Cargando. Por favor espere... + Guardando todos los archivos. Por favor espere... + Exportar Películas + Volver al inicio + Filtrar + en + Compilando Lista de Películas... + Cancelando la Compilación... + Plantilla + Exportar Lista de Películas + Exportar Series de TV + Generar Filtro + Exportar Directorio + Anchura del Fanart [px] + Altura del Poster [px] + Ajustes de Filtros + Ajustes de Imagen + Ajustes Generales + Guardar Filtro + Limpiar Filtros + Generar HTML... + Plantilla guardada en: + diff --git a/Addons/generic.EmberCore.MovieExport/Module.MovieExporter.vb b/Addons/generic.EmberCore.MovieExport/Module.MovieExporter.vb index 37b3e06..5066c4e 100644 --- a/Addons/generic.EmberCore.MovieExport/Module.MovieExporter.vb +++ b/Addons/generic.EmberCore.MovieExport/Module.MovieExporter.vb @@ -31,6 +31,7 @@ Public Class MovieExporterModule Private _enabled As Boolean = False Private _Name As String = "Movie List Exporter" Private _setup As frmSettingsHolder + Private MySettings As New _MySettings #End Region 'Fields @@ -123,12 +124,26 @@ Public Class MovieExporterModule Sub Init(ByVal sAssemblyName As String, ByVal sExecutable As String) Implements Interfaces.EmberExternalModule.Init _AssemblyName = sAssemblyName - Master.eLang.LoadLanguage(Master.eSettings.Language, sExecutable) - End Sub + Master.eLang.LoadLanguage(Master.eSettings.Language, sExecutable) + LoadSettings() + End Sub + + Function InjectSetup() As Containers.SettingsPanel Implements Interfaces.EmberExternalModule.InjectSetup Me._setup = New frmSettingsHolder Me._setup.cbEnabled.Checked = Me._enabled + + _setup.txt_exportmoviepath.Text = MySettings.ExportPath + _setup.chkExportTVShows.Checked = MySettings.ExportTVShows + _setup.cbo_exportmovieposter.Text = CStr(MySettings.ExportPosterHeight) + _setup.cbo_exportmoviefanart.Text = CStr(MySettings.ExportFanartWidth) + _setup.cbo_exportmoviequality.Text = CStr(MySettings.ExportImageQuality) + _setup.lbl_exportmoviefilter1saved.Text = MySettings.ExportFilter1 + _setup.lbl_exportmoviefilter2saved.Text = MySettings.ExportFilter2 + _setup.lbl_exportmoviefilter3saved.Text = MySettings.ExportFilter3 + + Dim SPanel As New Containers.SettingsPanel SPanel.Name = Me._Name SPanel.Text = Master.eLang.GetString(0, "Movie List Exporter") @@ -152,10 +167,60 @@ Public Class MovieExporterModule RaiseEvent GenericEvent(Enums.ModuleEventType.Generic, New List(Of Object)(New Object() {"controlsenabled", True})) End Sub + Sub LoadSettings() + MySettings.ExportPath = AdvancedSettings.GetSetting("ExportPath", "") + MySettings.ExportTVShows = AdvancedSettings.GetBooleanSetting("ExportTVShows", False) + MySettings.ExportPosterHeight = CInt(AdvancedSettings.GetSetting("ExportPosterHeight", "300")) + MySettings.ExportFanartWidth = CInt(AdvancedSettings.GetSetting("ExportFanartWidth", "800")) + MySettings.ExportFilter1 = AdvancedSettings.GetSetting("ExportFilter1", "-") + MySettings.ExportFilter2 = AdvancedSettings.GetSetting("ExportFilter2", "-") + MySettings.ExportFilter3 = AdvancedSettings.GetSetting("ExportFilter3", "-") + MySettings.ExportImageQuality = CInt(AdvancedSettings.GetSetting("ExportImageQuality", "70")) + End Sub + Sub SaveSetup(ByVal DoDispose As Boolean) Implements Interfaces.EmberExternalModule.SaveSetup Me.Enabled = Me._setup.cbEnabled.Checked + MySettings.ExportPath = _setup.txt_exportmoviepath.Text + MySettings.ExportTVShows = _setup.chkExportTVShows.Checked + MySettings.ExportPosterHeight = CInt(_setup.cbo_exportmovieposter.Text) + MySettings.ExportFanartWidth = CInt(_setup.cbo_exportmoviefanart.Text) + MySettings.ExportFilter1 = _setup.lbl_exportmoviefilter1saved.Text + MySettings.ExportFilter2 = _setup.lbl_exportmoviefilter2saved.Text + MySettings.ExportFilter3 = _setup.lbl_exportmoviefilter3saved.Text + MySettings.ExportImageQuality = CInt(_setup.cbo_exportmoviequality.Text) + SaveSettings() + End Sub + + Sub SaveSettings() + AdvancedSettings.SetSetting("ExportPath", MySettings.ExportPath) + AdvancedSettings.SetBooleanSetting("ExportTVShows", MySettings.ExportTVShows) + AdvancedSettings.SetSetting("ExportPosterHeight", CStr(MySettings.ExportPosterHeight)) + AdvancedSettings.SetSetting("ExportFanartWidth", CStr(MySettings.ExportFanartWidth)) + AdvancedSettings.SetSetting("ExportFilter1", MySettings.ExportFilter1) + AdvancedSettings.SetSetting("ExportFilter2", MySettings.ExportFilter2) + AdvancedSettings.SetSetting("ExportFilter3", MySettings.ExportFilter3) + AdvancedSettings.SetSetting("ExportImageQuality", CStr(MySettings.ExportImageQuality)) End Sub #End Region 'Methods +#Region "Nested Types" + + Structure _MySettings + +#Region "Fields" + + Dim ExportPath As String + Dim ExportFanartWidth As Integer + Dim ExportPosterHeight As Integer + Dim ExportFilter1 As String + Dim ExportFilter2 As String + Dim ExportFilter3 As String + Dim ExportTVShows As Boolean + Dim ExportImageQuality As Integer +#End Region 'Fields + + End Structure + +#End Region 'Nested Types End Class \ No newline at end of file diff --git a/Addons/generic.EmberCore.MovieExport/My Project/AssemblyInfo.vb b/Addons/generic.EmberCore.MovieExport/My Project/AssemblyInfo.vb index 841ad70..09d8bfd 100644 --- a/Addons/generic.EmberCore.MovieExport/My Project/AssemblyInfo.vb +++ b/Addons/generic.EmberCore.MovieExport/My Project/AssemblyInfo.vb @@ -9,7 +9,7 @@ Imports System.Runtime.InteropServices ' Review the values of the assembly attributes - + @@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices ' by using the '*' as shown below: ' - - + + diff --git a/Addons/generic.EmberCore.MovieExport/dlgExportMovies.designer.vb b/Addons/generic.EmberCore.MovieExport/dlgExportMovies.designer.vb index 8260205..46b7bbf 100644 --- a/Addons/generic.EmberCore.MovieExport/dlgExportMovies.designer.vb +++ b/Addons/generic.EmberCore.MovieExport/dlgExportMovies.designer.vb @@ -5,36 +5,27 @@ Partial Class dlgExportMovies #Region "Fields" Friend WithEvents btnCancel As System.Windows.Forms.Button - Friend WithEvents btnSource As System.Windows.Forms.Button - Friend WithEvents cbSearch As System.Windows.Forms.ComboBox - Friend WithEvents cbTemplate As System.Windows.Forms.ComboBox + Friend WithEvents cbTemplate As System.Windows.Forms.ComboBox Friend WithEvents Close_Button As System.Windows.Forms.Button Friend WithEvents ImageList1 As System.Windows.Forms.ImageList - Friend WithEvents Label1 As System.Windows.Forms.Label - Friend WithEvents Label2 As System.Windows.Forms.Label - Friend WithEvents lblCanceling As System.Windows.Forms.Label - Friend WithEvents lblCompiling As System.Windows.Forms.Label - Friend WithEvents lblFile As System.Windows.Forms.Label - Friend WithEvents lblIn As System.Windows.Forms.Label - Friend WithEvents lstSources As System.Windows.Forms.CheckedListBox - Friend WithEvents pbCompile As System.Windows.Forms.ProgressBar - Friend WithEvents pnlBG As System.Windows.Forms.Panel - Friend WithEvents pnlBottomMain As System.Windows.Forms.Panel - Friend WithEvents pnlCancel As System.Windows.Forms.Panel - Friend WithEvents pnlSearch As System.Windows.Forms.Panel - Friend WithEvents Reset_Button As System.Windows.Forms.Button - Friend WithEvents Save_Button As System.Windows.Forms.Button - Friend WithEvents Search_Button As System.Windows.Forms.Button - Friend WithEvents TableLayoutPanel1 As System.Windows.Forms.TableLayoutPanel - Friend WithEvents txtSearch As System.Windows.Forms.TextBox - Friend WithEvents wbMovieList As System.Windows.Forms.WebBrowser + Friend WithEvents lblFilterSelected As System.Windows.Forms.Label + Friend WithEvents Label2 As System.Windows.Forms.Label + Friend WithEvents lblCanceling As System.Windows.Forms.Label + Friend WithEvents lblCompiling As System.Windows.Forms.Label + Friend WithEvents lblFile As System.Windows.Forms.Label + Friend WithEvents pbCompile As System.Windows.Forms.ProgressBar + Friend WithEvents pnlBG As System.Windows.Forms.Panel + Friend WithEvents pnlBottomMain As System.Windows.Forms.Panel + Friend WithEvents pnlCancel As System.Windows.Forms.Panel + Friend WithEvents Save_Button As System.Windows.Forms.Button + Friend WithEvents wbMovieList As System.Windows.Forms.WebBrowser 'Required by the Windows Form Designer Private components As System.ComponentModel.IContainer - #End Region 'Fields +#End Region 'Fields - #Region "Methods" +#Region "Methods" 'Form overrides dispose to clean up the component list. _ @@ -53,326 +44,241 @@ Partial Class dlgExportMovies 'Do not modify it using the code editor. _ Private Sub InitializeComponent() - Me.components = New System.ComponentModel.Container() - Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(dlgExportMovies)) - Me.TableLayoutPanel1 = New System.Windows.Forms.TableLayoutPanel() - Me.Save_Button = New System.Windows.Forms.Button() - Me.Close_Button = New System.Windows.Forms.Button() - Me.pnlBottomMain = New System.Windows.Forms.Panel() - Me.pnlSearch = New System.Windows.Forms.Panel() - Me.btnSource = New System.Windows.Forms.Button() - Me.ImageList1 = New System.Windows.Forms.ImageList(Me.components) - Me.Reset_Button = New System.Windows.Forms.Button() - Me.Label1 = New System.Windows.Forms.Label() - Me.Search_Button = New System.Windows.Forms.Button() - Me.lblIn = New System.Windows.Forms.Label() - Me.cbSearch = New System.Windows.Forms.ComboBox() - Me.txtSearch = New System.Windows.Forms.TextBox() - Me.Label2 = New System.Windows.Forms.Label() - Me.cbTemplate = New System.Windows.Forms.ComboBox() - Me.pnlCancel = New System.Windows.Forms.Panel() - Me.btnCancel = New System.Windows.Forms.Button() - Me.pbCompile = New System.Windows.Forms.ProgressBar() - Me.lblCompiling = New System.Windows.Forms.Label() - Me.lblFile = New System.Windows.Forms.Label() - Me.lblCanceling = New System.Windows.Forms.Label() - Me.pnlBG = New System.Windows.Forms.Panel() - Me.wbMovieList = New System.Windows.Forms.WebBrowser() - Me.lstSources = New System.Windows.Forms.CheckedListBox() - Me.TableLayoutPanel1.SuspendLayout() - Me.pnlBottomMain.SuspendLayout() - Me.pnlSearch.SuspendLayout() - Me.pnlCancel.SuspendLayout() - Me.pnlBG.SuspendLayout() - Me.SuspendLayout() - ' - 'TableLayoutPanel1 - ' - Me.TableLayoutPanel1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.TableLayoutPanel1.ColumnCount = 2 - Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) - Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) - Me.TableLayoutPanel1.Controls.Add(Me.Save_Button, 0, 0) - Me.TableLayoutPanel1.Controls.Add(Me.Close_Button, 1, 0) - Me.TableLayoutPanel1.Location = New System.Drawing.Point(886, 6) - Me.TableLayoutPanel1.Name = "TableLayoutPanel1" - Me.TableLayoutPanel1.RowCount = 1 - Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) - Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 29.0!)) - Me.TableLayoutPanel1.Size = New System.Drawing.Size(146, 29) - Me.TableLayoutPanel1.TabIndex = 0 - ' - 'Save_Button - ' - Me.Save_Button.Anchor = System.Windows.Forms.AnchorStyles.None - Me.Save_Button.Enabled = False - Me.Save_Button.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.Save_Button.Location = New System.Drawing.Point(3, 3) - Me.Save_Button.Name = "Save_Button" - Me.Save_Button.Size = New System.Drawing.Size(67, 23) - Me.Save_Button.TabIndex = 0 - Me.Save_Button.Text = "Save" - ' - 'Close_Button - ' - Me.Close_Button.Anchor = System.Windows.Forms.AnchorStyles.None - Me.Close_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel - Me.Close_Button.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.Close_Button.Location = New System.Drawing.Point(76, 3) - Me.Close_Button.Name = "Close_Button" - Me.Close_Button.Size = New System.Drawing.Size(67, 23) - Me.Close_Button.TabIndex = 1 - Me.Close_Button.Text = "Close" - ' - 'pnlBottomMain - ' - Me.pnlBottomMain.Controls.Add(Me.pnlSearch) - Me.pnlBottomMain.Controls.Add(Me.Label2) - Me.pnlBottomMain.Controls.Add(Me.cbTemplate) - Me.pnlBottomMain.Controls.Add(Me.TableLayoutPanel1) - Me.pnlBottomMain.Location = New System.Drawing.Point(0, 502) - Me.pnlBottomMain.Name = "pnlBottomMain" - Me.pnlBottomMain.Size = New System.Drawing.Size(1035, 48) - Me.pnlBottomMain.TabIndex = 0 - ' - 'pnlSearch - ' - Me.pnlSearch.Controls.Add(Me.btnSource) - Me.pnlSearch.Controls.Add(Me.Reset_Button) - Me.pnlSearch.Controls.Add(Me.Label1) - Me.pnlSearch.Controls.Add(Me.Search_Button) - Me.pnlSearch.Controls.Add(Me.lblIn) - Me.pnlSearch.Controls.Add(Me.cbSearch) - Me.pnlSearch.Controls.Add(Me.txtSearch) - Me.pnlSearch.Enabled = False - Me.pnlSearch.Location = New System.Drawing.Point(214, 9) - Me.pnlSearch.Name = "pnlSearch" - Me.pnlSearch.Size = New System.Drawing.Size(489, 28) - Me.pnlSearch.TabIndex = 3 - ' - 'btnSource - ' - Me.btnSource.ImageIndex = 0 - Me.btnSource.ImageList = Me.ImageList1 - Me.btnSource.Location = New System.Drawing.Point(196, 4) - Me.btnSource.Name = "btnSource" - Me.btnSource.Size = New System.Drawing.Size(19, 23) - Me.btnSource.TabIndex = 2 - Me.btnSource.UseVisualStyleBackColor = True - Me.btnSource.Visible = False - ' - 'ImageList1 - ' - Me.ImageList1.ImageStream = CType(resources.GetObject("ImageList1.ImageStream"), System.Windows.Forms.ImageListStreamer) - Me.ImageList1.TransparentColor = System.Drawing.Color.Transparent - Me.ImageList1.Images.SetKeyName(0, "asc.png") - Me.ImageList1.Images.SetKeyName(1, "desc.png") - ' - 'Reset_Button - ' - Me.Reset_Button.Enabled = False - Me.Reset_Button.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.Reset_Button.Location = New System.Drawing.Point(416, 2) - Me.Reset_Button.Name = "Reset_Button" - Me.Reset_Button.Size = New System.Drawing.Size(67, 23) - Me.Reset_Button.TabIndex = 6 - Me.Reset_Button.Text = "Reset" - ' - 'Label1 - ' - Me.Label1.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.Label1.Location = New System.Drawing.Point(15, 6) - Me.Label1.Name = "Label1" - Me.Label1.Size = New System.Drawing.Size(51, 14) - Me.Label1.TabIndex = 0 - Me.Label1.Text = "Filter" - Me.Label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight - ' - 'Search_Button - ' - Me.Search_Button.Enabled = False - Me.Search_Button.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.Search_Button.Location = New System.Drawing.Point(343, 2) - Me.Search_Button.Name = "Search_Button" - Me.Search_Button.Size = New System.Drawing.Size(67, 23) - Me.Search_Button.TabIndex = 5 - Me.Search_Button.Text = "Apply" - ' - 'lblIn - ' - Me.lblIn.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblIn.Location = New System.Drawing.Point(209, 7) - Me.lblIn.Name = "lblIn" - Me.lblIn.Size = New System.Drawing.Size(32, 13) - Me.lblIn.TabIndex = 3 - Me.lblIn.Text = "in" - Me.lblIn.TextAlign = System.Drawing.ContentAlignment.MiddleCenter - ' - 'cbSearch - ' - Me.cbSearch.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList - Me.cbSearch.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.cbSearch.FormattingEnabled = True - Me.cbSearch.Location = New System.Drawing.Point(243, 3) - Me.cbSearch.Name = "cbSearch" - Me.cbSearch.Size = New System.Drawing.Size(94, 21) - Me.cbSearch.TabIndex = 4 - ' - 'txtSearch - ' - Me.txtSearch.Location = New System.Drawing.Point(72, 4) - Me.txtSearch.Name = "txtSearch" - Me.txtSearch.Size = New System.Drawing.Size(123, 22) - Me.txtSearch.TabIndex = 1 - ' - 'Label2 - ' - Me.Label2.AutoSize = True - Me.Label2.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.Label2.Location = New System.Drawing.Point(11, 17) - Me.Label2.Name = "Label2" - Me.Label2.Size = New System.Drawing.Size(55, 13) - Me.Label2.TabIndex = 1 - Me.Label2.Text = "Template" - Me.Label2.TextAlign = System.Drawing.ContentAlignment.MiddleRight - ' - 'cbTemplate - ' - Me.cbTemplate.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList - Me.cbTemplate.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.cbTemplate.FormattingEnabled = True - Me.cbTemplate.Location = New System.Drawing.Point(68, 13) - Me.cbTemplate.Name = "cbTemplate" - Me.cbTemplate.Size = New System.Drawing.Size(140, 21) - Me.cbTemplate.TabIndex = 2 - ' - 'pnlCancel - ' - Me.pnlCancel.BackColor = System.Drawing.Color.LightGray - Me.pnlCancel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.pnlCancel.Controls.Add(Me.btnCancel) - Me.pnlCancel.Controls.Add(Me.pbCompile) - Me.pnlCancel.Controls.Add(Me.lblCompiling) - Me.pnlCancel.Controls.Add(Me.lblFile) - Me.pnlCancel.Controls.Add(Me.lblCanceling) - Me.pnlCancel.Location = New System.Drawing.Point(242, 12) - Me.pnlCancel.Name = "pnlCancel" - Me.pnlCancel.Size = New System.Drawing.Size(403, 76) - Me.pnlCancel.TabIndex = 1 - Me.pnlCancel.Visible = False - ' - 'btnCancel - ' - Me.btnCancel.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.btnCancel.Image = CType(resources.GetObject("btnCancel.Image"), System.Drawing.Image) - Me.btnCancel.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnCancel.Location = New System.Drawing.Point(298, 3) - Me.btnCancel.Name = "btnCancel" - Me.btnCancel.Size = New System.Drawing.Size(100, 30) - Me.btnCancel.TabIndex = 2 - Me.btnCancel.Text = "Cancel" - Me.btnCancel.TextAlign = System.Drawing.ContentAlignment.MiddleRight - Me.btnCancel.UseVisualStyleBackColor = True - ' - 'pbCompile - ' - Me.pbCompile.Location = New System.Drawing.Point(8, 36) - Me.pbCompile.Name = "pbCompile" - Me.pbCompile.Size = New System.Drawing.Size(388, 18) - Me.pbCompile.Style = System.Windows.Forms.ProgressBarStyle.Continuous - Me.pbCompile.TabIndex = 3 - ' - 'lblCompiling - ' - Me.lblCompiling.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblCompiling.Location = New System.Drawing.Point(3, 11) - Me.lblCompiling.Name = "lblCompiling" - Me.lblCompiling.Size = New System.Drawing.Size(395, 20) - Me.lblCompiling.TabIndex = 0 - Me.lblCompiling.Text = "Compiling Movie List..." - Me.lblCompiling.TextAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.lblCompiling.Visible = False - ' - 'lblFile - ' - Me.lblFile.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblFile.Location = New System.Drawing.Point(3, 57) - Me.lblFile.Name = "lblFile" - Me.lblFile.Size = New System.Drawing.Size(395, 13) - Me.lblFile.TabIndex = 4 - Me.lblFile.Text = "File ..." - ' - 'lblCanceling - ' - Me.lblCanceling.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblCanceling.Location = New System.Drawing.Point(110, 12) - Me.lblCanceling.Name = "lblCanceling" - Me.lblCanceling.Size = New System.Drawing.Size(186, 20) - Me.lblCanceling.TabIndex = 1 - Me.lblCanceling.Text = "Canceling Compilation..." - Me.lblCanceling.TextAlign = System.Drawing.ContentAlignment.MiddleCenter - Me.lblCanceling.Visible = False - ' - 'pnlBG - ' - Me.pnlBG.AutoScroll = True - Me.pnlBG.Controls.Add(Me.pnlCancel) - Me.pnlBG.Controls.Add(Me.wbMovieList) - Me.pnlBG.Dock = System.Windows.Forms.DockStyle.Fill - Me.pnlBG.Location = New System.Drawing.Point(0, 0) - Me.pnlBG.Name = "pnlBG" - Me.pnlBG.Size = New System.Drawing.Size(1035, 550) - Me.pnlBG.TabIndex = 2 - ' - 'wbMovieList - ' - Me.wbMovieList.Location = New System.Drawing.Point(0, 0) - Me.wbMovieList.MinimumSize = New System.Drawing.Size(20, 20) - Me.wbMovieList.Name = "wbMovieList" - Me.wbMovieList.Size = New System.Drawing.Size(1034, 500) - Me.wbMovieList.TabIndex = 0 - Me.wbMovieList.Visible = False - ' - 'lstSources - ' - Me.lstSources.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lstSources.FormattingEnabled = True - Me.lstSources.Location = New System.Drawing.Point(286, 442) - Me.lstSources.Name = "lstSources" - Me.lstSources.Size = New System.Drawing.Size(123, 89) - Me.lstSources.TabIndex = 1 - Me.lstSources.Visible = False - ' - 'dlgExportMovies - ' - Me.AcceptButton = Me.Save_Button - Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi - Me.AutoScroll = True - Me.CancelButton = Me.Close_Button - Me.ClientSize = New System.Drawing.Size(1035, 550) - Me.Controls.Add(Me.lstSources) - Me.Controls.Add(Me.pnlBottomMain) - Me.Controls.Add(Me.pnlBG) - Me.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog - Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) - Me.MaximizeBox = False - Me.MinimizeBox = False - Me.Name = "dlgExportMovies" - Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Export Movies" - Me.TableLayoutPanel1.ResumeLayout(False) - Me.pnlBottomMain.ResumeLayout(False) - Me.pnlBottomMain.PerformLayout() - Me.pnlSearch.ResumeLayout(False) - Me.pnlSearch.PerformLayout() - Me.pnlCancel.ResumeLayout(False) - Me.pnlBG.ResumeLayout(False) - Me.ResumeLayout(False) + Me.components = New System.ComponentModel.Container() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(dlgExportMovies)) + Me.Save_Button = New System.Windows.Forms.Button() + Me.Close_Button = New System.Windows.Forms.Button() + Me.pnlBottomMain = New System.Windows.Forms.Panel() + Me.btn_BuildHTML = New System.Windows.Forms.Button() + Me.lblFilterSelected = New System.Windows.Forms.Label() + Me.cbo_SelectedFilter = New System.Windows.Forms.ComboBox() + Me.Label2 = New System.Windows.Forms.Label() + Me.cbTemplate = New System.Windows.Forms.ComboBox() + Me.ImageList1 = New System.Windows.Forms.ImageList(Me.components) + Me.pnlCancel = New System.Windows.Forms.Panel() + Me.btnCancel = New System.Windows.Forms.Button() + Me.pbCompile = New System.Windows.Forms.ProgressBar() + Me.lblCompiling = New System.Windows.Forms.Label() + Me.lblFile = New System.Windows.Forms.Label() + Me.lblCanceling = New System.Windows.Forms.Label() + Me.pnlBG = New System.Windows.Forms.Panel() + Me.wbMovieList = New System.Windows.Forms.WebBrowser() + Me.pnlBottomMain.SuspendLayout() + Me.pnlCancel.SuspendLayout() + Me.pnlBG.SuspendLayout() + Me.SuspendLayout() + ' + 'Save_Button + ' + Me.Save_Button.Anchor = System.Windows.Forms.AnchorStyles.None + Me.Save_Button.Enabled = False + Me.Save_Button.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Save_Button.Location = New System.Drawing.Point(779, 9) + Me.Save_Button.Name = "Save_Button" + Me.Save_Button.Size = New System.Drawing.Size(119, 31) + Me.Save_Button.TabIndex = 6 + Me.Save_Button.Text = "Save" + ' + 'Close_Button + ' + Me.Close_Button.Anchor = System.Windows.Forms.AnchorStyles.None + Me.Close_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.Close_Button.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Close_Button.Location = New System.Drawing.Point(904, 9) + Me.Close_Button.Name = "Close_Button" + Me.Close_Button.Size = New System.Drawing.Size(119, 31) + Me.Close_Button.TabIndex = 1 + Me.Close_Button.Text = "Close" + ' + 'pnlBottomMain + ' + Me.pnlBottomMain.Controls.Add(Me.Close_Button) + Me.pnlBottomMain.Controls.Add(Me.btn_BuildHTML) + Me.pnlBottomMain.Controls.Add(Me.Save_Button) + Me.pnlBottomMain.Controls.Add(Me.lblFilterSelected) + Me.pnlBottomMain.Controls.Add(Me.cbo_SelectedFilter) + Me.pnlBottomMain.Controls.Add(Me.Label2) + Me.pnlBottomMain.Controls.Add(Me.cbTemplate) + Me.pnlBottomMain.Location = New System.Drawing.Point(0, 502) + Me.pnlBottomMain.Name = "pnlBottomMain" + Me.pnlBottomMain.Size = New System.Drawing.Size(1035, 48) + Me.pnlBottomMain.TabIndex = 0 + ' + 'btn_BuildHTML + ' + Me.btn_BuildHTML.Anchor = System.Windows.Forms.AnchorStyles.None + Me.btn_BuildHTML.Enabled = False + Me.btn_BuildHTML.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.btn_BuildHTML.Location = New System.Drawing.Point(604, 9) + Me.btn_BuildHTML.Name = "btn_BuildHTML" + Me.btn_BuildHTML.Size = New System.Drawing.Size(169, 31) + Me.btn_BuildHTML.TabIndex = 5 + Me.btn_BuildHTML.Text = "Generate Template" + ' + 'lblFilterSelected + ' + Me.lblFilterSelected.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblFilterSelected.Location = New System.Drawing.Point(288, 6) + Me.lblFilterSelected.Name = "lblFilterSelected" + Me.lblFilterSelected.Size = New System.Drawing.Size(43, 16) + Me.lblFilterSelected.TabIndex = 0 + Me.lblFilterSelected.Text = "Filter" + Me.lblFilterSelected.TextAlign = System.Drawing.ContentAlignment.MiddleRight + ' + 'cbo_SelectedFilter + ' + Me.cbo_SelectedFilter.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cbo_SelectedFilter.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.cbo_SelectedFilter.FormattingEnabled = True + Me.cbo_SelectedFilter.Items.AddRange(New Object() {"-", "Filter 1", "Filter 2", "Filter 3"}) + Me.cbo_SelectedFilter.Location = New System.Drawing.Point(337, 9) + Me.cbo_SelectedFilter.Name = "cbo_SelectedFilter" + Me.cbo_SelectedFilter.Size = New System.Drawing.Size(138, 21) + Me.cbo_SelectedFilter.TabIndex = 4 + ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Label2.Location = New System.Drawing.Point(11, 9) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(54, 13) + Me.Label2.TabIndex = 1 + Me.Label2.Text = "Template" + Me.Label2.TextAlign = System.Drawing.ContentAlignment.MiddleRight + ' + 'cbTemplate + ' + Me.cbTemplate.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cbTemplate.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.cbTemplate.FormattingEnabled = True + Me.cbTemplate.Location = New System.Drawing.Point(71, 9) + Me.cbTemplate.Name = "cbTemplate" + Me.cbTemplate.Size = New System.Drawing.Size(195, 21) + Me.cbTemplate.TabIndex = 2 + ' + 'ImageList1 + ' + Me.ImageList1.ImageStream = CType(resources.GetObject("ImageList1.ImageStream"), System.Windows.Forms.ImageListStreamer) + Me.ImageList1.TransparentColor = System.Drawing.Color.Transparent + Me.ImageList1.Images.SetKeyName(0, "asc.png") + Me.ImageList1.Images.SetKeyName(1, "desc.png") + ' + 'pnlCancel + ' + Me.pnlCancel.BackColor = System.Drawing.Color.LightGray + Me.pnlCancel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.pnlCancel.Controls.Add(Me.btnCancel) + Me.pnlCancel.Controls.Add(Me.pbCompile) + Me.pnlCancel.Controls.Add(Me.lblCompiling) + Me.pnlCancel.Controls.Add(Me.lblFile) + Me.pnlCancel.Controls.Add(Me.lblCanceling) + Me.pnlCancel.Location = New System.Drawing.Point(242, 12) + Me.pnlCancel.Name = "pnlCancel" + Me.pnlCancel.Size = New System.Drawing.Size(403, 76) + Me.pnlCancel.TabIndex = 1 + Me.pnlCancel.Visible = False + ' + 'btnCancel + ' + Me.btnCancel.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.btnCancel.Image = CType(resources.GetObject("btnCancel.Image"), System.Drawing.Image) + Me.btnCancel.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnCancel.Location = New System.Drawing.Point(298, 3) + Me.btnCancel.Name = "btnCancel" + Me.btnCancel.Size = New System.Drawing.Size(100, 30) + Me.btnCancel.TabIndex = 2 + Me.btnCancel.Text = "Cancel" + Me.btnCancel.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnCancel.UseVisualStyleBackColor = True + ' + 'pbCompile + ' + Me.pbCompile.Location = New System.Drawing.Point(8, 36) + Me.pbCompile.Name = "pbCompile" + Me.pbCompile.Size = New System.Drawing.Size(388, 18) + Me.pbCompile.Style = System.Windows.Forms.ProgressBarStyle.Continuous + Me.pbCompile.TabIndex = 3 + ' + 'lblCompiling + ' + Me.lblCompiling.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblCompiling.Location = New System.Drawing.Point(3, 11) + Me.lblCompiling.Name = "lblCompiling" + Me.lblCompiling.Size = New System.Drawing.Size(395, 20) + Me.lblCompiling.TabIndex = 0 + Me.lblCompiling.Text = "Compiling Movie List..." + Me.lblCompiling.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.lblCompiling.Visible = False + ' + 'lblFile + ' + Me.lblFile.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblFile.Location = New System.Drawing.Point(3, 57) + Me.lblFile.Name = "lblFile" + Me.lblFile.Size = New System.Drawing.Size(395, 13) + Me.lblFile.TabIndex = 4 + Me.lblFile.Text = "File ..." + ' + 'lblCanceling + ' + Me.lblCanceling.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblCanceling.Location = New System.Drawing.Point(110, 12) + Me.lblCanceling.Name = "lblCanceling" + Me.lblCanceling.Size = New System.Drawing.Size(186, 20) + Me.lblCanceling.TabIndex = 1 + Me.lblCanceling.Text = "Canceling Compilation..." + Me.lblCanceling.TextAlign = System.Drawing.ContentAlignment.MiddleCenter + Me.lblCanceling.Visible = False + ' + 'pnlBG + ' + Me.pnlBG.AutoScroll = True + Me.pnlBG.Controls.Add(Me.pnlCancel) + Me.pnlBG.Controls.Add(Me.wbMovieList) + Me.pnlBG.Dock = System.Windows.Forms.DockStyle.Fill + Me.pnlBG.Location = New System.Drawing.Point(0, 0) + Me.pnlBG.Name = "pnlBG" + Me.pnlBG.Size = New System.Drawing.Size(1035, 550) + Me.pnlBG.TabIndex = 4 + ' + 'wbMovieList + ' + Me.wbMovieList.Location = New System.Drawing.Point(0, 0) + Me.wbMovieList.MinimumSize = New System.Drawing.Size(20, 20) + Me.wbMovieList.Name = "wbMovieList" + Me.wbMovieList.Size = New System.Drawing.Size(1034, 500) + Me.wbMovieList.TabIndex = 0 + Me.wbMovieList.Visible = False + ' + 'dlgExportMovies + ' + Me.AcceptButton = Me.Save_Button + Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi + Me.AutoScroll = True + Me.CancelButton = Me.Close_Button + Me.ClientSize = New System.Drawing.Size(1035, 550) + Me.Controls.Add(Me.pnlBottomMain) + Me.Controls.Add(Me.pnlBG) + Me.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "dlgExportMovies" + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "Export Movies" + Me.pnlBottomMain.ResumeLayout(False) + Me.pnlBottomMain.PerformLayout() + Me.pnlCancel.ResumeLayout(False) + Me.pnlBG.ResumeLayout(False) + Me.ResumeLayout(False) - End Sub + End Sub + Friend WithEvents cbo_SelectedFilter As System.Windows.Forms.ComboBox + Friend WithEvents btn_BuildHTML As System.Windows.Forms.Button - #End Region 'Methods +#End Region 'Methods End Class \ No newline at end of file diff --git a/Addons/generic.EmberCore.MovieExport/dlgExportMovies.resx b/Addons/generic.EmberCore.MovieExport/dlgExportMovies.resx index 960c211..c0760fd 100644 --- a/Addons/generic.EmberCore.MovieExport/dlgExportMovies.resx +++ b/Addons/generic.EmberCore.MovieExport/dlgExportMovies.resx @@ -125,7 +125,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABC - CQAAAk1TRnQBSQFMAgEBAgEAARwBAAEcAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + CQAAAk1TRnQBSQFMAgEBAgEAAVwBAAFcAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA @@ -170,31 +170,31 @@ - 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 + 9rMF7VAAAAAASUVORK5CYII= - 81 + 25 diff --git a/Addons/generic.EmberCore.MovieExport/dlgExportMovies.vb b/Addons/generic.EmberCore.MovieExport/dlgExportMovies.vb index 2cd365d..fb0ff1c 100644 --- a/Addons/generic.EmberCore.MovieExport/dlgExportMovies.vb +++ b/Addons/generic.EmberCore.MovieExport/dlgExportMovies.vb @@ -25,6 +25,7 @@ Imports EmberAPI Public Class dlgExportMovies + #Region "Fields" Friend WithEvents bwLoadInfo As New System.ComponentModel.BackgroundWorker @@ -45,6 +46,8 @@ Public Class dlgExportMovies Private workerCanceled As Boolean = False Private _movies As New List(Of Structures.DBMovie) + Private AllTVShowList As String = "" + #End Region 'Fields #Region "Methods" @@ -98,7 +101,9 @@ Public Class dlgExportMovies ' copy all the files of the current directory Dim ChildFile As FileInfo For Each ChildFile In SourceDir.GetFiles() + 'cocotus: Htm File should be copied too... If (ChildFile.Attributes And FileAttributes.Hidden) = FileAttributes.Hidden OrElse Path.GetExtension(ChildFile.FullName) = ".html" Then Continue For + If Overwrite Then ChildFile.CopyTo(Path.Combine(DestDir.FullName, ChildFile.Name), True) Else @@ -141,6 +146,17 @@ Public Class dlgExportMovies Me.bexportFanart = False Me.bexportFlags = False + Dim AllMovieSetList As String = "" + Try + AllMovieSetList = GetAllMovieSets() + Catch ex As Exception + + End Try + + + + + Dim tVid As New MediaInfo.Video Dim tAud As New MediaInfo.Audio Dim tRes As String = String.Empty @@ -158,10 +174,67 @@ Public Class dlgExportMovies pattern = File.ReadAllText(htmlPath) If pattern.Contains("<$NEED_POSTERS>") Then Me.bexportPosters = True + + 'cocotus, 2013/02 Export HTML expanded: configurable resizable images + '++++++POSTER++++++++ + strPosterSize = AdvancedSettings.GetSetting("ExportPosterHeight", "300") + + 'now consider the user selection + If strPosterSize <> "" Then + If strPosterSize = "300" Then + PosterSize.Width = 200 + PosterSize.Height = 300 + ElseIf strPosterSize = "400" Then + PosterSize.Width = 267 + PosterSize.Height = 400 + ElseIf strPosterSize = "600" Then + PosterSize.Width = 400 + PosterSize.Height = 600 + ElseIf strPosterSize = "800" Then + PosterSize.Width = 533 + PosterSize.Height = 800 + ElseIf strPosterSize = "original" Then + PosterSize.Width = 1 + PosterSize.Height = 1 + Else + PosterSize.Width = 200 + PosterSize.Height = 300 + End If + End If + + 'cocotus end + pattern = pattern.Replace("<$NEED_POSTERS>", String.Empty) End If If pattern.Contains("<$NEED_FANART>") Then Me.bexportFanart = True + 'cocotus, 2013/02 Export HTML expanded: configurable resizable images + '++++++Fanart++++++++ + strFanartSize = AdvancedSettings.GetSetting("ExportFanartWidth", "800") + + 'now consider the user selection + If strFanartSize <> "" Then + If strFanartSize = "400" Then + FanartSize.Width = 400 + FanartSize.Height = 225 + ElseIf strFanartSize = "600" Then + FanartSize.Width = 600 + FanartSize.Height = 338 + ElseIf strFanartSize = "800" Then + FanartSize.Width = 800 + FanartSize.Height = 450 + ElseIf strFanartSize = "1200" Then + FanartSize.Width = 1200 + FanartSize.Height = 675 + ElseIf strFanartSize = "original" Then + FanartSize.Width = 1 + FanartSize.Height = 1 + Else + FanartSize.Width = 800 + FanartSize.Height = 450 + End If + End If + 'cocotus end pattern = pattern.Replace("<$NEED_FANART>", String.Empty) End If If pattern.Contains("<$NEED_FLAGS>") Then @@ -194,17 +267,47 @@ Public Class dlgExportMovies For Each _curMovie As Structures.DBMovie In _movies Dim _vidDetails As String = String.Empty Dim _vidDimensions As String = String.Empty + + + 'cocotus, 2013/02 Added support for new MediaInfo-fields + 'We want to use new mediainfo fields in template to -> make them avalaible here! + Dim _vidBitrate As String = String.Empty + Dim _vidEncodedSettings As String = String.Empty + Dim _vidMultiView As String = String.Empty + Dim _audBitrate As String = String.Empty + 'cocotus end + Dim _audDetails As String = String.Empty If Not IsNothing(_curMovie.Movie.FileInfo) Then If _curMovie.Movie.FileInfo.StreamDetails.Video.Count > 0 Then tVid = NFO.GetBestVideo(_curMovie.Movie.FileInfo) tRes = NFO.GetResFromDimensions(tVid) + + 'cocotus, 2013/02 Added support for new MediaInfo-fields + If Not String.IsNullOrEmpty(tVid.Bitrate) Then + _vidBitrate = tVid.Bitrate + End If + If Not String.IsNullOrEmpty(tVid.EncodedSettings) Then + _vidEncodedSettings = tVid.EncodedSettings + End If + If Not String.IsNullOrEmpty(tVid.MultiView) Then + _vidMultiView = tVid.MultiView + End If + 'cocotus end + _vidDimensions = NFO.GetDimensionsFromVideo(tVid) _vidDetails = String.Format("{0} / {1}", If(String.IsNullOrEmpty(tRes), Master.eLang.GetString(283, "Unknown", True), tRes), If(String.IsNullOrEmpty(tVid.Codec), Master.eLang.GetString(283, "Unknown", True), tVid.Codec)).ToUpper End If If _curMovie.Movie.FileInfo.StreamDetails.Audio.Count > 0 Then tAud = NFO.GetBestAudio(_curMovie.Movie.FileInfo, False) + + 'cocotus, 2013/02 Added support for new MediaInfo-fields + If Not String.IsNullOrEmpty(tAud.Bitrate) Then + _audBitrate = tAud.Bitrate + End If + 'cocotus end + _audDetails = String.Format("{0} / {1}ch", If(String.IsNullOrEmpty(tAud.Codec), Master.eLang.GetString(283, "Unknown", True), tAud.Codec), If(String.IsNullOrEmpty(tAud.Channels), Master.eLang.GetString(283, "Unknown", True), tAud.Channels)).ToUpper End If End If @@ -270,7 +373,30 @@ Public Class dlgExportMovies row = row.Replace("<$VIDEO_DIMENSIONS>", _vidDimensions) row = row.Replace("<$AUDIO>", _audDetails) row = row.Replace("<$SIZE>", StringUtils.HtmlEncode(MovieSize(_curMovie.Filename).ToString)) - row = row.Replace("<$DATEADD>", StringUtils.HtmlEncode(Functions.ConvertFromUnixTimestamp(_curMovie.DateAdd).ToShortDateString)) + row = row.Replace("<$DATEADD>", StringUtils.HtmlEncode(Functions.ConvertFromUnixTimestamp(_curMovie.DateAdd).ToString("dd.MM.yyyy"))) + + 'cocotus, 2013/02 Added support for new MediaInfo-fields + row = row.Replace("<$MOVIESETS>", StringUtils.HtmlEncode(AllMovieSetList)) 'A long string of all moviesets, seperated with |! + row = row.Replace("<$TVSHOWS>", StringUtils.HtmlEncode(AllTVShowList)) 'A long string of all tvshows, seperated with |! + row = row.Replace("<$SET>", StringUtils.HtmlEncode(GetMovieSets(_curMovie))) 'All sets which movie belongs to, seperated with |! + row = row.Replace("<$VIDEOBITRATE>", _vidBitrate) + row = row.Replace("<$VIDEOMULTIVIEW>", _vidMultiView) + row = row.Replace("<$VIDEOENCODINGSETTINGS>", _vidEncodedSettings) + row = row.Replace("<$AUDIOBITRATE>", _audBitrate) + 'Unlocking more fields to use in templates! + row = row.Replace("<$NOW>", System.DateTime.Now.ToLongDateString) 'Save Build Date. might be useful info! + row = row.Replace("<$COUNTRY>", StringUtils.HtmlEncode(_curMovie.Movie.Country)) + row = row.Replace("<$IDMOVIEDB>", StringUtils.HtmlEncode(_curMovie.Movie.IDMovieDB)) + row = row.Replace("<$ORIGINALTITLE>", StringUtils.HtmlEncode(_curMovie.Movie.OriginalTitle)) + row = row.Replace("<$PLAYCOUNT>", StringUtils.HtmlEncode(_curMovie.Movie.PlayCount)) + row = row.Replace("<$STUDIO>", StringUtils.HtmlEncode(_curMovie.Movie.Studio)) + row = row.Replace("<$TOP250>", StringUtils.HtmlEncode(_curMovie.Movie.Top250)) + row = row.Replace("<$TRAILER>", StringUtils.HtmlEncode(_curMovie.Movie.Trailer)) + row = row.Replace("<$VIDEOSOURCE>", StringUtils.HtmlEncode(_curMovie.Movie.VideoSource)) + 'row = row.Replace("<$WATCHED>", StringUtils.HtmlEncode(_curMovie.Movie.Watched)) + 'cocotus end + + row = GetAVImages(_curMovie, row) HTMLBody.Append(row) counter += 1 @@ -278,7 +404,9 @@ Public Class dlgExportMovies HTMLBody.Append(moviefooter) If Not Me.isCL Then - Dim outFile As String = Path.Combine(Me.TempPath, String.Concat(Master.eSettings.Language, ".html")) + 'just name it index.html + ' Dim outFile As String = Path.Combine(Me.TempPath, String.Concat(Master.eSettings.Language, ".html")) + Dim outFile As String = Path.Combine(Me.TempPath, "index.htm") DontSaveExtra = False Me.SaveAll(If(doNavigate, Master.eLang.GetString(4, "Preparing preview. Please wait..."), String.Empty), Path.GetDirectoryName(htmlPath), outFile) If doNavigate Then LoadHTML() @@ -288,23 +416,203 @@ Public Class dlgExportMovies End Try End Sub - Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSource.Click - If btnSource.ImageIndex = 0 Then - lstSources.Visible = True - btnSource.ImageIndex = 1 - Else - lstSources.Visible = False - btnSource.ImageIndex = 0 - Dim sFilter As String = String.Empty - If cbSearch.Text = Master.eLang.GetString(5, "Source Folder") Then - For Each s In lstSources.CheckedItems - sFilter = String.Concat(sFilter, If(sFilter = String.Empty, String.Empty, ";"), s.ToString) + Private Function GetMovieSets(_curMovie As Structures.DBMovie) As String + Dim ReturnString As String = "" + Try + + If _curMovie.Movie.Sets.Count > 0 Then + For i = 0 To _curMovie.Movie.Sets.Count - 1 + If i > 0 Then + ReturnString = ReturnString + "|" + _curMovie.Movie.Sets.Item(i).Set + Else + ReturnString = _curMovie.Movie.Sets.Item(i).Set + End If + Next - txtSearch.Text = sFilter End If - End If + Return ReturnString + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + Return ReturnString + End Try + + End Function + Private alSets As New List(Of String) + ' Private lMovies As New List(Of Movies) + Private Function GetAllMovieSets() As String + '// + ' Start thread to load movie information from nfo + '\\ + + Dim ReturnString As String = "" + Try + Using SQLcommand As SQLite.SQLiteCommand = Master.DB.MediaDBConn.CreateCommand() + SQLcommand.CommandText = String.Concat("SELECT SetName FROM MoviesSets;") + Using SQLreader As SQLite.SQLiteDataReader = SQLcommand.ExecuteReader() + If SQLreader.HasRows Then + While SQLreader.Read() + If Not alSets.Contains(SQLreader("SetName").ToString) AndAlso Not String.IsNullOrEmpty(SQLreader("SetName").ToString) Then + alSets.Add(SQLreader("SetName").ToString) + End If + End While + End If + End Using + End Using + If alSets.Count > 0 Then + For i = 0 To alSets.Count - 1 + If i > 0 Then + ReturnString = ReturnString + "|" + alSets(i) + Else + ReturnString = alSets(i) + End If + Next + End If + Return ReturnString + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + Return "" + End Try + End Function + + Private allTVShows As New List(Of String) + ' Private lMovies As New List(Of Movies) + Private Function GetAllTVShows() As String + '// + ' Start thread to load movie information from nfo + '\\ + Dim ReturnString As String = "" + Try + + Using SQLcommand As SQLite.SQLiteCommand = Master.DB.MediaDBConn.CreateCommand() + SQLcommand.CommandText = String.Concat("SELECT * FROM TVShows ORDER BY Title COLLATE NOCASE;") + Using SQLreader As SQLite.SQLiteDataReader = SQLcommand.ExecuteReader() + If SQLreader.HasRows Then + While SQLreader.Read() + If Not allTVShows.Contains(SQLreader("Title").ToString) AndAlso Not String.IsNullOrEmpty(SQLreader("Title").ToString) Then + If Not String.IsNullOrEmpty(SQLreader("ID").ToString) Then + allTVShows.Add(SQLreader("ID").ToString & "*" & SQLreader("Title").ToString & GetSeasonInfo(SQLreader("ID").ToString)) + End If + End If + End While + End If + End Using + End Using + If allTVShows.Count > 0 Then + For i = 0 To allTVShows.Count - 1 + If i > 0 Then + ReturnString = ReturnString + "|" + allTVShows(i) + Else + ReturnString = allTVShows(i) + End If + Next + End If + Return ReturnString + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + Return "" + End Try + End Function + Private Function GetSeasonInfo(ByVal Id As String) As String + Dim ReturnString As String = "" + Try + Using SQLcommand As SQLite.SQLiteCommand = Master.DB.MediaDBConn.CreateCommand() + Dim parID As SQLite.SQLiteParameter = SQLcommand.Parameters.Add("parID", DbType.Int32, 0, "id") + SQLcommand.CommandText = "SELECT * FROM TVSeason WHERE TVShowID = (?);" + parID.Value = Id + Using SQLreader As SQLite.SQLiteDataReader = SQLcommand.ExecuteReader() + If SQLreader.HasRows Then + While SQLreader.Read() + + If Not String.IsNullOrEmpty(SQLreader("Season").ToString) AndAlso Not SQLreader("Season").ToString.Contains("999") Then + If Not String.IsNullOrEmpty(SQLreader("PosterPath").ToString) Then + ExportSeasonImage(SQLreader("TVShowID").ToString & "s" & SQLreader("Season").ToString, SQLreader("PosterPath").ToString, TempPath) + End If + ReturnString = ReturnString + "*" + SQLreader("TVShowID").ToString & "s" & SQLreader("Season").ToString + End If + End While + End If + End Using + End Using + Return ReturnString + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + Return ReturnString + End Try + + End Function + + Private Sub ExportSeasonImage(ByVal filename As String, ByVal source As String, ByVal temppath As String) + Try + + Dim finalpath As String = Path.Combine(temppath, "export") + Directory.CreateDirectory(finalpath) + + Try + Dim posterfile As String = Path.Combine(finalpath, String.Concat(filename, ".jpg")) + If File.Exists(source) Then + 'cocotus, 2013/02 Export HTML expanded: configurable resizable images + + 'old method + 'If new_width > 0 Then + ' Dim im As New Images + ' im.FromFile(_curMovie.PosterPath) + ' ImageUtils.ResizeImage(im.Image, new_width, new_width, False, Color.Black.ToArgb) + ' im.Save(posterfile) + 'Else + ' File.Copy(_curMovie.PosterPath, posterfile, True) + 'End If + + If strPosterSize = "original" Then + File.Copy(source, posterfile, True) + Else + 'Now we do some image processing to make the output file smaller! + Try + Dim img As Image + Dim sFileName As String = source + Dim fs As New System.IO.FileStream(sFileName, System.IO.FileMode.Open) + img = Image.FromStream(fs) + fs.Close() + '1. Step: Resizing, Image method needs Size and IMAGE object we just created, so now we can start! + Dim imgresized As Image = ImageUtils.ResizeImage(img, PosterSize) + img.Dispose() + '2. Step: Now use jpeg compression to make file even smaller... + ImageUtils.JPEGCompression(imgresized, posterfile, CInt(AdvancedSettings.GetSetting("ExportImageQuality", "70"))) + imgresized.Dispose() + + Catch ex As Exception + 'The old method, used here when anything goes wrong + File.Copy(source, posterfile, True) + End Try + End If + + 'cocotus end + + End If + + Catch + End Try + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try End Sub + 'Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) + ' If btnSource.ImageIndex = 0 Then + ' lstSources.Visible = True + ' btnSource.ImageIndex = 1 + ' Else + ' lstSources.Visible = False + ' btnSource.ImageIndex = 0 + ' Dim sFilter As String = String.Empty + ' If cbSearch.Text = Master.eLang.GetString(5, "Source Folder") Then + ' For Each s In lstSources.CheckedItems + ' sFilter = String.Concat(sFilter, If(sFilter = String.Empty, String.Empty, ";"), s.ToString) + ' Next + ' txtSearch.Text = sFilter + ' End If + ' End If + 'End Sub + Private Sub bwLoadInfo_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles bwLoadInfo.DoWork '// ' Thread to load movieinformation (from nfo) @@ -403,6 +711,15 @@ Public Class dlgExportMovies If Me.bexportFanart Then Me.ExportFanart(destPathShort) End If + + If AdvancedSettings.GetBooleanSetting("ExportTVShows", False) = True Then + Try + AllTVShowList = GetAllTVShows() + Catch ex As Exception + + End Try + End If + If bwSaveAll.CancellationPending Then e.Cancel = True Return @@ -427,44 +744,21 @@ Public Class dlgExportMovies workerCanceled = e.Cancelled End Sub - Private Sub cbFilterSource_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) - If ((cbSearch.Text = Master.eLang.GetString(5, "Source Folder") AndAlso lstSources.CheckedItems.Count > 0) OrElse txtSearch.Text <> "") AndAlso cbSearch.Text <> "" Then - Search_Button.Enabled = True - Else - Search_Button.Enabled = False - End If - End Sub - Private Sub cbSearch_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbSearch.SelectedIndexChanged - If ((cbSearch.Text = Master.eLang.GetString(5, "Source Folder") AndAlso lstSources.CheckedItems.Count > 0) OrElse txtSearch.Text <> "") AndAlso cbSearch.Text <> "" Then - Search_Button.Enabled = True - Else - Search_Button.Enabled = False - End If - If cbSearch.Text = Master.eLang.GetString(5, "Source Folder") Then - 'cbFilterSource.Visible = True - btnSource.Visible = True - txtSearch.ReadOnly = True - Else - 'cbFilterSource.Visible = False - btnSource.Visible = False - txtSearch.ReadOnly = False - End If - End Sub Private Sub cbTemplate_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbTemplate.SelectedIndexChanged base_template = cbTemplate.Text DontSaveExtra = False - Dim sFilter As String = String.Empty - If cbSearch.Text = Master.eLang.GetString(5, "Source Folder") Then - For Each s As String In lstSources.CheckedItems - sFilter = String.Concat(sFilter, If(sFilter = String.Empty, String.Empty, ";"), s.ToString) - Next - Else - sFilter = txtSearch.Text - End If + 'Dim sFilter As String = String.Empty + 'If cbSearch.Text = Master.eLang.GetString(5, "Source Folder") Then + ' For Each s As String In lstSources.CheckedItems + ' sFilter = String.Concat(sFilter, If(sFilter = String.Empty, String.Empty, ";"), s.ToString) + ' Next + 'Else + ' sFilter = txtSearch.Text + 'End If - BuildHTML(use_filter, sFilter, cbSearch.Text, base_template, True) + 'BuildHTML(use_filter, sFilter, cbSearch.Text, base_template, True) End Sub @@ -542,12 +836,43 @@ Public Class dlgExportMovies Dim counter As Integer = 1 Dim finalpath As String = Path.Combine(fpath, "export") Directory.CreateDirectory(finalpath) + For Each _curMovie As Structures.DBMovie In _movies.Where(Function(y) FilterMovies.Contains(y.ID)) Try Dim fanartfile As String = Path.Combine(finalpath, String.Concat(counter.ToString, "-fanart.jpg")) If File.Exists(_curMovie.FanartPath) Then - File.Copy(_curMovie.FanartPath, fanartfile, True) + 'cocotus, 2013/02 Export HTML expanded: configurable resizable images + + 'old method, just copy/no image conversion + 'File.Copy(_curMovie.FanartPath, fanartfile, True) + + If strFanartSize = "original" Then + File.Copy(_curMovie.FanartPath, fanartfile, True) + Else + 'Now we do some image processing to make the output file smaller! + Try + Dim img As Image + Dim sFileName As String = _curMovie.FanartPath + Dim fs As New System.IO.FileStream(sFileName, System.IO.FileMode.Open) + img = Image.FromStream(fs) + fs.Close() + '1. Step: Resizing, Image method needs Size and IMAGE object we just created, so now we can start! + Dim imgresized As Image = ImageUtils.ResizeImage(img, FanartSize) + img.Dispose() + '2. Step: Now use jpeg compression to make file even smaller... + ImageUtils.JPEGCompression(imgresized, fanartfile, CInt(AdvancedSettings.GetSetting("ExportImageQuality", "70"))) + imgresized.Dispose() + + Catch ex As Exception + 'The old method, used here when anything goes wrong + File.Copy(_curMovie.FanartPath, fanartfile, True) + End Try + End If + + 'cocotus end + + End If counter += 1 Catch @@ -564,6 +889,7 @@ Public Class dlgExportMovies Private Sub ExportPoster(ByVal fpath As String, ByVal new_width As Integer) Try + Dim counter As Integer = 1 Dim finalpath As String = Path.Combine(fpath, "export") Directory.CreateDirectory(finalpath) @@ -571,14 +897,45 @@ Public Class dlgExportMovies Try Dim posterfile As String = Path.Combine(finalpath, String.Concat(counter.ToString, ".jpg")) If File.Exists(_curMovie.PosterPath) Then - If new_width > 0 Then - Dim im As New Images - im.FromFile(_curMovie.PosterPath) - ImageUtils.ResizeImage(im.Image, new_width, new_width, False, Color.Black.ToArgb) - im.Save(posterfile) - Else + + + 'cocotus, 2013/02 Export HTML expanded: configurable resizable images + + 'old method + 'If new_width > 0 Then + ' Dim im As New Images + ' im.FromFile(_curMovie.PosterPath) + ' ImageUtils.ResizeImage(im.Image, new_width, new_width, False, Color.Black.ToArgb) + ' im.Save(posterfile) + 'Else + ' File.Copy(_curMovie.PosterPath, posterfile, True) + 'End If + + If strPosterSize = "original" Then File.Copy(_curMovie.PosterPath, posterfile, True) + Else + 'Now we do some image processing to make the output file smaller! + Try + Dim img As Image + Dim sFileName As String = _curMovie.PosterPath + Dim fs As New System.IO.FileStream(sFileName, System.IO.FileMode.Open) + img = Image.FromStream(fs) + fs.Close() + '1. Step: Resizing, Image method needs Size and IMAGE object we just created, so now we can start! + Dim imgresized As Image = ImageUtils.ResizeImage(img, PosterSize) + img.Dispose() + '2. Step: Now use jpeg compression to make file even smaller... + ImageUtils.JPEGCompression(imgresized, posterfile, CInt(AdvancedSettings.GetSetting("ExportImageQuality", "70"))) + imgresized.Dispose() + + Catch ex As Exception + 'The old method, used here when anything goes wrong + File.Copy(_curMovie.PosterPath, posterfile, True) + End Try End If + + 'cocotus end + End If Catch @@ -661,8 +1018,14 @@ Public Class dlgExportMovies Private Sub LoadHTML() Warning(True, Master.eLang.GetString(6, "Loading. Please wait...")) - Dim tmphtml As String = Path.Combine(Me.TempPath, String.Concat(Master.eSettings.Language, ".html")) - wbMovieList.Navigate(tmphtml) + ' Dim tmphtml As String = Path.Combine(Me.TempPath, String.Concat(Master.eSettings.Language, ".html")) + Dim tmphtml As String = Path.Combine(Me.TempPath, "index.htm") + Try + wbMovieList.Navigate(tmphtml) + Save_Button.Enabled = True + Catch ex As Exception + Save_Button.Enabled = False + End Try End Sub Function MovieSize(ByVal spath As String) As Long @@ -704,22 +1067,14 @@ Public Class dlgExportMovies Return MovieFilesSize End Function - Private Sub pnlSearch_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles pnlSearch.Paint - End Sub - Private Sub Reset_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Reset_Button.Click - pnlSearch.Enabled = False - use_filter = False - BuildHTML(use_filter, String.Empty, String.Empty, base_template, True) - End Sub + Private Sub SaveAll(ByVal sWarning As String, ByVal srcPath As String, ByVal destPath As String, Optional ByVal resizePoster As Integer = 0) - Private Sub SaveAll(ByVal sWarning As String, ByVal srcPath As String, ByVal destPath As String, Optional ByVal resizePoster As Integer = 200) wbMovieList.Visible = False If Not String.IsNullOrEmpty(sWarning) Then Warning(True, sWarning) - cbSearch.Enabled = False + cbo_SelectedFilter.Enabled = False cbTemplate.Enabled = False - Search_Button.Enabled = False - Reset_Button.Enabled = False + btn_BuildHTML.Enabled = False Save_Button.Enabled = False Me.bwSaveAll = New System.ComponentModel.BackgroundWorker Me.bwSaveAll.WorkerReportsProgress = True @@ -730,76 +1085,58 @@ Public Class dlgExportMovies Threading.Thread.Sleep(50) End While - cbSearch.Enabled = True + cbo_SelectedFilter.Enabled = True cbTemplate.Enabled = True - 'Search_Button.Enabled = True - Reset_Button.Enabled = True + btn_BuildHTML.Enabled = True Save_Button.Enabled = True If pnlCancel.Visible Then Warning(False) If Not workerCanceled Then wbMovieList.Visible = True End If + End Sub Private Sub Save_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Save_Button.Click - Dim saveHTML As New SaveFileDialog() - Dim myStream As Stream - saveHTML.Filter = "HTML files (*.htm)|*.htm" - saveHTML.FilterIndex = 2 - saveHTML.RestoreDirectory = True - - If saveHTML.ShowDialog() = DialogResult.OK Then - myStream = saveHTML.OpenFile() - myStream.Close() - If Not IsNothing(myStream) Then - DontSaveExtra = False 'Force Full Save - Dim srcPath As String = String.Concat(Functions.AppPath, "Langs", Path.DirectorySeparatorChar, "html", Path.DirectorySeparatorChar, base_template, Path.DirectorySeparatorChar) - Me.SaveAll(Master.eLang.GetString(7, "Saving all files. Please wait..."), srcPath, saveHTML.FileName) - End If - End If - End Sub - Private Sub Search_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Search_Button.Click - pnlSearch.Enabled = False - use_filter = True - Dim sFilter As String = String.Empty - If cbSearch.Text = Master.eLang.GetString(5, "Source Folder") Then - For Each s As String In lstSources.CheckedItems - sFilter = String.Concat(sFilter, If(sFilter = String.Empty, String.Empty, ";"), s.ToString) - Next + 'cocotus Use settings instead of opening filedialog which causes problems! + 'old + 'Dim saveHTML As New SaveFileDialog() + 'Dim myStream As Stream + 'saveHTML.Filter = "HTML files (*.htm)|*.htm" + 'saveHTML.FilterIndex = 2 + 'saveHTML.RestoreDirectory = True + + 'If saveHTML.ShowDialog() = DialogResult.OK Then + ' myStream = saveHTML.OpenFile() + ' myStream.Close() + ' If Not IsNothing(myStream) Then + ' DontSaveExtra = False 'Force Full Save + ' Dim srcPath As String = String.Concat(Functions.AppPath, "Langs", Path.DirectorySeparatorChar, "html", Path.DirectorySeparatorChar, base_template, Path.DirectorySeparatorChar) + ' Me.SaveAll(Master.eLang.GetString(7, "Saving all files. Please wait..."), srcPath, saveHTML.FileName) + ' End If + 'End If + 'new simply copy from temp to user defined directory + If IO.Directory.Exists(AdvancedSettings.GetSetting("ExportPath", "")) Then + CopyDirectory(TempPath, AdvancedSettings.GetSetting("ExportPath", ""), True) + Save_Button.Enabled = False + MessageBox.Show((Master.eLang.GetString(27, "Template saved to:") & AdvancedSettings.GetSetting("ExportPath", "")), Master.eLang.GetString(361, "Finished!"), MessageBoxButtons.OK) Else - sFilter = txtSearch.Text + Save_Button.Enabled = False + MessageBox.Show((Master.eLang.GetString(28, "Export Path is not valid:") & AdvancedSettings.GetSetting("ExportPath", "")), Master.eLang.GetString(816, "An Error Has Occurred"), MessageBoxButtons.OK) End If - BuildHTML(use_filter, sFilter, cbSearch.Text, base_template, True) + End Sub Private Sub SetUp() Me.Text = Master.eLang.GetString(8, "Export Movies") Me.Save_Button.Text = Master.eLang.GetString(273, "Save", True) Me.Close_Button.Text = Master.eLang.GetString(19, "Close", True) - Me.Reset_Button.Text = Master.eLang.GetString(9, "Reset") - Me.Label1.Text = Master.eLang.GetString(10, "Filter") - Me.Search_Button.Text = Master.eLang.GetString(176, "Apply", True) - Me.lblIn.Text = Master.eLang.GetString(11, "in") Me.lblCompiling.Text = Master.eLang.GetString(12, "Compiling Movie List...") Me.lblCanceling.Text = Master.eLang.GetString(13, "Canceling Compilation...") Me.btnCancel.Text = Master.eLang.GetString(167, "Cancel", True) Me.Label2.Text = Master.eLang.GetString(14, "Template") - - Me.cbSearch.Items.AddRange(New Object() {Master.eLang.GetString(21, "Title", True), Master.eLang.GetString(278, "Year", True), Master.eLang.GetString(2, "Video Flag"), Master.eLang.GetString(3, "Audio Flag"), Master.eLang.GetString(1, "Source Folder")}) - lstSources.Items.Clear() - For Each s As Structures.MovieSource In Master.MovieSources - lstSources.Items.Add(s.Name) - Next - - End Sub - - Private Sub txtSearch_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSearch.TextChanged - If txtSearch.Text <> "" AndAlso cbSearch.Text <> "" Then - Search_Button.Enabled = True - Else - Search_Button.Enabled = False - End If + Me.btn_BuildHTML.Text = Master.eLang.GetString(26, "Generate HTML...") + Save_Button.Enabled = False End Sub Private Sub Warning(ByVal show As Boolean, Optional ByVal txt As String = "") @@ -822,14 +1159,47 @@ Public Class dlgExportMovies Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles wbMovieList.DocumentCompleted If Not bCancelled Then - 'wbMovieList.Visible = True + If Not cbTemplate.Text = String.Empty Then Me.Save_Button.Enabled = True - pnlSearch.Enabled = True - Reset_Button.Enabled = bFiltered + End If Warning(False) End Sub + Private Sub btn_BuildHTML_Click(sender As Object, e As EventArgs) Handles btn_BuildHTML.Click + If cbo_SelectedFilter.Text = "Filter 1" Then + strFilter = AdvancedSettings.GetSetting("ExportFilter1", "") + ElseIf cbo_SelectedFilter.Text = "Filter 2" Then + strFilter = AdvancedSettings.GetSetting("ExportFilter2", "") + ElseIf cbo_SelectedFilter.Text = "Filter 3" Then + strFilter = AdvancedSettings.GetSetting("ExportFilter3", "") + Else + strFilter = "" + End If + If Not strFilter = "" Then + use_filter = True + Dim sFiltertype As String = String.Empty + Dim parts As String() = strFilter.Split(New String() {"#"}, StringSplitOptions.None) + strFilter = parts(0) + If parts.Length > 1 Then + sFiltertype = parts(1) + End If + BuildHTML(use_filter, strFilter, sFiltertype, base_template, True) + Else + BuildHTML(False, String.Empty, String.Empty, base_template, True) + End If + End Sub + + 'cocotus, 2013/02 Export HTML expanded: configurable resizable images + 'contains selected poster/fanart sizes + Dim strFanartSize As String = "" + Dim strPosterSize As String = "" + Dim strFilter As String = "" + 'The following resizing method of image requires Size object, so lets create that... + Dim FanartSize As New Size(1024, 576) + Dim PosterSize As New Size(200, 300) + 'cocotus end + #End Region 'Methods #Region "Nested Types" @@ -848,4 +1218,6 @@ Public Class dlgExportMovies #End Region 'Nested Types + + End Class \ No newline at end of file diff --git a/Addons/generic.EmberCore.MovieExport/frmSettingsHolder.Designer.vb b/Addons/generic.EmberCore.MovieExport/frmSettingsHolder.Designer.vb index 3afa5af..7a60615 100644 --- a/Addons/generic.EmberCore.MovieExport/frmSettingsHolder.Designer.vb +++ b/Addons/generic.EmberCore.MovieExport/frmSettingsHolder.Designer.vb @@ -22,64 +22,437 @@ Partial Class frmSettingsHolder 'Do not modify it using the code editor. _ Private Sub InitializeComponent() - Me.Panel1 = New System.Windows.Forms.Panel() - Me.cbEnabled = New System.Windows.Forms.CheckBox() - Me.pnlSettings = New System.Windows.Forms.Panel() - Me.Panel1.SuspendLayout() - Me.pnlSettings.SuspendLayout() - Me.SuspendLayout() - ' - 'Panel1 - ' - Me.Panel1.BackColor = System.Drawing.Color.WhiteSmoke - Me.Panel1.Controls.Add(Me.cbEnabled) - Me.Panel1.Dock = System.Windows.Forms.DockStyle.Top - Me.Panel1.Location = New System.Drawing.Point(0, 0) - Me.Panel1.Name = "Panel1" - Me.Panel1.Size = New System.Drawing.Size(617, 25) - Me.Panel1.TabIndex = 0 - ' - 'cbEnabled - ' - Me.cbEnabled.AutoSize = True - Me.cbEnabled.Location = New System.Drawing.Point(10, 5) - Me.cbEnabled.Name = "cbEnabled" - Me.cbEnabled.Size = New System.Drawing.Size(68, 17) - Me.cbEnabled.TabIndex = 0 - Me.cbEnabled.Text = "Enabled" - Me.cbEnabled.UseVisualStyleBackColor = True - ' - 'pnlSettings - ' - Me.pnlSettings.Controls.Add(Me.Panel1) - Me.pnlSettings.Location = New System.Drawing.Point(3, 12) - Me.pnlSettings.Name = "pnlSettings" - Me.pnlSettings.Size = New System.Drawing.Size(617, 327) - Me.pnlSettings.TabIndex = 0 - ' - 'frmSettingsHolder - ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi - Me.BackColor = System.Drawing.Color.White - Me.ClientSize = New System.Drawing.Size(625, 342) - Me.Controls.Add(Me.pnlSettings) - Me.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog - Me.MaximizeBox = False - Me.MinimizeBox = False - Me.Name = "frmSettingsHolder" - Me.ShowInTaskbar = False - Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "frmSettingsHolder" - Me.Panel1.ResumeLayout(False) - Me.Panel1.PerformLayout() - Me.pnlSettings.ResumeLayout(False) - Me.ResumeLayout(False) + Me.Panel1 = New System.Windows.Forms.Panel() + Me.cbEnabled = New System.Windows.Forms.CheckBox() + Me.pnlSettings = New System.Windows.Forms.Panel() + Me.gpb_ExportFilterSettings = New System.Windows.Forms.GroupBox() + Me.lbl_exportmoviefilter3 = New System.Windows.Forms.Label() + Me.lbl_exportmoviefilter3saved = New System.Windows.Forms.Label() + Me.lbl_exportmoviefilter2 = New System.Windows.Forms.Label() + Me.lbl_exportmoviefilter2saved = New System.Windows.Forms.Label() + Me.cbo_exportmoviefilter = New System.Windows.Forms.ComboBox() + Me.lbl_exportmoviefilter1 = New System.Windows.Forms.Label() + Me.lbl_exportmoviefilter1saved = New System.Windows.Forms.Label() + Me.lstSources = New System.Windows.Forms.CheckedListBox() + Me.btnSource = New System.Windows.Forms.Button() + Me.btn_Apply = New System.Windows.Forms.Button() + Me.txtSearch = New System.Windows.Forms.TextBox() + Me.btn_Reset = New System.Windows.Forms.Button() + Me.cbSearch = New System.Windows.Forms.ComboBox() + Me.lbl_exportmoviefiltergenerate = New System.Windows.Forms.Label() + Me.lblIn = New System.Windows.Forms.Label() + Me.gpb_ExportGeneralSettings = New System.Windows.Forms.GroupBox() + Me.chkExportTVShows = New System.Windows.Forms.CheckBox() + Me.lbl_exportmoviepath = New System.Windows.Forms.Label() + Me.txt_exportmoviepath = New System.Windows.Forms.TextBox() + Me.btn_exportmoviepath = New System.Windows.Forms.Button() + Me.gpb_ExportImage = New System.Windows.Forms.GroupBox() + Me.cbo_exportmoviequality = New System.Windows.Forms.ComboBox() + Me.lbl_exportmoviequality = New System.Windows.Forms.Label() + Me.cbo_exportmoviefanart = New System.Windows.Forms.ComboBox() + Me.lbl_exportmoviefanart = New System.Windows.Forms.Label() + Me.cbo_exportmovieposter = New System.Windows.Forms.ComboBox() + Me.lbl_exportmovieposter = New System.Windows.Forms.Label() + Me.Panel1.SuspendLayout() + Me.pnlSettings.SuspendLayout() + Me.gpb_ExportFilterSettings.SuspendLayout() + Me.gpb_ExportGeneralSettings.SuspendLayout() + Me.gpb_ExportImage.SuspendLayout() + Me.SuspendLayout() + ' + 'Panel1 + ' + Me.Panel1.BackColor = System.Drawing.Color.WhiteSmoke + Me.Panel1.Controls.Add(Me.cbEnabled) + Me.Panel1.Dock = System.Windows.Forms.DockStyle.Top + Me.Panel1.Location = New System.Drawing.Point(0, 0) + Me.Panel1.Name = "Panel1" + Me.Panel1.Size = New System.Drawing.Size(610, 25) + Me.Panel1.TabIndex = 0 + ' + 'cbEnabled + ' + Me.cbEnabled.AutoSize = True + Me.cbEnabled.Location = New System.Drawing.Point(10, 5) + Me.cbEnabled.Name = "cbEnabled" + Me.cbEnabled.Size = New System.Drawing.Size(68, 17) + Me.cbEnabled.TabIndex = 0 + Me.cbEnabled.Text = "Enabled" + Me.cbEnabled.UseVisualStyleBackColor = True + ' + 'pnlSettings + ' + Me.pnlSettings.Controls.Add(Me.gpb_ExportFilterSettings) + Me.pnlSettings.Controls.Add(Me.gpb_ExportGeneralSettings) + Me.pnlSettings.Controls.Add(Me.gpb_ExportImage) + Me.pnlSettings.Controls.Add(Me.Panel1) + Me.pnlSettings.Location = New System.Drawing.Point(3, 12) + Me.pnlSettings.Name = "pnlSettings" + Me.pnlSettings.Size = New System.Drawing.Size(610, 387) + Me.pnlSettings.TabIndex = 0 + ' + 'gpb_ExportFilterSettings + ' + Me.gpb_ExportFilterSettings.Controls.Add(Me.lbl_exportmoviefilter3) + Me.gpb_ExportFilterSettings.Controls.Add(Me.lbl_exportmoviefilter3saved) + Me.gpb_ExportFilterSettings.Controls.Add(Me.lbl_exportmoviefilter2) + Me.gpb_ExportFilterSettings.Controls.Add(Me.lbl_exportmoviefilter2saved) + Me.gpb_ExportFilterSettings.Controls.Add(Me.cbo_exportmoviefilter) + Me.gpb_ExportFilterSettings.Controls.Add(Me.lbl_exportmoviefilter1) + Me.gpb_ExportFilterSettings.Controls.Add(Me.lbl_exportmoviefilter1saved) + Me.gpb_ExportFilterSettings.Controls.Add(Me.lstSources) + Me.gpb_ExportFilterSettings.Controls.Add(Me.btnSource) + Me.gpb_ExportFilterSettings.Controls.Add(Me.btn_Apply) + Me.gpb_ExportFilterSettings.Controls.Add(Me.txtSearch) + Me.gpb_ExportFilterSettings.Controls.Add(Me.btn_Reset) + Me.gpb_ExportFilterSettings.Controls.Add(Me.cbSearch) + Me.gpb_ExportFilterSettings.Controls.Add(Me.lbl_exportmoviefiltergenerate) + Me.gpb_ExportFilterSettings.Controls.Add(Me.lblIn) + Me.gpb_ExportFilterSettings.Location = New System.Drawing.Point(9, 152) + Me.gpb_ExportFilterSettings.Name = "gpb_ExportFilterSettings" + Me.gpb_ExportFilterSettings.Size = New System.Drawing.Size(596, 232) + Me.gpb_ExportFilterSettings.TabIndex = 22 + Me.gpb_ExportFilterSettings.TabStop = False + Me.gpb_ExportFilterSettings.Text = "Filter Settings" + ' + 'lbl_exportmoviefilter3 + ' + Me.lbl_exportmoviefilter3.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lbl_exportmoviefilter3.Location = New System.Drawing.Point(6, 206) + Me.lbl_exportmoviefilter3.Name = "lbl_exportmoviefilter3" + Me.lbl_exportmoviefilter3.Size = New System.Drawing.Size(87, 20) + Me.lbl_exportmoviefilter3.TabIndex = 14 + Me.lbl_exportmoviefilter3.Text = "Filter 3" + Me.lbl_exportmoviefilter3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + ' + 'lbl_exportmoviefilter3saved + ' + Me.lbl_exportmoviefilter3saved.Enabled = False + Me.lbl_exportmoviefilter3saved.Location = New System.Drawing.Point(99, 206) + Me.lbl_exportmoviefilter3saved.Name = "lbl_exportmoviefilter3saved" + Me.lbl_exportmoviefilter3saved.Size = New System.Drawing.Size(475, 20) + Me.lbl_exportmoviefilter3saved.TabIndex = 13 + Me.lbl_exportmoviefilter3saved.Text = "-" + Me.lbl_exportmoviefilter3saved.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + ' + 'lbl_exportmoviefilter2 + ' + Me.lbl_exportmoviefilter2.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lbl_exportmoviefilter2.Location = New System.Drawing.Point(6, 189) + Me.lbl_exportmoviefilter2.Name = "lbl_exportmoviefilter2" + Me.lbl_exportmoviefilter2.Size = New System.Drawing.Size(87, 20) + Me.lbl_exportmoviefilter2.TabIndex = 12 + Me.lbl_exportmoviefilter2.Text = "Filter 2" + Me.lbl_exportmoviefilter2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + ' + 'lbl_exportmoviefilter2saved + ' + Me.lbl_exportmoviefilter2saved.Enabled = False + Me.lbl_exportmoviefilter2saved.Location = New System.Drawing.Point(99, 189) + Me.lbl_exportmoviefilter2saved.Name = "lbl_exportmoviefilter2saved" + Me.lbl_exportmoviefilter2saved.Size = New System.Drawing.Size(475, 20) + Me.lbl_exportmoviefilter2saved.TabIndex = 11 + Me.lbl_exportmoviefilter2saved.Text = "-" + Me.lbl_exportmoviefilter2saved.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + ' + 'cbo_exportmoviefilter + ' + Me.cbo_exportmoviefilter.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cbo_exportmoviefilter.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.cbo_exportmoviefilter.FormattingEnabled = True + Me.cbo_exportmoviefilter.Items.AddRange(New Object() {"Filter 1", "Filter 2", "Filter 3"}) + Me.cbo_exportmoviefilter.Location = New System.Drawing.Point(102, 21) + Me.cbo_exportmoviefilter.Name = "cbo_exportmoviefilter" + Me.cbo_exportmoviefilter.Size = New System.Drawing.Size(87, 21) + Me.cbo_exportmoviefilter.TabIndex = 10 + ' + 'lbl_exportmoviefilter1 + ' + Me.lbl_exportmoviefilter1.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lbl_exportmoviefilter1.Location = New System.Drawing.Point(6, 172) + Me.lbl_exportmoviefilter1.Name = "lbl_exportmoviefilter1" + Me.lbl_exportmoviefilter1.Size = New System.Drawing.Size(87, 20) + Me.lbl_exportmoviefilter1.TabIndex = 9 + Me.lbl_exportmoviefilter1.Text = "Filter 1" + Me.lbl_exportmoviefilter1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + ' + 'lbl_exportmoviefilter1saved + ' + Me.lbl_exportmoviefilter1saved.Enabled = False + Me.lbl_exportmoviefilter1saved.Location = New System.Drawing.Point(99, 172) + Me.lbl_exportmoviefilter1saved.Name = "lbl_exportmoviefilter1saved" + Me.lbl_exportmoviefilter1saved.Size = New System.Drawing.Size(475, 20) + Me.lbl_exportmoviefilter1saved.TabIndex = 8 + Me.lbl_exportmoviefilter1saved.Text = "-" + Me.lbl_exportmoviefilter1saved.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + ' + 'lstSources + ' + Me.lstSources.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lstSources.FormattingEnabled = True + Me.lstSources.Location = New System.Drawing.Point(102, 73) + Me.lstSources.Name = "lstSources" + Me.lstSources.Size = New System.Drawing.Size(166, 89) + Me.lstSources.TabIndex = 7 + Me.lstSources.Visible = False + ' + 'btnSource + ' + Me.btnSource.BackColor = System.Drawing.Color.MediumSpringGreen + Me.btnSource.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.btnSource.ImageIndex = 0 + Me.btnSource.Location = New System.Drawing.Point(274, 46) + Me.btnSource.Name = "btnSource" + Me.btnSource.Size = New System.Drawing.Size(38, 20) + Me.btnSource.TabIndex = 2 + Me.btnSource.Text = "SET" + Me.btnSource.UseVisualStyleBackColor = False + Me.btnSource.Visible = False + ' + 'btn_Apply + ' + Me.btn_Apply.BackColor = System.Drawing.Color.White + Me.btn_Apply.Enabled = False + Me.btn_Apply.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.btn_Apply.Location = New System.Drawing.Point(476, 47) + Me.btn_Apply.Name = "btn_Apply" + Me.btn_Apply.Size = New System.Drawing.Size(101, 51) + Me.btn_Apply.TabIndex = 5 + Me.btn_Apply.Text = "Save Filter" + Me.btn_Apply.UseVisualStyleBackColor = True + ' + 'txtSearch + ' + Me.txtSearch.Location = New System.Drawing.Point(102, 45) + Me.txtSearch.Name = "txtSearch" + Me.txtSearch.Size = New System.Drawing.Size(166, 22) + Me.txtSearch.TabIndex = 3 + ' + 'btn_Reset + ' + Me.btn_Reset.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.btn_Reset.Location = New System.Drawing.Point(476, 111) + Me.btn_Reset.Name = "btn_Reset" + Me.btn_Reset.Size = New System.Drawing.Size(101, 51) + Me.btn_Reset.TabIndex = 6 + Me.btn_Reset.Text = "Reset Filter" + Me.btn_Reset.UseVisualStyleBackColor = True + ' + 'cbSearch + ' + Me.cbSearch.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cbSearch.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.cbSearch.FormattingEnabled = True + Me.cbSearch.Location = New System.Drawing.Point(344, 47) + Me.cbSearch.Name = "cbSearch" + Me.cbSearch.Size = New System.Drawing.Size(117, 21) + Me.cbSearch.TabIndex = 4 + ' + 'lbl_exportmoviefiltergenerate + ' + Me.lbl_exportmoviefiltergenerate.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lbl_exportmoviefiltergenerate.Location = New System.Drawing.Point(6, 22) + Me.lbl_exportmoviefiltergenerate.Name = "lbl_exportmoviefiltergenerate" + Me.lbl_exportmoviefiltergenerate.Size = New System.Drawing.Size(90, 21) + Me.lbl_exportmoviefiltergenerate.TabIndex = 0 + Me.lbl_exportmoviefiltergenerate.Text = "Generate Filter" + Me.lbl_exportmoviefiltergenerate.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + ' + 'lblIn + ' + Me.lblIn.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblIn.Location = New System.Drawing.Point(318, 45) + Me.lblIn.Name = "lblIn" + Me.lblIn.Size = New System.Drawing.Size(20, 22) + Me.lblIn.TabIndex = 3 + Me.lblIn.Text = "in" + Me.lblIn.TextAlign = System.Drawing.ContentAlignment.MiddleCenter + ' + 'gpb_ExportGeneralSettings + ' + Me.gpb_ExportGeneralSettings.Controls.Add(Me.chkExportTVShows) + Me.gpb_ExportGeneralSettings.Controls.Add(Me.lbl_exportmoviepath) + Me.gpb_ExportGeneralSettings.Controls.Add(Me.txt_exportmoviepath) + Me.gpb_ExportGeneralSettings.Controls.Add(Me.btn_exportmoviepath) + Me.gpb_ExportGeneralSettings.Location = New System.Drawing.Point(9, 42) + Me.gpb_ExportGeneralSettings.Name = "gpb_ExportGeneralSettings" + Me.gpb_ExportGeneralSettings.Size = New System.Drawing.Size(338, 81) + Me.gpb_ExportGeneralSettings.TabIndex = 20 + Me.gpb_ExportGeneralSettings.TabStop = False + Me.gpb_ExportGeneralSettings.Text = "General Settings" + ' + 'chkExportTVShows + ' + Me.chkExportTVShows.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.chkExportTVShows.Location = New System.Drawing.Point(9, 53) + Me.chkExportTVShows.Name = "chkExportTVShows" + Me.chkExportTVShows.Size = New System.Drawing.Size(290, 17) + Me.chkExportTVShows.TabIndex = 15 + Me.chkExportTVShows.Text = "Export TV Shows" + Me.chkExportTVShows.UseVisualStyleBackColor = True + ' + 'lbl_exportmoviepath + ' + Me.lbl_exportmoviepath.Location = New System.Drawing.Point(6, 22) + Me.lbl_exportmoviepath.Name = "lbl_exportmoviepath" + Me.lbl_exportmoviepath.Size = New System.Drawing.Size(65, 22) + Me.lbl_exportmoviepath.TabIndex = 12 + Me.lbl_exportmoviepath.Text = "ExportPath" + Me.lbl_exportmoviepath.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + ' + 'txt_exportmoviepath + ' + Me.txt_exportmoviepath.Location = New System.Drawing.Point(77, 22) + Me.txt_exportmoviepath.Name = "txt_exportmoviepath" + Me.txt_exportmoviepath.ReadOnly = True + Me.txt_exportmoviepath.Size = New System.Drawing.Size(222, 22) + Me.txt_exportmoviepath.TabIndex = 13 + ' + 'btn_exportmoviepath + ' + Me.btn_exportmoviepath.Location = New System.Drawing.Point(302, 22) + Me.btn_exportmoviepath.Margin = New System.Windows.Forms.Padding(0) + Me.btn_exportmoviepath.Name = "btn_exportmoviepath" + Me.btn_exportmoviepath.Size = New System.Drawing.Size(24, 22) + Me.btn_exportmoviepath.TabIndex = 14 + Me.btn_exportmoviepath.Text = "..." + Me.btn_exportmoviepath.TextAlign = System.Drawing.ContentAlignment.TopCenter + Me.btn_exportmoviepath.UseVisualStyleBackColor = True + ' + 'gpb_ExportImage + ' + Me.gpb_ExportImage.Controls.Add(Me.cbo_exportmoviequality) + Me.gpb_ExportImage.Controls.Add(Me.lbl_exportmoviequality) + Me.gpb_ExportImage.Controls.Add(Me.cbo_exportmoviefanart) + Me.gpb_ExportImage.Controls.Add(Me.lbl_exportmoviefanart) + Me.gpb_ExportImage.Controls.Add(Me.cbo_exportmovieposter) + Me.gpb_ExportImage.Controls.Add(Me.lbl_exportmovieposter) + Me.gpb_ExportImage.Location = New System.Drawing.Point(353, 42) + Me.gpb_ExportImage.Name = "gpb_ExportImage" + Me.gpb_ExportImage.Size = New System.Drawing.Size(251, 104) + Me.gpb_ExportImage.TabIndex = 19 + Me.gpb_ExportImage.TabStop = False + Me.gpb_ExportImage.Text = "Image Settings" + ' + 'cbo_exportmoviequality + ' + Me.cbo_exportmoviequality.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cbo_exportmoviequality.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.cbo_exportmoviequality.FormattingEnabled = True + Me.cbo_exportmoviequality.Items.AddRange(New Object() {"60", "70", "80", "90", "100"}) + Me.cbo_exportmoviequality.Location = New System.Drawing.Point(132, 76) + Me.cbo_exportmoviequality.Name = "cbo_exportmoviequality" + Me.cbo_exportmoviequality.Size = New System.Drawing.Size(101, 21) + Me.cbo_exportmoviequality.TabIndex = 20 + ' + 'lbl_exportmoviequality + ' + Me.lbl_exportmoviequality.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lbl_exportmoviequality.Location = New System.Drawing.Point(6, 76) + Me.lbl_exportmoviequality.Name = "lbl_exportmoviequality" + Me.lbl_exportmoviequality.Size = New System.Drawing.Size(144, 21) + Me.lbl_exportmoviequality.TabIndex = 19 + Me.lbl_exportmoviequality.Text = "Quality" + Me.lbl_exportmoviequality.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + ' + 'cbo_exportmoviefanart + ' + Me.cbo_exportmoviefanart.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cbo_exportmoviefanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.cbo_exportmoviefanart.FormattingEnabled = True + Me.cbo_exportmoviefanart.Items.AddRange(New Object() {"400", "600", "800", "1200", "original"}) + Me.cbo_exportmoviefanart.Location = New System.Drawing.Point(132, 22) + Me.cbo_exportmoviefanart.Name = "cbo_exportmoviefanart" + Me.cbo_exportmoviefanart.Size = New System.Drawing.Size(101, 21) + Me.cbo_exportmoviefanart.TabIndex = 18 + ' + 'lbl_exportmoviefanart + ' + Me.lbl_exportmoviefanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lbl_exportmoviefanart.Location = New System.Drawing.Point(6, 22) + Me.lbl_exportmoviefanart.Name = "lbl_exportmoviefanart" + Me.lbl_exportmoviefanart.Size = New System.Drawing.Size(144, 21) + Me.lbl_exportmoviefanart.TabIndex = 16 + Me.lbl_exportmoviefanart.Text = "Fanart Width [px]" + Me.lbl_exportmoviefanart.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + ' + 'cbo_exportmovieposter + ' + Me.cbo_exportmovieposter.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cbo_exportmovieposter.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.cbo_exportmovieposter.FormattingEnabled = True + Me.cbo_exportmovieposter.Items.AddRange(New Object() {"300", "400", "600", "800", "original"}) + Me.cbo_exportmovieposter.Location = New System.Drawing.Point(132, 49) + Me.cbo_exportmovieposter.Name = "cbo_exportmovieposter" + Me.cbo_exportmovieposter.Size = New System.Drawing.Size(101, 21) + Me.cbo_exportmovieposter.TabIndex = 17 + ' + 'lbl_exportmovieposter + ' + Me.lbl_exportmovieposter.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lbl_exportmovieposter.Location = New System.Drawing.Point(6, 49) + Me.lbl_exportmovieposter.Name = "lbl_exportmovieposter" + Me.lbl_exportmovieposter.Size = New System.Drawing.Size(144, 21) + Me.lbl_exportmovieposter.TabIndex = 15 + Me.lbl_exportmovieposter.Text = "Poster Height [px]" + Me.lbl_exportmovieposter.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + ' + 'frmSettingsHolder + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi + Me.BackColor = System.Drawing.Color.White + Me.ClientSize = New System.Drawing.Size(625, 411) + Me.Controls.Add(Me.pnlSettings) + Me.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "frmSettingsHolder" + Me.ShowInTaskbar = False + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "frmSettingsHolder" + Me.Panel1.ResumeLayout(False) + Me.Panel1.PerformLayout() + Me.pnlSettings.ResumeLayout(False) + Me.gpb_ExportFilterSettings.ResumeLayout(False) + Me.gpb_ExportFilterSettings.PerformLayout() + Me.gpb_ExportGeneralSettings.ResumeLayout(False) + Me.gpb_ExportGeneralSettings.PerformLayout() + Me.gpb_ExportImage.ResumeLayout(False) + Me.ResumeLayout(False) - End Sub + End Sub Friend WithEvents Panel1 As System.Windows.Forms.Panel Friend WithEvents cbEnabled As System.Windows.Forms.CheckBox Friend WithEvents pnlSettings As System.Windows.Forms.Panel + Friend WithEvents lbl_exportmoviepath As System.Windows.Forms.Label + Friend WithEvents btn_exportmoviepath As System.Windows.Forms.Button + Friend WithEvents txt_exportmoviepath As System.Windows.Forms.TextBox + Friend WithEvents lbl_exportmoviefanart As System.Windows.Forms.Label + Friend WithEvents cbo_exportmoviefanart As System.Windows.Forms.ComboBox + Friend WithEvents lbl_exportmovieposter As System.Windows.Forms.Label + Friend WithEvents cbo_exportmovieposter As System.Windows.Forms.ComboBox + Friend WithEvents gpb_ExportImage As System.Windows.Forms.GroupBox + Friend WithEvents gpb_ExportGeneralSettings As System.Windows.Forms.GroupBox + Friend WithEvents btnSource As System.Windows.Forms.Button + Friend WithEvents btn_Reset As System.Windows.Forms.Button + Friend WithEvents lbl_exportmoviefiltergenerate As System.Windows.Forms.Label + Friend WithEvents btn_Apply As System.Windows.Forms.Button + Friend WithEvents lblIn As System.Windows.Forms.Label + Friend WithEvents cbSearch As System.Windows.Forms.ComboBox + Friend WithEvents txtSearch As System.Windows.Forms.TextBox + Friend WithEvents lstSources As System.Windows.Forms.CheckedListBox + Friend WithEvents gpb_ExportFilterSettings As System.Windows.Forms.GroupBox + Friend WithEvents lbl_exportmoviefilter1saved As System.Windows.Forms.Label + Friend WithEvents lbl_exportmoviefilter1 As System.Windows.Forms.Label + Friend WithEvents cbo_exportmoviefilter As System.Windows.Forms.ComboBox + Friend WithEvents lbl_exportmoviefilter2 As System.Windows.Forms.Label + Friend WithEvents lbl_exportmoviefilter2saved As System.Windows.Forms.Label + Friend WithEvents lbl_exportmoviefilter3 As System.Windows.Forms.Label + Friend WithEvents lbl_exportmoviefilter3saved As System.Windows.Forms.Label + Friend WithEvents chkExportTVShows As System.Windows.Forms.CheckBox + Friend WithEvents cbo_exportmoviequality As System.Windows.Forms.ComboBox + Friend WithEvents lbl_exportmoviequality As System.Windows.Forms.Label End Class diff --git a/Addons/generic.EmberCore.MovieExport/frmSettingsHolder.vb b/Addons/generic.EmberCore.MovieExport/frmSettingsHolder.vb index 8af8454..b6daa9d 100644 --- a/Addons/generic.EmberCore.MovieExport/frmSettingsHolder.vb +++ b/Addons/generic.EmberCore.MovieExport/frmSettingsHolder.vb @@ -43,8 +43,145 @@ Public Class frmSettingsHolder Private Sub SetUp() Me.cbEnabled.Text = Master.eLang.GetString(774, "Enabled", True) + Me.chkExportTVShows.Text = Master.eLang.GetString(16, "Export TV Shows") + Me.lbl_exportmoviefiltergenerate.Text = Master.eLang.GetString(17, "Generate Filter") + Me.txt_exportmoviepath.Text = Master.eLang.GetString(18, "Export Path") + Me.lbl_exportmoviefanart.Text = Master.eLang.GetString(19, "Fanart Width [px]") + Me.lbl_exportmovieposter.Text = Master.eLang.GetString(20, "Poster Height [px]") + Me.lbl_exportmoviequality.Text = Master.eLang.GetString(478, "Quality:") + Me.gpb_ExportFilterSettings.Text = Master.eLang.GetString(21, "Filter Settings") + Me.gpb_ExportImage.Text = Master.eLang.GetString(22, "Image Settings") + Me.gpb_ExportGeneralSettings.Text = Master.eLang.GetString(23, "General Settings") + Me.btn_Apply.Text = Master.eLang.GetString(24, "Save Filter") + Me.btn_Reset.Text = Master.eLang.GetString(25, "Reset Filter") + Me.lblIn.Text = Master.eLang.GetString(11, "in") + Me.cbSearch.Items.AddRange(New Object() {Master.eLang.GetString(1, "Source Folder"), Master.eLang.GetString(21, "Title", True), Master.eLang.GetString(278, "Year", True), Master.eLang.GetString(2, "Video Flag"), Master.eLang.GetString(3, "Audio Flag")}) + lstSources.Items.Clear() + For Each s As Structures.MovieSource In Master.MovieSources + lstSources.Items.Add(s.Name) + Next + End Sub + + + + Private Sub txt_exportmoviepath_TextChanged(sender As Object, e As EventArgs) Handles txt_exportmoviepath.TextChanged + RaiseEvent ModuleSettingsChanged() + End Sub + + Private Sub chkExportTVShows_CheckedChanged(sender As Object, e As EventArgs) Handles chkExportTVShows.CheckedChanged + RaiseEvent ModuleSettingsChanged() + End Sub + + Private Sub cbo_exportmoviefanart_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbo_exportmoviefanart.SelectedIndexChanged + RaiseEvent ModuleSettingsChanged() + End Sub + + Private Sub cbo_exportmovieposter_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbo_exportmovieposter.SelectedIndexChanged + RaiseEvent ModuleSettingsChanged() + End Sub + + Private Sub lbl_exportmoviefilter1saved_TextChanged(sender As Object, e As EventArgs) Handles lbl_exportmoviefilter1saved.TextChanged + RaiseEvent ModuleSettingsChanged() + End Sub + + Private Sub lbl_exportmoviefilter2saved_TextChanged(sender As Object, e As EventArgs) Handles lbl_exportmoviefilter2saved.TextChanged + RaiseEvent ModuleSettingsChanged() + End Sub + + Private Sub lbl_exportmoviefilter3saved_TextChanged(sender As Object, e As EventArgs) Handles lbl_exportmoviefilter3saved.TextChanged + RaiseEvent ModuleSettingsChanged() + End Sub + + Private Sub cbo_exportmoviequality_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbo_exportmoviequality.SelectedIndexChanged + RaiseEvent ModuleSettingsChanged() + End Sub + + Private Sub cbSearch_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbSearch.SelectedIndexChanged + txtSearch.Text = "" + If ((cbSearch.Text = Master.eLang.GetString(5, "Source Folder") AndAlso lstSources.CheckedItems.Count > 0) OrElse txtSearch.Text <> "") AndAlso cbSearch.Text <> "" Then + btn_Apply.Enabled = True + Else + btn_Apply.Enabled = False + End If + If cbSearch.Text = Master.eLang.GetString(5, "Source Folder") Then + 'cbFilterSource.Visible = True + btnSource.Visible = True + txtSearch.ReadOnly = True + Else + 'cbFilterSource.Visible = False + btnSource.Visible = False + txtSearch.ReadOnly = False + End If + End Sub + Private Sub txtSearch_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSearch.TextChanged + If txtSearch.Text <> "" AndAlso cbSearch.Text <> "" Then + btn_Apply.Enabled = True + Else + btn_Apply.Enabled = False + End If End Sub #End Region 'Methods + + Private Sub btn_Apply_Click(sender As Object, e As EventArgs) Handles btn_Apply.Click + Dim sFilter As String = String.Empty + If cbSearch.Text = Master.eLang.GetString(5, "Source Folder") Then + For Each s As String In lstSources.CheckedItems + sFilter = String.Concat(sFilter, If(sFilter = String.Empty, String.Empty, ";"), s.ToString) + Next + Else + sFilter = txtSearch.Text + End If + sFilter = sFilter & "#" & cbSearch.Text + + If cbo_exportmoviefilter.Text = "Filter 1" Then + lbl_exportmoviefilter1saved.Text = sFilter + ElseIf cbo_exportmoviefilter.Text = "Filter 2" Then + lbl_exportmoviefilter2saved.Text = sFilter + ElseIf cbo_exportmoviefilter.Text = "Filter 3" Then + lbl_exportmoviefilter3saved.Text = sFilter + End If + txtSearch.Text = "" + End Sub + + Private Sub btnSource_Click(sender As Object, e As EventArgs) Handles btnSource.Click + If btnSource.ImageIndex = 0 Then + lstSources.Visible = True + btnSource.ImageIndex = 1 + Else + lstSources.Visible = False + btnSource.ImageIndex = 0 + Dim sFilter As String = String.Empty + If cbSearch.Text = Master.eLang.GetString(5, "Source Folder") Then + For Each s In lstSources.CheckedItems + sFilter = String.Concat(sFilter, If(sFilter = String.Empty, String.Empty, ";"), s.ToString) + Next + txtSearch.Text = sFilter + End If + End If + End Sub + + Private Sub btn_exportmoviepath_Click(sender As Object, e As EventArgs) Handles btn_exportmoviepath.Click + Using dlg As New FolderBrowserDialog() + dlg.Description = "Select ExportPath" + If dlg.ShowDialog() = DialogResult.OK Then + Me.txt_exportmoviepath.Text = dlg.SelectedPath + End If + End Using + End Sub + + + Private Sub btn_Reset_Click(sender As Object, e As EventArgs) Handles btn_Reset.Click + If cbo_exportmoviefilter.Text = "Filter 1" Then + lbl_exportmoviefilter1saved.Text = "-" + ElseIf cbo_exportmoviefilter.Text = "Filter 2" Then + lbl_exportmoviefilter2saved.Text = "-" + ElseIf cbo_exportmoviefilter.Text = "Filter 3" Then + lbl_exportmoviefilter3saved.Text = "-" + End If + txtSearch.Text = "" + End Sub + + End Class \ No newline at end of file diff --git a/Addons/generic.EmberCore.MovieExport/generic.EmberCore.MovieExporter.vbproj b/Addons/generic.EmberCore.MovieExport/generic.EmberCore.MovieExporter.vbproj index 766e804..735f5d4 100644 --- a/Addons/generic.EmberCore.MovieExport/generic.EmberCore.MovieExporter.vbproj +++ b/Addons/generic.EmberCore.MovieExport/generic.EmberCore.MovieExporter.vbproj @@ -189,6 +189,15 @@ + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + PreserveNewest @@ -201,7 +210,22 @@ PreserveNewest - + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + PreserveNewest diff --git a/Addons/generic.EmberCore.NMT/Langs/generic.EmberCore.NMT.Debug_(db_DB).xml b/Addons/generic.EmberCore.NMT/Langs/generic.EmberCore.NMT.Debug_(db_DB).xml new file mode 100644 index 0000000..ee7cfc6 --- /dev/null +++ b/Addons/generic.EmberCore.NMT/Langs/generic.EmberCore.NMT.Debug_(db_DB).xml @@ -0,0 +1,902 @@ + + nmt1 + nmt2 + nmt3 + nmt4 + nmt5 + nmt6 + nmt7 + nmt8 + nmt9 + nmt10 + nmt11 + nmt12 + nmt13 + nmt14 + nmt15 + nmt16 + nmt17 + nmt18 + nmt19 + nmt20 + nmt21 + nmt22 + nmt23 + nmt24 + nmt25 + nmt26 + nmt27 + nmt28 + nmt29 + nmt30 + nmt31 + nmt32 + nmt33 + nmt34 + nmt35 + nmt36 + nmt37 + nmt38 + nmt39 + nmt40 + nmt41 + nmt42 + nmt43 + nmt44 + nmt45 + nmt46 + nmt47 + nmt48 + nmt49 + nmt50 + nmt51 + nmt52 + nmt53 + nmt54 + nmt55 + nmt56 + nmt57 + nmt58 + nmt59 + nmt60 + nmt61 + nmt62 + nmt63 + nmt64 + nmt65 + nmt66 + nmt67 + nmt68 + nmt69 + nmt70 + nmt71 + nmt72 + nmt73 + nmt74 + nmt75 + nmt76 + nmt77 + nmt78 + nmt79 + nmt80 + nmt81 + nmt82 + nmt83 + nmt84 + nmt85 + nmt86 + nmt87 + nmt88 + nmt89 + nmt90 + nmt91 + nmt92 + nmt93 + nmt94 + nmt95 + nmt96 + nmt97 + nmt98 + nmt99 + nmt100 + nmt101 + nmt102 + nmt103 + nmt104 + nmt105 + nmt106 + nmt107 + nmt108 + nmt109 + nmt110 + nmt111 + nmt112 + nmt113 + nmt114 + nmt115 + nmt116 + nmt117 + nmt118 + nmt119 + nmt120 + nmt121 + nmt122 + nmt123 + nmt124 + nmt125 + nmt126 + nmt127 + nmt128 + nmt129 + nmt130 + nmt131 + nmt132 + nmt133 + nmt134 + nmt135 + nmt136 + nmt137 + nmt138 + nmt139 + nmt140 + nmt141 + nmt142 + nmt143 + nmt144 + nmt145 + nmt146 + nmt147 + nmt148 + nmt149 + nmt150 + nmt151 + nmt152 + nmt153 + nmt154 + nmt155 + nmt156 + nmt157 + nmt158 + nmt159 + nmt160 + nmt161 + nmt162 + nmt163 + nmt164 + nmt165 + nmt166 + nmt167 + nmt168 + nmt169 + nmt170 + nmt171 + nmt172 + nmt173 + nmt174 + nmt175 + nmt176 + nmt177 + nmt178 + nmt179 + nmt180 + nmt181 + nmt182 + nmt183 + nmt184 + nmt185 + nmt186 + nmt187 + nmt188 + nmt189 + nmt190 + nmt191 + nmt192 + nmt193 + nmt194 + nmt195 + nmt196 + nmt197 + nmt198 + nmt199 + nmt200 + nmt201 + nmt202 + nmt203 + nmt204 + nmt205 + nmt206 + nmt207 + nmt208 + nmt209 + nmt210 + nmt211 + nmt212 + nmt213 + nmt214 + nmt215 + nmt216 + nmt217 + nmt218 + nmt219 + nmt220 + nmt221 + nmt222 + nmt223 + nmt224 + nmt225 + nmt226 + nmt227 + nmt228 + nmt229 + nmt230 + nmt231 + nmt232 + nmt233 + nmt234 + nmt235 + nmt236 + nmt237 + nmt238 + nmt239 + nmt240 + nmt241 + nmt242 + nmt243 + nmt244 + nmt245 + nmt246 + nmt247 + nmt248 + nmt249 + nmt250 + nmt251 + nmt252 + nmt253 + nmt254 + nmt255 + nmt256 + nmt257 + nmt258 + nmt259 + nmt260 + nmt261 + nmt262 + nmt263 + nmt264 + nmt265 + nmt266 + nmt267 + nmt268 + nmt269 + nmt270 + nmt271 + nmt272 + nmt273 + nmt274 + nmt275 + nmt276 + nmt277 + nmt278 + nmt279 + nmt280 + nmt281 + nmt282 + nmt283 + nmt284 + nmt285 + nmt286 + nmt287 + nmt288 + nmt289 + nmt290 + nmt291 + nmt292 + nmt293 + nmt294 + nmt295 + nmt296 + nmt297 + nmt298 + nmt299 + nmt300 + nmt301 + nmt302 + nmt303 + nmt304 + nmt305 + nmt306 + nmt307 + nmt308 + nmt309 + nmt310 + nmt311 + nmt312 + nmt313 + nmt314 + nmt315 + nmt316 + nmt317 + nmt318 + nmt319 + nmt320 + nmt321 + nmt322 + nmt323 + nmt324 + nmt325 + nmt326 + nmt327 + nmt328 + nmt329 + nmt330 + nmt331 + nmt332 + nmt333 + nmt334 + nmt335 + nmt336 + nmt337 + nmt338 + nmt339 + nmt340 + nmt341 + nmt342 + nmt343 + nmt344 + nmt345 + nmt346 + nmt347 + nmt348 + nmt349 + nmt350 + nmt351 + nmt352 + nmt353 + nmt354 + nmt355 + nmt356 + nmt357 + nmt358 + nmt359 + nmt360 + nmt361 + nmt362 + nmt363 + nmt364 + nmt365 + nmt366 + nmt367 + nmt368 + nmt369 + nmt370 + nmt371 + nmt372 + nmt373 + nmt374 + nmt375 + nmt376 + nmt377 + nmt378 + nmt379 + nmt380 + nmt381 + nmt382 + nmt383 + nmt384 + nmt385 + nmt386 + nmt387 + nmt388 + nmt389 + nmt390 + nmt391 + nmt392 + nmt393 + nmt394 + nmt395 + nmt396 + nmt397 + nmt398 + nmt399 + nmt400 + nmt401 + nmt402 + nmt403 + nmt404 + nmt405 + nmt406 + nmt407 + nmt408 + nmt409 + nmt410 + nmt411 + nmt412 + nmt413 + nmt414 + nmt415 + nmt416 + nmt417 + nmt418 + nmt419 + nmt420 + nmt421 + nmt422 + nmt423 + nmt424 + nmt425 + nmt426 + nmt427 + nmt428 + nmt429 + nmt430 + nmt431 + nmt432 + nmt433 + nmt434 + nmt435 + nmt436 + nmt437 + nmt438 + nmt439 + nmt440 + nmt441 + nmt442 + nmt443 + nmt444 + nmt445 + nmt446 + nmt447 + nmt448 + nmt449 + nmt450 + nmt451 + nmt452 + nmt453 + nmt454 + nmt455 + nmt456 + nmt457 + nmt458 + nmt459 + nmt460 + nmt461 + nmt462 + nmt463 + nmt464 + nmt465 + nmt466 + nmt467 + nmt468 + nmt469 + nmt470 + nmt471 + nmt472 + nmt473 + nmt474 + nmt475 + nmt476 + nmt477 + nmt478 + nmt479 + nmt480 + nmt481 + nmt482 + nmt483 + nmt484 + nmt485 + nmt486 + nmt487 + nmt488 + nmt489 + nmt490 + nmt491 + nmt492 + nmt493 + nmt494 + nmt495 + nmt496 + nmt497 + nmt498 + nmt499 + nmt500 + nmt501 + nmt502 + nmt503 + nmt504 + nmt505 + nmt506 + nmt507 + nmt508 + nmt509 + nmt510 + nmt511 + nmt512 + nmt513 + nmt514 + nmt515 + nmt516 + nmt517 + nmt518 + nmt519 + nmt520 + nmt521 + nmt522 + nmt523 + nmt524 + nmt525 + nmt526 + nmt527 + nmt528 + nmt529 + nmt530 + nmt531 + nmt532 + nmt533 + nmt534 + nmt535 + nmt536 + nmt537 + nmt538 + nmt539 + nmt540 + nmt541 + nmt542 + nmt543 + nmt544 + nmt545 + nmt546 + nmt547 + nmt548 + nmt549 + nmt550 + nmt551 + nmt552 + nmt553 + nmt554 + nmt555 + nmt556 + nmt557 + nmt558 + nmt559 + nmt560 + nmt561 + nmt562 + nmt563 + nmt564 + nmt565 + nmt566 + nmt567 + nmt568 + nmt569 + nmt570 + nmt571 + nmt572 + nmt573 + nmt574 + nmt575 + nmt576 + nmt577 + nmt578 + nmt579 + nmt580 + nmt581 + nmt582 + nmt583 + nmt584 + nmt585 + nmt586 + nmt587 + nmt588 + nmt589 + nmt590 + nmt591 + nmt592 + nmt593 + nmt594 + nmt595 + nmt596 + nmt597 + nmt598 + nmt599 + nmt600 + nmt601 + nmt602 + nmt603 + nmt604 + nmt605 + nmt606 + nmt607 + nmt608 + nmt609 + nmt610 + nmt611 + nmt612 + nmt613 + nmt614 + nmt615 + nmt616 + nmt617 + nmt618 + nmt619 + nmt620 + nmt621 + nmt622 + nmt623 + nmt624 + nmt625 + nmt626 + nmt627 + nmt628 + nmt629 + nmt630 + nmt631 + nmt632 + nmt633 + nmt634 + nmt635 + nmt636 + nmt637 + nmt638 + nmt639 + nmt640 + nmt641 + nmt642 + nmt643 + nmt644 + nmt645 + nmt646 + nmt647 + nmt648 + nmt649 + nmt650 + nmt651 + nmt652 + nmt653 + nmt654 + nmt655 + nmt656 + nmt657 + nmt658 + nmt659 + nmt660 + nmt661 + nmt662 + nmt663 + nmt664 + nmt665 + nmt666 + nmt667 + nmt668 + nmt669 + nmt670 + nmt671 + nmt672 + nmt673 + nmt674 + nmt675 + nmt676 + nmt677 + nmt678 + nmt679 + nmt680 + nmt681 + nmt682 + nmt683 + nmt684 + nmt685 + nmt686 + nmt687 + nmt688 + nmt689 + nmt690 + nmt691 + nmt692 + nmt693 + nmt694 + nmt695 + nmt696 + nmt697 + nmt698 + nmt699 + nmt700 + nmt701 + nmt702 + nmt703 + nmt704 + nmt705 + nmt706 + nmt707 + nmt708 + nmt709 + nmt710 + nmt711 + nmt712 + nmt713 + nmt714 + nmt715 + nmt716 + nmt717 + nmt718 + nmt719 + nmt720 + nmt721 + nmt722 + nmt723 + nmt724 + nmt725 + nmt726 + nmt727 + nmt728 + nmt729 + nmt730 + nmt731 + nmt732 + nmt733 + nmt734 + nmt735 + nmt736 + nmt737 + nmt738 + nmt739 + nmt740 + nmt741 + nmt742 + nmt743 + nmt744 + nmt745 + nmt746 + nmt747 + nmt748 + nmt749 + nmt750 + nmt751 + nmt752 + nmt753 + nmt754 + nmt755 + nmt756 + nmt757 + nmt758 + nmt759 + nmt760 + nmt761 + nmt762 + nmt763 + nmt764 + nmt765 + nmt766 + nmt767 + nmt768 + nmt769 + nmt770 + nmt771 + nmt772 + nmt773 + nmt774 + nmt775 + nmt776 + nmt777 + nmt778 + nmt779 + nmt780 + nmt781 + nmt782 + nmt783 + nmt784 + nmt785 + nmt786 + nmt787 + nmt788 + nmt789 + nmt790 + nmt791 + nmt792 + nmt793 + nmt794 + nmt795 + nmt796 + nmt797 + nmt798 + nmt799 + nmt800 + nmt801 + nmt802 + nmt803 + nmt804 + nmt805 + nmt806 + nmt807 + nmt808 + nmt809 + nmt810 + nmt811 + nmt812 + nmt813 + nmt814 + nmt815 + nmt816 + nmt817 + nmt818 + nmt819 + nmt820 + nmt821 + nmt822 + nmt823 + nmt824 + nmt825 + nmt826 + nmt827 + nmt828 + nmt829 + nmt830 + nmt831 + nmt832 + nmt833 + nmt834 + nmt835 + nmt836 + nmt837 + nmt838 + nmt839 + nmt840 + nmt841 + nmt842 + nmt843 + nmt844 + nmt845 + nmt846 + nmt847 + nmt848 + nmt849 + nmt850 + nmt851 + nmt852 + nmt853 + nmt854 + nmt855 + nmt856 + nmt857 + nmt858 + nmt859 + nmt860 + nmt861 + nmt862 + nmt863 + nmt864 + nmt865 + nmt866 + nmt867 + nmt868 + nmt869 + nmt870 + nmt871 + nmt872 + nmt873 + nmt874 + nmt875 + nmt876 + nmt877 + nmt878 + nmt879 + nmt880 + nmt881 + nmt882 + nmt883 + nmt884 + nmt885 + nmt886 + nmt887 + nmt888 + nmt889 + nmt890 + nmt891 + nmt892 + nmt893 + nmt894 + nmt895 + nmt896 + nmt897 + nmt898 + nmt899 + nmt900 + \ No newline at end of file diff --git a/Addons/generic.EmberCore.NMT/Langs/generic.EmberCore.NMT.Dutch_(nl_NL).xml b/Addons/generic.EmberCore.NMT/Langs/generic.EmberCore.NMT.Dutch_(nl_NL).xml new file mode 100644 index 0000000..0dc8c34 --- /dev/null +++ b/Addons/generic.EmberCore.NMT/Langs/generic.EmberCore.NMT.Dutch_(nl_NL).xml @@ -0,0 +1,52 @@ + + NMT Jukebox bouwer + Jukebox bouwer + Compileren film lijst + Afbreken compilatie... + Template + Kies een template + Basismap mag niet hetzelfde zijn als de doelmap + Waarschuwing + Films - Exporteren data... + Films - Exporteren kenmerken... + Films - Exporteren posters + Films - Exporteren achtergronden + Gebruik het NMT pad als de bron niet dezelfde schijf/share is als de doelmap.{0}Sommige veel voorkomende paden zijn: +{0}file:///opt/sybhttpd/localhost.drives/NETWORK_SHARE/[remote_filesystem_name]/[Path_to_Source]{0}file:///opt/sybhttpd/localhost.drives/HARD_DISK/USB_DRIVE_A-1/[Path_to_Source] + Selecteer bronmap waar de Jukebox bestanden zullen worden opgeslagen + Doelmap + Bewaar instellingen + Build + Help + Geïnstalleerd + Nieuw + Starten... + Opschonen doelmap... + Gedateerd + Voorbereiden mappen... + Valideren info... + Ongeldige doelmap + Doelmap komt niet overeen met de geselecteerde bron en er is geen NMT pad gedefiniëerd + Temlate verwijderen kan niet ongedaan gemaakt worden. Weet je het zeker? + Verwijder template + Eigenschap + Waarde + Ember bron + NMT pad + Instelling + Template instelling + Thema instelling + Installeer template + Map bestaat reeds, overschrijven? + Map/bestand in gebruik! Overschrijven niet gelukt + Hoge prioriteit + Bij gebruik van externe tools kunnen meerdere instanties worden gestart voor een snellere bouw + Klik voor meer details + Kies/installeer a.u.b. eerst een template + Versie + Auteur + Status + Installeer + Verwijder + Details + diff --git a/Addons/generic.EmberCore.NMT/Langs/generic.EmberCore.NMT.English_(en_US).xml b/Addons/generic.EmberCore.NMT/Langs/generic.EmberCore.NMT.English_(en_US).xml index 0fa514f..f0f9a52 100644 --- a/Addons/generic.EmberCore.NMT/Langs/generic.EmberCore.NMT.English_(en_US).xml +++ b/Addons/generic.EmberCore.NMT/Langs/generic.EmberCore.NMT.English_(en_US).xml @@ -1,52 +1,51 @@ - - NMT Jukebox Builder - Jukebox Builder - Compiling Movie List... - Canceling Compilation... - Template - Choose a template - BasePath can not be the same as Output Folder - Warning - Movies - Exporting Data... - Movies - Exporting Flags... - Movies - Exporting Posters... - Movies - Exporting Backdrops... - Use the NMT Path when the source is not on the same Drive/Share as the Output folder.{0}Some common paths are:{0}file:///opt/sybhttpd/localhost.drives/NETWORK_SHARE/[remote_filesystem_name]/[Path_to_Source]{0}file:///opt/sybhttpd/localhost.drives/HARD_DISK/USB_DRIVE_A-1/[Path_to_Source] - Select Root Folder where Jukebox files will be exported - Output Folder - Save Settings - Build - Help - Installed - New - Starting... - Cleaning output folder... - Outdated - Preparing folders... - Validating Info... - Invalid Output Folder - Output Folder don't match Selected Sources and no NMT Path defined - Removing Template can not be undone. Are you sure? - Remove Template - Property - Value - Ember Source - NMT Path - Setting - Template Settings - Skin Properties - Install Template - Folder already exist. Overwrite? - File/Folder in use! Can Not overwrite - High Priority - When using external tools, run several instances for a faster build - Click for more details - Please Choose/Install a Template First - Version - Author - Status - Install - Remove - Details - \ No newline at end of file + NMT Jukebox Builder + Jukebox Builder + Compiling Movie List... + Canceling Compilation... + Template + Choose a template + BasePath can not be the same as Output Folder + Warning + Movies - Exporting Data... + Movies - Exporting Flags... + Movies - Exporting Posters... + Movies - Exporting Backdrops... + Use the NMT Path when the source is not on the same Drive/Share as the Output folder.{0}Some common paths are:{0}file:///opt/sybhttpd/localhost.drives/NETWORK_SHARE/[remote_filesystem_name]/[Path_to_Source]{0}file:///opt/sybhttpd/localhost.drives/HARD_DISK/USB_DRIVE_A-1/[Path_to_Source] + Select Root Folder where Jukebox files will be exported + Output Folder + Save Settings + Build + Help + Installed + New + Starting... + Cleaning output folder... + Outdated + Preparing folders... + Validating Info... + Invalid Output Folder + Output Folder don't match Selected Sources and no NMT Path defined + Removing Template can not be undone. Are you sure? + Remove Template + Property + Value + Ember Source + NMT Path + Setting + Template Settings + Skin Properties + Install Template + Folder already exist. Overwrite? + File/Folder in use! Can Not overwrite + High Priority + When using external tools, run several instances for a faster build + Click for more details + Please Choose/Install a Template First + Version + Author + Status + Install + Remove + Details + diff --git a/Addons/generic.EmberCore.NMT/Langs/generic.EmberCore.NMT.German_(de_DE).xml b/Addons/generic.EmberCore.NMT/Langs/generic.EmberCore.NMT.German_(de_DE).xml index b7540f5..60100d3 100644 --- a/Addons/generic.EmberCore.NMT/Langs/generic.EmberCore.NMT.German_(de_DE).xml +++ b/Addons/generic.EmberCore.NMT/Langs/generic.EmberCore.NMT.German_(de_DE).xml @@ -1,46 +1,51 @@ - - Jukebox Builder - Compiling Film List... - Abbruch Compilation... - Template - Template auswählen - BasePath kann nicht gleich dem Ausgangsordner sein - Achtung - Exportiere Daten... - Exportiere Flags... - Exportiere Cover... - Exportiere Hintergrund Bilder... - Benutze den NMT Pfad wenn die Quelle nicht gleich dem Ausgangsordner ist.{0}Syntax zum NMT ist:{0}file:///opt/sybhttpd/localhost.drives/NETWORK_SHARE/[remote_filesystem_name]/[Path_to_Source]{0}file:///opt/sybhttpd/localhost.drives/HARD_DISK/USB_DRIVE_A-1/[Path_to_Source] - Laufwerk und Ordner wo Jukebox Dateien exportiert werden sollen - Ausgangs Ordner - Template speichern - Erstellen - Hilfe - Installiert - Neu - Starten... - Ausgangs Ordner leeren... - veraltet - Vorbereiten Ordner... - Bestätigung Info... - Falscher Ausgangs Ordner - Bitte den korrekten NMT-Path nicht vergessen einzutragen da Ember weder Source noch NMT Path überprüft - Template entfernen kann nicht rückgängig gemacht werden. Bist du sicher? - entferne Template - Eigenschaften - Auswahl J/N - Ember Quelle - NMT Path - Einstellungen - Template Einstellungen - Skin Einstellungen - Installiere Template - Ordner existiert bereits. Überschreiben? - Datei/Ordner wird verwendet! Überschreiben nicht möglich - Hohe Priorität - Falls externe Tools benutzt werden, mehrere Instanzen laufen, bekommt Ember NMT Build hohe Priorität - Click für mehr Details - Bitte auswählen / Installiere zuerst ein Template + NMT Jukebox Builder + Jukebox Builder + Compiling Film List... + Abbruch Compilation... + Template + Template auswählen + BasePath kann nicht gleich dem Ausgangsordner sein + Achtung + Filme - Exportiere Daten... + Filme - Exportiere Flags... + Filme - Exportiere Cover... + Filme - Exportiere Hintergrund Bilder... + Benutze den NMT Pfad wenn die Quelle nicht gleich dem Ausgangsordner ist.{0}Syntax zum NMT ist:{0}file:///opt/sybhttpd/localhost.drives/NETWORK_SHARE/[remote_filesystem_name]/[Path_to_Source]{0}file:///opt/sybhttpd/localhost.drives/HARD_DISK/USB_DRIVE_A-1/[Path_to_Source] + Laufwerk und Ordner wohin die Jukebox Dateien exportiert werden sollen + Ausgangs Ordner + Template speichern + Erstellen + Hilfe + Installiert + Neu + Starten... + Ausgangs Ordner leeren... + Veraltet + Bereite Ordner vor... + Überprüfe Info... + Falscher Ausgangs Ordner + Bitte den korrekten NMT-Path nicht vergessen einzutragen da Ember weder Source noch NMT Path überprüft + Template entfernen kann nicht rückgängig gemacht werden. Bist du sicher? + Entferne Template + Eigenschaften + Auswahl J/N + Ember Quelle + NMT Path + Einstellungen + Template Einstellungen + Skin Einstellungen + Installiere Template + Ordner existiert bereits. Überschreiben? + Datei/Ordner wird verwendet! Überschreiben nicht möglich + Hohe Priorität + Falls externe Tools benutzt werden, mehrere Instanzen laufen, bekommt Ember NMT Build hohe Priorität + Click für mehr Details + Bitte wähle / installiere zuerst ein Template + Version + Autor + Status + Installieren + Entfernen + Details - \ No newline at end of file diff --git a/Addons/generic.EmberCore.NMT/Langs/generic.EmberCore.NMT.Italian_(it_IT).xml b/Addons/generic.EmberCore.NMT/Langs/generic.EmberCore.NMT.Italian_(it_IT).xml new file mode 100644 index 0000000..e9725e9 --- /dev/null +++ b/Addons/generic.EmberCore.NMT/Langs/generic.EmberCore.NMT.Italian_(it_IT).xml @@ -0,0 +1,51 @@ + + Creatore di Jukebox NMT + Creatore Jukebox + Compilazione Lista Films + Cancello Compilazione... + Modello + Scegli un modello + "BasePath" non puo essere la Cartella Destinazione. + Avviso + Films - Esportazione Dati... + Films - Esportazione Contrassegni... + Films - Esportazione Posters... + Films - Esportazione Sfondi... + Usa "NMT Path" quando i dati d'origine non stanno nello stesso Disco/Condivisione della cartella di destinazione.{0} Alcuni percorsi sono:{0}file:///opt/sybhttpd/localhost.drives/NETWORK_SHARE/[remote_filesystem_name]/[Path_to_Source]{0}file:///opt/sybhttpd/localhost.drives/HARD_DISK/USB_DRIVE_A-1/[Path_to_Source] + Selezione la cartella radice dove il Jukebox verrà esportato + Cartella Desinazione + Salva Impostazioni + Crea + Aiuto + Installato + Nuovo + Inizio... + Pulizia della cartella di destinazione... + Obsoleto + Praparazione cartelle... + Validazione Informazioni... + Cartella di Destinazione non valida + La Cartella di destinazione non coincide con le cartelle origine selezionate e nessun "NMT Path" è stato definito + La rimozione del modello è irreversibile. Sei sicuro? + Rimuovere Modello + Proprietà + Valore + Sorgente Ember + Percorso NMT + Impostazione + impostazioni Modello + Prorietà Skin + Installa Modello + La cartella esiste già. Sovrascrivere? + File/Cartella in uso! Non si può sovrascrivere. + Priorità Alta + Quando si usano strumenti esterni, eseguire più istanze per una creazione più rapida + Clicca per maggiori dettagli + prima Scegli/Installa un Modello + Versione + Autore + Stato + Installa + Rimuovi + Dettagli + diff --git a/Addons/generic.EmberCore.NMT/Langs/generic.EmberCore.NMT.Norwegian_(no_NO).xml b/Addons/generic.EmberCore.NMT/Langs/generic.EmberCore.NMT.Norwegian_(no_NO).xml new file mode 100644 index 0000000..cd32207 --- /dev/null +++ b/Addons/generic.EmberCore.NMT/Langs/generic.EmberCore.NMT.Norwegian_(no_NO).xml @@ -0,0 +1,51 @@ + + NMT Jukebox-bygger + Jukebox-bygger + Lager filmliste... + Avbryter listelaging + Templat + Velg et templat + Grunnbanen kan ikke være den samme som utgående mappe + Advarsel + Filmer - Eksporterer data... + Filmer - Eksporterer flagg... + Filmer - Exporterer plakater... + Filmer - Eksporterer bakgrunner... + Bruk NMT-bane når kilder ikke er på den samme partisjonen som utgående bane.{0}Noen vanlige baner er:{0}file:///opt/sybhttpd/localhost.drives/NETWORK_SHARE/[remote_filesystem_name]/[Path_to_Source]{0}file:///opt/sybhttpd/localhost.drives/HARD_DISK/USB_DRIVE_A-1/[Path_to_Source] + Velg rotmappen hvor jukebox-filene vil bli eksportert til + Utgående mappe + Lagre innstillinger + Lag + Hjelp + Installert + Ny + Starter... + Renser utgående mappe... + Utdatert + Forbereder mapper... + Validerer informasjon... + Ugyldig utgående mappe + Utgående mappe stemmer ikke med valgte kilder, og ingen NMT bane definert + Fjerning av templat kan ikke omgjøres. Er du sikker? + Fjern templat + Egenskap + Verdi + EMM kilde + NMT bane + Innstilling + Templatinnstillinger + Utseendeegenskaper + Installér templat + Mappen eksisterer allerede. Overskrive? + Fil/mappe i bruk! Kan ikke overskrive + Høy prioritet + Når eksterne verktøy brukes, kjør flere instanser for å lage filen raskere + Klikk for flere detaljer + Vennligst velg/installér templat først + Versjon + Forfatter + Status + Installér + Fjern + Detaljer + diff --git "a/Addons/generic.EmberCore.NMT/Langs/generic.EmberCore.NMT.Portugu\303\252s_(pt-BR).xml" "b/Addons/generic.EmberCore.NMT/Langs/generic.EmberCore.NMT.Portugu\303\252s_(pt-BR).xml" deleted file mode 100644 index a91dc2d..0000000 --- "a/Addons/generic.EmberCore.NMT/Langs/generic.EmberCore.NMT.Portugu\303\252s_(pt-BR).xml" +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/Addons/generic.EmberCore.NMT/Langs/generic.EmberCore.NMT.Spanish_(es_ES).xml b/Addons/generic.EmberCore.NMT/Langs/generic.EmberCore.NMT.Spanish_(es_ES).xml new file mode 100644 index 0000000..575303e --- /dev/null +++ b/Addons/generic.EmberCore.NMT/Langs/generic.EmberCore.NMT.Spanish_(es_ES).xml @@ -0,0 +1,51 @@ + + Constructor de Jukebox NMT + Constructor de Jukebox + Compilando Lista de Películas... + Cancelando la Compilación... + Plantilla + Seleccione una plantilla + BasePath no puede ser el mismo que Folder de Salida + Advertencia + Películas - Exportando Datos... + Películas - Exportando Indicadores... + Películas - Exportando Posters... + Películas - Exportando Fondos... + Utilice el Path NMT Path cuando la fuente no está en el mismo Disco/Share que el folder de Salida.{0} Algunos paths comunes son:{0}file:///opt/sybhttpd/localhost.drives/NETWORK_SHARE/[remote_filesystem_name]/[Path_to_Source]{0}file:///opt/sybhttpd/localhost.drives/HARD_DISK/USB_DRIVE_A-1/[Path_to_Source] + Seleccione el Folder Raíz donde se exportarán los archivos del Jukebox + Folder de Salida + Guardar Ajustes + Construir + Ayuda + instalado + Nuevo + Iniciando... + Limpiando folder de salida... + Viejo + Preparando folders... + Validando información... + Folder de Salida Inválido + El Folder de Salida no se corresponde con las Fuentes Seleccionadas y no se ha definido un Path NMT + El Borrado de una Plantilla no puede ser revertido. ¿Está seguro? + Borrar Plantilla + Propiedad + Valor + Fuente de Ember + Path NMT + Ajuste + Ajustes de Plantilla + Propiedades de Skin + Instalar Plantilla + El folder ya existe. ¿Sobreescribir? + El Archivo/Folder está en uso! No puede sobreescribirse + Alta Prioridad + Cuando utilice herramientas externas, ejecute múltiples instancias para una construcciòn más rápida + Haga click para más detalles + Por favor Seleccione/Instale primero una Plantilla + Versión + Autor + Estado + Instalar + Borrar + Detalles + diff --git a/Addons/generic.EmberCore.NMT/My Project/AssemblyInfo.vb b/Addons/generic.EmberCore.NMT/My Project/AssemblyInfo.vb index f157f5c..8bfee7d 100644 --- a/Addons/generic.EmberCore.NMT/My Project/AssemblyInfo.vb +++ b/Addons/generic.EmberCore.NMT/My Project/AssemblyInfo.vb @@ -9,7 +9,7 @@ Imports System.Runtime.InteropServices ' Review the values of the assembly attributes - + diff --git a/Addons/generic.EmberCore.NMT/generic.EmberCore.NMT.vbproj b/Addons/generic.EmberCore.NMT/generic.EmberCore.NMT.vbproj index 8ebd15d..e932ae8 100644 --- a/Addons/generic.EmberCore.NMT/generic.EmberCore.NMT.vbproj +++ b/Addons/generic.EmberCore.NMT/generic.EmberCore.NMT.vbproj @@ -176,13 +176,25 @@ + + PreserveNewest + + + PreserveNewest + PreserveNewest PreserveNewest - + + PreserveNewest + + + PreserveNewest + + PreserveNewest diff --git a/Addons/generic.EmberCore.Notifications/Langs/generic.EmberCore.Notifications.Debug_(db_DB).xml b/Addons/generic.EmberCore.Notifications/Langs/generic.EmberCore.Notifications.Debug_(db_DB).xml new file mode 100644 index 0000000..ffdeab8 --- /dev/null +++ b/Addons/generic.EmberCore.Notifications/Langs/generic.EmberCore.Notifications.Debug_(db_DB).xml @@ -0,0 +1,902 @@ + + noti1 + noti2 + noti3 + noti4 + noti5 + noti6 + noti7 + noti8 + noti9 + noti10 + noti11 + noti12 + noti13 + noti14 + noti15 + noti16 + noti17 + noti18 + noti19 + noti20 + noti21 + noti22 + noti23 + noti24 + noti25 + noti26 + noti27 + noti28 + noti29 + noti30 + noti31 + noti32 + noti33 + noti34 + noti35 + noti36 + noti37 + noti38 + noti39 + noti40 + noti41 + noti42 + noti43 + noti44 + noti45 + noti46 + noti47 + noti48 + noti49 + noti50 + noti51 + noti52 + noti53 + noti54 + noti55 + noti56 + noti57 + noti58 + noti59 + noti60 + noti61 + noti62 + noti63 + noti64 + noti65 + noti66 + noti67 + noti68 + noti69 + noti70 + noti71 + noti72 + noti73 + noti74 + noti75 + noti76 + noti77 + noti78 + noti79 + noti80 + noti81 + noti82 + noti83 + noti84 + noti85 + noti86 + noti87 + noti88 + noti89 + noti90 + noti91 + noti92 + noti93 + noti94 + noti95 + noti96 + noti97 + noti98 + noti99 + noti100 + noti101 + noti102 + noti103 + noti104 + noti105 + noti106 + noti107 + noti108 + noti109 + noti110 + noti111 + noti112 + noti113 + noti114 + noti115 + noti116 + noti117 + noti118 + noti119 + noti120 + noti121 + noti122 + noti123 + noti124 + noti125 + noti126 + noti127 + noti128 + noti129 + noti130 + noti131 + noti132 + noti133 + noti134 + noti135 + noti136 + noti137 + noti138 + noti139 + noti140 + noti141 + noti142 + noti143 + noti144 + noti145 + noti146 + noti147 + noti148 + noti149 + noti150 + noti151 + noti152 + noti153 + noti154 + noti155 + noti156 + noti157 + noti158 + noti159 + noti160 + noti161 + noti162 + noti163 + noti164 + noti165 + noti166 + noti167 + noti168 + noti169 + noti170 + noti171 + noti172 + noti173 + noti174 + noti175 + noti176 + noti177 + noti178 + noti179 + noti180 + noti181 + noti182 + noti183 + noti184 + noti185 + noti186 + noti187 + noti188 + noti189 + noti190 + noti191 + noti192 + noti193 + noti194 + noti195 + noti196 + noti197 + noti198 + noti199 + noti200 + noti201 + noti202 + noti203 + noti204 + noti205 + noti206 + noti207 + noti208 + noti209 + noti210 + noti211 + noti212 + noti213 + noti214 + noti215 + noti216 + noti217 + noti218 + noti219 + noti220 + noti221 + noti222 + noti223 + noti224 + noti225 + noti226 + noti227 + noti228 + noti229 + noti230 + noti231 + noti232 + noti233 + noti234 + noti235 + noti236 + noti237 + noti238 + noti239 + noti240 + noti241 + noti242 + noti243 + noti244 + noti245 + noti246 + noti247 + noti248 + noti249 + noti250 + noti251 + noti252 + noti253 + noti254 + noti255 + noti256 + noti257 + noti258 + noti259 + noti260 + noti261 + noti262 + noti263 + noti264 + noti265 + noti266 + noti267 + noti268 + noti269 + noti270 + noti271 + noti272 + noti273 + noti274 + noti275 + noti276 + noti277 + noti278 + noti279 + noti280 + noti281 + noti282 + noti283 + noti284 + noti285 + noti286 + noti287 + noti288 + noti289 + noti290 + noti291 + noti292 + noti293 + noti294 + noti295 + noti296 + noti297 + noti298 + noti299 + noti300 + noti301 + noti302 + noti303 + noti304 + noti305 + noti306 + noti307 + noti308 + noti309 + noti310 + noti311 + noti312 + noti313 + noti314 + noti315 + noti316 + noti317 + noti318 + noti319 + noti320 + noti321 + noti322 + noti323 + noti324 + noti325 + noti326 + noti327 + noti328 + noti329 + noti330 + noti331 + noti332 + noti333 + noti334 + noti335 + noti336 + noti337 + noti338 + noti339 + noti340 + noti341 + noti342 + noti343 + noti344 + noti345 + noti346 + noti347 + noti348 + noti349 + noti350 + noti351 + noti352 + noti353 + noti354 + noti355 + noti356 + noti357 + noti358 + noti359 + noti360 + noti361 + noti362 + noti363 + noti364 + noti365 + noti366 + noti367 + noti368 + noti369 + noti370 + noti371 + noti372 + noti373 + noti374 + noti375 + noti376 + noti377 + noti378 + noti379 + noti380 + noti381 + noti382 + noti383 + noti384 + noti385 + noti386 + noti387 + noti388 + noti389 + noti390 + noti391 + noti392 + noti393 + noti394 + noti395 + noti396 + noti397 + noti398 + noti399 + noti400 + noti401 + noti402 + noti403 + noti404 + noti405 + noti406 + noti407 + noti408 + noti409 + noti410 + noti411 + noti412 + noti413 + noti414 + noti415 + noti416 + noti417 + noti418 + noti419 + noti420 + noti421 + noti422 + noti423 + noti424 + noti425 + noti426 + noti427 + noti428 + noti429 + noti430 + noti431 + noti432 + noti433 + noti434 + noti435 + noti436 + noti437 + noti438 + noti439 + noti440 + noti441 + noti442 + noti443 + noti444 + noti445 + noti446 + noti447 + noti448 + noti449 + noti450 + noti451 + noti452 + noti453 + noti454 + noti455 + noti456 + noti457 + noti458 + noti459 + noti460 + noti461 + noti462 + noti463 + noti464 + noti465 + noti466 + noti467 + noti468 + noti469 + noti470 + noti471 + noti472 + noti473 + noti474 + noti475 + noti476 + noti477 + noti478 + noti479 + noti480 + noti481 + noti482 + noti483 + noti484 + noti485 + noti486 + noti487 + noti488 + noti489 + noti490 + noti491 + noti492 + noti493 + noti494 + noti495 + noti496 + noti497 + noti498 + noti499 + noti500 + noti501 + noti502 + noti503 + noti504 + noti505 + noti506 + noti507 + noti508 + noti509 + noti510 + noti511 + noti512 + noti513 + noti514 + noti515 + noti516 + noti517 + noti518 + noti519 + noti520 + noti521 + noti522 + noti523 + noti524 + noti525 + noti526 + noti527 + noti528 + noti529 + noti530 + noti531 + noti532 + noti533 + noti534 + noti535 + noti536 + noti537 + noti538 + noti539 + noti540 + noti541 + noti542 + noti543 + noti544 + noti545 + noti546 + noti547 + noti548 + noti549 + noti550 + noti551 + noti552 + noti553 + noti554 + noti555 + noti556 + noti557 + noti558 + noti559 + noti560 + noti561 + noti562 + noti563 + noti564 + noti565 + noti566 + noti567 + noti568 + noti569 + noti570 + noti571 + noti572 + noti573 + noti574 + noti575 + noti576 + noti577 + noti578 + noti579 + noti580 + noti581 + noti582 + noti583 + noti584 + noti585 + noti586 + noti587 + noti588 + noti589 + noti590 + noti591 + noti592 + noti593 + noti594 + noti595 + noti596 + noti597 + noti598 + noti599 + noti600 + noti601 + noti602 + noti603 + noti604 + noti605 + noti606 + noti607 + noti608 + noti609 + noti610 + noti611 + noti612 + noti613 + noti614 + noti615 + noti616 + noti617 + noti618 + noti619 + noti620 + noti621 + noti622 + noti623 + noti624 + noti625 + noti626 + noti627 + noti628 + noti629 + noti630 + noti631 + noti632 + noti633 + noti634 + noti635 + noti636 + noti637 + noti638 + noti639 + noti640 + noti641 + noti642 + noti643 + noti644 + noti645 + noti646 + noti647 + noti648 + noti649 + noti650 + noti651 + noti652 + noti653 + noti654 + noti655 + noti656 + noti657 + noti658 + noti659 + noti660 + noti661 + noti662 + noti663 + noti664 + noti665 + noti666 + noti667 + noti668 + noti669 + noti670 + noti671 + noti672 + noti673 + noti674 + noti675 + noti676 + noti677 + noti678 + noti679 + noti680 + noti681 + noti682 + noti683 + noti684 + noti685 + noti686 + noti687 + noti688 + noti689 + noti690 + noti691 + noti692 + noti693 + noti694 + noti695 + noti696 + noti697 + noti698 + noti699 + noti700 + noti701 + noti702 + noti703 + noti704 + noti705 + noti706 + noti707 + noti708 + noti709 + noti710 + noti711 + noti712 + noti713 + noti714 + noti715 + noti716 + noti717 + noti718 + noti719 + noti720 + noti721 + noti722 + noti723 + noti724 + noti725 + noti726 + noti727 + noti728 + noti729 + noti730 + noti731 + noti732 + noti733 + noti734 + noti735 + noti736 + noti737 + noti738 + noti739 + noti740 + noti741 + noti742 + noti743 + noti744 + noti745 + noti746 + noti747 + noti748 + noti749 + noti750 + noti751 + noti752 + noti753 + noti754 + noti755 + noti756 + noti757 + noti758 + noti759 + noti760 + noti761 + noti762 + noti763 + noti764 + noti765 + noti766 + noti767 + noti768 + noti769 + noti770 + noti771 + noti772 + noti773 + noti774 + noti775 + noti776 + noti777 + noti778 + noti779 + noti780 + noti781 + noti782 + noti783 + noti784 + noti785 + noti786 + noti787 + noti788 + noti789 + noti790 + noti791 + noti792 + noti793 + noti794 + noti795 + noti796 + noti797 + noti798 + noti799 + noti800 + noti801 + noti802 + noti803 + noti804 + noti805 + noti806 + noti807 + noti808 + noti809 + noti810 + noti811 + noti812 + noti813 + noti814 + noti815 + noti816 + noti817 + noti818 + noti819 + noti820 + noti821 + noti822 + noti823 + noti824 + noti825 + noti826 + noti827 + noti828 + noti829 + noti830 + noti831 + noti832 + noti833 + noti834 + noti835 + noti836 + noti837 + noti838 + noti839 + noti840 + noti841 + noti842 + noti843 + noti844 + noti845 + noti846 + noti847 + noti848 + noti849 + noti850 + noti851 + noti852 + noti853 + noti854 + noti855 + noti856 + noti857 + noti858 + noti859 + noti860 + noti861 + noti862 + noti863 + noti864 + noti865 + noti866 + noti867 + noti868 + noti869 + noti870 + noti871 + noti872 + noti873 + noti874 + noti875 + noti876 + noti877 + noti878 + noti879 + noti880 + noti881 + noti882 + noti883 + noti884 + noti885 + noti886 + noti887 + noti888 + noti889 + noti890 + noti891 + noti892 + noti893 + noti894 + noti895 + noti896 + noti897 + noti898 + noti899 + noti900 + \ No newline at end of file diff --git a/Addons/generic.EmberCore.Notifications/Langs/generic.EmberCore.Notifications.Dutch_(nl_NL)-Help.xml b/Addons/generic.EmberCore.Notifications/Langs/generic.EmberCore.Notifications.Dutch_(nl_NL)-Help.xml new file mode 100644 index 0000000..4d28f14 --- /dev/null +++ b/Addons/generic.EmberCore.Notifications/Langs/generic.EmberCore.Notifications.Dutch_(nl_NL)-Help.xml @@ -0,0 +1,7 @@ + + Gebruik deze module wel of niet. + Indien in gebruik zal er een melding worden getoond als er een fout optreedt. + Indien in gebruik zal er een melding worden getoond indien een film is toegevoegd aan de bibliotheek. + Indien in gebruik zal een melding worden getoond als een film is gescand. + Indien in gebruik zal een melding worden getoond als een aflevering is toegevoegd aan de bibliotheek. + diff --git a/Addons/generic.EmberCore.Notifications/Langs/generic.EmberCore.Notifications.Dutch_(nl_NL).xml b/Addons/generic.EmberCore.Notifications/Langs/generic.EmberCore.Notifications.Dutch_(nl_NL).xml new file mode 100644 index 0000000..832a080 --- /dev/null +++ b/Addons/generic.EmberCore.Notifications/Langs/generic.EmberCore.Notifications.Dutch_(nl_NL).xml @@ -0,0 +1,7 @@ + + Meldingen + Bij fouten + Bij nieuw toegevoegde films + Bij gescande films + Bij nieuw toegevoegde aflevering + diff --git a/Addons/generic.EmberCore.Notifications/Langs/generic.EmberCore.Notifications.English_(en_US)-Help.xml b/Addons/generic.EmberCore.Notifications/Langs/generic.EmberCore.Notifications.English_(en_US)-Help.xml index 9903bb3..a70c390 100644 --- a/Addons/generic.EmberCore.Notifications/Langs/generic.EmberCore.Notifications.English_(en_US)-Help.xml +++ b/Addons/generic.EmberCore.Notifications/Langs/generic.EmberCore.Notifications.English_(en_US)-Help.xml @@ -1,8 +1,7 @@ - - Enable or disable this module. - If enabled, a notification box will be displayed when an error occurs. - If enabled, a notification box will be displayed when a movie is added to the library. - If enabled, a notification box will be displayed when a movie is scraped. - If enabled, a notification box will be displayed when an episode is added to the library. - \ No newline at end of file + Enable or disable this module. + If enabled, a notification box will be displayed when an error occurs. + If enabled, a notification box will be displayed when a movie is added to the library. + If enabled, a notification box will be displayed when a movie is scraped. + If enabled, a notification box will be displayed when an episode is added to the library. + diff --git a/Addons/generic.EmberCore.Notifications/Langs/generic.EmberCore.Notifications.English_(en_US).xml b/Addons/generic.EmberCore.Notifications/Langs/generic.EmberCore.Notifications.English_(en_US).xml index ec76701..d61a768 100644 --- a/Addons/generic.EmberCore.Notifications/Langs/generic.EmberCore.Notifications.English_(en_US).xml +++ b/Addons/generic.EmberCore.Notifications/Langs/generic.EmberCore.Notifications.English_(en_US).xml @@ -1,8 +1,7 @@ - - Notifications - On Error - On New Movie Added - On Movie Scraped - On New Episode Added - \ No newline at end of file + Notifications + On Error + On New Movie Added + On Movie Scraped + On New Episode Added + diff --git a/Addons/generic.EmberCore.Notifications/Langs/generic.EmberCore.Notifications.German_(de_DE)-Help.xml b/Addons/generic.EmberCore.Notifications/Langs/generic.EmberCore.Notifications.German_(de_DE)-Help.xml index 0b10aa2..564e1c2 100644 --- a/Addons/generic.EmberCore.Notifications/Langs/generic.EmberCore.Notifications.German_(de_DE)-Help.xml +++ b/Addons/generic.EmberCore.Notifications/Langs/generic.EmberCore.Notifications.German_(de_DE)-Help.xml @@ -1,9 +1,7 @@ - - Ein oder ausschalten des Moduls. - Wenn eingeschalten, wird ein Hinweis angezeigt falls Fehler auftreten. - Wenn eingeschalten, wird ein Hinweis angezeigt wenn ein Film zur Datenbank hinzugefuegt wird. - Wenn eingeschalten, wird ein Hinweis angezeigt wenn ein Film gescrapt wird. - Wenn eingeschalten, wird ein Hinweis angezeigt wenn eine Episode der Datenbank hinzugefuegt wird. + Ein oder ausschalten des Moduls. + Wenn eingeschalten, wird ein Hinweis angezeigt falls Fehler auftreten. + Wenn eingeschalten, wird ein Hinweis angezeigt wenn ein Film zur Datenbank hinzugefügt wird. + Wenn eingeschalten, wird ein Hinweis angezeigt wenn ein Film gescrapt wird. + Wenn eingeschalten, wird ein Hinweis angezeigt wenn eine Episode der Datenbank hinzugefügt wird. - \ No newline at end of file diff --git a/Addons/generic.EmberCore.Notifications/Langs/generic.EmberCore.Notifications.German_(de_DE).xml b/Addons/generic.EmberCore.Notifications/Langs/generic.EmberCore.Notifications.German_(de_DE).xml index 5299d43..7884eb4 100644 --- a/Addons/generic.EmberCore.Notifications/Langs/generic.EmberCore.Notifications.German_(de_DE).xml +++ b/Addons/generic.EmberCore.Notifications/Langs/generic.EmberCore.Notifications.German_(de_DE).xml @@ -1,8 +1,7 @@ - - Meldungen - Bei Fehlern - Wenn ein neuer Film in Datenbank aufgenommen wird - Beim scrapen eines Films - Wenn neue Episode in Datenbank aufgenommen wird - \ No newline at end of file + Meldungen + Bei Fehlern + Wenn ein neuer Film in Datenbank aufgenommen wird + Beim Scrapen eines Films + Wenn neue Episode in Datenbank aufgenommen wird + diff --git a/Addons/generic.EmberCore.Notifications/Langs/generic.EmberCore.Notifications.Italian_(it_IT)-Help.xml b/Addons/generic.EmberCore.Notifications/Langs/generic.EmberCore.Notifications.Italian_(it_IT)-Help.xml new file mode 100644 index 0000000..9664279 --- /dev/null +++ b/Addons/generic.EmberCore.Notifications/Langs/generic.EmberCore.Notifications.Italian_(it_IT)-Help.xml @@ -0,0 +1,7 @@ + + Abilita o disabilita questo modulo. + Se abilitato, verrà visualizzata una notifica in caso di errore. + Se abilitato, verrà visualizzata una notifica quando viene aggiunto un film alla libreria. + Se abilitato, verrà visualizzata una notifica quando un film è analizzato. + Se abilitato, verrà visualizzata una notifica quando viene aggiunto un episodio alla libreria. + diff --git a/Addons/generic.EmberCore.Notifications/Langs/generic.EmberCore.Notifications.Italian_(it_IT).xml b/Addons/generic.EmberCore.Notifications/Langs/generic.EmberCore.Notifications.Italian_(it_IT).xml new file mode 100644 index 0000000..a3779b1 --- /dev/null +++ b/Addons/generic.EmberCore.Notifications/Langs/generic.EmberCore.Notifications.Italian_(it_IT).xml @@ -0,0 +1,7 @@ + + Notifiche + Per un errore + Per l'aggiunta di un nuovo film + Per l'analisi di un film + Per l'aggiunta di un nuovo episodio + diff --git a/Addons/generic.EmberCore.Notifications/Langs/generic.EmberCore.Notifications.Norwegian_(no_NO)-Help.xml b/Addons/generic.EmberCore.Notifications/Langs/generic.EmberCore.Notifications.Norwegian_(no_NO)-Help.xml new file mode 100644 index 0000000..1cdc413 --- /dev/null +++ b/Addons/generic.EmberCore.Notifications/Langs/generic.EmberCore.Notifications.Norwegian_(no_NO)-Help.xml @@ -0,0 +1,7 @@ + + Slå på eller slå av denne modulen. + Hvis påslått, en varselboks vil vises når en feil oppstår. + Hvis påslått, en varselboks vil vises når en ny film blir lagt til i biblioteket. + Hvis påslått, en varselboks vil vises når en film blir detaljhentet. + Hvis påslått, en varselboks vil vises når en episode blir lagt til i biblioteket. + diff --git a/Addons/generic.EmberCore.Notifications/Langs/generic.EmberCore.Notifications.Norwegian_(no_NO).xml b/Addons/generic.EmberCore.Notifications/Langs/generic.EmberCore.Notifications.Norwegian_(no_NO).xml new file mode 100644 index 0000000..cd3ec8a --- /dev/null +++ b/Addons/generic.EmberCore.Notifications/Langs/generic.EmberCore.Notifications.Norwegian_(no_NO).xml @@ -0,0 +1,7 @@ + + Varslinger + Ved feil + Ved ny film lagt til + Ved ny film detaljhentet + Ved ny episode lagt til + diff --git "a/Addons/generic.EmberCore.Notifications/Langs/generic.EmberCore.Notifications.Portugu\303\252s_(pt-BR).xml" "b/Addons/generic.EmberCore.Notifications/Langs/generic.EmberCore.Notifications.Portugu\303\252s_(pt-BR).xml" deleted file mode 100644 index a91dc2d..0000000 --- "a/Addons/generic.EmberCore.Notifications/Langs/generic.EmberCore.Notifications.Portugu\303\252s_(pt-BR).xml" +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/Addons/generic.EmberCore.Notifications/Langs/generic.EmberCore.Notifications.Spanish_(es_ES)-Help.xml b/Addons/generic.EmberCore.Notifications/Langs/generic.EmberCore.Notifications.Spanish_(es_ES)-Help.xml new file mode 100644 index 0000000..96674ad --- /dev/null +++ b/Addons/generic.EmberCore.Notifications/Langs/generic.EmberCore.Notifications.Spanish_(es_ES)-Help.xml @@ -0,0 +1,7 @@ + + Habilitar o deshabilitar este módulo. + Si está habilitado, se mostrará una notificación cuando ocurra un error. + Si está habilitado, se mostrará una notificación cuando se adicione una película a la videoteca. + Si está habilitado, se mostrará una notificación cuando se haga scraping a una película. + Si está habilitado, se mostrará una notificación cuando se adicione un episodio a la videoteca. + diff --git a/Addons/generic.EmberCore.Notifications/Langs/generic.EmberCore.Notifications.Spanish_(es_ES).xml b/Addons/generic.EmberCore.Notifications/Langs/generic.EmberCore.Notifications.Spanish_(es_ES).xml new file mode 100644 index 0000000..9ffd492 --- /dev/null +++ b/Addons/generic.EmberCore.Notifications/Langs/generic.EmberCore.Notifications.Spanish_(es_ES).xml @@ -0,0 +1,7 @@ + + Notificaciones + Cuando ocurra un Error + Cuando se Adicione una Película + Cuando se haga Scraping a una Película + Cuando se adicione un Episodio + diff --git a/Addons/generic.EmberCore.Notifications/My Project/AssemblyInfo.vb b/Addons/generic.EmberCore.Notifications/My Project/AssemblyInfo.vb index 8f802dc..b8455ed 100644 --- a/Addons/generic.EmberCore.Notifications/My Project/AssemblyInfo.vb +++ b/Addons/generic.EmberCore.Notifications/My Project/AssemblyInfo.vb @@ -9,7 +9,7 @@ Imports System.Runtime.InteropServices ' Review the values of the assembly attributes - + diff --git a/Addons/generic.EmberCore.Notifications/generic.EmberCore.Notifications.vbproj b/Addons/generic.EmberCore.Notifications/generic.EmberCore.Notifications.vbproj index 4923385..9687f61 100644 --- a/Addons/generic.EmberCore.Notifications/generic.EmberCore.Notifications.vbproj +++ b/Addons/generic.EmberCore.Notifications/generic.EmberCore.Notifications.vbproj @@ -175,6 +175,15 @@ + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + PreserveNewest @@ -187,7 +196,22 @@ PreserveNewest - + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + PreserveNewest diff --git a/Addons/generic.EmberCore.OfflineHolder/Langs/generic.EmberCore.OfflineHolder.Debug_(db_DB).xml b/Addons/generic.EmberCore.OfflineHolder/Langs/generic.EmberCore.OfflineHolder.Debug_(db_DB).xml new file mode 100644 index 0000000..4019405 --- /dev/null +++ b/Addons/generic.EmberCore.OfflineHolder/Langs/generic.EmberCore.OfflineHolder.Debug_(db_DB).xml @@ -0,0 +1,902 @@ + + offline1 + offline2 + offline3 + offline4 + offline5 + offline6 + offline7 + offline8 + offline9 + offline10 + offline11 + offline12 + offline13 + offline14 + offline15 + offline16 + offline17 + offline18 + offline19 + offline20 + offline21 + offline22 + offline23 + offline24 + offline25 + offline26 + offline27 + offline28 + offline29 + offline30 + offline31 + offline32 + offline33 + offline34 + offline35 + offline36 + offline37 + offline38 + offline39 + offline40 + offline41 + offline42 + offline43 + offline44 + offline45 + offline46 + offline47 + offline48 + offline49 + offline50 + offline51 + offline52 + offline53 + offline54 + offline55 + offline56 + offline57 + offline58 + offline59 + offline60 + offline61 + offline62 + offline63 + offline64 + offline65 + offline66 + offline67 + offline68 + offline69 + offline70 + offline71 + offline72 + offline73 + offline74 + offline75 + offline76 + offline77 + offline78 + offline79 + offline80 + offline81 + offline82 + offline83 + offline84 + offline85 + offline86 + offline87 + offline88 + offline89 + offline90 + offline91 + offline92 + offline93 + offline94 + offline95 + offline96 + offline97 + offline98 + offline99 + offline100 + offline101 + offline102 + offline103 + offline104 + offline105 + offline106 + offline107 + offline108 + offline109 + offline110 + offline111 + offline112 + offline113 + offline114 + offline115 + offline116 + offline117 + offline118 + offline119 + offline120 + offline121 + offline122 + offline123 + offline124 + offline125 + offline126 + offline127 + offline128 + offline129 + offline130 + offline131 + offline132 + offline133 + offline134 + offline135 + offline136 + offline137 + offline138 + offline139 + offline140 + offline141 + offline142 + offline143 + offline144 + offline145 + offline146 + offline147 + offline148 + offline149 + offline150 + offline151 + offline152 + offline153 + offline154 + offline155 + offline156 + offline157 + offline158 + offline159 + offline160 + offline161 + offline162 + offline163 + offline164 + offline165 + offline166 + offline167 + offline168 + offline169 + offline170 + offline171 + offline172 + offline173 + offline174 + offline175 + offline176 + offline177 + offline178 + offline179 + offline180 + offline181 + offline182 + offline183 + offline184 + offline185 + offline186 + offline187 + offline188 + offline189 + offline190 + offline191 + offline192 + offline193 + offline194 + offline195 + offline196 + offline197 + offline198 + offline199 + offline200 + offline201 + offline202 + offline203 + offline204 + offline205 + offline206 + offline207 + offline208 + offline209 + offline210 + offline211 + offline212 + offline213 + offline214 + offline215 + offline216 + offline217 + offline218 + offline219 + offline220 + offline221 + offline222 + offline223 + offline224 + offline225 + offline226 + offline227 + offline228 + offline229 + offline230 + offline231 + offline232 + offline233 + offline234 + offline235 + offline236 + offline237 + offline238 + offline239 + offline240 + offline241 + offline242 + offline243 + offline244 + offline245 + offline246 + offline247 + offline248 + offline249 + offline250 + offline251 + offline252 + offline253 + offline254 + offline255 + offline256 + offline257 + offline258 + offline259 + offline260 + offline261 + offline262 + offline263 + offline264 + offline265 + offline266 + offline267 + offline268 + offline269 + offline270 + offline271 + offline272 + offline273 + offline274 + offline275 + offline276 + offline277 + offline278 + offline279 + offline280 + offline281 + offline282 + offline283 + offline284 + offline285 + offline286 + offline287 + offline288 + offline289 + offline290 + offline291 + offline292 + offline293 + offline294 + offline295 + offline296 + offline297 + offline298 + offline299 + offline300 + offline301 + offline302 + offline303 + offline304 + offline305 + offline306 + offline307 + offline308 + offline309 + offline310 + offline311 + offline312 + offline313 + offline314 + offline315 + offline316 + offline317 + offline318 + offline319 + offline320 + offline321 + offline322 + offline323 + offline324 + offline325 + offline326 + offline327 + offline328 + offline329 + offline330 + offline331 + offline332 + offline333 + offline334 + offline335 + offline336 + offline337 + offline338 + offline339 + offline340 + offline341 + offline342 + offline343 + offline344 + offline345 + offline346 + offline347 + offline348 + offline349 + offline350 + offline351 + offline352 + offline353 + offline354 + offline355 + offline356 + offline357 + offline358 + offline359 + offline360 + offline361 + offline362 + offline363 + offline364 + offline365 + offline366 + offline367 + offline368 + offline369 + offline370 + offline371 + offline372 + offline373 + offline374 + offline375 + offline376 + offline377 + offline378 + offline379 + offline380 + offline381 + offline382 + offline383 + offline384 + offline385 + offline386 + offline387 + offline388 + offline389 + offline390 + offline391 + offline392 + offline393 + offline394 + offline395 + offline396 + offline397 + offline398 + offline399 + offline400 + offline401 + offline402 + offline403 + offline404 + offline405 + offline406 + offline407 + offline408 + offline409 + offline410 + offline411 + offline412 + offline413 + offline414 + offline415 + offline416 + offline417 + offline418 + offline419 + offline420 + offline421 + offline422 + offline423 + offline424 + offline425 + offline426 + offline427 + offline428 + offline429 + offline430 + offline431 + offline432 + offline433 + offline434 + offline435 + offline436 + offline437 + offline438 + offline439 + offline440 + offline441 + offline442 + offline443 + offline444 + offline445 + offline446 + offline447 + offline448 + offline449 + offline450 + offline451 + offline452 + offline453 + offline454 + offline455 + offline456 + offline457 + offline458 + offline459 + offline460 + offline461 + offline462 + offline463 + offline464 + offline465 + offline466 + offline467 + offline468 + offline469 + offline470 + offline471 + offline472 + offline473 + offline474 + offline475 + offline476 + offline477 + offline478 + offline479 + offline480 + offline481 + offline482 + offline483 + offline484 + offline485 + offline486 + offline487 + offline488 + offline489 + offline490 + offline491 + offline492 + offline493 + offline494 + offline495 + offline496 + offline497 + offline498 + offline499 + offline500 + offline501 + offline502 + offline503 + offline504 + offline505 + offline506 + offline507 + offline508 + offline509 + offline510 + offline511 + offline512 + offline513 + offline514 + offline515 + offline516 + offline517 + offline518 + offline519 + offline520 + offline521 + offline522 + offline523 + offline524 + offline525 + offline526 + offline527 + offline528 + offline529 + offline530 + offline531 + offline532 + offline533 + offline534 + offline535 + offline536 + offline537 + offline538 + offline539 + offline540 + offline541 + offline542 + offline543 + offline544 + offline545 + offline546 + offline547 + offline548 + offline549 + offline550 + offline551 + offline552 + offline553 + offline554 + offline555 + offline556 + offline557 + offline558 + offline559 + offline560 + offline561 + offline562 + offline563 + offline564 + offline565 + offline566 + offline567 + offline568 + offline569 + offline570 + offline571 + offline572 + offline573 + offline574 + offline575 + offline576 + offline577 + offline578 + offline579 + offline580 + offline581 + offline582 + offline583 + offline584 + offline585 + offline586 + offline587 + offline588 + offline589 + offline590 + offline591 + offline592 + offline593 + offline594 + offline595 + offline596 + offline597 + offline598 + offline599 + offline600 + offline601 + offline602 + offline603 + offline604 + offline605 + offline606 + offline607 + offline608 + offline609 + offline610 + offline611 + offline612 + offline613 + offline614 + offline615 + offline616 + offline617 + offline618 + offline619 + offline620 + offline621 + offline622 + offline623 + offline624 + offline625 + offline626 + offline627 + offline628 + offline629 + offline630 + offline631 + offline632 + offline633 + offline634 + offline635 + offline636 + offline637 + offline638 + offline639 + offline640 + offline641 + offline642 + offline643 + offline644 + offline645 + offline646 + offline647 + offline648 + offline649 + offline650 + offline651 + offline652 + offline653 + offline654 + offline655 + offline656 + offline657 + offline658 + offline659 + offline660 + offline661 + offline662 + offline663 + offline664 + offline665 + offline666 + offline667 + offline668 + offline669 + offline670 + offline671 + offline672 + offline673 + offline674 + offline675 + offline676 + offline677 + offline678 + offline679 + offline680 + offline681 + offline682 + offline683 + offline684 + offline685 + offline686 + offline687 + offline688 + offline689 + offline690 + offline691 + offline692 + offline693 + offline694 + offline695 + offline696 + offline697 + offline698 + offline699 + offline700 + offline701 + offline702 + offline703 + offline704 + offline705 + offline706 + offline707 + offline708 + offline709 + offline710 + offline711 + offline712 + offline713 + offline714 + offline715 + offline716 + offline717 + offline718 + offline719 + offline720 + offline721 + offline722 + offline723 + offline724 + offline725 + offline726 + offline727 + offline728 + offline729 + offline730 + offline731 + offline732 + offline733 + offline734 + offline735 + offline736 + offline737 + offline738 + offline739 + offline740 + offline741 + offline742 + offline743 + offline744 + offline745 + offline746 + offline747 + offline748 + offline749 + offline750 + offline751 + offline752 + offline753 + offline754 + offline755 + offline756 + offline757 + offline758 + offline759 + offline760 + offline761 + offline762 + offline763 + offline764 + offline765 + offline766 + offline767 + offline768 + offline769 + offline770 + offline771 + offline772 + offline773 + offline774 + offline775 + offline776 + offline777 + offline778 + offline779 + offline780 + offline781 + offline782 + offline783 + offline784 + offline785 + offline786 + offline787 + offline788 + offline789 + offline790 + offline791 + offline792 + offline793 + offline794 + offline795 + offline796 + offline797 + offline798 + offline799 + offline800 + offline801 + offline802 + offline803 + offline804 + offline805 + offline806 + offline807 + offline808 + offline809 + offline810 + offline811 + offline812 + offline813 + offline814 + offline815 + offline816 + offline817 + offline818 + offline819 + offline820 + offline821 + offline822 + offline823 + offline824 + offline825 + offline826 + offline827 + offline828 + offline829 + offline830 + offline831 + offline832 + offline833 + offline834 + offline835 + offline836 + offline837 + offline838 + offline839 + offline840 + offline841 + offline842 + offline843 + offline844 + offline845 + offline846 + offline847 + offline848 + offline849 + offline850 + offline851 + offline852 + offline853 + offline854 + offline855 + offline856 + offline857 + offline858 + offline859 + offline860 + offline861 + offline862 + offline863 + offline864 + offline865 + offline866 + offline867 + offline868 + offline869 + offline870 + offline871 + offline872 + offline873 + offline874 + offline875 + offline876 + offline877 + offline878 + offline879 + offline880 + offline881 + offline882 + offline883 + offline884 + offline885 + offline886 + offline887 + offline888 + offline889 + offline890 + offline891 + offline892 + offline893 + offline894 + offline895 + offline896 + offline897 + offline898 + offline899 + offline900 + \ No newline at end of file diff --git "a/Addons/generic.EmberCore.BulkRename/Langs/generic.EmberCore.BulkRename.Portugu\303\252s_(pt-BR).xml" b/Addons/generic.EmberCore.OfflineHolder/Langs/generic.EmberCore.OfflineHolder.Dutch_(nl_NL)-Help.xml similarity index 54% rename from "Addons/generic.EmberCore.BulkRename/Langs/generic.EmberCore.BulkRename.Portugu\303\252s_(pt-BR).xml" rename to Addons/generic.EmberCore.OfflineHolder/Langs/generic.EmberCore.OfflineHolder.Dutch_(nl_NL)-Help.xml index a91dc2d..657b264 100644 --- "a/Addons/generic.EmberCore.BulkRename/Langs/generic.EmberCore.BulkRename.Portugu\303\252s_(pt-BR).xml" +++ b/Addons/generic.EmberCore.OfflineHolder/Langs/generic.EmberCore.OfflineHolder.Dutch_(nl_NL)-Help.xml @@ -1,3 +1,3 @@ - - \ No newline at end of file + Gebruik deze module wel of niet + diff --git a/Addons/generic.EmberCore.OfflineHolder/Langs/generic.EmberCore.OfflineHolder.Dutch_(nl_NL).xml b/Addons/generic.EmberCore.OfflineHolder/Langs/generic.EmberCore.OfflineHolder.Dutch_(nl_NL).xml new file mode 100644 index 0000000..8459abf --- /dev/null +++ b/Addons/generic.EmberCore.OfflineHolder/Langs/generic.EmberCore.OfflineHolder.Dutch_(nl_NL).xml @@ -0,0 +1,33 @@ + + Offline Media Manager + Voer DVD in + Voorbereiden data + Film maken + Film bouwen + Verplaatsen bestanden + Hernoemen bestanden + Offline film map gemaakt! + Bronmap bestaat niet of kan niet worden gevonden: + Bronmap + Film (map naam) + Map afbeelding + Offline Media Manager + Voeg offline film toe + Voeg aan bron toe: + Map/film naam: + Zoek in IMDB + Maken in bulk + Conditie + Maak + Gebruik fanart voor map video + Map video subtitel: + Tekst kleur: + Subtitel: + Map video formaat: + Gebruik subtitel achtergrond + Subtitel achtergrondkleur + Gebruik Ember overlay + Selecteer lettertype... + Informatie + Offline Media Manager + diff --git a/Addons/generic.EmberCore.OfflineHolder/Langs/generic.EmberCore.OfflineHolder.English_(en_US)-Help.xml b/Addons/generic.EmberCore.OfflineHolder/Langs/generic.EmberCore.OfflineHolder.English_(en_US)-Help.xml index 7b6267c..2b42b01 100644 --- a/Addons/generic.EmberCore.OfflineHolder/Langs/generic.EmberCore.OfflineHolder.English_(en_US)-Help.xml +++ b/Addons/generic.EmberCore.OfflineHolder/Langs/generic.EmberCore.OfflineHolder.English_(en_US)-Help.xml @@ -1,4 +1,3 @@ - - Enable or disable this module. - \ No newline at end of file + Enable or disable this module. + diff --git a/Addons/generic.EmberCore.OfflineHolder/Langs/generic.EmberCore.OfflineHolder.English_(en_US).xml b/Addons/generic.EmberCore.OfflineHolder/Langs/generic.EmberCore.OfflineHolder.English_(en_US).xml index ca2085e..53660ee 100644 --- a/Addons/generic.EmberCore.OfflineHolder/Langs/generic.EmberCore.OfflineHolder.English_(en_US).xml +++ b/Addons/generic.EmberCore.OfflineHolder/Langs/generic.EmberCore.OfflineHolder.English_(en_US).xml @@ -1,35 +1,33 @@ - - Offline Media Manager - Insert DVD - Preparing Data - Creating Movie - Building Movie - Moving Files - Renaming Files - Offline movie place holder created! - Source directory does not exist or could not be found: - Source Folder - Movie (Folder Name) - Place Holder Image - Offline Media Manager - Add Offline movie - Add to Source: - Place Holder Folder/Movie Name: - Search IMDB - Bulk Creator - Condition - Create - Use Fanart for Place Holder Video - Place Holder Video Tagline: - Text Color: - Tagline Top: - Place Holder Video Format: - Use Tagline Background - Tagline background Color: - Use Ember Overlay - Select Font... - Information - Offline Media Manager - - \ No newline at end of file + Offline Media Manager + Insert DVD + Preparing Data + Creating Movie + Building Movie + Moving Files + Renaming Files + Offline movie place holder created! + Source directory does not exist or could not be found: + Source Folder + Movie (Folder Name) + Place Holder Image + Offline Media Manager + Add Offline movie + Add to Source: + Place Holder Folder/Movie Name: + Search IMDB + Bulk Creator + Condition + Create + Use Fanart for Place Holder Video + Place Holder Video Tagline: + Text Color: + Tagline Top: + Place Holder Video Format: + Use Tagline Background + Tagline background Color: + Use Ember Overlay + Select Font... + Information + Offline Media Manager + diff --git a/Addons/generic.EmberCore.OfflineHolder/Langs/generic.EmberCore.OfflineHolder.German_(de_DE)-Help.xml b/Addons/generic.EmberCore.OfflineHolder/Langs/generic.EmberCore.OfflineHolder.German_(de_DE)-Help.xml index 49ec1eb..3737367 100644 --- a/Addons/generic.EmberCore.OfflineHolder/Langs/generic.EmberCore.OfflineHolder.German_(de_DE)-Help.xml +++ b/Addons/generic.EmberCore.OfflineHolder/Langs/generic.EmberCore.OfflineHolder.German_(de_DE)-Help.xml @@ -1,5 +1,3 @@ - - Aktiviert dieses Modul. + Aktiviert dieses Modul. - diff --git a/Addons/generic.EmberCore.OfflineHolder/Langs/generic.EmberCore.OfflineHolder.German_(de_DE).xml b/Addons/generic.EmberCore.OfflineHolder/Langs/generic.EmberCore.OfflineHolder.German_(de_DE).xml index 2f8bb27..4dbdba6 100644 --- a/Addons/generic.EmberCore.OfflineHolder/Langs/generic.EmberCore.OfflineHolder.German_(de_DE).xml +++ b/Addons/generic.EmberCore.OfflineHolder/Langs/generic.EmberCore.OfflineHolder.German_(de_DE).xml @@ -1,34 +1,33 @@ - - Lege eine DVD ein - Bereite Daten vor - Erzeuge Film - Erzeuge Film - Verschiebe Dateien - Benenne Dateien um - Offline Film Platzhalter erzeugt! - Quellverzeichnis existiert nicht oder kann nicht gelesen werden: - Quellverzeichnis - Film (Verzeichn. Name) - Platzhalter Bild - Offline Medien Manager - Offline Video hinzufügemn - Zu Quelle hinzufügen: - Platzhalter Verzeichn./Film Name: - Suche auf IMDB - Bulk Creator - Kondition - Anlegen - Fanart als Platzhaltervideo benutzen - Platzhalter Video Tagline: - Text Farbe: - Tagline Top: - Platzhalter Video Format: - Tagline Hintergrund benutzen - Tagline Hintergrund Farbe: - Ember Overlay benutzen - Wähle Schriftart... - Information - Offline Media Manager + Offline Medien Manager + Lege eine DVD ein + Bereite Daten vor + Erzeuge Film + Erzeuge Film + Verschiebe Dateien + Benenne Dateien um + Offline Film Platzhalter erzeugt! + Quellverzeichnis existiert nicht oder kann nicht gelesen werden: + Quellverzeichnis + Film (Verzeichn. Name) + Platzhalter Bild + Offline Medien Manager + Offline Video hinzufügen + Zu Quelle hinzufügen: + Platzhalter Verzeichn./Film Name: + Suche auf IMDB + Bulk Creator + Kondition + Anlegen + Fanart als Platzhaltervideo benutzen + Platzhalter Video Tagline: + Text Farbe: + Tagline Top: + Platzhalter Video Format: + Tagline Hintergrund benutzen + Tagline Hintergrund Farbe: + Ember Overlay benutzen + Wähle Schriftart... + Information + Offline Medien Manager - diff --git "a/Addons/generic.EmberCore.Extractor/Langs/generic.EmberCore.Extractor.Portugu\303\252s_(pt-BR).xml" b/Addons/generic.EmberCore.OfflineHolder/Langs/generic.EmberCore.OfflineHolder.Italian_(it_IT)-Help.xml similarity index 53% rename from "Addons/generic.EmberCore.Extractor/Langs/generic.EmberCore.Extractor.Portugu\303\252s_(pt-BR).xml" rename to Addons/generic.EmberCore.OfflineHolder/Langs/generic.EmberCore.OfflineHolder.Italian_(it_IT)-Help.xml index a91dc2d..87959f9 100644 --- "a/Addons/generic.EmberCore.Extractor/Langs/generic.EmberCore.Extractor.Portugu\303\252s_(pt-BR).xml" +++ b/Addons/generic.EmberCore.OfflineHolder/Langs/generic.EmberCore.OfflineHolder.Italian_(it_IT)-Help.xml @@ -1,3 +1,3 @@ - - \ No newline at end of file + Abilita o disabilita questo modulo + diff --git a/Addons/generic.EmberCore.OfflineHolder/Langs/generic.EmberCore.OfflineHolder.Italian_(it_IT).xml b/Addons/generic.EmberCore.OfflineHolder/Langs/generic.EmberCore.OfflineHolder.Italian_(it_IT).xml new file mode 100644 index 0000000..73e3a3e --- /dev/null +++ b/Addons/generic.EmberCore.OfflineHolder/Langs/generic.EmberCore.OfflineHolder.Italian_(it_IT).xml @@ -0,0 +1,33 @@ + + Offline Media Manager + Inderisci DVD + Preparo i Dati + Creo Film + Assemblo Film + Sposto Files + Rinomino Files + Contenitore Offline Creato! + La cartella origine non esiste o non può essere trovata: + Cartella Origine + Film (Nome Cartella) + Contenitore Immagini + Offline Media Manager + Aggiungere Film Offline + Aggiungi Origine: + Contenitore Cartella/Titolo Film: + Cerca IMDB + Creatore di massa: + Condizione + Crea + Usa Fanart per Contenitore Video + Tagline Contenitore Video + Colore Testo: + Tagline Top: + Formato Contenitore Video: + Usa Sfondo Tagline + Colore Sfondo Tagline + Usa Overlay di Ember + Seleziona carattere... + Informazione + Offline Media Manager + diff --git "a/Addons/generic.EmberCore.MediaFileManager/Langs/generic.EmberCore.MediaFileManager.Portugu\303\252s_(pt-BR).xml" b/Addons/generic.EmberCore.OfflineHolder/Langs/generic.EmberCore.OfflineHolder.Norwegian_(no_NO)-Help.xml similarity index 53% rename from "Addons/generic.EmberCore.MediaFileManager/Langs/generic.EmberCore.MediaFileManager.Portugu\303\252s_(pt-BR).xml" rename to Addons/generic.EmberCore.OfflineHolder/Langs/generic.EmberCore.OfflineHolder.Norwegian_(no_NO)-Help.xml index a91dc2d..0cee9ec 100644 --- "a/Addons/generic.EmberCore.MediaFileManager/Langs/generic.EmberCore.MediaFileManager.Portugu\303\252s_(pt-BR).xml" +++ b/Addons/generic.EmberCore.OfflineHolder/Langs/generic.EmberCore.OfflineHolder.Norwegian_(no_NO)-Help.xml @@ -1,3 +1,3 @@ - - \ No newline at end of file + Slå på eller slå av denne modulen. + diff --git a/Addons/generic.EmberCore.OfflineHolder/Langs/generic.EmberCore.OfflineHolder.Norwegian_(no_NO).xml b/Addons/generic.EmberCore.OfflineHolder/Langs/generic.EmberCore.OfflineHolder.Norwegian_(no_NO).xml new file mode 100644 index 0000000..29675e9 --- /dev/null +++ b/Addons/generic.EmberCore.OfflineHolder/Langs/generic.EmberCore.OfflineHolder.Norwegian_(no_NO).xml @@ -0,0 +1,33 @@ + + Offline mediamanager + Sett inn DVD + Forberedrer data + Lager film + Bygger film + Flytter filer + Endrer filnavn + Offline film-holder lagd! + Kildemappen eksisterer ikke, eller kunne ikke bli funnet + Kildemappe + Film (mappenavn) + Midlertidig bilde + Offline mediamanager + Legg til offline film + Legg til kilde: + Midlertidig mappe/filmnavn: + Søk IMDB + Masse-skaper + Kritérie + Lag + Bruk fankunst som Midlertidig video + Midlertidig undertittel + Tekstfarge: + Undertittel over: + Midlertidig videoformat + Bruk undertittel som bakgrunn + Bakgrunnsundertittel-farge: + Bruk EMM-overlay + Velg font... + Informasjon + Offline mediamanager + diff --git "a/Addons/generic.EmberCore.OfflineHolder/Langs/generic.EmberCore.OfflineHolder.Portugu\303\252s_(pt-BR).xml" "b/Addons/generic.EmberCore.OfflineHolder/Langs/generic.EmberCore.OfflineHolder.Portugu\303\252s_(pt-BR).xml" deleted file mode 100644 index a91dc2d..0000000 --- "a/Addons/generic.EmberCore.OfflineHolder/Langs/generic.EmberCore.OfflineHolder.Portugu\303\252s_(pt-BR).xml" +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git "a/Addons/generic.EmberCore.MovieExport/Langs/generic.EmberCore.MovieExporter.Portugu\303\252s_(pt-BR).xml" b/Addons/generic.EmberCore.OfflineHolder/Langs/generic.EmberCore.OfflineHolder.Spanish_(es_ES)-Help.xml similarity index 52% rename from "Addons/generic.EmberCore.MovieExport/Langs/generic.EmberCore.MovieExporter.Portugu\303\252s_(pt-BR).xml" rename to Addons/generic.EmberCore.OfflineHolder/Langs/generic.EmberCore.OfflineHolder.Spanish_(es_ES)-Help.xml index a91dc2d..dc9eb58 100644 --- "a/Addons/generic.EmberCore.MovieExport/Langs/generic.EmberCore.MovieExporter.Portugu\303\252s_(pt-BR).xml" +++ b/Addons/generic.EmberCore.OfflineHolder/Langs/generic.EmberCore.OfflineHolder.Spanish_(es_ES)-Help.xml @@ -1,3 +1,3 @@ - - \ No newline at end of file + Habilitar o deshabilitar este módulo. + diff --git a/Addons/generic.EmberCore.OfflineHolder/Langs/generic.EmberCore.OfflineHolder.Spanish_(es_ES).xml b/Addons/generic.EmberCore.OfflineHolder/Langs/generic.EmberCore.OfflineHolder.Spanish_(es_ES).xml new file mode 100644 index 0000000..464ba5d --- /dev/null +++ b/Addons/generic.EmberCore.OfflineHolder/Langs/generic.EmberCore.OfflineHolder.Spanish_(es_ES).xml @@ -0,0 +1,33 @@ + + Gestor de Media Offline + Inserte DVD + Preparando Datos + Creando Película + Construyendo Película + Moviendo Archivos + Renombrando Archivos + Lugar reservado para película offline ha sido creado! + El directorio fuente no existe o no pudo ser encontrado: + Folder Fuente + Película (Nombre de Folder) + Imágen para Lugar Reservado + Gestor de Media Offline + Adicionar película Offline + Añadir a Fuente: + Folder de Lugar Reservado/Nombre de Película: + Buscar en IMDB + Creador en Masa + Condición + Crear + Utilizar Fanart para Vídeo de Lugar Reservado + Slogan de Vídeo de Lugar Reservado: + Color de Texto: + Slogan Superior: + Formato de Vídeo de Lugar Reservado: + Utilizar Fondo de Slogan + Color de Fondo de Slogan: + Utilizar Overlay de Ember + Seleccione el Font... + Información + Gestor de Media Offline + diff --git a/Addons/generic.EmberCore.OfflineHolder/My Project/AssemblyInfo.vb b/Addons/generic.EmberCore.OfflineHolder/My Project/AssemblyInfo.vb index c236a5e..b7360ee 100644 --- a/Addons/generic.EmberCore.OfflineHolder/My Project/AssemblyInfo.vb +++ b/Addons/generic.EmberCore.OfflineHolder/My Project/AssemblyInfo.vb @@ -9,7 +9,7 @@ Imports System.Runtime.InteropServices ' Review the values of the assembly attributes - + diff --git a/Addons/generic.EmberCore.OfflineHolder/generic.EmberCore.OfflineHolder.vbproj b/Addons/generic.EmberCore.OfflineHolder/generic.EmberCore.OfflineHolder.vbproj index db8732b..1d531e4 100644 --- a/Addons/generic.EmberCore.OfflineHolder/generic.EmberCore.OfflineHolder.vbproj +++ b/Addons/generic.EmberCore.OfflineHolder/generic.EmberCore.OfflineHolder.vbproj @@ -195,6 +195,15 @@ + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + PreserveNewest @@ -207,7 +216,22 @@ PreserveNewest - + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + PreserveNewest diff --git "a/Addons/generic.EmberCore.WebServer/Langs/generic.EmberCore.WebServer.Portugu\303\252s_(pt-BR).xml" "b/Addons/generic.EmberCore.WebServer/Langs/generic.EmberCore.WebServer.Portugu\303\252s_(pt-BR).xml" deleted file mode 100644 index a91dc2d..0000000 --- "a/Addons/generic.EmberCore.WebServer/Langs/generic.EmberCore.WebServer.Portugu\303\252s_(pt-BR).xml" +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/Addons/generic.EmberCore.WebServer/My Project/AssemblyInfo.vb b/Addons/generic.EmberCore.WebServer/My Project/AssemblyInfo.vb index a8ca617..45d38bd 100644 --- a/Addons/generic.EmberCore.WebServer/My Project/AssemblyInfo.vb +++ b/Addons/generic.EmberCore.WebServer/My Project/AssemblyInfo.vb @@ -9,7 +9,7 @@ Imports System.Runtime.InteropServices ' Review the values of the assembly attributes - + diff --git a/Addons/generic.EmberCore.XBMC/Langs/generic.EmberCore.XBMC.Debug_(db_DB).xml b/Addons/generic.EmberCore.XBMC/Langs/generic.EmberCore.XBMC.Debug_(db_DB).xml new file mode 100644 index 0000000..8caf3b9 --- /dev/null +++ b/Addons/generic.EmberCore.XBMC/Langs/generic.EmberCore.XBMC.Debug_(db_DB).xml @@ -0,0 +1,902 @@ + + xbmc1 + xbmc2 + xbmc3 + xbmc4 + xbmc5 + xbmc6 + xbmc7 + xbmc8 + xbmc9 + xbmc10 + xbmc11 + xbmc12 + xbmc13 + xbmc14 + xbmc15 + xbmc16 + xbmc17 + xbmc18 + xbmc19 + xbmc20 + xbmc21 + xbmc22 + xbmc23 + xbmc24 + xbmc25 + xbmc26 + xbmc27 + xbmc28 + xbmc29 + xbmc30 + xbmc31 + xbmc32 + xbmc33 + xbmc34 + xbmc35 + xbmc36 + xbmc37 + xbmc38 + xbmc39 + xbmc40 + xbmc41 + xbmc42 + xbmc43 + xbmc44 + xbmc45 + xbmc46 + xbmc47 + xbmc48 + xbmc49 + xbmc50 + xbmc51 + xbmc52 + xbmc53 + xbmc54 + xbmc55 + xbmc56 + xbmc57 + xbmc58 + xbmc59 + xbmc60 + xbmc61 + xbmc62 + xbmc63 + xbmc64 + xbmc65 + xbmc66 + xbmc67 + xbmc68 + xbmc69 + xbmc70 + xbmc71 + xbmc72 + xbmc73 + xbmc74 + xbmc75 + xbmc76 + xbmc77 + xbmc78 + xbmc79 + xbmc80 + xbmc81 + xbmc82 + xbmc83 + xbmc84 + xbmc85 + xbmc86 + xbmc87 + xbmc88 + xbmc89 + xbmc90 + xbmc91 + xbmc92 + xbmc93 + xbmc94 + xbmc95 + xbmc96 + xbmc97 + xbmc98 + xbmc99 + xbmc100 + xbmc101 + xbmc102 + xbmc103 + xbmc104 + xbmc105 + xbmc106 + xbmc107 + xbmc108 + xbmc109 + xbmc110 + xbmc111 + xbmc112 + xbmc113 + xbmc114 + xbmc115 + xbmc116 + xbmc117 + xbmc118 + xbmc119 + xbmc120 + xbmc121 + xbmc122 + xbmc123 + xbmc124 + xbmc125 + xbmc126 + xbmc127 + xbmc128 + xbmc129 + xbmc130 + xbmc131 + xbmc132 + xbmc133 + xbmc134 + xbmc135 + xbmc136 + xbmc137 + xbmc138 + xbmc139 + xbmc140 + xbmc141 + xbmc142 + xbmc143 + xbmc144 + xbmc145 + xbmc146 + xbmc147 + xbmc148 + xbmc149 + xbmc150 + xbmc151 + xbmc152 + xbmc153 + xbmc154 + xbmc155 + xbmc156 + xbmc157 + xbmc158 + xbmc159 + xbmc160 + xbmc161 + xbmc162 + xbmc163 + xbmc164 + xbmc165 + xbmc166 + xbmc167 + xbmc168 + xbmc169 + xbmc170 + xbmc171 + xbmc172 + xbmc173 + xbmc174 + xbmc175 + xbmc176 + xbmc177 + xbmc178 + xbmc179 + xbmc180 + xbmc181 + xbmc182 + xbmc183 + xbmc184 + xbmc185 + xbmc186 + xbmc187 + xbmc188 + xbmc189 + xbmc190 + xbmc191 + xbmc192 + xbmc193 + xbmc194 + xbmc195 + xbmc196 + xbmc197 + xbmc198 + xbmc199 + xbmc200 + xbmc201 + xbmc202 + xbmc203 + xbmc204 + xbmc205 + xbmc206 + xbmc207 + xbmc208 + xbmc209 + xbmc210 + xbmc211 + xbmc212 + xbmc213 + xbmc214 + xbmc215 + xbmc216 + xbmc217 + xbmc218 + xbmc219 + xbmc220 + xbmc221 + xbmc222 + xbmc223 + xbmc224 + xbmc225 + xbmc226 + xbmc227 + xbmc228 + xbmc229 + xbmc230 + xbmc231 + xbmc232 + xbmc233 + xbmc234 + xbmc235 + xbmc236 + xbmc237 + xbmc238 + xbmc239 + xbmc240 + xbmc241 + xbmc242 + xbmc243 + xbmc244 + xbmc245 + xbmc246 + xbmc247 + xbmc248 + xbmc249 + xbmc250 + xbmc251 + xbmc252 + xbmc253 + xbmc254 + xbmc255 + xbmc256 + xbmc257 + xbmc258 + xbmc259 + xbmc260 + xbmc261 + xbmc262 + xbmc263 + xbmc264 + xbmc265 + xbmc266 + xbmc267 + xbmc268 + xbmc269 + xbmc270 + xbmc271 + xbmc272 + xbmc273 + xbmc274 + xbmc275 + xbmc276 + xbmc277 + xbmc278 + xbmc279 + xbmc280 + xbmc281 + xbmc282 + xbmc283 + xbmc284 + xbmc285 + xbmc286 + xbmc287 + xbmc288 + xbmc289 + xbmc290 + xbmc291 + xbmc292 + xbmc293 + xbmc294 + xbmc295 + xbmc296 + xbmc297 + xbmc298 + xbmc299 + xbmc300 + xbmc301 + xbmc302 + xbmc303 + xbmc304 + xbmc305 + xbmc306 + xbmc307 + xbmc308 + xbmc309 + xbmc310 + xbmc311 + xbmc312 + xbmc313 + xbmc314 + xbmc315 + xbmc316 + xbmc317 + xbmc318 + xbmc319 + xbmc320 + xbmc321 + xbmc322 + xbmc323 + xbmc324 + xbmc325 + xbmc326 + xbmc327 + xbmc328 + xbmc329 + xbmc330 + xbmc331 + xbmc332 + xbmc333 + xbmc334 + xbmc335 + xbmc336 + xbmc337 + xbmc338 + xbmc339 + xbmc340 + xbmc341 + xbmc342 + xbmc343 + xbmc344 + xbmc345 + xbmc346 + xbmc347 + xbmc348 + xbmc349 + xbmc350 + xbmc351 + xbmc352 + xbmc353 + xbmc354 + xbmc355 + xbmc356 + xbmc357 + xbmc358 + xbmc359 + xbmc360 + xbmc361 + xbmc362 + xbmc363 + xbmc364 + xbmc365 + xbmc366 + xbmc367 + xbmc368 + xbmc369 + xbmc370 + xbmc371 + xbmc372 + xbmc373 + xbmc374 + xbmc375 + xbmc376 + xbmc377 + xbmc378 + xbmc379 + xbmc380 + xbmc381 + xbmc382 + xbmc383 + xbmc384 + xbmc385 + xbmc386 + xbmc387 + xbmc388 + xbmc389 + xbmc390 + xbmc391 + xbmc392 + xbmc393 + xbmc394 + xbmc395 + xbmc396 + xbmc397 + xbmc398 + xbmc399 + xbmc400 + xbmc401 + xbmc402 + xbmc403 + xbmc404 + xbmc405 + xbmc406 + xbmc407 + xbmc408 + xbmc409 + xbmc410 + xbmc411 + xbmc412 + xbmc413 + xbmc414 + xbmc415 + xbmc416 + xbmc417 + xbmc418 + xbmc419 + xbmc420 + xbmc421 + xbmc422 + xbmc423 + xbmc424 + xbmc425 + xbmc426 + xbmc427 + xbmc428 + xbmc429 + xbmc430 + xbmc431 + xbmc432 + xbmc433 + xbmc434 + xbmc435 + xbmc436 + xbmc437 + xbmc438 + xbmc439 + xbmc440 + xbmc441 + xbmc442 + xbmc443 + xbmc444 + xbmc445 + xbmc446 + xbmc447 + xbmc448 + xbmc449 + xbmc450 + xbmc451 + xbmc452 + xbmc453 + xbmc454 + xbmc455 + xbmc456 + xbmc457 + xbmc458 + xbmc459 + xbmc460 + xbmc461 + xbmc462 + xbmc463 + xbmc464 + xbmc465 + xbmc466 + xbmc467 + xbmc468 + xbmc469 + xbmc470 + xbmc471 + xbmc472 + xbmc473 + xbmc474 + xbmc475 + xbmc476 + xbmc477 + xbmc478 + xbmc479 + xbmc480 + xbmc481 + xbmc482 + xbmc483 + xbmc484 + xbmc485 + xbmc486 + xbmc487 + xbmc488 + xbmc489 + xbmc490 + xbmc491 + xbmc492 + xbmc493 + xbmc494 + xbmc495 + xbmc496 + xbmc497 + xbmc498 + xbmc499 + xbmc500 + xbmc501 + xbmc502 + xbmc503 + xbmc504 + xbmc505 + xbmc506 + xbmc507 + xbmc508 + xbmc509 + xbmc510 + xbmc511 + xbmc512 + xbmc513 + xbmc514 + xbmc515 + xbmc516 + xbmc517 + xbmc518 + xbmc519 + xbmc520 + xbmc521 + xbmc522 + xbmc523 + xbmc524 + xbmc525 + xbmc526 + xbmc527 + xbmc528 + xbmc529 + xbmc530 + xbmc531 + xbmc532 + xbmc533 + xbmc534 + xbmc535 + xbmc536 + xbmc537 + xbmc538 + xbmc539 + xbmc540 + xbmc541 + xbmc542 + xbmc543 + xbmc544 + xbmc545 + xbmc546 + xbmc547 + xbmc548 + xbmc549 + xbmc550 + xbmc551 + xbmc552 + xbmc553 + xbmc554 + xbmc555 + xbmc556 + xbmc557 + xbmc558 + xbmc559 + xbmc560 + xbmc561 + xbmc562 + xbmc563 + xbmc564 + xbmc565 + xbmc566 + xbmc567 + xbmc568 + xbmc569 + xbmc570 + xbmc571 + xbmc572 + xbmc573 + xbmc574 + xbmc575 + xbmc576 + xbmc577 + xbmc578 + xbmc579 + xbmc580 + xbmc581 + xbmc582 + xbmc583 + xbmc584 + xbmc585 + xbmc586 + xbmc587 + xbmc588 + xbmc589 + xbmc590 + xbmc591 + xbmc592 + xbmc593 + xbmc594 + xbmc595 + xbmc596 + xbmc597 + xbmc598 + xbmc599 + xbmc600 + xbmc601 + xbmc602 + xbmc603 + xbmc604 + xbmc605 + xbmc606 + xbmc607 + xbmc608 + xbmc609 + xbmc610 + xbmc611 + xbmc612 + xbmc613 + xbmc614 + xbmc615 + xbmc616 + xbmc617 + xbmc618 + xbmc619 + xbmc620 + xbmc621 + xbmc622 + xbmc623 + xbmc624 + xbmc625 + xbmc626 + xbmc627 + xbmc628 + xbmc629 + xbmc630 + xbmc631 + xbmc632 + xbmc633 + xbmc634 + xbmc635 + xbmc636 + xbmc637 + xbmc638 + xbmc639 + xbmc640 + xbmc641 + xbmc642 + xbmc643 + xbmc644 + xbmc645 + xbmc646 + xbmc647 + xbmc648 + xbmc649 + xbmc650 + xbmc651 + xbmc652 + xbmc653 + xbmc654 + xbmc655 + xbmc656 + xbmc657 + xbmc658 + xbmc659 + xbmc660 + xbmc661 + xbmc662 + xbmc663 + xbmc664 + xbmc665 + xbmc666 + xbmc667 + xbmc668 + xbmc669 + xbmc670 + xbmc671 + xbmc672 + xbmc673 + xbmc674 + xbmc675 + xbmc676 + xbmc677 + xbmc678 + xbmc679 + xbmc680 + xbmc681 + xbmc682 + xbmc683 + xbmc684 + xbmc685 + xbmc686 + xbmc687 + xbmc688 + xbmc689 + xbmc690 + xbmc691 + xbmc692 + xbmc693 + xbmc694 + xbmc695 + xbmc696 + xbmc697 + xbmc698 + xbmc699 + xbmc700 + xbmc701 + xbmc702 + xbmc703 + xbmc704 + xbmc705 + xbmc706 + xbmc707 + xbmc708 + xbmc709 + xbmc710 + xbmc711 + xbmc712 + xbmc713 + xbmc714 + xbmc715 + xbmc716 + xbmc717 + xbmc718 + xbmc719 + xbmc720 + xbmc721 + xbmc722 + xbmc723 + xbmc724 + xbmc725 + xbmc726 + xbmc727 + xbmc728 + xbmc729 + xbmc730 + xbmc731 + xbmc732 + xbmc733 + xbmc734 + xbmc735 + xbmc736 + xbmc737 + xbmc738 + xbmc739 + xbmc740 + xbmc741 + xbmc742 + xbmc743 + xbmc744 + xbmc745 + xbmc746 + xbmc747 + xbmc748 + xbmc749 + xbmc750 + xbmc751 + xbmc752 + xbmc753 + xbmc754 + xbmc755 + xbmc756 + xbmc757 + xbmc758 + xbmc759 + xbmc760 + xbmc761 + xbmc762 + xbmc763 + xbmc764 + xbmc765 + xbmc766 + xbmc767 + xbmc768 + xbmc769 + xbmc770 + xbmc771 + xbmc772 + xbmc773 + xbmc774 + xbmc775 + xbmc776 + xbmc777 + xbmc778 + xbmc779 + xbmc780 + xbmc781 + xbmc782 + xbmc783 + xbmc784 + xbmc785 + xbmc786 + xbmc787 + xbmc788 + xbmc789 + xbmc790 + xbmc791 + xbmc792 + xbmc793 + xbmc794 + xbmc795 + xbmc796 + xbmc797 + xbmc798 + xbmc799 + xbmc800 + xbmc801 + xbmc802 + xbmc803 + xbmc804 + xbmc805 + xbmc806 + xbmc807 + xbmc808 + xbmc809 + xbmc810 + xbmc811 + xbmc812 + xbmc813 + xbmc814 + xbmc815 + xbmc816 + xbmc817 + xbmc818 + xbmc819 + xbmc820 + xbmc821 + xbmc822 + xbmc823 + xbmc824 + xbmc825 + xbmc826 + xbmc827 + xbmc828 + xbmc829 + xbmc830 + xbmc831 + xbmc832 + xbmc833 + xbmc834 + xbmc835 + xbmc836 + xbmc837 + xbmc838 + xbmc839 + xbmc840 + xbmc841 + xbmc842 + xbmc843 + xbmc844 + xbmc845 + xbmc846 + xbmc847 + xbmc848 + xbmc849 + xbmc850 + xbmc851 + xbmc852 + xbmc853 + xbmc854 + xbmc855 + xbmc856 + xbmc857 + xbmc858 + xbmc859 + xbmc860 + xbmc861 + xbmc862 + xbmc863 + xbmc864 + xbmc865 + xbmc866 + xbmc867 + xbmc868 + xbmc869 + xbmc870 + xbmc871 + xbmc872 + xbmc873 + xbmc874 + xbmc875 + xbmc876 + xbmc877 + xbmc878 + xbmc879 + xbmc880 + xbmc881 + xbmc882 + xbmc883 + xbmc884 + xbmc885 + xbmc886 + xbmc887 + xbmc888 + xbmc889 + xbmc890 + xbmc891 + xbmc892 + xbmc893 + xbmc894 + xbmc895 + xbmc896 + xbmc897 + xbmc898 + xbmc899 + xbmc900 + \ No newline at end of file diff --git a/Addons/generic.EmberCore.XBMC/Langs/generic.EmberCore.XBMC.Dutch_(nl_NL)-Help.xml b/Addons/generic.EmberCore.XBMC/Langs/generic.EmberCore.XBMC.Dutch_(nl_NL)-Help.xml new file mode 100644 index 0000000..cfd89f7 --- /dev/null +++ b/Addons/generic.EmberCore.XBMC/Langs/generic.EmberCore.XBMC.Dutch_(nl_NL)-Help.xml @@ -0,0 +1,12 @@ + + Gebruik deze module wel of niet. + De lijst van XBMC installaties die Ember zal gebruiken voor communicatie. + Verwijder de geselecteerde XBMC installatie van de lijst. + Geef een unieke naam om deze XBMC installatie te identificeren + Voer het IP adres in van de computer waarop XBMC is geïnstalleerd. + Voer het poortnummer in van de computer waarop XBMC is geïnstalleerd. + Voer de gebruikersnaam in die zal worden gebruikt voor de communicatie met XBMC. + Voer het wachtwoord in die zal worden gebruikt voor de communicatie met XBMC. + Gebruik de zojuist gecreëerde XBMC installatie. + Gebruik de zojuist ingevoerde informatie voor een nieuwe XBMC installatie. + diff --git a/Addons/generic.EmberCore.XBMC/Langs/generic.EmberCore.XBMC.Dutch_(nl_NL).xml b/Addons/generic.EmberCore.XBMC/Langs/generic.EmberCore.XBMC.Dutch_(nl_NL).xml new file mode 100644 index 0000000..071480f --- /dev/null +++ b/Addons/generic.EmberCore.XBMC/Langs/generic.EmberCore.XBMC.Dutch_(nl_NL).xml @@ -0,0 +1,34 @@ + + XBMC controller + De naam die je wilt gebruiken voor deze XBMC installatie is reeds in gebruik. Kies een andere naam. + Iedere naam moet uniek zijn + Voer een poort in voor deze XBMC installatie. + Voer a.u.b. een poort in + Voer een IP adres in voor deze XBMC installatie. + Voer een IP in + Je moet een naam invoeren voor deze XBMC installatie + Voer a.u.b. een unieke naam in + XBMC communicatie + Wijzig + Naam: + Toevoegen + XBMC IP: + XBMC Port: + Verwijder geselecteerde + Starten XBMC update niet gelukt + Er was een probleem tijdens de communicatie met {0}{1}. + XBMC + XBMC controller + Realtime synchronisatie aanzetten + Realtime synchronisatie + Zoeken... + Gebruik bronnen + Ember bron + XBMC bron + XBMC bron type + Windows schijfletter (X:\) + Windows UNC/Linux/MacOS X + XBMC host + Stuur bericht + Haal speel teller van: + diff --git a/Addons/generic.EmberCore.XBMC/Langs/generic.EmberCore.XBMC.English_(en_US)-Help.xml b/Addons/generic.EmberCore.XBMC/Langs/generic.EmberCore.XBMC.English_(en_US)-Help.xml index f0c033e..ff01d33 100644 --- a/Addons/generic.EmberCore.XBMC/Langs/generic.EmberCore.XBMC.English_(en_US)-Help.xml +++ b/Addons/generic.EmberCore.XBMC/Langs/generic.EmberCore.XBMC.English_(en_US)-Help.xml @@ -1,13 +1,12 @@ - - Enable or disable this module. - The list of all entered XBMC installations with which Ember will communicate. - Remove the selected XBMC installation from the list. - Enter a unique name to identify this XBMC installation. - Enter the IP of the computer running XBMC. - Enter the port number of the computer running XBMC. - Enter the username that will be used to access this XBMC installation. - Enter the password that will be used to access this XBMC installation. - Change the selected XBMC installation to use the newly entered information. - Add the entered information as a new XBMC installation. - \ No newline at end of file + Enable or disable this module. + The list of all entered XBMC installations with which Ember will communicate. + Remove the selected XBMC installation from the list. + Enter a unique name to identify this XBMC installation. + Enter the IP of the computer running XBMC. + Enter the port number of the computer running XBMC. + Enter the username that will be used to access this XBMC installation. + Enter the password that will be used to access this XBMC installation. + Change the selected XBMC installation to use the newly entered information. + Add the entered information as a new XBMC installation. + diff --git a/Addons/generic.EmberCore.XBMC/Langs/generic.EmberCore.XBMC.English_(en_US).xml b/Addons/generic.EmberCore.XBMC/Langs/generic.EmberCore.XBMC.English_(en_US).xml index f74ece1..4cd5563 100644 --- a/Addons/generic.EmberCore.XBMC/Langs/generic.EmberCore.XBMC.English_(en_US).xml +++ b/Addons/generic.EmberCore.XBMC/Langs/generic.EmberCore.XBMC.English_(en_US).xml @@ -1,35 +1,34 @@ - - XBMC Controller - The name you are attempting to use for this XBMC installation is already in use. Please choose another. - Each name must be unique - You must enter a port for this XBMC installation. - Please Enter a Port - You must enter an IP for this XBMC installation. - Please Enter an IP - You must enter a name for this XBMC installation. - Please Enter a Unique Name - XBMC Communication - Edit - Name: - Add - XBMC IP: - XBMC Port: - Remove Selected - Unable to Start XBMC Update - There was a problem communicating with {0}{1}. - XBMC - XBMC Controller - Enable Real Time synchronization - Real Time synchronization - Searching ... - Populate Sources - Ember Source - XBMC Source - XBMC Source type - Windows Drive Letter (X:\) - Windows UNC/Linux/MacOS X - XBMC Host - Send Notifications - Retrieve PlayCount from: - \ No newline at end of file + XBMC Controller + The name you are attempting to use for this XBMC installation is already in use. Please choose another. + Each name must be unique + You must enter a port for this XBMC installation. + Please Enter a Port + You must enter an IP for this XBMC installation. + Please Enter an IP + You must enter a name for this XBMC installation. + Please Enter a Unique Name + XBMC Communication + Edit + Name: + Add + XBMC IP: + XBMC Port: + Remove Selected + Unable to Start XBMC Update + There was a problem communicating with {0}{1}. + XBMC + XBMC Controller + Enable Real Time synchronization + Real Time synchronization + Searching ... + Populate Sources + Ember Source + XBMC Source + XBMC Source type + Windows Drive Letter (X:\) + Windows UNC/Linux/MacOS X + XBMC Host + Send Notifications + Retrieve PlayCount from: + diff --git a/Addons/generic.EmberCore.XBMC/Langs/generic.EmberCore.XBMC.German_(de_DE)-Help.xml b/Addons/generic.EmberCore.XBMC/Langs/generic.EmberCore.XBMC.German_(de_DE)-Help.xml index 0cabc3d..3e65115 100644 --- a/Addons/generic.EmberCore.XBMC/Langs/generic.EmberCore.XBMC.German_(de_DE)-Help.xml +++ b/Addons/generic.EmberCore.XBMC/Langs/generic.EmberCore.XBMC.German_(de_DE)-Help.xml @@ -1,14 +1,12 @@ - - Aktiviert dieses Modul - Liste aller XBMC Installationen mit denen Ember kommuniziern wird - Entfernt die gewählte Installation von der Liste - Gib einen eindeutigen Namen für diese Installation ein. - Gib die IP ein, unter der XBMC erreichbar ist. - Gib das Port ein, unter der XBMC erreichbar ist ein. - Gib einen Benutzernamen für die Verbindung mit XBMC ein. - Gib ein Passwort für die Verbindung mit XBMC ein. - Speichert die aktuelle XBMC Installation - Speichert die aktuellen Informationen für eine neue XBMC installation. + Aktiviert dieses Modul. + Liste aller XBMC Installationen mit denen Ember kommunizieren wird. + Entfernt die gewählte Installation von der Liste. + Gib einen eindeutigen Namen für diese Installation ein. + Gib die IP ein, unter der XBMC erreichbar ist. + Gib das Port ein, unter der XBMC erreichbar ist ein. + Gib einen Benutzernamen für die Verbindung mit XBMC ein. + Gib ein Passwort für die Verbindung mit XBMC ein. + Speichert die aktuelle XBMC Installation. + Speichert die aktuellen Informationen für als neue XBMC installation. - diff --git a/Addons/generic.EmberCore.XBMC/Langs/generic.EmberCore.XBMC.German_(de_DE).xml b/Addons/generic.EmberCore.XBMC/Langs/generic.EmberCore.XBMC.German_(de_DE).xml index b5043c9..127702f 100644 --- a/Addons/generic.EmberCore.XBMC/Langs/generic.EmberCore.XBMC.German_(de_DE).xml +++ b/Addons/generic.EmberCore.XBMC/Langs/generic.EmberCore.XBMC.German_(de_DE).xml @@ -1,35 +1,34 @@ - - XBMC Controller - Dieser XBMC Name ist bereits vergeben. - Jeder Name muss eindeutig sein. - Du musst einen Port eingeben. - Gib einen Port ein. - Du musst eine IP eingeben. - Gib eine IP ein. - Du musst einen XBMC Namen eingeben. - Gib einen Namen ein. - XBMC Kommunikation - Übernehmen. - Name: - Neu - XBMC IP: - XBMC Port: - Entfernen - XBMC Update konnte nicht gestartet werden. - Bei der Kommunikation mit {0}{1} gab es ein Problem - XBMC - XBMC Controller - Echtzeit Synchronisierung einschalten - Echtzeit Synchronisierung - Suche ... - Setze Quellen - Ember Quelle - XBMC Quelle - XBMC Host OS - Windows - Linux/MacOS X - XBMC Host - Benachrichtigungen + XBMC Controller + Dieser XBMC Name ist bereits vergeben. Bitte wähle einen anderen. + Jeder Name muss einmalig sein. + Du musst einen Port eingeben. + Gib einen Port ein. + Du musst eine IP eingeben. + Gib eine IP ein. + Du musst einen XBMC Namen eingeben. + Gib einen einmaligen Namen ein. + XBMC Kommunikation + Bearbeiten + Name: + Neu + XBMC IP: + XBMC Port: + Markierte entfernen + XBMC Update konnte nicht gestartet werden. + Bei der Kommunikation mit {0}{1} gab es ein Problem + XBMC + XBMC Controller + Echtzeit Synchronisierung einschalten + Echtzeit Synchronisierung + Suche ... + Setze Quellen + Ember Quelle + XBMC Quelle + XBMC Host OS + Windows + Linux/MacOS X + XBMC Host + Benachrichtigungen + Hole PlayCount von: - diff --git a/Addons/generic.EmberCore.XBMC/Langs/generic.EmberCore.XBMC.Italian_(it_IT)-Help.xml b/Addons/generic.EmberCore.XBMC/Langs/generic.EmberCore.XBMC.Italian_(it_IT)-Help.xml new file mode 100644 index 0000000..4330332 --- /dev/null +++ b/Addons/generic.EmberCore.XBMC/Langs/generic.EmberCore.XBMC.Italian_(it_IT)-Help.xml @@ -0,0 +1,12 @@ + + Abilita o disabilita questo modulo. + La lista di tutte le installazioni XBMC inserite con le quali Ember comunicherà. + Rimuovi le installazioni XBMC selezionate dalla lista. + Inserisci un nome univoco per identificare questa installazione XBMC. + Inserisci l'IP del computer su cui XBMC è in esecuzione. + Inserisci la porta del computer su cui XBMC è in esecuzione. + Inserisci lo username che sarà usato per accedere a questa installazione XBMC. + Inserisci la password che sarà usata per accedere a questa installazione XBMC. + Cambia l'installazione XBMC selezionata per usare le informazioni appena inserite. + Aggiungi le informazioni inserite come nuova installazione XBMC. + diff --git a/Addons/generic.EmberCore.XBMC/Langs/generic.EmberCore.XBMC.Italian_(it_IT).xml b/Addons/generic.EmberCore.XBMC/Langs/generic.EmberCore.XBMC.Italian_(it_IT).xml new file mode 100644 index 0000000..c4caa77 --- /dev/null +++ b/Addons/generic.EmberCore.XBMC/Langs/generic.EmberCore.XBMC.Italian_(it_IT).xml @@ -0,0 +1,34 @@ + + XBMC Controller + Il nome che stai tentando di usare per questa installazione XBCM è già in uso. Scegli un altro nome. + Ogni nome deve essere unico + Devi inserire una porta per questa installazione XMBC. + Inserisci una porta + Devi inserire un IP per questa installazione XMBC. + Inserisci un IP + Devi inserire un nome per questa installazione XMBC. + Inserisci un nome unico + Comunicazione XMBC + Modifica + Nome: + Aggiungi + XBMC IP: + XBMC Port: + Rimuovi selezionato + impossibile iniziare l'aggiornamento XMBC + C'è stato un problema nella comunicazione con {0}{1}. + XBMC + XBMC Controller + Abilita sincronizzazione in tempo reale + Sincronizzazione in tempo reale + Cerco... + Popola Sorgenti + Sorgente Ember + Sorgente XMBC + Tipo Sorgente XMBC + Lettera Unita Windows (X:\) + Windows UNC/Linux/MacOS X + XBMC Host + Manda Notifiche + Ottieni PlayCount da: + diff --git a/Addons/generic.EmberCore.XBMC/Langs/generic.EmberCore.XBMC.Norwegian_(no_NO)-Help.xml b/Addons/generic.EmberCore.XBMC/Langs/generic.EmberCore.XBMC.Norwegian_(no_NO)-Help.xml new file mode 100644 index 0000000..571d302 --- /dev/null +++ b/Addons/generic.EmberCore.XBMC/Langs/generic.EmberCore.XBMC.Norwegian_(no_NO)-Help.xml @@ -0,0 +1,12 @@ + + Slå på eller slå av denne modulen. + Liste over alle XBMC-installasjoner som EMM vil kommunisere med. + Fjerne valgte XBMC-installasjon fra listen. + Før inn et unikt navn for å identifisere denne XBMC-installasjonen. + Før inn IP-adressen til PCen som kjører XBMC. + Før inn port-nummeret til PCen som kjører XBMC. + Før inn brukernavnet som vil bli brukt til å logge inn i XBMC-installasjonen. + Før inn passordet til XBMC-installasjonen. + Forandre den valgte XBMC-installasjonen til å bruke den nylig innførte informasjonen. + Legg til den innførte informasjonen som en ny XBMC-installasjon. + diff --git a/Addons/generic.EmberCore.XBMC/Langs/generic.EmberCore.XBMC.Norwegian_(no_NO).xml b/Addons/generic.EmberCore.XBMC/Langs/generic.EmberCore.XBMC.Norwegian_(no_NO).xml new file mode 100644 index 0000000..deb10f6 --- /dev/null +++ b/Addons/generic.EmberCore.XBMC/Langs/generic.EmberCore.XBMC.Norwegian_(no_NO).xml @@ -0,0 +1,34 @@ + + XBMC-kontroller + Navnet du innførte er allerede i bruk. Vennligst velg et annet. + Hvert navn må være unikt. + Du må føre inn et port-nummer for denne XBMC-installasjonen. + Vennligst før inn et port-nummer. + Du må føre inn en IP-adresse til denne XBMC-installasjonen. + Før inn en IP-adresse. + Du må føre inn et navn for denne XBMC-installasjonen. + Vennligst før inn et unikt navn. + XBMC-kommunikasjon + Endre + Navn: + Legg til + XBMC IP: + XBMC Port: + Fjerne valgte + Kan ikke starte XBMC-oppdatering + En feil oppstod under kommunikasjon med {0}{1}. + XBMC + XBMC-kontroller + Slå på Reell tidssynkronisering + Reell tidssynkronisering + Søker... + Hent kilder + EMM Kilde + XBMC kilde + XBMC kildetype + Windows Partisjonsbokstav (x:\) + Windows UNC/Linux/OSX + XBMC-host + Send varslinger + Hent spilleantall fra: + diff --git "a/Addons/generic.EmberCore.XBMC/Langs/generic.EmberCore.XBMC.Portugu\303\252s_(pt-BR).xml" "b/Addons/generic.EmberCore.XBMC/Langs/generic.EmberCore.XBMC.Portugu\303\252s_(pt-BR).xml" deleted file mode 100644 index a91dc2d..0000000 --- "a/Addons/generic.EmberCore.XBMC/Langs/generic.EmberCore.XBMC.Portugu\303\252s_(pt-BR).xml" +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/Addons/generic.EmberCore.XBMC/Langs/generic.EmberCore.XBMC.Spanish_(es_ES)-Help.xml b/Addons/generic.EmberCore.XBMC/Langs/generic.EmberCore.XBMC.Spanish_(es_ES)-Help.xml new file mode 100644 index 0000000..de391b4 --- /dev/null +++ b/Addons/generic.EmberCore.XBMC/Langs/generic.EmberCore.XBMC.Spanish_(es_ES)-Help.xml @@ -0,0 +1,12 @@ + + Habilitar o deshabilitar este módulo. + La lista de todas las instalaciones de XBMC digitadas, con las cuales Ember se comunicará. + Remover de la lista la instalación de XBMC seleccionada. + Digite un nombre único para identificar esta instalación de XBMC. + Digite la dirección IP del computador que ejecuta XBMC. + Digite el número de puerto del computador que ejecuta XBMC. + Digite el nombre de usuario que será utilizado para aceder a esta instalación de XBMC. + Digite la contraseña que será utilizada para acceder a esta instalación de XBMC. + Cambiar la instalación de XBMC seleccionada para que utilice la información digitada recientemente. + Adicionar la información digitada como una nueva instalación de XBMC. + diff --git a/Addons/generic.EmberCore.XBMC/Langs/generic.EmberCore.XBMC.Spanish_(es_ES).xml b/Addons/generic.EmberCore.XBMC/Langs/generic.EmberCore.XBMC.Spanish_(es_ES).xml new file mode 100644 index 0000000..8ace955 --- /dev/null +++ b/Addons/generic.EmberCore.XBMC/Langs/generic.EmberCore.XBMC.Spanish_(es_ES).xml @@ -0,0 +1,34 @@ + + Controlador XBMC + El nombre que está intentando utilizar para esta instalación XBMC está ya en uso. Por favor seleccione otro. + Cada nombre tiene que ser único + Debe de introducir un número de puerto para esta instalación XBMC. + Por favor intorduzca un número de Puerto + Debe de intorducir una dirección IP para esta instalación XBMC. + Por favor intorduzca una dirección IP + Debe de intorducir un nombre para esta instalación XBMC + Por favor introduzca un Nombre Único + Comunicación XBMC + Editar + Nombre: + Adicionar + Dirección IP de XBMC: + Número de Puerto de XBMC: + Remover lo Seleccionado + No fue posible Iniciar la Actualización de XBMC + Ocurrió un problema al comunicarse con {0}{1}. + XBMC + Controlador XBMC + Habilitar la Sincronización en Tiempo Real + Sincronización en Tiempo Real + Buscando... + Cargar Fuentes + Fuente de Ember + Fuente de XBMC + Tipo de Fuente de XBMC + Letra de Disco de Windows (X:\) + UNC de Windows/Linux/MacOS X + Nombre de Host XBMC + Enviar Notificaciones + Obtener PlayCount desde: + diff --git a/Addons/generic.EmberCore.XBMC/My Project/AssemblyInfo.vb b/Addons/generic.EmberCore.XBMC/My Project/AssemblyInfo.vb index b208095..78ee75f 100644 --- a/Addons/generic.EmberCore.XBMC/My Project/AssemblyInfo.vb +++ b/Addons/generic.EmberCore.XBMC/My Project/AssemblyInfo.vb @@ -9,7 +9,7 @@ Imports System.Runtime.InteropServices ' Review the values of the assembly attributes - + diff --git a/Addons/generic.EmberCore.XBMC/generic.EmberCore.XBMC.vbproj b/Addons/generic.EmberCore.XBMC/generic.EmberCore.XBMC.vbproj index 36a27fc..f3c9693 100644 --- a/Addons/generic.EmberCore.XBMC/generic.EmberCore.XBMC.vbproj +++ b/Addons/generic.EmberCore.XBMC/generic.EmberCore.XBMC.vbproj @@ -175,6 +175,15 @@ + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + PreserveNewest @@ -187,7 +196,22 @@ PreserveNewest - + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + PreserveNewest diff --git a/Addons/multi.Compatibility/Langs/multi.Compatibility.Debug_(db_DB).xml b/Addons/multi.Compatibility/Langs/multi.Compatibility.Debug_(db_DB).xml new file mode 100644 index 0000000..9bcd647 --- /dev/null +++ b/Addons/multi.Compatibility/Langs/multi.Compatibility.Debug_(db_DB).xml @@ -0,0 +1,902 @@ + + comp1 + comp2 + comp3 + comp4 + comp5 + comp6 + comp7 + comp8 + comp9 + comp10 + comp11 + comp12 + comp13 + comp14 + comp15 + comp16 + comp17 + comp18 + comp19 + comp20 + comp21 + comp22 + comp23 + comp24 + comp25 + comp26 + comp27 + comp28 + comp29 + comp30 + comp31 + comp32 + comp33 + comp34 + comp35 + comp36 + comp37 + comp38 + comp39 + comp40 + comp41 + comp42 + comp43 + comp44 + comp45 + comp46 + comp47 + comp48 + comp49 + comp50 + comp51 + comp52 + comp53 + comp54 + comp55 + comp56 + comp57 + comp58 + comp59 + comp60 + comp61 + comp62 + comp63 + comp64 + comp65 + comp66 + comp67 + comp68 + comp69 + comp70 + comp71 + comp72 + comp73 + comp74 + comp75 + comp76 + comp77 + comp78 + comp79 + comp80 + comp81 + comp82 + comp83 + comp84 + comp85 + comp86 + comp87 + comp88 + comp89 + comp90 + comp91 + comp92 + comp93 + comp94 + comp95 + comp96 + comp97 + comp98 + comp99 + comp100 + comp101 + comp102 + comp103 + comp104 + comp105 + comp106 + comp107 + comp108 + comp109 + comp110 + comp111 + comp112 + comp113 + comp114 + comp115 + comp116 + comp117 + comp118 + comp119 + comp120 + comp121 + comp122 + comp123 + comp124 + comp125 + comp126 + comp127 + comp128 + comp129 + comp130 + comp131 + comp132 + comp133 + comp134 + comp135 + comp136 + comp137 + comp138 + comp139 + comp140 + comp141 + comp142 + comp143 + comp144 + comp145 + comp146 + comp147 + comp148 + comp149 + comp150 + comp151 + comp152 + comp153 + comp154 + comp155 + comp156 + comp157 + comp158 + comp159 + comp160 + comp161 + comp162 + comp163 + comp164 + comp165 + comp166 + comp167 + comp168 + comp169 + comp170 + comp171 + comp172 + comp173 + comp174 + comp175 + comp176 + comp177 + comp178 + comp179 + comp180 + comp181 + comp182 + comp183 + comp184 + comp185 + comp186 + comp187 + comp188 + comp189 + comp190 + comp191 + comp192 + comp193 + comp194 + comp195 + comp196 + comp197 + comp198 + comp199 + comp200 + comp201 + comp202 + comp203 + comp204 + comp205 + comp206 + comp207 + comp208 + comp209 + comp210 + comp211 + comp212 + comp213 + comp214 + comp215 + comp216 + comp217 + comp218 + comp219 + comp220 + comp221 + comp222 + comp223 + comp224 + comp225 + comp226 + comp227 + comp228 + comp229 + comp230 + comp231 + comp232 + comp233 + comp234 + comp235 + comp236 + comp237 + comp238 + comp239 + comp240 + comp241 + comp242 + comp243 + comp244 + comp245 + comp246 + comp247 + comp248 + comp249 + comp250 + comp251 + comp252 + comp253 + comp254 + comp255 + comp256 + comp257 + comp258 + comp259 + comp260 + comp261 + comp262 + comp263 + comp264 + comp265 + comp266 + comp267 + comp268 + comp269 + comp270 + comp271 + comp272 + comp273 + comp274 + comp275 + comp276 + comp277 + comp278 + comp279 + comp280 + comp281 + comp282 + comp283 + comp284 + comp285 + comp286 + comp287 + comp288 + comp289 + comp290 + comp291 + comp292 + comp293 + comp294 + comp295 + comp296 + comp297 + comp298 + comp299 + comp300 + comp301 + comp302 + comp303 + comp304 + comp305 + comp306 + comp307 + comp308 + comp309 + comp310 + comp311 + comp312 + comp313 + comp314 + comp315 + comp316 + comp317 + comp318 + comp319 + comp320 + comp321 + comp322 + comp323 + comp324 + comp325 + comp326 + comp327 + comp328 + comp329 + comp330 + comp331 + comp332 + comp333 + comp334 + comp335 + comp336 + comp337 + comp338 + comp339 + comp340 + comp341 + comp342 + comp343 + comp344 + comp345 + comp346 + comp347 + comp348 + comp349 + comp350 + comp351 + comp352 + comp353 + comp354 + comp355 + comp356 + comp357 + comp358 + comp359 + comp360 + comp361 + comp362 + comp363 + comp364 + comp365 + comp366 + comp367 + comp368 + comp369 + comp370 + comp371 + comp372 + comp373 + comp374 + comp375 + comp376 + comp377 + comp378 + comp379 + comp380 + comp381 + comp382 + comp383 + comp384 + comp385 + comp386 + comp387 + comp388 + comp389 + comp390 + comp391 + comp392 + comp393 + comp394 + comp395 + comp396 + comp397 + comp398 + comp399 + comp400 + comp401 + comp402 + comp403 + comp404 + comp405 + comp406 + comp407 + comp408 + comp409 + comp410 + comp411 + comp412 + comp413 + comp414 + comp415 + comp416 + comp417 + comp418 + comp419 + comp420 + comp421 + comp422 + comp423 + comp424 + comp425 + comp426 + comp427 + comp428 + comp429 + comp430 + comp431 + comp432 + comp433 + comp434 + comp435 + comp436 + comp437 + comp438 + comp439 + comp440 + comp441 + comp442 + comp443 + comp444 + comp445 + comp446 + comp447 + comp448 + comp449 + comp450 + comp451 + comp452 + comp453 + comp454 + comp455 + comp456 + comp457 + comp458 + comp459 + comp460 + comp461 + comp462 + comp463 + comp464 + comp465 + comp466 + comp467 + comp468 + comp469 + comp470 + comp471 + comp472 + comp473 + comp474 + comp475 + comp476 + comp477 + comp478 + comp479 + comp480 + comp481 + comp482 + comp483 + comp484 + comp485 + comp486 + comp487 + comp488 + comp489 + comp490 + comp491 + comp492 + comp493 + comp494 + comp495 + comp496 + comp497 + comp498 + comp499 + comp500 + comp501 + comp502 + comp503 + comp504 + comp505 + comp506 + comp507 + comp508 + comp509 + comp510 + comp511 + comp512 + comp513 + comp514 + comp515 + comp516 + comp517 + comp518 + comp519 + comp520 + comp521 + comp522 + comp523 + comp524 + comp525 + comp526 + comp527 + comp528 + comp529 + comp530 + comp531 + comp532 + comp533 + comp534 + comp535 + comp536 + comp537 + comp538 + comp539 + comp540 + comp541 + comp542 + comp543 + comp544 + comp545 + comp546 + comp547 + comp548 + comp549 + comp550 + comp551 + comp552 + comp553 + comp554 + comp555 + comp556 + comp557 + comp558 + comp559 + comp560 + comp561 + comp562 + comp563 + comp564 + comp565 + comp566 + comp567 + comp568 + comp569 + comp570 + comp571 + comp572 + comp573 + comp574 + comp575 + comp576 + comp577 + comp578 + comp579 + comp580 + comp581 + comp582 + comp583 + comp584 + comp585 + comp586 + comp587 + comp588 + comp589 + comp590 + comp591 + comp592 + comp593 + comp594 + comp595 + comp596 + comp597 + comp598 + comp599 + comp600 + comp601 + comp602 + comp603 + comp604 + comp605 + comp606 + comp607 + comp608 + comp609 + comp610 + comp611 + comp612 + comp613 + comp614 + comp615 + comp616 + comp617 + comp618 + comp619 + comp620 + comp621 + comp622 + comp623 + comp624 + comp625 + comp626 + comp627 + comp628 + comp629 + comp630 + comp631 + comp632 + comp633 + comp634 + comp635 + comp636 + comp637 + comp638 + comp639 + comp640 + comp641 + comp642 + comp643 + comp644 + comp645 + comp646 + comp647 + comp648 + comp649 + comp650 + comp651 + comp652 + comp653 + comp654 + comp655 + comp656 + comp657 + comp658 + comp659 + comp660 + comp661 + comp662 + comp663 + comp664 + comp665 + comp666 + comp667 + comp668 + comp669 + comp670 + comp671 + comp672 + comp673 + comp674 + comp675 + comp676 + comp677 + comp678 + comp679 + comp680 + comp681 + comp682 + comp683 + comp684 + comp685 + comp686 + comp687 + comp688 + comp689 + comp690 + comp691 + comp692 + comp693 + comp694 + comp695 + comp696 + comp697 + comp698 + comp699 + comp700 + comp701 + comp702 + comp703 + comp704 + comp705 + comp706 + comp707 + comp708 + comp709 + comp710 + comp711 + comp712 + comp713 + comp714 + comp715 + comp716 + comp717 + comp718 + comp719 + comp720 + comp721 + comp722 + comp723 + comp724 + comp725 + comp726 + comp727 + comp728 + comp729 + comp730 + comp731 + comp732 + comp733 + comp734 + comp735 + comp736 + comp737 + comp738 + comp739 + comp740 + comp741 + comp742 + comp743 + comp744 + comp745 + comp746 + comp747 + comp748 + comp749 + comp750 + comp751 + comp752 + comp753 + comp754 + comp755 + comp756 + comp757 + comp758 + comp759 + comp760 + comp761 + comp762 + comp763 + comp764 + comp765 + comp766 + comp767 + comp768 + comp769 + comp770 + comp771 + comp772 + comp773 + comp774 + comp775 + comp776 + comp777 + comp778 + comp779 + comp780 + comp781 + comp782 + comp783 + comp784 + comp785 + comp786 + comp787 + comp788 + comp789 + comp790 + comp791 + comp792 + comp793 + comp794 + comp795 + comp796 + comp797 + comp798 + comp799 + comp800 + comp801 + comp802 + comp803 + comp804 + comp805 + comp806 + comp807 + comp808 + comp809 + comp810 + comp811 + comp812 + comp813 + comp814 + comp815 + comp816 + comp817 + comp818 + comp819 + comp820 + comp821 + comp822 + comp823 + comp824 + comp825 + comp826 + comp827 + comp828 + comp829 + comp830 + comp831 + comp832 + comp833 + comp834 + comp835 + comp836 + comp837 + comp838 + comp839 + comp840 + comp841 + comp842 + comp843 + comp844 + comp845 + comp846 + comp847 + comp848 + comp849 + comp850 + comp851 + comp852 + comp853 + comp854 + comp855 + comp856 + comp857 + comp858 + comp859 + comp860 + comp861 + comp862 + comp863 + comp864 + comp865 + comp866 + comp867 + comp868 + comp869 + comp870 + comp871 + comp872 + comp873 + comp874 + comp875 + comp876 + comp877 + comp878 + comp879 + comp880 + comp881 + comp882 + comp883 + comp884 + comp885 + comp886 + comp887 + comp888 + comp889 + comp890 + comp891 + comp892 + comp893 + comp894 + comp895 + comp896 + comp897 + comp898 + comp899 + comp900 + \ No newline at end of file diff --git a/Addons/multi.Compatibility/Langs/multi.Compatibility.Dutch_(nl_NL).xml b/Addons/multi.Compatibility/Langs/multi.Compatibility.Dutch_(nl_NL).xml new file mode 100644 index 0000000..73d5972 --- /dev/null +++ b/Addons/multi.Compatibility/Langs/multi.Compatibility.Dutch_(nl_NL).xml @@ -0,0 +1,22 @@ + + Mediabrowser geschiktheid + YAMJ geschiktheid + YAMJ geschikte sets + Geschikte VIDEO_TS bestandsgebruik/notatie (Ter info: Dit wordt ook toegepast als de module is uitgeschakeld) + YAMJ geschikte TV afbeeldingen benoeming + YAMJ specifieke NFO velden + Toon Poster als Set_<Serie>_1.jpg + Toon Poster als Set_<Serie>_1.fanart.jpg + Bewaar Seizoen poster als <Aflevering>.jpg * + Bewaar Fanart als <Aflevering>.fanart.jpg * + Bewaar Aflevering poster als <Aflevering>.videoimage.jpg + Geschikte VIDEO_TS bestandsgebruik/notatie (Ter info: Dit wordt ook toegepast als de module is uitgeschakeld) + Fanart Film als backdrop.jpg + Media Browser mymovies.xml + Bewaar Alle Seizoenen poster als Set_<TV Serie>_1.banner.jpg + Vervang ID veld met Boxee Id veld + TV Serie opties + Gebruik YAMJ Instellingen + Boxee Geschiktheid + * Gebruik steeds de eerste bestaande aflevering van een seizoen + diff --git a/Addons/multi.Compatibility/Langs/multi.Compatibility.English_(en_US).xml b/Addons/multi.Compatibility/Langs/multi.Compatibility.English_(en_US).xml index 3c27425..29e19c3 100644 --- a/Addons/multi.Compatibility/Langs/multi.Compatibility.English_(en_US).xml +++ b/Addons/multi.Compatibility/Langs/multi.Compatibility.English_(en_US).xml @@ -1,21 +1,22 @@ - - MediaBrowser Compatibility - YAMJ Compatibility - YAMJ Compatible Sets - Compatible VIDEO_TS File Placement/Naming (NOTE: This will be applyed even if module is disabled) - YAMJ Compatible TV Images Naming - YAMJ Specific NFO fields - Show Poster as Set_<Show>_1.jpg - Show Poster as Set_<Show>_1.fanart.jpg - Season Poster as <Episode>SxxE01.jpg - Season Fanart as <Episode>SxxE01.fanart.jpg - Episode Poster as <Show>.videoimage.jpg - Compatible VIDEO_TS File Placement/Naming (NOTE: This will be applyed even if module is disabled) - Movie Fanart as backdrop.jpg - Media Browser mymovies.xml - Show All Season as Season 1.banner.jpg - Replace ID field with Boxee Id Field - TV Show Options - Experimental module + MediaBrowser Compatibility + YAMJ Compatibility + YAMJ Compatible Sets + Compatible VIDEO_TS File Placement/Naming (NOTE: This will be applyed even if module is disabled) + YAMJ Compatible TV Images Naming + YAMJ Specific NFO fields + Show Poster as Set_<Show>_1.jpg + Show Poster as Set_<Show>_1.fanart.jpg + Season Poster as <Episode>.jpg * + Season Fanart as <Episode>.fanart.jpg * + Episode Poster as <Episode>.videoimage.jpg + Compatible VIDEO_TS File Placement/Naming (NOTE: This will be applyed even if module is disabled) + Movie Fanart as backdrop.jpg + Media Browser mymovies.xml + All Seasons Poster as Set_<Show>_1.banner.jpg + Replace ID field with Boxee Id Field + TV Show Options + Use YAMJ Settings + Boxee Compatibility + * Use allways the first existing episode of a season diff --git a/Addons/multi.Compatibility/Langs/multi.Compatibility.German_(de_DE).xml b/Addons/multi.Compatibility/Langs/multi.Compatibility.German_(de_DE).xml index df43985..def38d9 100644 --- a/Addons/multi.Compatibility/Langs/multi.Compatibility.German_(de_DE).xml +++ b/Addons/multi.Compatibility/Langs/multi.Compatibility.German_(de_DE).xml @@ -1,18 +1,22 @@ - - YAMJ Kompatiblitätsmodul - YAMJ komaptible Sets - YAMJ kompatible VIDEO_TS Datei und Namen - YAMJ kompatible TV Images Namen - YAMJ spezifische NFO Einträge - Zeige Cover als SET_<Show>_1.jpg - Zeige Cover als SET_<Show>_1.fanart.jpg - Staffel Cover als <Episode>SxxE01.jpg - Staffel Fanart als <Episode>SxxE01.fanart.jpg - Episode Poster als <Show>.videoimage.jpg - kompatible VIDEO_TS VIDEO_TS Datei und Namen (Aktiv belassen falls Modul deaktiviert, wegen YAMJ) - Movie Fanart als backdrop.jpg - Media Browser mymovies.xml - Zeige alle Staffeln als Season 1.banner.jpg + MediaBrowser Kompatibilität + YAMJ Kompatibilität + YAMJ komaptible Sets + YAMJ kompatible VIDEO_TS Datei und Namen (INFO: Diese Option greift auch wenn das Modul deaktiviert ist) + YAMJ kompatible TV Images Namen + YAMJ spezifische NFO Einträge + Zeige Cover als SET_<Show>_1.jpg + Zeige Cover als SET_<Show>_1.fanart.jpg + Staffel Poster als <Episode>.jpg * + Staffel Fanart als <Episode>.fanart.jpg * + Episoden Poster als <Episode>.videoimage.jpg + YAMJ kompatible VIDEO_TS Datei und Namen (INFO: Diese Option greift auch wenn das Modul deaktiviert ist) + Movie Fanart als backdrop.jpg + Media Browser mymovies.xml + AllSeasons Poster als Set_<Show>_1.banner.jpg + Ersetze die ID mit der Boxee ID + TV Serien Optionen + Benutze YAMJ Settings + Boxee Kompatibilität + * Es wird immer die erste existierende Episode einer Staffel verwendet - \ No newline at end of file diff --git a/Addons/multi.Compatibility/Langs/multi.Compatibility.Italian_(it_IT).xml b/Addons/multi.Compatibility/Langs/multi.Compatibility.Italian_(it_IT).xml new file mode 100644 index 0000000..775957c --- /dev/null +++ b/Addons/multi.Compatibility/Langs/multi.Compatibility.Italian_(it_IT).xml @@ -0,0 +1,22 @@ + + Compatibilità MediaBrowser + Compatibilità YAMJ + Sets Compatibili YAMJ + Posizione e denominazione files VIDEO_TS compatibile (NOTA: Questo si applicherà anche se il modulo è disabilitato) + Denominazione delle Imagini TV compatibile YAMJ + Campi NFO specifici YAMJ + Mostra Poster come Set_<Show>_1.jpg + Mostra Poster come Set_<Show>_1.fanart.jpg + Poster Stagione come <Episode>.jpg * + Fanart Stagione come <Episode>.fanart.jpg * + Poster Episodio come <Episode>.videoimage.jpg + Posizione e denominazione files VIDEO_TS compatibile (NOTA: Questo si applicherà anche se il modulo è disabilitato) + Fanart Film come backdrop.jpg + Media Browser mymovies.xml + Poster Tutte le Stagioni come Set_<Show>_1.banner.jpg + Sostituisci campo ID col Campo ID Boxee + Opzioni Serie TV + Usa le impostazioni YAMJ + Compatibilità Boxee + * Usa sempre il primo episodio presente di una stagione + diff --git a/Addons/multi.Compatibility/Langs/multi.Compatibility.Norwegian_(no_NO).xml b/Addons/multi.Compatibility/Langs/multi.Compatibility.Norwegian_(no_NO).xml new file mode 100644 index 0000000..6135dc0 --- /dev/null +++ b/Addons/multi.Compatibility/Langs/multi.Compatibility.Norwegian_(no_NO).xml @@ -0,0 +1,22 @@ + + MediaBrowser-kompabilitet + YAMJ-kompatibilitet + YAMJ-kompatible samlinger + Kompatible VIDEO_TS filplasseringer/navn (BEMERK: Dette vil bli satt selv om modulen er avslått) + YAMJ-kompatible TV-bildenavn + YAMJ-spesifikke NFO-felt + Vis plakat som Set_<serie>_1.jpg + Vis plakat som Set_<serie>_1.fanart.jpg + Sesongplakat som <Episode>.jpg * + Sesong-fankunst som <Episode>.fanart.jpg * + Episodeplakat som <Episode>.videoimage.jpg + Kompatible VIDEO_TS filplasseringer/navn (BEMERK: Dette vil bli satt selv om modulen er avslått) + Filmplakat som backdrop.jpg + Mediautforsker mymovies.xml + Alle sesonger-plakat som Set_<Show>_1.banner.jpg + Erstatt ID-felt med Boxee ID-felt + TVserie-valg + Bruk YAMJ-innstillinger + Boxee-kompatibilitet + * Alltid bruk den første eksisterende episoden i sesongen. + diff --git "a/Addons/multi.Compatibility/Langs/multi.Compatibility.Portugu\303\252s_(pt-BR).xml" "b/Addons/multi.Compatibility/Langs/multi.Compatibility.Portugu\303\252s_(pt-BR).xml" deleted file mode 100644 index a91dc2d..0000000 --- "a/Addons/multi.Compatibility/Langs/multi.Compatibility.Portugu\303\252s_(pt-BR).xml" +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/Addons/multi.Compatibility/Langs/multi.Compatibility.Spanish_(es_ES).xml b/Addons/multi.Compatibility/Langs/multi.Compatibility.Spanish_(es_ES).xml new file mode 100644 index 0000000..2d7011d --- /dev/null +++ b/Addons/multi.Compatibility/Langs/multi.Compatibility.Spanish_(es_ES).xml @@ -0,0 +1,22 @@ + + Compatibilidad con MediaBrowser + Compatibilidad con YAMJ + Colecciones Compatibles con YAMJ + Ubicación/Nombramiento de Archivos VIDEO_TS Compatibles (NOTA: Esto será aplicado aún si el módulo está deshabilitado) + Nombramiento de Imágenes de TV Compatible con YAMJ + Campos de NFO Específicos para YAMJ + Mostrar Poster como Set_<Show>_1.jpg + Mostrar Poster como Set_<Show>_1.fanart.jpg + Poster de Temporada como <Episodio>.jpg* + Poster de Fanart como <Episodio>.fanart.jpg * + Poster de Episodio como <Episodio>.videoimage.jpg + Ubicación/Nombramiento de Archivos VIDEO_TS Compatibles (NOTA: Esto será aplicado aún si el módulo está deshabilitado) + Fanart de Película como backdrop.jpg + mymovies.xml para Media Browser + Poster de Todas las Temporadas como Set_<Serie>_1.banner.jpg + Reemplazar el campo ID con el campo Boxee Id + Opciones de Series de TV + Usar Configuración YAMJ + Compatibilidad con Boxee + * Usar siempre el primer episodio existente de una serie + diff --git a/Addons/multi.Compatibility/My Project/AssemblyInfo.vb b/Addons/multi.Compatibility/My Project/AssemblyInfo.vb index cfd6b1f..e9f461b 100644 --- a/Addons/multi.Compatibility/My Project/AssemblyInfo.vb +++ b/Addons/multi.Compatibility/My Project/AssemblyInfo.vb @@ -7,7 +7,7 @@ Imports System.Runtime.InteropServices ' associated with an assembly. ' Review the values of the assembly attributes - + @@ -27,5 +27,5 @@ Imports System.Runtime.InteropServices ' You can specify all the values or you can default the Build and Revision Numbers ' by using the '*' as shown below: ' - - \ No newline at end of file + + \ No newline at end of file diff --git a/Addons/multi.Compatibility/frmMediaBrowser.designer.vb b/Addons/multi.Compatibility/frmMediaBrowser.designer.vb index f9806e2..a1ab288 100644 --- a/Addons/multi.Compatibility/frmMediaBrowser.designer.vb +++ b/Addons/multi.Compatibility/frmMediaBrowser.designer.vb @@ -22,114 +22,117 @@ Partial Class frmMediaBrowser 'Do not modify it using the code editor. _ Private Sub InitializeComponent() - Me.pnlSettings = New System.Windows.Forms.Panel() - Me.chkVideoTSParent = New System.Windows.Forms.CheckBox() - Me.chkBackdrop = New System.Windows.Forms.CheckBox() - Me.chkMyMovies = New System.Windows.Forms.CheckBox() - Me.Label1 = New System.Windows.Forms.Label() - Me.Panel1 = New System.Windows.Forms.Panel() - Me.chkEnabled = New System.Windows.Forms.CheckBox() - Me.pnlSettings.SuspendLayout() - Me.Panel1.SuspendLayout() - Me.SuspendLayout() - ' - 'pnlSettings - ' - Me.pnlSettings.BackColor = System.Drawing.Color.White - Me.pnlSettings.Controls.Add(Me.chkVideoTSParent) - Me.pnlSettings.Controls.Add(Me.chkBackdrop) - Me.pnlSettings.Controls.Add(Me.chkMyMovies) - Me.pnlSettings.Controls.Add(Me.Label1) - Me.pnlSettings.Controls.Add(Me.Panel1) - Me.pnlSettings.Location = New System.Drawing.Point(13, 15) - Me.pnlSettings.Name = "pnlSettings" - Me.pnlSettings.Size = New System.Drawing.Size(617, 327) - Me.pnlSettings.TabIndex = 0 - ' - 'chkVideoTSParent - ' - Me.chkVideoTSParent.CheckAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkVideoTSParent.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkVideoTSParent.Location = New System.Drawing.Point(13, 32) - Me.chkVideoTSParent.Name = "chkVideoTSParent" - Me.chkVideoTSParent.Size = New System.Drawing.Size(584, 17) - Me.chkVideoTSParent.TabIndex = 1 - Me.chkVideoTSParent.Text = "Compatible VIDEO_TS File Placement/Naming" - Me.chkVideoTSParent.TextAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkVideoTSParent.UseVisualStyleBackColor = True - ' - 'chkBackdrop - ' - Me.chkBackdrop.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkBackdrop.Location = New System.Drawing.Point(13, 55) - Me.chkBackdrop.Name = "chkBackdrop" - Me.chkBackdrop.Size = New System.Drawing.Size(584, 18) - Me.chkBackdrop.TabIndex = 2 - Me.chkBackdrop.Text = "Movie Fanart as backdrop.jpg" - Me.chkBackdrop.UseVisualStyleBackColor = True - ' - 'chkMyMovies - ' - Me.chkMyMovies.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkMyMovies.Location = New System.Drawing.Point(13, 79) - Me.chkMyMovies.Name = "chkMyMovies" - Me.chkMyMovies.Size = New System.Drawing.Size(584, 18) - Me.chkMyMovies.TabIndex = 3 - Me.chkMyMovies.Text = "Media Browser mymovies.xml" - Me.chkMyMovies.UseVisualStyleBackColor = True - ' - 'Label1 - ' - Me.Label1.AutoSize = True - Me.Label1.Font = New System.Drawing.Font("Segoe UI", 14.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label1.ForeColor = System.Drawing.Color.Red - Me.Label1.Location = New System.Drawing.Point(224, 182) - Me.Label1.Name = "Label1" - Me.Label1.Size = New System.Drawing.Size(192, 25) - Me.Label1.TabIndex = 4 - Me.Label1.Text = "Experimental Module" - ' - 'Panel1 - ' - Me.Panel1.BackColor = System.Drawing.Color.WhiteSmoke - Me.Panel1.Controls.Add(Me.chkEnabled) - Me.Panel1.Dock = System.Windows.Forms.DockStyle.Top - Me.Panel1.Location = New System.Drawing.Point(0, 0) - Me.Panel1.Name = "Panel1" - Me.Panel1.Size = New System.Drawing.Size(617, 25) - Me.Panel1.TabIndex = 0 - ' - 'chkEnabled - ' - Me.chkEnabled.AutoSize = True - Me.chkEnabled.Location = New System.Drawing.Point(10, 5) - Me.chkEnabled.Name = "chkEnabled" - Me.chkEnabled.Size = New System.Drawing.Size(68, 17) - Me.chkEnabled.TabIndex = 0 - Me.chkEnabled.Text = "Enabled" - Me.chkEnabled.UseVisualStyleBackColor = True - ' - 'frmMediaBrowser - ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi - Me.ClientSize = New System.Drawing.Size(643, 356) - Me.Controls.Add(Me.pnlSettings) - Me.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Name = "frmMediaBrowser" - Me.Text = "frmSettingsHolder" - Me.pnlSettings.ResumeLayout(False) - Me.pnlSettings.PerformLayout() - Me.Panel1.ResumeLayout(False) - Me.Panel1.PerformLayout() - Me.ResumeLayout(False) + Me.pnlSettings = New System.Windows.Forms.Panel() + Me.lblInfo = New System.Windows.Forms.Label() + Me.chkVideoTSParent = New System.Windows.Forms.CheckBox() + Me.chkBackdrop = New System.Windows.Forms.CheckBox() + Me.chkMyMovies = New System.Windows.Forms.CheckBox() + Me.Panel1 = New System.Windows.Forms.Panel() + Me.chkEnabled = New System.Windows.Forms.CheckBox() + Me.pnlSettings.SuspendLayout() + Me.Panel1.SuspendLayout() + Me.SuspendLayout() + ' + 'pnlSettings + ' + Me.pnlSettings.BackColor = System.Drawing.Color.White + Me.pnlSettings.Controls.Add(Me.lblInfo) + Me.pnlSettings.Controls.Add(Me.chkVideoTSParent) + Me.pnlSettings.Controls.Add(Me.chkBackdrop) + Me.pnlSettings.Controls.Add(Me.chkMyMovies) + Me.pnlSettings.Controls.Add(Me.Panel1) + Me.pnlSettings.Location = New System.Drawing.Point(13, 15) + Me.pnlSettings.Name = "pnlSettings" + Me.pnlSettings.Size = New System.Drawing.Size(617, 327) + Me.pnlSettings.TabIndex = 0 + ' + 'lblInfo + ' + Me.lblInfo.AutoSize = True + Me.lblInfo.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblInfo.ForeColor = System.Drawing.Color.Red + Me.lblInfo.Location = New System.Drawing.Point(100, 171) + Me.lblInfo.Name = "lblInfo" + Me.lblInfo.Size = New System.Drawing.Size(443, 51) + Me.lblInfo.TabIndex = 4 + Me.lblInfo.Text = "The development of this module has been stopped." & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "Please make a request if you wa" & _ + "nt that this module will be developed." & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "We need up to date information about the" & _ + " MediaBrowser." + Me.lblInfo.TextAlign = System.Drawing.ContentAlignment.TopCenter + ' + 'chkVideoTSParent + ' + Me.chkVideoTSParent.CheckAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkVideoTSParent.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkVideoTSParent.Location = New System.Drawing.Point(13, 32) + Me.chkVideoTSParent.Name = "chkVideoTSParent" + Me.chkVideoTSParent.Size = New System.Drawing.Size(584, 17) + Me.chkVideoTSParent.TabIndex = 1 + Me.chkVideoTSParent.Text = "Compatible VIDEO_TS File Placement/Naming" + Me.chkVideoTSParent.TextAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkVideoTSParent.UseVisualStyleBackColor = True + ' + 'chkBackdrop + ' + Me.chkBackdrop.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkBackdrop.Location = New System.Drawing.Point(13, 55) + Me.chkBackdrop.Name = "chkBackdrop" + Me.chkBackdrop.Size = New System.Drawing.Size(584, 18) + Me.chkBackdrop.TabIndex = 2 + Me.chkBackdrop.Text = "Movie Fanart as backdrop.jpg" + Me.chkBackdrop.UseVisualStyleBackColor = True + ' + 'chkMyMovies + ' + Me.chkMyMovies.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkMyMovies.Location = New System.Drawing.Point(13, 79) + Me.chkMyMovies.Name = "chkMyMovies" + Me.chkMyMovies.Size = New System.Drawing.Size(584, 18) + Me.chkMyMovies.TabIndex = 3 + Me.chkMyMovies.Text = "Media Browser mymovies.xml" + Me.chkMyMovies.UseVisualStyleBackColor = True + ' + 'Panel1 + ' + Me.Panel1.BackColor = System.Drawing.Color.WhiteSmoke + Me.Panel1.Controls.Add(Me.chkEnabled) + Me.Panel1.Dock = System.Windows.Forms.DockStyle.Top + Me.Panel1.Location = New System.Drawing.Point(0, 0) + Me.Panel1.Name = "Panel1" + Me.Panel1.Size = New System.Drawing.Size(617, 25) + Me.Panel1.TabIndex = 0 + ' + 'chkEnabled + ' + Me.chkEnabled.AutoSize = True + Me.chkEnabled.Location = New System.Drawing.Point(10, 5) + Me.chkEnabled.Name = "chkEnabled" + Me.chkEnabled.Size = New System.Drawing.Size(68, 17) + Me.chkEnabled.TabIndex = 0 + Me.chkEnabled.Text = "Enabled" + Me.chkEnabled.UseVisualStyleBackColor = True + ' + 'frmMediaBrowser + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi + Me.ClientSize = New System.Drawing.Size(643, 356) + Me.Controls.Add(Me.pnlSettings) + Me.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Name = "frmMediaBrowser" + Me.Text = "frmSettingsHolder" + Me.pnlSettings.ResumeLayout(False) + Me.pnlSettings.PerformLayout() + Me.Panel1.ResumeLayout(False) + Me.Panel1.PerformLayout() + Me.ResumeLayout(False) - End Sub + End Sub Friend WithEvents pnlSettings As System.Windows.Forms.Panel Friend WithEvents Panel1 As System.Windows.Forms.Panel Friend WithEvents chkEnabled As System.Windows.Forms.CheckBox - Friend WithEvents Label1 As System.Windows.Forms.Label Friend WithEvents chkBackdrop As System.Windows.Forms.CheckBox Friend WithEvents chkMyMovies As System.Windows.Forms.CheckBox Friend WithEvents chkVideoTSParent As System.Windows.Forms.CheckBox + Friend WithEvents lblInfo As System.Windows.Forms.Label End Class diff --git a/Addons/multi.Compatibility/frmMediaBrowser.vb b/Addons/multi.Compatibility/frmMediaBrowser.vb index fd254d8..2aa2e9d 100644 --- a/Addons/multi.Compatibility/frmMediaBrowser.vb +++ b/Addons/multi.Compatibility/frmMediaBrowser.vb @@ -44,7 +44,6 @@ Public Class frmMediaBrowser Me.chkVideoTSParent.Text = Master.eLang.GetString(11, "Compatible VIDEO_TS File Placement/Naming") Me.chkBackdrop.Text = Master.eLang.GetString(12, "Fanart as backdrop.jpg") Me.chkMyMovies.Text = Master.eLang.GetString(13, "Media Browser mymovies.xml") - Me.Label1.Text = Master.eLang.GetString(17, "Experimental module") End Sub Private Sub chkVideoTSParent_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkVideoTSParent.CheckedChanged diff --git a/Addons/multi.Compatibility/frmYAMJ.designer.vb b/Addons/multi.Compatibility/frmYAMJ.designer.vb index 1f505de..d538754 100644 --- a/Addons/multi.Compatibility/frmYAMJ.designer.vb +++ b/Addons/multi.Compatibility/frmYAMJ.designer.vb @@ -22,213 +22,224 @@ Partial Class frmYAMJ 'Do not modify it using the code editor. _ Private Sub InitializeComponent() - Me.pnlSettings = New System.Windows.Forms.Panel() - Me.btnCheckAll = New System.Windows.Forms.Button() - Me.chkYAMJCompatibleTVImages = New System.Windows.Forms.CheckBox() - Me.gbImages = New System.Windows.Forms.GroupBox() - Me.chkAllSeasonPoster = New System.Windows.Forms.CheckBox() - Me.chkEpisodePoster = New System.Windows.Forms.CheckBox() - Me.chkShowFanart = New System.Windows.Forms.CheckBox() - Me.chkShowPoster = New System.Windows.Forms.CheckBox() - Me.chkSeasonFanart = New System.Windows.Forms.CheckBox() - Me.chkSeasonPoster = New System.Windows.Forms.CheckBox() - Me.chkYAMJnfoFields = New System.Windows.Forms.CheckBox() - Me.chkVideoTSParent = New System.Windows.Forms.CheckBox() - Me.chkYAMJCompatibleSets = New System.Windows.Forms.CheckBox() - Me.Panel1 = New System.Windows.Forms.Panel() - Me.chkEnabled = New System.Windows.Forms.CheckBox() - Me.pnlSettings.SuspendLayout() - Me.gbImages.SuspendLayout() - Me.Panel1.SuspendLayout() - Me.SuspendLayout() - ' - 'pnlSettings - ' - Me.pnlSettings.BackColor = System.Drawing.Color.White - Me.pnlSettings.Controls.Add(Me.btnCheckAll) - Me.pnlSettings.Controls.Add(Me.chkYAMJCompatibleTVImages) - Me.pnlSettings.Controls.Add(Me.gbImages) - Me.pnlSettings.Controls.Add(Me.chkYAMJnfoFields) - Me.pnlSettings.Controls.Add(Me.chkVideoTSParent) - Me.pnlSettings.Controls.Add(Me.chkYAMJCompatibleSets) - Me.pnlSettings.Controls.Add(Me.Panel1) - Me.pnlSettings.Location = New System.Drawing.Point(13, 15) - Me.pnlSettings.Name = "pnlSettings" - Me.pnlSettings.Size = New System.Drawing.Size(617, 327) - Me.pnlSettings.TabIndex = 0 - ' - 'btnCheckAll - ' - Me.btnCheckAll.Font = New System.Drawing.Font("Segoe UI", 6.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.btnCheckAll.Location = New System.Drawing.Point(13, 30) - Me.btnCheckAll.Name = "btnCheckAll" - Me.btnCheckAll.Size = New System.Drawing.Size(93, 20) - Me.btnCheckAll.TabIndex = 1 - Me.btnCheckAll.Text = "Check All" - Me.btnCheckAll.UseVisualStyleBackColor = True - ' - 'chkYAMJCompatibleTVImages - ' - Me.chkYAMJCompatibleTVImages.AutoSize = True - Me.chkYAMJCompatibleTVImages.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkYAMJCompatibleTVImages.Location = New System.Drawing.Point(13, 125) - Me.chkYAMJCompatibleTVImages.Name = "chkYAMJCompatibleTVImages" - Me.chkYAMJCompatibleTVImages.Size = New System.Drawing.Size(211, 17) - Me.chkYAMJCompatibleTVImages.TabIndex = 5 - Me.chkYAMJCompatibleTVImages.Text = "YAMJ Compatible TV Images Naming" - Me.chkYAMJCompatibleTVImages.UseVisualStyleBackColor = True - ' - 'gbImages - ' - Me.gbImages.Controls.Add(Me.chkAllSeasonPoster) - Me.gbImages.Controls.Add(Me.chkEpisodePoster) - Me.gbImages.Controls.Add(Me.chkShowFanart) - Me.gbImages.Controls.Add(Me.chkShowPoster) - Me.gbImages.Controls.Add(Me.chkSeasonFanart) - Me.gbImages.Controls.Add(Me.chkSeasonPoster) - Me.gbImages.Enabled = False - Me.gbImages.Location = New System.Drawing.Point(6, 126) - Me.gbImages.Name = "gbImages" - Me.gbImages.Size = New System.Drawing.Size(594, 114) - Me.gbImages.TabIndex = 6 - Me.gbImages.TabStop = False - ' - 'chkAllSeasonPoster - ' - Me.chkAllSeasonPoster.AutoSize = True - Me.chkAllSeasonPoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkAllSeasonPoster.Location = New System.Drawing.Point(15, 39) - Me.chkAllSeasonPoster.Name = "chkAllSeasonPoster" - Me.chkAllSeasonPoster.Size = New System.Drawing.Size(234, 17) - Me.chkAllSeasonPoster.TabIndex = 1 - Me.chkAllSeasonPoster.Text = "Show All Season as Season 1.banner.jpg" - Me.chkAllSeasonPoster.UseVisualStyleBackColor = True - ' - 'chkEpisodePoster - ' - Me.chkEpisodePoster.AutoSize = True - Me.chkEpisodePoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkEpisodePoster.Location = New System.Drawing.Point(15, 85) - Me.chkEpisodePoster.Name = "chkEpisodePoster" - Me.chkEpisodePoster.Size = New System.Drawing.Size(246, 17) - Me.chkEpisodePoster.TabIndex = 3 - Me.chkEpisodePoster.Text = "Episode Poster as .videoimage.jpg" - Me.chkEpisodePoster.UseVisualStyleBackColor = True - ' - 'chkShowFanart - ' - Me.chkShowFanart.AutoSize = True - Me.chkShowFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkShowFanart.Location = New System.Drawing.Point(286, 20) - Me.chkShowFanart.Name = "chkShowFanart" - Me.chkShowFanart.Size = New System.Drawing.Size(238, 17) - Me.chkShowFanart.TabIndex = 4 - Me.chkShowFanart.Text = "Show Poster as Set__1.fanart.jpg" - Me.chkShowFanart.UseVisualStyleBackColor = True - ' - 'chkShowPoster - ' - Me.chkShowPoster.AutoSize = True - Me.chkShowPoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkShowPoster.Location = New System.Drawing.Point(15, 20) - Me.chkShowPoster.Name = "chkShowPoster" - Me.chkShowPoster.Size = New System.Drawing.Size(204, 17) - Me.chkShowPoster.TabIndex = 0 - Me.chkShowPoster.Text = "Show Poster as Set__1.jpg" - Me.chkShowPoster.UseVisualStyleBackColor = True - ' - 'chkSeasonFanart - ' - Me.chkSeasonFanart.AutoSize = True - Me.chkSeasonFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkSeasonFanart.Location = New System.Drawing.Point(286, 62) - Me.chkSeasonFanart.Name = "chkSeasonFanart" - Me.chkSeasonFanart.Size = New System.Drawing.Size(261, 17) - Me.chkSeasonFanart.TabIndex = 5 - Me.chkSeasonFanart.Text = "Season Fanart as SxxE01.fanart.jpg" - Me.chkSeasonFanart.UseVisualStyleBackColor = True - ' - 'chkSeasonPoster - ' - Me.chkSeasonPoster.AutoSize = True - Me.chkSeasonPoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkSeasonPoster.Location = New System.Drawing.Point(15, 62) - Me.chkSeasonPoster.Name = "chkSeasonPoster" - Me.chkSeasonPoster.Size = New System.Drawing.Size(226, 17) - Me.chkSeasonPoster.TabIndex = 2 - Me.chkSeasonPoster.Text = "Season Poster as SxxE01.jpg" - Me.chkSeasonPoster.UseVisualStyleBackColor = True - ' - 'chkYAMJnfoFields - ' - Me.chkYAMJnfoFields.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkYAMJnfoFields.Location = New System.Drawing.Point(13, 102) - Me.chkYAMJnfoFields.Name = "chkYAMJnfoFields" - Me.chkYAMJnfoFields.Size = New System.Drawing.Size(584, 18) - Me.chkYAMJnfoFields.TabIndex = 4 - Me.chkYAMJnfoFields.Text = "YAMJ Specific NFO fields" - Me.chkYAMJnfoFields.UseVisualStyleBackColor = True - ' - 'chkVideoTSParent - ' - Me.chkVideoTSParent.CheckAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkVideoTSParent.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkVideoTSParent.Location = New System.Drawing.Point(13, 58) - Me.chkVideoTSParent.Name = "chkVideoTSParent" - Me.chkVideoTSParent.Size = New System.Drawing.Size(584, 17) - Me.chkVideoTSParent.TabIndex = 2 - Me.chkVideoTSParent.Text = "Compatible VIDEO_TS File Placement/Naming" - Me.chkVideoTSParent.TextAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkVideoTSParent.UseVisualStyleBackColor = True - ' - 'chkYAMJCompatibleSets - ' - Me.chkYAMJCompatibleSets.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkYAMJCompatibleSets.Location = New System.Drawing.Point(13, 81) - Me.chkYAMJCompatibleSets.Name = "chkYAMJCompatibleSets" - Me.chkYAMJCompatibleSets.Size = New System.Drawing.Size(584, 17) - Me.chkYAMJCompatibleSets.TabIndex = 3 - Me.chkYAMJCompatibleSets.Text = "YAMJ Compatible Movie Sets" - Me.chkYAMJCompatibleSets.UseVisualStyleBackColor = True - ' - 'Panel1 - ' - Me.Panel1.BackColor = System.Drawing.Color.WhiteSmoke - Me.Panel1.Controls.Add(Me.chkEnabled) - Me.Panel1.Dock = System.Windows.Forms.DockStyle.Top - Me.Panel1.Location = New System.Drawing.Point(0, 0) - Me.Panel1.Name = "Panel1" - Me.Panel1.Size = New System.Drawing.Size(617, 25) - Me.Panel1.TabIndex = 0 - ' - 'chkEnabled - ' - Me.chkEnabled.AutoSize = True - Me.chkEnabled.Location = New System.Drawing.Point(10, 5) - Me.chkEnabled.Name = "chkEnabled" - Me.chkEnabled.Size = New System.Drawing.Size(68, 17) - Me.chkEnabled.TabIndex = 0 - Me.chkEnabled.Text = "Enabled" - Me.chkEnabled.UseVisualStyleBackColor = True - ' - 'frmYAMJ - ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi - Me.ClientSize = New System.Drawing.Size(643, 356) - Me.Controls.Add(Me.pnlSettings) - Me.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Name = "frmYAMJ" - Me.Text = "frmSettingsHolder" - Me.pnlSettings.ResumeLayout(False) - Me.pnlSettings.PerformLayout() - Me.gbImages.ResumeLayout(False) - Me.gbImages.PerformLayout() - Me.Panel1.ResumeLayout(False) - Me.Panel1.PerformLayout() - Me.ResumeLayout(False) + Me.pnlSettings = New System.Windows.Forms.Panel() + Me.btnCheckAll = New System.Windows.Forms.Button() + Me.chkYAMJCompatibleTVImages = New System.Windows.Forms.CheckBox() + Me.gbImages = New System.Windows.Forms.GroupBox() + Me.chkAllSeasonPoster = New System.Windows.Forms.CheckBox() + Me.chkEpisodePoster = New System.Windows.Forms.CheckBox() + Me.chkShowFanart = New System.Windows.Forms.CheckBox() + Me.chkShowPoster = New System.Windows.Forms.CheckBox() + Me.chkSeasonFanart = New System.Windows.Forms.CheckBox() + Me.chkSeasonPoster = New System.Windows.Forms.CheckBox() + Me.chkYAMJnfoFields = New System.Windows.Forms.CheckBox() + Me.chkVideoTSParent = New System.Windows.Forms.CheckBox() + Me.chkYAMJCompatibleSets = New System.Windows.Forms.CheckBox() + Me.Panel1 = New System.Windows.Forms.Panel() + Me.chkEnabled = New System.Windows.Forms.CheckBox() + Me.lblInfo = New System.Windows.Forms.Label() + Me.pnlSettings.SuspendLayout() + Me.gbImages.SuspendLayout() + Me.Panel1.SuspendLayout() + Me.SuspendLayout() + ' + 'pnlSettings + ' + Me.pnlSettings.BackColor = System.Drawing.Color.White + Me.pnlSettings.Controls.Add(Me.btnCheckAll) + Me.pnlSettings.Controls.Add(Me.chkYAMJCompatibleTVImages) + Me.pnlSettings.Controls.Add(Me.gbImages) + Me.pnlSettings.Controls.Add(Me.chkYAMJnfoFields) + Me.pnlSettings.Controls.Add(Me.chkVideoTSParent) + Me.pnlSettings.Controls.Add(Me.chkYAMJCompatibleSets) + Me.pnlSettings.Controls.Add(Me.Panel1) + Me.pnlSettings.Location = New System.Drawing.Point(13, 15) + Me.pnlSettings.Name = "pnlSettings" + Me.pnlSettings.Size = New System.Drawing.Size(617, 327) + Me.pnlSettings.TabIndex = 0 + ' + 'btnCheckAll + ' + Me.btnCheckAll.Font = New System.Drawing.Font("Segoe UI", 6.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.btnCheckAll.Location = New System.Drawing.Point(13, 30) + Me.btnCheckAll.Name = "btnCheckAll" + Me.btnCheckAll.Size = New System.Drawing.Size(93, 20) + Me.btnCheckAll.TabIndex = 1 + Me.btnCheckAll.Text = "Check All" + Me.btnCheckAll.UseVisualStyleBackColor = True + ' + 'chkYAMJCompatibleTVImages + ' + Me.chkYAMJCompatibleTVImages.AutoSize = True + Me.chkYAMJCompatibleTVImages.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkYAMJCompatibleTVImages.Location = New System.Drawing.Point(13, 125) + Me.chkYAMJCompatibleTVImages.Name = "chkYAMJCompatibleTVImages" + Me.chkYAMJCompatibleTVImages.Size = New System.Drawing.Size(211, 17) + Me.chkYAMJCompatibleTVImages.TabIndex = 5 + Me.chkYAMJCompatibleTVImages.Text = "YAMJ Compatible TV Images Naming" + Me.chkYAMJCompatibleTVImages.UseVisualStyleBackColor = True + ' + 'gbImages + ' + Me.gbImages.Controls.Add(Me.lblInfo) + Me.gbImages.Controls.Add(Me.chkAllSeasonPoster) + Me.gbImages.Controls.Add(Me.chkEpisodePoster) + Me.gbImages.Controls.Add(Me.chkShowFanart) + Me.gbImages.Controls.Add(Me.chkShowPoster) + Me.gbImages.Controls.Add(Me.chkSeasonFanart) + Me.gbImages.Controls.Add(Me.chkSeasonPoster) + Me.gbImages.Enabled = False + Me.gbImages.Location = New System.Drawing.Point(6, 126) + Me.gbImages.Name = "gbImages" + Me.gbImages.Size = New System.Drawing.Size(594, 121) + Me.gbImages.TabIndex = 6 + Me.gbImages.TabStop = False + ' + 'chkAllSeasonPoster + ' + Me.chkAllSeasonPoster.AutoSize = True + Me.chkAllSeasonPoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkAllSeasonPoster.Location = New System.Drawing.Point(15, 66) + Me.chkAllSeasonPoster.Name = "chkAllSeasonPoster" + Me.chkAllSeasonPoster.Size = New System.Drawing.Size(273, 17) + Me.chkAllSeasonPoster.TabIndex = 1 + Me.chkAllSeasonPoster.Text = "All Seasons Poster as Set__1.banner.jpg" + Me.chkAllSeasonPoster.UseVisualStyleBackColor = True + ' + 'chkEpisodePoster + ' + Me.chkEpisodePoster.AutoSize = True + Me.chkEpisodePoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkEpisodePoster.Location = New System.Drawing.Point(298, 66) + Me.chkEpisodePoster.Name = "chkEpisodePoster" + Me.chkEpisodePoster.Size = New System.Drawing.Size(258, 17) + Me.chkEpisodePoster.TabIndex = 3 + Me.chkEpisodePoster.Text = "Episode Poster as .videoimage.jpg" + Me.chkEpisodePoster.UseVisualStyleBackColor = True + ' + 'chkShowFanart + ' + Me.chkShowFanart.AutoSize = True + Me.chkShowFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkShowFanart.Location = New System.Drawing.Point(15, 43) + Me.chkShowFanart.Name = "chkShowFanart" + Me.chkShowFanart.Size = New System.Drawing.Size(238, 17) + Me.chkShowFanart.TabIndex = 4 + Me.chkShowFanart.Text = "Show Poster as Set__1.fanart.jpg" + Me.chkShowFanart.UseVisualStyleBackColor = True + ' + 'chkShowPoster + ' + Me.chkShowPoster.AutoSize = True + Me.chkShowPoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkShowPoster.Location = New System.Drawing.Point(15, 20) + Me.chkShowPoster.Name = "chkShowPoster" + Me.chkShowPoster.Size = New System.Drawing.Size(204, 17) + Me.chkShowPoster.TabIndex = 0 + Me.chkShowPoster.Text = "Show Poster as Set__1.jpg" + Me.chkShowPoster.UseVisualStyleBackColor = True + ' + 'chkSeasonFanart + ' + Me.chkSeasonFanart.AutoSize = True + Me.chkSeasonFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkSeasonFanart.Location = New System.Drawing.Point(298, 43) + Me.chkSeasonFanart.Name = "chkSeasonFanart" + Me.chkSeasonFanart.Size = New System.Drawing.Size(235, 17) + Me.chkSeasonFanart.TabIndex = 5 + Me.chkSeasonFanart.Text = "Season Fanart as .fanart.jpg *" + Me.chkSeasonFanart.UseVisualStyleBackColor = True + ' + 'chkSeasonPoster + ' + Me.chkSeasonPoster.AutoSize = True + Me.chkSeasonPoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkSeasonPoster.Location = New System.Drawing.Point(298, 20) + Me.chkSeasonPoster.Name = "chkSeasonPoster" + Me.chkSeasonPoster.Size = New System.Drawing.Size(200, 17) + Me.chkSeasonPoster.TabIndex = 2 + Me.chkSeasonPoster.Text = "Season Poster as .jpg *" + Me.chkSeasonPoster.UseVisualStyleBackColor = True + ' + 'chkYAMJnfoFields + ' + Me.chkYAMJnfoFields.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkYAMJnfoFields.Location = New System.Drawing.Point(13, 102) + Me.chkYAMJnfoFields.Name = "chkYAMJnfoFields" + Me.chkYAMJnfoFields.Size = New System.Drawing.Size(584, 18) + Me.chkYAMJnfoFields.TabIndex = 4 + Me.chkYAMJnfoFields.Text = "YAMJ Specific NFO fields" + Me.chkYAMJnfoFields.UseVisualStyleBackColor = True + ' + 'chkVideoTSParent + ' + Me.chkVideoTSParent.CheckAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkVideoTSParent.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkVideoTSParent.Location = New System.Drawing.Point(13, 58) + Me.chkVideoTSParent.Name = "chkVideoTSParent" + Me.chkVideoTSParent.Size = New System.Drawing.Size(584, 17) + Me.chkVideoTSParent.TabIndex = 2 + Me.chkVideoTSParent.Text = "Compatible VIDEO_TS File Placement/Naming" + Me.chkVideoTSParent.TextAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkVideoTSParent.UseVisualStyleBackColor = True + ' + 'chkYAMJCompatibleSets + ' + Me.chkYAMJCompatibleSets.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkYAMJCompatibleSets.Location = New System.Drawing.Point(13, 81) + Me.chkYAMJCompatibleSets.Name = "chkYAMJCompatibleSets" + Me.chkYAMJCompatibleSets.Size = New System.Drawing.Size(584, 17) + Me.chkYAMJCompatibleSets.TabIndex = 3 + Me.chkYAMJCompatibleSets.Text = "YAMJ Compatible Movie Sets" + Me.chkYAMJCompatibleSets.UseVisualStyleBackColor = True + ' + 'Panel1 + ' + Me.Panel1.BackColor = System.Drawing.Color.WhiteSmoke + Me.Panel1.Controls.Add(Me.chkEnabled) + Me.Panel1.Dock = System.Windows.Forms.DockStyle.Top + Me.Panel1.Location = New System.Drawing.Point(0, 0) + Me.Panel1.Name = "Panel1" + Me.Panel1.Size = New System.Drawing.Size(617, 25) + Me.Panel1.TabIndex = 0 + ' + 'chkEnabled + ' + Me.chkEnabled.AutoSize = True + Me.chkEnabled.Location = New System.Drawing.Point(10, 5) + Me.chkEnabled.Name = "chkEnabled" + Me.chkEnabled.Size = New System.Drawing.Size(68, 17) + Me.chkEnabled.TabIndex = 0 + Me.chkEnabled.Text = "Enabled" + Me.chkEnabled.UseVisualStyleBackColor = True + ' + 'lblInfo + ' + Me.lblInfo.AutoSize = True + Me.lblInfo.Location = New System.Drawing.Point(160, 98) + Me.lblInfo.Name = "lblInfo" + Me.lblInfo.Size = New System.Drawing.Size(266, 13) + Me.lblInfo.TabIndex = 7 + Me.lblInfo.Text = "* Use allways the first existing episode of a season" + ' + 'frmYAMJ + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi + Me.ClientSize = New System.Drawing.Size(643, 356) + Me.Controls.Add(Me.pnlSettings) + Me.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Name = "frmYAMJ" + Me.Text = "frmSettingsHolder" + Me.pnlSettings.ResumeLayout(False) + Me.pnlSettings.PerformLayout() + Me.gbImages.ResumeLayout(False) + Me.gbImages.PerformLayout() + Me.Panel1.ResumeLayout(False) + Me.Panel1.PerformLayout() + Me.ResumeLayout(False) - End Sub + End Sub Friend WithEvents pnlSettings As System.Windows.Forms.Panel Friend WithEvents Panel1 As System.Windows.Forms.Panel Friend WithEvents chkEnabled As System.Windows.Forms.CheckBox @@ -244,4 +255,5 @@ Partial Class frmYAMJ Friend WithEvents chkShowPoster As System.Windows.Forms.CheckBox Friend WithEvents chkEpisodePoster As System.Windows.Forms.CheckBox Friend WithEvents chkAllSeasonPoster As System.Windows.Forms.CheckBox + Friend WithEvents lblInfo As System.Windows.Forms.Label End Class diff --git a/Addons/multi.Compatibility/frmYAMJ.vb b/Addons/multi.Compatibility/frmYAMJ.vb index 71a92ca..b1082ea 100644 --- a/Addons/multi.Compatibility/frmYAMJ.vb +++ b/Addons/multi.Compatibility/frmYAMJ.vb @@ -45,11 +45,12 @@ Public Class frmYAMJ Me.chkYAMJnfoFields.Text = Master.eLang.GetString(5, "YAMJ Specific NFO fields") Me.chkShowPoster.Text = Master.eLang.GetString(6, "Show Poster as Set__1.jpg") Me.chkShowFanart.Text = Master.eLang.GetString(7, "Show Poster as Set__1.fanart.jpg") - Me.chkSeasonPoster.Text = Master.eLang.GetString(8, "Season Poster as SxxE01.jpg") - Me.chkSeasonFanart.Text = Master.eLang.GetString(9, "Season Fanart as SxxE01.fanart.jpg") - Me.chkEpisodePoster.Text = Master.eLang.GetString(10, "Episode Poster as .videoimage.jpg") - Me.chkAllSeasonPoster.Text = Master.eLang.GetString(14, "Show All Season as Set__1.banner.jpg") - Me.btnCheckAll.Text = Master.eLang.GetString(17, "Check all") + Me.chkSeasonPoster.Text = Master.eLang.GetString(8, "Season Poster as .jpg *") + Me.chkSeasonFanart.Text = Master.eLang.GetString(9, "Season Fanart as .fanart.jpg *") + Me.chkEpisodePoster.Text = Master.eLang.GetString(10, "Episode Poster as .videoimage.jpg") + Me.chkAllSeasonPoster.Text = Master.eLang.GetString(14, "All Seasons Poster as Set__1.banner.jpg") + Me.btnCheckAll.Text = Master.eLang.GetString(17, "Use YAMJ Settings") + Me.lblInfo.Text = Master.eLang.GetString(19, "* Use allways the first existing episode of a season") End Sub Private Sub chkYAMJCompatibleSets_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkYAMJCompatibleSets.CheckedChanged @@ -58,6 +59,16 @@ Public Class frmYAMJ Private Sub chkYAMJCompatibleTVSets_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkYAMJCompatibleTVImages.CheckedChanged gbImages.Enabled = chkYAMJCompatibleTVImages.Checked + + If Not Me.chkYAMJCompatibleTVImages.Checked Then + Me.chkAllSeasonPoster.Checked = False + Me.chkEpisodePoster.Checked = False + Me.chkSeasonFanart.Checked = False + Me.chkSeasonPoster.Checked = False + Me.chkShowFanart.Checked = False + Me.chkShowPoster.Checked = False + End If + RaiseEvent ModuleSettingsChanged() End Sub @@ -71,8 +82,7 @@ Public Class frmYAMJ chkSeasonPoster.Checked = True chkSeasonFanart.Checked = True chkEpisodePoster.Checked = True - Me.chkAllSeasonPoster.Checked = True - + chkAllSeasonPoster.Checked = True End Sub Private Sub chkYAMJnfoFields_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkYAMJnfoFields.CheckedChanged diff --git a/Addons/multi.Compatibility/genericBoxee.vb b/Addons/multi.Compatibility/genericBoxee.vb index 21dfc56..b512f52 100644 --- a/Addons/multi.Compatibility/genericBoxee.vb +++ b/Addons/multi.Compatibility/genericBoxee.vb @@ -67,7 +67,7 @@ Public Class genericBoxee Me.fBoxee.chkBoxeeId.Checked = AdvancedSettings.GetBooleanSetting("BoxeeTVShowId", False) 'chkYAMJnfoFields SPanel.Name = _name - SPanel.Text = Master.eLang.GetString(1, "Boxee Compatibility") + SPanel.Text = Master.eLang.GetString(18, "Boxee Compatibility") SPanel.Prefix = "Boxee_" SPanel.Type = Master.eLang.GetString(802, "Modules", True) SPanel.ImageIndex = If(Me._enabled, 9, 10) diff --git a/Addons/multi.Compatibility/genericMediaBrowser.vb b/Addons/multi.Compatibility/genericMediaBrowser.vb index 78bb872..9eebd88 100644 --- a/Addons/multi.Compatibility/genericMediaBrowser.vb +++ b/Addons/multi.Compatibility/genericMediaBrowser.vb @@ -107,7 +107,7 @@ Public Class genericMediaBrowser Public Function RunGeneric(ByVal mType As EmberAPI.Enums.ModuleEventType, ByRef _params As System.Collections.Generic.List(Of Object), ByRef _refparam As Object) As EmberAPI.Interfaces.ModuleResult Implements EmberAPI.Interfaces.EmberExternalModule.RunGeneric Dim doContinue As Boolean Dim mMovie As Structures.DBMovie - Dim _image As Image + Dim _image As Images If Enabled Then Try Select Case mType @@ -121,11 +121,11 @@ Public Class genericMediaBrowser Case Enums.ModuleEventType.OnMovieFanartSave If AdvancedSettings.GetBooleanSetting("MediaBrowserBackdrop", False) Then mMovie = DirectCast(_params(0), Structures.DBMovie) - _image = DirectCast(_refparam, Image) + _image = DirectCast(_refparam, Images) Dim fPath As String = Path.Combine(Path.GetDirectoryName(mMovie.Filename), "backdrop.jpg") Dim eimage As New Images - eimage.Image = _image - eimage.Save(fPath, Master.eSettings.FanartQuality) + eimage = _image + eimage.Save(fPath, Master.eSettings.FanartQuality, , False) End If End Select diff --git a/Addons/multi.Compatibility/genericYAMJ.vb b/Addons/multi.Compatibility/genericYAMJ.vb index f903a64..fa722db 100644 --- a/Addons/multi.Compatibility/genericYAMJ.vb +++ b/Addons/multi.Compatibility/genericYAMJ.vb @@ -135,19 +135,17 @@ Public Class genericYAMJ Case Enums.TVImageType.AllSeasonPoster If AdvancedSettings.GetBooleanSetting("YAMJAllSeasonPoster", False) Then Dim seasonPath As String = Functions.GetSeasonDirectoryFromShowPath(mShow.ShowPath, 0) - If String.IsNullOrEmpty(seasonPath) Then - Dim dtSeasons As New DataTable - Master.DB.FillDataTable(dtSeasons, String.Concat("SELECT * FROM TVSeason WHERE TVShowID = ", mShow.ShowID, " AND Season <> 999 ORDER BY Season;")) - If dtSeasons.Rows.Count > 0 Then - seasonPath = Functions.GetSeasonDirectoryFromShowPath(mShow.ShowPath, Convert.ToInt32(dtSeasons.Rows(0).Item("Season").ToString)) - End If - End If - tPath = Path.Combine(mShow.ShowPath, seasonPath) - 'tPath = Path.Combine(tPath, String.Concat("Set_", FileUtils.Common.GetDirectory(mShow.ShowPath), "_1.banner.jpg")) - tPath = Path.Combine(tPath, "Season 1.banner.jpg") - imageList.Add(tPath) - 'doContinue = False - 'SET__1.banner.jpg + If String.IsNullOrEmpty(seasonPath) Then + Dim dtSeasons As New DataTable + Master.DB.FillDataTable(dtSeasons, String.Concat("SELECT * FROM TVSeason WHERE TVShowID = ", mShow.ShowID, " AND Season <> 999 ORDER BY Season;")) + If dtSeasons.Rows.Count > 0 Then + seasonPath = Functions.GetSeasonDirectoryFromShowPath(mShow.ShowPath, Convert.ToInt32(dtSeasons.Rows(0).Item("Season").ToString)) + End If + End If + tPath = Path.Combine(mShow.ShowPath, seasonPath) + tPath = Path.Combine(tPath, String.Concat("Set_", FileUtils.Common.GetDirectory(mShow.ShowPath), "_1.banner.jpg")) + imageList.Add(tPath) + 'doContinue = False End If Case Enums.TVImageType.EpisodePoster If AdvancedSettings.GetBooleanSetting("YAMJEpisodePoster", False) Then @@ -193,7 +191,6 @@ Public Class genericYAMJ tPath = Path.Combine(tPath, String.Concat("Set_", FileUtils.Common.GetDirectory(mShow.ShowPath), "_1.jpg")) imageList.Add(tPath) 'doContinue = False - 'SET__1.jpg End If Case Enums.TVImageType.ShowFanart If AdvancedSettings.GetBooleanSetting("YAMJShowFanart", False) Then @@ -209,7 +206,6 @@ Public Class genericYAMJ tPath = Path.Combine(tPath, String.Concat("Set_", FileUtils.Common.GetDirectory(mShow.ShowPath), "_1.fanart.jpg")) imageList.Add(tPath) 'doContinue = False - 'SET__1.fanart.jpg End If End Select End If diff --git a/Addons/multi.Compatibility/multi.Compatibility.vbproj b/Addons/multi.Compatibility/multi.Compatibility.vbproj index 63c1ac1..18a0710 100644 --- a/Addons/multi.Compatibility/multi.Compatibility.vbproj +++ b/Addons/multi.Compatibility/multi.Compatibility.vbproj @@ -151,13 +151,25 @@ + + PreserveNewest + + + PreserveNewest + PreserveNewest PreserveNewest - + + PreserveNewest + + + PreserveNewest + + PreserveNewest diff --git a/Addons/multi.EmberExtras/Langs/multi.EmberExtras.Debug_(db_DB).xml b/Addons/multi.EmberExtras/Langs/multi.EmberExtras.Debug_(db_DB).xml new file mode 100644 index 0000000..fd75676 --- /dev/null +++ b/Addons/multi.EmberExtras/Langs/multi.EmberExtras.Debug_(db_DB).xml @@ -0,0 +1,902 @@ + + extra1 + extra2 + extra3 + extra4 + extra5 + extra6 + extra7 + extra8 + extra9 + extra10 + extra11 + extra12 + extra13 + extra14 + extra15 + extra16 + extra17 + extra18 + extra19 + extra20 + extra21 + extra22 + extra23 + extra24 + extra25 + extra26 + extra27 + extra28 + extra29 + extra30 + extra31 + extra32 + extra33 + extra34 + extra35 + extra36 + extra37 + extra38 + extra39 + extra40 + extra41 + extra42 + extra43 + extra44 + extra45 + extra46 + extra47 + extra48 + extra49 + extra50 + extra51 + extra52 + extra53 + extra54 + extra55 + extra56 + extra57 + extra58 + extra59 + extra60 + extra61 + extra62 + extra63 + extra64 + extra65 + extra66 + extra67 + extra68 + extra69 + extra70 + extra71 + extra72 + extra73 + extra74 + extra75 + extra76 + extra77 + extra78 + extra79 + extra80 + extra81 + extra82 + extra83 + extra84 + extra85 + extra86 + extra87 + extra88 + extra89 + extra90 + extra91 + extra92 + extra93 + extra94 + extra95 + extra96 + extra97 + extra98 + extra99 + extra100 + extra101 + extra102 + extra103 + extra104 + extra105 + extra106 + extra107 + extra108 + extra109 + extra110 + extra111 + extra112 + extra113 + extra114 + extra115 + extra116 + extra117 + extra118 + extra119 + extra120 + extra121 + extra122 + extra123 + extra124 + extra125 + extra126 + extra127 + extra128 + extra129 + extra130 + extra131 + extra132 + extra133 + extra134 + extra135 + extra136 + extra137 + extra138 + extra139 + extra140 + extra141 + extra142 + extra143 + extra144 + extra145 + extra146 + extra147 + extra148 + extra149 + extra150 + extra151 + extra152 + extra153 + extra154 + extra155 + extra156 + extra157 + extra158 + extra159 + extra160 + extra161 + extra162 + extra163 + extra164 + extra165 + extra166 + extra167 + extra168 + extra169 + extra170 + extra171 + extra172 + extra173 + extra174 + extra175 + extra176 + extra177 + extra178 + extra179 + extra180 + extra181 + extra182 + extra183 + extra184 + extra185 + extra186 + extra187 + extra188 + extra189 + extra190 + extra191 + extra192 + extra193 + extra194 + extra195 + extra196 + extra197 + extra198 + extra199 + extra200 + extra201 + extra202 + extra203 + extra204 + extra205 + extra206 + extra207 + extra208 + extra209 + extra210 + extra211 + extra212 + extra213 + extra214 + extra215 + extra216 + extra217 + extra218 + extra219 + extra220 + extra221 + extra222 + extra223 + extra224 + extra225 + extra226 + extra227 + extra228 + extra229 + extra230 + extra231 + extra232 + extra233 + extra234 + extra235 + extra236 + extra237 + extra238 + extra239 + extra240 + extra241 + extra242 + extra243 + extra244 + extra245 + extra246 + extra247 + extra248 + extra249 + extra250 + extra251 + extra252 + extra253 + extra254 + extra255 + extra256 + extra257 + extra258 + extra259 + extra260 + extra261 + extra262 + extra263 + extra264 + extra265 + extra266 + extra267 + extra268 + extra269 + extra270 + extra271 + extra272 + extra273 + extra274 + extra275 + extra276 + extra277 + extra278 + extra279 + extra280 + extra281 + extra282 + extra283 + extra284 + extra285 + extra286 + extra287 + extra288 + extra289 + extra290 + extra291 + extra292 + extra293 + extra294 + extra295 + extra296 + extra297 + extra298 + extra299 + extra300 + extra301 + extra302 + extra303 + extra304 + extra305 + extra306 + extra307 + extra308 + extra309 + extra310 + extra311 + extra312 + extra313 + extra314 + extra315 + extra316 + extra317 + extra318 + extra319 + extra320 + extra321 + extra322 + extra323 + extra324 + extra325 + extra326 + extra327 + extra328 + extra329 + extra330 + extra331 + extra332 + extra333 + extra334 + extra335 + extra336 + extra337 + extra338 + extra339 + extra340 + extra341 + extra342 + extra343 + extra344 + extra345 + extra346 + extra347 + extra348 + extra349 + extra350 + extra351 + extra352 + extra353 + extra354 + extra355 + extra356 + extra357 + extra358 + extra359 + extra360 + extra361 + extra362 + extra363 + extra364 + extra365 + extra366 + extra367 + extra368 + extra369 + extra370 + extra371 + extra372 + extra373 + extra374 + extra375 + extra376 + extra377 + extra378 + extra379 + extra380 + extra381 + extra382 + extra383 + extra384 + extra385 + extra386 + extra387 + extra388 + extra389 + extra390 + extra391 + extra392 + extra393 + extra394 + extra395 + extra396 + extra397 + extra398 + extra399 + extra400 + extra401 + extra402 + extra403 + extra404 + extra405 + extra406 + extra407 + extra408 + extra409 + extra410 + extra411 + extra412 + extra413 + extra414 + extra415 + extra416 + extra417 + extra418 + extra419 + extra420 + extra421 + extra422 + extra423 + extra424 + extra425 + extra426 + extra427 + extra428 + extra429 + extra430 + extra431 + extra432 + extra433 + extra434 + extra435 + extra436 + extra437 + extra438 + extra439 + extra440 + extra441 + extra442 + extra443 + extra444 + extra445 + extra446 + extra447 + extra448 + extra449 + extra450 + extra451 + extra452 + extra453 + extra454 + extra455 + extra456 + extra457 + extra458 + extra459 + extra460 + extra461 + extra462 + extra463 + extra464 + extra465 + extra466 + extra467 + extra468 + extra469 + extra470 + extra471 + extra472 + extra473 + extra474 + extra475 + extra476 + extra477 + extra478 + extra479 + extra480 + extra481 + extra482 + extra483 + extra484 + extra485 + extra486 + extra487 + extra488 + extra489 + extra490 + extra491 + extra492 + extra493 + extra494 + extra495 + extra496 + extra497 + extra498 + extra499 + extra500 + extra501 + extra502 + extra503 + extra504 + extra505 + extra506 + extra507 + extra508 + extra509 + extra510 + extra511 + extra512 + extra513 + extra514 + extra515 + extra516 + extra517 + extra518 + extra519 + extra520 + extra521 + extra522 + extra523 + extra524 + extra525 + extra526 + extra527 + extra528 + extra529 + extra530 + extra531 + extra532 + extra533 + extra534 + extra535 + extra536 + extra537 + extra538 + extra539 + extra540 + extra541 + extra542 + extra543 + extra544 + extra545 + extra546 + extra547 + extra548 + extra549 + extra550 + extra551 + extra552 + extra553 + extra554 + extra555 + extra556 + extra557 + extra558 + extra559 + extra560 + extra561 + extra562 + extra563 + extra564 + extra565 + extra566 + extra567 + extra568 + extra569 + extra570 + extra571 + extra572 + extra573 + extra574 + extra575 + extra576 + extra577 + extra578 + extra579 + extra580 + extra581 + extra582 + extra583 + extra584 + extra585 + extra586 + extra587 + extra588 + extra589 + extra590 + extra591 + extra592 + extra593 + extra594 + extra595 + extra596 + extra597 + extra598 + extra599 + extra600 + extra601 + extra602 + extra603 + extra604 + extra605 + extra606 + extra607 + extra608 + extra609 + extra610 + extra611 + extra612 + extra613 + extra614 + extra615 + extra616 + extra617 + extra618 + extra619 + extra620 + extra621 + extra622 + extra623 + extra624 + extra625 + extra626 + extra627 + extra628 + extra629 + extra630 + extra631 + extra632 + extra633 + extra634 + extra635 + extra636 + extra637 + extra638 + extra639 + extra640 + extra641 + extra642 + extra643 + extra644 + extra645 + extra646 + extra647 + extra648 + extra649 + extra650 + extra651 + extra652 + extra653 + extra654 + extra655 + extra656 + extra657 + extra658 + extra659 + extra660 + extra661 + extra662 + extra663 + extra664 + extra665 + extra666 + extra667 + extra668 + extra669 + extra670 + extra671 + extra672 + extra673 + extra674 + extra675 + extra676 + extra677 + extra678 + extra679 + extra680 + extra681 + extra682 + extra683 + extra684 + extra685 + extra686 + extra687 + extra688 + extra689 + extra690 + extra691 + extra692 + extra693 + extra694 + extra695 + extra696 + extra697 + extra698 + extra699 + extra700 + extra701 + extra702 + extra703 + extra704 + extra705 + extra706 + extra707 + extra708 + extra709 + extra710 + extra711 + extra712 + extra713 + extra714 + extra715 + extra716 + extra717 + extra718 + extra719 + extra720 + extra721 + extra722 + extra723 + extra724 + extra725 + extra726 + extra727 + extra728 + extra729 + extra730 + extra731 + extra732 + extra733 + extra734 + extra735 + extra736 + extra737 + extra738 + extra739 + extra740 + extra741 + extra742 + extra743 + extra744 + extra745 + extra746 + extra747 + extra748 + extra749 + extra750 + extra751 + extra752 + extra753 + extra754 + extra755 + extra756 + extra757 + extra758 + extra759 + extra760 + extra761 + extra762 + extra763 + extra764 + extra765 + extra766 + extra767 + extra768 + extra769 + extra770 + extra771 + extra772 + extra773 + extra774 + extra775 + extra776 + extra777 + extra778 + extra779 + extra780 + extra781 + extra782 + extra783 + extra784 + extra785 + extra786 + extra787 + extra788 + extra789 + extra790 + extra791 + extra792 + extra793 + extra794 + extra795 + extra796 + extra797 + extra798 + extra799 + extra800 + extra801 + extra802 + extra803 + extra804 + extra805 + extra806 + extra807 + extra808 + extra809 + extra810 + extra811 + extra812 + extra813 + extra814 + extra815 + extra816 + extra817 + extra818 + extra819 + extra820 + extra821 + extra822 + extra823 + extra824 + extra825 + extra826 + extra827 + extra828 + extra829 + extra830 + extra831 + extra832 + extra833 + extra834 + extra835 + extra836 + extra837 + extra838 + extra839 + extra840 + extra841 + extra842 + extra843 + extra844 + extra845 + extra846 + extra847 + extra848 + extra849 + extra850 + extra851 + extra852 + extra853 + extra854 + extra855 + extra856 + extra857 + extra858 + extra859 + extra860 + extra861 + extra862 + extra863 + extra864 + extra865 + extra866 + extra867 + extra868 + extra869 + extra870 + extra871 + extra872 + extra873 + extra874 + extra875 + extra876 + extra877 + extra878 + extra879 + extra880 + extra881 + extra882 + extra883 + extra884 + extra885 + extra886 + extra887 + extra888 + extra889 + extra890 + extra891 + extra892 + extra893 + extra894 + extra895 + extra896 + extra897 + extra898 + extra899 + extra900 + \ No newline at end of file diff --git a/Addons/multi.EmberExtras/Langs/multi.EmberExtras.Dutch_(nl_NL).xml b/Addons/multi.EmberExtras/Langs/multi.EmberExtras.Dutch_(nl_NL).xml new file mode 100644 index 0000000..f1b0788 --- /dev/null +++ b/Addons/multi.EmberExtras/Langs/multi.EmberExtras.Dutch_(nl_NL).xml @@ -0,0 +1,34 @@ + + Audio & Video Codec indeling + Genres bewerker + < Alle > + Voer de nieuwe taal in + Nieuwe taal + Dit zal de taal uit alle genres verwijderen. Bent u zeker? + Verwijder taal + Talen + Wijzig + Afbeelding + Genres filter + + Audio + Video + Mediainfo codec + Ingedeelde Codec + Bewerker Mediabronnen + Bronnen + Zoektekst + Bronnaam + Deel mediabron in op bestandsextensie + Bestandsextensie + Stel standaarden in + Gebruik trakt.tv als bron voor "Playcount" + trakt.tv Playcount Sync + Haal bekeken films op + Bewaar de afspeeltelling in de database/nfo + + Gebruikersnaam + Wachtwoord + Haal bekeken afleveringen op + Opslaan + diff --git a/Addons/multi.EmberExtras/Langs/multi.EmberExtras.English_(en_US).xml b/Addons/multi.EmberExtras/Langs/multi.EmberExtras.English_(en_US).xml index 913e6c8..51e93b9 100644 --- a/Addons/multi.EmberExtras/Langs/multi.EmberExtras.English_(en_US).xml +++ b/Addons/multi.EmberExtras/Langs/multi.EmberExtras.English_(en_US).xml @@ -1,28 +1,34 @@ - - Audio & Video Codec Mapping - Genres Editor - < All > - Enter the new Language - New Language - This will remove the Language from all Genres. Are you sure? - Remove Language - Languages - Change - Image - Genres Filter - - - Audio - Video - Mediainfo Codec - Mapped Codec - - Media Sources Editor - Sources - Search String - Source Name - Map Media Source by File Extension - File Extension - Set Defaults - + Audio & Video Codec Mapping + Genres Editor + < All > + Enter the new Language + New Language + This will remove the Language from all Genres. Are you sure? + Remove Language + Languages + Change + Image + Genres Filter + + Audio + Video + Mediainfo Codec + Mapped Codec + Media Sources Editor + Sources + Search String + Source Name + Map Media Source by File Extension + File Extension + Set Defaults + Use trakt.tv as source for "Playcount" + trakt.tv Playcount Sync + Get watched movies + Save playcount to database/nfo + + Username + Password + Get watched episodes + Save + \ No newline at end of file diff --git a/Addons/multi.EmberExtras/Langs/multi.EmberExtras.German_(de_DE).xml b/Addons/multi.EmberExtras/Langs/multi.EmberExtras.German_(de_DE).xml index cb2021a..9b4fc49 100644 --- a/Addons/multi.EmberExtras/Langs/multi.EmberExtras.German_(de_DE).xml +++ b/Addons/multi.EmberExtras/Langs/multi.EmberExtras.German_(de_DE).xml @@ -1,26 +1,34 @@ - - Genre Editor - < All > - Enter,neue Sprache aktivieren - Neue Sprache - Dies löscht die Sprache von allen Genren. Bist du ganz sicher? - Entferne Sprache - Sprachen - Ändern - Bild - Genre Filter - - Audio - Video - Mediainfo Codec - Mapped Codec - Media Source Editor - Sources - Such String - Source Name - Map Media Source aufgrund File Extension - Datei Extension - Als Standard + Audio & Video Codec Mapping + Genre Editor + < All > + Neue Sprache eingeben + Neue Sprache + Dies löscht die Sprache von allen Genren. Bist du ganz sicher? + Entferne Sprache + Sprachen + Ändern + Bild + Genre Filter + + Audio + Video + Mediainfo Codec + Mapped Codec + Media Source Editor + Sources + Such String + Quellen Name + Map Media Source aufgrund File Extension + Datei Erweiterung + Als Standard + Nutze Trakt.tv als Quelle für "Gesehen" Status + Trakt.tv Playcount Sync + Gesehene Filme abrufen + Playcount in Datenbank/NFO speichern + + Benutzername + Passwort + Gesehene Episoden abrufen + Speichern - \ No newline at end of file diff --git a/Addons/multi.EmberExtras/Langs/multi.EmberExtras.Italian_(it_IT).xml b/Addons/multi.EmberExtras/Langs/multi.EmberExtras.Italian_(it_IT).xml new file mode 100644 index 0000000..b357712 --- /dev/null +++ b/Addons/multi.EmberExtras/Langs/multi.EmberExtras.Italian_(it_IT).xml @@ -0,0 +1,34 @@ + + Mappatura Codec Audio & Video + Editore di Generi + < All > + Inserisci una nuova lingua + Nuova Lingua + Questo rimuoverà la Ligua da tutti i generi. Sei sicuro? + Rimuovi Lingua + Lingue + Cambia + Immagine + Filtro Generi + + Audio + Video + Mediainfo Codec + Codec Mappati + Editor Sorgenti Media + Sorgenti + Cerca Stringa + Nome Sorgente + Mappa Sorgente Media attraverso l'estesione file + Estensione File + Ripristina Predefiniti + Utilizzare trakt.tv come fonte per "Playcount" + Trakt.TV Playcount Sync + Ottieni i film già visti + Salva plaucount nel database/nfo + + Username + Password + Ottieni gli episodi già visti + Salva + diff --git a/Addons/multi.EmberExtras/Langs/multi.EmberExtras.Norwegian_(no_NO).xml b/Addons/multi.EmberExtras/Langs/multi.EmberExtras.Norwegian_(no_NO).xml new file mode 100644 index 0000000..23067ce --- /dev/null +++ b/Addons/multi.EmberExtras/Langs/multi.EmberExtras.Norwegian_(no_NO).xml @@ -0,0 +1,34 @@ + + Lyd- og videokodekkobling + Sjanger-forandrer + < Alle > + Før inn det nye språket + Nytt språk + Dette vil fjerne det valgte språket fra alle sjangere. Er du sikker? + Fjern språk + Språk + Forandre + Bilde + Sjangerfilter + + Lyd + Video + Mediainfo Codec + Stilcodec + Mediakilde-forandrer + Kilder + Søkestring + Kildenavn + Finn mediakilde fra filtype + Filtype + Sett standarder + Bruk trakt.tv som kilde for "Spilt antall ganger" + trakt.tv Spilleantall-synkronisering. + Hente sette filmer. + Lagre spilleantall i databasen/nfo. + + Brukernavn + Passord + Hent episoder som er sett + Lagre + diff --git "a/Addons/multi.EmberExtras/Langs/multi.EmberExtras.Portugu\303\252s_(pt-BR).xml" "b/Addons/multi.EmberExtras/Langs/multi.EmberExtras.Portugu\303\252s_(pt-BR).xml" deleted file mode 100644 index a91dc2d..0000000 --- "a/Addons/multi.EmberExtras/Langs/multi.EmberExtras.Portugu\303\252s_(pt-BR).xml" +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/Addons/multi.EmberExtras/Langs/multi.EmberExtras.Spanish_(es_ES).xml b/Addons/multi.EmberExtras/Langs/multi.EmberExtras.Spanish_(es_ES).xml new file mode 100644 index 0000000..33db101 --- /dev/null +++ b/Addons/multi.EmberExtras/Langs/multi.EmberExtras.Spanish_(es_ES).xml @@ -0,0 +1,34 @@ + + Mapeo de Códec de Audio & Vídeo + Editor de Géneros + <Todos> + Digite el nuevo Idioma + Nuevo Idioma + Esto removerá el Idioma de todos los Géneros. ¿Está seguro(a)? + Remover Idioma + Idiomas + Cambiar + Imagen + Filtro de Géneros + + Audio + Vídeo + Códec de Mediainfo + Códec Mapeado + Editor de Fuentes de Medios + Fuentes + Texto de Búsqueda + Nombre de Fuente + Mapear Fuente de Medios vía Extensión de Archivo + Extensión de Archivo + Establecer Valores Predeterminados + Usa trakt.tv como fuente para "Playcount" + Sincronizar "Playcount" de trakt.tv + Obtener películas vistas + Graba "playcount" en la base de datos/nfo + + Nombre de usuario + Contraseña + Obtener episodios vistos + Grabar + diff --git a/Addons/multi.EmberExtras/My Project/AssemblyInfo.vb b/Addons/multi.EmberExtras/My Project/AssemblyInfo.vb index 99aa119..c458656 100644 --- a/Addons/multi.EmberExtras/My Project/AssemblyInfo.vb +++ b/Addons/multi.EmberExtras/My Project/AssemblyInfo.vb @@ -7,10 +7,10 @@ Imports System.Runtime.InteropServices ' associated with an assembly. ' Review the values of the assembly attributes - + - + @@ -27,5 +27,5 @@ Imports System.Runtime.InteropServices ' You can specify all the values or you can default the Build and Revision Numbers ' by using the '*' as shown below: ' - - \ No newline at end of file + + \ No newline at end of file diff --git a/Addons/multi.EmberExtras/My Project/Resources.Designer.vb b/Addons/multi.EmberExtras/My Project/Resources.Designer.vb index 4bcc494..99cc672 100644 --- a/Addons/multi.EmberExtras/My Project/Resources.Designer.vb +++ b/Addons/multi.EmberExtras/My Project/Resources.Designer.vb @@ -1,10 +1,10 @@ '------------------------------------------------------------------------------ ' -' This code was generated by a tool. -' Runtime Version:4.0.30319.239 +' Dieser Code wurde von einem Tool generiert. +' Laufzeitversion:4.0.30319.18033 ' -' Changes to this file may cause incorrect behavior and will be lost if -' the code is regenerated. +' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn +' der Code erneut generiert wird. ' '------------------------------------------------------------------------------ @@ -15,12 +15,12 @@ Imports System Namespace My.Resources - 'This class was auto-generated by the StronglyTypedResourceBuilder - 'class via a tool like ResGen or Visual Studio. - 'To add or remove a member, edit your .ResX file then rerun ResGen - 'with the /str option, or rebuild your VS project. + 'Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert + '-Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. + 'Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen + 'mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. ''' - ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. ''' - ''' Returns the cached ResourceManager instance used by this class. + ''' Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. ''' _ Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager @@ -47,8 +47,8 @@ Namespace My.Resources End Property ''' - ''' Overrides the current thread's CurrentUICulture property for all - ''' resource lookups using this strongly typed resource class. + ''' Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle + ''' Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. ''' _ Friend Property Culture() As Global.System.Globalization.CultureInfo @@ -60,6 +60,9 @@ Namespace My.Resources End Set End Property + ''' + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + ''' Friend ReadOnly Property GenresEditor() As System.Drawing.Bitmap Get Dim obj As Object = ResourceManager.GetObject("GenresEditor", resourceCulture) @@ -67,6 +70,9 @@ Namespace My.Resources End Get End Property + ''' + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + ''' Friend ReadOnly Property image() As System.Drawing.Bitmap Get Dim obj As Object = ResourceManager.GetObject("image", resourceCulture) @@ -74,6 +80,9 @@ Namespace My.Resources End Get End Property + ''' + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + ''' Friend ReadOnly Property MediaSourcesEditor() As System.Drawing.Bitmap Get Dim obj As Object = ResourceManager.GetObject("MediaSourcesEditor", resourceCulture) @@ -81,11 +90,24 @@ Namespace My.Resources End Get End Property + ''' + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + ''' Friend ReadOnly Property MetadataEditor() As System.Drawing.Bitmap Get Dim obj As Object = ResourceManager.GetObject("MetadataEditor", resourceCulture) Return CType(obj,System.Drawing.Bitmap) End Get End Property + + ''' + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + ''' + Friend ReadOnly Property trakt() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("trakt", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property End Module End Namespace diff --git a/Addons/multi.EmberExtras/My Project/Resources.resx b/Addons/multi.EmberExtras/My Project/Resources.resx index d46c51f..5cf700c 100644 --- a/Addons/multi.EmberExtras/My Project/Resources.resx +++ b/Addons/multi.EmberExtras/My Project/Resources.resx @@ -130,4 +130,7 @@ ..\Resources\dvd.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\trakt.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + \ No newline at end of file diff --git a/Addons/multi.EmberExtras/Resources/trakt.png b/Addons/multi.EmberExtras/Resources/trakt.png new file mode 100644 index 0000000..0982ef4 Binary files /dev/null and b/Addons/multi.EmberExtras/Resources/trakt.png differ diff --git a/Addons/multi.EmberExtras/frmTrakt.Designer.vb b/Addons/multi.EmberExtras/frmTrakt.Designer.vb new file mode 100644 index 0000000..7d6cbf0 --- /dev/null +++ b/Addons/multi.EmberExtras/frmTrakt.Designer.vb @@ -0,0 +1,235 @@ + _ +Partial Class frmTrakt + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Me.txtTraktUser = New System.Windows.Forms.TextBox() + Me.lblTraktUser = New System.Windows.Forms.Label() + Me.btGetMoviesTrakt = New System.Windows.Forms.Button() + Me.chkUseTrakt = New System.Windows.Forms.CheckBox() + Me.pnlTrakt = New System.Windows.Forms.Panel() + Me.btGetSeriesTrakt = New System.Windows.Forms.Button() + Me.btnSavetraktsettings = New System.Windows.Forms.Button() + Me.lblTraktPassword = New System.Windows.Forms.Label() + Me.txtTraktPassword = New System.Windows.Forms.TextBox() + Me.lblstate = New System.Windows.Forms.Label() + Me.prgtrakt = New System.Windows.Forms.ProgressBar() + Me.btSaveMoviesTrakt = New System.Windows.Forms.Button() + Me.dgvTraktWatched = New System.Windows.Forms.DataGridView() + Me.col1 = New System.Windows.Forms.DataGridViewTextBoxColumn() + Me.col2 = New System.Windows.Forms.DataGridViewTextBoxColumn() + Me.pnlTrakt.SuspendLayout() + CType(Me.dgvTraktWatched, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'txtTraktUser + ' + Me.txtTraktUser.Enabled = False + Me.txtTraktUser.Location = New System.Drawing.Point(110, 51) + Me.txtTraktUser.Name = "txtTraktUser" + Me.txtTraktUser.Size = New System.Drawing.Size(135, 20) + Me.txtTraktUser.TabIndex = 1 + ' + 'lblTraktUser + ' + Me.lblTraktUser.AutoSize = True + Me.lblTraktUser.Location = New System.Drawing.Point(19, 51) + Me.lblTraktUser.Name = "lblTraktUser" + Me.lblTraktUser.Size = New System.Drawing.Size(55, 13) + Me.lblTraktUser.TabIndex = 1 + Me.lblTraktUser.Text = "Username" + ' + 'btGetMoviesTrakt + ' + Me.btGetMoviesTrakt.Enabled = False + Me.btGetMoviesTrakt.Location = New System.Drawing.Point(22, 208) + Me.btGetMoviesTrakt.Name = "btGetMoviesTrakt" + Me.btGetMoviesTrakt.Size = New System.Drawing.Size(105, 66) + Me.btGetMoviesTrakt.TabIndex = 4 + Me.btGetMoviesTrakt.Text = "Get watched movies" + Me.btGetMoviesTrakt.UseVisualStyleBackColor = True + ' + 'chkUseTrakt + ' + Me.chkUseTrakt.AutoSize = True + Me.chkUseTrakt.Location = New System.Drawing.Point(22, 16) + Me.chkUseTrakt.Name = "chkUseTrakt" + Me.chkUseTrakt.Size = New System.Drawing.Size(85, 17) + Me.chkUseTrakt.TabIndex = 0 + Me.chkUseTrakt.Text = "Use Trakt.tv" + Me.chkUseTrakt.UseVisualStyleBackColor = True + ' + 'pnlTrakt + ' + Me.pnlTrakt.Controls.Add(Me.btGetSeriesTrakt) + Me.pnlTrakt.Controls.Add(Me.btnSavetraktsettings) + Me.pnlTrakt.Controls.Add(Me.lblTraktPassword) + Me.pnlTrakt.Controls.Add(Me.txtTraktPassword) + Me.pnlTrakt.Controls.Add(Me.lblstate) + Me.pnlTrakt.Controls.Add(Me.prgtrakt) + Me.pnlTrakt.Controls.Add(Me.btSaveMoviesTrakt) + Me.pnlTrakt.Controls.Add(Me.dgvTraktWatched) + Me.pnlTrakt.Controls.Add(Me.chkUseTrakt) + Me.pnlTrakt.Controls.Add(Me.btGetMoviesTrakt) + Me.pnlTrakt.Controls.Add(Me.lblTraktUser) + Me.pnlTrakt.Controls.Add(Me.txtTraktUser) + Me.pnlTrakt.Location = New System.Drawing.Point(0, 0) + Me.pnlTrakt.Name = "pnlTrakt" + Me.pnlTrakt.Size = New System.Drawing.Size(627, 367) + Me.pnlTrakt.TabIndex = 0 + ' + 'btGetSeriesTrakt + ' + Me.btGetSeriesTrakt.Enabled = False + Me.btGetSeriesTrakt.Location = New System.Drawing.Point(140, 208) + Me.btGetSeriesTrakt.Name = "btGetSeriesTrakt" + Me.btGetSeriesTrakt.Size = New System.Drawing.Size(105, 66) + Me.btGetSeriesTrakt.TabIndex = 5 + Me.btGetSeriesTrakt.Text = "Get watched episodes" + Me.btGetSeriesTrakt.UseVisualStyleBackColor = True + ' + 'btnSavetraktsettings + ' + Me.btnSavetraktsettings.Location = New System.Drawing.Point(110, 103) + Me.btnSavetraktsettings.Name = "btnSavetraktsettings" + Me.btnSavetraktsettings.Size = New System.Drawing.Size(75, 23) + Me.btnSavetraktsettings.TabIndex = 3 + Me.btnSavetraktsettings.Text = "Save " + Me.btnSavetraktsettings.UseVisualStyleBackColor = True + ' + 'lblTraktPassword + ' + Me.lblTraktPassword.AutoSize = True + Me.lblTraktPassword.Location = New System.Drawing.Point(19, 77) + Me.lblTraktPassword.Name = "lblTraktPassword" + Me.lblTraktPassword.Size = New System.Drawing.Size(53, 13) + Me.lblTraktPassword.TabIndex = 37 + Me.lblTraktPassword.Text = "Password" + ' + 'txtTraktPassword + ' + Me.txtTraktPassword.Enabled = False + Me.txtTraktPassword.Location = New System.Drawing.Point(110, 77) + Me.txtTraktPassword.Name = "txtTraktPassword" + Me.txtTraktPassword.Size = New System.Drawing.Size(135, 20) + Me.txtTraktPassword.TabIndex = 2 + ' + 'lblstate + ' + Me.lblstate.AutoSize = True + Me.lblstate.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblstate.ForeColor = System.Drawing.Color.SteelBlue + Me.lblstate.Location = New System.Drawing.Point(251, 309) + Me.lblstate.Name = "lblstate" + Me.lblstate.Size = New System.Drawing.Size(45, 15) + Me.lblstate.TabIndex = 35 + Me.lblstate.Text = "Done!" + Me.lblstate.Visible = False + ' + 'prgtrakt + ' + Me.prgtrakt.Location = New System.Drawing.Point(22, 330) + Me.prgtrakt.Name = "prgtrakt" + Me.prgtrakt.Size = New System.Drawing.Size(274, 23) + Me.prgtrakt.TabIndex = 34 + ' + 'btSaveMoviesTrakt + ' + Me.btSaveMoviesTrakt.Enabled = False + Me.btSaveMoviesTrakt.Location = New System.Drawing.Point(22, 280) + Me.btSaveMoviesTrakt.Name = "btSaveMoviesTrakt" + Me.btSaveMoviesTrakt.Size = New System.Drawing.Size(223, 44) + Me.btSaveMoviesTrakt.TabIndex = 6 + Me.btSaveMoviesTrakt.Text = "Save playcount to database/Nfo" + Me.btSaveMoviesTrakt.UseVisualStyleBackColor = True + ' + 'dgvTraktWatched + ' + Me.dgvTraktWatched.AllowUserToAddRows = False + Me.dgvTraktWatched.AllowUserToDeleteRows = False + Me.dgvTraktWatched.AllowUserToResizeColumns = False + Me.dgvTraktWatched.AllowUserToResizeRows = False + Me.dgvTraktWatched.BackgroundColor = System.Drawing.Color.White + Me.dgvTraktWatched.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.DisableResizing + Me.dgvTraktWatched.Columns.AddRange(New System.Windows.Forms.DataGridViewColumn() {Me.col1, Me.col2}) + Me.dgvTraktWatched.Location = New System.Drawing.Point(302, 16) + Me.dgvTraktWatched.MultiSelect = False + Me.dgvTraktWatched.Name = "dgvTraktWatched" + Me.dgvTraktWatched.RowHeadersVisible = False + Me.dgvTraktWatched.RowHeadersWidth = 175 + Me.dgvTraktWatched.ScrollBars = System.Windows.Forms.ScrollBars.Vertical + Me.dgvTraktWatched.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.CellSelect + Me.dgvTraktWatched.ShowCellErrors = False + Me.dgvTraktWatched.ShowCellToolTips = False + Me.dgvTraktWatched.ShowRowErrors = False + Me.dgvTraktWatched.Size = New System.Drawing.Size(314, 338) + Me.dgvTraktWatched.TabIndex = 32 + ' + 'col1 + ' + Me.col1.Frozen = True + Me.col1.HeaderText = "Title" + Me.col1.Name = "col1" + Me.col1.Width = 250 + ' + 'col2 + ' + Me.col2.Frozen = True + Me.col2.HeaderText = "Played" + Me.col2.Name = "col2" + Me.col2.Width = 64 + ' + 'frmTrakt + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(628, 366) + Me.Controls.Add(Me.pnlTrakt) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "frmTrakt" + Me.ShowInTaskbar = False + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "frmTrakt" + Me.pnlTrakt.ResumeLayout(False) + Me.pnlTrakt.PerformLayout() + CType(Me.dgvTraktWatched, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + + End Sub + Friend WithEvents txtTraktUser As System.Windows.Forms.TextBox + Friend WithEvents lblTraktUser As System.Windows.Forms.Label + Friend WithEvents btGetMoviesTrakt As System.Windows.Forms.Button + Friend WithEvents chkUseTrakt As System.Windows.Forms.CheckBox + Friend WithEvents pnlTrakt As System.Windows.Forms.Panel + Friend WithEvents dgvTraktWatched As System.Windows.Forms.DataGridView + Friend WithEvents btSaveMoviesTrakt As System.Windows.Forms.Button + Friend WithEvents prgtrakt As System.Windows.Forms.ProgressBar + Friend WithEvents lblstate As System.Windows.Forms.Label + Friend WithEvents col1 As System.Windows.Forms.DataGridViewTextBoxColumn + Friend WithEvents col2 As System.Windows.Forms.DataGridViewTextBoxColumn + Friend WithEvents txtTraktPassword As System.Windows.Forms.TextBox + Friend WithEvents lblTraktPassword As System.Windows.Forms.Label + Friend WithEvents btnSavetraktsettings As System.Windows.Forms.Button + Friend WithEvents btGetSeriesTrakt As System.Windows.Forms.Button +End Class diff --git a/Addons/multi.EmberExtras/frmTrakt.resx b/Addons/multi.EmberExtras/frmTrakt.resx new file mode 100644 index 0000000..af61ac9 --- /dev/null +++ b/Addons/multi.EmberExtras/frmTrakt.resx @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + True + + + True + + + True + + \ No newline at end of file diff --git a/Addons/multi.EmberExtras/frmTrakt.vb b/Addons/multi.EmberExtras/frmTrakt.vb new file mode 100644 index 0000000..df5137d --- /dev/null +++ b/Addons/multi.EmberExtras/frmTrakt.vb @@ -0,0 +1,481 @@ +Imports System.Windows.Forms +Imports System.Xml.Serialization +Imports System.IO +Imports EmberAPI + +Public Class frmTrakt + Public Event ModuleSettingsChanged() + Dim myWatchedMovies As New Dictionary(Of String, KeyValuePair(Of String, Integer)) + Dim myWatchedEpisodes As New Dictionary(Of String, KeyValuePair(Of String, List(Of SeasonClass))) + Dim bkWrk As New System.ComponentModel.BackgroundWorker() + + Sub New() + ' This call is required by the Windows Form Designer. + InitializeComponent() + SetUp() + End Sub + + Sub SetUp() + lblstate.Visible = False + prgtrakt.Value = 0 + prgtrakt.Maximum = myWatchedMovies.Count + prgtrakt.Minimum = 0 + prgtrakt.Step = 1 + chkUseTrakt.Text = Master.eLang.GetString(68, "Use trakt.tv as source for ""Playcount""") + btGetMoviesTrakt.Text = Master.eLang.GetString(70, "Get watched movies") + btSaveMoviesTrakt.Text = Master.eLang.GetString(71, "Save playcount to database/Nfo") + txtTraktUser.Text = Master.eSettings.TraktUser + lblTraktUser.Text = Master.eLang.GetString(73, "Username") + txtTraktPassword.Text = Master.eSettings.TraktPassword + lblTraktPassword.Text = Master.eLang.GetString(74, "Password") + btGetSeriesTrakt.Text = Master.eLang.GetString(75, "Get watched episodes") + btnSavetraktsettings.Text = Master.eLang.GetString(76, "Save") + txtTraktPassword.PasswordChar = "*"c + + If Not String.IsNullOrEmpty(Master.eSettings.UseTrakt.ToString) Then + chkUseTrakt.Checked = Master.eSettings.UseTrakt + End If + dgvTraktWatched.DataSource = Nothing + dgvTraktWatched.Rows.Clear() + + If Master.eSettings.UseTrakt = True Then + txtTraktUser.Enabled = True + txtTraktPassword.Enabled = True + If Not String.IsNullOrEmpty(Master.eSettings.TraktUser) AndAlso Not String.IsNullOrEmpty(Master.eSettings.TraktPassword) Then + btGetMoviesTrakt.Enabled = True + btGetSeriesTrakt.Enabled = True + Else + btGetMoviesTrakt.Enabled = False + btGetSeriesTrakt.Enabled = False + End If + Else + btGetMoviesTrakt.Enabled = False + btGetSeriesTrakt.Enabled = False + txtTraktUser.Enabled = False + End If + End Sub + 'Little Control over Form-Controls + Private Sub chkUseTrakt_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkUseTrakt.CheckedChanged + If chkUseTrakt.Checked = True Then + If Not String.IsNullOrEmpty(txtTraktUser.Text) AndAlso Not String.IsNullOrEmpty(txtTraktPassword.Text) Then + btGetMoviesTrakt.Enabled = True + btGetSeriesTrakt.Enabled = True + End If + txtTraktUser.Enabled = True + txtTraktPassword.Enabled = True + Else + btGetMoviesTrakt.Enabled = False + btGetSeriesTrakt.Enabled = False + txtTraktUser.Enabled = False + txtTraktPassword.Enabled = False + End If + RaiseEvent ModuleSettingsChanged() + End Sub + + Private Sub txtTraktUser_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtTraktUser.TextChanged + RaiseEvent ModuleSettingsChanged() + If Not String.IsNullOrEmpty(txtTraktUser.Text) AndAlso txtTraktUser.Enabled = True Then + btGetMoviesTrakt.Enabled = True + btGetSeriesTrakt.Enabled = True + Else + btGetMoviesTrakt.Enabled = False + btGetSeriesTrakt.Enabled = False + End If + End Sub + + Private Sub txtTraktPassword_TextChanged(sender As Object, e As EventArgs) Handles txtTraktPassword.TextChanged + RaiseEvent ModuleSettingsChanged() + If Not String.IsNullOrEmpty(txtTraktPassword.Text) AndAlso txtTraktPassword.Enabled = True Then + btGetMoviesTrakt.Enabled = True + btGetSeriesTrakt.Enabled = True + Else + btGetMoviesTrakt.Enabled = False + btGetSeriesTrakt.Enabled = False + End If + End Sub + + Private Sub btGetMoviesTrakt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btGetMoviesTrakt.Click + myWatchedEpisodes = Nothing + dgvTraktWatched.DataSource = Nothing + dgvTraktWatched.Rows.Clear() + ' myWatchedMovies.Clear() + + If Not String.IsNullOrEmpty(txtTraktUser.Text) AndAlso chkUseTrakt.Checked = True AndAlso Not String.IsNullOrEmpty(txtTraktPassword.Text) Then + myWatchedMovies = GetWatchedMoviesFromTrakt(txtTraktUser.Text, txtTraktPassword.Text) + End If + dgvTraktWatched.AutoGenerateColumns = True + If Not myWatchedMovies Is Nothing Then + btSaveMoviesTrakt.Enabled = True + 'we map to dgv manually + dgvTraktWatched.AutoGenerateColumns = False + 'fill rows + For Each Item In myWatchedMovies + dgvTraktWatched.Rows.Add(New Object() {Item.Key, Item.Value.Value}) + Next + Else + btSaveMoviesTrakt.Enabled = False + End If + End Sub + + Private Sub btGetSeriesTrakt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btGetSeriesTrakt.Click + myWatchedMovies = Nothing + dgvTraktWatched.DataSource = Nothing + dgvTraktWatched.Rows.Clear() + ' myWatchedMovies.Clear() + + If Not String.IsNullOrEmpty(txtTraktUser.Text) AndAlso chkUseTrakt.Checked = True AndAlso Not String.IsNullOrEmpty(txtTraktPassword.Text) Then + myWatchedEpisodes = GetWatchedEpisodesFromTrakt(txtTraktUser.Text, txtTraktPassword.Text) + End If + dgvTraktWatched.AutoGenerateColumns = True + If Not myWatchedEpisodes Is Nothing Then + btSaveMoviesTrakt.Enabled = True + 'we map to dgv manually + dgvTraktWatched.AutoGenerateColumns = False + 'fill rows + For Each Item In myWatchedEpisodes + 'x = Episodes watched für specific tv show, use a loop to sum up the episodes of tvshow + Dim x As Integer = 0 + For i = 0 To Item.Value.Value.Count - 1 + x = x + Item.Value.Value.Item(i).episodes.Count + Next + + dgvTraktWatched.Rows.Add(New Object() {Item.Key, x}) + Next + Else + btSaveMoviesTrakt.Enabled = False + End If + End Sub + + Private Sub btnSavetraktsettings_Click(sender As Object, e As EventArgs) Handles btnSavetraktsettings.Click + SaveChanges() + End Sub + + Public Sub SaveChanges() + Master.eSettings.TraktUser = txtTraktUser.Text + Master.eSettings.TraktPassword = txtTraktPassword.Text + Master.eSettings.UseTrakt = chkUseTrakt.Checked + If Not String.IsNullOrEmpty(Master.eSettings.TraktUser) AndAlso Master.eSettings.UseTrakt = True AndAlso Not String.IsNullOrEmpty(Master.eSettings.TraktPassword) Then + btGetMoviesTrakt.Enabled = True + btGetSeriesTrakt.Enabled = True + Else + btGetMoviesTrakt.Enabled = False + btGetSeriesTrakt.Enabled = False + End If + End Sub + + Private Sub btSaveMoviesTrakt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btSaveMoviesTrakt.Click + If Not String.IsNullOrEmpty(txtTraktUser.Text) AndAlso chkUseTrakt.Checked = True AndAlso Not String.IsNullOrEmpty(txtTraktPassword.Text) Then + 'Movies + If Not myWatchedMovies Is Nothing Then + prgtrakt.Value = 0 + prgtrakt.Maximum = myWatchedMovies.Count + prgtrakt.Minimum = 0 + prgtrakt.Step = 1 + btSaveMoviesTrakt.Enabled = False + Dim traktthread As Threading.Thread + traktthread = New Threading.Thread(AddressOf SaveMoviePlaycount) + traktthread.IsBackground = True + traktthread.Start() + 'Tv-Show + ElseIf Not myWatchedEpisodes Is Nothing Then + prgtrakt.Value = 0 + prgtrakt.Maximum = myWatchedEpisodes.Count + 'start not with empty progressbar(no problem for movies) because it takes long to update for first tv show and user might think it hangs -> set value 1 to show something is going on + If myWatchedEpisodes.Count > 1 Then + prgtrakt.Value = 1 + End If + prgtrakt.Minimum = 0 + prgtrakt.Step = 1 + btSaveMoviesTrakt.Enabled = False + Dim traktthread As Threading.Thread + traktthread = New Threading.Thread(AddressOf SaveEpisodePlaycount) + traktthread.IsBackground = True + traktthread.Start() + End If + + End If + End Sub + + + 'Save plays-information from trakt.tv to database/nfo - Movie Thread + Private Sub SaveMoviePlaycount() + Try + + Dim i As Integer = 0 + For Each watchedMovieData In myWatchedMovies + i = i + 1 + Master.DB.SaveMoviePlayCountInDatabase(watchedMovieData) + ' Invoke to update UI from thread... + prgtrakt.Invoke(New UpdateProgressBarDelegate(AddressOf UpdateProgressBar), i) + Threading.Thread.Sleep(10) + Next + + Catch ex As Exception + + End Try + + End Sub + + 'Save plays-information from trakt.tv to database/nfo - Tv Show Thread + Private Sub SaveEpisodePlaycount() + Try + + Dim i As Integer = 0 + For Each watchedEpisodeData In myWatchedEpisodes + i = i + 1 + + 'loop through every season of certain tvshow + For z = 0 To watchedEpisodeData.Value.Value.Count - 1 + 'now go to every episode of current season + For Each episode In watchedEpisodeData.Value.Value.Item(z).episodes + '..and save playcount of every episode to database + Master.DB.SaveEpisodePlayCountInDatabase(watchedEpisodeData.Value.Key, watchedEpisodeData.Value.Value.Item(z).season.ToString, episode.ToString) + Next + Next + ' Invoke to update UI from thread... + prgtrakt.Invoke(New UpdateProgressBarDelegate(AddressOf UpdateProgressBar), i) + Threading.Thread.Sleep(10) + Next + + Catch ex As Exception + + End Try + + End Sub + + + Private Delegate Sub UpdateProgressBarDelegate(ByVal i As Integer) + ' Do all the ui thread updates here + 'Use progressbar to show user progress of saving, since it can take some time + Private Sub UpdateProgressBar(ByVal i As Integer) + If i = 1 Then + lblstate.Visible = False + End If + + prgtrakt.Value = i + If Not myWatchedMovies Is Nothing Then + If i = myWatchedMovies.Count - 1 Then + lblstate.Text = "Done!" + lblstate.Visible = True + End If + ElseIf Not myWatchedEpisodes Is Nothing Then + If i = myWatchedEpisodes.Count - 1 Then + lblstate.Text = "Done!" + lblstate.Visible = True + End If + End If + + + End Sub + + ''' + ''' cocotus 2013/02 Trakt.tv syncing: Movies + ''' Connects with trakt.tv Website and gets Watched Movies from specific User and returns them in special Dictionary + ''' More Info here: http://trakt.tv/api-docs/user-library-movies-watched + ''' + ''' Username + ''' password + ''' 3 values in dictionary: IMDBID (ex: tt0114746), Title, Playcount/Plays + Public Shared Function GetWatchedMoviesFromTrakt(ByVal traktID As String, ByVal traktPW As String) As Dictionary(Of String, KeyValuePair(Of String, Integer)) + + Dim wc As New Net.WebClient + Try + 'Saving 3 values in Dictionary style + Dim dictMovieWatched As New Dictionary(Of String, KeyValuePair(Of String, Integer)) + + 'The REQUEST String (includes API-ID + UserID) + Dim URL As String = "http://api.trakt.tv/user/library/movies/watched.json/b59a24b6a3fb93fc2fb565a681bb8a1d/" & traktID + + Dim json As String = wc.DownloadString(URL) + If Not String.IsNullOrEmpty(json) Then + + 'Now we are using free 3rd party class/dll to make an easy parse of the json String + Dim client = New RestSharp.RestClient(URL) + 'added basic authentification, to get even protected user information + client.Authenticator = New RestSharp.HttpBasicAuthenticator(traktID, traktPW) + Dim request = New RestSharp.RestRequest(RestSharp.Method.[GET]) + Dim response = client.Execute(Of List(Of TraktWatchedMovieData))(request) + + If Not response Is Nothing Then + 'Now loop through to every entry + For Each Item As TraktWatchedMovieData In response.Data + 'Check if information is stored... + If Not Item.title Is Nothing AndAlso Item.title <> "" AndAlso Not Item.imdb_id Is Nothing AndAlso Item.imdb_id <> "" Then + If Not dictMovieWatched.ContainsKey(Item.title) Then + 'Now store imdbid, title and playcount information into dictionary (for now no other info needed...) + If Item.imdb_id.Length > 2 AndAlso Item.imdb_id.Substring(0, 2) = "tt" Then + 'IMDBID beginning with tt -> strip tt first and save only number! + dictMovieWatched.Add(Item.title, New KeyValuePair(Of String, Integer)(Item.imdb_id.Substring(2), CInt(Item.plays))) + Else + 'IMDBID is alright + dictMovieWatched.Add(Item.title, New KeyValuePair(Of String, Integer)(Item.imdb_id, CInt(Item.plays))) + End If + End If + End If + Next + End If + End If + wc.Dispose() + Return dictMovieWatched + + Catch ex As Exception + wc.Dispose() + Return Nothing + End Try + End Function + + ''' + ''' cocotus 2013/03 Trakt.tv syncing: TV Shows + ''' Connects with trakt.tv Website and gets Watched Episodes from specific User and returns them in a special Dictionary + ''' More Info here: http://trakt.tv/api-docs/user-library-shows-watched + ''' + ''' Username + ''' password + ''' 3 values in dictionary: TvShowTitle, TVDBID, Special Season Class (Season + Watched Episodes in list) + Public Shared Function GetWatchedEpisodesFromTrakt(ByVal traktID As String, ByVal traktPW As String) As Dictionary(Of String, KeyValuePair(Of String, List(Of SeasonClass))) + + Dim wc As New Net.WebClient + Try + 'Saving 3 values in Dictionary style + Dim dictMovieWatched As New Dictionary(Of String, KeyValuePair(Of String, List(Of SeasonClass))) + + 'The REQUEST String (includes API-ID + UserID) + Dim URL As String = "http://api.trakt.tv/user/library/shows/watched.json/b59a24b6a3fb93fc2fb565a681bb8a1d/" & traktID + + Dim json As String = wc.DownloadString(URL) + If Not String.IsNullOrEmpty(json) Then + + 'Now we are using free 3rd party class/dll to make an easy parse of the json String + Dim client = New RestSharp.RestClient(URL) + 'added basic authentification, to get even protected user information + client.Authenticator = New RestSharp.HttpBasicAuthenticator(traktID, traktPW) + Dim request = New RestSharp.RestRequest(RestSharp.Method.[GET]) + Dim response = client.Execute(Of List(Of TraktWatchedEpisodeData))(request) + + If Not response Is Nothing Then + 'Now loop through to every entry + For Each Item As TraktWatchedEpisodeData In response.Data + 'Check if information is stored... + If Not Item.title Is Nothing AndAlso Item.title <> "" AndAlso Not Item.tvdb_id Is Nothing AndAlso Item.tvdb_id <> "" Then + If Not dictMovieWatched.ContainsKey(Item.title) Then + 'Now store tvdbID, title and the season-episode-list in dictionary... + dictMovieWatched.Add(Item.title, New KeyValuePair(Of String, List(Of SeasonClass))(Item.tvdb_id, Item.seasons)) + End If + End If + Next + End If + End If + wc.Dispose() + Return dictMovieWatched + + Catch ex As Exception + wc.Dispose() + Return Nothing + End Try + End Function + + +End Class + +'New Class which holds/described an item of WatcheMovie on trakt.tv +'Todo Expand class move to seperate project and build wrapper around +Public Class TraktWatchedMovieData + Private m_title As String + Public Property title() As String + Get + Return m_title + End Get + Set(value As String) + m_title = value + End Set + End Property + + Private m_url As String + Public Property url() As String + Get + Return m_url + End Get + Set(value As String) + m_url = value + End Set + End Property + + Private m_imdb_id As String + Public Property imdb_id() As String + Get + Return m_imdb_id + End Get + Set(value As String) + m_imdb_id = value + End Set + End Property + + Private m_plays As String + Public Property plays() As String + Get + Return m_plays + End Get + Set(value As String) + m_plays = value + End Set + End Property + +End Class + +'New Class which holds/described an item of WatchedEpsiode on trakt.tv +'Todo Expand class move to seperate project and build wrapper around +Public Class TraktWatchedEpisodeData + Private m_title As String + Public Property title() As String + Get + Return m_title + End Get + Set(value As String) + m_title = value + End Set + End Property + + Private m_tvdb_id As String + Public Property tvdb_id() As String + Get + Return m_tvdb_id + End Get + Set(value As String) + m_tvdb_id = value + End Set + End Property + + Private m_seasons As List(Of SeasonClass) + Public Property seasons() As List(Of SeasonClass) + Get + Return m_seasons + End Get + Set(value As List(Of SeasonClass)) + m_seasons = value + End Set + End Property + +End Class +'Child-Class of Episode Class, to store watched episodes +Public Class SeasonClass + Private m_season As Integer + Public Property season() As Integer + Get + Return m_season + End Get + Set(value As Integer) + m_season = value + End Set + End Property + + Private m_episode As List(Of Integer) + Public Property episodes() As List(Of Integer) + Get + Return m_episode + End Get + Set(value As List(Of Integer)) + m_episode = value + End Set + End Property + +End Class diff --git a/Addons/multi.EmberExtras/genericGenresEditor.vb b/Addons/multi.EmberExtras/genericGenresEditor.vb index 5295aa6..a69677b 100644 --- a/Addons/multi.EmberExtras/genericGenresEditor.vb +++ b/Addons/multi.EmberExtras/genericGenresEditor.vb @@ -60,10 +60,10 @@ Public Class genericGenresEditor Public Function InjectSetup() As EmberAPI.Containers.SettingsPanel Implements EmberAPI.Interfaces.EmberExternalModule.InjectSetup Dim SPanel As New Containers.SettingsPanel Me.fGenres = New frmGenresEditor - SPanel.Name = Master.eLang.GetString(1, "Genres Editor") - SPanel.Text = Master.eLang.GetString(1, "Genres Editor") + SPanel.Name = Master.eLang.GetString(1, "Genres Editor", False) + SPanel.Text = Master.eLang.GetString(1, "Genres Editor", False) SPanel.Prefix = "GenresEditor_" - SPanel.Type = Master.eLang.GetString(822, "Miscellaneous") + SPanel.Type = Master.eLang.GetString(822, "Miscellaneous", True) SPanel.ImageIndex = -1 SPanel.Image = My.Resources.GenresEditor SPanel.Order = 100 diff --git a/Addons/multi.EmberExtras/genericMediaSources.vb b/Addons/multi.EmberExtras/genericMediaSources.vb index a62fa35..8fd70b1 100644 --- a/Addons/multi.EmberExtras/genericMediaSources.vb +++ b/Addons/multi.EmberExtras/genericMediaSources.vb @@ -61,10 +61,10 @@ Public Class genericMediaSources Public Function InjectSetup() As EmberAPI.Containers.SettingsPanel Implements EmberAPI.Interfaces.EmberExternalModule.InjectSetup Dim SPanel As New Containers.SettingsPanel Me.fMediaSources = New frmMediaSources - SPanel.Name = Master.eLang.GetString(61, "Media Sources Editor") - SPanel.Text = Master.eLang.GetString(61, "Media Sources Editor") + SPanel.Name = Master.eLang.GetString(61, "Media Sources Editor", False) + SPanel.Text = Master.eLang.GetString(61, "Media Sources Editor", False) SPanel.Prefix = "MediaSourcesEditor_" - SPanel.Type = Master.eLang.GetString(822, "Miscellaneous") + SPanel.Type = Master.eLang.GetString(822, "Miscellaneous", True) SPanel.ImageIndex = -1 SPanel.Image = My.Resources.MediaSourcesEditor SPanel.Order = 100 diff --git a/Addons/multi.EmberExtras/genericMetadataEditor.vb b/Addons/multi.EmberExtras/genericMetadataEditor.vb index 74cc11e..e3c8145 100644 --- a/Addons/multi.EmberExtras/genericMetadataEditor.vb +++ b/Addons/multi.EmberExtras/genericMetadataEditor.vb @@ -61,10 +61,10 @@ Public Class genericMetadataEditor Public Function InjectSetup() As EmberAPI.Containers.SettingsPanel Implements EmberAPI.Interfaces.EmberExternalModule.InjectSetup Dim SPanel As New Containers.SettingsPanel Me.fMetadata = New frmAVCodecEditor - SPanel.Name = Master.eLang.GetString(0, "Audio & Video Codec Mapping") - SPanel.Text = Master.eLang.GetString(0, "Audio & Video Codec Mapping") + SPanel.Name = Master.eLang.GetString(0, "Audio & Video Codec Mapping", False) + SPanel.Text = Master.eLang.GetString(0, "Audio & Video Codec Mapping", False) SPanel.Prefix = "AVCodecEditor_" - SPanel.Type = Master.eLang.GetString(822, "Miscellaneous") + SPanel.Type = Master.eLang.GetString(822, "Miscellaneous", True) SPanel.ImageIndex = -1 SPanel.Image = My.Resources.MetadataEditor SPanel.Order = 100 diff --git a/Addons/multi.EmberExtras/genericTrakt.vb b/Addons/multi.EmberExtras/genericTrakt.vb new file mode 100644 index 0000000..446ba4b --- /dev/null +++ b/Addons/multi.EmberExtras/genericTrakt.vb @@ -0,0 +1,93 @@ +Imports EmberAPI + +Public Class genericTrakt + Implements Interfaces.EmberExternalModule + +#Region "Fields" + + Private fTrakt As frmTrakt + Private _AssemblyName As String = String.Empty + +#End Region 'Fields + +#Region "Events" + + Public Event GenericEvent(ByVal mType As EmberAPI.Enums.ModuleEventType, ByRef _params As System.Collections.Generic.List(Of Object)) Implements EmberAPI.Interfaces.EmberExternalModule.GenericEvent + + Public Event ModuleSettingsChanged() Implements EmberAPI.Interfaces.EmberExternalModule.ModuleSettingsChanged + + Public Event ModuleSetupChanged(ByVal Name As String, ByVal State As Boolean, ByVal diffOrder As Integer) Implements EmberAPI.Interfaces.EmberExternalModule.ModuleSetupChanged + +#End Region 'Events + +#Region "Properties" + + Public Property Enabled() As Boolean Implements EmberAPI.Interfaces.EmberExternalModule.Enabled + Get + Return True + End Get + Set(ByVal value As Boolean) + End Set + End Property + + Public ReadOnly Property ModuleName() As String Implements EmberAPI.Interfaces.EmberExternalModule.ModuleName + Get + Return "Trakt Settings" + End Get + End Property + + Public ReadOnly Property ModuleType() As System.Collections.Generic.List(Of EmberAPI.Enums.ModuleEventType) Implements EmberAPI.Interfaces.EmberExternalModule.ModuleType + Get + Return New List(Of Enums.ModuleEventType)(New Enums.ModuleEventType() {Enums.ModuleEventType.Generic}) + End Get + End Property + + Public ReadOnly Property ModuleVersion() As String Implements EmberAPI.Interfaces.EmberExternalModule.ModuleVersion + Get + Return FileVersionInfo.GetVersionInfo(System.Reflection.Assembly.GetExecutingAssembly.Location).FileVersion.ToString + End Get + End Property + + +#End Region 'Properties + +#Region "Methods" + + Public Sub Init(ByVal sAssemblyName As String, ByVal sExecutable As String) Implements EmberAPI.Interfaces.EmberExternalModule.Init + _AssemblyName = sAssemblyName + Master.eLang.LoadLanguage(Master.eSettings.Language, sExecutable) + End Sub + + Public Function InjectSetup() As EmberAPI.Containers.SettingsPanel Implements EmberAPI.Interfaces.EmberExternalModule.InjectSetup + Dim SPanel As New Containers.SettingsPanel + Me.fTrakt = New frmTrakt + SPanel.Name = Master.eLang.GetString(871, "Trakt Settings", False) + SPanel.Text = Master.eLang.GetString(871, "Trakt Settings", False) + SPanel.Prefix = "TraktSettings_" + SPanel.Type = Master.eLang.GetString(822, "Miscellaneous", True) + SPanel.ImageIndex = -1 + SPanel.Image = My.Resources.trakt + SPanel.Order = 100 + SPanel.Panel = Me.fTrakt.pnlTrakt + AddHandler Me.fTrakt.ModuleSettingsChanged, AddressOf Handle_ModuleSettingsChanged + Return SPanel + End Function + + Private Sub Handle_ModuleSettingsChanged() + RaiseEvent ModuleSettingsChanged() + End Sub + + + Public Function RunGeneric(ByVal mType As EmberAPI.Enums.ModuleEventType, ByRef _params As System.Collections.Generic.List(Of Object), ByRef _refparam As Object) As EmberAPI.Interfaces.ModuleResult Implements EmberAPI.Interfaces.EmberExternalModule.RunGeneric + End Function + + Public Sub SaveSetup(ByVal DoDispose As Boolean) Implements EmberAPI.Interfaces.EmberExternalModule.SaveSetup + fTrakt.SaveChanges() + End Sub +#End Region 'Methods + +#Region "Nested Types" + +#End Region 'Nested Types + +End Class diff --git a/Addons/multi.EmberExtras/multi.EmberExtras.vbproj b/Addons/multi.EmberExtras/multi.EmberExtras.vbproj index 5e38cfa..c93619f 100644 --- a/Addons/multi.EmberExtras/multi.EmberExtras.vbproj +++ b/Addons/multi.EmberExtras/multi.EmberExtras.vbproj @@ -54,6 +54,10 @@ ;D:\Applications\Development\Microsoft Visual Studio 2010\Team Tools\Static Analysis Tools\FxCop\\Rules + + False + ..\..\packages\RestSharp.104.1\lib\net35\RestSharp.dll + @@ -81,6 +85,12 @@ Form + + frmTrakt.vb + + + Form + frmAVCodecEditor.vb @@ -96,6 +106,7 @@ + True @@ -126,6 +137,9 @@ frmGenresEditor.vb Designer + + frmTrakt.vb + VbMyResourcesResXFileCodeGenerator Resources.Designer.vb @@ -152,15 +166,28 @@ + + PreserveNewest + + + PreserveNewest + PreserveNewest PreserveNewest - + + PreserveNewest + + + PreserveNewest + + PreserveNewest + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Addons/scraper.EmberCore.TMDB/My Project/Settings.Designer.vb b/Addons/scraper.EmberCore.TMDB/My Project/Settings.Designer.vb new file mode 100644 index 0000000..f020222 --- /dev/null +++ b/Addons/scraper.EmberCore.TMDB/My Project/Settings.Designer.vb @@ -0,0 +1,73 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.239 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.EmberScraperModule.My.MySettings + Get + Return Global.EmberScraperModule.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/Addons/scraper.EmberCore.TMDB/My Project/Settings.settings b/Addons/scraper.EmberCore.TMDB/My Project/Settings.settings new file mode 100644 index 0000000..85b890b --- /dev/null +++ b/Addons/scraper.EmberCore.TMDB/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Addons/scraper.EmberCore.TMDB/Resources/Logo.png b/Addons/scraper.EmberCore.TMDB/Resources/Logo.png new file mode 100644 index 0000000..a89dae1 Binary files /dev/null and b/Addons/scraper.EmberCore.TMDB/Resources/Logo.png differ diff --git a/Addons/scraper.EmberCore.TMDB/Scraper/clsScrapeFANARTTV.vb b/Addons/scraper.EmberCore.TMDB/Scraper/clsScrapeFANARTTV.vb new file mode 100644 index 0000000..13c1748 --- /dev/null +++ b/Addons/scraper.EmberCore.TMDB/Scraper/clsScrapeFANARTTV.vb @@ -0,0 +1,173 @@ +' ################################################################################ +' # EMBER MEDIA MANAGER # +' ################################################################################ +' ################################################################################ +' # This file is part of Ember Media Manager. # +' # # +' # Ember Media Manager is free software: you can redistribute it and/or modify # +' # it under the terms of the GNU General Public License as published by # +' # the Free Software Foundation, either version 3 of the License, or # +' # (at your option) any later version. # +' # # +' # Ember Media Manager is distributed in the hope that it will be useful, # +' # but WITHOUT ANY WARRANTY; without even the implied warranty of # +' # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +' # GNU General Public License for more details. # +' # # +' # You should have received a copy of the GNU General Public License # +' # along with Ember Media Manager. If not, see . # +' ################################################################################ +' # HD Movie Logos -> logo.png (choose this first) +' # ClearLOGOs -> logo.png (use this as a backup if no HD Logo in the lanaguage specified) +' # ClearART -> clearart.png (use this as a backup if no HD ClearArt, in the language specified) +' # HDClearART -> clearart.png (choose this first) +' # cdART -> disc.png +' # Movie Backgrounds -> Fanart (this is the only fanart.tv artwork that might overlap with 'typical' artwork scraping from IMDB/TMDB) +' # Movie Banner -> Banner (not poster - Frodo supports both now, -poster.jpg/png and -banner.jpg/png or poster.jpg/png and banner.jpg/png) +' # Movie Thumbs -> landscape.png +' # Special note - the Logos and ClearArts are language-specific and should be tagged with the appropriate language. Will want to have a setting allowing users to specify a language so as not to get a bunch of foreign-language artwork. +' # 1) Logo.png - to be added at a later stage, today is not possible to save +' # 2) Clearart.png - to be added at a later stage, today is not possible to save +' # 3) Disc.png - to be added at a later stage, today is not possible to save +' # 4) Landscape.png - to be added at a later stage, today is not possible to save +' # language is in image properties + +Imports System.IO +Imports System.IO.Compression +Imports System.Text +Imports System.Text.RegularExpressions +Imports EmberAPI +Imports FanartTVAPI + +Namespace FANARTTVs + + Public Class Scraper + +#Region "Fields" + + Private _MySettings As EmberTMDBScraperModule.sMySettings + Private _FanartTV As FanartTV.V1.FanartTV + Friend WithEvents bwFANARTTV As New System.ComponentModel.BackgroundWorker + Private _APIInvalid As Boolean = False +#End Region 'Fields + +#Region "Events" + + Public Event PostersDownloaded(ByVal Posters As List(Of MediaContainers.Image)) + + Public Event ProgressUpdated(ByVal iPercent As Integer) + +#End Region 'Events + +#Region "Methods" + + Public Sub New(ByRef tMySettings As EmberTMDBScraperModule.sMySettings) + _MySettings = tMySettings + _FanartTV = New FanartTV.V1.FanartTV(_MySettings.FANARTTVApiKey) + Dim Result As FanartTV.V1.FanartTVMovie = _FanartTV.GetMovieInfo(New FanartTV.V1.FanartTVRequest("1", "JSON", "all", 1, 1)) + If IsNothing(Result) Then + If Not IsNothing(_FanartTV.Error) Then + Master.eLog.WriteToErrorLog(_FanartTV.Error, "", "Error") + _APIInvalid = True + End If + End If + End Sub + + Public Sub Cancel() + If Me.bwFANARTTV.IsBusy Then Me.bwFANARTTV.CancelAsync() + + While Me.bwFANARTTV.IsBusy + Application.DoEvents() + Threading.Thread.Sleep(50) + End While + End Sub + + Public Sub GetImagesAsync(ByVal sURL As String) + Try + If Not bwFANARTTV.IsBusy Then + bwFANARTTV.WorkerSupportsCancellation = True + bwFANARTTV.WorkerReportsProgress = True + bwFANARTTV.RunWorkerAsync(New Arguments With {.Parameter = sURL}) + End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + Public Function GetFANARTTVImages(ByVal imdbID As String) As List(Of MediaContainers.Image) + Dim alPoster As New List(Of MediaContainers.Image) + + If _APIInvalid Then + Return Nothing + End If + Try + Dim Result As FanartTV.V1.FanartTVMovie = _FanartTV.GetMovieInfo(New FanartTV.V1.FanartTVRequest(imdbID, "JSON", "all", 1, 2)) + If bwFANARTTV.CancellationPending Then Return Nothing + If IsNothing(Result) Then Return alPoster + If IsNothing(Result.movieinfo.moviebackground) Then Return alPoster + For Each image In Result.movieinfo.moviebackground + alPoster.Add(New MediaContainers.Image With {.Description = "original", .URL = image.url}) + alPoster.Add(New MediaContainers.Image With {.Description = "thumb", .URL = image.url & "/preview"}) + Next + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + + Return alPoster + End Function + + Private Sub bwFANARTTVA_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles bwFANARTTV.DoWork + Dim Args As Arguments = DirectCast(e.Argument, Arguments) + Try + e.Result = GetFANARTTVImages(Args.Parameter) + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + e.Result = Nothing + End Try + End Sub + + Private Sub bwFANARTTV_ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles bwFANARTTV.ProgressChanged + If Not bwFANARTTV.CancellationPending Then + RaiseEvent ProgressUpdated(e.ProgressPercentage) + End If + End Sub + + Private Sub bwFANARTTV_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles bwFANARTTV.RunWorkerCompleted + If Not IsNothing(e.Result) Then + RaiseEvent PostersDownloaded(DirectCast(e.Result, List(Of MediaContainers.Image))) + End If + End Sub + + +#End Region 'Methods + +#Region "Nested Types" + + Private Structure Arguments + +#Region "Fields" + + Dim Parameter As String + Dim sType As String + +#End Region 'Fields + + End Structure + + Private Structure Results + +#Region "Fields" + + Dim Result As Object + Dim ResultList As List(Of MediaContainers.Image) + +#End Region 'Fields + + End Structure + +#End Region 'Nested Types + + End Class + +End Namespace + diff --git a/Addons/scraper.EmberCore.TMDB/Scraper/clsScrapeIMDB.vb b/Addons/scraper.EmberCore.TMDB/Scraper/clsScrapeIMDB.vb new file mode 100644 index 0000000..ec6d1be --- /dev/null +++ b/Addons/scraper.EmberCore.TMDB/Scraper/clsScrapeIMDB.vb @@ -0,0 +1,174 @@ +' ################################################################################ +' # EMBER MEDIA MANAGER # +' ################################################################################ +' ################################################################################ +' # This file is part of Ember Media Manager. # +' # # +' # Ember Media Manager is free software: you can redistribute it and/or modify # +' # it under the terms of the GNU General Public License as published by # +' # the Free Software Foundation, either version 3 of the License, or # +' # (at your option) any later version. # +' # # +' # Ember Media Manager is distributed in the hope that it will be useful, # +' # but WITHOUT ANY WARRANTY; without even the implied warranty of # +' # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +' # GNU General Public License for more details. # +' # # +' # You should have received a copy of the GNU General Public License # +' # along with Ember Media Manager. If not, see . # +' ################################################################################ + +Imports System.IO +Imports System.Diagnostics +Imports System.IO.Compression +Imports System.Text +Imports System.Text.RegularExpressions +Imports EmberAPI + +Namespace IMDBimg + + Public Class Scraper + +#Region "Fields" + + + + Friend WithEvents bwIMDBimg As New System.ComponentModel.BackgroundWorker + +#End Region 'Fields + +#Region "Events" + + Public Event PostersDownloaded(ByVal Posters As List(Of MediaContainers.Image)) + + Public Event ProgressUpdated(ByVal iPercent As Integer) + +#End Region 'Events + +#Region "Methods" + + Public Sub Cancel() + If Me.bwIMDBimg.IsBusy Then Me.bwIMDBimg.CancelAsync() + + While Me.bwIMDBimg.IsBusy + Application.DoEvents() + Threading.Thread.Sleep(50) + End While + End Sub + + Public Sub GetImagesAsync(ByVal sURL As String) + Try + If Not bwIMDBimg.IsBusy Then + bwIMDBimg.WorkerSupportsCancellation = True + bwIMDBimg.WorkerReportsProgress = True + bwIMDBimg.RunWorkerAsync(New Arguments With {.Parameter = sURL}) + End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + Public Function GetIMDBPosters(ByVal imdbID As String) As List(Of MediaContainers.Image) + Dim alPoster As New List(Of MediaContainers.Image) + + Try + If bwIMDBimg.CancellationPending Then Return Nothing + Dim sHTTP As New HTTP + Dim HTML As String = sHTTP.DownloadData(String.Concat("http://www.imdb.com/title/tt", imdbID, "")) + sHTTP = Nothing + + If bwIMDBimg.WorkerReportsProgress Then + bwIMDBimg.ReportProgress(1) + End If + + + ' check existence of a line like this + ' 0 Then + debug.print("GetIMDBPoster 1 - {0}", mcIMDB(0).Value) + 'Dim sUrl1 As String = sHTTP.DownloadData(mcIMDB(0).Value) + mcIMDB = Regex.Matches(HTML, "http://ia.media-imdb.com/images/.{3,80}?.jpg") + If mcIMDB.Count > 0 Then + 'just use the first one if more are found + Debug.Print("GetIMDBPoster 2 - {0}", mcIMDB(0).Value) + alPoster.Add(New MediaContainers.Image With {.Description = "cover", .URL = mcIMDB(0).Value}) + End If + + If bwIMDBimg.WorkerReportsProgress Then + bwIMDBimg.ReportProgress(2) + End If + + Dim aSP As String() = Regex.Split(mcIMDB(0).Value, "._V\d+?_SY\d+?_CR\d+?,\d+?,\d+?,\d+?_") + Dim sUrl1 = aSP(0) + aSP(1) + Debug.Print("GetIMDBPoster 3 - {0}", sUrl1) + alPoster.Add(New MediaContainers.Image With {.Description = "poster", .URL = sUrl1}) + End If + + If bwIMDBimg.WorkerReportsProgress Then + bwIMDBimg.ReportProgress(3) + End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + + Return alPoster + End Function + + Private Sub bwIMDBimg_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles bwIMDBimg.DoWork + Dim Args As Arguments = DirectCast(e.Argument, Arguments) + Try + e.Result = GetIMDBPosters(Args.Parameter) + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + e.Result = Nothing + End Try + End Sub + + Private Sub bwIMDBimg_ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles bwIMDBimg.ProgressChanged + If Not bwIMDBimg.CancellationPending Then + RaiseEvent ProgressUpdated(e.ProgressPercentage) + End If + End Sub + + Private Sub bwIMDBimg_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles bwIMDBimg.RunWorkerCompleted + If Not IsNothing(e.Result) Then + RaiseEvent PostersDownloaded(DirectCast(e.Result, List(Of MediaContainers.Image))) + End If + End Sub + + +#End Region 'Methods + +#Region "Nested Types" + + Private Structure Arguments + +#Region "Fields" + + Dim Parameter As String + Dim sType As String + +#End Region 'Fields + + End Structure + + Private Structure Results + +#Region "Fields" + + Dim Result As Object + Dim ResultList As List(Of MediaContainers.Image) + +#End Region 'Fields + + End Structure + +#End Region 'Nested Types + + End Class + +End Namespace + diff --git a/Addons/scraper.EmberCore.TMDB/Scraper/clsScrapeIMPA.vb b/Addons/scraper.EmberCore.TMDB/Scraper/clsScrapeIMPA.vb new file mode 100644 index 0000000..cfe43a1 --- /dev/null +++ b/Addons/scraper.EmberCore.TMDB/Scraper/clsScrapeIMPA.vb @@ -0,0 +1,189 @@ +' ################################################################################ +' # EMBER MEDIA MANAGER # +' ################################################################################ +' ################################################################################ +' # This file is part of Ember Media Manager. # +' # # +' # Ember Media Manager is free software: you can redistribute it and/or modify # +' # it under the terms of the GNU General Public License as published by # +' # the Free Software Foundation, either version 3 of the License, or # +' # (at your option) any later version. # +' # # +' # Ember Media Manager is distributed in the hope that it will be useful, # +' # but WITHOUT ANY WARRANTY; without even the implied warranty of # +' # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +' # GNU General Public License for more details. # +' # # +' # You should have received a copy of the GNU General Public License # +' # along with Ember Media Manager. If not, see . # +' ################################################################################ + +Imports System.IO +Imports System.IO.Compression +Imports System.Text +Imports System.Text.RegularExpressions +Imports EmberAPI + +Namespace IMPA + + Public Class Scraper + + #Region "Fields" + + + + Friend WithEvents bwIMPA As New System.ComponentModel.BackgroundWorker + + #End Region 'Fields + + #Region "Events" + + Public Event PostersDownloaded(ByVal Posters As List(Of MediaContainers.Image)) + + Public Event ProgressUpdated(ByVal iPercent As Integer) + + #End Region 'Events + + #Region "Methods" + + Public Sub Cancel() + If Me.bwIMPA.IsBusy Then Me.bwIMPA.CancelAsync() + + While Me.bwIMPA.IsBusy + Application.DoEvents() + Threading.Thread.Sleep(50) + End While + End Sub + + Public Sub GetImagesAsync(ByVal sURL As String) + Try + If Not bwIMPA.IsBusy Then + bwIMPA.WorkerSupportsCancellation = True + bwIMPA.WorkerReportsProgress = True + bwIMPA.RunWorkerAsync(New Arguments With {.Parameter = sURL}) + End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + Public Function GetIMPAPosters(ByVal imdbID As String) As List(Of MediaContainers.Image) + Dim alPoster As New List(Of MediaContainers.Image) + + Try + If bwIMPA.CancellationPending Then Return Nothing + Dim sURL As String = GetLink(imdbID) + If bwIMPA.WorkerReportsProgress Then + bwIMPA.ReportProgress(1) + End If + + If Not String.IsNullOrEmpty(sURL) Then + + Dim sHTTP As New HTTP + Dim HTML As String = sHTTP.DownloadData(sURL) + sHTTP = Nothing + + If bwIMPA.CancellationPending Then Return Nothing + + If bwIMPA.WorkerReportsProgress Then + bwIMPA.ReportProgress(2) + End If + + Dim mcPoster As MatchCollection = Regex.Matches(HTML, "(thumbs/imp_([^>]*ver[^>]*.jpg))|(thumbs/imp_([^>]*.jpg))") + + Dim PosterURL As String + + For Each mPoster As Match In mcPoster + If bwIMPA.CancellationPending Then Return Nothing + PosterURL = Strings.Replace(String.Format("{0}/{1}", sURL.Substring(0, sURL.LastIndexOf("/")), mPoster.Value.ToString()).Replace("thumbs", "posters"), "imp_", String.Empty) + + alPoster.Add(New MediaContainers.Image With {.Description = "poster", .URL = PosterURL}) + + PosterURL = PosterURL.Insert(PosterURL.LastIndexOf("."), "_xlg") + alPoster.Add(New MediaContainers.Image With {.Description = "original", .URL = PosterURL}) + Next + End If + If bwIMPA.WorkerReportsProgress Then + bwIMPA.ReportProgress(3) + End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + + Return alPoster + End Function + + Private Sub bwIMPA_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles bwIMPA.DoWork + Dim Args As Arguments = DirectCast(e.Argument, Arguments) + Try + e.Result = GetIMPAPosters(Args.Parameter) + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + e.Result = Nothing + End Try + End Sub + + Private Sub bwIMPA_ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles bwIMPA.ProgressChanged + If Not bwIMPA.CancellationPending Then + RaiseEvent ProgressUpdated(e.ProgressPercentage) + End If + End Sub + + Private Sub bwIMPA_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles bwIMPA.RunWorkerCompleted + If Not IsNothing(e.Result) Then + RaiseEvent PostersDownloaded(DirectCast(e.Result, List(Of MediaContainers.Image))) + End If + End Sub + + Private Function GetLink(ByVal IMDBID As String) As String + Try + + Dim sHTTP As New HTTP + Dim HTML As String = sHTTP.DownloadData(String.Concat("http://www.imdb.com/title/tt", IMDBID, "/posters")) + sHTTP = Nothing + + Dim mcIMPA As MatchCollection = Regex.Matches(HTML, "http://([^""]*)impawards.com/([^""]*)") + If mcIMPA.Count > 0 Then + 'just use the first one if more are found + Return mcIMPA(0).Value.ToString + Else + Return String.Empty + End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + Return String.Empty + End Try + End Function + + #End Region 'Methods + + #Region "Nested Types" + + Private Structure Arguments + + #Region "Fields" + + Dim Parameter As String + Dim sType As String + + #End Region 'Fields + + End Structure + + Private Structure Results + + #Region "Fields" + + Dim Result As Object + Dim ResultList As List(Of MediaContainers.Image) + + #End Region 'Fields + + End Structure + + #End Region 'Nested Types + + End Class + +End Namespace + diff --git a/Addons/scraper.EmberCore.TMDB/Scraper/clsScrapeImages.vb b/Addons/scraper.EmberCore.TMDB/Scraper/clsScrapeImages.vb new file mode 100644 index 0000000..d335b62 --- /dev/null +++ b/Addons/scraper.EmberCore.TMDB/Scraper/clsScrapeImages.vb @@ -0,0 +1,1209 @@ +' ################################################################################ +' # EMBER MEDIA MANAGER # +' ################################################################################ +' ################################################################################ +' # This file is part of Ember Media Manager. # +' # # +' # Ember Media Manager is free software: you can redistribute it and/or modify # +' # it under the terms of the GNU General Public License as published by # +' # the Free Software Foundation, either version 3 of the License, or # +' # (at your option) any later version. # +' # # +' # Ember Media Manager is distributed in the hope that it will be useful, # +' # but WITHOUT ANY WARRANTY; without even the implied warranty of # +' # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +' # GNU General Public License for more details. # +' # # +' # You should have received a copy of the GNU General Public License # +' # along with Ember Media Manager. If not, see . # +' ################################################################################ + +Imports System.Drawing.Imaging +Imports System.IO +Imports System.Text.RegularExpressions +Imports EmberAPI +Imports RestSharp +Imports WatTmdb + + +Public Class ScrapeImages + +#Region "Fields" + + Private _MySettings As EmberTMDBScraperModule.sMySettings + Private _TMDBConf As V3.TmdbConfiguration + Private _TMDBConfE As V3.TmdbConfiguration + Private _TMDBApi As V3.Tmdb + Private _TMDBApiE As V3.Tmdb + Private TMDB As TMDB.Scraper + Private IMPA As New IMPA.Scraper + Private MPDB As New MPDB.Scraper + Private IMDB As New IMDBimg.Scraper + Private FANARTTVs As FANARTTVs.Scraper + +#End Region 'Fields + +#Region "Methods" + + Public Sub New(ByRef tTMDBConf As V3.TmdbConfiguration, ByRef tTMDBConfE As V3.TmdbConfiguration, ByRef tTMDBApi As V3.Tmdb, ByRef tTMDBApiE As V3.Tmdb, ByRef tMySettings As EmberTMDBScraperModule.sMySettings) + + ' Add any initialization after the InitializeComponent() call. + _MySettings = tMySettings + _TMDBApi = tTMDBApi + _TMDBConf = tTMDBConf + _TMDBApiE = tTMDBApiE + _TMDBConfE = tTMDBConfE + TMDB = New TMDB.Scraper(_TMDBConf, _TMDBConfE, _TMDBApi, _TMDBApiE, _MySettings) + FANARTTVs = New FANARTTVs.Scraper(_MySettings) + End Sub + + Public Function GetPreferredImage(ByRef Image As Images, ByVal IMDBID As String, ByVal TMDBID As String, ByVal iType As Enums.ImageType, ByRef imgResult As Containers.ImgResult, ByVal sPath As String, ByVal doETs As Boolean, Optional ByVal doAsk As Boolean = False) As Boolean + '// + ' Try to get the best match between what the user selected in settings and the actual posters downloaded + '\\ + + Dim hasImages As Boolean = False + Dim tmpListTMDB As New List(Of MediaContainers.Image) + Dim tmpListIMPA As New List(Of MediaContainers.Image) + Dim tmpListIMDB As New List(Of MediaContainers.Image) + Dim tmpListMPDB As New List(Of MediaContainers.Image) + Dim tmpIMDBX As Images = Nothing + Dim tmpIMDBL As Images = Nothing + Dim tmpIMDBM As Images = Nothing + Dim tmpIMDBS As Images = Nothing + Dim tmpIMDBW As Images = Nothing + Dim tmpTMDBX As Images = Nothing + Dim tmpTMDBL As Images = Nothing + Dim tmpTMDBM As Images = Nothing + Dim tmpTMDBS As Images = Nothing + Dim tmpTMDBW As Images = Nothing + Dim tmpIMPAX As Images = Nothing + Dim tmpIMPAL As Images = Nothing + Dim tmpIMPAM As Images = Nothing + Dim tmpIMPAS As Images = Nothing + Dim tmpIMPAW As Images = Nothing + Dim tmpMPDBX As Images = Nothing + Dim tmpMPDBL As Images = Nothing + Dim tmpMPDBM As Images = Nothing + Dim tmpMPDBS As Images = Nothing + Dim tmpMPDBW As Images = Nothing + + Dim CachePath As String = String.Concat(Master.TempPath, Path.DirectorySeparatorChar, IMDBID, Path.DirectorySeparatorChar, If(iType = Enums.ImageType.Posters, "posters", "fanart")) + + Try + + If iType = Enums.ImageType.Posters Then 'posters + + If Master.eSettings.UseImgCacheUpdaters Then + Dim lFi As New List(Of FileInfo) + + If Not Directory.Exists(CachePath) Then + Directory.CreateDirectory(CachePath) + Else + Dim di As New DirectoryInfo(CachePath) + + Try + lFi.AddRange(di.GetFiles("*.jpg")) + Catch + End Try + End If + + If lFi.Count > 0 Then + Dim tImage As MediaContainers.Image + For Each sFile As FileInfo In lFi + tImage = New MediaContainers.Image + tImage.WebImage.FromFile(sFile.FullName) + Select Case True + Case sFile.Name.Contains("(original)") + tImage.Description = "original" + Case sFile.Name.Contains("(mid)") + tImage.Description = "mid" + Case sFile.Name.Contains("(cover)") + tImage.Description = "cover" + Case sFile.Name.Contains("(thumb)") + tImage.Description = "thumb" + Case sFile.Name.Contains("(poster)") + tImage.Description = "poster" + End Select + tImage.URL = Regex.Match(sFile.Name, "\(url=(.*?)\)").Groups(1).ToString + If Not Master.eSettings.NoSaveImagesToNfo Then imgResult.Posters.Add(tImage.URL) + tmpListTMDB.Add(tImage) + Image.Clear() + Next + Else + tmpListTMDB.AddRange(TMDB.GetTMDBImages(TMDBID, "poster")) + + If _MySettings.UseIMPA Then + tmpListTMDB.AddRange(IMPA.GetIMPAPosters(IMDBID)) + End If + + If _MySettings.UseMPDB Then + tmpListMPDB.AddRange(MPDB.GetMPDBPosters(IMDBID)) + End If + + If _MySettings.UseIMDB Then + tmpListTMDB.AddRange(IMDB.GetIMDBPosters(IMDBID)) + End If + + For Each tmdbThumb As MediaContainers.Image In tmpListTMDB + tmdbThumb.WebImage.FromWeb(tmdbThumb.URL) + If Not IsNothing(tmdbThumb.WebImage.Image) Then + If Not Master.eSettings.NoSaveImagesToNfo Then imgResult.Posters.Add(tmdbThumb.URL) + Image = tmdbThumb.WebImage + Image.Save(Path.Combine(CachePath, String.Concat("poster_(", tmdbThumb.Description, ")_(url=", StringUtils.CleanURL(tmdbThumb.URL), ").jpg")), , , False) + End If + Image.Clear() + Next + End If + + If tmpListTMDB.Count > 0 Then + hasImages = True + + 'remove all entries without images + For i As Integer = tmpListTMDB.Count - 1 To 0 Step -1 + If IsNothing(tmpListTMDB(i).WebImage.Image) Then + tmpListTMDB.RemoveAt(i) + End If + Next + + For Each iMovie As MediaContainers.Image In tmpListTMDB + If Images.GetPosterDims(iMovie.WebImage.Image) = Master.eSettings.PreferredPosterSize Then + Image = iMovie.WebImage + GoTo foundit + End If + Next + + If Not doAsk Then + Image = tmpListTMDB.OrderBy(Function(i) i.WebImage.Image.Height + i.WebImage.Image.Height).FirstOrDefault.WebImage + End If + End If + Else + 'download all TMBD images + tmpListTMDB = TMDB.GetTMDBImages(TMDBID, "poster") + + 'check each one for it's size to see if it matched the preferred size + If tmpListTMDB.Count > 0 Then + hasImages = True + + If Not Master.eSettings.NoSaveImagesToNfo Then + For Each tmdbThumb As MediaContainers.Image In tmpListTMDB + imgResult.Posters.Add(tmdbThumb.URL) + Next + End If + + For Each iMovie As MediaContainers.Image In tmpListTMDB + Select Case Master.eSettings.PreferredPosterSize + Case Enums.PosterSize.Xlrg + If iMovie.Description.ToLower = "original" Then + Image.FromWeb(iMovie.URL) + If Not IsNothing(Image.Image) Then GoTo foundIT + End If + Case Enums.PosterSize.Lrg + If iMovie.Description.ToLower = "mid" Then + Image.FromWeb(iMovie.URL) + If Not IsNothing(Image.Image) Then GoTo foundIT + End If + Case Enums.PosterSize.Mid + If iMovie.Description.ToLower = "cover" Then + Image.FromWeb(iMovie.URL) + If Not IsNothing(Image.Image) Then GoTo foundIT + End If + Case Enums.PosterSize.Small + If iMovie.Description.ToLower = "thumb" Then + Image.FromWeb(iMovie.URL) + If Not IsNothing(Image.Image) Then GoTo foundIT + End If + 'no "wide" for TMDB + End Select + Image.Clear() + Next + End If + + If _MySettings.UseIMDB Then + If IsNothing(Image.Image) Then + 'no poster of the proper size from TMDB found... try IMPA + + tmpListIMDB = IMDB.GetIMDBPosters(IMDBID) + + If tmpListIMDB.Count > 0 Then + hasImages = True + For Each iImage As MediaContainers.Image In tmpListIMDB + Image.FromWeb(iImage.URL) + If Not IsNothing(Image.Image) Then + If Not Master.eSettings.NoSaveImagesToNfo Then imgResult.Posters.Add(iImage.URL) + Dim tmpSize As Enums.PosterSize = Images.GetPosterDims(Image.Image) + If Not tmpSize = Master.eSettings.PreferredPosterSize Then + 'cache the first result from each type in case the preferred size is not available + Select Case tmpSize + Case Enums.PosterSize.Xlrg + If IsNothing(tmpIMDBX) Then + tmpIMDBX = Image + End If + Case Enums.PosterSize.Lrg + If IsNothing(tmpIMDBL) Then + tmpIMDBL = Image + End If + Case Enums.PosterSize.Mid + If IsNothing(tmpIMDBM) Then + tmpIMDBM = Image + End If + Case Enums.PosterSize.Small + If IsNothing(tmpIMDBS) Then + tmpIMDBS = Image + End If + Case Enums.PosterSize.Wide + If IsNothing(tmpIMDBW) Then + tmpIMDBW = Image + End If + End Select + Else + 'image found + GoTo foundIT + End If + End If + Image.Clear() + Next + End If + End If + End If + + If _MySettings.UseIMPA Then + If IsNothing(Image.Image) Then + 'no poster of the proper size from IMDB found... try IMPA + + tmpListIMPA = IMPA.GetIMPAPosters(IMDBID) + + If tmpListIMPA.Count > 0 Then + hasImages = True + For Each iImage As MediaContainers.Image In tmpListIMPA + Image.FromWeb(iImage.URL) + If Not IsNothing(Image.Image) Then + If Not Master.eSettings.NoSaveImagesToNfo Then imgResult.Posters.Add(iImage.URL) + Dim tmpSize As Enums.PosterSize = Images.GetPosterDims(Image.Image) + If Not tmpSize = Master.eSettings.PreferredPosterSize Then + 'cache the first result from each type in case the preferred size is not available + Select Case tmpSize + Case Enums.PosterSize.Xlrg + If IsNothing(tmpIMPAX) Then + tmpIMPAX = Image + End If + Case Enums.PosterSize.Lrg + If IsNothing(tmpIMPAL) Then + tmpIMPAL = Image + End If + Case Enums.PosterSize.Mid + If IsNothing(tmpIMPAM) Then + tmpIMPAM = Image + End If + Case Enums.PosterSize.Small + If IsNothing(tmpIMPAS) Then + tmpIMPAS = Image + End If + Case Enums.PosterSize.Wide + If IsNothing(tmpIMPAW) Then + tmpIMPAW = Image + End If + End Select + Else + 'image found + GoTo foundIT + End If + End If + Image.Clear() + Next + End If + End If + End If + + If _MySettings.UseMPDB Then + If IsNothing(Image.Image) Then + 'no poster of the proper size from TMDB or IMPA found... try MPDB + + tmpListMPDB = MPDB.GetMPDBPosters(IMDBID) + + If tmpListMPDB.Count > 0 Then + hasImages = True + For Each iImage As MediaContainers.Image In tmpListMPDB + Image.FromWeb(iImage.URL) + If Not IsNothing(Image.Image) Then + If Not Master.eSettings.NoSaveImagesToNfo Then imgResult.Posters.Add(iImage.URL) + Dim tmpSize As Enums.PosterSize = Images.GetPosterDims(Image.Image) + If Not tmpSize = Master.eSettings.PreferredPosterSize Then + 'cache the first result from each type in case the preferred size is not available + Select Case tmpSize + Case Enums.PosterSize.Xlrg + If IsNothing(tmpMPDBX) Then + tmpMPDBX = Image + End If + Case Enums.PosterSize.Lrg + If IsNothing(tmpMPDBL) Then + tmpMPDBL = Image + End If + Case Enums.PosterSize.Mid + If IsNothing(tmpMPDBM) Then + tmpMPDBM = Image + End If + Case Enums.PosterSize.Small + If IsNothing(tmpMPDBS) Then + tmpMPDBS = Image + End If + Case Enums.PosterSize.Wide + If IsNothing(tmpMPDBW) Then + tmpMPDBW = Image + End If + End Select + Else + 'image found + GoTo foundIT + End If + End If + Image.Clear() + Next + End If + End If + End If + + If IsNothing(Image.Image) AndAlso Not doAsk Then + 'STILL no image found, just get the first available image, starting with the largest + 'check TMDB first + If tmpListTMDB.Count > 0 Then + Dim x = From MI As MediaContainers.Image In tmpListTMDB Where MI.Description = "original" + If x.Count > 0 Then + Image.FromWeb(x(0).URL) + If Not IsNothing(Image.Image) Then GoTo foundIT + End If + + Dim l = From MI As MediaContainers.Image In tmpListTMDB Where MI.Description = "mid" + If l.Count > 0 Then + Image.FromWeb(l(0).URL) + If Not IsNothing(Image.Image) Then GoTo foundIT + End If + + Dim m = From MI As MediaContainers.Image In tmpListTMDB Where MI.Description = "cover" + If m.Count > 0 Then + Image.FromWeb(m(0).URL) + If Not IsNothing(Image.Image) Then GoTo foundIT + End If + + Dim s = From MI As MediaContainers.Image In tmpListTMDB Where MI.Description = "thumb" + If s.Count > 0 Then + Image.FromWeb(s(0).URL) + If Not IsNothing(Image.Image) Then GoTo foundIT + End If + + End If + + Image.Clear() + + If _MySettings.UseIMDB Then + If tmpListIMDB.Count > 0 Then + If Not IsNothing(tmpIMDBX) Then + Image = tmpIMDBX + GoTo foundIT + End If + If Not IsNothing(tmpIMDBL) Then + Image = tmpIMDBL + GoTo foundIT + End If + If Not IsNothing(tmpIMDBM) Then + Image = tmpIMDBM + GoTo foundIT + End If + If Not IsNothing(tmpIMDBS) Then + Image = tmpIMDBS + GoTo foundIT + End If + If Not IsNothing(tmpIMDBW) Then + Image = tmpIMDBW + GoTo foundIT + End If + End If + End If + + If _MySettings.UseIMPA Then + If tmpListIMPA.Count > 0 Then + If Not IsNothing(tmpIMPAX) Then + Image = tmpIMPAX + GoTo foundIT + End If + If Not IsNothing(tmpIMPAL) Then + Image = tmpIMPAL + GoTo foundIT + End If + If Not IsNothing(tmpIMPAM) Then + Image = tmpIMPAM + GoTo foundIT + End If + If Not IsNothing(tmpIMPAS) Then + Image = tmpIMPAS + GoTo foundIT + End If + If Not IsNothing(tmpIMPAW) Then + Image = tmpIMPAW + GoTo foundIT + End If + End If + End If + + Image.Clear() + + If _MySettings.UseMPDB Then + If tmpListMPDB.Count > 0 Then + If Not IsNothing(tmpMPDBX) Then + Image = tmpMPDBX + GoTo foundIT + End If + If Not IsNothing(tmpMPDBL) Then + Image = tmpMPDBL + GoTo foundIT + End If + If Not IsNothing(tmpMPDBM) Then + Image = tmpMPDBM + GoTo foundIT + End If + If Not IsNothing(tmpMPDBS) Then + Image = tmpMPDBS + GoTo foundIT + End If + If Not IsNothing(tmpMPDBW) Then + Image = tmpMPDBW + GoTo foundIT + End If + End If + End If + + Image.Clear() + + End If + + End If + + Else 'fanart + + Dim ETHashes As New List(Of String) + If Master.eSettings.AutoET AndAlso doETs Then + ETHashes = HashFile.CurrentETHashes(sPath) + End If + + If Master.eSettings.UseImgCacheUpdaters Then + Dim lFi As New List(Of FileInfo) + + If Not Directory.Exists(CachePath) Then + Directory.CreateDirectory(CachePath) + Else + Dim di As New DirectoryInfo(CachePath) + + Try + lFi.AddRange(di.GetFiles("*.jpg")) + Catch + End Try + End If + + If lFi.Count > 0 Then + Dim tImage As MediaContainers.Image + For Each sFile As FileInfo In lFi + tImage = New MediaContainers.Image + tImage.WebImage.FromFile(sFile.FullName) + Select Case True + Case sFile.Name.Contains("(original)") + tImage.Description = "original" + If Master.eSettings.AutoET AndAlso doETs AndAlso Master.eSettings.AutoETSize = Enums.FanartSize.Lrg Then + If Not ETHashes.Contains(HashFile.HashCalcFile(sFile.FullName)) Then + Image.SaveFAasET(sFile.FullName, sPath) + End If + End If + Case sFile.Name.Contains("(mid)") + tImage.Description = "mid" + If Master.eSettings.AutoET AndAlso doETs AndAlso Master.eSettings.AutoETSize = Enums.FanartSize.Mid Then + If Not ETHashes.Contains(HashFile.HashCalcFile(sFile.FullName)) Then + Image.SaveFAasET(sFile.FullName, sPath) + End If + End If + Case sFile.Name.Contains("(thumb)") + tImage.Description = "thumb" + If Master.eSettings.AutoET AndAlso doETs AndAlso Master.eSettings.AutoETSize = Enums.FanartSize.Small Then + If Not ETHashes.Contains(HashFile.HashCalcFile(sFile.FullName)) Then + Image.SaveFAasET(sFile.FullName, sPath) + End If + End If + End Select + tImage.URL = Regex.Match(sFile.Name, "\(url=(.*?)\)").Groups(1).ToString + tmpListTMDB.Add(tImage) + Image.Clear() + Next + Else + 'download all the fanart from TMDB + tmpListTMDB = TMDB.GetTMDBImages(TMDBID, "backdrop") + + If tmpListTMDB.Count > 0 Then + + 'setup fanart for nfo + Dim thumbLink As String = String.Empty + imgResult.Fanart.URL = "http://images.themoviedb.org" + For Each miFanart As MediaContainers.Image In tmpListTMDB + miFanart.WebImage.FromWeb(miFanart.URL) + If Not IsNothing(miFanart.WebImage.Image) Then + Image = miFanart.WebImage + Dim savePath As String = Path.Combine(CachePath, String.Concat("fanart_(", miFanart.Description, ")_(url=", StringUtils.CleanURL(miFanart.URL), ").jpg")) + Image.Save(savePath, , , False) + If Master.eSettings.AutoET AndAlso doETs Then + Select Case miFanart.Description.ToLower + Case "original" + If Master.eSettings.AutoETSize = Enums.FanartSize.Lrg Then + If Not ETHashes.Contains(HashFile.HashCalcFile(savePath)) Then + Image.SaveFAasET(savePath, sPath) + End If + End If + Case "mid" + If Master.eSettings.AutoETSize = Enums.FanartSize.Mid Then + If Not ETHashes.Contains(HashFile.HashCalcFile(savePath)) Then + Image.SaveFAasET(savePath, sPath) + End If + End If + Case "thumb" + If Master.eSettings.AutoETSize = Enums.FanartSize.Small Then + If Not ETHashes.Contains(HashFile.HashCalcFile(savePath)) Then + Image.SaveFAasET(savePath, sPath) + End If + End If + End Select + End If + If Not Master.eSettings.NoSaveImagesToNfo Then + If Not miFanart.URL.Contains("_thumb.") Then + thumbLink = miFanart.URL.Replace("http://images.themoviedb.org", String.Empty) + If thumbLink.Contains("_poster.") Then + thumbLink = thumbLink.Replace("_poster.", "_thumb.") + Else + thumbLink = thumbLink.Insert(thumbLink.LastIndexOf("."), "_thumb") + End If + imgResult.Fanart.Thumb.Add(New MediaContainers.Thumb With {.Preview = thumbLink, .Text = miFanart.URL.Replace("http://images.themoviedb.org", String.Empty)}) + End If + End If + End If + Image.Clear() + Next + Else + If _MySettings.UseFANARTTV Then + tmpListTMDB = FANARTTVs.GetFANARTTVImages(IMDBID) + + If tmpListTMDB.Count > 0 Then + + 'setup fanart for nfo + Dim thumbLink As String = String.Empty + imgResult.Fanart.URL = "http://fanart.tv" + For Each miFanart As MediaContainers.Image In tmpListTMDB + miFanart.WebImage.FromWeb(miFanart.URL) + If Not IsNothing(miFanart.WebImage.Image) Then + Image = miFanart.WebImage + Dim savePath As String = Path.Combine(CachePath, String.Concat("fanart_(", miFanart.Description, ")_(url=", StringUtils.CleanURL(miFanart.URL), ").jpg")) + Image.Save(savePath, , , False) + If Master.eSettings.AutoET AndAlso doETs Then + Select Case miFanart.Description.ToLower + Case "original" + If Master.eSettings.AutoETSize = Enums.FanartSize.Lrg Then + If Not ETHashes.Contains(HashFile.HashCalcFile(savePath)) Then + Image.SaveFAasET(savePath, sPath) + End If + End If + Case "mid" + If Master.eSettings.AutoETSize = Enums.FanartSize.Mid Then + If Not ETHashes.Contains(HashFile.HashCalcFile(savePath)) Then + Image.SaveFAasET(savePath, sPath) + End If + End If + Case "thumb" + If Master.eSettings.AutoETSize = Enums.FanartSize.Small Then + If Not ETHashes.Contains(HashFile.HashCalcFile(savePath)) Then + Image.SaveFAasET(savePath, sPath) + End If + End If + End Select + End If + If Not Master.eSettings.NoSaveImagesToNfo Then + If Not miFanart.URL.Contains("_thumb.") Then + thumbLink = miFanart.URL.Replace("http://fanart.tv", String.Empty) + If thumbLink.Contains("_poster.") Then + thumbLink = thumbLink.Replace("_poster.", "_thumb.") + Else + thumbLink = thumbLink.Insert(thumbLink.LastIndexOf("."), "_thumb") + End If + imgResult.Fanart.Thumb.Add(New MediaContainers.Thumb With {.Preview = thumbLink, .Text = miFanart.URL.Replace("http://images.themoviedb.org", String.Empty)}) + End If + End If + End If + Image.Clear() + Next + End If + End If + + If tmpListTMDB.Count > 0 Then + hasImages = True + 'remove all entries without images + For i As Integer = tmpListTMDB.Count - 1 To 0 Step -1 + If IsNothing(tmpListTMDB(i).WebImage.Image) Then + tmpListTMDB.RemoveAt(i) + End If + Next + + For Each iMovie As MediaContainers.Image In tmpListTMDB + If Images.GetFanartDims(iMovie.WebImage.Image) = Master.eSettings.PreferredFanartSize Then + Image = iMovie.WebImage + GoTo foundit + End If + Next + + Image.Clear() + + If Not doAsk Then + Image = tmpListTMDB.OrderBy(Function(i) i.WebImage.Image.Height + i.WebImage.Image.Height).FirstOrDefault.WebImage + End If + + End If + End If + End If + + Else + 'download all the fanart from TMDB + tmpListTMDB = TMDB.GetTMDBImages(TMDBID, "backdrop") + + If tmpListTMDB.Count > 0 Then + hasImages = True + + 'setup fanart for nfo + Dim thumbLink As String = String.Empty + If Not Master.eSettings.NoSaveImagesToNfo Then + imgResult.Fanart.URL = "http://images.themoviedb.org" + For Each miFanart As MediaContainers.Image In tmpListTMDB + If Not miFanart.URL.Contains("_thumb.") Then + thumbLink = miFanart.URL.Replace("http://images.themoviedb.org", String.Empty) + If thumbLink.Contains("_poster.") Then + thumbLink = thumbLink.Replace("_poster.", "_thumb.") + Else + thumbLink = thumbLink.Insert(thumbLink.LastIndexOf("."), "_thumb") + End If + imgResult.Fanart.Thumb.Add(New MediaContainers.Thumb With {.Preview = thumbLink, .Text = miFanart.URL.Replace("http://images.themoviedb.org", String.Empty)}) + End If + Next + End If + + If Master.eSettings.AutoET AndAlso doETs Then + + If Not Directory.Exists(CachePath) Then + Directory.CreateDirectory(CachePath) + End If + + Dim savePath As String = String.Empty + For Each miFanart As MediaContainers.Image In tmpListTMDB + Select Case miFanart.Description.ToLower + Case "original" + If Master.eSettings.AutoETSize = Enums.FanartSize.Lrg Then + miFanart.WebImage.FromWeb(miFanart.URL) + If Not IsNothing(miFanart.WebImage.Image) Then + Image = miFanart.WebImage + savePath = Path.Combine(CachePath, String.Concat("fanart_(", miFanart.Description, ")_(url=", StringUtils.CleanURL(miFanart.URL), ").jpg")) + Image.Save(savePath, , , False) + If Not ETHashes.Contains(HashFile.HashCalcFile(savePath)) Then + Image.SaveFAasET(savePath, sPath) + End If + End If + End If + Case "mid" + If Master.eSettings.AutoETSize = Enums.FanartSize.Mid Then + miFanart.WebImage.FromWeb(miFanart.URL) + If Not IsNothing(miFanart.WebImage.Image) Then + Image = miFanart.WebImage + savePath = Path.Combine(CachePath, String.Concat("fanart_(", miFanart.Description, ")_(url=", StringUtils.CleanURL(miFanart.URL), ").jpg")) + Image.Save(savePath, , , False) + If Not ETHashes.Contains(HashFile.HashCalcFile(savePath)) Then + Image.SaveFAasET(savePath, sPath) + End If + End If + End If + Case "thumb" + If Master.eSettings.AutoETSize = Enums.FanartSize.Small Then + miFanart.WebImage.FromWeb(miFanart.URL) + If Not IsNothing(miFanart.WebImage.Image) Then + Image = miFanart.WebImage + savePath = Path.Combine(CachePath, String.Concat("fanart_(", miFanart.Description, ")_(url=", StringUtils.CleanURL(miFanart.URL), ").jpg")) + Image.Save(savePath, , , False) + If Not ETHashes.Contains(HashFile.HashCalcFile(savePath)) Then + Image.SaveFAasET(savePath, sPath) + End If + End If + End If + End Select + Next + + Image.Clear() + FileUtils.Delete.DeleteDirectory(CachePath) + End If + + For Each iMovie As MediaContainers.Image In tmpListTMDB + Select Case Master.eSettings.PreferredFanartSize + Case Enums.FanartSize.Lrg + If iMovie.Description.ToLower = "original" Then + If Not IsNothing(iMovie.WebImage.Image) Then + Image = iMovie.WebImage + Else + Image.FromWeb(iMovie.URL) + End If + GoTo foundIT + End If + Case Enums.FanartSize.Mid + If iMovie.Description.ToLower = "mid" Then + If Not IsNothing(iMovie.WebImage.Image) Then + Image = iMovie.WebImage + Else + Image.FromWeb(iMovie.URL) + End If + GoTo foundIT + End If + Case Enums.FanartSize.Small + If iMovie.Description.ToLower = "thumb" Then + If Not IsNothing(iMovie.WebImage.Image) Then + Image = iMovie.WebImage + Else + Image.FromWeb(iMovie.URL) + End If + GoTo foundIT + End If + End Select + Next + + Image.Clear() + + If IsNothing(Image.Image) AndAlso Not doAsk Then + + 'STILL no image found, just get the first available image, starting with the largest + + Dim l = From MI As MediaContainers.Image In tmpListTMDB Where MI.Description = "original" + If l.Count > 0 Then + Image.FromWeb(l(0).URL) + GoTo foundIT + End If + + Dim m = From MI As MediaContainers.Image In tmpListTMDB Where MI.Description = "mid" + If m.Count > 0 Then + Image.FromWeb(m(0).URL) + GoTo foundIT + End If + + Dim s = From MI As MediaContainers.Image In tmpListTMDB Where MI.Description = "thumb" + If s.Count > 0 Then + Image.FromWeb(s(0).URL) + GoTo foundIT + End If + + End If + + Image.Clear() + Else + If _MySettings.UseFANARTTV Then + tmpListTMDB = FANARTTVs.GetFANARTTVImages(IMDBID) + If tmpListTMDB.Count > 0 Then + hasImages = True + + 'setup fanart for nfo + Dim thumbLink As String = String.Empty + If Not Master.eSettings.NoSaveImagesToNfo Then + imgResult.Fanart.URL = "http://fanart.tv" + For Each miFanart As MediaContainers.Image In tmpListTMDB + If Not miFanart.URL.Contains("_thumb.") Then + thumbLink = miFanart.URL.Replace("http://fanart.tv", String.Empty) + If thumbLink.Contains("_poster.") Then + thumbLink = thumbLink.Replace("_poster.", "_thumb.") + Else + thumbLink = thumbLink.Insert(thumbLink.LastIndexOf("."), "_thumb") + End If + imgResult.Fanart.Thumb.Add(New MediaContainers.Thumb With {.Preview = thumbLink, .Text = miFanart.URL.Replace("http://images.themoviedb.org", String.Empty)}) + End If + Next + End If + + If Master.eSettings.AutoET AndAlso doETs Then + + If Not Directory.Exists(CachePath) Then + Directory.CreateDirectory(CachePath) + End If + + Dim savePath As String = String.Empty + For Each miFanart As MediaContainers.Image In tmpListTMDB + Select Case miFanart.Description.ToLower + Case "original" + If Master.eSettings.AutoETSize = Enums.FanartSize.Lrg Then + miFanart.WebImage.FromWeb(miFanart.URL) + If Not IsNothing(miFanart.WebImage.Image) Then + Image = miFanart.WebImage + savePath = Path.Combine(CachePath, String.Concat("fanart_(", miFanart.Description, ")_(url=", StringUtils.CleanURL(miFanart.URL), ").jpg")) + Image.Save(savePath, , , False) + If Not ETHashes.Contains(HashFile.HashCalcFile(savePath)) Then + Image.SaveFAasET(savePath, sPath) + End If + End If + End If + Case "mid" + If Master.eSettings.AutoETSize = Enums.FanartSize.Mid Then + miFanart.WebImage.FromWeb(miFanart.URL) + If Not IsNothing(miFanart.WebImage.Image) Then + Image = miFanart.WebImage + savePath = Path.Combine(CachePath, String.Concat("fanart_(", miFanart.Description, ")_(url=", StringUtils.CleanURL(miFanart.URL), ").jpg")) + Image.Save(savePath, , , False) + If Not ETHashes.Contains(HashFile.HashCalcFile(savePath)) Then + Image.SaveFAasET(savePath, sPath) + End If + End If + End If + Case "thumb" + If Master.eSettings.AutoETSize = Enums.FanartSize.Small Then + miFanart.WebImage.FromWeb(miFanart.URL) + If Not IsNothing(miFanart.WebImage.Image) Then + Image = miFanart.WebImage + savePath = Path.Combine(CachePath, String.Concat("fanart_(", miFanart.Description, ")_(url=", StringUtils.CleanURL(miFanart.URL), ").jpg")) + Image.Save(savePath, , , False) + If Not ETHashes.Contains(HashFile.HashCalcFile(savePath)) Then + Image.SaveFAasET(savePath, sPath) + End If + End If + End If + End Select + Next + + Image.Clear() + FileUtils.Delete.DeleteDirectory(CachePath) + End If + + For Each iMovie As MediaContainers.Image In tmpListTMDB + Select Case Master.eSettings.PreferredFanartSize + Case Enums.FanartSize.Lrg + If iMovie.Description.ToLower = "original" Then + If Not IsNothing(iMovie.WebImage.Image) Then + Image = iMovie.WebImage + Else + Image.FromWeb(iMovie.URL) + End If + GoTo foundIT + End If + Case Enums.FanartSize.Mid + If iMovie.Description.ToLower = "mid" Then + If Not IsNothing(iMovie.WebImage.Image) Then + Image = iMovie.WebImage + Else + Image.FromWeb(iMovie.URL) + End If + GoTo foundIT + End If + Case Enums.FanartSize.Small + If iMovie.Description.ToLower = "thumb" Then + If Not IsNothing(iMovie.WebImage.Image) Then + Image = iMovie.WebImage + Else + Image.FromWeb(iMovie.URL) + End If + GoTo foundIT + End If + End Select + Next + + Image.Clear() + + If IsNothing(Image.Image) AndAlso Not doAsk Then + + 'STILL no image found, just get the first available image, starting with the largest + + Dim l = From MI As MediaContainers.Image In tmpListTMDB Where MI.Description = "original" + If l.Count > 0 Then + Image.FromWeb(l(0).URL) + GoTo foundIT + End If + + Dim m = From MI As MediaContainers.Image In tmpListTMDB Where MI.Description = "mid" + If m.Count > 0 Then + Image.FromWeb(m(0).URL) + GoTo foundIT + End If + + Dim s = From MI As MediaContainers.Image In tmpListTMDB Where MI.Description = "thumb" + If s.Count > 0 Then + Image.FromWeb(s(0).URL) + GoTo foundIT + End If + + End If + + Image.Clear() + End If + End If + End If + End If + End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + +foundIT: + tmpListTMDB = Nothing + tmpListIMPA = Nothing + tmpListMPDB = Nothing + Return hasImages + End Function + + Public Sub GetPreferredFAasET(ByVal IMDBID As String, ByVal sPath As String) + Dim _Image As Image + + If AdvancedSettings.GetBooleanSetting("tUseTMDB", True) Then + + Dim tmpListTMDB As New List(Of MediaContainers.Image) + Dim ETHashes As New List(Of String) + + Dim CachePath As String = String.Concat(Master.TempPath, Path.DirectorySeparatorChar, IMDBID, Path.DirectorySeparatorChar, "fanart") + + If Master.eSettings.AutoET Then + ETHashes = HashFile.CurrentETHashes(sPath) + End If + + If Master.eSettings.UseImgCacheUpdaters Then + Dim lFi As New List(Of FileInfo) + + If Not Directory.Exists(CachePath) Then + Directory.CreateDirectory(CachePath) + Else + Dim di As New DirectoryInfo(CachePath) + + Try + lFi.AddRange(di.GetFiles("*.jpg")) + Catch + End Try + End If + + If lFi.Count > 0 Then + For Each sFile As FileInfo In lFi + Select Case True + Case sFile.Name.Contains("(original)") + If Master.eSettings.AutoET AndAlso Master.eSettings.AutoETSize = Enums.FanartSize.Lrg Then + If Not ETHashes.Contains(HashFile.HashCalcFile(sFile.FullName)) Then + SaveFAasET(sFile.FullName, sPath) + End If + End If + Case sFile.Name.Contains("(mid)") + If Master.eSettings.AutoET AndAlso Master.eSettings.AutoETSize = Enums.FanartSize.Mid Then + If Not ETHashes.Contains(HashFile.HashCalcFile(sFile.FullName)) Then + SaveFAasET(sFile.FullName, sPath) + End If + End If + Case sFile.Name.Contains("(thumb)") + If Master.eSettings.AutoET AndAlso Master.eSettings.AutoETSize = Enums.FanartSize.Small Then + If Not ETHashes.Contains(HashFile.HashCalcFile(sFile.FullName)) Then + SaveFAasET(sFile.FullName, sPath) + End If + End If + End Select + Next + Else + 'download all the fanart from TMDB + tmpListTMDB = TMDB.GetTMDBImages(IMDBID, "backdrop") + + If tmpListTMDB.Count > 0 Then + + 'setup fanart for nfo + Dim thumbLink As String = String.Empty + For Each miFanart As MediaContainers.Image In tmpListTMDB + miFanart.WebImage.FromWeb(miFanart.URL) + If Not IsNothing(miFanart.WebImage.Image) Then + _Image = miFanart.WebImage.Image + Dim savePath As String = Path.Combine(CachePath, String.Concat("fanart_(", miFanart.Description, ")_(url=", StringUtils.CleanURL(miFanart.URL), ").jpg")) + miFanart.WebImage.Save(savePath, , , False) + If Master.eSettings.AutoET Then + Select Case miFanart.Description.ToLower + Case "original" + If Master.eSettings.AutoETSize = Enums.FanartSize.Lrg Then + If Not ETHashes.Contains(HashFile.HashCalcFile(savePath)) Then + SaveFAasET(savePath, sPath) + End If + End If + Case "mid" + If Master.eSettings.AutoETSize = Enums.FanartSize.Mid Then + If Not ETHashes.Contains(HashFile.HashCalcFile(savePath)) Then + SaveFAasET(savePath, sPath) + End If + End If + Case "thumb" + If Master.eSettings.AutoETSize = Enums.FanartSize.Small Then + If Not ETHashes.Contains(HashFile.HashCalcFile(savePath)) Then + SaveFAasET(savePath, sPath) + End If + End If + End Select + End If + End If + Next + End If + End If + Else + 'download all the fanart from TMDB + tmpListTMDB = TMDB.GetTMDBImages(IMDBID, "backdrop") + + If tmpListTMDB.Count > 0 Then + + If Not Directory.Exists(CachePath) Then + Directory.CreateDirectory(CachePath) + End If + + Dim savePath As String = String.Empty + For Each miFanart As MediaContainers.Image In tmpListTMDB + Select Case miFanart.Description.ToLower + Case "original" + If Master.eSettings.AutoETSize = Enums.FanartSize.Lrg Then + miFanart.WebImage.FromWeb(miFanart.URL) + If Not IsNothing(miFanart.WebImage.Image) Then + _Image = miFanart.WebImage.Image + savePath = Path.Combine(CachePath, String.Concat("fanart_(", miFanart.Description, ")_(url=", StringUtils.CleanURL(miFanart.URL), ").jpg")) + miFanart.WebImage.Save(savePath, , , False) + If Not ETHashes.Contains(HashFile.HashCalcFile(savePath)) Then + SaveFAasET(savePath, sPath) + End If + End If + End If + Case "mid" + If Master.eSettings.AutoETSize = Enums.FanartSize.Mid Then + miFanart.WebImage.FromWeb(miFanart.URL) + If Not IsNothing(miFanart.WebImage.Image) Then + _Image = miFanart.WebImage.Image + savePath = Path.Combine(CachePath, String.Concat("fanart_(", miFanart.Description, ")_(url=", StringUtils.CleanURL(miFanart.URL), ").jpg")) + miFanart.WebImage.Save(savePath, , , False) + If Not ETHashes.Contains(HashFile.HashCalcFile(savePath)) Then + SaveFAasET(savePath, sPath) + End If + End If + End If + Case "thumb" + If Master.eSettings.AutoETSize = Enums.FanartSize.Small Then + miFanart.WebImage.FromWeb(miFanart.URL) + If Not IsNothing(miFanart.WebImage.Image) Then + _Image = miFanart.WebImage.Image + savePath = Path.Combine(CachePath, String.Concat("fanart_(", miFanart.Description, ")_(url=", StringUtils.CleanURL(miFanart.URL), ").jpg")) + miFanart.WebImage.Save(savePath, , , False) + If Not ETHashes.Contains(HashFile.HashCalcFile(savePath)) Then + SaveFAasET(savePath, sPath) + End If + End If + End If + End Select + 'Me.Clear() + Next + + _Image = Nothing + FileUtils.Delete.DeleteDirectory(CachePath) + + End If + End If + End If + End Sub + + Public Function IsAllowedToDownload(ByVal mMovie As Structures.DBMovie, ByVal fType As Enums.ImageType, Optional ByVal isChange As Boolean = False) As Boolean + Try + Select Case fType + Case Enums.ImageType.Fanart + If (isChange OrElse (String.IsNullOrEmpty(mMovie.FanartPath) OrElse Master.eSettings.OverwriteFanart)) AndAlso _ + (Master.eSettings.MovieNameDotFanartJPG OrElse Master.eSettings.MovieNameFanartJPG OrElse Master.eSettings.FanartJPG) AndAlso _ + AdvancedSettings.GetBooleanSetting("tUseTMDB", True) Then + Return True + Else + Return False + End If + Case Else + If (isChange OrElse (String.IsNullOrEmpty(mMovie.PosterPath) OrElse Master.eSettings.OverwritePoster)) AndAlso _ + (Master.eSettings.MovieTBN OrElse Master.eSettings.MovieNameTBN OrElse Master.eSettings.MovieJPG OrElse _ + Master.eSettings.MovieNameJPG OrElse Master.eSettings.PosterTBN OrElse Master.eSettings.PosterJPG OrElse Master.eSettings.FolderJPG) AndAlso _ + (AdvancedSettings.GetBooleanSetting("tUseIMPA", False) OrElse AdvancedSettings.GetBooleanSetting("UseMPDB", False) OrElse AdvancedSettings.GetBooleanSetting("UseTMDB", True)) Then + Return True + Else + Return False + End If + End Select + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + Return False + End Try + End Function + Public Shared Sub SaveFAasET(ByVal faPath As String, ByVal inPath As String) + Dim iMod As Integer = 0 + Dim iVal As Integer = 1 + Dim extraPath As String = String.Empty + + If Master.eSettings.VideoTSParent AndAlso FileUtils.Common.isVideoTS(inPath) Then + extraPath = Path.Combine(Directory.GetParent(Directory.GetParent(inPath).FullName).FullName, "extrathumbs") + ElseIf Master.eSettings.VideoTSParent AndAlso FileUtils.Common.isBDRip(inPath) Then + extraPath = Path.Combine(Directory.GetParent(Directory.GetParent(Directory.GetParent(inPath).FullName).FullName).FullName, "extrathumbs") + Else + extraPath = Path.Combine(Directory.GetParent(inPath).FullName, "extrathumbs") + End If + + iMod = Functions.GetExtraModifier(extraPath) + iVal = iMod + 1 + + If Not Directory.Exists(extraPath) Then + Directory.CreateDirectory(extraPath) + End If + + FileUtils.Common.MoveFileWithStream(faPath, Path.Combine(extraPath, String.Concat("thumb", iVal, ".jpg"))) + End Sub + + + 'Public Shared Sub Save(ByVal _image As Image, ByVal sPath As String, Optional ByVal iQuality As Long = 0) + ' Try + ' If IsNothing(_image) Then Exit Sub + + ' Dim doesExist As Boolean = File.Exists(sPath) + ' Dim fAtt As New FileAttributes + ' If Not String.IsNullOrEmpty(sPath) AndAlso (Not doesExist OrElse (Not CBool(File.GetAttributes(sPath) And FileAttributes.ReadOnly))) Then + ' If doesExist Then + ' 'get the current attributes to set them back after writing + ' fAtt = File.GetAttributes(sPath) + ' 'set attributes to none for writing + ' File.SetAttributes(sPath, FileAttributes.Normal) + ' End If + + ' Using msSave As New MemoryStream + ' Dim retSave() As Byte + ' Dim ICI As ImageCodecInfo = GetEncoderInfo(ImageFormat.Jpeg) + ' Dim EncPars As EncoderParameters = New EncoderParameters(If(iQuality > 0, 2, 1)) + + ' EncPars.Param(0) = New EncoderParameter(Encoder.RenderMethod, EncoderValue.RenderNonProgressive) + + ' If iQuality > 0 Then + ' EncPars.Param(1) = New EncoderParameter(Encoder.Quality, iQuality) + ' End If + + ' _image.Save(msSave, ICI, EncPars) + + ' retSave = msSave.ToArray + + ' Using fs As New FileStream(sPath, FileMode.Create, FileAccess.Write) + ' fs.Write(retSave, 0, retSave.Length) + ' fs.Flush() + ' End Using + ' msSave.Flush() + ' End Using + + ' If doesExist Then File.SetAttributes(sPath, fAtt) + ' End If + ' Catch ex As Exception + ' Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + ' End Try + 'End Sub + Private Shared Function GetEncoderInfo(ByVal Format As ImageFormat) As ImageCodecInfo + Dim Encoders() As ImageCodecInfo = ImageCodecInfo.GetImageEncoders() + + For i As Integer = 0 To UBound(Encoders) + If Encoders(i).FormatID = Format.Guid Then + Return Encoders(i) + End If + Next + + Return Nothing + End Function +#End Region 'Methods + + + +End Class \ No newline at end of file diff --git a/Addons/scraper.EmberCore.TMDB/Scraper/clsScrapeMPDB.vb b/Addons/scraper.EmberCore.TMDB/Scraper/clsScrapeMPDB.vb new file mode 100644 index 0000000..cd949ec --- /dev/null +++ b/Addons/scraper.EmberCore.TMDB/Scraper/clsScrapeMPDB.vb @@ -0,0 +1,167 @@ +' ################################################################################ +' # EMBER MEDIA MANAGER # +' ################################################################################ +' ################################################################################ +' # This file is part of Ember Media Manager. # +' # # +' # Ember Media Manager is free software: you can redistribute it and/or modify # +' # it under the terms of the GNU General Public License as published by # +' # the Free Software Foundation, either version 3 of the License, or # +' # (at your option) any later version. # +' # # +' # Ember Media Manager is distributed in the hope that it will be useful, # +' # but WITHOUT ANY WARRANTY; without even the implied warranty of # +' # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +' # GNU General Public License for more details. # +' # # +' # You should have received a copy of the GNU General Public License # +' # along with Ember Media Manager. If not, see . # +' ################################################################################ + +Imports System.IO +Imports System.Text +Imports System.Text.RegularExpressions +Imports System.Xml +Imports EmberAPI + +Namespace MPDB + + Public Class Scraper + + #Region "Fields" + + Public IMDBURL As String + + Friend WithEvents bwMPDB As New System.ComponentModel.BackgroundWorker + + #End Region 'Fields + + #Region "Events" + + Public Event PostersDownloaded(ByVal Posters As List(Of MediaContainers.Image)) + + Public Event ProgressUpdated(ByVal iPercent As Integer) + + #End Region 'Events + + #Region "Methods" + + Public Sub Cancel() + If Me.bwMPDB.IsBusy Then Me.bwMPDB.CancelAsync() + + While Me.bwMPDB.IsBusy + Application.DoEvents() + Threading.Thread.Sleep(50) + End While + End Sub + + Public Sub GetImagesAsync(ByVal imdbID As String) + Try + If Not Me.bwMPDB.IsBusy Then + Me.bwMPDB.WorkerSupportsCancellation = True + Me.bwMPDB.WorkerReportsProgress = True + Me.bwMPDB.RunWorkerAsync(New Arguments With {.Parameter = imdbID}) + End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + Public Function GetMPDBPosters(ByVal imdbID As String) As List(Of MediaContainers.Image) + Dim alPosters As New List(Of MediaContainers.Image) + + If Me.bwMPDB.CancellationPending Then Return Nothing + + Try + Dim sHTTP As New HTTP + Dim HTML As String = sHTTP.DownloadData(String.Concat("http://www.movieposterdb.com/movie/", imdbID)) + sHTTP = Nothing + + If Me.bwMPDB.CancellationPending Then Return Nothing + + If bwMPDB.WorkerReportsProgress Then + bwMPDB.ReportProgress(1) + End If + + If Regex.IsMatch(HTML, String.Concat("http://www.imdb.com/title/tt", imdbID), RegexOptions.Singleline Or RegexOptions.IgnoreCase Or RegexOptions.Multiline) Then + Dim mcPoster As MatchCollection = Regex.Matches(HTML, "http://www.movieposterdb.com/posters/[0-9_](.*?)/[0-9](.*?)/[0-9](.*?)/[a-z0-9_](.*?).jpg") + + Dim PosterURL As String = String.Empty + + If bwMPDB.WorkerReportsProgress Then + bwMPDB.ReportProgress(2) + End If + + For Each mPoster As Match In mcPoster + If Me.bwMPDB.CancellationPending Then Return Nothing + PosterURL = mPoster.Value.Remove(mPoster.Value.LastIndexOf("/") + 1, 1) + PosterURL = PosterURL.Insert(mPoster.Value.LastIndexOf("/") + 1, "l") + alPosters.Add(New MediaContainers.Image With {.Description = "poster", .URL = PosterURL}) + PosterURL = mPoster.Value.Remove(mPoster.Value.LastIndexOf("/") + 1, 1) + PosterURL = PosterURL.Insert(mPoster.Value.LastIndexOf("/") + 1, "t") + alPosters.Add(New MediaContainers.Image With {.Description = "thumb", .URL = PosterURL}) + Next + End If + If bwMPDB.WorkerReportsProgress Then + bwMPDB.ReportProgress(3) + End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + + Return alPosters + End Function + + Private Sub bwMPDB_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles bwMPDB.DoWork + Dim Args As Arguments = DirectCast(e.Argument, Arguments) + Try + e.Result = GetMPDBPosters(Args.Parameter) + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + e.Result = Nothing + End Try + End Sub + + Private Sub bwMPDB_ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles bwMPDB.ProgressChanged + If Not bwMPDB.CancellationPending Then + RaiseEvent ProgressUpdated(e.ProgressPercentage) + End If + End Sub + + Private Sub bwMPDB_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles bwMPDB.RunWorkerCompleted + If Not IsNothing(e.Result) Then + RaiseEvent PostersDownloaded(DirectCast(e.Result, List(Of MediaContainers.Image))) + End If + End Sub + + #End Region 'Methods + + #Region "Nested Types" + + Private Structure Arguments + + #Region "Fields" + + Dim Parameter As String + + #End Region 'Fields + + End Structure + + Private Structure Results + + #Region "Fields" + + Dim Result As Object + Dim ResultList As List(Of MediaContainers.Image) + + #End Region 'Fields + + End Structure + + #End Region 'Nested Types + + End Class + +End Namespace + diff --git a/Addons/scraper.EmberCore.TMDB/Scraper/clsScrapeOFDB.vb b/Addons/scraper.EmberCore.TMDB/Scraper/clsScrapeOFDB.vb new file mode 100644 index 0000000..2e94cca --- /dev/null +++ b/Addons/scraper.EmberCore.TMDB/Scraper/clsScrapeOFDB.vb @@ -0,0 +1,242 @@ +' ################################################################################ +' # EMBER MEDIA MANAGER # +' ################################################################################ +' ################################################################################ +' # This file is part of Ember Media Manager. # +' # # +' # Ember Media Manager is free software: you can redistribute it and/or modify # +' # it under the terms of the GNU General Public License as published by # +' # the Free Software Foundation, either version 3 of the License, or # +' # (at your option) any later version. # +' # # +' # Ember Media Manager is distributed in the hope that it will be useful, # +' # but WITHOUT ANY WARRANTY; without even the implied warranty of # +' # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +' # GNU General Public License for more details. # +' # # +' # You should have received a copy of the GNU General Public License # +' # along with Ember Media Manager. If not, see . # +' ################################################################################ + +Imports System.IO +Imports System.IO.Compression +Imports System.Text.RegularExpressions +Imports EmberAPI + +Public Class OFDB + + #Region "Fields" + + Private imdbID As String + Private OFDBMovie As MediaContainers.Movie + Private _genre As String + Private _outline As String + Private _plot As String + Private _title As String + + #End Region 'Fields + + #Region "Constructors" + + Public Sub New(ByVal sID As String, ByRef mMovie As MediaContainers.Movie) + Clear() + imdbID = sID + OFDBMovie = mMovie + + GetOFDBDetails() + End Sub + + #End Region 'Constructors + + #Region "Properties" + + Public Property Genre() As String + Get + Return _genre + End Get + Set(ByVal value As String) + _genre = value + End Set + End Property + + Public Property Outline() As String + Get + Return _outline + End Get + Set(ByVal value As String) + _outline = value + End Set + End Property + + Public Property Plot() As String + Get + Return _plot + End Get + Set(ByVal value As String) + _plot = value + End Set + End Property + + Public Property Title() As String + Get + Return _title + End Get + Set(ByVal value As String) + _title = value + End Set + End Property + + #End Region 'Properties + + #Region "Methods" + + Private Function CleanTitle(ByVal sString As String) As String + Dim CleanString As String = sString + + Try + If sString.StartsWith("""") Then CleanString = sString.Remove(0, 1) + + If sString.EndsWith("""") Then CleanString = CleanString.Remove(CleanString.Length - 1, 1) + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + Return CleanString + End Function + + Private Sub Clear() + _title = String.Empty + _outline = String.Empty + _plot = String.Empty + _genre = String.Empty + End Sub + + Private Function GetFullPlot(ByVal sURL As String) As String + Dim FullPlot As String = String.Empty + + Try + If Not String.IsNullOrEmpty(sURL) Then + Dim sHTTP As New HTTP + Dim HTML As String = sHTTP.DownloadData(sURL) + sHTTP = Nothing + + Dim D, W, B As Integer + Dim tmpHTML As String + + D = Html.IndexOf("Eine Inhaltsangabe von") + If D > 0 Then + Dim L As Integer = Html.Length + tmpHTML = Html.Substring(D + 22, L - (D + 22)).Trim + W = tmpHTML.IndexOf("

") + If W > 0 Then + B = tmpHTML.IndexOf("

", W + 16) + FullPlot = Web.HttpUtility.HtmlDecode(tmpHTML.Substring(W + 16, B - (W + 16)).Replace("
", String.Empty).Replace(vbCrLf, " ").Trim) + End If + End If + End If + + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + + Return FullPlot + End Function + + Private Sub GetOFDBDetails() + Dim sURL As String = GetOFDBUrlFromIMDBID() + + Try + If Not String.IsNullOrEmpty(sURL) Then + Dim sHTTP As New HTTP + Dim HTML As String = sHTTP.DownloadData(sURL) + sHTTP = Nothing + + If Not String.IsNullOrEmpty(Html) Then + 'title + If String.IsNullOrEmpty(OFDBMovie.Title) OrElse Not Master.eSettings.LockTitle Then + Dim OFDBTitle As String = CleanTitle(Web.HttpUtility.HtmlDecode(Regex.Match(Html, "

([^<]+)

").Groups(1).Value.ToString)) + _title = OFDBTitle + End If + + Dim D, W, B As Integer + Dim tmpHTML As String + + 'outline + If String.IsNullOrEmpty(OFDBMovie.Outline) OrElse Not Master.eSettings.LockOutline Then + D = Html.IndexOf("Inhalt:") + + If D > 0 Then + W = Html.IndexOf("
", String.Empty).Replace(vbCrLf, " ").Trim) + End If + End If + + 'full plot + D = 0 : W = 0 + If String.IsNullOrEmpty(OFDBMovie.Plot) OrElse Not Master.eSettings.LockPlot Then + D = Html.IndexOf("Inhalt:") + If D > 0 Then + Dim L As Integer = Html.Length + tmpHTML = Html.Substring(D + 14, L - (D + 14)).Trim + W = tmpHTML.IndexOf(" 0 Then + B = tmpHTML.IndexOf(""">[mehr]", W + 9) + If B > 0 Then + Dim FullPlot = GetFullPlot(String.Concat("http://www.ofdb.de/", tmpHTML.Substring(W + 9, B - (W + 9)))) + If Not String.IsNullOrEmpty(FullPlot) Then + _plot = FullPlot + End If + End If + End If + End If + End If + + 'genre + D = 0 : W = 0 + If String.IsNullOrEmpty(OFDBMovie.Genre) OrElse Not Master.eSettings.LockGenre Then + D = HTML.IndexOf("class=""Normal"">Genre(s):") + If D > 0 Then + W = HTML.IndexOf("", D) + If W > 0 Then + Dim rGenres As MatchCollection = Regex.Matches(HTML.Substring(D, W - D), ".*?)[""'].*?>(?.*?)") + Dim Gen = From M In rGenres _ + Select N = Web.HttpUtility.HtmlDecode(DirectCast(M, Match).Groups("name").ToString) + If Gen.Count > 0 Then + Dim tGenre As String = Strings.Join(Gen.ToArray, "/").Trim + _genre = Strings.Join(tGenre.Split(Convert.ToChar("/")), " / ").Trim + End If + End If + End If + End If + + End If + End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + Private Function GetOFDBUrlFromIMDBID() As String + Dim ofdbURL As String = String.Empty + Try + + Dim sHTTP As New HTTP + Dim HTML As String = sHTTP.DownloadData(String.Concat("http://www.ofdb.de/view.php?SText=", imdbID, "&Kat=IMDb&page=suchergebnis&sourceid=mozilla-search")) + sHTTP = Nothing + + If Not String.IsNullOrEmpty(HTML) Then + Dim mcOFDBURL As MatchCollection = Regex.Matches(HTML, " 0 Then + 'just use the first one if more are found + ofdbURL = String.Concat("http://www.ofdb.de/", Regex.Match(mcOFDBURL(0).Value.ToString, """(film/([^<]+))""").Groups(1).Value.ToString) + End If + End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + + Return ofdbURL + End Function + + #End Region 'Methods + +End Class \ No newline at end of file diff --git a/Addons/scraper.EmberCore.TMDB/Scraper/clsScrapeTMDB.vb b/Addons/scraper.EmberCore.TMDB/Scraper/clsScrapeTMDB.vb new file mode 100644 index 0000000..9db6818 --- /dev/null +++ b/Addons/scraper.EmberCore.TMDB/Scraper/clsScrapeTMDB.vb @@ -0,0 +1,282 @@ +' ################################################################################ +' # EMBER MEDIA MANAGER # +' ################################################################################ +' ################################################################################ +' # This file is part of Ember Media Manager. # +' # # +' # Ember Media Manager is free software: you can redistribute it and/or modify # +' # it under the terms of the GNU General Public License as published by # +' # the Free Software Foundation, either version 3 of the License, or # +' # (at your option) any later version. # +' # # +' # Ember Media Manager is distributed in the hope that it will be useful, # +' # but WITHOUT ANY WARRANTY; without even the implied warranty of # +' # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +' # GNU General Public License for more details. # +' # # +' # You should have received a copy of the GNU General Public License # +' # along with Ember Media Manager. If not, see . # +' ################################################################################ + +Imports EmberAPI +Imports RestSharp +Imports WatTmdb + + +Namespace TMDB + + Public Class Scraper + +#Region "Fields" + + Private _TMDBConf As V3.TmdbConfiguration + Private _TMDBConfE As V3.TmdbConfiguration + Private _TMDBApi As V3.Tmdb + Private _TMDBApiE As V3.Tmdb + Private _MySettings As EmberTMDBScraperModule.sMySettings + + Private backdrop_names(3) As v3Size + Private poster_names(5) As v3Size + + + Friend WithEvents bwTMDB As New System.ComponentModel.BackgroundWorker + +#End Region 'Fields + +#Region "Events" + + Public Event PostersDownloaded(ByVal Posters As List(Of MediaContainers.Image)) + + Public Event ProgressUpdated(ByVal iPercent As Integer) + +#End Region 'Events + +#Region "Methods" + + Public Sub New(ByRef tTMDBConf As V3.TmdbConfiguration, ByRef tTMDBConfE As V3.TmdbConfiguration, ByRef tTMDBApi As V3.Tmdb, ByRef tTMDBApiE As V3.Tmdb, ByRef tMySettings As EmberTMDBScraperModule.sMySettings) + _TMDBConf = tTMDBConf + _TMDBConfE = tTMDBConfE + _TMDBApi = tTMDBApi + _TMDBApiE = tTMDBApiE + _MySettings = tMySettings + ' v3 does not have description anymore + poster_names(0).description = "thumb" + poster_names(0).size = "w92" + poster_names(0).width = 92 + poster_names(1).description = "w154" + poster_names(1).size = "w154" + poster_names(1).width = 154 + poster_names(2).description = "cover" + poster_names(2).size = "w185" + poster_names(2).width = 185 + poster_names(3).description = "w342" + poster_names(3).size = "w342" + poster_names(3).width = 342 + poster_names(4).description = "mid" + poster_names(4).size = "w500" + poster_names(4).width = 500 + poster_names(5).description = "original" + poster_names(5).size = "original" + poster_names(5).width = 0 + backdrop_names(0).description = "thumb" + backdrop_names(0).size = "w300" + backdrop_names(0).width = 300 + backdrop_names(1).description = "poster" + backdrop_names(1).size = "w780" + backdrop_names(1).width = 780 + backdrop_names(2).description = "w1280" + backdrop_names(2).size = "w1280" + backdrop_names(2).width = 1280 + backdrop_names(3).description = "original" + backdrop_names(3).size = "original" + backdrop_names(3).width = 0 + End Sub + + Public Sub Cancel() + If bwTMDB.IsBusy Then bwTMDB.CancelAsync() + + While bwTMDB.IsBusy + Application.DoEvents() + Threading.Thread.Sleep(50) + End While + End Sub + + Public Sub GetImagesAsync(ByVal imdbID As String, ByVal sType As String) + Try + If Not bwTMDB.IsBusy Then + bwTMDB.WorkerSupportsCancellation = True + bwTMDB.WorkerReportsProgress = True + bwTMDB.RunWorkerAsync(New Arguments With {.Parameter = imdbID, .sType = sType}) + End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + Public Function GetTMDBImages(ByVal imdbID As String, ByVal sType As String) As List(Of MediaContainers.Image) + Dim alPosters As New List(Of MediaContainers.Image) + Dim images As V3.TmdbMovieImages + Dim aW, aH As Integer + + If bwTMDB.CancellationPending Then Return Nothing + Try + images = _TMDBApi.GetMovieImages(CInt(imdbID), _MySettings.TMDBLanguage) + If sType = "poster" Then + If IsNothing(images.posters) OrElse images.posters.Count = 0 Then + images = _TMDBApiE.GetMovieImages(CInt(imdbID)) + If IsNothing(images.posters) OrElse images.posters.Count = 0 Then + Return alPosters + End If + End If + Else + If IsNothing(images.backdrops) OrElse images.backdrops.Count = 0 Then + images = _TMDBApiE.GetMovieImages(CInt(imdbID)) + If IsNothing(images.backdrops) OrElse images.backdrops.Count = 0 Then + Return alPosters + End If + End If + End If + If bwTMDB.WorkerReportsProgress Then + bwTMDB.ReportProgress(1) + End If + + If bwTMDB.CancellationPending Then Return Nothing + + If sType = "poster" Then + For Each tmdbI As V3.Poster In images.posters + If bwTMDB.CancellationPending Then Return Nothing + For Each aSize In poster_names + Select Case aSize.size + Case "original" + aW = tmdbI.width + aH = tmdbI.width + Case Else + aW = aSize.width + aH = CInt(aW / tmdbI.aspect_ratio) + End Select + Dim tmpPoster As New MediaContainers.Image With {.URL = _TMDBConf.images.base_url & aSize.size & tmdbI.file_path, .Description = aSize.description, .Width = CStr(aW), .Height = CStr(aH), .ParentID = tmdbI.file_path} + alPosters.Add(tmpPoster) + Next + Next + ElseIf sType = "backdrop" Then + For Each tmdbI As V3.Backdrop In images.backdrops + If bwTMDB.CancellationPending Then Return Nothing + For Each aSize In backdrop_names + Select Case aSize.size + Case "original" + aW = tmdbI.width + aH = tmdbI.width + Case Else + aW = aSize.width + aH = CInt(aW / tmdbI.aspect_ratio) + End Select + Dim tmpPoster As New MediaContainers.Image With {.URL = _TMDBConf.images.base_url & aSize.size & tmdbI.file_path, .Description = aSize.description, .Width = CStr(aW), .Height = CStr(aH), .ParentID = tmdbI.file_path} + alPosters.Add(tmpPoster) + Next + Next + End If + + If bwTMDB.WorkerReportsProgress Then + bwTMDB.ReportProgress(3) + End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + + Return alPosters + End Function + + Public Function GetTrailers(ByVal imdbID As String) As List(Of String) + Dim trailers As V3.TmdbMovieTrailers + Dim YT As New List(Of String) + + Try + If bwTMDB.CancellationPending Then Return Nothing + trailers = _TMDBApi.GetMovieTrailers(CInt(imdbID), _MySettings.TMDBLanguage) + If IsNothing(trailers.youtube) OrElse trailers.youtube.Count = 0 Then + trailers = _TMDBApiE.GetMovieTrailers(CInt(imdbID)) + If IsNothing(trailers.youtube) OrElse trailers.youtube.Count = 0 Then + Return Nothing + End If + End If + + If bwTMDB.WorkerReportsProgress Then + bwTMDB.ReportProgress(1) + End If + If bwTMDB.CancellationPending Then Return Nothing + + 'If bwTMDB.WorkerReportsProgress Then + ' bwTMDB.ReportProgress(2) + 'End If + + If trailers.youtube.Count > 0 Then + For Each trailer In trailers.youtube + YT.Add(String.Format("http://www.youtube.com/watch?v={0}{1})", trailer.source, CStr(IIf(trailer.size = "HD", "&hd=1", "")))) + Next + End If + + If bwTMDB.WorkerReportsProgress Then + bwTMDB.ReportProgress(3) + End If + + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + + Return YT + End Function + + Private Sub bwTMDB_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles bwTMDB.DoWork + Dim Args As Arguments = DirectCast(e.Argument, Arguments) + Try + e.Result = GetTMDBImages(Args.Parameter, Args.sType) + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + e.Result = Nothing + End Try + End Sub + + Private Sub bwTMDB_ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles bwTMDB.ProgressChanged + If Not bwTMDB.CancellationPending Then + RaiseEvent ProgressUpdated(e.ProgressPercentage) + End If + End Sub + + Private Sub bwTMDB_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles bwTMDB.RunWorkerCompleted + If Not IsNothing(e.Result) Then + RaiseEvent PostersDownloaded(DirectCast(e.Result, List(Of MediaContainers.Image))) + End If + End Sub + +#End Region 'Methods + +#Region "Nested Types" + + Private Structure Arguments + +#Region "Fields" + + Dim Parameter As String + Dim sType As String + +#End Region 'Fields + + End Structure + + Private Structure v3Size + +#Region "Fields" + + Dim size As String + Dim description As String + Dim width As Integer + +#End Region 'Fields + + End Structure + +#End Region 'Nested Types + + End Class + +End Namespace \ No newline at end of file diff --git a/Addons/scraper.EmberCore.TMDB/Scraper/clsScrapeTMDB_old.vb b/Addons/scraper.EmberCore.TMDB/Scraper/clsScrapeTMDB_old.vb new file mode 100644 index 0000000..c5bca0a --- /dev/null +++ b/Addons/scraper.EmberCore.TMDB/Scraper/clsScrapeTMDB_old.vb @@ -0,0 +1,244 @@ +' ################################################################################ +' # EMBER MEDIA MANAGER # +' ################################################################################ +' ################################################################################ +' # This file is part of Ember Media Manager. # +' # # +' # Ember Media Manager is free software: you can redistribute it and/or modify # +' # it under the terms of the GNU General Public License as published by # +' # the Free Software Foundation, either version 3 of the License, or # +' # (at your option) any later version. # +' # # +' # Ember Media Manager is distributed in the hope that it will be useful, # +' # but WITHOUT ANY WARRANTY; without even the implied warranty of # +' # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +' # GNU General Public License for more details. # +' # # +' # You should have received a copy of the GNU General Public License # +' # along with Ember Media Manager. If not, see . # +' ################################################################################ + +Imports EmberAPI + +Namespace TMDB_old + + + Public Class Scraper + +#Region "Fields" + + Public IMDBURL As String + + Friend WithEvents bwTMDB As New System.ComponentModel.BackgroundWorker + + Private Const APIKey As String = "b1ecff8c76278262b27de1569f57f6bd" + +#End Region 'Fields + +#Region "Events" + + Public Event PostersDownloaded(ByVal Posters As List(Of MediaContainers.Image)) + + Public Event ProgressUpdated(ByVal iPercent As Integer) + +#End Region 'Events + +#Region "Methods" + + Public Sub Cancel() + If bwTMDB.IsBusy Then bwTMDB.CancelAsync() + + While bwTMDB.IsBusy + Application.DoEvents() + Threading.Thread.Sleep(50) + End While + End Sub + + Public Sub GetImagesAsync(ByVal imdbID As String, ByVal sType As String) + Try + If Not bwTMDB.IsBusy Then + bwTMDB.WorkerSupportsCancellation = True + bwTMDB.WorkerReportsProgress = True + bwTMDB.RunWorkerAsync(New Arguments With {.Parameter = imdbID, .sType = sType}) + End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + Public Function GetTMDBImages(ByVal imdbID As String, ByVal sType As String) As List(Of MediaContainers.Image) + Dim alPosters As New List(Of MediaContainers.Image) + Dim xmlTMDB As XDocument + Dim sHTTP As New HTTP + + If bwTMDB.CancellationPending Then Return Nothing + Try + Dim ApiXML As String = sHTTP.DownloadData(String.Format("http://api.themoviedb.org/2.1/Movie.getImages/en/xml/{0}/tt{1}", APIKey, imdbID)) + + If Not String.IsNullOrEmpty(ApiXML) Then + Try + xmlTMDB = XDocument.Parse(ApiXML) + Catch + Return alPosters + End Try + + If bwTMDB.WorkerReportsProgress Then + bwTMDB.ReportProgress(1) + End If + + If bwTMDB.CancellationPending Then Return Nothing + + If Not xmlTMDB.......Value = "Nothing found." Then + If sType = "poster" Then + Dim tmdbImages = From iNode In xmlTMDB................Elements Select iNode + If tmdbImages.Count > 0 Then + For Each tmdbI As XElement In tmdbImages + Dim parentID As String = tmdbI.Parent.Attribute("id").Value + If bwTMDB.CancellationPending Then Return Nothing + Dim tmpPoster As New MediaContainers.Image With {.URL = tmdbI.@url, .Description = tmdbI.@size, .Width = tmdbI.@width, .Height = tmdbI.@height, .ParentID = parentID} + alPosters.Add(tmpPoster) + Next + End If + ElseIf sType = "backdrop" Then + Dim tmdbImages = From iNode In xmlTMDB................Elements Select iNode + If tmdbImages.Count > 0 Then + For Each tmdbI As XElement In tmdbImages + Dim parentID As String = tmdbI.Parent.Attribute("id").Value + If bwTMDB.CancellationPending Then Return Nothing + Dim tmpPoster As New MediaContainers.Image With {.URL = tmdbI.@url, .Description = tmdbI.@size, .Width = tmdbI.@width, .Height = tmdbI.@height, .ParentID = parentID} + alPosters.Add(tmpPoster) + Next + End If + End If + End If + End If + + If bwTMDB.WorkerReportsProgress Then + bwTMDB.ReportProgress(2) + End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + + sHTTP = Nothing + + Return alPosters + End Function + + Public Function GetTrailers(ByVal imdbID As String) As String + Dim xmlTMDB As XDocument + Dim sHTTP As New HTTP + Dim tLang As String + + tLang = AdvancedSettings.GetSetting("UseTMDBTrailerPref", "en") + + If bwTMDB.CancellationPending Then Return Nothing + Try + Dim ApiXML As String = sHTTP.DownloadData(String.Format("http://api.themoviedb.org/2.1/Movie.imdbLookup/en/xml/{0}/tt{1}", APIKey, imdbID)) + sHTTP = Nothing + + If Not String.IsNullOrEmpty(ApiXML) Then + Try + xmlTMDB = XDocument.Parse(ApiXML) + Catch + Return String.Empty + End Try + + If bwTMDB.WorkerReportsProgress Then + bwTMDB.ReportProgress(1) + End If + If bwTMDB.CancellationPending Then Return Nothing + + Dim tmdbNode = From xNode In xmlTMDB.Elements + + If tmdbNode.Count > 0 Then + If Not tmdbNode(0).Value = "Your query didn't return any results." Then + Dim movieID As String = xmlTMDB.............Value + Dim i As Integer + + + For i = 0 To 1 Step 1 + sHTTP = New HTTP + ApiXML = sHTTP.DownloadData(String.Format("http://api.themoviedb.org/2.1/Movie.getInfo/{0}/xml/{1}/{2}", tLang, APIKey, movieID)) + sHTTP = Nothing + + If Not String.IsNullOrEmpty(ApiXML) Then + + Try + xmlTMDB = XDocument.Parse(ApiXML) + Catch + Return String.Empty + End Try + + If bwTMDB.WorkerReportsProgress Then + bwTMDB.ReportProgress(2) + End If + + If bwTMDB.CancellationPending Then Return Nothing + + Dim Trailers = From tNode In xmlTMDB......... Select tNode. + If Trailers.Count > 0 AndAlso Not String.IsNullOrEmpty(Trailers(0).Value) Then + If Trailers(0).Value.ToLower.IndexOf("youtube.com") > 0 Then + Return Trailers(0).Value + i += 1 + End If + Else + tLang = "en" + End If + End If + Next + End If + End If + End If + If bwTMDB.WorkerReportsProgress Then + bwTMDB.ReportProgress(3) + End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + + Return String.Empty + End Function + + Private Sub bwTMDB_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles bwTMDB.DoWork + Dim Args As Arguments = DirectCast(e.Argument, Arguments) + Try + e.Result = GetTMDBImages(Args.Parameter, Args.sType) + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + e.Result = Nothing + End Try + End Sub + + Private Sub bwTMDB_ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles bwTMDB.ProgressChanged + If Not bwTMDB.CancellationPending Then + RaiseEvent ProgressUpdated(e.ProgressPercentage) + End If + End Sub + + Private Sub bwTMDB_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles bwTMDB.RunWorkerCompleted + If Not IsNothing(e.Result) Then + RaiseEvent PostersDownloaded(DirectCast(e.Result, List(Of MediaContainers.Image))) + End If + End Sub + +#End Region 'Methods + +#Region "Nested Types" + + Private Structure Arguments + +#Region "Fields" + + Dim Parameter As String + Dim sType As String + +#End Region 'Fields + + End Structure + +#End Region 'Nested Types + + End Class + +End Namespace \ No newline at end of file diff --git a/Addons/scraper.EmberCore.TMDB/Scraper/clsScrapeTMDBg.vb b/Addons/scraper.EmberCore.TMDB/Scraper/clsScrapeTMDBg.vb new file mode 100644 index 0000000..8098f61 --- /dev/null +++ b/Addons/scraper.EmberCore.TMDB/Scraper/clsScrapeTMDBg.vb @@ -0,0 +1,743 @@ +' ################################################################################ +' # EMBER MEDIA MANAGER # +' ################################################################################ +' ################################################################################ +' # This file is part of Ember Media Manager. # +' # # +' # Ember Media Manager is free software: you can redistribute it and/or modify # +' # it under the terms of the GNU General Public License as published by # +' # the Free Software Foundation, either version 3 of the License, or # +' # (at your option) any later version. # +' # # +' # Ember Media Manager is distributed in the hope that it will be useful, # +' # but WITHOUT ANY WARRANTY; without even the implied warranty of # +' # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +' # GNU General Public License for more details. # +' # # +' # You should have received a copy of the GNU General Public License # +' # along with Ember Media Manager. If not, see . # +' ################################################################################ + +Imports System.Globalization +Imports System.IO +Imports System.IO.Compression +Imports System.Text +Imports System.Text.RegularExpressions +Imports EmberAPI +Imports RestSharp +Imports WatTmdb + + +Namespace TMDBg + + Public Class MovieSearchResults + +#Region "Fields" + + Private _Matches As New List(Of MediaContainers.Movie) + +#End Region 'Fields + +#Region "Properties" + + Public Property Matches() As List(Of MediaContainers.Movie) + Get + Return _Matches + End Get + Set(ByVal value As List(Of MediaContainers.Movie)) + _Matches = value + End Set + End Property + +#End Region 'Properties + + End Class + + Public Class Scraper + +#Region "Fields" + + 'Public IMDBURL As String + 'Private _TMDBId As String + Private _TMDBConf As V3.TmdbConfiguration + Private _TMDBConfE As V3.TmdbConfiguration + Private _TMDBApi As V3.Tmdb + Private _TMDBApiE As V3.Tmdb + Private _MySettings As EmberTMDBScraperModule.sMySettings + + Private Const IMDB_ID_REGEX As String = "tt\d\d\d\d\d\d\d" + + Friend WithEvents bwTMDBg As New System.ComponentModel.BackgroundWorker + + Private _sPoster As String + +#End Region 'Fields + +#Region "Properties" + Public ReadOnly Property TMDBConf() As V3.TmdbConfiguration + Get + Return _TMDBConf + End Get + End Property +#End Region + +#Region "Enumerations" + + Private Enum SearchType + Movies = 0 + Details = 1 + SearchDetails = 2 + End Enum + +#End Region 'Enumerations + +#Region "Events" + + Public Event Exception(ByVal ex As Exception) + + Public Event SearchMovieInfoDownloaded(ByVal sPoster As String, ByVal bSuccess As Boolean) + + Public Event SearchResultsDownloaded(ByVal mResults As TMDBg.MovieSearchResults) + +#End Region 'Events + +#Region "Methods" + + Public Sub New(ByRef tTMDBConf As V3.TmdbConfiguration, ByRef tTMDBConfE As V3.TmdbConfiguration, ByRef tTMDBApi As V3.Tmdb, ByRef tTMDBApiE As V3.Tmdb, ByRef tMySettings As EmberTMDBScraperModule.sMySettings) + _MySettings = tMySettings + _TMDBApi = tTMDBApi + _TMDBConf = tTMDBConf + _TMDBApiE = tTMDBApiE + _TMDBConfE = tTMDBConfE + End Sub + + Public Sub CancelAsync() + If bwTMDBg.IsBusy Then bwTMDBg.CancelAsync() + + While bwTMDBg.IsBusy + Application.DoEvents() + Threading.Thread.Sleep(50) + End While + End Sub + + Public Sub GetMovieID(ByRef DBMovie As Structures.DBMovie) + Try + Dim Movie As WatTmdb.V3.TmdbMovie + Dim MovieE As WatTmdb.V3.TmdbMovie + + If bwTMDBg.CancellationPending Then Return + + Movie = _TMDBApi.GetMovieByIMDB(DBMovie.Movie.ID, _MySettings.TMDBLanguage) + MovieE = _TMDBApiE.GetMovieByIMDB(DBMovie.Movie.ID) + If IsNothing(Movie) AndAlso Not _MySettings.FallBackEng Then + Return + End If + + DBMovie.Movie.TMDBID = CStr(IIf(String.IsNullOrEmpty(Movie.id.ToString) AndAlso _MySettings.FallBackEng, MovieE.id.ToString, Movie.id.ToString)) + + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + + End Sub + + Public Function GetMovieInfo(ByVal strID As String, ByRef IMDBMovie As MediaContainers.Movie, ByVal FullCrew As Boolean, ByVal FullCast As Boolean, ByVal GetPoster As Boolean, ByVal Options As Structures.ScrapeOptions, ByVal IsSearch As Boolean) As Boolean + Try + Dim Movie As WatTmdb.V3.TmdbMovie + Dim MovieE As WatTmdb.V3.TmdbMovie + Dim tStr As String + + If bwTMDBg.CancellationPending Then Return Nothing + + If Strings.Left(strID.ToLower(), 2) = "tt" Then + Movie = _TMDBApi.GetMovieByIMDB(strID, _MySettings.TMDBLanguage) + MovieE = _TMDBApiE.GetMovieByIMDB(strID) + Else + Movie = _TMDBApi.GetMovieInfo(CInt(strID), _MySettings.TMDBLanguage) + MovieE = _TMDBApiE.GetMovieInfo(CInt(strID)) + End If + If IsNothing(Movie) AndAlso Not _MySettings.FallBackEng Then + Return False + End If + + IMDBMovie.ID = CStr(IIf(String.IsNullOrEmpty(Movie.imdb_id) AndAlso _MySettings.FallBackEng, MovieE.imdb_id, Movie.imdb_id)) + IMDBMovie.TMDBID = CStr(IIf(String.IsNullOrEmpty(Movie.id.ToString) AndAlso _MySettings.FallBackEng, MovieE.id.ToString, Movie.id.ToString)) + + If bwTMDBg.CancellationPending Or IsNothing(Movie) Then Return Nothing + + Dim Keywords As WatTmdb.V3.TmdbMovieKeywords + Keywords = _TMDBApi.GetMovieKeywords(Movie.id) + If Not IsNothing(Keywords) AndAlso Not IsNothing(Keywords.keywords) Then + If Keywords.keywords.Count <> 0 AndAlso _MySettings.FallBackEng Then + Keywords = _TMDBApiE.GetMovieKeywords(Movie.id) + End If + Else + If _MySettings.FallBackEng Then + Keywords = _TMDBApiE.GetMovieKeywords(Movie.id) + End If + End If + + ' to be added the tags structure + '' + '' ... + '' Name of the tag + '' ... + '' + If Options.bTitle Then + IMDBMovie.OriginalTitle = CStr(IIf(String.IsNullOrEmpty(Movie.original_title) AndAlso _MySettings.FallBackEng, MovieE.original_title, Movie.original_title)) + If String.IsNullOrEmpty(IMDBMovie.Title) OrElse Not Master.eSettings.LockTitle Then + IMDBMovie.Title = CStr(IIf(String.IsNullOrEmpty(Movie.title) AndAlso _MySettings.FallBackEng, MovieE.title, Movie.title)) + End If + End If + + If bwTMDBg.CancellationPending Then Return Nothing + + If GetPoster Then + ' I will add original always. to be updated if size, TMDBConf.images.poster_sizes(0) & + Dim Images As WatTmdb.V3.TmdbMovieImages + Images = _TMDBApi.GetMovieImages(Movie.id, _MySettings.TMDBLanguage) + If Not IsNothing(Images) AndAlso Not IsNothing(Images.posters) Then + If (Images.posters.Count = 0) AndAlso _MySettings.FallBackEng Then + Images = _TMDBApiE.GetMovieImages(Movie.id) + End If + Else + If _MySettings.FallBackEng Then + Images = _TMDBApiE.GetMovieImages(Movie.id) + End If + End If + If Not IsNothing(Images) AndAlso Not IsNothing(Images.posters) Then + If Images.posters.Count > 0 Then + _sPoster = _TMDBConf.images.base_url & "w92" & Images.posters(0).file_path + Else + _sPoster = "" + End If + End If + End If + + If bwTMDBg.CancellationPending Then Return Nothing + + If Options.bYear Then IMDBMovie.Year = Left(CStr(IIf(String.IsNullOrEmpty(Movie.release_date) AndAlso _MySettings.FallBackEng, MovieE.release_date, Movie.release_date)), 4) + + Dim Releases As WatTmdb.V3.TmdbMovieReleases = Nothing + If Options.bMPAA Then + IMDBMovie.MPAA = "" + Releases = _TMDBApi.GetMovieReleases(Movie.id) + If Not IsNothing(Releases) AndAlso Not IsNothing(Releases.countries) Then + If (Releases.countries.Count = 0) AndAlso _MySettings.FallBackEng Then + Releases = _TMDBApiE.GetMovieReleases(Movie.id) + End If + Else + If _MySettings.FallBackEng Then + Releases = _TMDBApiE.GetMovieReleases(Movie.id) + End If + End If + + If Not IsNothing(Releases) AndAlso Not IsNothing(Releases.countries) Then + For Each Country In Releases.countries + If Country.iso_3166_1.ToUpper = CStr(IIf(Master.eSettings.CertificationLang = "", "US", Master.eSettings.CertificationLang)) Then + IMDBMovie.MPAA = Country.certification + Exit For + End If + Next + End If + IMDBMovie.Certification = IMDBMovie.MPAA + End If + + If bwTMDBg.CancellationPending Then Return Nothing + + If Options.bRelease Then + IMDBMovie.ReleaseDate = CStr(IIf(String.IsNullOrEmpty(Movie.release_date) AndAlso _MySettings.FallBackEng, MovieE.release_date, Movie.release_date)) + End If + + If Options.bRating AndAlso (String.IsNullOrEmpty(IMDBMovie.Rating) OrElse Not Master.eSettings.LockRating) Then + IMDBMovie.Rating = CStr(IIf(IsNothing(Movie.vote_average) AndAlso Movie.vote_average = 0 AndAlso _MySettings.FallBackEng, MovieE.vote_average, Movie.vote_average)) + End If + + If bwTMDBg.CancellationPending Then Return Nothing + + 'trailer + If Options.bTrailer AndAlso (String.IsNullOrEmpty(IMDBMovie.Trailer) OrElse Not Master.eSettings.LockTrailer) Then + Dim Trailers As WatTmdb.V3.TmdbMovieTrailers + Trailers = _TMDBApi.GetMovieTrailers(Movie.id) + If Not IsNothing(Trailers) AndAlso Not IsNothing(Trailers.youtube) Then + If (Trailers.youtube.Count = 0) AndAlso _MySettings.FallBackEng Then + Trailers = _TMDBApiE.GetMovieTrailers(Movie.id) + End If + Else + If _MySettings.FallBackEng Then + Trailers = _TMDBApiE.GetMovieTrailers(Movie.id) + End If + End If + + IMDBMovie.Trailer = "" + If Not IsNothing(Trailers) AndAlso Not IsNothing(Trailers.youtube) Then + If Trailers.youtube.Count > 0 Then + IMDBMovie.Trailer = "http://www.youtube.com/watch?hd=1&v=" & Trailers.youtube(0).source + End If + End If + + End If + + If bwTMDBg.CancellationPending Then Return Nothing + + If Options.bVotes Then + IMDBMovie.Votes = CStr(IIf(IsNothing(Movie.vote_count) AndAlso Movie.vote_count = 0 AndAlso _MySettings.FallBackEng, MovieE.vote_count.ToString(), Movie.vote_count.ToString())) + End If + + If bwTMDBg.CancellationPending Then Return Nothing + + Dim aCast As WatTmdb.V3.TmdbMovieCast = Nothing + If Options.bCast Then + aCast = _TMDBApi.GetMovieCast(Movie.id) + If Not IsNothing(aCast) AndAlso Not IsNothing(aCast.cast) Then + If (aCast.cast.Count = 0) AndAlso _MySettings.FallBackEng Then + aCast = _TMDBApiE.GetMovieCast(Movie.id) + End If + Else + If _MySettings.FallBackEng Then + aCast = _TMDBApiE.GetMovieCast(Movie.id) + End If + End If + + Dim Cast As New List(Of MediaContainers.Person) + If Not IsNothing(aCast) AndAlso Not IsNothing(aCast.cast) Then + For Each aAc As WatTmdb.V3.Cast In aCast.cast + Dim aPer As New MediaContainers.Person + aPer.Name = aAc.name + aPer.Role = aAc.character + ' to be added / dialog to choose the size of the images + aPer.Thumb = _TMDBConf.images.base_url & "original" & aAc.profile_path + Cast.Add(aPer) + Next + End If + IMDBMovie.Actors = Cast + End If + + If Options.bTagline AndAlso (String.IsNullOrEmpty(IMDBMovie.Tagline) OrElse Not Master.eSettings.LockTagline) Then + IMDBMovie.Tagline = CStr(IIf(String.IsNullOrEmpty(IMDBMovie.Tagline) AndAlso _MySettings.FallBackEng, MovieE.tagline, Movie.tagline)) + End If + + If bwTMDBg.CancellationPending Then Return Nothing + + 'Get countries of the movie + If Options.bCountry Then + If IsNothing(Releases) Then + Releases = _TMDBApi.GetMovieReleases(Movie.id) + If Not IsNothing(Releases) AndAlso Not IsNothing(Releases.countries) Then + If (Releases.countries.Count = 0) AndAlso _MySettings.FallBackEng Then + Releases = _TMDBApiE.GetMovieReleases(Movie.id) + End If + Else + If _MySettings.FallBackEng Then + Releases = _TMDBApiE.GetMovieReleases(Movie.id) + End If + End If + End If + IMDBMovie.Countries.Clear() + If Not IsNothing(Releases) AndAlso Not IsNothing(Releases.countries) Then + For Each aCo As WatTmdb.V3.ReleaseCountry In Releases.countries + IMDBMovie.Countries.Add(aCo.iso_3166_1) + Next + End If + End If + + If bwTMDBg.CancellationPending Then Return Nothing + + 'Get genres of the movie + If Options.bGenre AndAlso (String.IsNullOrEmpty(IMDBMovie.Genre) OrElse Not Master.eSettings.LockGenre) Then + IMDBMovie.Genres.Clear() + Dim tGen As System.Collections.Generic.List(Of WatTmdb.V3.MovieGenre) + If Not IsNothing(Movie) AndAlso Not IsNothing(Movie.genres) Then + tGen = CType(IIf(Movie.genres.Count = 0 AndAlso _MySettings.FallBackEng, MovieE.genres, Movie.genres), Global.System.Collections.Generic.List(Of Global.WatTmdb.V3.MovieGenre)) + Else + tGen = CType(IIf(_MySettings.FallBackEng, MovieE.genres, Nothing), Global.System.Collections.Generic.List(Of Global.WatTmdb.V3.MovieGenre)) + End If + + + If Not IsNothing(tGen) Then + For Each aGen As WatTmdb.V3.MovieGenre In tGen + IMDBMovie.Genres.Add(aGen.name) + Next + End If + End If + + If bwTMDBg.CancellationPending Then Return Nothing + + If Options.bOutline AndAlso (String.IsNullOrEmpty(IMDBMovie.Outline) OrElse Not Master.eSettings.LockOutline) Then + IMDBMovie.Outline = CStr(IIf(String.IsNullOrEmpty(Movie.overview) AndAlso _MySettings.FallBackEng, MovieE.overview, Movie.overview)) + End If + + If bwTMDBg.CancellationPending Then Return Nothing + + If Options.bPlot AndAlso (String.IsNullOrEmpty(IMDBMovie.Plot) OrElse Not Master.eSettings.LockPlot) Then + If Master.eSettings.OutlineForPlot AndAlso String.IsNullOrEmpty(IMDBMovie.Plot) AndAlso Not String.IsNullOrEmpty(IMDBMovie.Outline) Then + IMDBMovie.Plot = IMDBMovie.Outline + Else + IMDBMovie.Plot = "" + End If + End If + + If bwTMDBg.CancellationPending Then Return Nothing + + 'Get the movie duration + If Options.bRuntime Then + IMDBMovie.Runtime = CStr(IIf(IsNothing(Movie.runtime) AndAlso Movie.runtime = 0 AndAlso _MySettings.FallBackEng, MovieE.runtime.ToString(), Movie.runtime.ToString())) + End If + + 'Get Production Studio + If Options.bStudio AndAlso (String.IsNullOrEmpty(IMDBMovie.Studio) OrElse Not Master.eSettings.LockStudio) Then + tStr = "" + Dim tPC As System.Collections.Generic.List(Of WatTmdb.V3.ProductionCompany) + If Not IsNothing(Movie) AndAlso Not IsNothing(Movie.genres) Then + tPC = CType(IIf(Movie.production_companies.Count = 0 AndAlso _MySettings.FallBackEng, MovieE.production_companies, Movie.production_companies), Global.System.Collections.Generic.List(Of WatTmdb.V3.ProductionCompany)) + Else + tPC = CType(IIf(_MySettings.FallBackEng, MovieE.production_companies, Nothing), Global.System.Collections.Generic.List(Of WatTmdb.V3.ProductionCompany)) + End If + + If Not IsNothing(tPC) Then + For Each aPro As WatTmdb.V3.ProductionCompany In tPC + tStr = tStr & " / " & aPro.name + Next + End If + If Len(tStr) > 3 Then + tStr = Trim(Right(tStr, Len(tStr) - 3)) + End If + IMDBMovie.Studio = tStr + End If + + If bwTMDBg.CancellationPending Then Return Nothing + + 'Get All Other Info + If FullCrew Or Options.bWriters Or Options.bDirector Then + If IsNothing(aCast) Then + aCast = _TMDBApi.GetMovieCast(Movie.id) + If Not IsNothing(aCast) AndAlso Not IsNothing(aCast.cast) Then + If (aCast.crew.Count = 0) AndAlso _MySettings.FallBackEng Then + aCast = _TMDBApiE.GetMovieCast(Movie.id) + End If + Else + If _MySettings.FallBackEng Then + aCast = _TMDBApiE.GetMovieCast(Movie.id) + End If + End If + End If + IMDBMovie.Credits.Clear() + IMDBMovie.Directors.Clear() + If Not IsNothing(aCast.crew) Then + For Each aAc As WatTmdb.V3.Crew In aCast.crew + If FullCrew Then + IMDBMovie.Credits.Add(aAc.name) + ElseIf Options.bWriters Then + If aAc.department = "Writing" AndAlso aAc.job = "Writer" Then + IMDBMovie.Credits.Add(aAc.name) + End If + End If + If Options.bDirector Then + If aAc.job = "Director" Then + IMDBMovie.Directors.Add(aAc.name) + End If + End If + Next + End If + End If + + If bwTMDBg.CancellationPending Then Return Nothing + + Return True + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + Return False + End Try + End Function + + Public Function GetMovieStudios(ByVal strID As String) As List(Of String) + Dim alStudio As New List(Of String) + Dim Movie As WatTmdb.V3.TmdbMovie + Movie = _TMDBApi.GetMovieByIMDB(strID, _MySettings.TMDBLanguage) + If Movie.production_companies.Count = 0 And _MySettings.FallBackEng Then + Movie = _TMDBApi.GetMovieByIMDB(strID, "en") + End If + For Each aComp In Movie.production_companies + alStudio.Add(aComp.name) + Next + + Return alStudio + + End Function + + Public Function GetSearchMovieInfo(ByVal sMovieName As String, ByRef dbMovie As Structures.DBMovie, ByVal iType As Enums.ScrapeType, ByVal Options As Structures.ScrapeOptions) As MediaContainers.Movie + Dim r As MovieSearchResults = SearchMovie(sMovieName) + Dim b As Boolean = False + Dim imdbMovie As MediaContainers.Movie = dbMovie.Movie + + Try + Select Case iType + Case Enums.ScrapeType.FullAsk, Enums.ScrapeType.UpdateAsk, Enums.ScrapeType.NewAsk, Enums.ScrapeType.MarkAsk, Enums.ScrapeType.FilterAsk + + If r.Matches.Count = 1 Then 'redirected to imdb info page + b = GetMovieInfo(r.Matches.Item(0).ID, imdbMovie, Master.eSettings.FullCrew, Master.eSettings.FullCast, False, Options, True) + Else + Master.tmpMovie.Clear() + Using dIMDB As New dlgTMDBSearchResults(_MySettings, Me) + + If dIMDB.ShowDialog(r, sMovieName) = Windows.Forms.DialogResult.OK Then + If String.IsNullOrEmpty(Master.tmpMovie.IMDBID) Then + b = False + Else + b = GetMovieInfo(Master.tmpMovie.ID, imdbMovie, Master.eSettings.FullCrew, Master.eSettings.FullCast, False, Options, True) + End If + Else + b = False + End If + End Using + End If + Case Enums.ScrapeType.FullAuto, Enums.ScrapeType.UpdateAuto, Enums.ScrapeType.NewAuto, Enums.ScrapeType.MarkAuto, Enums.ScrapeType.SingleScrape, Enums.ScrapeType.FilterAuto + Dim exactHaveYear As Integer = FindYear(dbMovie.Filename, r.Matches) + If r.Matches.Count = 1 Then 'redirected to imdb info page + b = GetMovieInfo(r.Matches.Item(0).ID, imdbMovie, Master.eSettings.FullCrew, Master.eSettings.FullCast, False, Options, True) + Else + b = GetMovieInfo(r.Matches.Item(If(exactHaveYear >= 0, exactHaveYear, 0)).ID, imdbMovie, Master.eSettings.FullCrew, Master.eSettings.FullCast, False, Options, True) + End If + End Select + + If b Then + Return imdbMovie + Else + Return New MediaContainers.Movie + End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + Return New MediaContainers.Movie + End Try + End Function + + Private Function FindYear(ByVal tmpname As String, ByVal lst As List(Of MediaContainers.Movie)) As Integer + Dim tmpyear As String = "" + Dim i As Integer + Dim ret As Integer = -1 + tmpname = Path.GetFileNameWithoutExtension(tmpname) + tmpname = tmpname.Replace(".", " ").Trim.Replace("(", " ").Replace(")", "").Trim + i = tmpname.LastIndexOf(" ") + If i >= 0 Then + tmpyear = tmpname.Substring(i + 1, tmpname.Length - i - 1) + If IsNumeric(tmpyear) AndAlso Convert.ToInt32(tmpyear) > 1950 Then 'let's assume there are no movies older then 1950 + For c = 0 To lst.Count - 1 + If lst(c).Year = tmpyear Then + ret = c + Exit For + End If + Next + End If + End If + Return ret + End Function + + Public Sub GetSearchMovieInfoAsync(ByVal imdbID As String, ByVal IMDBMovie As MediaContainers.Movie, ByVal Options As Structures.ScrapeOptions) + '' The rule is that if there is a tt is an IMDB otherwise is a TMDB + Try + If Not bwTMDBg.IsBusy Then + bwTMDBg.WorkerReportsProgress = False + bwTMDBg.WorkerSupportsCancellation = True + bwTMDBg.RunWorkerAsync(New Arguments With {.Search = SearchType.SearchDetails, _ + .Parameter = imdbID, .IMDBMovie = IMDBMovie, .Options = Options}) + End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + + Public Sub SearchMovieAsync(ByVal sMovie As String, ByVal filterOptions As Structures.ScrapeOptions) + '' The rule is that if there is a tt is an IMDB otherwise is a TMDB + Try + If Not bwTMDBg.IsBusy Then + bwTMDBg.WorkerReportsProgress = False + bwTMDBg.WorkerSupportsCancellation = True + bwTMDBg.RunWorkerAsync(New Arguments With {.Search = SearchType.Movies, _ + .Parameter = sMovie, .Options = filterOptions}) + End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + Private Sub bwTMDBg_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles bwTMDBg.DoWork + Dim Args As Arguments = DirectCast(e.Argument, Arguments) + '' The rule is that if there is a tt is an IMDB otherwise is a TMDB + Try + Select Case Args.Search + Case SearchType.Movies + Dim r As MovieSearchResults = SearchMovie(Args.Parameter) + e.Result = New Results With {.ResultType = SearchType.Movies, .Result = r} + Case SearchType.SearchDetails + Dim s As Boolean = GetMovieInfo(Args.Parameter, Args.IMDBMovie, False, False, True, Args.Options, True) + e.Result = New Results With {.ResultType = SearchType.SearchDetails, .Success = s} + End Select + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + Private Sub BW_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles bwTMDBg.RunWorkerCompleted + Dim Res As Results = DirectCast(e.Result, Results) + + Try + Select Case Res.ResultType + Case SearchType.Movies + RaiseEvent SearchResultsDownloaded(DirectCast(Res.Result, MovieSearchResults)) + Case SearchType.SearchDetails + Dim movieInfo As MovieSearchResults = DirectCast(Res.Result, MovieSearchResults) + RaiseEvent SearchMovieInfoDownloaded(_sPoster, Res.Success) + End Select + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + Private Function CleanTitle(ByVal sString As String) As String + Dim CleanString As String = sString + + Try + If sString.StartsWith("""") Then CleanString = sString.Remove(0, 1) + + If sString.EndsWith("""") Then CleanString = CleanString.Remove(CleanString.Length - 1, 1) + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + Return CleanString + End Function + + 'Private Function GetForcedTitle(ByVal strID As String, ByVal oTitle As String) As String + ' Dim fTitle As String = oTitle + ' Dim Movie As WatTmdb.V3.TmdbMovie + + ' Try + ' '' The rule is that if there is a tt is an IMDB otherwise is a TMDB + ' If Left(strID.ToLower(), 4) = "tt" Then + ' Movie = _TMDBApi.GetMovieInfo(CInt(Right(strID, Len(strID) - 4)), _MySettings.TMDBLanguage) + ' If IsNothing(Movie) And _MySettings.FallBackEng Then + ' Movie = _TMDBApi.GetMovieInfo(CInt(Right(strID, Len(strID) - 4)), "en") + ' End If + ' Else + ' Movie = _TMDBApi.GetMovieByIMDB(strID) + ' End If + + ' fTitle = Movie.title + + ' Return fTitle + ' Catch ex As Exception + ' Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + ' Return fTitle + ' End Try + 'End Function + + Private Function SearchMovie(ByVal sMovie As String) As MovieSearchResults + Try + Dim R As New MovieSearchResults + Dim Page As Integer = 1 + Dim Movies As WatTmdb.V3.TmdbMovieSearch + Dim TotP As Integer + Dim aE As Boolean + Dim eMovie As WatTmdb.V3.TmdbMovie + + If Regex.IsMatch(sMovie.ToLower, IMDB_ID_REGEX) Then + Dim sIMDBID As String = Regex.Match(sMovie.ToLower, IMDB_ID_REGEX).ToString + eMovie = _TMDBApi.GetMovieByIMDB(sIMDBID, _MySettings.TMDBLanguage) + If eMovie.id = 0 And _MySettings.FallBackEng Then + eMovie = _TMDBApiE.GetMovieByIMDB(sIMDBID) + End If + If eMovie.id > 0 Then + Dim e1 As String = eMovie.imdb_id + Dim e2 As String = CStr(IIf(String.IsNullOrEmpty(eMovie.title), "", eMovie.title)) + Dim e3 As String = Left(CStr(IIf(String.IsNullOrEmpty(eMovie.release_date), "", eMovie.release_date)), 4) + Dim eNewMovie As MediaContainers.Movie = New MediaContainers.Movie(e1, e2, e3, 0) + eNewMovie.TMDBID = eMovie.id.ToString + R.Matches.Add(eNewMovie) + End If + Else + Movies = _TMDBApi.SearchMovie(sMovie, Page, _MySettings.TMDBLanguage) + If Movies.total_results = 0 And _MySettings.FallBackEng Then + Movies = _TMDBApiE.SearchMovie(sMovie, Page) + aE = True + End If + If Movies.total_results > 0 Then + Dim t1 As String + Dim t2 As String + Dim t3 As String + TotP = Movies.total_pages + While Page <= TotP And Page <= 3 + For Each aMovie In Movies.results + Dim aMI As WatTmdb.V3.TmdbMovie + aMI = _TMDBApi.GetMovieInfo(aMovie.id) + If IsNothing(aMI) Then + aMI = _TMDBApiE.GetMovieInfo(aMovie.id) + End If + If IsNothing(aMI.imdb_id) Then + t1 = "" + Else + t1 = aMI.imdb_id.ToString + End If + t2 = CStr(IIf(String.IsNullOrEmpty(aMovie.title), "", aMovie.title)) + t3 = Left(CStr(IIf(String.IsNullOrEmpty(aMovie.release_date), "", aMovie.release_date)), 4) + Dim lNewMovie As MediaContainers.Movie = New MediaContainers.Movie(t1, t2, t3, 0) + lNewMovie.TMDBID = aMI.id.ToString + R.Matches.Add(lNewMovie) + Next + Page = Page + 1 + If aE Then + Movies = _TMDBApiE.SearchMovie(sMovie, Page) + Else + Movies = _TMDBApi.SearchMovie(sMovie, Page, _MySettings.TMDBLanguage) + End If + + End While + End If + End If + + Return R + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + Return Nothing + End Try + End Function + +#End Region 'Methods + +#Region "Nested Types" + + Private Structure Arguments + +#Region "Fields" + + Dim FullCast As Boolean + Dim FullCrew As Boolean + Dim IMDBMovie As MediaContainers.Movie + Dim Options As Structures.ScrapeOptions + Dim Parameter As String + Dim Search As SearchType + 'Dim TMDBConf As V3.TmdbConfiguration + 'Dim TMDBApi As V3.Tmdb + 'Dim FallBackEng As Boolean + 'Dim TMDBLang As String +#End Region 'Fields + + End Structure + + Private Structure Results + +#Region "Fields" + + Dim Result As Object + Dim ResultType As SearchType + Dim Success As Boolean + +#End Region 'Fields + + End Structure + +#End Region 'Nested Types + + End Class + +End Namespace + diff --git a/Addons/scraper.EmberCore.TMDB/Scraper/clsScrapeTrailers.vb b/Addons/scraper.EmberCore.TMDB/Scraper/clsScrapeTrailers.vb new file mode 100644 index 0000000..72ce5f8 --- /dev/null +++ b/Addons/scraper.EmberCore.TMDB/Scraper/clsScrapeTrailers.vb @@ -0,0 +1,265 @@ +' ################################################################################ +' # EMBER MEDIA MANAGER # +' ################################################################################ +' ################################################################################ +' # This file is part of Ember Media Manager. # +' # # +' # Ember Media Manager is free software: you can redistribute it and/or modify # +' # it under the terms of the GNU General Public License as published by # +' # the Free Software Foundation, either version 3 of the License, or # +' # (at your option) any later version. # +' # # +' # Ember Media Manager is distributed in the hope that it will be useful, # +' # but WITHOUT ANY WARRANTY; without even the implied warranty of # +' # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +' # GNU General Public License for more details. # +' # # +' # You should have received a copy of the GNU General Public License # +' # along with Ember Media Manager. If not, see . # +' ################################################################################ + +Imports System +Imports System.IO +Imports System.Net +Imports System.Text +Imports System.Text.RegularExpressions +Imports System.Xml +Imports EmberAPI +Imports WatTmdb + +Public Class Trailers + +#Region "Fields" + + Private WebPage As New HTTP + Private _ImdbID As String = String.Empty + Private _ImdbTrailerPage As String = String.Empty + Private _TrailerList As New List(Of String) + Private _TMDBConf As V3.TmdbConfiguration + Private _TMDBConfE As V3.TmdbConfiguration + Private _TMDBApi As V3.Tmdb + Private _TMDBApiE As V3.Tmdb + Private _MySettings As EmberTMDBScraperModule.sMySettings + +#End Region 'Fields + +#Region "Constructors" + + Public Sub New(ByRef tTMDBConf As V3.TmdbConfiguration, ByRef tTMDBConfE As V3.TmdbConfiguration, ByRef tTMDBApi As V3.Tmdb, ByRef tTMDBApiE As V3.Tmdb, ByRef tMySettings As EmberTMDBScraperModule.sMySettings) + Me.Clear() + _TMDBConf = tTMDBConf + _TMDBConfE = tTMDBConfE + _TMDBApi = tTMDBApi + _TMDBApiE = tTMDBApiE + _MySettings = tMySettings + AddHandler WebPage.ProgressUpdated, AddressOf DownloadProgressUpdated + End Sub + +#End Region 'Constructors + +#Region "Events" + + Public Event ProgressUpdated(ByVal iPercent As Integer) + +#End Region 'Events + +#Region "Methods" + + Public Sub Cancel() + Me.WebPage.Cancel() + End Sub + + Public Sub Clear() + Me._TrailerList.Clear() + Me._ImdbID = String.Empty + Me._ImdbTrailerPage = String.Empty + End Sub + + Public Sub DeleteTrailers(ByVal sPath As String, ByVal NewTrailer As String) + Dim parPath As String = Directory.GetParent(sPath).FullName + Dim tmpName As String = Path.Combine(parPath, StringUtils.CleanStackingMarkers(Path.GetFileNameWithoutExtension(sPath))) + Dim tmpNameNoStack As String = Path.Combine(parPath, Path.GetFileNameWithoutExtension(sPath)) + For Each t As String In Master.eSettings.ValidExts + If File.Exists(String.Concat(tmpName, "-trailer", t)) AndAlso Not String.Concat(tmpName, "-trailer", t).ToLower = NewTrailer.ToLower Then + File.Delete(String.Concat(tmpName, "-trailer", t)) + ElseIf File.Exists(String.Concat(tmpName, "[trailer]", t)) AndAlso Not String.Concat(tmpName, "[trailer]", t).ToLower = NewTrailer.ToLower Then + File.Delete(String.Concat(tmpName, "[trailer]", t)) + ElseIf File.Exists(String.Concat(tmpNameNoStack, "-trailer", t)) AndAlso Not String.Concat(tmpNameNoStack, "-trailer", t).ToLower = NewTrailer.ToLower Then + File.Delete(String.Concat(tmpNameNoStack, "-trailer", t)) + ElseIf File.Exists(String.Concat(tmpNameNoStack, "[trailer]", t)) AndAlso Not String.Concat(tmpNameNoStack, "[trailer]", t).ToLower = NewTrailer.ToLower Then + File.Delete(String.Concat(tmpNameNoStack, "[trailer]", t)) + ElseIf Master.eSettings.VideoTSParentXBMC AndAlso FileUtils.Common.isBDRip(sPath) AndAlso File.Exists(String.Concat(Directory.GetParent(Directory.GetParent(sPath).FullName).FullName, "\", "index-trailer", t)) AndAlso Not String.Concat(Directory.GetParent(Directory.GetParent(sPath).FullName).FullName, "\", "index-trailer", t).ToLower = NewTrailer.ToLower Then + File.Delete(String.Concat(Directory.GetParent(Directory.GetParent(sPath).FullName).FullName, "\", "index-trailer", t)) + End If + Next + End Sub + + Public Sub DownloadProgressUpdated(ByVal iPercent As Integer) + RaiseEvent ProgressUpdated(iPercent) + End Sub + + Public Function DownloadSingleTrailer(ByVal sPath As String, ByVal ImdbID As String, ByVal isSingle As Boolean, ByVal currNfoTrailer As String) As String + Dim tURL As String = String.Empty + Try + Me._TrailerList.Clear() + + If Not Master.eSettings.UpdaterTrailersNoDownload AndAlso IsAllowedToDownload(sPath, isSingle, currNfoTrailer, True) Then + Me.GetTrailers(ImdbID, True) + + If Me._TrailerList.Count > 0 Then + + Dim tLink As String = String.Empty + If Regex.IsMatch(Me._TrailerList.Item(0).ToString, "http:\/\/.*youtube.*\/watch\?v=(.{11})&?.*") Then + Dim YT As New YouTube.Scraper + YT.GetVideoLinks(Me._TrailerList.Item(0).ToString) + If YT.VideoLinks.ContainsKey(Master.eSettings.PreferredTrailerQuality) Then + tLink = YT.VideoLinks(Master.eSettings.PreferredTrailerQuality).URL + Else + Select Case Master.eSettings.PreferredTrailerQuality + Case Enums.TrailerQuality.HD1080p + If YT.VideoLinks.ContainsKey(Enums.TrailerQuality.HD720p) Then + tLink = YT.VideoLinks(Enums.TrailerQuality.HD720p).URL + ElseIf YT.VideoLinks.ContainsKey(Enums.TrailerQuality.HQFLV) Then + tLink = YT.VideoLinks(Enums.TrailerQuality.HQFLV).URL + ElseIf YT.VideoLinks.ContainsKey(Enums.TrailerQuality.SQMP4) Then + tLink = YT.VideoLinks(Enums.TrailerQuality.SQMP4).URL + ElseIf YT.VideoLinks.ContainsKey(Enums.TrailerQuality.SQFLV) Then + tLink = YT.VideoLinks(Enums.TrailerQuality.SQFLV).URL + End If + Case Enums.TrailerQuality.HD1080pVP8 + If YT.VideoLinks.ContainsKey(Enums.TrailerQuality.HD720pVP8) Then + tLink = YT.VideoLinks(Enums.TrailerQuality.HD720pVP8).URL + ElseIf YT.VideoLinks.ContainsKey(Enums.TrailerQuality.HQVP8) Then + tLink = YT.VideoLinks(Enums.TrailerQuality.HQVP8).URL + ElseIf YT.VideoLinks.ContainsKey(Enums.TrailerQuality.SQVP8) Then + tLink = YT.VideoLinks(Enums.TrailerQuality.SQVP8).URL + End If + Case Enums.TrailerQuality.HD720p + If YT.VideoLinks.ContainsKey(Enums.TrailerQuality.HQFLV) Then + tLink = YT.VideoLinks(Enums.TrailerQuality.HQFLV).URL + ElseIf YT.VideoLinks.ContainsKey(Enums.TrailerQuality.SQMP4) Then + tLink = YT.VideoLinks(Enums.TrailerQuality.SQMP4).URL + ElseIf YT.VideoLinks.ContainsKey(Enums.TrailerQuality.SQFLV) Then + tLink = YT.VideoLinks(Enums.TrailerQuality.SQFLV).URL + End If + Case Enums.TrailerQuality.HD720pVP8 + If YT.VideoLinks.ContainsKey(Enums.TrailerQuality.HQVP8) Then + tLink = YT.VideoLinks(Enums.TrailerQuality.HQVP8).URL + ElseIf YT.VideoLinks.ContainsKey(Enums.TrailerQuality.SQVP8) Then + tLink = YT.VideoLinks(Enums.TrailerQuality.SQVP8).URL + End If + Case Enums.TrailerQuality.HQFLV + If YT.VideoLinks.ContainsKey(Enums.TrailerQuality.SQMP4) Then + tLink = YT.VideoLinks(Enums.TrailerQuality.SQMP4).URL + ElseIf YT.VideoLinks.ContainsKey(Enums.TrailerQuality.SQFLV) Then + tLink = YT.VideoLinks(Enums.TrailerQuality.SQFLV).URL + End If + Case Enums.TrailerQuality.HQVP8 + If YT.VideoLinks.ContainsKey(Enums.TrailerQuality.SQVP8) Then + tLink = YT.VideoLinks(Enums.TrailerQuality.SQVP8).URL + End If + Case Enums.TrailerQuality.SQMP4 + If YT.VideoLinks.ContainsKey(Enums.TrailerQuality.SQFLV) Then + tLink = YT.VideoLinks(Enums.TrailerQuality.SQFLV).URL + End If + Case Enums.TrailerQuality.SQFLV + tLink = String.Empty + Case Enums.TrailerQuality.SQVP8 + tLink = String.Empty + End Select + End If + Else + tLink = Me._TrailerList.Item(0).ToString + End If + + If Not String.IsNullOrEmpty(tLink) Then + tURL = WebPage.DownloadFile(tLink, sPath, False, "trailer") + If Not String.IsNullOrEmpty(tURL) Then + 'delete any other trailer if enabled in settings and download successful + If Master.eSettings.DeleteAllTrailers Then + Me.DeleteTrailers(sPath, tURL) + End If + End If + End If + End If + ElseIf Master.eSettings.UpdaterTrailersNoDownload AndAlso IsAllowedToDownload(sPath, isSingle, currNfoTrailer, False) Then + Me.GetTrailers(ImdbID, True) + + If Me._TrailerList.Count > 0 Then + tURL = Me._TrailerList.Item(0).ToString + End If + End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + Return tURL + End Function + + Public Function DownloadTrailer(ByVal sPath As String, ByVal sURL As String) As String + Dim tURL As String = String.Empty + If Not String.IsNullOrEmpty(sURL) Then + tURL = WebPage.DownloadFile(sURL, sPath, True, "trailer") + + If Not String.IsNullOrEmpty(tURL) Then + 'delete any other trailer if enabled in settings and download successful + If Master.eSettings.DeleteAllTrailers Then + Me.DeleteTrailers(sPath, tURL) + End If + End If + End If + Return tURL + End Function + + Public Function GetTrailers(ByVal ImdbID As String, Optional ByVal BreakAfterFound As Boolean = True) As List(Of String) + Me._ImdbID = ImdbID + If AdvancedSettings.GetBooleanSetting("UseTMDBTrailer", False) Then + Me.GetTMDBTrailer() + End If + + Return Me._TrailerList + End Function + + Public Function IsAllowedToDownload(ByVal sPath As String, ByVal isDL As Boolean, ByVal currNfoTrailer As String, Optional ByVal isSS As Boolean = False) As Boolean + Dim fScanner As New Scanner + + If isDL Then + If String.IsNullOrEmpty(fScanner.GetTrailerPath(sPath)) OrElse Master.eSettings.OverwriteTrailer Then + Return True + Else + If isSS AndAlso String.IsNullOrEmpty(fScanner.GetTrailerPath(sPath)) Then + If String.IsNullOrEmpty(currNfoTrailer) OrElse Not Master.eSettings.LockTrailer Then + Return True + Else + Return False + End If + Else + Return False + End If + End If + Else + If String.IsNullOrEmpty(currNfoTrailer) OrElse Not Master.eSettings.LockTrailer Then + Return True + Else + Return False + End If + End If + End Function + + Private Sub GetTMDBTrailer() + Dim TMDB As New TMDB.Scraper(_TMDBConf, _TMDBConfE, _TMDBApi, _TMDBApiE, _MySettings) + Dim YT As List(Of String) + + YT = TMDB.GetTrailers(_ImdbID) + + If Not YT.Count = 0 Then + For Each ast In YT + Me._TrailerList.Add(ast) + Next + End If + + TMDB = Nothing + End Sub + +#End Region 'Methods + +End Class \ No newline at end of file diff --git a/Addons/scraper.EmberCore.TMDB/Scraper/clsScrapeYouTube.vb b/Addons/scraper.EmberCore.TMDB/Scraper/clsScrapeYouTube.vb new file mode 100644 index 0000000..51ed7c4 --- /dev/null +++ b/Addons/scraper.EmberCore.TMDB/Scraper/clsScrapeYouTube.vb @@ -0,0 +1,336 @@ +' ################################################################################ +' # EMBER MEDIA MANAGER # +' ################################################################################ +' ################################################################################ +' # This file is part of Ember Media Manager. # +' # # +' # Ember Media Manager is free software: you can redistribute it and/or modify # +' # it under the terms of the GNU General Public License as published by # +' # the Free Software Foundation, either version 3 of the License, or # +' # (at your option) any later version. # +' # # +' # Ember Media Manager is distributed in the hope that it will be useful, # +' # but WITHOUT ANY WARRANTY; without even the implied warranty of # +' # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +' # GNU General Public License for more details. # +' # # +' # You should have received a copy of the GNU General Public License # +' # along with Ember Media Manager. If not, see . # +' ################################################################################ + +Imports System.Text.RegularExpressions +Imports EmberAPI + +Namespace YouTube + + Public Class Scraper + +#Region "Fields" + + Friend WithEvents bwYT As New System.ComponentModel.BackgroundWorker + + Private _VideoLinks As VideoLinkItemCollection + +#End Region 'Fields + +#Region "Events" + + Public Event Exception(ByVal ex As Exception) + + Public Event VideoLinksRetrieved(ByVal bSuccess As Boolean) + +#End Region 'Events + +#Region "Properties" + + Public ReadOnly Property VideoLinks() As VideoLinkItemCollection + Get + If _VideoLinks Is Nothing Then + _VideoLinks = New VideoLinkItemCollection + End If + Return _VideoLinks + End Get + End Property + +#End Region 'Properties + +#Region "Methods" + + Public Sub CancelAsync() + If bwYT.IsBusy Then bwYT.CancelAsync() + + While bwYT.IsBusy + Application.DoEvents() + Threading.Thread.Sleep(50) + End While + End Sub + + Public Sub GetVideoLinks(ByVal url As String) + Try + _VideoLinks = ParseYTFormats(url, False) + + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + Public Sub GetVideoLinksAsync(ByVal url As String) + Try + If Not bwYT.IsBusy Then + _VideoLinks = Nothing + bwYT.WorkerSupportsCancellation = True + bwYT.RunWorkerAsync(url) + End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + Private Sub bwYT_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles bwYT.DoWork + Dim Url As String = DirectCast(e.Argument, String) + + Try + e.Result = ParseYTFormats(Url, True) + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + Private Sub bwYT_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles bwYT.RunWorkerCompleted + Try + If e.Cancelled Then + 'user cancelled + RaiseEvent VideoLinksRetrieved(False) + ElseIf e.Error IsNot Nothing Then + 'exception occurred + RaiseEvent Exception(e.Error) + Else + 'all good + If e.Result IsNot Nothing Then + _VideoLinks = DirectCast(e.Result, VideoLinkItemCollection) + RaiseEvent VideoLinksRetrieved(True) + Else + RaiseEvent VideoLinksRetrieved(False) + End If + End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + Private Function GetVideoTitle(ByVal HTML As String) As String + Dim result As String = "" + 'Dim KeyPattern As String = "'VIDEO_TITLE':\s*'([^']*?)'" + Dim KeyPattern As String = "meta name=\""title\"" content=\s*\""([^']*?)\""" + 'meta name="title" content= + If Regex.IsMatch(HTML, KeyPattern) Then + result = Regex.Match(HTML, KeyPattern).Groups(1).Value + End If + + Return result + End Function + + Private Function ParseYTFormats(ByVal url As String, ByVal doProgress As Boolean) As VideoLinkItemCollection + Dim DownloadLinks As New VideoLinkItemCollection + Dim sHTTP As New HTTP + + Try + If bwYT.CancellationPending Then Return DownloadLinks + + Dim Html As String = sHTTP.DownloadData(url) + If Html.ToLower.Contains("page not found") Then + Html = String.Empty + End If + + If String.IsNullOrEmpty(Html.Trim) Then Return DownloadLinks + If bwYT.CancellationPending Then Return DownloadLinks + + Dim VideoTitle As String = GetVideoTitle(Html) + VideoTitle = Regex.Replace(VideoTitle, "['?\\:*<>]*", "") + + Dim fmtMatch As Match = Regex.Match(Html, "url_encoded_fmt_stream_map\"": \""(.*?)\"", \""", RegexOptions.IgnoreCase) + If fmtMatch.Success Then + Dim FormatMap As String = fmtMatch.Groups(1).Value + Dim decoded As String = Web.HttpUtility.UrlDecode(FormatMap) + Dim FormatArray() As String = Split(decoded.Replace(", ", ";"), ",") + + Dim rurl As New Regex("url=([^\\]+)", RegexOptions.IgnoreCase) + Dim rsig As New Regex("sig=([^\\]+)", RegexOptions.IgnoreCase) + Dim ritag As New Regex("itag=(\d+)", RegexOptions.IgnoreCase) + + For i As Integer = 0 To FormatArray.Length - 1 + Dim yturl As String = rurl.Match(FormatArray(i)).Groups(1).Value + Dim ytitag As String = ritag.Match(FormatArray(i)).Groups(1).Value + Dim ytsig As String = rsig.Match(FormatArray(i)).Groups(1).Value + + 'Console.WriteLine("Trailer Itag: {0}", ytitag) + 'Console.WriteLine("Trailer Url: {0}", yturl) + 'Console.WriteLine("Trailer Sig: {0}", ytsig) + + Dim Link As New VideoLinkItem + Select Case ytitag + ' ********************************************************************** + ' see all itags http://en.wikipedia.org/wiki/YouTube#Quality_and_codecs + ' ********************************************************************** + Case "5" + Link.Description = "240p (FLV, H.263)" + Link.FormatQuality = Enums.TrailerQuality.OTHERS + Case "6" + Link.Description = "270p (FLV, H.263)" + Link.FormatQuality = Enums.TrailerQuality.OTHERS + Case "13" + Link.Description = "144p (3GP, MPEG-4)" + Link.FormatQuality = Enums.TrailerQuality.OTHERS + Case "17" + Link.Description = "144p (3GP, MPEG-4)" + Link.FormatQuality = Enums.TrailerQuality.OTHERS + Case "18" + Link.Description = "360p (MP4, H.264)" + Link.FormatQuality = Enums.TrailerQuality.SQMP4 + Case "22" + Link.Description = "720p (MP4, H.264)" + Link.FormatQuality = Enums.TrailerQuality.HD720p + Case "34" + Link.Description = "360p (FLV, H.264)" + Link.FormatQuality = Enums.TrailerQuality.SQFLV + Case "35" + Link.Description = "480p (FLV, H.264)" + Link.FormatQuality = Enums.TrailerQuality.HQFLV + Case "36" + Link.Description = "240p (3GP, MPEG-4)" + Link.FormatQuality = Enums.TrailerQuality.OTHERS + Case "37" + Link.Description = "1080p (MP4, H.264)" + Link.FormatQuality = Enums.TrailerQuality.HD1080p + Case "38" + Link.Description = "1536p (MP4, H.264)" + Link.FormatQuality = Enums.TrailerQuality.OTHERS + Case "43" + Link.Description = "360p (WebM, VP8)" + Link.FormatQuality = Enums.TrailerQuality.SQVP8 + Case "44" + Link.Description = "480p (WebM, VP8)" + Link.FormatQuality = Enums.TrailerQuality.HQVP8 + Case "45" + Link.Description = "720p (WebM, VP8)" + Link.FormatQuality = Enums.TrailerQuality.HD720pVP8 + Case "46" + Link.Description = "1080p (WebM, VP8)" + Link.FormatQuality = Enums.TrailerQuality.HD1080pVP8 + Case "82" + Link.Description = "3D 360p (MP4, H.264)" + Link.FormatQuality = Enums.TrailerQuality.OTHERS + Case "83" + Link.Description = "3D 480p (MP4, H.264)" + Link.FormatQuality = Enums.TrailerQuality.OTHERS + Case "84" + Link.Description = "3D 720p (MP4, H.264)" + Link.FormatQuality = Enums.TrailerQuality.OTHERS + Case "85" + Link.Description = "3D 520p (MP4, H.264)" + Link.FormatQuality = Enums.TrailerQuality.OTHERS + Case "100" + Link.Description = "3D 360p (WebM, VP8)" + Link.FormatQuality = Enums.TrailerQuality.OTHERS + Case "101" + Link.Description = "3D 480p (WebM, VP8)" + Link.FormatQuality = Enums.TrailerQuality.OTHERS + Case "102" + Link.Description = "3D 720p (WebM, VP8)" + Link.FormatQuality = Enums.TrailerQuality.OTHERS + Case "120" + Link.Description = "720p LiveStream (FLV, AVC)" + Link.FormatQuality = Enums.TrailerQuality.OTHERS + Case Else + Link.Description = "Other" + Link.FormatQuality = Enums.TrailerQuality.OTHERS + 'Continue For + End Select + + Link.URL = Web.HttpUtility.UrlDecode(Web.HttpUtility.UrlDecode(yturl)) & "&signature=" & ytsig & "&title=" & Web.HttpUtility.UrlEncode(VideoTitle) + Link.URL = Link.URL.Replace("sig=", "signature=") ' sig= returns HTTP 403 //oldstyle, keep it + 'Console.WriteLine("Trailer Url decoded: {0}", Link.URL) + + If bwYT.CancellationPending Then Return DownloadLinks + + If Not String.IsNullOrEmpty(Link.URL) AndAlso sHTTP.IsValidURL(Link.URL) Then + DownloadLinks.Add(Link) + End If + + If bwYT.CancellationPending Then Return DownloadLinks + + Next + + End If + Return DownloadLinks + + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + Return New VideoLinkItemCollection + Finally + sHTTP = Nothing + End Try + End Function + +#End Region 'Methods + + End Class + + Public Class VideoLinkItem + +#Region "Fields" + + Private _Description As String + Private _FormatQuality As Enums.TrailerQuality + Private _URL As String + +#End Region 'Fields + +#Region "Properties" + + Public Property Description() As String + Get + Return _Description + End Get + Set(ByVal value As String) + _Description = value + End Set + End Property + + Public Property URL() As String + Get + Return _URL + End Get + Set(ByVal value As String) + _URL = value + End Set + End Property + + Friend Property FormatQuality() As Enums.TrailerQuality + Get + Return _FormatQuality + End Get + Set(ByVal value As Enums.TrailerQuality) + _FormatQuality = value + End Set + End Property + +#End Region 'Properties + + End Class + + Public Class VideoLinkItemCollection + Inherits Generic.SortedList(Of Enums.TrailerQuality, VideoLinkItem) + +#Region "Methods" + + Public Shadows Sub Add(ByVal Link As VideoLinkItem) + If Not MyBase.ContainsKey(Link.FormatQuality) Then MyBase.Add(Link.FormatQuality, Link) + End Sub + +#End Region 'Methods + + End Class + +End Namespace + diff --git a/Addons/scraper.EmberCore.TMDB/Scraper/dlgImgSelect.Designer.vb b/Addons/scraper.EmberCore.TMDB/Scraper/dlgImgSelect.Designer.vb new file mode 100644 index 0000000..3c9254c --- /dev/null +++ b/Addons/scraper.EmberCore.TMDB/Scraper/dlgImgSelect.Designer.vb @@ -0,0 +1,569 @@ + _ +Partial Class dlgImgSelect + Inherits System.Windows.Forms.Form + + 'Form overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(dlgImgSelect)) + Me.TableLayoutPanel1 = New System.Windows.Forms.TableLayoutPanel() + Me.OK_Button = New System.Windows.Forms.Button() + Me.Cancel_Button = New System.Windows.Forms.Button() + Me.pnlBG = New System.Windows.Forms.Panel() + Me.pnlBottomMain = New System.Windows.Forms.Panel() + Me.pnlSize = New System.Windows.Forms.Panel() + Me.btnPreview = New System.Windows.Forms.Button() + Me.rbSmall = New System.Windows.Forms.RadioButton() + Me.rbMedium = New System.Windows.Forms.RadioButton() + Me.rbLarge = New System.Windows.Forms.RadioButton() + Me.rbXLarge = New System.Windows.Forms.RadioButton() + Me.pnlFanart = New System.Windows.Forms.Panel() + Me.chkThumb = New System.Windows.Forms.CheckBox() + Me.chkMid = New System.Windows.Forms.CheckBox() + Me.chkOriginal = New System.Windows.Forms.CheckBox() + Me.lblInfo = New System.Windows.Forms.Label() + Me.pnlDLStatus = New System.Windows.Forms.Panel() + Me.pnlIMDB = New System.Windows.Forms.Panel() + Me.lblDL6Status = New System.Windows.Forms.Label() + Me.lblDL6 = New System.Windows.Forms.Label() + Me.pbDL6 = New System.Windows.Forms.ProgressBar() + Me.pnlSinglePic = New System.Windows.Forms.Panel() + Me.Label2 = New System.Windows.Forms.Label() + Me.ProgressBar1 = New System.Windows.Forms.ProgressBar() + Me.pnlFANARTTV = New System.Windows.Forms.Panel() + Me.lblDL3Status = New System.Windows.Forms.Label() + Me.lblDL3 = New System.Windows.Forms.Label() + Me.pbDL3 = New System.Windows.Forms.ProgressBar() + Me.pnlMDB = New System.Windows.Forms.Panel() + Me.lblDL5Status = New System.Windows.Forms.Label() + Me.lblDL5 = New System.Windows.Forms.Label() + Me.pbDL5 = New System.Windows.Forms.ProgressBar() + Me.pnlIMPA = New System.Windows.Forms.Panel() + Me.lblDL4Status = New System.Windows.Forms.Label() + Me.lblDL4 = New System.Windows.Forms.Label() + Me.pbDL4 = New System.Windows.Forms.ProgressBar() + Me.pnlTMDB = New System.Windows.Forms.Panel() + Me.lblDL2Status = New System.Windows.Forms.Label() + Me.lblDL2 = New System.Windows.Forms.Label() + Me.pbDL2 = New System.Windows.Forms.ProgressBar() + Me.TableLayoutPanel1.SuspendLayout() + Me.pnlBottomMain.SuspendLayout() + Me.pnlSize.SuspendLayout() + Me.pnlFanart.SuspendLayout() + Me.pnlDLStatus.SuspendLayout() + Me.pnlIMDB.SuspendLayout() + Me.pnlSinglePic.SuspendLayout() + Me.pnlFANARTTV.SuspendLayout() + Me.pnlMDB.SuspendLayout() + Me.pnlIMPA.SuspendLayout() + Me.pnlTMDB.SuspendLayout() + Me.SuspendLayout() + ' + 'TableLayoutPanel1 + ' + Me.TableLayoutPanel1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.TableLayoutPanel1.ColumnCount = 2 + Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) + Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) + Me.TableLayoutPanel1.Controls.Add(Me.OK_Button, 0, 0) + Me.TableLayoutPanel1.Controls.Add(Me.Cancel_Button, 1, 0) + Me.TableLayoutPanel1.Location = New System.Drawing.Point(687, 11) + Me.TableLayoutPanel1.Name = "TableLayoutPanel1" + Me.TableLayoutPanel1.RowCount = 1 + Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) + Me.TableLayoutPanel1.Size = New System.Drawing.Size(146, 29) + Me.TableLayoutPanel1.TabIndex = 0 + ' + 'OK_Button + ' + Me.OK_Button.Anchor = System.Windows.Forms.AnchorStyles.None + Me.OK_Button.Enabled = False + Me.OK_Button.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.OK_Button.Location = New System.Drawing.Point(3, 3) + Me.OK_Button.Name = "OK_Button" + Me.OK_Button.Size = New System.Drawing.Size(67, 23) + Me.OK_Button.TabIndex = 0 + Me.OK_Button.Text = "OK" + ' + 'Cancel_Button + ' + Me.Cancel_Button.Anchor = System.Windows.Forms.AnchorStyles.None + Me.Cancel_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.Cancel_Button.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Cancel_Button.Location = New System.Drawing.Point(76, 3) + Me.Cancel_Button.Name = "Cancel_Button" + Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) + Me.Cancel_Button.TabIndex = 1 + Me.Cancel_Button.Text = "Cancel" + ' + 'pnlBG + ' + Me.pnlBG.AutoScroll = True + Me.pnlBG.Dock = System.Windows.Forms.DockStyle.Fill + Me.pnlBG.Location = New System.Drawing.Point(0, 0) + Me.pnlBG.Name = "pnlBG" + Me.pnlBG.Size = New System.Drawing.Size(836, 495) + Me.pnlBG.TabIndex = 1 + Me.pnlBG.Visible = False + ' + 'pnlBottomMain + ' + Me.pnlBottomMain.Controls.Add(Me.pnlSize) + Me.pnlBottomMain.Controls.Add(Me.pnlFanart) + Me.pnlBottomMain.Controls.Add(Me.lblInfo) + Me.pnlBottomMain.Controls.Add(Me.TableLayoutPanel1) + Me.pnlBottomMain.Dock = System.Windows.Forms.DockStyle.Bottom + Me.pnlBottomMain.Location = New System.Drawing.Point(0, 495) + Me.pnlBottomMain.Name = "pnlBottomMain" + Me.pnlBottomMain.Size = New System.Drawing.Size(836, 50) + Me.pnlBottomMain.TabIndex = 0 + ' + 'pnlSize + ' + Me.pnlSize.BackColor = System.Drawing.Color.White + Me.pnlSize.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D + Me.pnlSize.Controls.Add(Me.btnPreview) + Me.pnlSize.Controls.Add(Me.rbSmall) + Me.pnlSize.Controls.Add(Me.rbMedium) + Me.pnlSize.Controls.Add(Me.rbLarge) + Me.pnlSize.Controls.Add(Me.rbXLarge) + Me.pnlSize.Location = New System.Drawing.Point(8, 8) + Me.pnlSize.Name = "pnlSize" + Me.pnlSize.Size = New System.Drawing.Size(673, 34) + Me.pnlSize.TabIndex = 4 + Me.pnlSize.Visible = False + ' + 'btnPreview + ' + Me.btnPreview.Enabled = False + Me.btnPreview.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.btnPreview.Image = CType(resources.GetObject("btnPreview.Image"), System.Drawing.Image) + Me.btnPreview.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnPreview.Location = New System.Drawing.Point(593, 5) + Me.btnPreview.Name = "btnPreview" + Me.btnPreview.Size = New System.Drawing.Size(75, 23) + Me.btnPreview.TabIndex = 6 + Me.btnPreview.Text = "Preview" + Me.btnPreview.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnPreview.UseVisualStyleBackColor = True + ' + 'rbSmall + ' + Me.rbSmall.AutoSize = True + Me.rbSmall.Enabled = False + Me.rbSmall.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.rbSmall.Location = New System.Drawing.Point(475, 8) + Me.rbSmall.Name = "rbSmall" + Me.rbSmall.Size = New System.Drawing.Size(53, 17) + Me.rbSmall.TabIndex = 5 + Me.rbSmall.TabStop = True + Me.rbSmall.Text = "Small" + Me.rbSmall.UseVisualStyleBackColor = True + ' + 'rbMedium + ' + Me.rbMedium.AutoSize = True + Me.rbMedium.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.rbMedium.Location = New System.Drawing.Point(201, 8) + Me.rbMedium.Name = "rbMedium" + Me.rbMedium.Size = New System.Drawing.Size(69, 17) + Me.rbMedium.TabIndex = 4 + Me.rbMedium.TabStop = True + Me.rbMedium.Text = "Medium" + Me.rbMedium.UseVisualStyleBackColor = True + ' + 'rbLarge + ' + Me.rbLarge.AutoSize = True + Me.rbLarge.Enabled = False + Me.rbLarge.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.rbLarge.Location = New System.Drawing.Point(343, 8) + Me.rbLarge.Name = "rbLarge" + Me.rbLarge.Size = New System.Drawing.Size(55, 17) + Me.rbLarge.TabIndex = 3 + Me.rbLarge.TabStop = True + Me.rbLarge.Text = "Cover" + Me.rbLarge.UseVisualStyleBackColor = True + ' + 'rbXLarge + ' + Me.rbXLarge.AutoSize = True + Me.rbXLarge.Enabled = False + Me.rbXLarge.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.rbXLarge.Location = New System.Drawing.Point(26, 8) + Me.rbXLarge.Name = "rbXLarge" + Me.rbXLarge.Size = New System.Drawing.Size(66, 17) + Me.rbXLarge.TabIndex = 2 + Me.rbXLarge.TabStop = True + Me.rbXLarge.Text = "Original" + Me.rbXLarge.UseVisualStyleBackColor = True + ' + 'pnlFanart + ' + Me.pnlFanart.BackColor = System.Drawing.Color.White + Me.pnlFanart.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.pnlFanart.Controls.Add(Me.chkThumb) + Me.pnlFanart.Controls.Add(Me.chkMid) + Me.pnlFanart.Controls.Add(Me.chkOriginal) + Me.pnlFanart.Location = New System.Drawing.Point(8, 8) + Me.pnlFanart.Name = "pnlFanart" + Me.pnlFanart.Size = New System.Drawing.Size(339, 34) + Me.pnlFanart.TabIndex = 5 + Me.pnlFanart.Visible = False + ' + 'chkThumb + ' + Me.chkThumb.AutoSize = True + Me.chkThumb.Location = New System.Drawing.Point(231, 8) + Me.chkThumb.Name = "chkThumb" + Me.chkThumb.Size = New System.Drawing.Size(111, 17) + Me.chkThumb.TabIndex = 9 + Me.chkThumb.Text = "Check All Thumb" + Me.chkThumb.UseVisualStyleBackColor = True + ' + 'chkMid + ' + Me.chkMid.AutoSize = True + Me.chkMid.Location = New System.Drawing.Point(131, 8) + Me.chkMid.Name = "chkMid" + Me.chkMid.Size = New System.Drawing.Size(96, 17) + Me.chkMid.TabIndex = 7 + Me.chkMid.Text = "Check All Mid" + Me.chkMid.UseVisualStyleBackColor = True + ' + 'chkOriginal + ' + Me.chkOriginal.AutoSize = True + Me.chkOriginal.Location = New System.Drawing.Point(7, 8) + Me.chkOriginal.Name = "chkOriginal" + Me.chkOriginal.Size = New System.Drawing.Size(118, 17) + Me.chkOriginal.TabIndex = 8 + Me.chkOriginal.Text = "Check All Original" + Me.chkOriginal.UseVisualStyleBackColor = True + ' + 'lblInfo + ' + Me.lblInfo.Location = New System.Drawing.Point(402, 10) + Me.lblInfo.Name = "lblInfo" + Me.lblInfo.Size = New System.Drawing.Size(240, 31) + Me.lblInfo.TabIndex = 3 + Me.lblInfo.Text = "Selected item will be set as fanart. All checked items will be saved to \extrathu" & _ + "mbs." + Me.lblInfo.TextAlign = System.Drawing.ContentAlignment.MiddleCenter + Me.lblInfo.Visible = False + ' + 'pnlDLStatus + ' + Me.pnlDLStatus.BackColor = System.Drawing.Color.White + Me.pnlDLStatus.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.pnlDLStatus.Controls.Add(Me.pnlIMDB) + Me.pnlDLStatus.Controls.Add(Me.pnlSinglePic) + Me.pnlDLStatus.Controls.Add(Me.pnlFANARTTV) + Me.pnlDLStatus.Controls.Add(Me.pnlMDB) + Me.pnlDLStatus.Controls.Add(Me.pnlIMPA) + Me.pnlDLStatus.Controls.Add(Me.pnlTMDB) + Me.pnlDLStatus.Location = New System.Drawing.Point(253, 98) + Me.pnlDLStatus.Name = "pnlDLStatus" + Me.pnlDLStatus.Size = New System.Drawing.Size(331, 330) + Me.pnlDLStatus.TabIndex = 0 + Me.pnlDLStatus.Visible = False + ' + 'pnlIMDB + ' + Me.pnlIMDB.Controls.Add(Me.lblDL6Status) + Me.pnlIMDB.Controls.Add(Me.lblDL6) + Me.pnlIMDB.Controls.Add(Me.pbDL6) + Me.pnlIMDB.Location = New System.Drawing.Point(3, 84) + Me.pnlIMDB.Name = "pnlIMDB" + Me.pnlIMDB.Size = New System.Drawing.Size(321, 75) + Me.pnlIMDB.TabIndex = 9 + ' + 'lblDL6Status + ' + Me.lblDL6Status.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblDL6Status.Location = New System.Drawing.Point(5, 34) + Me.lblDL6Status.Name = "lblDL6Status" + Me.lblDL6Status.Size = New System.Drawing.Size(310, 13) + Me.lblDL6Status.TabIndex = 8 + ' + 'lblDL6 + ' + Me.lblDL6.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblDL6.Location = New System.Drawing.Point(5, 10) + Me.lblDL6.Name = "lblDL6" + Me.lblDL6.Size = New System.Drawing.Size(310, 13) + Me.lblDL6.TabIndex = 7 + Me.lblDL6.Text = "Performing Preliminary Tasks..." + ' + 'pbDL6 + ' + Me.pbDL6.Location = New System.Drawing.Point(6, 52) + Me.pbDL6.Name = "pbDL6" + Me.pbDL6.Size = New System.Drawing.Size(309, 19) + Me.pbDL6.Style = System.Windows.Forms.ProgressBarStyle.Continuous + Me.pbDL6.TabIndex = 6 + ' + 'pnlSinglePic + ' + Me.pnlSinglePic.BackColor = System.Drawing.Color.White + Me.pnlSinglePic.Controls.Add(Me.Label2) + Me.pnlSinglePic.Controls.Add(Me.ProgressBar1) + Me.pnlSinglePic.Location = New System.Drawing.Point(3, 3) + Me.pnlSinglePic.Name = "pnlSinglePic" + Me.pnlSinglePic.Size = New System.Drawing.Size(321, 75) + Me.pnlSinglePic.TabIndex = 9 + Me.pnlSinglePic.Visible = False + ' + 'Label2 + ' + Me.Label2.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Label2.Location = New System.Drawing.Point(5, 10) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(310, 13) + Me.Label2.TabIndex = 7 + Me.Label2.Text = "Downloading Selected Image..." + ' + 'ProgressBar1 + ' + Me.ProgressBar1.Location = New System.Drawing.Point(6, 53) + Me.ProgressBar1.MarqueeAnimationSpeed = 25 + Me.ProgressBar1.Name = "ProgressBar1" + Me.ProgressBar1.Size = New System.Drawing.Size(309, 19) + Me.ProgressBar1.Style = System.Windows.Forms.ProgressBarStyle.Marquee + Me.ProgressBar1.TabIndex = 6 + ' + 'pnlFANARTTV + ' + Me.pnlFANARTTV.Controls.Add(Me.lblDL3Status) + Me.pnlFANARTTV.Controls.Add(Me.lblDL3) + Me.pnlFANARTTV.Controls.Add(Me.pbDL3) + Me.pnlFANARTTV.Location = New System.Drawing.Point(3, 84) + Me.pnlFANARTTV.Name = "pnlFANARTTV" + Me.pnlFANARTTV.Size = New System.Drawing.Size(321, 75) + Me.pnlFANARTTV.TabIndex = 11 + ' + 'lblDL3Status + ' + Me.lblDL3Status.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblDL3Status.Location = New System.Drawing.Point(5, 34) + Me.lblDL3Status.Name = "lblDL3Status" + Me.lblDL3Status.Size = New System.Drawing.Size(310, 13) + Me.lblDL3Status.TabIndex = 8 + ' + 'lblDL3 + ' + Me.lblDL3.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblDL3.Location = New System.Drawing.Point(5, 10) + Me.lblDL3.Name = "lblDL3" + Me.lblDL3.Size = New System.Drawing.Size(310, 13) + Me.lblDL3.TabIndex = 7 + Me.lblDL3.Text = "Performing Preliminary Tasks..." + ' + 'pbDL3 + ' + Me.pbDL3.Location = New System.Drawing.Point(6, 53) + Me.pbDL3.Name = "pbDL3" + Me.pbDL3.Size = New System.Drawing.Size(309, 19) + Me.pbDL3.Style = System.Windows.Forms.ProgressBarStyle.Continuous + Me.pbDL3.TabIndex = 6 + ' + 'pnlMDB + ' + Me.pnlMDB.Controls.Add(Me.lblDL5Status) + Me.pnlMDB.Controls.Add(Me.lblDL5) + Me.pnlMDB.Controls.Add(Me.pbDL5) + Me.pnlMDB.Location = New System.Drawing.Point(3, 246) + Me.pnlMDB.Name = "pnlMDB" + Me.pnlMDB.Size = New System.Drawing.Size(321, 75) + Me.pnlMDB.TabIndex = 9 + ' + 'lblDL5Status + ' + Me.lblDL5Status.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblDL5Status.Location = New System.Drawing.Point(5, 34) + Me.lblDL5Status.Name = "lblDL5Status" + Me.lblDL5Status.Size = New System.Drawing.Size(310, 13) + Me.lblDL5Status.TabIndex = 8 + ' + 'lblDL5 + ' + Me.lblDL5.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblDL5.Location = New System.Drawing.Point(5, 10) + Me.lblDL5.Name = "lblDL5" + Me.lblDL5.Size = New System.Drawing.Size(310, 13) + Me.lblDL5.TabIndex = 7 + Me.lblDL5.Text = "Performing Preliminary Tasks..." + ' + 'pbDL5 + ' + Me.pbDL5.Location = New System.Drawing.Point(6, 53) + Me.pbDL5.Name = "pbDL5" + Me.pbDL5.Size = New System.Drawing.Size(309, 19) + Me.pbDL5.Style = System.Windows.Forms.ProgressBarStyle.Continuous + Me.pbDL5.TabIndex = 6 + ' + 'pnlIMPA + ' + Me.pnlIMPA.Controls.Add(Me.lblDL4Status) + Me.pnlIMPA.Controls.Add(Me.lblDL4) + Me.pnlIMPA.Controls.Add(Me.pbDL4) + Me.pnlIMPA.Location = New System.Drawing.Point(3, 165) + Me.pnlIMPA.Name = "pnlIMPA" + Me.pnlIMPA.Size = New System.Drawing.Size(321, 75) + Me.pnlIMPA.TabIndex = 6 + ' + 'lblDL4Status + ' + Me.lblDL4Status.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblDL4Status.Location = New System.Drawing.Point(5, 34) + Me.lblDL4Status.Name = "lblDL4Status" + Me.lblDL4Status.Size = New System.Drawing.Size(310, 13) + Me.lblDL4Status.TabIndex = 8 + ' + 'lblDL4 + ' + Me.lblDL4.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblDL4.Location = New System.Drawing.Point(5, 10) + Me.lblDL4.Name = "lblDL4" + Me.lblDL4.Size = New System.Drawing.Size(310, 13) + Me.lblDL4.TabIndex = 7 + Me.lblDL4.Text = "Performing Preliminary Tasks..." + ' + 'pbDL4 + ' + Me.pbDL4.Location = New System.Drawing.Point(6, 52) + Me.pbDL4.Name = "pbDL4" + Me.pbDL4.Size = New System.Drawing.Size(309, 19) + Me.pbDL4.Style = System.Windows.Forms.ProgressBarStyle.Continuous + Me.pbDL4.TabIndex = 6 + ' + 'pnlTMDB + ' + Me.pnlTMDB.Controls.Add(Me.lblDL2Status) + Me.pnlTMDB.Controls.Add(Me.lblDL2) + Me.pnlTMDB.Controls.Add(Me.pbDL2) + Me.pnlTMDB.Location = New System.Drawing.Point(3, 3) + Me.pnlTMDB.Name = "pnlTMDB" + Me.pnlTMDB.Size = New System.Drawing.Size(321, 75) + Me.pnlTMDB.TabIndex = 10 + ' + 'lblDL2Status + ' + Me.lblDL2Status.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblDL2Status.Location = New System.Drawing.Point(5, 34) + Me.lblDL2Status.Name = "lblDL2Status" + Me.lblDL2Status.Size = New System.Drawing.Size(310, 13) + Me.lblDL2Status.TabIndex = 8 + ' + 'lblDL2 + ' + Me.lblDL2.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblDL2.Location = New System.Drawing.Point(5, 10) + Me.lblDL2.Name = "lblDL2" + Me.lblDL2.Size = New System.Drawing.Size(310, 13) + Me.lblDL2.TabIndex = 7 + Me.lblDL2.Text = "Performing Preliminary Tasks..." + ' + 'pbDL2 + ' + Me.pbDL2.Location = New System.Drawing.Point(6, 52) + Me.pbDL2.Name = "pbDL2" + Me.pbDL2.Size = New System.Drawing.Size(309, 19) + Me.pbDL2.Style = System.Windows.Forms.ProgressBarStyle.Continuous + Me.pbDL2.TabIndex = 6 + ' + 'dlgImgSelect + ' + Me.AcceptButton = Me.OK_Button + Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi + Me.AutoScroll = True + Me.CancelButton = Me.Cancel_Button + Me.ClientSize = New System.Drawing.Size(836, 545) + Me.ControlBox = False + Me.Controls.Add(Me.pnlDLStatus) + Me.Controls.Add(Me.pnlBG) + Me.Controls.Add(Me.pnlBottomMain) + Me.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "dlgImgSelect" + Me.ShowIcon = False + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "Select Poster" + Me.TableLayoutPanel1.ResumeLayout(False) + Me.pnlBottomMain.ResumeLayout(False) + Me.pnlSize.ResumeLayout(False) + Me.pnlSize.PerformLayout() + Me.pnlFanart.ResumeLayout(False) + Me.pnlFanart.PerformLayout() + Me.pnlDLStatus.ResumeLayout(False) + Me.pnlIMDB.ResumeLayout(False) + Me.pnlSinglePic.ResumeLayout(False) + Me.pnlFANARTTV.ResumeLayout(False) + Me.pnlMDB.ResumeLayout(False) + Me.pnlIMPA.ResumeLayout(False) + Me.pnlTMDB.ResumeLayout(False) + Me.ResumeLayout(False) + + End Sub + Friend WithEvents TableLayoutPanel1 As System.Windows.Forms.TableLayoutPanel + Friend WithEvents OK_Button As System.Windows.Forms.Button + Friend WithEvents Cancel_Button As System.Windows.Forms.Button + Friend WithEvents pnlBG As System.Windows.Forms.Panel + Friend WithEvents pnlBottomMain As System.Windows.Forms.Panel + Friend WithEvents pnlDLStatus As System.Windows.Forms.Panel + Friend WithEvents pnlIMPA As System.Windows.Forms.Panel + Friend WithEvents lblDL4Status As System.Windows.Forms.Label + Friend WithEvents lblDL4 As System.Windows.Forms.Label + Friend WithEvents pbDL4 As System.Windows.Forms.ProgressBar + Friend WithEvents lblInfo As System.Windows.Forms.Label + Friend WithEvents pnlSize As System.Windows.Forms.Panel + Friend WithEvents rbSmall As System.Windows.Forms.RadioButton + Friend WithEvents rbMedium As System.Windows.Forms.RadioButton + Friend WithEvents rbLarge As System.Windows.Forms.RadioButton + Friend WithEvents rbXLarge As System.Windows.Forms.RadioButton + Friend WithEvents pnlSinglePic As System.Windows.Forms.Panel + Friend WithEvents Label2 As System.Windows.Forms.Label + Friend WithEvents ProgressBar1 As System.Windows.Forms.ProgressBar + Friend WithEvents pnlMDB As System.Windows.Forms.Panel + Friend WithEvents lblDL5Status As System.Windows.Forms.Label + Friend WithEvents lblDL5 As System.Windows.Forms.Label + Friend WithEvents pbDL5 As System.Windows.Forms.ProgressBar + Friend WithEvents pnlFanart As System.Windows.Forms.Panel + Friend WithEvents chkThumb As System.Windows.Forms.CheckBox + Friend WithEvents chkMid As System.Windows.Forms.CheckBox + Friend WithEvents chkOriginal As System.Windows.Forms.CheckBox + Friend WithEvents btnPreview As System.Windows.Forms.Button + Friend WithEvents pnlFANARTTV As System.Windows.Forms.Panel + Friend WithEvents lblDL3Status As System.Windows.Forms.Label + Friend WithEvents lblDL3 As System.Windows.Forms.Label + Friend WithEvents pbDL3 As System.Windows.Forms.ProgressBar + Friend WithEvents pnlTMDB As System.Windows.Forms.Panel + Friend WithEvents lblDL2Status As System.Windows.Forms.Label + Friend WithEvents lblDL2 As System.Windows.Forms.Label + Friend WithEvents pbDL2 As System.Windows.Forms.ProgressBar + Friend WithEvents pnlIMDB As System.Windows.Forms.Panel + Friend WithEvents lblDL6Status As System.Windows.Forms.Label + Friend WithEvents lblDL6 As System.Windows.Forms.Label + Friend WithEvents pbDL6 As System.Windows.Forms.ProgressBar + +End Class diff --git a/Addons/scraper.EmberCore.TMDB/Scraper/dlgImgSelect.resx b/Addons/scraper.EmberCore.TMDB/Scraper/dlgImgSelect.resx new file mode 100644 index 0000000..3491405 --- /dev/null +++ b/Addons/scraper.EmberCore.TMDB/Scraper/dlgImgSelect.resx @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK/wAA + Cv8BNGKaggAAAuRJREFUOE+lkltsS3Ecx3+ILAsPFrfEyxJPXkh0bokg4UG78TQNI5FImPBAJKiNhBAy + MTwRMRJ1ibsZ29jc2t00Vrq1p3q6tqft6Tk9t87YeLCHff3/3Sp4dZJPvv/f5fs7///5HwJA/8Nv88jw + 8ApD1y+blnnNtKwGjmXl/qCQMxt+fB9xjI2NEYdGR0dp9OfP6Yph+gOKjpBmMcy8CoxwPi5gok81kDGt + BPOUci+xt1LO0Gy+ZAZuUcbtCe4NpHEtLKNBkHGfrQt5dySNrpSKIcvcbJkmka5pNKhrtrfxFE71RlD3 + UcT5gIjt7THMvhLHTEZlSwz1n0ScZTXe8yKextec6TRNY3zAF0O3tUYl7Ovqh+t9EHs8IRSdC4FO9+WZ + VBfEjlchHPEF8z2PRQnDg9b4AE3L0hA7wqNwDFWvP2Cn1w9Hox90zAc6McFRH9Y97MWuDn++56YwgJEc + G2CwAdmsSkPsCLf6I1jb3IUNL3sY3Zhxxgs67AG5PCg+4YW9uRsbWY33XAp8xrBlOHVdI1IVhb5oWdv1 + QBjLn3qwtqUDq5s6MOd0O2jfizwlx9uwqtGLdazGey76Q/hm6k4tmyXKyDLlVMV29aOApU0erHnWgWmH + noF2NYL2Ph2nuhFF+5uw8okXy1hP/YcghjTVqSgZoqQkkZZK2m58ErDouRfzLjSDKt2grbf+ZpMbJSeb + sPA520FvCINqxinLaaKoKHJsETGK1rCIh+8F3HnTh7vvgrjHbqMAjx/0CGiNDCAqJZGUEk45zQYk4nG+ + i7LPgoBkNIpsOglTzcDSFOQ0FTmdwdRiyvNqKolELAZZlre0t7URLSkro21VVSVdnZ1pSZKQSqXAPizY + /wHDMMCuKg+Ps6oKJZNBsL//6+7q6gWTaPzhWjx31qzF5Xb7Acf69S6mNRV2e22Fw1G7gcGVUcPyro3l + 5Qfnl5auYZ4Zk7l3ClsxuBQGTszNx/9SqHHDVG76BaMnpgu1OH2ZAAAAAElFTkSuQmCC + + + \ No newline at end of file diff --git a/Addons/scraper.EmberCore.TMDB/Scraper/dlgImgSelect.vb b/Addons/scraper.EmberCore.TMDB/Scraper/dlgImgSelect.vb new file mode 100644 index 0000000..b2e44a9 --- /dev/null +++ b/Addons/scraper.EmberCore.TMDB/Scraper/dlgImgSelect.vb @@ -0,0 +1,1582 @@ +' ################################################################################ +' # EMBER MEDIA MANAGER # +' ################################################################################ +' ################################################################################ +' # This file is part of Ember Media Manager. # +' # # +' # Ember Media Manager is free software: you can redistribute it and/or modify # +' # it under the terms of the GNU General Public License as published by # +' # the Free Software Foundation, either version 3 of the License, or # +' # (at your option) any later version. # +' # # +' # Ember Media Manager is distributed in the hope that it will be useful, # +' # but WITHOUT ANY WARRANTY; without even the implied warranty of # +' # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +' # GNU General Public License for more details. # +' # # +' # You should have received a copy of the GNU General Public License # +' # along with Ember Media Manager. If not, see . # +' ################################################################################ + +Imports System.IO +Imports System.IO.Compression +Imports System.Text +Imports System.Text.RegularExpressions +Imports EmberAPI +Imports EmberScraperModule.EmberTMDBScraperModule +Imports RestSharp +Imports WatTmdb + +Public Class dlgImgSelect + +#Region "Fields" + + Friend WithEvents bwIMPADownload As New System.ComponentModel.BackgroundWorker + Friend WithEvents bwMPDBDownload As New System.ComponentModel.BackgroundWorker + Friend WithEvents bwTMDBDownload As New System.ComponentModel.BackgroundWorker + Friend WithEvents bwIMDBDownload As New System.ComponentModel.BackgroundWorker + Friend WithEvents bwFANARTTVDownload As New System.ComponentModel.BackgroundWorker + + Private _MySettings As New sMySettings + Private _TMDBConf As V3.TmdbConfiguration + Private _TMDBConfE As V3.TmdbConfiguration + Private _TMDBApi As V3.Tmdb + Private _TMDBApiE As V3.Tmdb + + Private TMDB As TMDB.Scraper + Private TMDBPosters As New List(Of MediaContainers.Image) + + Private MPDB As New MPDB.Scraper + Private MPDBPosters As New List(Of MediaContainers.Image) + + Private IMPA As New IMPA.Scraper + Private IMPAPosters As New List(Of MediaContainers.Image) + + Private IMDB As New IMDBimg.Scraper + Private IMDBPosters As New List(Of MediaContainers.Image) + + Private FANARTTVs As FANARTTVs.Scraper + Private FANARTTVPosters As New List(Of MediaContainers.Image) + + Private CachePath As String = String.Empty + Private chkImage() As CheckBox + Private DLType As Enums.ImageType + Private ETHashes As New List(Of String) + Private iCounter As Integer = 0 + Private iLeft As Integer = 5 + + Private isEdit As Boolean = False + Private isShown As Boolean = False + Private iTop As Integer = 5 + Private lblImage() As Label + + Private noImages As Boolean = False + Private pbImage() As PictureBox + Private pnlImage() As Panel + Private PreDL As Boolean = False + Private Results As New Containers.ImgResult + Private selIndex As Integer = -1 + + Private tMovie As New Structures.DBMovie + Private tmpImage As New MediaContainers.Image + Private _impaDone As Boolean = True + Private _imdbDone As Boolean = True + Private _fanarttvDone As Boolean = True + Private _mpdbDone As Boolean = True + Private _tmdbDone As Boolean = True + +#End Region 'Fields + +#Region "Events" + + Private Event IMPADone() + + Private Event MPDBDone() + + Private Event TMDBDone() + + Private Event IMDBDone() + + Private Event FANARTTVDone() +#End Region 'Events + +#Region "Methods" + + Public Sub New(ByRef tTMDBConf As V3.TmdbConfiguration, ByRef tTMDBConfE As V3.TmdbConfiguration, ByRef tTMDBApi As V3.Tmdb, ByRef tTMDBApiE As V3.Tmdb, ByRef tMySettings As EmberTMDBScraperModule.sMySettings) + ' This call is required by the designer. + InitializeComponent() + + ' Add any initialization after the InitializeComponent() call. + _MySettings = tMySettings + _TMDBApi = tTMDBApi + _TMDBConf = tTMDBConf + _TMDBApiE = tTMDBApiE + _TMDBConfE = tTMDBConfE + TMDB = New TMDB.Scraper(_TMDBConf, _TMDBConfE, _TMDBApi, _TMDBApiE, _MySettings) + FANARTTVs = New FANARTTVs.Scraper(_MySettings) + End Sub + + Public Sub PreLoad(ByVal mMovie As Structures.DBMovie, ByVal _DLType As Enums.ImageType, Optional ByVal _isEdit As Boolean = False) + Me.tMovie = mMovie + Me.DLType = _DLType + Me.isEdit = _isEdit + Me.PreDL = True + Me.SetUp() + Me.StartDownload() + End Sub + + Public Overloads Function ShowDialog(ByVal mMovie As Structures.DBMovie, ByVal _DLType As Enums.ImageType, Optional ByVal _isEdit As Boolean = False) As Containers.ImgResult + '// + ' Overload to pass data + '\\ + + Me.tMovie = mMovie + Me.DLType = _DLType + Me.isEdit = _isEdit + Me.isShown = True + + MyBase.ShowDialog() + Return Results + End Function + + Public Overloads Function ShowDialog() As Containers.ImgResult + Me.isShown = True + MyBase.ShowDialog() + + Return Results + End Function + + 'Rewrite to simplify + Private Sub AddImage(ByVal sDescription As String, ByVal iIndex As Integer, ByVal isChecked As Boolean, poster As MediaContainers.Image) + Try + ReDim Preserve Me.pnlImage(iIndex) + ReDim Preserve Me.pbImage(iIndex) + Me.pnlImage(iIndex) = New Panel() + Me.pbImage(iIndex) = New PictureBox() + Me.pbImage(iIndex).Name = iIndex.ToString + Me.pnlImage(iIndex).Name = iIndex.ToString + Me.pnlImage(iIndex).Size = New Size(256, 286) + Me.pbImage(iIndex).Size = New Size(250, 250) + Me.pnlImage(iIndex).BackColor = Color.White + Me.pnlImage(iIndex).BorderStyle = BorderStyle.FixedSingle + Me.pbImage(iIndex).SizeMode = PictureBoxSizeMode.Zoom + Me.pnlImage(iIndex).Tag = poster + Me.pbImage(iIndex).Tag = poster + Me.pbImage(iIndex).Image = poster.WebImage.Image + Me.pnlImage(iIndex).Left = iLeft + Me.pbImage(iIndex).Left = 3 + Me.pnlImage(iIndex).Top = iTop + Me.pbImage(iIndex).Top = 3 + Me.pnlBG.Controls.Add(Me.pnlImage(iIndex)) + Me.pnlImage(iIndex).Controls.Add(Me.pbImage(iIndex)) + Me.pnlImage(iIndex).BringToFront() + AddHandler pbImage(iIndex).Click, AddressOf pbImage_Click + AddHandler pbImage(iIndex).DoubleClick, AddressOf pbImage_DoubleClick + AddHandler pnlImage(iIndex).Click, AddressOf pnlImage_Click + + AddHandler pbImage(iIndex).MouseWheel, AddressOf MouseWheelEvent + AddHandler pnlImage(iIndex).MouseWheel, AddressOf MouseWheelEvent + + If Me.DLType = Enums.ImageType.Fanart Then + ReDim Preserve Me.chkImage(iIndex) + Me.chkImage(iIndex) = New CheckBox() + Me.chkImage(iIndex).Name = iIndex.ToString + Me.chkImage(iIndex).Size = New Size(250, 30) + Me.chkImage(iIndex).AutoSize = False + Me.chkImage(iIndex).BackColor = Color.White + Me.chkImage(iIndex).TextAlign = System.Drawing.ContentAlignment.MiddleCenter + Me.chkImage(iIndex).Text = Master.eLang.GetString(55, "Multiple") + 'Me.chkImage(iIndex).Text = String.Format("{0}x{1} ({2})", Me.pbImage(iIndex).Image.Width.ToString, Me.pbImage(iIndex).Image.Height.ToString, sDescription) + Me.chkImage(iIndex).Left = 0 + Me.chkImage(iIndex).Top = 250 + Me.chkImage(iIndex).Checked = isChecked + Me.pnlImage(iIndex).Controls.Add(Me.chkImage(iIndex)) + AddHandler pnlImage(iIndex).MouseWheel, AddressOf MouseWheelEvent + Else + ReDim Preserve Me.lblImage(iIndex) + Me.lblImage(iIndex) = New Label() + Me.lblImage(iIndex).Name = iIndex.ToString + Me.lblImage(iIndex).Size = New Size(250, 30) + Me.lblImage(iIndex).AutoSize = False + Me.lblImage(iIndex).BackColor = Color.White + Me.lblImage(iIndex).TextAlign = System.Drawing.ContentAlignment.MiddleCenter + If IsTMDBURL(poster.URL) Then + Me.lblImage(iIndex).Text = Master.eLang.GetString(55, "Multiple") + Else + Me.lblImage(iIndex).Text = String.Format("{0}x{1} ({2})", Me.pbImage(iIndex).Image.Width.ToString, Me.pbImage(iIndex).Image.Height.ToString, sDescription) + End If + Me.lblImage(iIndex).Tag = poster + Me.lblImage(iIndex).Left = 0 + Me.lblImage(iIndex).Top = 250 + Me.pnlImage(iIndex).Controls.Add(Me.lblImage(iIndex)) + AddHandler lblImage(iIndex).Click, AddressOf lblImage_Click + AddHandler lblImage(iIndex).MouseWheel, AddressOf MouseWheelEvent + End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + + Me.iCounter += 1 + + If Me.iCounter = 3 Then + Me.iCounter = 0 + Me.iLeft = 5 + Me.iTop += 301 + Else + Me.iLeft += 271 + End If + End Sub + + Private Sub AllDoneDownloading() + If Me._impaDone AndAlso Me._tmdbDone AndAlso Me._mpdbDone AndAlso Me._imdbDone AndAlso Me._fanarttvDone Then + Me.pnlDLStatus.Visible = False + Me.TMDBPosters.AddRange(Me.IMPAPosters) + Me.TMDBPosters.AddRange(Me.MPDBPosters) + Me.TMDBPosters.AddRange(Me.IMDBPosters) + Me.TMDBPosters.AddRange(Me.FANARTTVPosters) + Me.ProcessPics(Me.TMDBPosters) + Me.pnlBG.Visible = True + End If + End Sub + + Private Sub btnPreview_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPreview.Click + PreviewImage() + End Sub + + Private Sub PreviewImage() + Try + Dim tImage As New Images + Me.pnlTMDB.Visible = False + Me.pnlIMDB.Visible = False + Me.pnlFANARTTV.Visible = False + Me.pnlIMPA.Visible = False + Me.pnlMDB.Visible = False + Me.pnlSinglePic.Visible = True + Me.pnlDLStatus.Height = 85 + Me.pnlDLStatus.Top = 185 + + Application.DoEvents() + + Select Case True + Case rbXLarge.Checked + If Master.eSettings.UseImgCache Then + tImage.FromFile(Path.Combine(CachePath, String.Concat("poster_(original)_(url=", Me.rbXLarge.Tag, ").jpg"))) + Else + tImage.FromWeb(Me.rbXLarge.Tag.ToString) + End If + Case rbLarge.Checked + If Master.eSettings.UseImgCache Then + tImage.FromFile(Path.Combine(CachePath, String.Concat("poster_(mid)_(url=", Me.rbLarge.Tag, ").jpg"))) + Else + tImage.FromWeb(Me.rbLarge.Tag.ToString) + End If + Case rbMedium.Checked + If Master.eSettings.UseImgCache Then + tImage.FromFile(Path.Combine(CachePath, String.Concat("poster_(cover)_(url=", Me.rbMedium.Tag, ").jpg"))) + Else + tImage.FromWeb(Me.rbMedium.Tag.ToString) + End If + Case rbSmall.Checked + If Master.eSettings.UseImgCache Then + tImage.FromFile(Path.Combine(CachePath, String.Concat("poster_(thumb)_(url=", Me.rbSmall.Tag, ").jpg"))) + Else + tImage.FromWeb(Me.rbSmall.Tag.ToString) + End If + End Select + + Me.pnlSinglePic.Visible = False + + If Not IsNothing(tImage.Image) Then + + ModulesManager.Instance.RuntimeObjects.InvokeOpenImageViewer(tImage.Image) + + End If + + tImage.Dispose() + tImage = Nothing + + Catch ex As Exception + Me.pnlSinglePic.Visible = False + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + Private Sub bwIMDBDownload_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles bwIMDBDownload.DoWork + '// + ' Thread to download mpdb posters from the internet (multi-threaded because sometimes + ' the web server is slow to respond or not reachable, hanging the GUI) + '\\ + For i As Integer = 0 To Me.IMDBPosters.Count - 1 + Try + If Me.bwIMDBDownload.CancellationPending Then + e.Cancel = True + Return + End If + Me.bwIMDBDownload.ReportProgress(i + 1, Me.IMDBPosters.Item(i).URL) + Try + Me.IMDBPosters.Item(i).WebImage.FromWeb(Me.IMDBPosters.Item(i).URL) + If Not Master.eSettings.NoSaveImagesToNfo Then Me.Results.Posters.Add(Me.IMDBPosters.Item(i).URL) + If Master.eSettings.UseImgCache Then + Try + Me.IMDBPosters.Item(i).URL = StringUtils.CleanURL(Me.IMDBPosters.Item(i).URL) + Me.IMDBPosters.Item(i).WebImage.Save(Path.Combine(CachePath, String.Concat("poster_(", Me.IMDBPosters.Item(i).Description, ")_(url=", Me.IMDBPosters.Item(i).URL, ").jpg")), , , False) + Catch + End Try + End If + Catch + End Try + Catch + End Try + Next + End Sub + + Private Sub bwIMDBDownload_ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles bwIMDBDownload.ProgressChanged + '// + ' Update the status bar with the name of the current media name and increase progress bar + '\\ + Try + Dim sStatus As String = e.UserState.ToString + Me.lblDL6Status.Text = String.Format(Master.eLang.GetString(27, "Downloading {0}"), If(sStatus.Length > 40, StringUtils.TruncateURL(sStatus, 40), sStatus)) + Me.pbDL6.Value = e.ProgressPercentage + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + Private Sub bwIMDBDownload_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles bwIMDBDownload.RunWorkerCompleted + '// + ' Thread finished: process the pics + '\\ + + If Not e.Cancelled Then + Me._imdbDone = True + RaiseEvent IMDBDone() + End If + End Sub + + Private Sub bwFANARTTVDownload_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles bwFANARTTVDownload.DoWork + '// + ' Thread to download FanartTV images from the internet (multi-threaded because sometimes + ' the web server is slow to respond or not reachable, hanging the GUI) + '\\ + For i As Integer = 0 To Me.FANARTTVPosters.Count - 1 + Try + If Me.bwFANARTTVDownload.CancellationPending Then + e.Cancel = True + Return + End If + Me.bwFANARTTVDownload.ReportProgress(i + 1, Me.FANARTTVPosters.Item(i).URL) + Try + Me.FANARTTVPosters.Item(i).WebImage.FromWeb(Me.FANARTTVPosters.Item(i).URL) + If Not Master.eSettings.NoSaveImagesToNfo Then Me.Results.Posters.Add(Me.FANARTTVPosters.Item(i).URL) + If Master.eSettings.UseImgCache Then + Try + Me.FANARTTVPosters.Item(i).URL = StringUtils.CleanURL(Me.FANARTTVPosters.Item(i).URL) + Me.FANARTTVPosters.Item(i).WebImage.Save(Path.Combine(CachePath, String.Concat("poster_(", Me.FANARTTVPosters.Item(i).Description, ")_(url=", Me.FANARTTVPosters.Item(i).URL, ").jpg")), , , False) + Catch + End Try + End If + Catch + End Try + Catch + End Try + Next + End Sub + + Private Sub bwFANARTTVDownload_ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles bwFANARTTVDownload.ProgressChanged + '// + ' Update the status bar with the name of the current media name and increase progress bar + '\\ + Try + Dim sStatus As String = e.UserState.ToString + Me.lblDL3Status.Text = String.Format(Master.eLang.GetString(27, "Downloading {0}"), If(sStatus.Length > 40, StringUtils.TruncateURL(sStatus, 40), sStatus)) + Me.pbDL3.Value = e.ProgressPercentage + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + Private Sub bwFANARTTVDownload_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles bwFANARTTVDownload.RunWorkerCompleted + '// + ' Thread finished: process the pics + '\\ + + If Not e.Cancelled Then + Me._fanarttvDone = True + RaiseEvent FANARTTVDone() + End If + End Sub + + Private Sub bwIMPADownload_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles bwIMPADownload.DoWork + '// + ' Thread to download impa posters from the internet (multi-threaded because sometimes + ' the web server is slow to respond or not reachable, hanging the GUI) + '\\ + + For i As Integer = 0 To Me.IMPAPosters.Count - 1 + If bwIMPADownload.CancellationPending Then + e.Cancel = True + Return + End If + Me.bwIMPADownload.ReportProgress(i + 1, Me.IMPAPosters.Item(i).URL) + Try + Me.IMPAPosters.Item(i).WebImage.FromWeb(Me.IMPAPosters.Item(i).URL) + If Not Master.eSettings.NoSaveImagesToNfo Then Me.Results.Posters.Add(Me.IMPAPosters.Item(i).URL) + If Master.eSettings.UseImgCache Then + Try + Me.IMPAPosters.Item(i).URL = StringUtils.CleanURL(Me.IMPAPosters.Item(i).URL) + Me.IMPAPosters.Item(i).WebImage.Save(Path.Combine(CachePath, String.Concat("poster_(", Me.IMPAPosters.Item(i).Description, ")_(url=", Me.IMPAPosters.Item(i).URL, ").jpg")), , , False) + Catch + End Try + End If + Catch + End Try + Next + End Sub + + Private Sub bwIMPADownload_ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles bwIMPADownload.ProgressChanged + '// + ' Update the status bar with the name of the current media name and increase progress bar + '\\ + Try + Dim sStatus As String = e.UserState.ToString + Me.lblDL4Status.Text = String.Format(Master.eLang.GetString(27, "Downloading {0}"), If(sStatus.Length > 40, StringUtils.TruncateURL(sStatus, 40), sStatus)) + Me.pbDL4.Value = e.ProgressPercentage + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + Private Sub bwIMPABownload_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles bwIMPADownload.RunWorkerCompleted + '// + ' Thread finished: process the pics + '\\ + + If Not e.Cancelled Then + Me._impaDone = True + RaiseEvent IMPADone() + End If + End Sub + + Private Sub bwMPDBDownload_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles bwMPDBDownload.DoWork + '// + ' Thread to download mpdb posters from the internet (multi-threaded because sometimes + ' the web server is slow to respond or not reachable, hanging the GUI) + '\\ + For i As Integer = 0 To Me.MPDBPosters.Count - 1 + Try + If Me.bwMPDBDownload.CancellationPending Then + e.Cancel = True + Return + End If + Me.bwMPDBDownload.ReportProgress(i + 1, Me.MPDBPosters.Item(i).URL) + Try + Me.MPDBPosters.Item(i).WebImage.FromWeb(Me.MPDBPosters.Item(i).URL) + If Not Master.eSettings.NoSaveImagesToNfo Then Me.Results.Posters.Add(Me.MPDBPosters.Item(i).URL) + If Master.eSettings.UseImgCache Then + Try + Me.MPDBPosters.Item(i).URL = StringUtils.CleanURL(Me.MPDBPosters.Item(i).URL) + Me.MPDBPosters.Item(i).WebImage.Save(Path.Combine(CachePath, String.Concat("poster_(", Me.MPDBPosters.Item(i).Description, ")_(url=", Me.MPDBPosters.Item(i).URL, ").jpg")), , , False) + Catch + End Try + End If + Catch + End Try + Catch + End Try + Next + End Sub + + Private Sub bwMPDBDownload_ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles bwMPDBDownload.ProgressChanged + '// + ' Update the status bar with the name of the current media name and increase progress bar + '\\ + Try + Dim sStatus As String = e.UserState.ToString + Me.lblDL5Status.Text = String.Format(Master.eLang.GetString(27, "Downloading {0}"), If(sStatus.Length > 40, StringUtils.TruncateURL(sStatus, 40), sStatus)) + Me.pbDL5.Value = e.ProgressPercentage + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + Private Sub bwMPDBDownload_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles bwMPDBDownload.RunWorkerCompleted + '// + ' Thread finished: process the pics + '\\ + + If Not e.Cancelled Then + Me._mpdbDone = True + RaiseEvent MPDBDone() + End If + End Sub + + Private Sub bwTMDBDownload_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles bwTMDBDownload.DoWork + '// + ' Thread to download tmdb posters from the internet (multi-threaded because sometimes + ' the web server is slow to respond or not reachable, hanging the GUI) + '\\ + Dim thumbLink As String = String.Empty + Dim savePath As String = String.Empty + Dim extrathumbSize As String = String.Empty + + extrathumbSize = _MySettings.ManualETSize + + 'Only download the posters themselves that match the cover criteria for display purposes, no need to download them all. + Dim posters As MediaContainers.Image() + If Me.DLType = Enums.ImageType.Fanart Then + posters = TMDBPosters.Where(Function(s) s.Description = extrathumbSize).ToArray() + Else + posters = TMDBPosters.Where(Function(s) s.Description = "cover").ToArray() + End If + + For i As Integer = 0 To posters.Count - 1 + Try + If Me.DLType = Enums.ImageType.Fanart OrElse (Master.eSettings.UseImgCache OrElse (posters(i).Description = "cover" OrElse Master.eSettings.PosterPrefSizeOnly)) Then + If Me.bwTMDBDownload.CancellationPending Then + e.Cancel = True + Return + End If + Me.bwTMDBDownload.ReportProgress((i + 1), posters(i).URL) + Try + posters(i).WebImage.FromWeb(posters(i).URL) + If Not Master.eSettings.NoSaveImagesToNfo Then + If Me.DLType = Enums.ImageType.Fanart Then + + + If Not posters(i).URL.Contains("-thumb.") Then + Me.Results.Fanart.URL = GetServerURL(posters(i).URL) ' "http://images.themoviedb.org" + thumbLink = RemoveServerURL(posters(i).URL) + 'If thumbLink.Contains("_poster.") Then + thumbLink = thumbLink.Replace("-poster.", "-thumb.") + thumbLink = thumbLink.Replace("-original.", "-thumb.") + ''Else + 'thumbLink = thumbLink.Insert(thumbLink.LastIndexOf("."), "-thumb") + 'End If + Me.Results.Fanart.Thumb.Add(New MediaContainers.Thumb With {.Preview = thumbLink, .Text = posters(i).URL.Replace("http://images.themoviedb.org", String.Empty)}) + End If + Else + Me.Results.Posters.Add(posters(i).URL) + End If + End If + If Master.eSettings.UseImgCache OrElse Master.eSettings.AutoET Then + Try + posters(i).URL = Me.CleanTMDBURL(posters(i).URL) + + savePath = Path.Combine(CachePath, String.Concat(If(Me.DLType = Enums.ImageType.Fanart, "fanart_(", "poster_("), posters(i).Description, ")_(url=", posters(i).URL, ").jpg")) + posters(i).WebImage.Save(savePath, , , False) + + If Master.eSettings.AutoET Then + Dim tSize As New Enums.FanartSize + Select Case posters(i).Description.ToLower + Case "original" + tSize = Enums.FanartSize.Lrg + Case "mid" + tSize = Enums.FanartSize.Mid + Case "thumb" + tSize = Enums.FanartSize.Small + End Select + If Master.eSettings.AutoETSize = tSize Then + If Not ETHashes.Contains(HashFile.HashCalcFile(savePath)) Then + posters(i).isChecked = True + End If + End If + End If + + Catch + End Try + End If + Catch + End Try + End If + Catch + End Try + Next + End Sub + + Private Sub bwTMDBDownload_ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles bwTMDBDownload.ProgressChanged + '// + ' Update the status bar with the name of the current media name and increase progress bar + '\\ + Try + Dim sStatus As String = e.UserState.ToString + Me.lblDL2Status.Text = String.Format(Master.eLang.GetString(27, "Downloading {0}"), If(sStatus.Length > 40, StringUtils.TruncateURL(sStatus, 40), sStatus)) + Me.pbDL2.Value = e.ProgressPercentage + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + Private Sub bwTMDBDownload_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles bwTMDBDownload.RunWorkerCompleted + '// + ' Thread finished: process the pics + '\\ + + If Not e.Cancelled Then + Me._tmdbDone = True + RaiseEvent TMDBDone() + End If + End Sub + + Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel_Button.Click + IMPA.Cancel() + MPDB.Cancel() + TMDB.Cancel() + IMDB.Cancel() + FANARTTVs.Cancel() + + If bwIMPADownload.IsBusy Then bwIMPADownload.CancelAsync() + If bwMPDBDownload.IsBusy Then bwMPDBDownload.CancelAsync() + If bwTMDBDownload.IsBusy Then bwTMDBDownload.CancelAsync() + If bwIMDBDownload.IsBusy Then bwIMDBDownload.CancelAsync() + If bwFANARTTVDownload.IsBusy Then bwFANARTTVDownload.CancelAsync() + + While bwIMPADownload.IsBusy OrElse bwMPDBDownload.IsBusy OrElse bwTMDBDownload.IsBusy + Application.DoEvents() + Threading.Thread.Sleep(50) + End While + + Me.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.Close() + End Sub + + Private Sub CheckAll(ByVal sType As String, ByVal Checked As Boolean) + For i As Integer = 0 To UBound(Me.chkImage) + If Me.chkImage(i).Text.ToLower.Contains(sType) Then + Me.chkImage(i).Checked = Checked + End If + Next + End Sub + + Private Sub chkMid_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkMid.CheckedChanged + Me.CheckAll("(poster)", chkMid.Checked) + End Sub + + Private Sub chkOriginal_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkOriginal.CheckedChanged + Me.CheckAll("(original)", chkOriginal.Checked) + End Sub + + Private Sub chkThumb_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkThumb.CheckedChanged + Me.CheckAll("(thumb)", chkThumb.Checked) + End Sub + + Private Sub dlgImgSelect_Disposed(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Disposed + 'Me.tmpImage.Dispose() + + IMPA = Nothing + MPDB = Nothing + TMDB = Nothing + IMDB = Nothing + FANARTTVs = Nothing + + IMPAPosters = Nothing + MPDBPosters = Nothing + TMDBPosters = Nothing + IMDBPosters = Nothing + FANARTTVPosters = Nothing + + End Sub + + Private Sub dlgImgSelect_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing + If Master.eSettings.AutoET AndAlso Not Master.eSettings.UseImgCache Then FileUtils.Delete.DeleteDirectory(Me.CachePath) + End Sub + + Private Sub dlgImgSelect_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load + If Not PreDL Then SetUp() + End Sub + + Private Sub dlgImgSelect_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown + Try + Application.DoEvents() + If Not PreDL Then + StartDownload() + ElseIf noImages Then + If Me.DLType = Enums.ImageType.Fanart Then + MsgBox(Master.eLang.GetString(28, "No Fanart found for this movie."), MsgBoxStyle.Information, Master.eLang.GetString(29, "No Fanart Found")) + Else + MsgBox(Master.eLang.GetString(30, "No Posters found for this movie."), MsgBoxStyle.Information, Master.eLang.GetString(31, "No Posters Found")) + End If + Me.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.Close() + End If + + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + Private Sub DoSelect(ByVal iIndex As Integer, poster As MediaContainers.Image) + Try + 'set all pnl colors to white first + 'remove all the current genres + For i As Integer = 0 To UBound(Me.pnlImage) + Me.pnlImage(i).BackColor = Color.White + + If DLType = Enums.ImageType.Fanart Then + Me.chkImage(i).BackColor = Color.White + Me.chkImage(i).ForeColor = Color.Black + Else + Me.lblImage(i).BackColor = Color.White + Me.lblImage(i).ForeColor = Color.Black + End If + Next + + 'set selected pnl color to blue + Me.pnlImage(iIndex).BackColor = Color.Blue + + If DLType = Enums.ImageType.Fanart Then + Me.chkImage(iIndex).BackColor = Color.Blue + Me.chkImage(iIndex).ForeColor = Color.White + Else + Me.lblImage(iIndex).BackColor = Color.Blue + Me.lblImage(iIndex).ForeColor = Color.White + End If + + Me.selIndex = iIndex + + Me.pnlSize.Visible = False + + If IsTMDBURL(poster.URL) Then + Me.SetupSizes(poster.ParentID) + If Not rbLarge.Checked AndAlso Not rbMedium.Checked AndAlso Not rbSmall.Checked AndAlso Not rbXLarge.Checked Then + Me.OK_Button.Enabled = False + Else + Me.OK_Button.Focus() + End If + Me.tmpImage.Clear() + Else + Me.rbXLarge.Checked = False + Me.rbLarge.Checked = False + Me.rbMedium.Checked = False + Me.rbSmall.Checked = False + Me.OK_Button.Enabled = True + Me.OK_Button.Focus() + Me.tmpImage = CType(Me.pbImage(iIndex).Tag, MediaContainers.Image) + End If + + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + Private Function IsTMDBURL(ByVal sURL As String) As Boolean + If sURL.ToLower.Contains(_TMDBConf.images.base_url.ToLower) Then + Return True + Else + Return False + End If + End Function + + Private Function CleanTMDBURL(ByVal sURL As String) As String + If IsTMDBURL(sURL) Then + Dim _sURL As New Uri(sURL) + sURL = String.Concat("$$[themoviedb.org]", _sURL.GetComponents(UriComponents.Path, UriFormat.UriEscaped)) + Else + sURL = StringUtils.TruncateURL(sURL, 40, True) + End If + Return sURL.Replace(":", "$c$").Replace("/", "$s$") + End Function + + + Private Sub GetFanart() + Try + Dim NoneFound As Boolean = True + + If Master.eSettings.UseImgCache Then + Dim di As New DirectoryInfo(CachePath) + Dim lFi As New List(Of FileInfo) + + If Not Directory.Exists(CachePath) Then + Directory.CreateDirectory(CachePath) + Else + Try + lFi.AddRange(di.GetFiles("*.jpg")) + Catch + End Try + End If + + If lFi.Count > 0 Then + Me.pnlDLStatus.Visible = True + Application.DoEvents() + NoneFound = False + Dim tImage As MediaContainers.Image + For Each sFile As FileInfo In lFi + tImage = New MediaContainers.Image + tImage.WebImage.FromFile(sFile.FullName) + If Not IsNothing(tImage.WebImage.Image) Then + Select Case True + Case sFile.Name.Contains("(original)") + tImage.Description = "original" + If Master.eSettings.AutoET AndAlso Master.eSettings.AutoETSize = Enums.FanartSize.Lrg Then + If Not ETHashes.Contains(HashFile.HashCalcFile(sFile.FullName)) Then + tImage.isChecked = True + End If + End If + 'Case sFile.Name.Contains("(mid)") + ' tImage.Description = "mid" + Case sFile.Name.Contains("(poster)") + tImage.Description = "poster" + + If Master.eSettings.AutoET AndAlso Master.eSettings.AutoETSize = Enums.FanartSize.Mid Then + If Not ETHashes.Contains(HashFile.HashCalcFile(sFile.FullName)) Then + tImage.isChecked = True + End If + End If + Case sFile.Name.Contains("(thumb)") + tImage.Description = "thumb" + If Master.eSettings.AutoET AndAlso Master.eSettings.AutoETSize = Enums.FanartSize.Small Then + If Not ETHashes.Contains(HashFile.HashCalcFile(sFile.FullName)) Then + tImage.isChecked = True + End If + End If + End Select + tImage.URL = Regex.Match(sFile.Name, "\(url=(.*?)\)").Groups(1).ToString + Me.TMDBPosters.Add(tImage) + End If + Next + Me.ProcessPics(TMDBPosters) + Me.pnlDLStatus.Visible = False + Me.pnlBG.Visible = True + 'Me.pnlFanart.Visible = True + 'Me.lblInfo.Visible = True + End If + + lFi = Nothing + di = Nothing + End If + + If Master.eSettings.AutoET AndAlso Not Directory.Exists(CachePath) Then + Directory.CreateDirectory(CachePath) + End If + + Me.lblDL2.Text = Master.eLang.GetString(32, "Retrieving data from TheMovieDB.com...") + Me.lblDL2Status.Text = String.Empty + Me.pbDL2.Maximum = 3 + Me.pnlDLStatus.Visible = True + Me.Refresh() + + Me._tmdbDone = False + + Me.TMDB.GetImagesAsync(tMovie.Movie.TMDBID, "backdrop") + + If _MySettings.UseFANARTTV Then + Me.lblDL3.Text = Master.eLang.GetString(120, "Retrieving data from Fanart.tv...") + Me.lblDL3Status.Text = String.Empty + Me.pbDL3.Maximum = 3 + Me.pnlDLStatus.Visible = True + Me.Refresh() + + Me._fanarttvDone = False + + Me.FANARTTVs.GetImagesAsync(tMovie.Movie.ID) + Else + Me.lblDL3.Text = Master.eLang.GetString(121, "Fanart.tv is not enabled") + End If + + + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + Private Sub GetPosters() + Try + Dim NoneFound As Boolean = True + + If Master.eSettings.UseImgCache Then + Dim lFi As New List(Of FileInfo) + Dim di As New DirectoryInfo(CachePath) + + If Not Directory.Exists(CachePath) Then + Directory.CreateDirectory(CachePath) + Else + Try + lFi.AddRange(di.GetFiles("*.jpg")) + Catch + End Try + End If + + If lFi.Count > 0 Then + Me.pnlDLStatus.Height = 165 + Me.pnlDLStatus.Top = 207 + Me.pnlDLStatus.Visible = True + Application.DoEvents() + NoneFound = False + Dim tImage As MediaContainers.Image + For Each sFile As FileInfo In lFi + tImage = New MediaContainers.Image + tImage.WebImage.FromFile(sFile.FullName) + Select Case True + Case sFile.Name.Contains("(original)") + tImage.Description = "original" + Case sFile.Name.Contains("(mid)") + tImage.Description = "mid" + Case sFile.Name.Contains("(cover)") + tImage.Description = "cover" + Case sFile.Name.Contains("(thumb)") + tImage.Description = "thumb" + Case sFile.Name.Contains("(poster)") + tImage.Description = "poster" + End Select + tImage.URL = Regex.Match(sFile.Name, "\(url=(.*?)\)").Groups(1).ToString + Me.TMDBPosters.Add(tImage) + Next + Me.ProcessPics(TMDBPosters) + Me.pnlDLStatus.Visible = False + Me.pnlBG.Visible = True + End If + + lFi = Nothing + di = Nothing + End If + + If NoneFound Then + Me.lblDL2.Text = Master.eLang.GetString(32, "Retrieving data from TheMovieDB.com...") + Me.lblDL2Status.Text = String.Empty + Me.pbDL2.Maximum = 3 + Me.pnlDLStatus.Visible = True + Me.Refresh() + + Me._tmdbDone = False + + Me.TMDB.GetImagesAsync(tMovie.Movie.TMDBID, "poster") + + If _MySettings.UseIMDB Then + Me.lblDL6.Text = Master.eLang.GetString(117, "Retrieving data from IMDB.com...") + Me.lblDL6Status.Text = String.Empty + Me.pbDL6.Maximum = 3 + Me.pnlDLStatus.Visible = True + Me.Refresh() + + Me._imdbDone = False + + Me.IMDB.GetImagesAsync(tMovie.Movie.IMDBID) + Else + Me.lblDL6.Text = Master.eLang.GetString(118, "IMDB.com is not enabled") + End If + + If _MySettings.UseIMPA Then + Me.lblDL4.Text = Master.eLang.GetString(34, "Retrieving data from IMPAwards.com...") + Me.lblDL4Status.Text = String.Empty + Me.pbDL4.Maximum = 3 + Me.pnlDLStatus.Visible = True + Me.Refresh() + + Me._impaDone = False + + Me.IMPA.GetImagesAsync(tMovie.Movie.IMDBID) + Else + Me.lblDL4.Text = Master.eLang.GetString(35, "IMPAwards.com is not enabled") + End If + + If _MySettings.UseMPDB Then + Me.lblDL5.Text = Master.eLang.GetString(36, "Retrieving data from MoviePosterDB.com...") + Me.lblDL5Status.Text = String.Empty + Me.pbDL5.Maximum = 3 + Me.pnlDLStatus.Visible = True + Me.Refresh() + + Me._mpdbDone = False + + Me.MPDB.GetImagesAsync(tMovie.Movie.IMDBID) + Else + Me.lblDL5.Text = Master.eLang.GetString(37, "MoviePostersDB.com is not enabled") + End If + End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + Private Sub FANARTTVDoneDownloading() + Try + Me._fanarttvDone = True + Me.lblDL3.Text = Master.eLang.GetString(38, "Preparing images...") + Application.DoEvents() + + Me.AllDoneDownloading() + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + Private Sub FANARTTVPostersDownloaded(ByVal Posters As List(Of MediaContainers.Image)) + Try + Me.pbDL3.Value = 0 + + 'Me.lblDL3.Text = Master.eLang.GetString(38, "Preparing images...") + Me.lblDL3Status.Text = String.Empty + Me.pbDL3.Maximum = Posters.Count + + Me.FANARTTVPosters = Posters + + Me.bwFANARTTVDownload.WorkerSupportsCancellation = True + Me.bwFANARTTVDownload.WorkerReportsProgress = True + Me.bwFANARTTVDownload.RunWorkerAsync() + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + Private Sub FANARTTVProgressUpdated(ByVal iPercent As Integer) + Me.pbDL3.Value = iPercent + End Sub + + Private Sub IMDBDoneDownloading() + Try + Me._imdbDone = True + Me.lblDL6.Text = Master.eLang.GetString(38, "Preparing images...") + Application.DoEvents() + + Me.AllDoneDownloading() + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + Private Sub IMDBPostersDownloaded(ByVal Posters As List(Of MediaContainers.Image)) + Try + Me.pbDL6.Value = 0 + + 'Me.lblDL6.Text = Master.eLang.GetString(38, "Preparing images...") + Me.lblDL6Status.Text = String.Empty + Me.pbDL6.Maximum = Posters.Count + + Me.IMDBPosters = Posters + + Me.bwIMDBDownload.WorkerSupportsCancellation = True + Me.bwIMDBDownload.WorkerReportsProgress = True + Me.bwIMDBDownload.RunWorkerAsync() + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + Private Sub IMDBProgressUpdated(ByVal iPercent As Integer) + Me.pbDL6.Value = iPercent + End Sub + + Private Sub IMPADoneDownloading() + Try + Me._impaDone = True + Me.lblDL4.Text = Master.eLang.GetString(38, "Preparing images...") + Application.DoEvents() + + Me.AllDoneDownloading() + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + Private Sub IMPAPostersDownloaded(ByVal Posters As List(Of MediaContainers.Image)) + Try + Me.pbDL4.Value = 0 + + 'Me.lblDL4.Text = Master.eLang.GetString(38, "Preparing images...") + Me.lblDL4Status.Text = String.Empty + Me.pbDL4.Maximum = Posters.Count + + Me.IMPAPosters = Posters + + Me.bwIMPADownload.WorkerSupportsCancellation = True + Me.bwIMPADownload.WorkerReportsProgress = True + Me.bwIMPADownload.RunWorkerAsync() + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + Private Sub IMPAProgressUpdated(ByVal iPercent As Integer) + Me.pbDL4.Value = iPercent + End Sub + + + Private Sub lblImage_Click(ByVal sender As Object, ByVal e As System.EventArgs) + Me.DoSelect(Convert.ToInt32(DirectCast(sender, Label).Name), DirectCast(DirectCast(sender, Label).Tag, MediaContainers.Image)) + End Sub + + Private Sub MouseWheelEvent(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) + If e.Delta < 0 Then + If (pnlBG.VerticalScroll.Value + 50) <= pnlBG.VerticalScroll.Maximum Then + pnlBG.VerticalScroll.Value += 50 + Else + pnlBG.VerticalScroll.Value = pnlBG.VerticalScroll.Maximum + End If + Else + If (pnlBG.VerticalScroll.Value - 50) >= pnlBG.VerticalScroll.Minimum Then + pnlBG.VerticalScroll.Value -= 50 + Else + pnlBG.VerticalScroll.Value = pnlBG.VerticalScroll.Minimum + End If + End If + End Sub + + Private Sub MPDBDoneDownloading() + Try + Me._mpdbDone = True + Me.lblDL5.Text = Master.eLang.GetString(38, "Preparing images...") + Application.DoEvents() + + Me.AllDoneDownloading() + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + Private Sub MPDBPostersDownloaded(ByVal Posters As List(Of MediaContainers.Image)) + Try + Me.pbDL5.Value = 0 + + 'Me.lblDL5.Text = Master.eLang.GetString(38, "Preparing images...") + Me.lblDL5Status.Text = String.Empty + Me.pbDL5.Maximum = Posters.Count + + Me.MPDBPosters = Posters + + Me.bwMPDBDownload.WorkerSupportsCancellation = True + Me.bwMPDBDownload.WorkerReportsProgress = True + Me.bwMPDBDownload.RunWorkerAsync() + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + Private Sub MPDBProgressUpdated(ByVal iPercent As Integer) + Me.pbDL5.Value = iPercent + End Sub + + Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click + Try + Dim tmpPathPlus As String = String.Empty + Dim extrathumbSize As String + + extrathumbSize = AdvancedSettings.GetSetting("ManualETSize", "thumb") + + If DLType = Enums.ImageType.Fanart Then + tmpPathPlus = Path.Combine(Master.TempPath, "fanart.jpg") + Else + tmpPathPlus = Path.Combine(Master.TempPath, "poster.jpg") + End If + + If Not IsNothing(Me.tmpImage.WebImage.Image) Then + If isEdit Then + Me.tmpImage.WebImage.Save(tmpPathPlus, , , False) + Results.ImagePath = tmpPathPlus + Else + If Me.DLType = Enums.ImageType.Fanart Then + Results.ImagePath = Me.tmpImage.WebImage.SaveAsFanart(tMovie) + Else + Results.ImagePath = Me.tmpImage.WebImage.SaveAsPoster(tMovie) + End If + End If + Else + Me.pnlBG.Visible = False + Me.pnlSinglePic.Visible = True + Me.Refresh() + Application.DoEvents() + Select Case True + Case Me.rbXLarge.Checked + If Master.eSettings.UseImgCache Then + tmpImage.WebImage.FromFile(Path.Combine(CachePath, String.Concat("poster_(original)_(url=", Me.rbXLarge.Tag, ").jpg"))) + Else + If extrathumbSize = "original" And DLType = Enums.ImageType.Fanart Then + Me.tmpImage.WebImage = CType(Me.pbImage(selIndex).Tag, MediaContainers.Image).WebImage + Else + Me.tmpImage.WebImage.FromWeb(Me.rbXLarge.Tag.ToString) + End If + End If + Case Me.rbLarge.Checked + If Master.eSettings.UseImgCache Then + Me.tmpImage.WebImage.FromFile(Path.Combine(CachePath, String.Concat("poster_(mid)_(url=", Me.rbLarge.Tag, ").jpg"))) + Else + If extrathumbSize = "w1280" And DLType = Enums.ImageType.Fanart Or Not DLType = Enums.ImageType.Fanart Then + Me.tmpImage.WebImage = CType(Me.pbImage(selIndex).Tag, MediaContainers.Image).WebImage + Else + Me.tmpImage.WebImage.FromWeb(Me.rbLarge.Tag.ToString) + End If + End If + Case Me.rbMedium.Checked + If extrathumbSize = "poster" And DLType = Enums.ImageType.Fanart Then + Me.tmpImage.WebImage = CType(Me.pbImage(selIndex).Tag, MediaContainers.Image).WebImage + Else + Me.tmpImage.WebImage.FromWeb(Me.rbMedium.Tag.ToString) + End If + Case Me.rbSmall.Checked + If Master.eSettings.UseImgCache Then + Me.tmpImage.WebImage.FromFile(Path.Combine(CachePath, String.Concat("poster_(thumb)_(url=", Me.rbSmall.Tag, ").jpg"))) + Else + If extrathumbSize = "thumb" And DLType = Enums.ImageType.Fanart Then + Me.tmpImage.WebImage = CType(Me.pbImage(selIndex).Tag, MediaContainers.Image).WebImage + Else + Me.tmpImage.WebImage.FromWeb(Me.rbSmall.Tag.ToString) + End If + End If + End Select + + If Not IsNothing(Me.tmpImage.WebImage.Image) Then + If isEdit Then + Me.tmpImage.WebImage.Save(tmpPathPlus, , , False) + Results.ImagePath = tmpPathPlus + Else + If Me.DLType = Enums.ImageType.Fanart Then + Results.ImagePath = Me.tmpImage.WebImage.SaveAsFanart(Me.tMovie) + Else + Results.ImagePath = Me.tmpImage.WebImage.SaveAsPoster(Me.tMovie) + End If + End If + End If + Me.pnlSinglePic.Visible = False + End If + + If Me.DLType = Enums.ImageType.Fanart Then + Dim iMod As Integer = 0 + Dim iVal As Integer = 1 + Dim extraPath As String = String.Empty + Dim isChecked As Boolean = False + + For i As Integer = 0 To UBound(Me.chkImage) + If Me.chkImage(i).Checked Then + isChecked = True + Exit For + End If + Next + + If isChecked Then + Dim extrathumbsFolderName As String = AdvancedSettings.GetSetting("ExtraThumbsFolderName", "extrathumbs") + If isEdit Then + extraPath = Path.Combine(Master.TempPath, extrathumbsFolderName) + Else + If Master.eSettings.VideoTSParent AndAlso FileUtils.Common.isVideoTS(Me.tMovie.Filename) Then + extraPath = Path.Combine(Directory.GetParent(Directory.GetParent(Me.tMovie.Filename).FullName).FullName, extrathumbsFolderName) + ElseIf Master.eSettings.VideoTSParent AndAlso FileUtils.Common.isBDRip(Me.tMovie.Filename) Then + extraPath = Path.Combine(Directory.GetParent(Directory.GetParent(Directory.GetParent(Me.tMovie.Filename).FullName).FullName).FullName, extrathumbsFolderName) + Else + extraPath = Path.Combine(Directory.GetParent(Me.tMovie.Filename).FullName, extrathumbsFolderName) + End If + iMod = Functions.GetExtraModifier(extraPath) + iVal = iMod + 1 + End If + + If Not Directory.Exists(extraPath) Then + Directory.CreateDirectory(extraPath) + End If + + Dim fsET As FileStream + For i As Integer = 0 To UBound(Me.chkImage) + If Me.chkImage(i).Checked Then + fsET = New FileStream(Path.Combine(extraPath, String.Concat("thumb", iVal, ".jpg")), FileMode.Create, FileAccess.ReadWrite) + Me.pbImage(i).Image.Save(fsET, System.Drawing.Imaging.ImageFormat.Jpeg) + fsET.Close() + iVal += 1 + End If + Next + fsET = Nothing + End If + End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + + Me.DialogResult = System.Windows.Forms.DialogResult.OK + Me.Close() + End Sub + + Private Sub pbImage_Click(ByVal sender As Object, ByVal e As System.EventArgs) + Me.DoSelect(Convert.ToInt32(DirectCast(sender, PictureBox).Name), DirectCast(DirectCast(sender, PictureBox).Tag, MediaContainers.Image)) + End Sub + + Private Sub pbImage_DoubleClick(ByVal sender As System.Object, ByVal e As System.EventArgs) + Try + 'If Me.DLType = Enums.ImageType.Fanart OrElse Not IsTMDBURL(DirectCast(sender, PictureBox).Tag.ToString) Then + 'ModulesManager.Instance.RuntimeObjects.InvokeOpenImageViewer(DirectCast(sender, PictureBox).Image) + 'Else + PreviewImage() + 'End If + Catch + End Try + End Sub + + Private Sub pnlImage_Click(ByVal sender As Object, ByVal e As System.EventArgs) + Me.DoSelect(Convert.ToInt32(DirectCast(sender, Panel).Name), DirectCast(DirectCast(sender, Panel).Tag, MediaContainers.Image)) + End Sub + + Private Sub ProcessPics(ByVal posters As List(Of MediaContainers.Image)) + Try + Dim iIndex As Integer = 0 + + 'remove all entries with invalid images + If Master.eSettings.UseImgCache Then + For i As Integer = posters.Count - 1 To 0 Step -1 + If IsNothing(posters.Item(i).WebImage.Image) Then + posters.RemoveAt(i) + End If + Next + End If + + If posters.Count > 0 Then + For Each xPoster As MediaContainers.Image In posters.OrderBy(Function(p) RemoveServerURL(p.URL)) + If Not IsNothing(xPoster.WebImage.Image) AndAlso (Me.DLType = Enums.ImageType.Fanart OrElse Not (IsTMDBURL(xPoster.URL) AndAlso Not xPoster.Description = "cover")) Then + Me.AddImage(xPoster.Description, iIndex, xPoster.isChecked, xPoster) + iIndex += 1 + End If + Next + Else + If Not Me.PreDL OrElse isShown Then + If Me.DLType = Enums.ImageType.Fanart Then + MsgBox(Master.eLang.GetString(28, "No Fanart found for this movie."), MsgBoxStyle.Information, Master.eLang.GetString(29, "No Fanart Found")) + Else + MsgBox(Master.eLang.GetString(30, "No Posters found for this movie."), MsgBoxStyle.Information, Master.eLang.GetString(31, "No Posters Found")) + End If + Me.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.Close() + Else + noImages = True + End If + End If + + Me.Activate() + + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + Private Sub rbLarge_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rbLarge.CheckedChanged + Me.OK_Button.Enabled = True + Me.btnPreview.Enabled = True + End Sub + + Private Sub rbMedium_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rbMedium.CheckedChanged + Me.OK_Button.Enabled = True + Me.btnPreview.Enabled = True + End Sub + + Private Sub rbSmall_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rbSmall.CheckedChanged + Me.OK_Button.Enabled = True + Me.btnPreview.Enabled = True + End Sub + + Private Sub rbXLarge_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rbXLarge.CheckedChanged + Me.OK_Button.Enabled = True + Me.btnPreview.Enabled = True + End Sub + + Private Sub SetUp() + Try + AddHandler TMDB.PostersDownloaded, AddressOf TMDBPostersDownloaded + AddHandler TMDB.ProgressUpdated, AddressOf TMDBProgressUpdated + AddHandler IMPA.PostersDownloaded, AddressOf IMPAPostersDownloaded + AddHandler IMPA.ProgressUpdated, AddressOf IMPAProgressUpdated + AddHandler MPDB.PostersDownloaded, AddressOf MPDBPostersDownloaded + AddHandler MPDB.ProgressUpdated, AddressOf MPDBProgressUpdated + AddHandler IMDB.PostersDownloaded, AddressOf IMDBPostersDownloaded + AddHandler IMDB.ProgressUpdated, AddressOf IMDBProgressUpdated + AddHandler FANARTTVs.PostersDownloaded, AddressOf FANARTTVPostersDownloaded + AddHandler FANARTTVs.ProgressUpdated, AddressOf FANARTTVProgressUpdated + AddHandler IMPADone, AddressOf IMPADoneDownloading + AddHandler TMDBDone, AddressOf TMDBDoneDownloading + AddHandler MPDBDone, AddressOf MPDBDoneDownloading + AddHandler IMDBDone, AddressOf IMDBDoneDownloading + AddHandler FANARTTVDone, AddressOf FANARTTVDoneDownloading + + AddHandler MyBase.MouseWheel, AddressOf MouseWheelEvent + AddHandler pnlBG.MouseWheel, AddressOf MouseWheelEvent + + Functions.PNLDoubleBuffer(Me.pnlBG) + + If Me.DLType = Enums.ImageType.Posters Then + Me.Text = String.Concat(Master.eLang.GetString(39, "Select Poster"), " - ", If(Not String.IsNullOrEmpty(Me.tMovie.Movie.Title), Me.tMovie.Movie.Title, Me.tMovie.ListTitle)) + Me.pnlTMDB.Visible = True + Me.pnlIMDB.Visible = True + Me.pnlFANARTTV.Visible = False + Me.pnlIMPA.Visible = True + Me.pnlMDB.Visible = True + Me.pnlSinglePic.Visible = False + Me.pnlDLStatus.Height = 328 + Me.pnlDLStatus.Top = 82 + Else + Me.Text = String.Concat(Master.eLang.GetString(40, "Select Fanart"), " - ", If(Not String.IsNullOrEmpty(Me.tMovie.Movie.Title), Me.tMovie.Movie.Title, Me.tMovie.ListTitle)) + Me.pnlTMDB.Visible = True + Me.pnlIMDB.Visible = False + Me.pnlFANARTTV.Visible = True + Me.pnlIMPA.Visible = False + Me.pnlMDB.Visible = False + Me.pnlSinglePic.Visible = False + Me.pnlDLStatus.Height = 165 + Me.pnlDLStatus.Top = 129 + + If Master.eSettings.AutoET Then + ETHashes = HashFile.CurrentETHashes(tMovie.Filename) + End If + End If + + CachePath = String.Concat(Master.TempPath, Path.DirectorySeparatorChar, tMovie.Movie.IMDBID, Path.DirectorySeparatorChar, If(Me.DLType = Enums.ImageType.Posters, "posters", "fanart")) + + Me.OK_Button.Text = Master.eLang.GetString(179, "OK", True) + Me.Cancel_Button.Text = Master.eLang.GetString(167, "Cancel", True) + Me.btnPreview.Text = Master.eLang.GetString(180, "Preview", True) + Me.chkThumb.Text = Master.eLang.GetString(41, "Check All Thumb") + Me.chkMid.Text = Master.eLang.GetString(42, "Check All Mid") + Me.chkOriginal.Text = Master.eLang.GetString(43, "Check All Original") + Me.lblInfo.Text = Master.eLang.GetString(44, "Selected item will be set as fanart. All checked items will be saved to \extrathumbs.") + Me.lblDL5.Text = Master.eLang.GetString(45, "Performing Preliminary Tasks...") + Me.lblDL4.Text = Me.lblDL5.Text + Me.lblDL3.Text = Me.lblDL5.Text + Me.lblDL2.Text = Me.lblDL5.Text + Me.Label2.Text = Master.eLang.GetString(46, "Downloading Selected Image...") + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + Private Function GetServerURL(ByVal sURL As String) As String + If sURL.StartsWith("http://") Then + Dim s As Integer = sURL.IndexOf("/", 7) + If s >= 0 Then Return sURL.Substring(0, sURL.IndexOf("/", 7)) + End If + Return sURL + End Function + + Private Function RemoveServerURL(ByVal sURL As String) As String + If sURL.StartsWith("http://") Then + Dim s As Integer = sURL.IndexOf("/", 7) + If s >= 0 Then Return sURL.Substring(sURL.IndexOf("/", 7)) + End If + Return sURL + End Function + + Private Sub SetupSizes(ByVal ParentID As String) + Try + rbXLarge.Checked = False + rbXLarge.Enabled = False + rbXLarge.Text = Master.eLang.GetString(47, "Original") + rbLarge.Checked = False + rbLarge.Enabled = False + rbMedium.Checked = False + rbSmall.Checked = False + rbSmall.Enabled = False + If Me.DLType = Enums.ImageType.Fanart Then + rbLarge.Text = "w1280" + rbMedium.Text = "poster" + rbSmall.Text = "thumb" + Else + rbLarge.Text = Master.eLang.GetString(48, "Cover") + rbMedium.Text = Master.eLang.GetString(49, "Medium") + rbSmall.Text = Master.eLang.GetString(50, "Small") + End If + + For Each TMDBPoster As MediaContainers.Image In TMDBPosters.Where(Function(f) f.ParentID = ParentID) + Select Case TMDBPoster.Description + Case "original" + ' xlarge + If Not Master.eSettings.UseImgCache OrElse Not IsNothing(TMDBPoster.WebImage.Image) Then + rbXLarge.Enabled = True + rbXLarge.Tag = TMDBPoster.URL + 'If Master.eSettings.UseImgCache Then Me.rbXLarge.Text = String.Format(Master.eLang.GetString(51, "Original ({0}x{1})"), Me.TMDBPosters.Item(i).WebImage.Image.Width, Me.TMDBPosters.Item(i).WebImage.Image.Height) + rbXLarge.Text = String.Format(Master.eLang.GetString(51, "Original ({0}x{1})"), TMDBPoster.Width, TMDBPoster.Height) + End If + Case "cover" + ' large + If Not Master.eSettings.UseImgCache OrElse Not IsNothing(TMDBPoster.WebImage.Image) Then + rbLarge.Enabled = True + rbLarge.Tag = TMDBPoster.URL + 'If Master.eSettings.UseImgCache Then Me.rbLarge.Text = String.Format(Master.eLang.GetString(52, "Cover ({0}x{1})"), Me.TMDBPosters.Item(i).WebImage.Image.Width, Me.TMDBPosters.Item(i).WebImage.Image.Height) + rbLarge.Text = String.Format(Master.eLang.GetString(52, "Cover ({0}x{1})"), TMDBPoster.Width, TMDBPoster.Height) + End If + Case "w1280" + ' large + If Not Master.eSettings.UseImgCache OrElse Not IsNothing(TMDBPoster.WebImage.Image) Then + rbLarge.Enabled = True + rbLarge.Tag = TMDBPoster.URL + 'If Master.eSettings.UseImgCache Then Me.rbLarge.Text = String.Format(Master.eLang.GetString(52, "Cover ({0}x{1})"), Me.TMDBPosters.Item(i).WebImage.Image.Width, Me.TMDBPosters.Item(i).WebImage.Image.Height) + rbLarge.Text = String.Format("w1280 ({0}x{1})", TMDBPoster.Width, TMDBPoster.Height) + End If + Case "thumb" + ' small + If Not Master.eSettings.UseImgCache OrElse Not IsNothing(TMDBPoster.WebImage.Image) Then + rbSmall.Enabled = True + rbSmall.Tag = TMDBPoster.URL + 'If Master.eSettings.UseImgCache Then Me.rbSmall.Text = String.Format(Master.eLang.GetString(53, "Small ({0}x{1})"), Me.TMDBPosters.Item(i).WebImage.Image.Width, Me.TMDBPosters.Item(i).WebImage.Image.Height) + rbSmall.Text = String.Format(Master.eLang.GetString(53, "Small ({0}x{1})"), TMDBPoster.Width, TMDBPoster.Height) + End If + Case "mid" + 'If Master.eSettings.UseImgCache Then Me.rbMedium.Text = String.Format(Master.eLang.GetString(54, "Medium ({0}x{1})"), Me.TMDBPosters.Item(i).WebImage.Image.Width, Me.TMDBPosters.Item(i).WebImage.Image.Height) + rbMedium.Text = String.Format(Master.eLang.GetString(54, "Medium ({0}x{1})"), TMDBPoster.Width, TMDBPoster.Height) + rbMedium.Tag = TMDBPoster.URL + Case "poster" + 'If Master.eSettings.UseImgCache Then Me.rbMedium.Text = String.Format(Master.eLang.GetString(54, "Medium ({0}x{1})"), Me.TMDBPosters.Item(i).WebImage.Image.Width, Me.TMDBPosters.Item(i).WebImage.Image.Height) + rbMedium.Text = String.Format("Poster ({0}x{1})", TMDBPoster.Width, TMDBPoster.Height) + rbMedium.Tag = TMDBPoster.URL + End Select + Next + + Select Case Master.eSettings.PreferredPosterSize + Case Enums.PosterSize.Small + rbSmall.Checked = rbSmall.Enabled + Case Enums.PosterSize.Mid + rbMedium.Checked = rbMedium.Enabled + Case Enums.PosterSize.Lrg + rbLarge.Checked = rbLarge.Enabled + Case Enums.PosterSize.Xlrg + rbXLarge.Checked = rbXLarge.Enabled + End Select + + pnlSize.Visible = True + + Invalidate() + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + Private Sub StartDownload() + Try + Select Case Me.DLType + Case Enums.ImageType.Posters + Me.GetPosters() + Case Enums.ImageType.Fanart + Me.GetFanart() + End Select + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + Private Sub TMDBDoneDownloading() + Try + Me._tmdbDone = True + Me.lblDL2.Text = Master.eLang.GetString(38, "Preparing images...") + Application.DoEvents() + + Me.AllDoneDownloading() + + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + Private Sub TMDBPostersDownloaded(ByVal Posters As List(Of MediaContainers.Image)) + Try + Me.pbDL2.Value = 0 + + 'Me.lblDL2.Text = Master.eLang.GetString(38, "Preparing images...") + Me.lblDL2Status.Text = String.Empty + Me.pbDL2.Maximum = Posters.Count + + Me.TMDBPosters = Posters + + Me.bwTMDBDownload.WorkerSupportsCancellation = True + Me.bwTMDBDownload.WorkerReportsProgress = True + Me.bwTMDBDownload.RunWorkerAsync() + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + Private Sub TMDBProgressUpdated(ByVal iPercent As Integer) + Me.pbDL2.Value = iPercent + End Sub + +#End Region 'Methods + +End Class \ No newline at end of file diff --git a/Addons/scraper.EmberCore.TMDB/Scraper/dlgTMDBSearchResults.Designer.vb b/Addons/scraper.EmberCore.TMDB/Scraper/dlgTMDBSearchResults.Designer.vb new file mode 100644 index 0000000..edf9f3b --- /dev/null +++ b/Addons/scraper.EmberCore.TMDB/Scraper/dlgTMDBSearchResults.Designer.vb @@ -0,0 +1,460 @@ + _ +Partial Class dlgTMDBSearchResults + Inherits System.Windows.Forms.Form + + 'Form overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(dlgTMDBSearchResults)) + Me.OK_Button = New System.Windows.Forms.Button() + Me.Cancel_Button = New System.Windows.Forms.Button() + Me.tvResults = New System.Windows.Forms.TreeView() + Me.pbPoster = New System.Windows.Forms.PictureBox() + Me.lblTitle = New System.Windows.Forms.Label() + Me.lblTagline = New System.Windows.Forms.Label() + Me.txtOutline = New System.Windows.Forms.TextBox() + Me.lblYear = New System.Windows.Forms.Label() + Me.lblDirector = New System.Windows.Forms.Label() + Me.lblGenre = New System.Windows.Forms.Label() + Me.txtTMDBID = New System.Windows.Forms.TextBox() + Me.pnlTop = New System.Windows.Forms.Panel() + Me.Label2 = New System.Windows.Forms.Label() + Me.Label1 = New System.Windows.Forms.Label() + Me.PictureBox1 = New System.Windows.Forms.PictureBox() + Me.chkManual = New System.Windows.Forms.CheckBox() + Me.btnVerify = New System.Windows.Forms.Button() + Me.lblIMDB = New System.Windows.Forms.Label() + Me.lblYearHeader = New System.Windows.Forms.Label() + Me.lblDirectorHeader = New System.Windows.Forms.Label() + Me.lblGenreHeader = New System.Windows.Forms.Label() + Me.lblIMDBHeader = New System.Windows.Forms.Label() + Me.lblPlotHeader = New System.Windows.Forms.Label() + Me.btnSearch = New System.Windows.Forms.Button() + Me.txtSearch = New System.Windows.Forms.TextBox() + Me.pnlLoading = New System.Windows.Forms.Panel() + Me.Label3 = New System.Windows.Forms.Label() + Me.ProgressBar1 = New System.Windows.Forms.ProgressBar() + Me.pnlPicStatus = New System.Windows.Forms.Panel() + Me.Label4 = New System.Windows.Forms.Label() + CType(Me.pbPoster, System.ComponentModel.ISupportInitialize).BeginInit() + Me.pnlTop.SuspendLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.pnlLoading.SuspendLayout() + Me.pnlPicStatus.SuspendLayout() + Me.SuspendLayout() + ' + 'OK_Button + ' + Me.OK_Button.Enabled = False + Me.OK_Button.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.OK_Button.Location = New System.Drawing.Point(497, 401) + Me.OK_Button.Name = "OK_Button" + Me.OK_Button.Size = New System.Drawing.Size(67, 22) + Me.OK_Button.TabIndex = 0 + Me.OK_Button.Text = "OK" + ' + 'Cancel_Button + ' + Me.Cancel_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.Cancel_Button.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Cancel_Button.Location = New System.Drawing.Point(570, 401) + Me.Cancel_Button.Name = "Cancel_Button" + Me.Cancel_Button.Size = New System.Drawing.Size(67, 22) + Me.Cancel_Button.TabIndex = 1 + Me.Cancel_Button.Text = "Cancel" + ' + 'tvResults + ' + Me.tvResults.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.tvResults.HideSelection = False + Me.tvResults.Location = New System.Drawing.Point(4, 96) + Me.tvResults.Name = "tvResults" + Me.tvResults.ShowLines = False + Me.tvResults.ShowPlusMinus = False + Me.tvResults.ShowRootLines = False + Me.tvResults.Size = New System.Drawing.Size(281, 299) + Me.tvResults.TabIndex = 4 + ' + 'pbPoster + ' + Me.pbPoster.Location = New System.Drawing.Point(294, 130) + Me.pbPoster.Name = "pbPoster" + Me.pbPoster.Size = New System.Drawing.Size(110, 130) + Me.pbPoster.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom + Me.pbPoster.TabIndex = 2 + Me.pbPoster.TabStop = False + Me.pbPoster.Visible = False + ' + 'lblTitle + ' + Me.lblTitle.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblTitle.Location = New System.Drawing.Point(291, 70) + Me.lblTitle.Name = "lblTitle" + Me.lblTitle.Size = New System.Drawing.Size(346, 19) + Me.lblTitle.TabIndex = 9 + Me.lblTitle.Text = "Title" + Me.lblTitle.Visible = False + ' + 'lblTagline + ' + Me.lblTagline.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblTagline.Location = New System.Drawing.Point(291, 89) + Me.lblTagline.Name = "lblTagline" + Me.lblTagline.Size = New System.Drawing.Size(346, 16) + Me.lblTagline.TabIndex = 10 + Me.lblTagline.Text = "Tagline" + Me.lblTagline.Visible = False + ' + 'txtOutline + ' + Me.txtOutline.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtOutline.Location = New System.Drawing.Point(294, 295) + Me.txtOutline.Multiline = True + Me.txtOutline.Name = "txtOutline" + Me.txtOutline.Size = New System.Drawing.Size(343, 100) + Me.txtOutline.TabIndex = 22 + Me.txtOutline.TabStop = False + Me.txtOutline.Visible = False + ' + 'lblYear + ' + Me.lblYear.AutoSize = True + Me.lblYear.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblYear.Location = New System.Drawing.Point(472, 130) + Me.lblYear.Name = "lblYear" + Me.lblYear.Size = New System.Drawing.Size(31, 13) + Me.lblYear.TabIndex = 13 + Me.lblYear.Text = "0000" + Me.lblYear.Visible = False + ' + 'lblDirector + ' + Me.lblDirector.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblDirector.Location = New System.Drawing.Point(472, 156) + Me.lblDirector.Name = "lblDirector" + Me.lblDirector.Size = New System.Drawing.Size(165, 16) + Me.lblDirector.TabIndex = 15 + Me.lblDirector.Text = "Director" + Me.lblDirector.Visible = False + ' + 'lblGenre + ' + Me.lblGenre.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblGenre.Location = New System.Drawing.Point(472, 183) + Me.lblGenre.Name = "lblGenre" + Me.lblGenre.Size = New System.Drawing.Size(165, 52) + Me.lblGenre.TabIndex = 17 + Me.lblGenre.Text = "Genre" + Me.lblGenre.Visible = False + ' + 'txtTMDBID + ' + Me.txtTMDBID.Enabled = False + Me.txtTMDBID.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtTMDBID.Location = New System.Drawing.Point(139, 399) + Me.txtTMDBID.Name = "txtTMDBID" + Me.txtTMDBID.Size = New System.Drawing.Size(100, 22) + Me.txtTMDBID.TabIndex = 6 + ' + 'pnlTop + ' + Me.pnlTop.BackColor = System.Drawing.Color.LightSteelBlue + Me.pnlTop.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.pnlTop.Controls.Add(Me.Label2) + Me.pnlTop.Controls.Add(Me.Label1) + Me.pnlTop.Controls.Add(Me.PictureBox1) + Me.pnlTop.Dock = System.Windows.Forms.DockStyle.Top + Me.pnlTop.Location = New System.Drawing.Point(0, 0) + Me.pnlTop.Name = "pnlTop" + Me.pnlTop.Size = New System.Drawing.Size(643, 64) + Me.pnlTop.TabIndex = 8 + ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.BackColor = System.Drawing.Color.Transparent + Me.Label2.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Label2.ForeColor = System.Drawing.Color.White + Me.Label2.Location = New System.Drawing.Point(61, 38) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(276, 13) + Me.Label2.TabIndex = 1 + Me.Label2.Text = "View details of each result to find the proper movie." + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.BackColor = System.Drawing.Color.Transparent + Me.Label1.Font = New System.Drawing.Font("Segoe UI", 18.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Label1.ForeColor = System.Drawing.Color.White + Me.Label1.Location = New System.Drawing.Point(58, 3) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(257, 32) + Me.Label1.TabIndex = 0 + Me.Label1.Text = "Movie Search Results" + ' + 'PictureBox1 + ' + Me.PictureBox1.BackColor = System.Drawing.Color.Transparent + Me.PictureBox1.Image = CType(resources.GetObject("PictureBox1.Image"), System.Drawing.Image) + Me.PictureBox1.Location = New System.Drawing.Point(7, 8) + Me.PictureBox1.Name = "PictureBox1" + Me.PictureBox1.Size = New System.Drawing.Size(48, 48) + Me.PictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize + Me.PictureBox1.TabIndex = 0 + Me.PictureBox1.TabStop = False + ' + 'chkManual + ' + Me.chkManual.AutoSize = True + Me.chkManual.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkManual.Location = New System.Drawing.Point(4, 403) + Me.chkManual.Name = "chkManual" + Me.chkManual.Size = New System.Drawing.Size(130, 17) + Me.chkManual.TabIndex = 5 + Me.chkManual.Text = "Manual TMDB Entry:" + Me.chkManual.UseVisualStyleBackColor = True + ' + 'btnVerify + ' + Me.btnVerify.Enabled = False + Me.btnVerify.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.btnVerify.Location = New System.Drawing.Point(245, 399) + Me.btnVerify.Name = "btnVerify" + Me.btnVerify.Size = New System.Drawing.Size(75, 22) + Me.btnVerify.TabIndex = 7 + Me.btnVerify.Text = "Verify" + Me.btnVerify.UseVisualStyleBackColor = True + ' + 'lblIMDB + ' + Me.lblIMDB.AutoSize = True + Me.lblIMDB.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblIMDB.Location = New System.Drawing.Point(472, 247) + Me.lblIMDB.Name = "lblIMDB" + Me.lblIMDB.Size = New System.Drawing.Size(37, 13) + Me.lblIMDB.TabIndex = 20 + Me.lblIMDB.Text = "TMDB" + Me.lblIMDB.Visible = False + ' + 'lblYearHeader + ' + Me.lblYearHeader.AutoSize = True + Me.lblYearHeader.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblYearHeader.Location = New System.Drawing.Point(410, 130) + Me.lblYearHeader.Name = "lblYearHeader" + Me.lblYearHeader.Size = New System.Drawing.Size(33, 13) + Me.lblYearHeader.TabIndex = 12 + Me.lblYearHeader.Text = "Year:" + Me.lblYearHeader.Visible = False + ' + 'lblDirectorHeader + ' + Me.lblDirectorHeader.AutoSize = True + Me.lblDirectorHeader.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblDirectorHeader.Location = New System.Drawing.Point(410, 156) + Me.lblDirectorHeader.Name = "lblDirectorHeader" + Me.lblDirectorHeader.Size = New System.Drawing.Size(51, 13) + Me.lblDirectorHeader.TabIndex = 14 + Me.lblDirectorHeader.Text = "Director:" + Me.lblDirectorHeader.Visible = False + ' + 'lblGenreHeader + ' + Me.lblGenreHeader.AutoSize = True + Me.lblGenreHeader.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblGenreHeader.Location = New System.Drawing.Point(410, 183) + Me.lblGenreHeader.Name = "lblGenreHeader" + Me.lblGenreHeader.Size = New System.Drawing.Size(54, 13) + Me.lblGenreHeader.TabIndex = 16 + Me.lblGenreHeader.Text = "Genre(s):" + Me.lblGenreHeader.Visible = False + ' + 'lblIMDBHeader + ' + Me.lblIMDBHeader.AutoSize = True + Me.lblIMDBHeader.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblIMDBHeader.Location = New System.Drawing.Point(410, 247) + Me.lblIMDBHeader.Name = "lblIMDBHeader" + Me.lblIMDBHeader.Size = New System.Drawing.Size(56, 13) + Me.lblIMDBHeader.TabIndex = 19 + Me.lblIMDBHeader.Text = "TMDB ID:" + Me.lblIMDBHeader.Visible = False + ' + 'lblPlotHeader + ' + Me.lblPlotHeader.AutoSize = True + Me.lblPlotHeader.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblPlotHeader.Location = New System.Drawing.Point(291, 279) + Me.lblPlotHeader.Name = "lblPlotHeader" + Me.lblPlotHeader.Size = New System.Drawing.Size(83, 13) + Me.lblPlotHeader.TabIndex = 21 + Me.lblPlotHeader.Text = "Plot Summary:" + Me.lblPlotHeader.Visible = False + ' + 'btnSearch + ' + Me.btnSearch.Image = CType(resources.GetObject("btnSearch.Image"), System.Drawing.Image) + Me.btnSearch.Location = New System.Drawing.Point(262, 70) + Me.btnSearch.Name = "btnSearch" + Me.btnSearch.Size = New System.Drawing.Size(23, 23) + Me.btnSearch.TabIndex = 3 + Me.btnSearch.UseVisualStyleBackColor = True + ' + 'txtSearch + ' + Me.txtSearch.Location = New System.Drawing.Point(4, 71) + Me.txtSearch.Name = "txtSearch" + Me.txtSearch.Size = New System.Drawing.Size(252, 22) + Me.txtSearch.TabIndex = 2 + ' + 'pnlLoading + ' + Me.pnlLoading.BackColor = System.Drawing.Color.White + Me.pnlLoading.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.pnlLoading.Controls.Add(Me.Label3) + Me.pnlLoading.Controls.Add(Me.ProgressBar1) + Me.pnlLoading.Location = New System.Drawing.Point(364, 183) + Me.pnlLoading.Name = "pnlLoading" + Me.pnlLoading.Size = New System.Drawing.Size(200, 54) + Me.pnlLoading.TabIndex = 18 + ' + 'Label3 + ' + Me.Label3.AutoSize = True + Me.Label3.Location = New System.Drawing.Point(3, 10) + Me.Label3.Name = "Label3" + Me.Label3.Size = New System.Drawing.Size(100, 13) + Me.Label3.TabIndex = 0 + Me.Label3.Text = "Searching TMDB..." + Me.Label3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + ' + 'ProgressBar1 + ' + Me.ProgressBar1.Location = New System.Drawing.Point(3, 32) + Me.ProgressBar1.MarqueeAnimationSpeed = 25 + Me.ProgressBar1.Name = "ProgressBar1" + Me.ProgressBar1.Size = New System.Drawing.Size(192, 17) + Me.ProgressBar1.Style = System.Windows.Forms.ProgressBarStyle.Marquee + Me.ProgressBar1.TabIndex = 1 + ' + 'pnlPicStatus + ' + Me.pnlPicStatus.BackColor = System.Drawing.Color.LightSteelBlue + Me.pnlPicStatus.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.pnlPicStatus.Controls.Add(Me.Label4) + Me.pnlPicStatus.Location = New System.Drawing.Point(308, 155) + Me.pnlPicStatus.Name = "pnlPicStatus" + Me.pnlPicStatus.Size = New System.Drawing.Size(81, 45) + Me.pnlPicStatus.TabIndex = 11 + ' + 'Label4 + ' + Me.Label4.Location = New System.Drawing.Point(5, 5) + Me.Label4.Name = "Label4" + Me.Label4.Size = New System.Drawing.Size(70, 33) + Me.Label4.TabIndex = 0 + Me.Label4.Text = "Fetching Poster..." + Me.Label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter + ' + 'dlgTMDBSearchResults + ' + Me.AcceptButton = Me.OK_Button + Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi + Me.CancelButton = Me.Cancel_Button + Me.ClientSize = New System.Drawing.Size(643, 454) + Me.ControlBox = False + Me.Controls.Add(Me.pnlLoading) + Me.Controls.Add(Me.pnlPicStatus) + Me.Controls.Add(Me.Cancel_Button) + Me.Controls.Add(Me.OK_Button) + Me.Controls.Add(Me.btnSearch) + Me.Controls.Add(Me.txtSearch) + Me.Controls.Add(Me.lblPlotHeader) + Me.Controls.Add(Me.lblIMDBHeader) + Me.Controls.Add(Me.lblGenreHeader) + Me.Controls.Add(Me.lblDirectorHeader) + Me.Controls.Add(Me.lblYearHeader) + Me.Controls.Add(Me.lblIMDB) + Me.Controls.Add(Me.btnVerify) + Me.Controls.Add(Me.chkManual) + Me.Controls.Add(Me.pnlTop) + Me.Controls.Add(Me.txtTMDBID) + Me.Controls.Add(Me.lblGenre) + Me.Controls.Add(Me.lblDirector) + Me.Controls.Add(Me.lblYear) + Me.Controls.Add(Me.txtOutline) + Me.Controls.Add(Me.lblTagline) + Me.Controls.Add(Me.lblTitle) + Me.Controls.Add(Me.pbPoster) + Me.Controls.Add(Me.tvResults) + Me.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.MinimumSize = New System.Drawing.Size(649, 460) + Me.Name = "dlgTMDBSearchResults" + Me.ShowIcon = False + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "Search Results" + CType(Me.pbPoster, System.ComponentModel.ISupportInitialize).EndInit() + Me.pnlTop.ResumeLayout(False) + Me.pnlTop.PerformLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() + Me.pnlLoading.ResumeLayout(False) + Me.pnlLoading.PerformLayout() + Me.pnlPicStatus.ResumeLayout(False) + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents OK_Button As System.Windows.Forms.Button + Friend WithEvents Cancel_Button As System.Windows.Forms.Button + Friend WithEvents tvResults As System.Windows.Forms.TreeView + Friend WithEvents pbPoster As System.Windows.Forms.PictureBox + Friend WithEvents lblTitle As System.Windows.Forms.Label + Friend WithEvents lblTagline As System.Windows.Forms.Label + Friend WithEvents txtOutline As System.Windows.Forms.TextBox + Friend WithEvents lblYear As System.Windows.Forms.Label + Friend WithEvents lblDirector As System.Windows.Forms.Label + Friend WithEvents lblGenre As System.Windows.Forms.Label + Friend WithEvents txtTMDBID As System.Windows.Forms.TextBox + Friend WithEvents pnlTop As System.Windows.Forms.Panel + Friend WithEvents Label2 As System.Windows.Forms.Label + Friend WithEvents Label1 As System.Windows.Forms.Label + Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox + Friend WithEvents chkManual As System.Windows.Forms.CheckBox + Friend WithEvents btnVerify As System.Windows.Forms.Button + Friend WithEvents lblIMDB As System.Windows.Forms.Label + Friend WithEvents lblYearHeader As System.Windows.Forms.Label + Friend WithEvents lblDirectorHeader As System.Windows.Forms.Label + Friend WithEvents lblGenreHeader As System.Windows.Forms.Label + Friend WithEvents lblIMDBHeader As System.Windows.Forms.Label + Friend WithEvents lblPlotHeader As System.Windows.Forms.Label + Friend WithEvents btnSearch As System.Windows.Forms.Button + Friend WithEvents txtSearch As System.Windows.Forms.TextBox + Friend WithEvents pnlLoading As System.Windows.Forms.Panel + Friend WithEvents Label3 As System.Windows.Forms.Label + Friend WithEvents ProgressBar1 As System.Windows.Forms.ProgressBar + Friend WithEvents pnlPicStatus As System.Windows.Forms.Panel + Friend WithEvents Label4 As System.Windows.Forms.Label + +End Class diff --git a/Addons/scraper.EmberCore.TMDB/Scraper/dlgTMDBSearchResults.resx b/Addons/scraper.EmberCore.TMDB/Scraper/dlgTMDBSearchResults.resx new file mode 100644 index 0000000..017a5ad --- /dev/null +++ b/Addons/scraper.EmberCore.TMDB/Scraper/dlgTMDBSearchResults.resx @@ -0,0 +1,191 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK9gAA + CvYBwq9wAwAACyJJREFUaEPtWAdQVWcWRukgvIcUqRopPlqoooKU0AREUZEOwpP6no/26EqTJiAaKcYS + xBJlVSwJSYhl1bgJiZlZ427cLG4ym92YZFJ2J8lks5vZFO+359w8jEZNzEyScWe4M9+8y3v3/v/5TvnO + +dHSmrqmPDDlgSkPTHlgygNTHpjywIPvATt7hwfPSDuH2XcY5enlbRwcEjLLzcMjxNHJqcfW1q7VwtLq + IanFrGkPDIPvGz4/IMB1nUqVrlQqe7Kyss4vjY//dPHixXBzc4OtrS1mmpu/M8vaesDW1r7T2sam3tfP + r4LeyXN395wzSSo7M0tLajbzJkeJ1OyX4Xur8WXl6tbevv63evv6Pt65c+eXnZ2dKCkpQXJyMoKDg7F8 + +XIhISFBWJ2YiOUJCZjr6ChC5uoqEMGvA4OCPlkUGDRqY2u38G7W2to7uM6TuYVM/mZoZPzTSK1atUqX + jNBPy8gwLikrkyrXqSxzc3Nt/Pz852bn5Lw0OjqKiYkJXL9+XXji4EE0NDSguLgYSUlJCA0NFbFgwQKR + UF5uLtatWweOjK+vL6KiooTS0lIhPT0dFDUkJiZOLA4OSQ0Ne8QpKjp6T0ho6MdRUdEoUiiwZMmSDyys + rLzI+nunYXhE5CQ73eDQsMDdu3eX9Pb2HqqoqDhBi5zfsWPH1a1bH32/qqrq65ycHMTFxcHDw0Pw8/PD + 4cOHceXKFfT19SEjI4ONQTp9yuVy8TMmNhZxS5dCXVEhkmBiTCQtLR3l5eWgNVFRWYm6ujqUlZXfUNEz + FDkmKlhaWgle3t5wdnb+QM/Q0JmM1L6DSFh4hGh8RERUXmNj4/vd3d2fNTQ23KB71NfXY+3atWBP9ff3 + o6OjAwryCqfH/PnzxRy3sLDAmTNncOrUKRQWFSE+fhkZUobU1FRERERgKRkfHh6OxNWrKUqNlGalUKmK + RYJMKGvNGrS0taG9o0PY0tPD3wm0Ptg5NjY2MDQ0FKxtbb8xMDSsJDMNCdPvyKVHIiKzO7u6kJeXJ1Ca + CMW0ydbHD6NYXQX2eGRkJNhgJkTFygTEvx0cHKCjoyPmOKfUgQMHsGx5AmgNrFy5UowGpwi/wyQosjhI + 6cZ7NW/ciJaWFly+fBkXL17E2NgYqmtqUFhYKK7PBNhBenp60NbWgalEsokM50pnEhyJm5dOe3vHuwUF + BWLoOI/zCpXoe/bP6H9uAsqKekQ8Eiaqio+PD4rIy7cSMDAwEKOwb98+MUpMMiY2DpmZmaIxnOtcH8uW + LRP279+PkydP4tChQ0T2CYyPj+PcuXNi9NgBR48eFYWAnr2NwLRp02BiYvKqjq6uO1ltTTAh6IgMSLe9 + aeNPNapB4VVBnleE1iOX0Xj0ddTtv4TE1CzKeXdYWVkhOjpaJDoZASZAi6OLvNpGqVBbW4vklBT4U4TY + GZx2OTlysEqxoUNDQ2LRv/jiizh//jxGRkaIdAPy8vMpcnlYv2ED4omAv7//zQiQmZg5cybc3D1G6N5e + A1ORQFJyysLuzZs/41xlz3JuFimLoep5GoV9LyN7yzjSK/vxsJcXzM3N4eLiQnkeP0lAYAKWlpZobWsT + qqurOUJCRkam4ObuDtL/fzk6OnbRNs4+vr5VjU1NH7DxTKSPotVAdcYOUyoVWE01EhoagnnzZKBeAQ9P + z1sJCGZmZlz812kt7qBzCd82C3dPT9ddu3Z9HBsbK3Do2LuVpArxRd3wUz0Dp5zjmK84Bp+AIJEAL0TS + hoCAAMHe3h5GxsZiDdRq8peLl393cnb5o5m5eRptISXY1NTUVPYPDExwmqnVarBINDc3YyPVAtcIEwgL + CyPDPTCLIi2lfajxiTXAEZBKpbC3d6im+3kaEjNuFgEReI+KTuAoMJKTk7AqpwQy1SicVWNwUpxCQnqB + aLyurq6YRpxCs2fP/o/xDJMiZ2eXFPJY26LAwGcWLFz4eycn5y59A4MA2sCYvvckdXqV6uCr9evroC5X + C3WUZlxLbDQ7jcTjOwIeHqL6TKYmE+AaMDIyvkDFzGu6EWYR9LQmO2tlVVUfe4IME1j62IPyzDRElg/A + u/0luNReRHZ1N6QSiaCtrS0wASrof5AyFNJCiwi88HyCH8Fb4yVJeGTk6nwSBy7s9vZ2YXPfTuwcfhqV + G5qRLV+LFStWiF2bncGRFyOgIaCvrw8TU1NIJFJMnz798xkmM+S0rg/BRRPV25RI+thjj/2XlYMkU4iJ + iQF1YmRnUmNqG4Lvo6+irPNxSExNBYlEwhtepdTJpoV4DOCQsrxZEFgh2DvTg4KDU7kfcDqSc4QNjc04 + cOENPDH+Hva98C56j42juLoRQYELIZPJ4OTkJPaNWwno6esLrqR+FM0DGuOZABexwc30CQkJE+8VSmXK + 4OCg2IS4/bN3srOzsYnUY/O+E6ht3EjekMDa2vqaqalpKr3CHdCDwLo8eXG7Z8woKS19mxWJGp/QQBHY + +Oggdl24jr6xN7D1qWvoPjmBTceuoqq1Dx5uMlEIuKYmGxhFQKB9aHZy+xutt5gQpNmPnXWb97Vk7iyv + Wto0PmwfHh4WNZ00W6AxQThy5AjOnj0DmlFuUM5/RG29hp6NI3DKfCtl37vCo6KWUIH+m3sLd9sKdRna + dj+FrhPX0DL8Gur3X4Gq/xJC1WOYmzWC2BQFOWYWjEkQXF1duQZY3QSaZN80NDJKpuVDCb53eP8ue+ts + 3769/jeHD39y+vRpPP/88yK6urvfppwfJA/J6Z14Ag9PnCp3vVLT0nJaWlu/4tmIi7WyQo2anmHUDV1B + 6cAlRFafwkNkuF3aUTikH0Ww4hBcPbxExbGzs2P5FIjM53q6elmavThVWT6NCHeOEmwFqcFNY+obGmxo + XM5oamrupGGsltQnk35kT6wiBBPsCLeH8RYqmZlZa6iBfZlCDW0NzTqN1IkLypsh3/oKPBWjmJv7JBwL + niKMwjH/SczJHUVaUR0V6zSWaoFViIr3OC25RIOH6VN6T+Pv5UnN91wwrgT2Auc8p80PnrBiYmIjtmzZ + 8jlFQGCp5Ekzt1AFX+UInJTPwKX0OcjUpyGrOIN55RQN5Rjk3WOYYWQosN7b2Np+QXusIKzURMCJPr8r + 3B8x+G4/s8F6P+T1771kQvPVhyQIAqsZN7fycjWCszdCVnUW7vUX4NXyArzbxuHZdBEu1ecQ3XoeC/x9 + RKGg3O+l9VbfEnFWt29nn1/rSklN3bZ9YIAblEBdXmxU3HGDqocRtOM1xAz/BXFH3kT40J/gs+llRHX+ + DpHhIUzgr0ZGRvlkZ4YmCj73E/Vfgtf0pqamT6vpwMJjCh+C+GxRlJ+LtB3PIu/SP6H4w2fIvPghwvdf + E4r2XhKCgxbdIDkdImNyCGsISwl8kNH/JQy855rOMpn4Gxkdtm3bti94YONBkccGbpaKwnzUbh9Ex/hV + VLzyDhJPvCHsOn4ajo5zz5IScXfnCLACcZMSG+OvSoA3U5WUiHsmJiVl7tmzRxigdKJxW+ihUxff79kz + iIPUcw4dOyGMPD2GAoXidXpcQVBqCHARc4P6iaf5n5EqwIOkltYcR8coGp/fp8b4zd69e8WTGzdIPsAc + O34cmzf3fES6v54eLWXuBJZtnq/u7Lo/o333tdTegwcnnzMrLCyqooPPb7f19v6dUusjapBvyeVrz9F5 + t5UeqiCoCZxCMQT+d57ufW3yKz7EuWxNOh9Ip7tUmneKNB4v1qQOD4jcvFj3ues+sBdrupTwEMGHsIDg + T5ic9blpPTj/jvwRN/JIwk2SwcT+bwx/YNNjyrApD0x5YMoD9+eB/wG4NXpfmvI52QAAAABJRU5ErkJg + gg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK6QAA + CukB/XXO0wAAAepJREFUOE+lkktIG1EUhkeFaLQ+UGulgthNEUHRCrqyIHZTdSd0Iyq46cL3Sly50ppV + uywYi2uDiyKK1ioFk0lm7mSmSgymJuIqSkwwCTVpGs3fM0Pa+poWceBj4N5zvnvOuZcDwN2HeyWrB98Q + LFosuRJjz51O6cXmxsaj/1V3RSAx8fVXRQnIsgwVRZHjJHr7L8kfAROFPoWS3G43gicnCIVC8O7vQ11z + StKsnkQTrK6sGCSJBXddLpyfJ5FKpTTUz+f1gvbA22w1t0k0AW3WCYIAv9+PZPIn4vGYRiLxA+HwKRhj + EByOIV2BdWur3mG34/j4iJISiEYjRBSx2BkikQiYKOJQ4ft1BZ/X13NIEHalW1CrUEVACj6fF4yqe2W2 + TegK0m0MiBSoziEQCNAQg/B4PPi2I8Fk+QJucBnZI0vvrkuuXCPP8+PU63dC7RnbTvHi/cKnA2O3GYbu + OeT0ziOv58Na8djHgt+iGw+JHk+pzWrtpMF27cn2Ko7jMnLbTebCl1MoaH+D/I4ZFHbM7FZ0ThtvfYl6 + 913WMjFc2jyGkqZRlNC/om2yXBNk0RFEEfGEqCZqiXriGdGYpoHCHhdXtg6W1fQKD592mQwZ3N8KKCiL + yCaMRB7xgMi/zuXqMinnTi3otfYLj6yxrhdJtZ8AAAAASUVORK5CYII= + + + \ No newline at end of file diff --git a/Addons/scraper.EmberCore.TMDB/Scraper/dlgTMDBSearchResults.vb b/Addons/scraper.EmberCore.TMDB/Scraper/dlgTMDBSearchResults.vb new file mode 100644 index 0000000..d05fd0b --- /dev/null +++ b/Addons/scraper.EmberCore.TMDB/Scraper/dlgTMDBSearchResults.vb @@ -0,0 +1,462 @@ +' ################################################################################ +' # EMBER MEDIA MANAGER # +' ################################################################################ +' ################################################################################ +' # This file is part of Ember Media Manager. # +' # # +' # Ember Media Manager is free software: you can redistribute it and/or modify # +' # it under the terms of the GNU General Public License as published by # +' # the Free Software Foundation, either version 3 of the License, or # +' # (at your option) any later version. # +' # # +' # Ember Media Manager is distributed in the hope that it will be useful, # +' # but WITHOUT ANY WARRANTY; without even the implied warranty of # +' # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +' # GNU General Public License for more details. # +' # # +' # You should have received a copy of the GNU General Public License # +' # along with Ember Media Manager. If not, see . # +' ################################################################################ + +Imports System.Text.RegularExpressions +Imports EmberAPI +Imports WatTmdb + +Public Class dlgTMDBSearchResults + +#Region "Fields" + + Friend WithEvents bwDownloadPic As New System.ComponentModel.BackgroundWorker + Friend WithEvents tmrLoad As New System.Windows.Forms.Timer + Friend WithEvents tmrWait As New System.Windows.Forms.Timer + + Private TMDBg As TMDBg.Scraper + Private sHTTP As New HTTP + Private _currnode As Integer = -1 + Private _prevnode As Integer = -2 + Private MySettings As EmberTMDBScraperModule.sMySettings + 'Private TMDBConf As V3.TmdbConfiguration + 'Private TMDBApi As V3.Tmdb + + Private _InfoCache As New Dictionary(Of String, MediaContainers.Movie) + Private _PosterCache As New Dictionary(Of String, System.Drawing.Image) + Private _filterOptions As Structures.ScrapeOptions + +#End Region 'Fields + +#Region "Methods" + + Public Sub New(_MySettings As EmberTMDBScraperModule.sMySettings, _TMDBg As TMDBg.Scraper) + + ' This call is required by the designer. + InitializeComponent() + 'TMDBApi = New WatTmdb.V3.Tmdb(_MySettings.TMDBAPIKey, _MySettings.TMDBLanguage) + 'TMDBConf = TMDBApi.GetConfiguration() + MySettings = _MySettings + TMDBg = _TMDBg + End Sub + + + Public Overloads Function ShowDialog(ByVal sMovieTitle As String, ByVal filterOptions As Structures.ScrapeOptions) As Windows.Forms.DialogResult + Me.tmrWait.Enabled = False + Me.tmrWait.Interval = 250 + Me.tmrLoad.Enabled = False + Me.tmrLoad.Interval = 100 + + _filterOptions = filterOptions + + Me.Text = String.Concat(Master.eLang.GetString(10, "Search Results"), " - ", sMovieTitle) + Me.txtSearch.Text = sMovieTitle + chkManual.Enabled = False + 'TMDBg.IMDBURL = TMDBId + TMDBg.SearchMovieAsync(sMovieTitle, _filterOptions) + + Return MyBase.ShowDialog() + End Function + + Public Overloads Function ShowDialog(ByVal Res As TMDBg.MovieSearchResults, ByVal sMovieTitle As String) As Windows.Forms.DialogResult + Me.tmrWait.Enabled = False + Me.tmrWait.Interval = 250 + Me.tmrLoad.Enabled = False + Me.tmrLoad.Interval = 100 + + Me.Text = String.Concat(Master.eLang.GetString(10, "Search Results"), " - ", sMovieTitle) + Me.txtSearch.Text = sMovieTitle + SearchResultsDownloaded(Res) + + Return MyBase.ShowDialog() + End Function + + Private Sub btnSearch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSearch.Click + If Not String.IsNullOrEmpty(Me.txtSearch.Text) Then + Me.OK_Button.Enabled = False + pnlPicStatus.Visible = False + _InfoCache.Clear() + _PosterCache.Clear() + Me.ClearInfo() + Me.Label3.Text = Master.eLang.GetString(11, "Searching TMDB...") + Me.pnlLoading.Visible = True + chkManual.Enabled = False + TMDBg.CancelAsync() + 'IMDB.IMDBURL = IMDBURL + TMDBg.SearchMovieAsync(Me.txtSearch.Text, _filterOptions) + End If + End Sub + + Private Sub btnVerify_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnVerify.Click + '' The rule is that if there is a tt is an IMDB otherwise is a TMDB + TMDBg.GetSearchMovieInfoAsync(Me.txtTMDBID.Text, Master.tmpMovie, Master.DefaultOptions) + + End Sub + + Private Sub bwDownloadPic_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles bwDownloadPic.DoWork + Dim Args As Arguments = DirectCast(e.Argument, Arguments) + + sHTTP.StartDownloadImage(Args.pURL) + + While sHTTP.IsDownloading + Application.DoEvents() + Threading.Thread.Sleep(50) + End While + + e.Result = New Results With {.Result = sHTTP.Image, .IMDBId = Args.IMDBId} + End Sub + + Private Sub bwDownloadPic_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles bwDownloadPic.RunWorkerCompleted + '// + ' Thread finished: display pic if it was able to get one + '\\ + + Dim Res As Results = DirectCast(e.Result, Results) + + Try + Me.pbPoster.Image = Res.Result + If Not _PosterCache.ContainsKey(Res.IMDBId) Then + _PosterCache.Add(Res.IMDBId, Res.Result) + End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + Finally + pnlPicStatus.Visible = False + End Try + End Sub + + Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel_Button.Click + Master.tmpMovie.Clear() + + Me.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.Close() + End Sub + + Private Sub chkManual_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkManual.CheckedChanged + Me.ClearInfo() + Me.OK_Button.Enabled = False + Me.txtTMDBID.Enabled = Me.chkManual.Checked + Me.btnVerify.Enabled = Me.chkManual.Checked + Me.tvResults.Enabled = Not Me.chkManual.Checked + + If Not Me.chkManual.Checked Then + txtTMDBID.Text = String.Empty + End If + End Sub + + Private Sub ClearInfo() + Me.ControlsVisible(False) + Me.lblTitle.Text = String.Empty + Me.lblTagline.Text = String.Empty + Me.lblYear.Text = String.Empty + Me.lblDirector.Text = String.Empty + Me.lblGenre.Text = String.Empty + Me.txtOutline.Text = String.Empty + Me.lblIMDB.Text = String.Empty + Me.pbPoster.Image = Nothing + + Master.tmpMovie.Clear() + + TMDBg.CancelAsync() + End Sub + + Private Sub ControlsVisible(ByVal areVisible As Boolean) + Me.lblYearHeader.Visible = areVisible + Me.lblDirectorHeader.Visible = areVisible + Me.lblGenreHeader.Visible = areVisible + Me.lblPlotHeader.Visible = areVisible + Me.lblIMDBHeader.Visible = areVisible + Me.txtOutline.Visible = areVisible + Me.lblYear.Visible = areVisible + Me.lblTagline.Visible = areVisible + Me.lblTitle.Visible = areVisible + Me.lblDirector.Visible = areVisible + Me.lblGenre.Visible = areVisible + Me.lblIMDB.Visible = areVisible + Me.pbPoster.Visible = areVisible + End Sub + + Private Sub dlgIMDBSearchResults_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.GotFocus + Me.AcceptButton = Me.OK_Button + End Sub + + Private Sub dlgIMDBSearchResults_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load + Me.SetUp() + pnlPicStatus.Visible = False + 'TMDBg.IMDBURL = IMDBURL + AddHandler TMDBg.SearchMovieInfoDownloaded, AddressOf SearchMovieInfoDownloaded + AddHandler TMDBg.SearchResultsDownloaded, AddressOf SearchResultsDownloaded + + Try + Dim iBackground As New Bitmap(Me.pnlTop.Width, Me.pnlTop.Height) + Using g As Graphics = Graphics.FromImage(iBackground) + g.FillRectangle(New Drawing2D.LinearGradientBrush(Me.pnlTop.ClientRectangle, Color.SteelBlue, Color.LightSteelBlue, Drawing2D.LinearGradientMode.Horizontal), pnlTop.ClientRectangle) + Me.pnlTop.BackgroundImage = iBackground + End Using + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + Private Sub dlgIMDBSearchResults_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown + Me.Activate() + Me.tvResults.Focus() + End Sub + + Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click + Try + If Me.chkManual.Checked AndAlso Me.btnVerify.Enabled Then + '' The rule is that if there is a tt is an IMDB otherwise is a TMDB + Master.tmpMovie.IMDBID = Me.txtTMDBID.Text + End If + Me.DialogResult = System.Windows.Forms.DialogResult.OK + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + + Me.Close() + End Sub + + Private Sub SearchMovieInfoDownloaded(ByVal sPoster As String, ByVal bSuccess As Boolean) + '// + ' Info downloaded... fill form with data + '\\ + + Me.pnlLoading.Visible = False + Me.OK_Button.Enabled = True + + Try + If bSuccess Then + Me.ControlsVisible(True) + Me.lblTitle.Text = Master.tmpMovie.Title + Me.lblTagline.Text = Master.tmpMovie.Tagline + Me.lblYear.Text = Master.tmpMovie.Year + Me.lblDirector.Text = Master.tmpMovie.Director + Me.lblGenre.Text = Master.tmpMovie.Genre + Me.txtOutline.Text = Master.tmpMovie.Outline + Me.lblIMDB.Text = Master.tmpMovie.IMDBID + + If _PosterCache.ContainsKey(Master.tmpMovie.TMDBID) Then + 'just set it + Me.pbPoster.Image = _PosterCache(Master.tmpMovie.TMDBID) + Else + 'go download it, if available + If Not String.IsNullOrEmpty(sPoster) Then + If Me.bwDownloadPic.IsBusy Then + Me.bwDownloadPic.CancelAsync() + End If + pnlPicStatus.Visible = True + Me.bwDownloadPic = New System.ComponentModel.BackgroundWorker + Me.bwDownloadPic.WorkerSupportsCancellation = True + Me.bwDownloadPic.RunWorkerAsync(New Arguments With {.pURL = sPoster, .IMDBId = Master.tmpMovie.TMDBID}) + End If + + End If + + 'store clone of tmpmovie + If Not _InfoCache.ContainsKey(Master.tmpMovie.TMDBID) Then + _InfoCache.Add(Master.tmpMovie.TMDBID, GetMovieClone(Master.tmpMovie)) + End If + + + Me.btnVerify.Enabled = False + Else + If Me.chkManual.Checked Then + MsgBox(Master.eLang.GetString(15, "Unable to retrieve movie details for the entered IMDB ID. Please check your entry and try again."), MsgBoxStyle.Exclamation, Master.eLang.GetString(16, "Verification Failed")) + Me.btnVerify.Enabled = True + End If + End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + Private Sub SearchResultsDownloaded(ByVal M As TMDBg.MovieSearchResults) + '// + ' Process the results that IMDB gave us + '\\ + 'Dim TnP As New TreeNode + 'Dim selNode As New TreeNode + + Try + Me.tvResults.Nodes.Clear() + Me.ClearInfo() + If Not IsNothing(M) AndAlso M.Matches.Count > 0 Then + + 'M.Matches.Sort() + For Each Movie As MediaContainers.Movie In M.Matches + 'TnP.Nodes.Add(New TreeNode() With {.Text = String.Concat(Movie.Title, If(Not String.IsNullOrEmpty(Movie.Year), String.Format(" ({0})", Movie.Year), String.Empty)), .Tag = Movie.IMDBID}) + Me.tvResults.Nodes.Add(New TreeNode() With {.Text = String.Concat(Movie.Title, If(Not String.IsNullOrEmpty(Movie.Year), String.Format(" ({0})", Movie.Year), String.Empty)), .Tag = Movie.TMDBID}) + Next + 'TnP.Expand() + 'Me.tvResults.Nodes.Add(TnP) + 'selNode = Me.tvResults.Nodes(0) + 'selNode = TnP.FirstNode + 'selNode = Me.tvResults.Nodes(0) + Me.tvResults.SelectedNode = Me.tvResults.Nodes(0) + + Me._prevnode = -2 + + Me.tvResults.Focus() + Else + Me.tvResults.Nodes.Add(New TreeNode With {.Text = Master.eLang.GetString(20, "No Matches Found")}) + End If + Me.pnlLoading.Visible = False + chkManual.Enabled = True + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + Private Sub SetUp() + Me.OK_Button.Text = Master.eLang.GetString(179, "OK", True) + Me.Cancel_Button.Text = Master.eLang.GetString(167, "Cancel", True) + Me.Label2.Text = Master.eLang.GetString(21, "View details of each result to find the proper movie.") + Me.Label1.Text = Master.eLang.GetString(22, "Movie Search Results") + Me.chkManual.Text = Master.eLang.GetString(23, "Manual TMDB Entry:") + Me.btnVerify.Text = Master.eLang.GetString(24, "Verify") + Me.lblYearHeader.Text = Master.eLang.GetString(49, "Year:", True) + Me.lblDirectorHeader.Text = Master.eLang.GetString(239, "Director:", True) + Me.lblGenreHeader.Text = Master.eLang.GetString(51, "Genre(s):", True) + Me.lblIMDBHeader.Text = Master.eLang.GetString(116, "TMDB ID:") + Me.lblPlotHeader.Text = Master.eLang.GetString(242, "Plot Outline:", True) + Me.Label3.Text = Master.eLang.GetString(25, "Searching TMDB...") + End Sub + + Private Sub tmrLoad_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrLoad.Tick + Me.tmrWait.Stop() + Me.tmrLoad.Stop() + Me.pnlLoading.Visible = True + Me.Label3.Text = Master.eLang.GetString(26, "Downloading details...") + + 'IMDB.IMDBURL = IMDBURL + TMDBg.GetSearchMovieInfoAsync(Me.tvResults.SelectedNode.Tag.ToString, Master.tmpMovie, Master.DefaultOptions) + End Sub + + Private Sub tmrWait_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrWait.Tick + If Not Me._prevnode = Me._currnode Then + Me._prevnode = Me._currnode + Me.tmrWait.Stop() + Me.tmrLoad.Start() + Else + Me.tmrLoad.Stop() + Me.tmrWait.Stop() + End If + End Sub + + Private Sub tvResults_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles tvResults.AfterSelect + Try + Me.tmrWait.Stop() + Me.tmrLoad.Stop() + + Me.ClearInfo() + Me.OK_Button.Enabled = False + + If Not IsNothing(Me.tvResults.SelectedNode.Tag) AndAlso Not String.IsNullOrEmpty(Me.tvResults.SelectedNode.Tag.ToString) Then + Me._currnode = Me.tvResults.SelectedNode.Index + + 'check if this movie is in the cache already + If _InfoCache.ContainsKey(Me.tvResults.SelectedNode.Tag.ToString) Then + Master.tmpMovie = GetMovieClone(_InfoCache(Me.tvResults.SelectedNode.Tag.ToString)) + SearchMovieInfoDownloaded(String.Empty, True) + Return + End If + + Me.pnlLoading.Visible = True + Me.tmrWait.Start() + Else + Me.pnlLoading.Visible = False + End If + + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + Private Sub tvResults_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles tvResults.GotFocus + Me.AcceptButton = Me.OK_Button + End Sub + + Private Sub txtIMDBID_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtTMDBID.GotFocus + Me.AcceptButton = Me.btnVerify + End Sub + + Private Sub txtIMDBID_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtTMDBID.TextChanged + If Me.chkManual.Checked Then + Me.btnVerify.Enabled = True + Me.OK_Button.Enabled = False + End If + End Sub + + Private Sub txtSearch_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtSearch.GotFocus + Me.AcceptButton = Me.btnSearch + End Sub + + Private Function GetMovieClone(ByVal original As MediaContainers.Movie) As MediaContainers.Movie + 'have to do this the old-fashioned way because it is not serializable + Dim result As New MediaContainers.Movie + With result + .IMDBID = original.IMDBID + .Genre = original.Genre + .Title = original.Title + .Tagline = original.Tagline + .Year = original.Year + .Director = original.Director + .Genre = original.Genre + .Outline = original.Outline + End With + Return result + 'Using mem As New IO.MemoryStream() + ' Dim bin As New System.Runtime.Serialization.Formatters.Binary.BinaryFormatter(Nothing, New System.Runtime.Serialization.StreamingContext(Runtime.Serialization.StreamingContextStates.Clone)) + ' bin.Serialize(mem, original) + ' mem.Seek(0, IO.SeekOrigin.Begin) + ' Return DirectCast(bin.Deserialize(mem), MediaContainers.Movie) + 'End Using + End Function + + +#End Region 'Methods + +#Region "Nested Types" + + Private Structure Arguments + +#Region "Fields" + + Dim pURL As String + Dim IMDBId As String + +#End Region 'Fields + + End Structure + + Private Structure Results + +#Region "Fields" + + Dim Result As Image + Dim IMDBId As String + +#End Region 'Fields + + End Structure + +#End Region 'Nested Types + +End Class \ No newline at end of file diff --git a/Addons/scraper.EmberCore.TMDB/Scraper/dlgTrailer.Designer.vb b/Addons/scraper.EmberCore.TMDB/Scraper/dlgTrailer.Designer.vb new file mode 100644 index 0000000..1865dbc --- /dev/null +++ b/Addons/scraper.EmberCore.TMDB/Scraper/dlgTrailer.Designer.vb @@ -0,0 +1,279 @@ + _ +Partial Class dlgTrailer + Inherits System.Windows.Forms.Form + + 'Form overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(dlgTrailer)) + Me.OK_Button = New System.Windows.Forms.Button() + Me.Cancel_Button = New System.Windows.Forms.Button() + Me.lbTrailers = New System.Windows.Forms.ListBox() + Me.GroupBox1 = New System.Windows.Forms.GroupBox() + Me.pnlStatus = New System.Windows.Forms.Panel() + Me.lblStatus = New System.Windows.Forms.Label() + Me.pbStatus = New System.Windows.Forms.ProgressBar() + Me.btnGetTrailers = New System.Windows.Forms.Button() + Me.GroupBox2 = New System.Windows.Forms.GroupBox() + Me.btnBrowse = New System.Windows.Forms.Button() + Me.txtManual = New System.Windows.Forms.TextBox() + Me.Label2 = New System.Windows.Forms.Label() + Me.txtYouTube = New System.Windows.Forms.TextBox() + Me.Label1 = New System.Windows.Forms.Label() + Me.btnPlayTrailer = New System.Windows.Forms.Button() + Me.btnSetNfo = New System.Windows.Forms.Button() + Me.ofdTrailer = New System.Windows.Forms.OpenFileDialog() + Me.Panel1 = New System.Windows.Forms.Panel() + Me.GroupBox1.SuspendLayout() + Me.pnlStatus.SuspendLayout() + Me.GroupBox2.SuspendLayout() + Me.Panel1.SuspendLayout() + Me.SuspendLayout() + ' + 'OK_Button + ' + Me.OK_Button.Enabled = False + Me.OK_Button.Location = New System.Drawing.Point(290, 339) + Me.OK_Button.Name = "OK_Button" + Me.OK_Button.Size = New System.Drawing.Size(74, 23) + Me.OK_Button.TabIndex = 0 + Me.OK_Button.Text = "Download" + ' + 'Cancel_Button + ' + Me.Cancel_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.Cancel_Button.Location = New System.Drawing.Point(369, 339) + Me.Cancel_Button.Name = "Cancel_Button" + Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) + Me.Cancel_Button.TabIndex = 1 + Me.Cancel_Button.Text = "Cancel" + ' + 'lbTrailers + ' + Me.lbTrailers.Enabled = False + Me.lbTrailers.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lbTrailers.FormattingEnabled = True + Me.lbTrailers.HorizontalScrollbar = True + Me.lbTrailers.Location = New System.Drawing.Point(6, 19) + Me.lbTrailers.Name = "lbTrailers" + Me.lbTrailers.Size = New System.Drawing.Size(411, 173) + Me.lbTrailers.TabIndex = 0 + ' + 'GroupBox1 + ' + Me.GroupBox1.Controls.Add(Me.pnlStatus) + Me.GroupBox1.Controls.Add(Me.btnGetTrailers) + Me.GroupBox1.Controls.Add(Me.GroupBox2) + Me.GroupBox1.Controls.Add(Me.lbTrailers) + Me.GroupBox1.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.GroupBox1.Location = New System.Drawing.Point(9, 9) + Me.GroupBox1.Name = "GroupBox1" + Me.GroupBox1.Size = New System.Drawing.Size(424, 319) + Me.GroupBox1.TabIndex = 0 + Me.GroupBox1.TabStop = False + Me.GroupBox1.Text = "Select Trailer to Scrape" + ' + 'pnlStatus + ' + Me.pnlStatus.BackColor = System.Drawing.Color.White + Me.pnlStatus.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.pnlStatus.Controls.Add(Me.lblStatus) + Me.pnlStatus.Controls.Add(Me.pbStatus) + Me.pnlStatus.Location = New System.Drawing.Point(112, 82) + Me.pnlStatus.Name = "pnlStatus" + Me.pnlStatus.Size = New System.Drawing.Size(200, 54) + Me.pnlStatus.TabIndex = 1 + Me.pnlStatus.Visible = False + ' + 'lblStatus + ' + Me.lblStatus.AutoSize = True + Me.lblStatus.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblStatus.Location = New System.Drawing.Point(3, 10) + Me.lblStatus.Name = "lblStatus" + Me.lblStatus.Size = New System.Drawing.Size(121, 13) + Me.lblStatus.TabIndex = 0 + Me.lblStatus.Text = "Compiling trailer list..." + Me.lblStatus.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + ' + 'pbStatus + ' + Me.pbStatus.Location = New System.Drawing.Point(3, 32) + Me.pbStatus.MarqueeAnimationSpeed = 25 + Me.pbStatus.Name = "pbStatus" + Me.pbStatus.Size = New System.Drawing.Size(192, 17) + Me.pbStatus.Style = System.Windows.Forms.ProgressBarStyle.Marquee + Me.pbStatus.TabIndex = 1 + ' + 'btnGetTrailers + ' + Me.btnGetTrailers.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.btnGetTrailers.Image = CType(resources.GetObject("btnGetTrailers.Image"), System.Drawing.Image) + Me.btnGetTrailers.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnGetTrailers.Location = New System.Drawing.Point(120, 82) + Me.btnGetTrailers.Name = "btnGetTrailers" + Me.btnGetTrailers.Size = New System.Drawing.Size(184, 23) + Me.btnGetTrailers.TabIndex = 2 + Me.btnGetTrailers.Text = "Download Trailer List" + Me.btnGetTrailers.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnGetTrailers.UseVisualStyleBackColor = True + ' + 'GroupBox2 + ' + Me.GroupBox2.Controls.Add(Me.btnBrowse) + Me.GroupBox2.Controls.Add(Me.txtManual) + Me.GroupBox2.Controls.Add(Me.Label2) + Me.GroupBox2.Controls.Add(Me.txtYouTube) + Me.GroupBox2.Controls.Add(Me.Label1) + Me.GroupBox2.Location = New System.Drawing.Point(6, 201) + Me.GroupBox2.Name = "GroupBox2" + Me.GroupBox2.Size = New System.Drawing.Size(411, 111) + Me.GroupBox2.TabIndex = 3 + Me.GroupBox2.TabStop = False + Me.GroupBox2.Text = "Manual Trailer Entry" + ' + 'btnBrowse + ' + Me.btnBrowse.Location = New System.Drawing.Point(376, 82) + Me.btnBrowse.Name = "btnBrowse" + Me.btnBrowse.Size = New System.Drawing.Size(25, 23) + Me.btnBrowse.TabIndex = 4 + Me.btnBrowse.Text = "..." + Me.btnBrowse.UseVisualStyleBackColor = True + ' + 'txtManual + ' + Me.txtManual.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.txtManual.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtManual.Location = New System.Drawing.Point(9, 82) + Me.txtManual.Name = "txtManual" + Me.txtManual.Size = New System.Drawing.Size(365, 22) + Me.txtManual.TabIndex = 3 + ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label2.Location = New System.Drawing.Point(6, 68) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(72, 13) + Me.Label2.TabIndex = 2 + Me.Label2.Text = "Local Trailer:" + ' + 'txtYouTube + ' + Me.txtYouTube.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.txtYouTube.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtYouTube.Location = New System.Drawing.Point(9, 28) + Me.txtYouTube.Name = "txtYouTube" + Me.txtYouTube.Size = New System.Drawing.Size(392, 22) + Me.txtYouTube.TabIndex = 1 + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label1.Location = New System.Drawing.Point(6, 14) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(153, 13) + Me.Label1.TabIndex = 0 + Me.Label1.Text = "Direct Link or YouTube URL:" + ' + 'btnPlayTrailer + ' + Me.btnPlayTrailer.Enabled = False + Me.btnPlayTrailer.Image = CType(resources.GetObject("btnPlayTrailer.Image"), System.Drawing.Image) + Me.btnPlayTrailer.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnPlayTrailer.Location = New System.Drawing.Point(12, 339) + Me.btnPlayTrailer.Name = "btnPlayTrailer" + Me.btnPlayTrailer.Size = New System.Drawing.Size(106, 23) + Me.btnPlayTrailer.TabIndex = 3 + Me.btnPlayTrailer.Text = "Preview Trailer" + Me.btnPlayTrailer.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnPlayTrailer.UseVisualStyleBackColor = True + ' + 'btnSetNfo + ' + Me.btnSetNfo.Enabled = False + Me.btnSetNfo.Location = New System.Drawing.Point(207, 339) + Me.btnSetNfo.Name = "btnSetNfo" + Me.btnSetNfo.Size = New System.Drawing.Size(77, 23) + Me.btnSetNfo.TabIndex = 4 + Me.btnSetNfo.Text = "Set To Nfo" + ' + 'Panel1 + ' + Me.Panel1.BackColor = System.Drawing.Color.White + Me.Panel1.Controls.Add(Me.GroupBox1) + Me.Panel1.Location = New System.Drawing.Point(3, 3) + Me.Panel1.Name = "Panel1" + Me.Panel1.Size = New System.Drawing.Size(444, 331) + Me.Panel1.TabIndex = 2 + ' + 'dlgTrailer + ' + Me.AcceptButton = Me.OK_Button + Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi + Me.CancelButton = Me.Cancel_Button + Me.ClientSize = New System.Drawing.Size(450, 366) + Me.ControlBox = False + Me.Controls.Add(Me.Panel1) + Me.Controls.Add(Me.btnSetNfo) + Me.Controls.Add(Me.Cancel_Button) + Me.Controls.Add(Me.OK_Button) + Me.Controls.Add(Me.btnPlayTrailer) + Me.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "dlgTrailer" + Me.ShowIcon = False + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "Select Trailer" + Me.GroupBox1.ResumeLayout(False) + Me.pnlStatus.ResumeLayout(False) + Me.pnlStatus.PerformLayout() + Me.GroupBox2.ResumeLayout(False) + Me.GroupBox2.PerformLayout() + Me.Panel1.ResumeLayout(False) + Me.ResumeLayout(False) + + End Sub + Friend WithEvents OK_Button As System.Windows.Forms.Button + Friend WithEvents Cancel_Button As System.Windows.Forms.Button + Friend WithEvents lbTrailers As System.Windows.Forms.ListBox + Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox + Friend WithEvents pnlStatus As System.Windows.Forms.Panel + Friend WithEvents lblStatus As System.Windows.Forms.Label + Friend WithEvents pbStatus As System.Windows.Forms.ProgressBar + Friend WithEvents btnPlayTrailer As System.Windows.Forms.Button + Friend WithEvents btnSetNfo As System.Windows.Forms.Button + Friend WithEvents GroupBox2 As System.Windows.Forms.GroupBox + Friend WithEvents Label1 As System.Windows.Forms.Label + Friend WithEvents txtYouTube As System.Windows.Forms.TextBox + Friend WithEvents btnBrowse As System.Windows.Forms.Button + Friend WithEvents txtManual As System.Windows.Forms.TextBox + Friend WithEvents Label2 As System.Windows.Forms.Label + Friend WithEvents ofdTrailer As System.Windows.Forms.OpenFileDialog + Friend WithEvents btnGetTrailers As System.Windows.Forms.Button + Friend WithEvents Panel1 As System.Windows.Forms.Panel + +End Class diff --git a/Addons/scraper.EmberCore.TMDB/Scraper/dlgTrailer.resx b/Addons/scraper.EmberCore.TMDB/Scraper/dlgTrailer.resx new file mode 100644 index 0000000..2be3cac --- /dev/null +++ b/Addons/scraper.EmberCore.TMDB/Scraper/dlgTrailer.resx @@ -0,0 +1,158 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAFzUkdCAK7O + HOkAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAAArpAAAK6QH9dc7TAAAAGHRFWHRTb2Z0d2FyZQBBZG9i + ZSBGaXJld29ya3NPsx9OAAAB80lEQVQ4T6XTTWsTQRgH8EGr9GDFm19AseDBgzc9eba0FJqvIOTiRase + RAIKtRo9LbbxpYmtggXR2KRFqGLfDio9tDGbdUMrbvc1+57sioiVv7NDLE3MXnTgz8DsPr95dpglAMj/ + pKVY17QuyzLP2raVoBlybHvIc92EUKmcidukBTBrtasUAC0GLWYJggaWl5dw9056uBPSAtDi8aiYAY4N + 13HwLQyxuLiAW6OjyIyPXW5H2gFuZ/cm4HseNFVFsTCD2WIRHz+8P7cb6Qjs7iDqIkLCMEC97kedZWMB + egasA8s24TsBQm8bob8N3w3YZzUzFgsYus6ZZo0WhPisvMackGQR5Dm2xnDLjAdUVeF0XUPD/Yl31eu4 + sURY3orXaDe/EOGGoccDsrzFKYoMz/yON0IaqYVDLPPCTdTtH6D3BKqixANfNjc5SZJga3XMlm5jeP4w + S6E0AsdoQJFlbElSPMCXy/ekDQUTK1eQzB/B+cJxlmT+KB6sXID61UBVFDOxh7i+tjbCf+KxXl7FpZeD + SOR6WS6+6EepsgpREFHh+XRHYC8hB/r7+k7kshOZ/PSrZ7mn2cnTqd7qqdSxjUdPHk7NPC9OT00+vj84 + MHByDyEH/yA7F4kC+wgh3dGDaDTnHkK6etrWuum7+/8C/vWX/g1N2vpUAmZdeAAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAACwwAAAsMAT9AIsgAAAAGYktHRAD/AP8A/6C9p5MAAAAHdElNRQfZBBoSIQHX+6QX + AAACOElEQVQ4T7WSTWvaQRCHozlYNQSiVXwBNSSKKAhqKogo2hx8OeUQpPVY9OBFId+g0IufoQnegslF + EEG8qAgeiij4hohoDjkphJAIGg/udGepfyLV3rowLDu788zs/GZv73+st7e35NPT069KpfJaLpdnj4+P + nel0+p3mOvhnvoeHh0+j0WieTCbB6XSSYDAIoVAIXC4Xicfj0Ov1IJ/Pf9kKweBisQharZbY7XbweDxg + sVjg7OwM8Ix2enpK7u/v4e7u7ttfEJp5QZ3k8PAQ1Go1hMNhyGazIJFIQKVSMd/R0RHgm2azCQqFQsNB + FovFFZZLHZz5fD7AlU6nmY/H43F3NpsNWq3WLQeYz+d1JL8H4BfW6+bmZgOO77rd7isHqNfrM3Ty+XzY + 399n5vV6WfxqtWL79fX1RiWlUgnPHxlkDRAKhSASiUAsFoPf72eBhBAGeXl5AZlMBgKBgIGoxLirGOD5 + +blL/0iwSVKpFORyOVxcXHAV0HtUhzUUm4yATqezpPsHBphMJj8uLy9BqVSCRqOB4+NjiEQiDICZUU6d + TseUQLjb7YZqtVp6L+UBlREBxGg0soBoNArL5RJQDavVCmazGecAKyTtdhtOTk68G7OQy+W+1mo1MJlM + hE4hA2BV5+fnLKPD4QC9Xk8KhQKkUqmfW6cxk8nE6ERCIpFgkxgIBFgzERCLxWAwGOwOXhPpPzWNRuN2 + PB7P+v0+oA2HwyWVrWIwGD5vzbzDyaN++R+phLsCfwMUR2eb8uMbUAAAAABJRU5ErkJggg== + + + + 17, 17 + + + 40 + + \ No newline at end of file diff --git a/Addons/scraper.EmberCore.TMDB/Scraper/dlgTrailer.vb b/Addons/scraper.EmberCore.TMDB/Scraper/dlgTrailer.vb new file mode 100644 index 0000000..d63ea34 --- /dev/null +++ b/Addons/scraper.EmberCore.TMDB/Scraper/dlgTrailer.vb @@ -0,0 +1,465 @@ +' ################################################################################ +' # EMBER MEDIA MANAGER # +' ################################################################################ +' ################################################################################ +' # This file is part of Ember Media Manager. # +' # # +' # Ember Media Manager is free software: you can redistribute it and/or modify # +' # it under the terms of the GNU General Public License as published by # +' # the Free Software Foundation, either version 3 of the License, or # +' # (at your option) any later version. # +' # # +' # Ember Media Manager is distributed in the hope that it will be useful, # +' # but WITHOUT ANY WARRANTY; without even the implied warranty of # +' # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +' # GNU General Public License for more details. # +' # # +' # You should have received a copy of the GNU General Public License # +' # along with Ember Media Manager. If not, see . # +' ################################################################################ + +Imports System.IO +Imports System.Text.RegularExpressions +Imports EmberAPI +Imports WatTmdb +Imports EmberScraperModule.EmberTMDBScraperModule + +Public Class dlgTrailer + +#Region "Fields" + + Private _MySettings As New sMySettings + Private _TMDBConf As V3.TmdbConfiguration + Private _TMDBConfE As V3.TmdbConfiguration + Private _TMDBApi As V3.Tmdb + Private _TMDBApiE As V3.Tmdb + + Friend WithEvents bwCompileList As New System.ComponentModel.BackgroundWorker + Friend WithEvents bwDownloadTrailer As New System.ComponentModel.BackgroundWorker + + Private cTrailer As Trailers + Private imdbID As String = String.Empty + Private prePath As String = String.Empty + Private sPath As String = String.Empty + Private tArray As New List(Of String) + Private tURL As String = String.Empty + +#End Region 'Fields + +#Region "Methods" + + Public Sub New(ByRef tTMDBConf As V3.TmdbConfiguration, ByRef tTMDBConfE As V3.TmdbConfiguration, ByRef tTMDBApi As V3.Tmdb, ByRef tTMDBApiE As V3.Tmdb, ByRef tMySettings As EmberTMDBScraperModule.sMySettings) + + ' This call is required by the designer. + InitializeComponent() + + ' Add any initialization after the InitializeComponent() call. + _MySettings = TMySettings + _TMDBApi = tTMDBApi + _TMDBConf = tTMDBConf + _TMDBApiE = tTMDBApiE + _TMDBConfE = tTMDBConfE + cTrailer = New Trailers(_TMDBConf, _TMDBConfE, _TMDBApi, _TMDBApiE, _MySettings) + End Sub + + Public Overloads Function ShowDialog(ByVal _imdbID As String, ByVal _sPath As String) As String + Me.imdbID = _imdbID + Me.sPath = _sPath + + If MyBase.ShowDialog() = System.Windows.Forms.DialogResult.OK Then + If AdvancedSettings.GetBooleanSetting("UseTMDBTrailerXBMC", False) Then + Return Replace(Me.tURL, "http://www.youtube.com/watch?v=", "plugin://plugin.video.youtube/?action=play_video&videoid=") + Else + Return Me.tURL + End If + Else + Return String.Empty + End If + End Function + + Protected Overrides Sub Finalize() + cTrailer = Nothing + MyBase.Finalize() + End Sub + + Private Sub BeginDownload(ByVal CloseDialog As Boolean) + Dim didCancel As Boolean = False + + Me.OK_Button.Enabled = False + Me.btnSetNfo.Enabled = False + Me.btnPlayTrailer.Enabled = False + Me.lbTrailers.Enabled = False + Me.txtYouTube.Enabled = False + Me.txtManual.Enabled = False + Me.btnBrowse.Enabled = False + Me.lblStatus.Text = Master.eLang.GetString(56, "Downloading selected trailer...") + Me.pbStatus.Style = ProgressBarStyle.Continuous + Me.pbStatus.Value = 0 + Me.pnlStatus.Visible = True + Application.DoEvents() + + If Not String.IsNullOrEmpty(Me.prePath) AndAlso File.Exists(Me.prePath) Then + If CloseDialog Then + Me.tURL = Path.Combine(Directory.GetParent(Me.sPath).FullName, Path.GetFileName(Me.prePath)) + FileUtils.Common.MoveFileWithStream(Me.prePath, Me.tURL) + + File.Delete(Me.prePath) + + Me.DialogResult = System.Windows.Forms.DialogResult.OK + Me.Close() + Else + System.Diagnostics.Process.Start(String.Concat("""", Me.prePath, """")) + didCancel = True + End If + ElseIf Me.txtManual.Text.Length > 0 Then + Me.lblStatus.Text = Master.eLang.GetString(57, "Copying specified file to trailer...") + If Master.eSettings.ValidExts.Contains(Path.GetExtension(Me.txtManual.Text)) AndAlso File.Exists(Me.txtManual.Text) Then + If CloseDialog Then + If Master.eSettings.VideoTSParentXBMC AndAlso FileUtils.Common.isBDRip(Me.sPath) Then + Me.tURL = String.Concat(Directory.GetParent(Directory.GetParent(Me.sPath).FullName).FullName, "\", "index", If(Master.eSettings.DashTrailer, "-trailer", "[trailer]"), Path.GetExtension(Me.txtManual.Text)) + ElseIf Master.eSettings.MovieNameNFOStack Then + Dim sPathStack As String = StringUtils.CleanStackingMarkers(Path.GetFileNameWithoutExtension(Me.sPath)) + Me.tURL = Path.Combine(Directory.GetParent(Me.sPath).FullName, String.Concat(Path.GetFileNameWithoutExtension(sPathStack), If(Master.eSettings.DashTrailer, "-trailer", "[trailer]"), Path.GetExtension(Me.txtManual.Text))) + Else + Me.tURL = Path.Combine(Directory.GetParent(Me.sPath).FullName, String.Concat(Path.GetFileNameWithoutExtension(Me.sPath), If(Master.eSettings.DashTrailer, "-trailer", "[trailer]"), Path.GetExtension(Me.txtManual.Text))) + End If + + FileUtils.Common.MoveFileWithStream(Me.txtManual.Text, Me.tURL) + + Me.DialogResult = System.Windows.Forms.DialogResult.OK + Me.Close() + Else + System.Diagnostics.Process.Start(String.Concat("""", Me.txtManual.Text, """")) + didCancel = True + End If + Else + MsgBox(Master.eLang.GetString(192, "File is not valid.", True), MsgBoxStyle.Exclamation Or MsgBoxStyle.OkOnly, Master.eLang.GetString(194, "Not Valid", True)) + didCancel = True + End If + ElseIf Regex.IsMatch(Me.txtYouTube.Text, "http:\/\/.*youtube.*\/watch\?v=(.{11})&?.*") Then + Using dFormats As New dlgTrailerFormat + Dim sFormat As String = dFormats.ShowDialog(Me.txtYouTube.Text) + + If Not String.IsNullOrEmpty(sFormat) Then + Me.bwDownloadTrailer = New System.ComponentModel.BackgroundWorker + Me.bwDownloadTrailer.WorkerReportsProgress = True + Me.bwDownloadTrailer.WorkerSupportsCancellation = True + Me.bwDownloadTrailer.RunWorkerAsync(New Arguments With {.Parameter = sFormat, .bType = CloseDialog}) + Else + didCancel = True + End If + End Using + ElseIf StringUtils.isValidURL(Me.txtYouTube.Text) Then + Me.bwDownloadTrailer = New System.ComponentModel.BackgroundWorker + Me.bwDownloadTrailer.WorkerReportsProgress = True + Me.bwDownloadTrailer.WorkerSupportsCancellation = True + Me.bwDownloadTrailer.RunWorkerAsync(New Arguments With {.parameter = Me.txtYouTube.Text, .bType = CloseDialog}) + Else + If Regex.IsMatch(Me.lbTrailers.SelectedItem.ToString, "http:\/\/.*youtube.*\/watch\?v=(.{11})&?.*") Then + Using dFormats As New dlgTrailerFormat + Dim sFormat As String = dFormats.ShowDialog(Me.lbTrailers.SelectedItem.ToString) + + If Not String.IsNullOrEmpty(sFormat) Then + Me.bwDownloadTrailer = New System.ComponentModel.BackgroundWorker + Me.bwDownloadTrailer.WorkerReportsProgress = True + Me.bwDownloadTrailer.WorkerSupportsCancellation = True + Me.bwDownloadTrailer.RunWorkerAsync(New Arguments With {.Parameter = sFormat, .bType = CloseDialog}) + Else + didCancel = True + End If + End Using + Else + Me.bwDownloadTrailer = New System.ComponentModel.BackgroundWorker + Me.bwDownloadTrailer.WorkerReportsProgress = True + Me.bwDownloadTrailer.WorkerSupportsCancellation = True + Me.bwDownloadTrailer.RunWorkerAsync(New Arguments With {.parameter = lbTrailers.SelectedItem.ToString, .bType = CloseDialog}) + End If + End If + + If didCancel Then + Me.pnlStatus.Visible = False + Me.lbTrailers.Enabled = True + Me.txtYouTube.Enabled = True + Me.txtManual.Enabled = True + Me.btnBrowse.Enabled = True + Me.SetEnabled(False) + End If + End Sub + + Private Sub btnBrowse_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBrowse.Click + Try + With ofdTrailer + .InitialDirectory = Directory.GetParent(Master.currMovie.Filename).FullName + .Filter = String.Concat("Supported Trailer Formats|*", Functions.ListToStringWithSeparator(Master.eSettings.ValidExts.ToArray(), ";*")) + .FilterIndex = 0 + End With + + If ofdTrailer.ShowDialog() = DialogResult.OK Then + txtManual.Text = ofdTrailer.FileName + End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + Private Sub btnGetTrailers_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGetTrailers.Click + Me.OK_Button.Enabled = False + Me.btnSetNfo.Enabled = False + Me.btnPlayTrailer.Enabled = False + Me.lbTrailers.Enabled = False + Me.txtYouTube.Enabled = False + Me.txtManual.Enabled = False + Me.btnBrowse.Enabled = False + Me.pnlStatus.Visible = True + + Me.bwCompileList = New System.ComponentModel.BackgroundWorker + Me.bwCompileList.WorkerSupportsCancellation = True + Me.bwCompileList.RunWorkerAsync() + End Sub + + Private Sub btnPlayTrailer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPlayTrailer.Click + Try + Me.BeginDownload(False) + Catch + MsgBox(Master.eLang.GetString(58, "The trailer could not be played. This could be due to an invalid URI or you do not have the proper player to play the trailer type."), MsgBoxStyle.Critical, Master.eLang.GetString(59, "Error Playing Trailer")) + Me.pnlStatus.Visible = False + Me.lbTrailers.Enabled = True + Me.txtYouTube.Enabled = True + Me.txtManual.Enabled = True + Me.btnBrowse.Enabled = True + Me.SetEnabled(False) + End Try + End Sub + + Private Sub btnSetNfo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetNfo.Click + + If Me.btnSetNfo.Text = Master.eLang.GetString(60, "Move") Then + If Master.eSettings.ValidExts.Contains(Path.GetExtension(Me.txtManual.Text)) AndAlso File.Exists(Me.txtManual.Text) Then + Me.OK_Button.Enabled = False + Me.btnSetNfo.Enabled = False + Me.btnPlayTrailer.Enabled = False + Me.lbTrailers.Enabled = False + Me.txtYouTube.Enabled = False + Me.txtManual.Enabled = False + Me.btnBrowse.Enabled = False + Me.lblStatus.Text = Master.eLang.GetString(62, "Moving specified file to trailer...") + Me.pbStatus.Style = ProgressBarStyle.Continuous + Me.pbStatus.Value = 0 + Me.pnlStatus.Visible = True + Application.DoEvents() + + If Master.eSettings.VideoTSParentXBMC AndAlso FileUtils.Common.isBDRip(Me.sPath) Then + Me.tURL = String.Concat(Directory.GetParent(Directory.GetParent(Me.sPath).FullName).FullName, "\", "index", If(Master.eSettings.DashTrailer, "-trailer", "[trailer]"), Path.GetExtension(Me.txtManual.Text)) + ElseIf Master.eSettings.MovieNameNFOStack Then + Dim sPathStack As String = StringUtils.CleanStackingMarkers(Path.GetFileNameWithoutExtension(Me.sPath)) + Me.tURL = Path.Combine(Directory.GetParent(Me.sPath).FullName, String.Concat(Path.GetFileNameWithoutExtension(sPathStack), If(Master.eSettings.DashTrailer, "-trailer", "[trailer]"), Path.GetExtension(Me.txtManual.Text))) + Else + Me.tURL = Path.Combine(Directory.GetParent(Me.sPath).FullName, String.Concat(Path.GetFileNameWithoutExtension(Me.sPath), If(Master.eSettings.DashTrailer, "-trailer", "[trailer]"), Path.GetExtension(Me.txtManual.Text))) + End If + File.Move(Me.txtManual.Text, Me.tURL) + + Me.DialogResult = System.Windows.Forms.DialogResult.OK + Me.Close() + Else + MsgBox(Master.eLang.GetString(192, "File is not valid.", True), MsgBoxStyle.Exclamation Or MsgBoxStyle.OkOnly, Master.eLang.GetString(194, "Not Valid", True)) + Me.pnlStatus.Visible = False + Me.lbTrailers.Enabled = True + Me.txtYouTube.Enabled = True + Me.txtManual.Enabled = True + Me.btnBrowse.Enabled = True + Me.SetEnabled(False) + End If + Else + Dim didCancel As Boolean = False + + If StringUtils.isValidURL(Me.txtYouTube.Text) Then + tURL = Me.txtYouTube.Text + ElseIf Me.lbTrailers.SelectedItems.Count > 0 Then + tURL = lbTrailers.SelectedItem.ToString + Else + didCancel = True + End If + + If Not didCancel Then + Me.DialogResult = System.Windows.Forms.DialogResult.OK + Me.Close() + End If + End If + + End Sub + + Private Sub bwCompileList_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles bwCompileList.DoWork + Try + tArray = cTrailer.GetTrailers(Me.imdbID, False) + + If Me.bwCompileList.CancellationPending Then + e.Cancel = True + End If + Catch + End Try + End Sub + + Private Sub bwCompileList_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles bwCompileList.RunWorkerCompleted + If Not e.Cancelled Then + If Me.tArray.Count > 0 Then + For Each tTrail As String In Me.tArray + Me.lbTrailers.Items.Add(tTrail) + Next + + Me.btnGetTrailers.Visible = False + Else + Me.btnGetTrailers.Enabled = False + End If + + End If + + Me.pnlStatus.Visible = False + Me.lbTrailers.Enabled = True + Me.txtYouTube.Enabled = True + Me.txtManual.Enabled = True + Me.btnBrowse.Enabled = True + Me.SetEnabled(False) + End Sub + + Private Sub bwDownloadTrailer_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles bwDownloadTrailer.DoWork + Dim Args As Arguments = DirectCast(e.Argument, Arguments) + Try + + If Args.bType Then + Me.tURL = cTrailer.DownloadTrailer(Me.sPath, Args.Parameter) + Else + Me.prePath = cTrailer.DownloadTrailer(Path.Combine(Master.TempPath, Path.GetFileName(Me.sPath)), Args.Parameter) + End If + + Catch + End Try + + e.Result = Args.bType + + If Me.bwDownloadTrailer.CancellationPending Then + e.Cancel = True + End If + End Sub + + Private Sub bwDownloadTrailer_ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles bwDownloadTrailer.ProgressChanged + pbStatus.Value = e.ProgressPercentage + End Sub + + Private Sub bwDownloadTrailer_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles bwDownloadTrailer.RunWorkerCompleted + If Not e.Cancelled Then + If Convert.ToBoolean(e.Result) Then + Me.DialogResult = System.Windows.Forms.DialogResult.OK + Me.Close() + Else + Me.pnlStatus.Visible = False + Me.lbTrailers.Enabled = True + Me.txtYouTube.Enabled = True + Me.txtManual.Enabled = True + Me.btnBrowse.Enabled = True + Me.SetEnabled(False) + If Not String.IsNullOrEmpty(Me.prePath) Then System.Diagnostics.Process.Start(String.Concat("""", prePath, """")) + End If + End If + End Sub + + Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel_Button.Click + Me.cTrailer.Cancel() + + If Me.bwCompileList.IsBusy Then Me.bwCompileList.CancelAsync() + If Me.bwDownloadTrailer.IsBusy Then Me.bwDownloadTrailer.CancelAsync() + + While Me.bwCompileList.IsBusy OrElse Me.bwDownloadTrailer.IsBusy + Application.DoEvents() + Threading.Thread.Sleep(50) + End While + + Me.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.Close() + End Sub + + Private Sub dlgTrailer_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load + Me.SetUp() + AddHandler cTrailer.ProgressUpdated, AddressOf DownloadProgressUpdated + End Sub + + Private Sub dlgTrailer_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown + Me.Activate() + End Sub + + Private Sub DownloadProgressUpdated(ByVal iProgress As Integer) + bwDownloadTrailer.ReportProgress(iProgress) + End Sub + + Private Sub lbTrailers_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lbTrailers.SelectedIndexChanged + Me.SetEnabled(True) + End Sub + + Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click + Me.BeginDownload(True) + End Sub + + Private Sub SetEnabled(ByVal DeletePre As Boolean) + If DeletePre AndAlso Not String.IsNullOrEmpty(Me.prePath) AndAlso File.Exists(Me.prePath) Then + File.Delete(Me.prePath) + Me.prePath = String.Empty + End If + + If StringUtils.isValidURL(Me.txtYouTube.Text) OrElse Me.lbTrailers.SelectedItems.Count > 0 OrElse Me.txtManual.Text.Length > 0 Then + Me.OK_Button.Enabled = True + Me.btnSetNfo.Enabled = True + Me.btnPlayTrailer.Enabled = True + If Me.txtManual.Text.Length > 0 Then + Me.OK_Button.Text = Master.eLang.GetString(61, "Copy") + Me.btnSetNfo.Text = Master.eLang.GetString(60, "Move") + Else + Me.OK_Button.Text = Master.eLang.GetString(373, "Download", True) + Me.btnSetNfo.Text = Master.eLang.GetString(63, "Set To Nfo") + End If + Else + Me.OK_Button.Enabled = False + Me.OK_Button.Text = Master.eLang.GetString(373, "Download", True) + Me.btnPlayTrailer.Enabled = False + Me.btnSetNfo.Enabled = False + Me.btnSetNfo.Text = Master.eLang.GetString(63, "Set To Nfo") + End If + End Sub + + Private Sub SetUp() + Me.Text = Master.eLang.GetString(64, "Select Trailer") + Me.OK_Button.Text = Master.eLang.GetString(373, "Download", True) + Me.Cancel_Button.Text = Master.eLang.GetString(167, "Cancel", True) + Me.GroupBox1.Text = Master.eLang.GetString(65, "Select Trailer to Download") + Me.GroupBox2.Text = Master.eLang.GetString(66, "Manual Trailer Entry") + Me.Label1.Text = Master.eLang.GetString(67, "Direct Link or YouTube URL:") + Me.lblStatus.Text = Master.eLang.GetString(68, "Compiling trailer list...") + Me.btnPlayTrailer.Text = Master.eLang.GetString(69, "Preview Trailer") + Me.btnSetNfo.Text = Master.eLang.GetString(63, "Set To Nfo") + Me.Label2.Text = Master.eLang.GetString(70, "Local Trailer:") + End Sub + + Private Sub txtManual_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtManual.TextChanged + Me.SetEnabled(True) + End Sub + + Private Sub txtYouTube_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtYouTube.TextChanged + Me.SetEnabled(True) + End Sub + +#End Region 'Methods + +#Region "Nested Types" + + Private Structure Arguments + +#Region "Fields" + + Dim bType As Boolean + Dim Parameter As String + +#End Region 'Fields + + End Structure + +#End Region 'Nested Types + +End Class \ No newline at end of file diff --git a/Addons/scraper.EmberCore.TMDB/Scraper/dlgTrailerFormat.Designer.vb b/Addons/scraper.EmberCore.TMDB/Scraper/dlgTrailerFormat.Designer.vb new file mode 100644 index 0000000..22f1374 --- /dev/null +++ b/Addons/scraper.EmberCore.TMDB/Scraper/dlgTrailerFormat.Designer.vb @@ -0,0 +1,155 @@ + _ +Partial Class dlgTrailerFormat + Inherits System.Windows.Forms.Form + + 'Form overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Me.OK_Button = New System.Windows.Forms.Button() + Me.Cancel_Button = New System.Windows.Forms.Button() + Me.lstFormats = New System.Windows.Forms.ListBox() + Me.GroupBox1 = New System.Windows.Forms.GroupBox() + Me.pnlStatus = New System.Windows.Forms.Panel() + Me.lblStatus = New System.Windows.Forms.Label() + Me.pbStatus = New System.Windows.Forms.ProgressBar() + Me.Panel1 = New System.Windows.Forms.Panel() + Me.GroupBox1.SuspendLayout() + Me.pnlStatus.SuspendLayout() + Me.Panel1.SuspendLayout() + Me.SuspendLayout() + ' + 'OK_Button + ' + Me.OK_Button.Enabled = False + Me.OK_Button.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.OK_Button.Location = New System.Drawing.Point(84, 117) + Me.OK_Button.Name = "OK_Button" + Me.OK_Button.Size = New System.Drawing.Size(67, 23) + Me.OK_Button.TabIndex = 0 + Me.OK_Button.Text = "OK" + ' + 'Cancel_Button + ' + Me.Cancel_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.Cancel_Button.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Cancel_Button.Location = New System.Drawing.Point(154, 117) + Me.Cancel_Button.Name = "Cancel_Button" + Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) + Me.Cancel_Button.TabIndex = 1 + Me.Cancel_Button.Text = "Cancel" + ' + 'lstFormats + ' + Me.lstFormats.Enabled = False + Me.lstFormats.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lstFormats.FormattingEnabled = True + Me.lstFormats.Location = New System.Drawing.Point(17, 19) + Me.lstFormats.Name = "lstFormats" + Me.lstFormats.Size = New System.Drawing.Size(78, 69) + Me.lstFormats.TabIndex = 0 + ' + 'GroupBox1 + ' + Me.GroupBox1.Controls.Add(Me.lstFormats) + Me.GroupBox1.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.GroupBox1.Location = New System.Drawing.Point(53, 2) + Me.GroupBox1.Name = "GroupBox1" + Me.GroupBox1.Size = New System.Drawing.Size(114, 100) + Me.GroupBox1.TabIndex = 0 + Me.GroupBox1.TabStop = False + Me.GroupBox1.Text = "Available Formats" + ' + 'pnlStatus + ' + Me.pnlStatus.BackColor = System.Drawing.Color.White + Me.pnlStatus.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.pnlStatus.Controls.Add(Me.lblStatus) + Me.pnlStatus.Controls.Add(Me.pbStatus) + Me.pnlStatus.Location = New System.Drawing.Point(10, 29) + Me.pnlStatus.Name = "pnlStatus" + Me.pnlStatus.Size = New System.Drawing.Size(200, 54) + Me.pnlStatus.TabIndex = 1 + ' + 'lblStatus + ' + Me.lblStatus.AutoSize = True + Me.lblStatus.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblStatus.Location = New System.Drawing.Point(3, 10) + Me.lblStatus.Name = "lblStatus" + Me.lblStatus.Size = New System.Drawing.Size(147, 13) + Me.lblStatus.TabIndex = 0 + Me.lblStatus.Text = "Getting available formats..." + Me.lblStatus.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + ' + 'pbStatus + ' + Me.pbStatus.Location = New System.Drawing.Point(3, 29) + Me.pbStatus.MarqueeAnimationSpeed = 25 + Me.pbStatus.Name = "pbStatus" + Me.pbStatus.Size = New System.Drawing.Size(192, 17) + Me.pbStatus.Style = System.Windows.Forms.ProgressBarStyle.Marquee + Me.pbStatus.TabIndex = 1 + ' + 'Panel1 + ' + Me.Panel1.BackColor = System.Drawing.Color.White + Me.Panel1.Controls.Add(Me.pnlStatus) + Me.Panel1.Controls.Add(Me.GroupBox1) + Me.Panel1.Location = New System.Drawing.Point(2, 4) + Me.Panel1.Name = "Panel1" + Me.Panel1.Size = New System.Drawing.Size(220, 111) + Me.Panel1.TabIndex = 2 + ' + 'dlgTrailerFormat + ' + Me.AcceptButton = Me.OK_Button + Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi + Me.CancelButton = Me.Cancel_Button + Me.ClientSize = New System.Drawing.Size(224, 143) + Me.Controls.Add(Me.Panel1) + Me.Controls.Add(Me.Cancel_Button) + Me.Controls.Add(Me.OK_Button) + Me.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "dlgTrailerFormat" + Me.ShowIcon = False + Me.ShowInTaskbar = False + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "Select Format" + Me.GroupBox1.ResumeLayout(False) + Me.pnlStatus.ResumeLayout(False) + Me.pnlStatus.PerformLayout() + Me.Panel1.ResumeLayout(False) + Me.ResumeLayout(False) + + End Sub + Friend WithEvents OK_Button As System.Windows.Forms.Button + Friend WithEvents Cancel_Button As System.Windows.Forms.Button + Friend WithEvents lstFormats As System.Windows.Forms.ListBox + Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox + Friend WithEvents pnlStatus As System.Windows.Forms.Panel + Friend WithEvents lblStatus As System.Windows.Forms.Label + Friend WithEvents pbStatus As System.Windows.Forms.ProgressBar + Friend WithEvents Panel1 As System.Windows.Forms.Panel + +End Class diff --git a/Addons/scraper.EmberCore.TMDB/Scraper/dlgTrailerFormat.resx b/Addons/scraper.EmberCore.TMDB/Scraper/dlgTrailerFormat.resx new file mode 100644 index 0000000..19dc0dd --- /dev/null +++ b/Addons/scraper.EmberCore.TMDB/Scraper/dlgTrailerFormat.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Addons/scraper.EmberCore.TMDB/Scraper/dlgTrailerFormat.vb b/Addons/scraper.EmberCore.TMDB/Scraper/dlgTrailerFormat.vb new file mode 100644 index 0000000..8f0ad6e --- /dev/null +++ b/Addons/scraper.EmberCore.TMDB/Scraper/dlgTrailerFormat.vb @@ -0,0 +1,114 @@ +Imports EmberAPI + +' ################################################################################ +' # EMBER MEDIA MANAGER # +' ################################################################################ +' ################################################################################ +' # This file is part of Ember Media Manager. # +' # # +' # Ember Media Manager is free software: you can redistribute it and/or modify # +' # it under the terms of the GNU General Public License as published by # +' # the Free Software Foundation, either version 3 of the License, or # +' # (at your option) any later version. # +' # # +' # Ember Media Manager is distributed in the hope that it will be useful, # +' # but WITHOUT ANY WARRANTY; without even the implied warranty of # +' # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +' # GNU General Public License for more details. # +' # # +' # You should have received a copy of the GNU General Public License # +' # along with Ember Media Manager. If not, see . # +' ################################################################################ + +Public Class dlgTrailerFormat + +#Region "Fields" + + Private WithEvents YouTube As YouTube.Scraper + Private _selectedformaturl As String + Private _yturl As String + +#End Region 'Fields + +#Region "Methods" + + Public Overloads Function ShowDialog(ByVal YTURL As String) As String + Me._yturl = YTURL + + If MyBase.ShowDialog() = Windows.Forms.DialogResult.OK Then + Return _selectedformaturl + Else + Return String.Empty + End If + End Function + + Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel_Button.Click + Me.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.Close() + End Sub + + Private Sub dlgTrailerFormat_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load + Try + Me.SetUp() + + lstFormats.DataSource = Nothing + + YouTube = New YouTube.Scraper + YouTube.GetVideoLinksAsync(Me._yturl) + + Catch ex As Exception + MsgBox(Master.eLang.GetString(71, "The video format links could not be retrieved."), MsgBoxStyle.Critical, Master.eLang.GetString(72, "Error Retrieving Video Format Links")) + End Try + End Sub + + Private Sub lstFormats_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lstFormats.SelectedIndexChanged + Try + Me._selectedformaturl = DirectCast(lstFormats.SelectedItem, YouTube.VideoLinkItem).URL + + If Me.lstFormats.SelectedItems.Count > 0 Then + Me.OK_Button.Enabled = True + Else + Me.OK_Button.Enabled = False + End If + Catch + End Try + End Sub + + Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click + Me.DialogResult = System.Windows.Forms.DialogResult.OK + Me.Close() + End Sub + + Private Sub SetUp() + Me.Text = Master.eLang.GetString(73, "Select Format") + Me.lblStatus.Text = Master.eLang.GetString(74, "Getting available formats...") + Me.GroupBox1.Text = Master.eLang.GetString(75, "Available Formats") + Me.OK_Button.Text = Master.eLang.GetString(179, "OK", True) + Me.Cancel_Button.Text = Master.eLang.GetString(167, "Cancel", True) + End Sub + + Private Sub YouTube_VideoLinksRetrieved(ByVal bSuccess As Boolean) Handles YouTube.VideoLinksRetrieved + Try + + If bSuccess Then + lstFormats.DataSource = YouTube.VideoLinks.Values.ToList + lstFormats.DisplayMember = "Description" + lstFormats.ValueMember = "URL" + + If YouTube.VideoLinks.ContainsKey(Master.eSettings.PreferredTrailerQuality) Then + Me.lstFormats.SelectedIndex = YouTube.VideoLinks.IndexOfKey(Master.eSettings.PreferredTrailerQuality) + ElseIf Me.lstFormats.Items.Count = 1 Then + Me.lstFormats.SelectedIndex = 0 + End If + End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + Finally + Me.pnlStatus.Visible = False + Me.lstFormats.Enabled = True + End Try + End Sub + +#End Region 'Methods + +End Class \ No newline at end of file diff --git a/Addons/scraper.EmberCore.TMDB/frmTMDBInfoSettingsHolder.Designer.vb b/Addons/scraper.EmberCore.TMDB/frmTMDBInfoSettingsHolder.Designer.vb new file mode 100644 index 0000000..f610c2c --- /dev/null +++ b/Addons/scraper.EmberCore.TMDB/frmTMDBInfoSettingsHolder.Designer.vb @@ -0,0 +1,545 @@ + _ +Partial Class frmTMDBInfoSettingsHolder + Inherits System.Windows.Forms.Form + + 'Form overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmTMDBInfoSettingsHolder)) + Me.lblVersion = New System.Windows.Forms.Label() + Me.GroupBox30 = New System.Windows.Forms.GroupBox() + Me.chkFallBackEng = New System.Windows.Forms.CheckBox() + Me.cbTMDBPrefLanguage = New System.Windows.Forms.ComboBox() + Me.Label3 = New System.Windows.Forms.Label() + Me.Label18 = New System.Windows.Forms.Label() + Me.txtTMDBApiKey = New System.Windows.Forms.TextBox() + Me.cbEnabled = New System.Windows.Forms.CheckBox() + Me.Panel1 = New System.Windows.Forms.Panel() + Me.Label2 = New System.Windows.Forms.Label() + Me.btnDown = New System.Windows.Forms.Button() + Me.btnUp = New System.Windows.Forms.Button() + Me.pnlSettings = New System.Windows.Forms.Panel() + Me.GroupBox1 = New System.Windows.Forms.GroupBox() + Me.Label5 = New System.Windows.Forms.Label() + Me.txtFANARTTVApiKey = New System.Windows.Forms.TextBox() + Me.Label1 = New System.Windows.Forms.Label() + Me.PictureBox1 = New System.Windows.Forms.PictureBox() + Me.gbOptions = New System.Windows.Forms.GroupBox() + Me.chkCrew = New System.Windows.Forms.CheckBox() + Me.chkCountry = New System.Windows.Forms.CheckBox() + Me.chkStudio = New System.Windows.Forms.CheckBox() + Me.chkRuntime = New System.Windows.Forms.CheckBox() + Me.chkOutline = New System.Windows.Forms.CheckBox() + Me.chkGenre = New System.Windows.Forms.CheckBox() + Me.chkTagline = New System.Windows.Forms.CheckBox() + Me.chkCast = New System.Windows.Forms.CheckBox() + Me.chkVotes = New System.Windows.Forms.CheckBox() + Me.chkTrailer = New System.Windows.Forms.CheckBox() + Me.chkRating = New System.Windows.Forms.CheckBox() + Me.chkRelease = New System.Windows.Forms.CheckBox() + Me.chkMPAA = New System.Windows.Forms.CheckBox() + Me.chkYear = New System.Windows.Forms.CheckBox() + Me.chkTitle = New System.Windows.Forms.CheckBox() + Me.pbTMDB = New System.Windows.Forms.PictureBox() + Me.pbFANARTTV = New System.Windows.Forms.PictureBox() + Me.GroupBox30.SuspendLayout() + Me.Panel1.SuspendLayout() + Me.pnlSettings.SuspendLayout() + Me.GroupBox1.SuspendLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.gbOptions.SuspendLayout() + CType(Me.pbTMDB, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.pbFANARTTV, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'lblVersion + ' + Me.lblVersion.Location = New System.Drawing.Point(286, 393) + Me.lblVersion.Name = "lblVersion" + Me.lblVersion.Size = New System.Drawing.Size(90, 16) + Me.lblVersion.TabIndex = 74 + Me.lblVersion.Text = "Version:" + ' + 'GroupBox30 + ' + Me.GroupBox30.Controls.Add(Me.pbTMDB) + Me.GroupBox30.Controls.Add(Me.chkFallBackEng) + Me.GroupBox30.Controls.Add(Me.cbTMDBPrefLanguage) + Me.GroupBox30.Controls.Add(Me.Label3) + Me.GroupBox30.Controls.Add(Me.Label18) + Me.GroupBox30.Controls.Add(Me.txtTMDBApiKey) + Me.GroupBox30.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.GroupBox30.Location = New System.Drawing.Point(8, 40) + Me.GroupBox30.Name = "GroupBox30" + Me.GroupBox30.Size = New System.Drawing.Size(309, 123) + Me.GroupBox30.TabIndex = 1 + Me.GroupBox30.TabStop = False + Me.GroupBox30.Text = "TMDB" + ' + 'chkFallBackEng + ' + Me.chkFallBackEng.AutoSize = True + Me.chkFallBackEng.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkFallBackEng.Location = New System.Drawing.Point(8, 100) + Me.chkFallBackEng.Name = "chkFallBackEng" + Me.chkFallBackEng.Size = New System.Drawing.Size(129, 17) + Me.chkFallBackEng.TabIndex = 4 + Me.chkFallBackEng.Text = "Fall back on english" + Me.chkFallBackEng.UseVisualStyleBackColor = True + ' + 'cbTMDBPrefLanguage + ' + Me.cbTMDBPrefLanguage.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cbTMDBPrefLanguage.Font = New System.Drawing.Font("Segoe UI", 8.25!) + Me.cbTMDBPrefLanguage.FormattingEnabled = True + Me.cbTMDBPrefLanguage.Items.AddRange(New Object() {"bg", "cs", "da", "de", "el", "en", "es", "fi", "fr", "he", "hu", "it", "nb", "nl", "no", "pl", "pt", "ru", "sk", "sv", "ta", "tr", "uk", "vi", "xx", "zh"}) + Me.cbTMDBPrefLanguage.Location = New System.Drawing.Point(123, 65) + Me.cbTMDBPrefLanguage.Name = "cbTMDBPrefLanguage" + Me.cbTMDBPrefLanguage.Size = New System.Drawing.Size(45, 21) + Me.cbTMDBPrefLanguage.TabIndex = 3 + ' + 'Label3 + ' + Me.Label3.AutoSize = True + Me.Label3.Font = New System.Drawing.Font("Segoe UI", 8.25!) + Me.Label3.Location = New System.Drawing.Point(6, 68) + Me.Label3.Name = "Label3" + Me.Label3.Size = New System.Drawing.Size(111, 13) + Me.Label3.TabIndex = 2 + Me.Label3.Text = "Preferred Language:" + ' + 'Label18 + ' + Me.Label18.AutoSize = True + Me.Label18.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label18.Location = New System.Drawing.Point(6, 18) + Me.Label18.Name = "Label18" + Me.Label18.Size = New System.Drawing.Size(79, 13) + Me.Label18.TabIndex = 0 + Me.Label18.Text = "TMDB API Key:" + ' + 'txtTMDBApiKey + ' + Me.txtTMDBApiKey.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtTMDBApiKey.Location = New System.Drawing.Point(8, 32) + Me.txtTMDBApiKey.Name = "txtTMDBApiKey" + Me.txtTMDBApiKey.Size = New System.Drawing.Size(273, 22) + Me.txtTMDBApiKey.TabIndex = 1 + ' + 'cbEnabled + ' + Me.cbEnabled.AutoSize = True + Me.cbEnabled.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.cbEnabled.Location = New System.Drawing.Point(10, 5) + Me.cbEnabled.Name = "cbEnabled" + Me.cbEnabled.Size = New System.Drawing.Size(68, 17) + Me.cbEnabled.TabIndex = 0 + Me.cbEnabled.Text = "Enabled" + Me.cbEnabled.UseVisualStyleBackColor = True + ' + 'Panel1 + ' + Me.Panel1.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Panel1.BackColor = System.Drawing.Color.WhiteSmoke + Me.Panel1.Controls.Add(Me.Label2) + Me.Panel1.Controls.Add(Me.btnDown) + Me.Panel1.Controls.Add(Me.cbEnabled) + Me.Panel1.Controls.Add(Me.btnUp) + Me.Panel1.Location = New System.Drawing.Point(0, 0) + Me.Panel1.Name = "Panel1" + Me.Panel1.Size = New System.Drawing.Size(1125, 25) + Me.Panel1.TabIndex = 0 + ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.Font = New System.Drawing.Font("Segoe UI", 6.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label2.Location = New System.Drawing.Point(500, 7) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(58, 12) + Me.Label2.TabIndex = 1 + Me.Label2.Text = "Scraper order" + ' + 'btnDown + ' + Me.btnDown.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.btnDown.Image = CType(resources.GetObject("btnDown.Image"), System.Drawing.Image) + Me.btnDown.Location = New System.Drawing.Point(591, 1) + Me.btnDown.Name = "btnDown" + Me.btnDown.Size = New System.Drawing.Size(23, 23) + Me.btnDown.TabIndex = 3 + Me.btnDown.UseVisualStyleBackColor = True + ' + 'btnUp + ' + Me.btnUp.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.btnUp.Image = CType(resources.GetObject("btnUp.Image"), System.Drawing.Image) + Me.btnUp.Location = New System.Drawing.Point(566, 1) + Me.btnUp.Name = "btnUp" + Me.btnUp.Size = New System.Drawing.Size(23, 23) + Me.btnUp.TabIndex = 2 + Me.btnUp.UseVisualStyleBackColor = True + ' + 'pnlSettings + ' + Me.pnlSettings.Controls.Add(Me.GroupBox1) + Me.pnlSettings.Controls.Add(Me.Label1) + Me.pnlSettings.Controls.Add(Me.PictureBox1) + Me.pnlSettings.Controls.Add(Me.Panel1) + Me.pnlSettings.Controls.Add(Me.GroupBox30) + Me.pnlSettings.Controls.Add(Me.gbOptions) + Me.pnlSettings.Location = New System.Drawing.Point(12, 1) + Me.pnlSettings.Name = "pnlSettings" + Me.pnlSettings.Size = New System.Drawing.Size(617, 369) + Me.pnlSettings.TabIndex = 0 + ' + 'GroupBox1 + ' + Me.GroupBox1.Controls.Add(Me.pbFANARTTV) + Me.GroupBox1.Controls.Add(Me.Label5) + Me.GroupBox1.Controls.Add(Me.txtFANARTTVApiKey) + Me.GroupBox1.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.GroupBox1.Location = New System.Drawing.Point(8, 169) + Me.GroupBox1.Name = "GroupBox1" + Me.GroupBox1.Size = New System.Drawing.Size(309, 71) + Me.GroupBox1.TabIndex = 75 + Me.GroupBox1.TabStop = False + Me.GroupBox1.Text = "Fanart.tv" + ' + 'Label5 + ' + Me.Label5.AutoSize = True + Me.Label5.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label5.Location = New System.Drawing.Point(6, 18) + Me.Label5.Name = "Label5" + Me.Label5.Size = New System.Drawing.Size(94, 13) + Me.Label5.TabIndex = 0 + Me.Label5.Text = "Fanart.tv API Key:" + ' + 'txtFANARTTVApiKey + ' + Me.txtFANARTTVApiKey.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtFANARTTVApiKey.Location = New System.Drawing.Point(8, 32) + Me.txtFANARTTVApiKey.Name = "txtFANARTTVApiKey" + Me.txtFANARTTVApiKey.Size = New System.Drawing.Size(273, 22) + Me.txtFANARTTVApiKey.TabIndex = 1 + ' + 'Label1 + ' + Me.Label1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.Label1.Font = New System.Drawing.Font("Segoe UI", 6.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Label1.ForeColor = System.Drawing.Color.Blue + Me.Label1.Location = New System.Drawing.Point(37, 337) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(225, 31) + Me.Label1.TabIndex = 4 + Me.Label1.Text = "These settings are specific to this module." & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "Please refer to the global settings " & _ + "for more options." + Me.Label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + ' + 'PictureBox1 + ' + Me.PictureBox1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.PictureBox1.Image = CType(resources.GetObject("PictureBox1.Image"), System.Drawing.Image) + Me.PictureBox1.Location = New System.Drawing.Point(3, 335) + Me.PictureBox1.Name = "PictureBox1" + Me.PictureBox1.Size = New System.Drawing.Size(30, 31) + Me.PictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage + Me.PictureBox1.TabIndex = 96 + Me.PictureBox1.TabStop = False + ' + 'gbOptions + ' + Me.gbOptions.Controls.Add(Me.chkCrew) + Me.gbOptions.Controls.Add(Me.chkCountry) + Me.gbOptions.Controls.Add(Me.chkStudio) + Me.gbOptions.Controls.Add(Me.chkRuntime) + Me.gbOptions.Controls.Add(Me.chkOutline) + Me.gbOptions.Controls.Add(Me.chkGenre) + Me.gbOptions.Controls.Add(Me.chkTagline) + Me.gbOptions.Controls.Add(Me.chkCast) + Me.gbOptions.Controls.Add(Me.chkVotes) + Me.gbOptions.Controls.Add(Me.chkTrailer) + Me.gbOptions.Controls.Add(Me.chkRating) + Me.gbOptions.Controls.Add(Me.chkRelease) + Me.gbOptions.Controls.Add(Me.chkMPAA) + Me.gbOptions.Controls.Add(Me.chkYear) + Me.gbOptions.Controls.Add(Me.chkTitle) + Me.gbOptions.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.gbOptions.Location = New System.Drawing.Point(323, 40) + Me.gbOptions.Name = "gbOptions" + Me.gbOptions.Size = New System.Drawing.Size(283, 150) + Me.gbOptions.TabIndex = 3 + Me.gbOptions.TabStop = False + Me.gbOptions.Text = "Scraper Fields" + ' + 'chkCrew + ' + Me.chkCrew.AutoSize = True + Me.chkCrew.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkCrew.Location = New System.Drawing.Point(225, 17) + Me.chkCrew.Name = "chkCrew" + Me.chkCrew.Size = New System.Drawing.Size(52, 17) + Me.chkCrew.TabIndex = 19 + Me.chkCrew.Text = "Crew" + Me.chkCrew.UseVisualStyleBackColor = True + ' + 'chkCountry + ' + Me.chkCountry.AutoSize = True + Me.chkCountry.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkCountry.Location = New System.Drawing.Point(131, 123) + Me.chkCountry.Name = "chkCountry" + Me.chkCountry.Size = New System.Drawing.Size(67, 17) + Me.chkCountry.TabIndex = 18 + Me.chkCountry.Text = "Country" + Me.chkCountry.UseVisualStyleBackColor = True + ' + 'chkStudio + ' + Me.chkStudio.AutoSize = True + Me.chkStudio.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkStudio.Location = New System.Drawing.Point(131, 19) + Me.chkStudio.Name = "chkStudio" + Me.chkStudio.Size = New System.Drawing.Size(60, 17) + Me.chkStudio.TabIndex = 8 + Me.chkStudio.Text = "Studio" + Me.chkStudio.UseVisualStyleBackColor = True + ' + 'chkRuntime + ' + Me.chkRuntime.AutoSize = True + Me.chkRuntime.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkRuntime.Location = New System.Drawing.Point(6, 89) + Me.chkRuntime.Name = "chkRuntime" + Me.chkRuntime.Size = New System.Drawing.Size(69, 17) + Me.chkRuntime.TabIndex = 5 + Me.chkRuntime.Text = "Runtime" + Me.chkRuntime.UseVisualStyleBackColor = True + ' + 'chkOutline + ' + Me.chkOutline.AutoSize = True + Me.chkOutline.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkOutline.Location = New System.Drawing.Point(131, 53) + Me.chkOutline.Name = "chkOutline" + Me.chkOutline.Size = New System.Drawing.Size(65, 17) + Me.chkOutline.TabIndex = 10 + Me.chkOutline.Text = "Outline" + Me.chkOutline.UseVisualStyleBackColor = True + ' + 'chkGenre + ' + Me.chkGenre.AutoSize = True + Me.chkGenre.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkGenre.Location = New System.Drawing.Point(131, 72) + Me.chkGenre.Name = "chkGenre" + Me.chkGenre.Size = New System.Drawing.Size(57, 17) + Me.chkGenre.TabIndex = 15 + Me.chkGenre.Text = "Genre" + Me.chkGenre.UseVisualStyleBackColor = True + ' + 'chkTagline + ' + Me.chkTagline.AutoSize = True + Me.chkTagline.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkTagline.Location = New System.Drawing.Point(131, 36) + Me.chkTagline.Name = "chkTagline" + Me.chkTagline.Size = New System.Drawing.Size(63, 17) + Me.chkTagline.TabIndex = 9 + Me.chkTagline.Text = "Tagline" + Me.chkTagline.UseVisualStyleBackColor = True + ' + 'chkCast + ' + Me.chkCast.AutoSize = True + Me.chkCast.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkCast.Location = New System.Drawing.Point(131, 89) + Me.chkCast.Name = "chkCast" + Me.chkCast.Size = New System.Drawing.Size(48, 17) + Me.chkCast.TabIndex = 12 + Me.chkCast.Text = "Cast" + Me.chkCast.UseVisualStyleBackColor = True + ' + 'chkVotes + ' + Me.chkVotes.AutoSize = True + Me.chkVotes.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkVotes.Location = New System.Drawing.Point(6, 123) + Me.chkVotes.Name = "chkVotes" + Me.chkVotes.Size = New System.Drawing.Size(55, 17) + Me.chkVotes.TabIndex = 7 + Me.chkVotes.Text = "Votes" + Me.chkVotes.UseVisualStyleBackColor = True + ' + 'chkTrailer + ' + Me.chkTrailer.AutoSize = True + Me.chkTrailer.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkTrailer.Location = New System.Drawing.Point(131, 106) + Me.chkTrailer.Name = "chkTrailer" + Me.chkTrailer.Size = New System.Drawing.Size(57, 17) + Me.chkTrailer.TabIndex = 17 + Me.chkTrailer.Text = "Trailer" + Me.chkTrailer.UseVisualStyleBackColor = True + ' + 'chkRating + ' + Me.chkRating.AutoSize = True + Me.chkRating.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkRating.Location = New System.Drawing.Point(6, 106) + Me.chkRating.Name = "chkRating" + Me.chkRating.Size = New System.Drawing.Size(60, 17) + Me.chkRating.TabIndex = 6 + Me.chkRating.Text = "Rating" + Me.chkRating.UseVisualStyleBackColor = True + ' + 'chkRelease + ' + Me.chkRelease.AutoSize = True + Me.chkRelease.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkRelease.Location = New System.Drawing.Point(6, 72) + Me.chkRelease.Name = "chkRelease" + Me.chkRelease.Size = New System.Drawing.Size(92, 17) + Me.chkRelease.TabIndex = 4 + Me.chkRelease.Text = "Release Date" + Me.chkRelease.UseVisualStyleBackColor = True + ' + 'chkMPAA + ' + Me.chkMPAA.AutoSize = True + Me.chkMPAA.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkMPAA.Location = New System.Drawing.Point(6, 53) + Me.chkMPAA.Name = "chkMPAA" + Me.chkMPAA.Size = New System.Drawing.Size(56, 17) + Me.chkMPAA.TabIndex = 2 + Me.chkMPAA.Text = "MPAA" + Me.chkMPAA.UseVisualStyleBackColor = True + ' + 'chkYear + ' + Me.chkYear.AutoSize = True + Me.chkYear.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkYear.Location = New System.Drawing.Point(6, 36) + Me.chkYear.Name = "chkYear" + Me.chkYear.Size = New System.Drawing.Size(47, 17) + Me.chkYear.TabIndex = 1 + Me.chkYear.Text = "Year" + Me.chkYear.UseVisualStyleBackColor = True + ' + 'chkTitle + ' + Me.chkTitle.AutoSize = True + Me.chkTitle.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkTitle.Location = New System.Drawing.Point(6, 19) + Me.chkTitle.Name = "chkTitle" + Me.chkTitle.Size = New System.Drawing.Size(47, 17) + Me.chkTitle.TabIndex = 0 + Me.chkTitle.Text = "Title" + Me.chkTitle.UseVisualStyleBackColor = True + ' + 'pbTMDB + ' + Me.pbTMDB.Image = CType(resources.GetObject("pbTMDB.Image"), System.Drawing.Image) + Me.pbTMDB.Location = New System.Drawing.Point(287, 34) + Me.pbTMDB.Name = "pbTMDB" + Me.pbTMDB.Size = New System.Drawing.Size(16, 16) + Me.pbTMDB.TabIndex = 5 + Me.pbTMDB.TabStop = False + ' + 'pbFANARTTV + ' + Me.pbFANARTTV.Image = CType(resources.GetObject("pbFANARTTV.Image"), System.Drawing.Image) + Me.pbFANARTTV.Location = New System.Drawing.Point(287, 34) + Me.pbFANARTTV.Name = "pbFANARTTV" + Me.pbFANARTTV.Size = New System.Drawing.Size(16, 16) + Me.pbFANARTTV.TabIndex = 6 + Me.pbFANARTTV.TabStop = False + ' + 'frmTMDBInfoSettingsHolder + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi + Me.BackColor = System.Drawing.Color.White + Me.ClientSize = New System.Drawing.Size(652, 388) + Me.Controls.Add(Me.pnlSettings) + Me.Controls.Add(Me.lblVersion) + Me.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "frmTMDBInfoSettingsHolder" + Me.ShowInTaskbar = False + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "Scraper Setup" + Me.GroupBox30.ResumeLayout(False) + Me.GroupBox30.PerformLayout() + Me.Panel1.ResumeLayout(False) + Me.Panel1.PerformLayout() + Me.pnlSettings.ResumeLayout(False) + Me.GroupBox1.ResumeLayout(False) + Me.GroupBox1.PerformLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() + Me.gbOptions.ResumeLayout(False) + Me.gbOptions.PerformLayout() + CType(Me.pbTMDB, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.pbFANARTTV, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + + End Sub + Friend WithEvents lblVersion As System.Windows.Forms.Label + Friend WithEvents GroupBox30 As System.Windows.Forms.GroupBox + Friend WithEvents Label18 As System.Windows.Forms.Label + Friend WithEvents txtTMDBApiKey As System.Windows.Forms.TextBox + Friend WithEvents cbEnabled As System.Windows.Forms.CheckBox + Friend WithEvents Panel1 As System.Windows.Forms.Panel + Friend WithEvents pnlSettings As System.Windows.Forms.Panel + Friend WithEvents btnDown As System.Windows.Forms.Button + Friend WithEvents btnUp As System.Windows.Forms.Button + Friend WithEvents Label2 As System.Windows.Forms.Label + Friend WithEvents Label1 As System.Windows.Forms.Label + Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox + Friend WithEvents gbOptions As System.Windows.Forms.GroupBox + Friend WithEvents chkCountry As System.Windows.Forms.CheckBox + Friend WithEvents chkStudio As System.Windows.Forms.CheckBox + Friend WithEvents chkRuntime As System.Windows.Forms.CheckBox + Friend WithEvents chkOutline As System.Windows.Forms.CheckBox + Friend WithEvents chkGenre As System.Windows.Forms.CheckBox + Friend WithEvents chkTagline As System.Windows.Forms.CheckBox + Friend WithEvents chkCast As System.Windows.Forms.CheckBox + Friend WithEvents chkVotes As System.Windows.Forms.CheckBox + Friend WithEvents chkTrailer As System.Windows.Forms.CheckBox + Friend WithEvents chkRating As System.Windows.Forms.CheckBox + Friend WithEvents chkRelease As System.Windows.Forms.CheckBox + Friend WithEvents chkMPAA As System.Windows.Forms.CheckBox + Friend WithEvents chkYear As System.Windows.Forms.CheckBox + Friend WithEvents chkTitle As System.Windows.Forms.CheckBox + Friend WithEvents chkFallBackEng As System.Windows.Forms.CheckBox + Friend WithEvents cbTMDBPrefLanguage As System.Windows.Forms.ComboBox + Friend WithEvents Label3 As System.Windows.Forms.Label + Friend WithEvents chkCrew As System.Windows.Forms.CheckBox + Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox + Friend WithEvents Label5 As System.Windows.Forms.Label + Friend WithEvents txtFANARTTVApiKey As System.Windows.Forms.TextBox + Friend WithEvents pbTMDB As System.Windows.Forms.PictureBox + Friend WithEvents pbFANARTTV As System.Windows.Forms.PictureBox + +End Class diff --git a/Addons/scraper.EmberCore.TMDB/frmTMDBInfoSettingsHolder.resx b/Addons/scraper.EmberCore.TMDB/frmTMDBInfoSettingsHolder.resx new file mode 100644 index 0000000..b1bac92 --- /dev/null +++ b/Addons/scraper.EmberCore.TMDB/frmTMDBInfoSettingsHolder.resx @@ -0,0 +1,223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + ayv4Ba5+NdG8cgGAAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAArpAAAK6QH9dc7TAAABnElE + QVQ4T2P4//8/AyUYp2bhrrN6gl1nkgS7z6QLdZ21xWUJhgHS0++x8rWfXsXRfOI/S8Ox/yz1R/+zNx3/ + z9N++qxI13kpdIMwDOBpPDKHpfrgf4ayvf8ZK/bdZKzYf4ihfO9/psoD/7kajhxJPIPqZRQDhKp2C7AX + b//PnLf5P2v+lq0w21gLtvYy5235z1a07T9fxS4UV6AYIFi4mYctfdUztrSV/znTVujADGBPWzkLKP4f + KP6PK3utMLI3MLzAFTNXhCthoSZMEUfsvFaOuAX/OeLm/+eMmz+ZYBggK+AKnTKZK2zaf+7QKf+5wqYu + xxYTOKORz7dbm9e35z+vb/d/Xr/u2URHI0whn3NDIL9Lw38QlrQoYCfZAEHnej4hu8q1gnaVFfhSKk4v + iOpnyIoaZu0SMchaLmKQyUOyC0T1M4tE9dL+i+ql/xc3zHEkygBmBgZhIFZmYmBQ5RLR9RLWjL0hrBF1 + ko1bwhQorgHEKkAsBsRwl6N4ASjBDsR8QCwEVMMLxBxAzA7EAiAxIOYHYg6cBpCTrQErRGvnAPNv7gAA + AABJRU5ErkJggg== + + + + + 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 + RK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAArpAAAK6QH9dc7TAAABnElE + QVQ4T2P4//8/AyUYp2bhrrN6gl1nkgS7z6QLdZ21xWUJhgHS0++x8rWfXsXRfOI/S8Ox/yz1R/+zNx3/ + z9N++qxI13kpdIMwDOBpPDKHpfrgf4ayvf8ZK/bdZKzYf4ihfO9/psoD/7kajhxJPIPqZRQDhKp2C7AX + b//PnLf5P2v+lq0w21gLtvYy5235z1a07T9fxS4UV6AYIFi4mYctfdUztrSV/znTVujADGBPWzkLKP4f + KP6PK3utMLI3MLzAFTNXhCthoSZMEUfsvFaOuAX/OeLm/+eMmz+ZYBggK+AKnTKZK2zaf+7QKf+5wqYu + xxYTOKORz7dbm9e35z+vb/d/Xr/u2URHI0whn3NDIL9Lw38QlrQoYCfZAEHnej4hu8q1gnaVFfhSKk4v + iOpnyIoaZu0SMchaLmKQyUOyC0T1M4tE9dL+i+ql/xc3zHEkygBmBgZhIFZmYmBQ5RLR9RLWjL0hrBF1 + ko1bwhQorgHEKkAsBsRwl6N4ASjBDsR8QCwEVMMLxBxAzA7EAiAxIOYHYg6cBpCTrQErRGvnAPNv7gAA + AABJRU5ErkJggg== + + + \ No newline at end of file diff --git a/Addons/scraper.EmberCore.TMDB/frmTMDBInfoSettingsHolder.vb b/Addons/scraper.EmberCore.TMDB/frmTMDBInfoSettingsHolder.vb new file mode 100644 index 0000000..bb91413 --- /dev/null +++ b/Addons/scraper.EmberCore.TMDB/frmTMDBInfoSettingsHolder.vb @@ -0,0 +1,218 @@ +' ################################################################################ +' # EMBER MEDIA MANAGER # +' ################################################################################ +' ################################################################################ +' # This file is part of Ember Media Manager. # +' # # +' # Ember Media Manager is free software: you can redistribute it and/or modify # +' # it under the terms of the GNU General Public License as published by # +' # the Free Software Foundation, either version 3 of the License, or # +' # (at your option) any later version. # +' # # +' # Ember Media Manager is distributed in the hope that it will be useful, # +' # but WITHOUT ANY WARRANTY; without even the implied warranty of # +' # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +' # GNU General Public License for more details. # +' # # +' # You should have received a copy of the GNU General Public License # +' # along with Ember Media Manager. If not, see . # +' ################################################################################ + +Imports System.IO +Imports EmberAPI +Imports System.Diagnostics + +Public Class frmTMDBInfoSettingsHolder + +#Region "Events" + + Public Event ModuleSettingsChanged() + + Public Event SetupScraperChanged(ByVal state As Boolean, ByVal difforder As Integer) + Public Event SetupNeedsRestart() + +#End Region 'Events + +#Region "Fields" + + Private Api1 As String + +#End Region 'Events + +#Region "Methods" + + Private Sub btnDown_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDown.Click + Dim order As Integer = ModulesManager.Instance.externalScrapersModules.FirstOrDefault(Function(p) p.AssemblyName = EmberTMDBScraperModule._AssemblyName).ScraperOrder + If order < ModulesManager.Instance.externalScrapersModules.Where(Function(y) y.ProcessorModule.IsScraper).Count - 1 Then + ModulesManager.Instance.externalScrapersModules.FirstOrDefault(Function(p) p.ScraperOrder = order + 1).ScraperOrder = order + ModulesManager.Instance.externalScrapersModules.FirstOrDefault(Function(p) p.AssemblyName = EmberTMDBScraperModule._AssemblyName).ScraperOrder = order + 1 + RaiseEvent SetupScraperChanged(cbEnabled.Checked, 1) + orderChanged() + End If + End Sub + + Private Sub btnUp_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUp.Click + Dim order As Integer = ModulesManager.Instance.externalScrapersModules.FirstOrDefault(Function(p) p.AssemblyName = EmberTMDBScraperModule._AssemblyName).ScraperOrder + If order > 0 Then + ModulesManager.Instance.externalScrapersModules.FirstOrDefault(Function(p) p.ScraperOrder = order - 1).ScraperOrder = order + ModulesManager.Instance.externalScrapersModules.FirstOrDefault(Function(p) p.AssemblyName = EmberTMDBScraperModule._AssemblyName).ScraperOrder = order - 1 + RaiseEvent SetupScraperChanged(cbEnabled.Checked, -1) + orderChanged() + End If + End Sub + + Private Sub cbEnabled_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbEnabled.CheckedChanged + RaiseEvent SetupScraperChanged(cbEnabled.Checked, 0) + End Sub + + Private Sub chkCrew_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles chkCrew.CheckedChanged + RaiseEvent ModuleSettingsChanged() + End Sub + + Private Sub chkCast_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkCast.CheckedChanged + RaiseEvent ModuleSettingsChanged() + End Sub + + Private Sub chkGenre_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkGenre.CheckedChanged + RaiseEvent ModuleSettingsChanged() + End Sub + + Private Sub chkMPAA_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkMPAA.CheckedChanged + RaiseEvent ModuleSettingsChanged() + End Sub + + Private Sub chkOutline_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkOutline.CheckedChanged + RaiseEvent ModuleSettingsChanged() + End Sub + + Private Sub chkRating_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkRating.CheckedChanged + RaiseEvent ModuleSettingsChanged() + End Sub + + Private Sub chkRelease_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkRelease.CheckedChanged + RaiseEvent ModuleSettingsChanged() + End Sub + + Private Sub chkRuntime_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkRuntime.CheckedChanged + RaiseEvent ModuleSettingsChanged() + End Sub + + Private Sub chkStudio_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkStudio.CheckedChanged + RaiseEvent ModuleSettingsChanged() + End Sub + + Private Sub chkTagline_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkTagline.CheckedChanged + RaiseEvent ModuleSettingsChanged() + End Sub + + Private Sub chkTitle_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkTitle.CheckedChanged + RaiseEvent ModuleSettingsChanged() + End Sub + + Private Sub chkCountry_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkCountry.CheckedChanged + RaiseEvent ModuleSettingsChanged() + End Sub + + Private Sub chkTrailer_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkTrailer.CheckedChanged + RaiseEvent ModuleSettingsChanged() + End Sub + + Private Sub chkVotes_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkVotes.CheckedChanged + RaiseEvent ModuleSettingsChanged() + End Sub + + Private Sub chkYear_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkYear.CheckedChanged + RaiseEvent ModuleSettingsChanged() + End Sub + + Private Sub chkFallBackEng_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles chkFallBackEng.CheckedChanged + RaiseEvent ModuleSettingsChanged() + End Sub + + Private Sub cbTMDBPrefLanguage_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles cbTMDBPrefLanguage.SelectedIndexChanged + RaiseEvent ModuleSettingsChanged() + End Sub + + Private Sub txtFANARTTVApiKey_TextChanged(sender As System.Object, e As System.EventArgs) Handles txtFANARTTVApiKey.TextChanged + RaiseEvent ModuleSettingsChanged() + End Sub + + Private Sub txtTMDBApiKey_TextEnter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtTMDBApiKey.Enter + Api1 = txtTMDBApiKey.Text + End Sub + + Private Sub txtTMDBApiKey_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtTMDBApiKey.TextChanged + RaiseEvent ModuleSettingsChanged() + End Sub + + Private Sub txtTMDBApiKey_TextValidated(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtTMDBApiKey.Validated + If Not (Api1 = txtTMDBApiKey.Text) Then + RaiseEvent SetupNeedsRestart() + End If + End Sub + + Public Sub New() + InitializeComponent() + Me.SetUp() + End Sub + + Sub orderChanged() + Dim order As Integer = ModulesManager.Instance.externalScrapersModules.FirstOrDefault(Function(p) p.AssemblyName = EmberTMDBScraperModule._AssemblyName).ScraperOrder + btnDown.Enabled = (order < ModulesManager.Instance.externalScrapersModules.Where(Function(y) y.ProcessorModule.IsScraper).Count - 1) + btnUp.Enabled = (order > 1) + End Sub + + Private Sub SetUp() + Me.Label18.Text = Master.eLang.GetString(854, "TMDB API Key:") + Me.gbOptions.Text = Master.eLang.GetString(6, "Scraper Fields - Scraper specific") + Me.chkStudio.Text = Master.eLang.GetString(395, "Studio", True) + Me.chkRuntime.Text = Master.eLang.GetString(396, "Runtime", True) + Me.chkOutline.Text = Master.eLang.GetString(64, "Plot Outline", True) + Me.chkGenre.Text = Master.eLang.GetString(20, "Genres", True) + Me.chkTagline.Text = Master.eLang.GetString(397, "Tagline", True) + Me.chkCast.Text = Master.eLang.GetString(398, "Cast", True) + Me.chkVotes.Text = Master.eLang.GetString(399, "Votes", True) + Me.chkTrailer.Text = Master.eLang.GetString(151, "Trailer", True) + Me.chkRating.Text = Master.eLang.GetString(400, "Rating", True) + Me.chkRelease.Text = Master.eLang.GetString(57, "Release Date", True) + Me.chkMPAA.Text = Master.eLang.GetString(401, "MPAA", True) + Me.chkYear.Text = Master.eLang.GetString(278, "Year", True) + Me.chkTitle.Text = Master.eLang.GetString(21, "Title", True) + 'Me.chkCertification.Text = Master.eLang.GetString(722, "Certification", True) + Me.Label2.Text = Master.eLang.GetString(168, "Scrape Order", True) + Me.cbEnabled.Text = Master.eLang.GetString(774, "Enabled", True) + Me.chkFallBackEng.Text = Master.eLang.GetString(114, "Fall back on english") + Me.Label3.Text = Master.eLang.GetString(115, "Preferred Language:") + + Me.Label1.Text = String.Format(Master.eLang.GetString(103, "These settings are specific to this module.{0}Please refer to the global settings for more options."), vbCrLf) + End Sub + + +#End Region 'Methods + + Private Sub PictureBox2_Click(sender As System.Object, e As System.EventArgs) Handles pbTMDB.Click + If Master.isWindows Then + Process.Start("http://docs.themoviedb.apiary.io/") + Else + Using Explorer As New Process + Explorer.StartInfo.FileName = "xdg-open" + Explorer.StartInfo.Arguments = "http://docs.themoviedb.apiary.io/" + Explorer.Start() + End Using + End If + + End Sub + + Private Sub pbFANARTTV_Click(sender As System.Object, e As System.EventArgs) Handles pbFANARTTV.Click + If Master.isWindows Then + Process.Start("http://fanart.tv/get-an-api-key/") + Else + Using Explorer As New Process + Explorer.StartInfo.FileName = "xdg-open" + Explorer.StartInfo.Arguments = "http://fanart.tv/get-an-api-key/" + Explorer.Start() + End Using + End If + + End Sub +End Class \ No newline at end of file diff --git a/Addons/scraper.EmberCore.TMDB/frmTMDBMediaSettingsHolder.Designer.vb b/Addons/scraper.EmberCore.TMDB/frmTMDBMediaSettingsHolder.Designer.vb new file mode 100644 index 0000000..cd9a207 --- /dev/null +++ b/Addons/scraper.EmberCore.TMDB/frmTMDBMediaSettingsHolder.Designer.vb @@ -0,0 +1,525 @@ + _ +Partial Class frmTMDBMediaSettingsHolder + Inherits System.Windows.Forms.Form + + 'Form overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmTMDBMediaSettingsHolder)) + Me.pnlSettings = New System.Windows.Forms.Panel() + Me.lblInfo = New System.Windows.Forms.Label() + Me.PictureBox1 = New System.Windows.Forms.PictureBox() + Me.gbImages = New System.Windows.Forms.GroupBox() + Me.gbGetFanart = New System.Windows.Forms.GroupBox() + Me.chkUseFANARTTV = New System.Windows.Forms.CheckBox() + Me.gbGetPoster = New System.Windows.Forms.GroupBox() + Me.chkUseMPDB = New System.Windows.Forms.CheckBox() + Me.chkUseIMDBp = New System.Windows.Forms.CheckBox() + Me.chkUseIMPA = New System.Windows.Forms.CheckBox() + Me.gbExtrathumbsSize = New System.Windows.Forms.GroupBox() + Me.cbManualETSize = New System.Windows.Forms.ComboBox() + Me.gbSaveFanartIn = New System.Windows.Forms.GroupBox() + Me.optFanartFolderExtraFanart = New System.Windows.Forms.RadioButton() + Me.optFanartFolderExtraThumbs = New System.Windows.Forms.RadioButton() + Me.chkScrapePoster = New System.Windows.Forms.CheckBox() + Me.chkScrapeFanart = New System.Windows.Forms.CheckBox() + Me.gbTrailers = New System.Windows.Forms.GroupBox() + Me.chkDownloadTrailer = New System.Windows.Forms.CheckBox() + Me.lblTimeout = New System.Windows.Forms.Label() + Me.txtTimeout = New System.Windows.Forms.TextBox() + Me.gbSupportedSites = New System.Windows.Forms.GroupBox() + Me.chkTrailerIMDB = New System.Windows.Forms.CheckBox() + Me.gbYouTubeTrailer = New System.Windows.Forms.GroupBox() + Me.cbTrailerTMDBPref = New System.Windows.Forms.ComboBox() + Me.lblPrefLanguage = New System.Windows.Forms.Label() + Me.chkTrailerTMDBXBMC = New System.Windows.Forms.CheckBox() + Me.chkTrailerTMDB = New System.Windows.Forms.CheckBox() + Me.Panel2 = New System.Windows.Forms.Panel() + Me.lblScraperOrder = New System.Windows.Forms.Label() + Me.btnDown = New System.Windows.Forms.Button() + Me.btnUp = New System.Windows.Forms.Button() + Me.cbEnabled = New System.Windows.Forms.CheckBox() + Me.pnlSettings.SuspendLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.gbImages.SuspendLayout() + Me.gbGetFanart.SuspendLayout() + Me.gbGetPoster.SuspendLayout() + Me.gbExtrathumbsSize.SuspendLayout() + Me.gbSaveFanartIn.SuspendLayout() + Me.gbTrailers.SuspendLayout() + Me.gbSupportedSites.SuspendLayout() + Me.gbYouTubeTrailer.SuspendLayout() + Me.Panel2.SuspendLayout() + Me.SuspendLayout() + ' + 'pnlSettings + ' + Me.pnlSettings.Controls.Add(Me.lblInfo) + Me.pnlSettings.Controls.Add(Me.PictureBox1) + Me.pnlSettings.Controls.Add(Me.gbImages) + Me.pnlSettings.Controls.Add(Me.gbTrailers) + Me.pnlSettings.Controls.Add(Me.Panel2) + Me.pnlSettings.Location = New System.Drawing.Point(12, 4) + Me.pnlSettings.Name = "pnlSettings" + Me.pnlSettings.Size = New System.Drawing.Size(617, 369) + Me.pnlSettings.TabIndex = 0 + ' + 'lblInfo + ' + Me.lblInfo.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.lblInfo.Font = New System.Drawing.Font("Segoe UI", 6.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblInfo.ForeColor = System.Drawing.Color.Blue + Me.lblInfo.Location = New System.Drawing.Point(37, 337) + Me.lblInfo.Name = "lblInfo" + Me.lblInfo.Size = New System.Drawing.Size(350, 31) + Me.lblInfo.TabIndex = 3 + Me.lblInfo.Text = "These settings are specific to this module." & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "Please refer to the global settings " & _ + "for more options." + Me.lblInfo.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + ' + 'PictureBox1 + ' + Me.PictureBox1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.PictureBox1.Image = CType(resources.GetObject("PictureBox1.Image"), System.Drawing.Image) + Me.PictureBox1.Location = New System.Drawing.Point(3, 335) + Me.PictureBox1.Name = "PictureBox1" + Me.PictureBox1.Size = New System.Drawing.Size(30, 31) + Me.PictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage + Me.PictureBox1.TabIndex = 94 + Me.PictureBox1.TabStop = False + ' + 'gbImages + ' + Me.gbImages.Controls.Add(Me.gbGetFanart) + Me.gbImages.Controls.Add(Me.gbGetPoster) + Me.gbImages.Controls.Add(Me.gbExtrathumbsSize) + Me.gbImages.Controls.Add(Me.gbSaveFanartIn) + Me.gbImages.Controls.Add(Me.chkScrapePoster) + Me.gbImages.Controls.Add(Me.chkScrapeFanart) + Me.gbImages.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.gbImages.Location = New System.Drawing.Point(15, 31) + Me.gbImages.Name = "gbImages" + Me.gbImages.Size = New System.Drawing.Size(587, 177) + Me.gbImages.TabIndex = 1 + Me.gbImages.TabStop = False + Me.gbImages.Text = "Images" + ' + 'gbGetFanart + ' + Me.gbGetFanart.Controls.Add(Me.chkUseFANARTTV) + Me.gbGetFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.gbGetFanart.Location = New System.Drawing.Point(165, 97) + Me.gbGetFanart.Name = "gbGetFanart" + Me.gbGetFanart.Size = New System.Drawing.Size(160, 52) + Me.gbGetFanart.TabIndex = 96 + Me.gbGetFanart.TabStop = False + Me.gbGetFanart.Text = "Get Fanart From:" + ' + 'chkUseFANARTTV + ' + Me.chkUseFANARTTV.CheckAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkUseFANARTTV.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkUseFANARTTV.Location = New System.Drawing.Point(6, 20) + Me.chkUseFANARTTV.Name = "chkUseFANARTTV" + Me.chkUseFANARTTV.Size = New System.Drawing.Size(150, 17) + Me.chkUseFANARTTV.TabIndex = 2 + Me.chkUseFANARTTV.Text = "fanart.tv" + Me.chkUseFANARTTV.TextAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkUseFANARTTV.UseVisualStyleBackColor = True + ' + 'gbGetPoster + ' + Me.gbGetPoster.Controls.Add(Me.chkUseMPDB) + Me.gbGetPoster.Controls.Add(Me.chkUseIMDBp) + Me.gbGetPoster.Controls.Add(Me.chkUseIMPA) + Me.gbGetPoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.gbGetPoster.Location = New System.Drawing.Point(165, 11) + Me.gbGetPoster.Name = "gbGetPoster" + Me.gbGetPoster.Size = New System.Drawing.Size(160, 80) + Me.gbGetPoster.TabIndex = 5 + Me.gbGetPoster.TabStop = False + Me.gbGetPoster.Text = "Get Poster From:" + ' + 'chkUseMPDB + ' + Me.chkUseMPDB.CheckAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkUseMPDB.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkUseMPDB.Location = New System.Drawing.Point(6, 52) + Me.chkUseMPDB.Name = "chkUseMPDB" + Me.chkUseMPDB.Size = New System.Drawing.Size(150, 17) + Me.chkUseMPDB.TabIndex = 2 + Me.chkUseMPDB.Text = "MoviePosterDB.com" + Me.chkUseMPDB.TextAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkUseMPDB.UseVisualStyleBackColor = True + ' + 'chkUseIMDBp + ' + Me.chkUseIMDBp.CheckAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkUseIMDBp.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkUseIMDBp.Location = New System.Drawing.Point(6, 20) + Me.chkUseIMDBp.Name = "chkUseIMDBp" + Me.chkUseIMDBp.Size = New System.Drawing.Size(149, 17) + Me.chkUseIMDBp.TabIndex = 0 + Me.chkUseIMDBp.Text = "IMDB.com" + Me.chkUseIMDBp.TextAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkUseIMDBp.UseVisualStyleBackColor = True + ' + 'chkUseIMPA + ' + Me.chkUseIMPA.CheckAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkUseIMPA.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkUseIMPA.Location = New System.Drawing.Point(6, 36) + Me.chkUseIMPA.Name = "chkUseIMPA" + Me.chkUseIMPA.Size = New System.Drawing.Size(149, 17) + Me.chkUseIMPA.TabIndex = 1 + Me.chkUseIMPA.Text = "IMPAwards.com" + Me.chkUseIMPA.TextAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkUseIMPA.UseVisualStyleBackColor = True + ' + 'gbExtrathumbsSize + ' + Me.gbExtrathumbsSize.Controls.Add(Me.cbManualETSize) + Me.gbExtrathumbsSize.Location = New System.Drawing.Point(374, 11) + Me.gbExtrathumbsSize.Name = "gbExtrathumbsSize" + Me.gbExtrathumbsSize.Size = New System.Drawing.Size(160, 80) + Me.gbExtrathumbsSize.TabIndex = 4 + Me.gbExtrathumbsSize.TabStop = False + Me.gbExtrathumbsSize.Text = "TMDB Extrathumbs Size:" + ' + 'cbManualETSize + ' + Me.cbManualETSize.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cbManualETSize.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.cbManualETSize.FormattingEnabled = True + Me.cbManualETSize.Items.AddRange(New Object() {"original", "w1280", "poster", "thumb"}) + Me.cbManualETSize.Location = New System.Drawing.Point(21, 35) + Me.cbManualETSize.Name = "cbManualETSize" + Me.cbManualETSize.Size = New System.Drawing.Size(121, 21) + Me.cbManualETSize.TabIndex = 0 + ' + 'gbSaveFanartIn + ' + Me.gbSaveFanartIn.Controls.Add(Me.optFanartFolderExtraFanart) + Me.gbSaveFanartIn.Controls.Add(Me.optFanartFolderExtraThumbs) + Me.gbSaveFanartIn.Enabled = False + Me.gbSaveFanartIn.Location = New System.Drawing.Point(23, 52) + Me.gbSaveFanartIn.Name = "gbSaveFanartIn" + Me.gbSaveFanartIn.Size = New System.Drawing.Size(123, 66) + Me.gbSaveFanartIn.TabIndex = 2 + Me.gbSaveFanartIn.TabStop = False + Me.gbSaveFanartIn.Text = "Save Fanart In:" + ' + 'optFanartFolderExtraFanart + ' + Me.optFanartFolderExtraFanart.AutoSize = True + Me.optFanartFolderExtraFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.optFanartFolderExtraFanart.Location = New System.Drawing.Point(22, 38) + Me.optFanartFolderExtraFanart.Name = "optFanartFolderExtraFanart" + Me.optFanartFolderExtraFanart.Size = New System.Drawing.Size(85, 17) + Me.optFanartFolderExtraFanart.TabIndex = 1 + Me.optFanartFolderExtraFanart.TabStop = True + Me.optFanartFolderExtraFanart.Text = "\extrafanart" + Me.optFanartFolderExtraFanart.UseVisualStyleBackColor = True + ' + 'optFanartFolderExtraThumbs + ' + Me.optFanartFolderExtraThumbs.AutoSize = True + Me.optFanartFolderExtraThumbs.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.optFanartFolderExtraThumbs.Location = New System.Drawing.Point(22, 19) + Me.optFanartFolderExtraThumbs.Name = "optFanartFolderExtraThumbs" + Me.optFanartFolderExtraThumbs.Size = New System.Drawing.Size(93, 17) + Me.optFanartFolderExtraThumbs.TabIndex = 0 + Me.optFanartFolderExtraThumbs.TabStop = True + Me.optFanartFolderExtraThumbs.Text = "\extrathumbs" + Me.optFanartFolderExtraThumbs.UseVisualStyleBackColor = True + ' + 'chkScrapePoster + ' + Me.chkScrapePoster.CheckAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkScrapePoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkScrapePoster.Location = New System.Drawing.Point(6, 20) + Me.chkScrapePoster.Name = "chkScrapePoster" + Me.chkScrapePoster.Size = New System.Drawing.Size(114, 17) + Me.chkScrapePoster.TabIndex = 0 + Me.chkScrapePoster.Text = "Get Posters" + Me.chkScrapePoster.TextAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkScrapePoster.UseVisualStyleBackColor = True + ' + 'chkScrapeFanart + ' + Me.chkScrapeFanart.CheckAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkScrapeFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkScrapeFanart.Location = New System.Drawing.Point(6, 36) + Me.chkScrapeFanart.Name = "chkScrapeFanart" + Me.chkScrapeFanart.Size = New System.Drawing.Size(114, 17) + Me.chkScrapeFanart.TabIndex = 1 + Me.chkScrapeFanart.Text = "Get Fanart" + Me.chkScrapeFanart.TextAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkScrapeFanart.UseVisualStyleBackColor = True + ' + 'gbTrailers + ' + Me.gbTrailers.Controls.Add(Me.chkDownloadTrailer) + Me.gbTrailers.Controls.Add(Me.lblTimeout) + Me.gbTrailers.Controls.Add(Me.txtTimeout) + Me.gbTrailers.Controls.Add(Me.gbSupportedSites) + Me.gbTrailers.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.gbTrailers.Location = New System.Drawing.Point(15, 214) + Me.gbTrailers.Name = "gbTrailers" + Me.gbTrailers.Size = New System.Drawing.Size(587, 112) + Me.gbTrailers.TabIndex = 2 + Me.gbTrailers.TabStop = False + Me.gbTrailers.Text = "Trailers" + Me.gbTrailers.UseCompatibleTextRendering = True + ' + 'chkDownloadTrailer + ' + Me.chkDownloadTrailer.AutoSize = True + Me.chkDownloadTrailer.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkDownloadTrailer.Location = New System.Drawing.Point(6, 20) + Me.chkDownloadTrailer.Name = "chkDownloadTrailer" + Me.chkDownloadTrailer.Size = New System.Drawing.Size(140, 17) + Me.chkDownloadTrailer.TabIndex = 0 + Me.chkDownloadTrailer.Text = "Enable Trailer Support" + Me.chkDownloadTrailer.UseVisualStyleBackColor = True + ' + 'lblTimeout + ' + Me.lblTimeout.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblTimeout.Location = New System.Drawing.Point(6, 44) + Me.lblTimeout.Name = "lblTimeout" + Me.lblTimeout.Size = New System.Drawing.Size(72, 13) + Me.lblTimeout.TabIndex = 1 + Me.lblTimeout.Text = "Timeout:" + Me.lblTimeout.TextAlign = System.Drawing.ContentAlignment.TopRight + ' + 'txtTimeout + ' + Me.txtTimeout.Enabled = False + Me.txtTimeout.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtTimeout.Location = New System.Drawing.Point(85, 40) + Me.txtTimeout.Name = "txtTimeout" + Me.txtTimeout.Size = New System.Drawing.Size(50, 22) + Me.txtTimeout.TabIndex = 2 + ' + 'gbSupportedSites + ' + Me.gbSupportedSites.Controls.Add(Me.chkTrailerIMDB) + Me.gbSupportedSites.Controls.Add(Me.gbYouTubeTrailer) + Me.gbSupportedSites.Controls.Add(Me.chkTrailerTMDBXBMC) + Me.gbSupportedSites.Controls.Add(Me.chkTrailerTMDB) + Me.gbSupportedSites.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.gbSupportedSites.Location = New System.Drawing.Point(165, 12) + Me.gbSupportedSites.Name = "gbSupportedSites" + Me.gbSupportedSites.Size = New System.Drawing.Size(321, 94) + Me.gbSupportedSites.TabIndex = 3 + Me.gbSupportedSites.TabStop = False + Me.gbSupportedSites.Text = "Supported Sites:" + ' + 'chkTrailerIMDB + ' + Me.chkTrailerIMDB.AutoSize = True + Me.chkTrailerIMDB.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkTrailerIMDB.Location = New System.Drawing.Point(6, 60) + Me.chkTrailerIMDB.Name = "chkTrailerIMDB" + Me.chkTrailerIMDB.Size = New System.Drawing.Size(54, 17) + Me.chkTrailerIMDB.TabIndex = 5 + Me.chkTrailerIMDB.Text = "IMDB" + Me.chkTrailerIMDB.UseVisualStyleBackColor = True + ' + 'gbYouTubeTrailer + ' + Me.gbYouTubeTrailer.Controls.Add(Me.cbTrailerTMDBPref) + Me.gbYouTubeTrailer.Controls.Add(Me.lblPrefLanguage) + Me.gbYouTubeTrailer.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold) + Me.gbYouTubeTrailer.Location = New System.Drawing.Point(140, 12) + Me.gbYouTubeTrailer.Name = "gbYouTubeTrailer" + Me.gbYouTubeTrailer.Size = New System.Drawing.Size(161, 76) + Me.gbYouTubeTrailer.TabIndex = 4 + Me.gbYouTubeTrailer.TabStop = False + Me.gbYouTubeTrailer.Text = "Youtube/TMDB Trailer:" + ' + 'cbTrailerTMDBPref + ' + Me.cbTrailerTMDBPref.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cbTrailerTMDBPref.Enabled = False + Me.cbTrailerTMDBPref.Font = New System.Drawing.Font("Segoe UI", 8.25!) + Me.cbTrailerTMDBPref.FormattingEnabled = True + Me.cbTrailerTMDBPref.Items.AddRange(New Object() {"bg", "cs", "da", "de", "el", "en", "es", "fi", "fr", "he", "hu", "it", "nb", "nl", "no", "pl", "pt", "ru", "sk", "sv", "ta", "tr", "uk", "vi", "xx", "zh"}) + Me.cbTrailerTMDBPref.Location = New System.Drawing.Point(21, 42) + Me.cbTrailerTMDBPref.Name = "cbTrailerTMDBPref" + Me.cbTrailerTMDBPref.Size = New System.Drawing.Size(121, 21) + Me.cbTrailerTMDBPref.TabIndex = 1 + ' + 'lblPrefLanguage + ' + Me.lblPrefLanguage.AutoSize = True + Me.lblPrefLanguage.Font = New System.Drawing.Font("Segoe UI", 8.25!) + Me.lblPrefLanguage.Location = New System.Drawing.Point(26, 20) + Me.lblPrefLanguage.Name = "lblPrefLanguage" + Me.lblPrefLanguage.Size = New System.Drawing.Size(111, 13) + Me.lblPrefLanguage.TabIndex = 0 + Me.lblPrefLanguage.Text = "Preferred Language:" + ' + 'chkTrailerTMDBXBMC + ' + Me.chkTrailerTMDBXBMC.AutoSize = True + Me.chkTrailerTMDBXBMC.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkTrailerTMDBXBMC.Location = New System.Drawing.Point(26, 36) + Me.chkTrailerTMDBXBMC.Name = "chkTrailerTMDBXBMC" + Me.chkTrailerTMDBXBMC.Size = New System.Drawing.Size(95, 17) + Me.chkTrailerTMDBXBMC.TabIndex = 1 + Me.chkTrailerTMDBXBMC.Text = "XBMC Format" + Me.chkTrailerTMDBXBMC.UseVisualStyleBackColor = True + ' + 'chkTrailerTMDB + ' + Me.chkTrailerTMDB.AutoSize = True + Me.chkTrailerTMDB.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkTrailerTMDB.Location = New System.Drawing.Point(6, 20) + Me.chkTrailerTMDB.Name = "chkTrailerTMDB" + Me.chkTrailerTMDB.Size = New System.Drawing.Size(103, 17) + Me.chkTrailerTMDB.TabIndex = 0 + Me.chkTrailerTMDB.Text = "Youtube/TMDB" + Me.chkTrailerTMDB.UseVisualStyleBackColor = True + ' + 'Panel2 + ' + Me.Panel2.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Panel2.BackColor = System.Drawing.Color.WhiteSmoke + Me.Panel2.Controls.Add(Me.lblScraperOrder) + Me.Panel2.Controls.Add(Me.btnDown) + Me.Panel2.Controls.Add(Me.btnUp) + Me.Panel2.Controls.Add(Me.cbEnabled) + Me.Panel2.Location = New System.Drawing.Point(0, 0) + Me.Panel2.Name = "Panel2" + Me.Panel2.Size = New System.Drawing.Size(1125, 25) + Me.Panel2.TabIndex = 0 + ' + 'lblScraperOrder + ' + Me.lblScraperOrder.AutoSize = True + Me.lblScraperOrder.Font = New System.Drawing.Font("Segoe UI", 6.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblScraperOrder.Location = New System.Drawing.Point(470, 7) + Me.lblScraperOrder.Name = "lblScraperOrder" + Me.lblScraperOrder.Size = New System.Drawing.Size(58, 12) + Me.lblScraperOrder.TabIndex = 1 + Me.lblScraperOrder.Text = "Scraper order" + ' + 'btnDown + ' + Me.btnDown.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.btnDown.Image = CType(resources.GetObject("btnDown.Image"), System.Drawing.Image) + Me.btnDown.Location = New System.Drawing.Point(591, 1) + Me.btnDown.Name = "btnDown" + Me.btnDown.Size = New System.Drawing.Size(23, 23) + Me.btnDown.TabIndex = 3 + Me.btnDown.UseVisualStyleBackColor = True + ' + 'btnUp + ' + Me.btnUp.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.btnUp.Image = CType(resources.GetObject("btnUp.Image"), System.Drawing.Image) + Me.btnUp.Location = New System.Drawing.Point(566, 1) + Me.btnUp.Name = "btnUp" + Me.btnUp.Size = New System.Drawing.Size(23, 23) + Me.btnUp.TabIndex = 2 + Me.btnUp.UseVisualStyleBackColor = True + ' + 'cbEnabled + ' + Me.cbEnabled.AutoSize = True + Me.cbEnabled.Location = New System.Drawing.Point(10, 5) + Me.cbEnabled.Name = "cbEnabled" + Me.cbEnabled.Size = New System.Drawing.Size(68, 17) + Me.cbEnabled.TabIndex = 0 + Me.cbEnabled.Text = "Enabled" + Me.cbEnabled.UseVisualStyleBackColor = True + ' + 'frmTMDBMediaSettingsHolder + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi + Me.BackColor = System.Drawing.Color.White + Me.ClientSize = New System.Drawing.Size(652, 388) + Me.Controls.Add(Me.pnlSettings) + Me.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "frmTMDBMediaSettingsHolder" + Me.ShowInTaskbar = False + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "Scraper Setup" + Me.pnlSettings.ResumeLayout(False) + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() + Me.gbImages.ResumeLayout(False) + Me.gbGetFanart.ResumeLayout(False) + Me.gbGetPoster.ResumeLayout(False) + Me.gbExtrathumbsSize.ResumeLayout(False) + Me.gbSaveFanartIn.ResumeLayout(False) + Me.gbSaveFanartIn.PerformLayout() + Me.gbTrailers.ResumeLayout(False) + Me.gbTrailers.PerformLayout() + Me.gbSupportedSites.ResumeLayout(False) + Me.gbSupportedSites.PerformLayout() + Me.gbYouTubeTrailer.ResumeLayout(False) + Me.gbYouTubeTrailer.PerformLayout() + Me.Panel2.ResumeLayout(False) + Me.Panel2.PerformLayout() + Me.ResumeLayout(False) + + End Sub + Friend WithEvents pnlSettings As System.Windows.Forms.Panel + Friend WithEvents chkScrapeFanart As System.Windows.Forms.CheckBox + Friend WithEvents chkScrapePoster As System.Windows.Forms.CheckBox + Friend WithEvents chkDownloadTrailer As System.Windows.Forms.CheckBox + Friend WithEvents gbSupportedSites As System.Windows.Forms.GroupBox + Friend WithEvents Panel2 As System.Windows.Forms.Panel + Friend WithEvents cbEnabled As System.Windows.Forms.CheckBox + Friend WithEvents lblTimeout As System.Windows.Forms.Label + Friend WithEvents txtTimeout As System.Windows.Forms.TextBox + Friend WithEvents gbImages As System.Windows.Forms.GroupBox + Friend WithEvents gbTrailers As System.Windows.Forms.GroupBox + Friend WithEvents lblScraperOrder As System.Windows.Forms.Label + Friend WithEvents btnDown As System.Windows.Forms.Button + Friend WithEvents btnUp As System.Windows.Forms.Button + Friend WithEvents lblInfo As System.Windows.Forms.Label + Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox + Friend WithEvents gbSaveFanartIn As System.Windows.Forms.GroupBox + Friend WithEvents optFanartFolderExtraFanart As System.Windows.Forms.RadioButton + Friend WithEvents optFanartFolderExtraThumbs As System.Windows.Forms.RadioButton + Friend WithEvents chkTrailerTMDB As System.Windows.Forms.CheckBox + Friend WithEvents chkTrailerTMDBXBMC As System.Windows.Forms.CheckBox + Friend WithEvents gbExtrathumbsSize As System.Windows.Forms.GroupBox + Friend WithEvents cbManualETSize As System.Windows.Forms.ComboBox + Friend WithEvents gbYouTubeTrailer As System.Windows.Forms.GroupBox + Friend WithEvents cbTrailerTMDBPref As System.Windows.Forms.ComboBox + Friend WithEvents lblPrefLanguage As System.Windows.Forms.Label + Friend WithEvents gbGetPoster As System.Windows.Forms.GroupBox + Friend WithEvents chkUseMPDB As System.Windows.Forms.CheckBox + Friend WithEvents chkUseIMDBp As System.Windows.Forms.CheckBox + Friend WithEvents chkUseIMPA As System.Windows.Forms.CheckBox + Friend WithEvents chkTrailerIMDB As System.Windows.Forms.CheckBox + Friend WithEvents gbGetFanart As System.Windows.Forms.GroupBox + Friend WithEvents chkUseFANARTTV As System.Windows.Forms.CheckBox + +End Class \ No newline at end of file diff --git a/Addons/scraper.EmberCore.TMDB/frmTMDBMediaSettingsHolder.resx b/Addons/scraper.EmberCore.TMDB/frmTMDBMediaSettingsHolder.resx new file mode 100644 index 0000000..023cf14 --- /dev/null +++ b/Addons/scraper.EmberCore.TMDB/frmTMDBMediaSettingsHolder.resx @@ -0,0 +1,237 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + 6bKz54D4Hdc/dStsxIkAAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAryAAAK8gE9UvcRAAAChklE + QVQ4T6XOaUjTcRjA8ceDIo82FDtEMyubppsaSIYFSVCEHS/KF6Ok44VBWXZgzVuptLxgU/GYxxQyxQMi + Lcd0WtM2dQ1zmi11mRrSMlBKKUyenv0MQ/6+6w8fePgd3/8PEPG/rAyWeT3zbcEI/dOysDK9V3mFwUdu + Var3qOidyohcXPoOC4sWhhMYslQyppkaaDFF0SUBlr8JYOR6X2wcitCZZp7AsKWa4QS0kxlM7+ccePz2 + YKNUy8d8nRsj07pYI0Pqj7eh3XyD4QS6J7IZ3ZQUqvsP1+d0b8a81x5MbvdWLOoTGdvNidA2JmE4Ac14 + NsmhV8ig0nCkPlPjjlldXswjjSfm9wQbVWPJoBxNgBcjd7gB7UQZvBqXQdenQijRH6tP79yG91/uZO51 + etNLQoytI6nw/EMS/UTODUzODUP7WDG0maVQ1HeyLlm9A9M6BEyq2odesn+g2ZQGT4cfwI9fs9zA1Ow7 + uxZTrmeV4VpgluaoKq51N0qUfsxdpQDT1aEjCkNMYO2AxHfu51cbTqBp8OGlFFX4UrwyDG+1BGHsM/9V + bjaLMEF5ACWtodg0mCniBL7Mm3lV+sT4qJrtGN0QgJcbhKtEkwu1uzBNdap09ve0PSfQ/14HmtEmkBsS + 4yIrBShWBKC4SrhMIcRIhR+md5wtruhJgmZ148q9fwN9blv4cDFGDCl1V2JPlgViRKEQIwqEeEIuwqvV + pwvE14/DJnc+O8sJ2AHY0Lo9cXB2cLLdJxamHMoLwnBpMIac31PC42207jmS9dazawXsiCvxo1IwHfR1 + 8eCdcfXmn6PZn9b20p6QeFnPrhWwsicbiJMtWV4CW5odaXAmDmQd+fsChD+4WS+MAxa1eQAAAABJRU5E + rkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAryAAAK8gE9UvcRAAACgklE + QVQ4T6WOa0iTURjHn6VuLSMqTYQMqUwnL7NBZEUhg1IJP5Qf7AKSEmZEmVrMS4Gp29LKLdmaJUWalzRf + CS+Y2xLz+mZSps7mps4rKVkfRBD8IHs675sM7DUKOvDjPOec//M7DyDif+Eq5pds8HH2OfR+NYB1vhIm + F4zQPBp75bU1MuPLt2fCrqkseDOaBF1TBeD8m8D+g4aembuxpZ+PLJX0HXS2OJLSmZncfxP0zT6F9sns + 2Me9FOp6vAleWNQrwQZbfLZpLPnPgu9LI9A/Vw6m0bQ4/YcQ1HT7opbx49AwvkREYZUlJpeZfujq+U1g + 39gyrk7QMvsxv9MP73f5r+EeuSvoprDelqxyOlcEPMFbh/piQXcoZr/bicr23ahu34uqVX7VezCnbReq + OyRoHlOG8ATTC5/EjfZbsvKB+Ajte3lHVmsAkQVx3Gndh3mdBybK+i9E0NbrYQvLsx48wdziILROaMkk + OihkTlcrmgMwwxTMkW4MQmXb0YH64RwwO/JheWXR1ecqOiYqwGg3gHmkGPLbTtHX6gMxuZHiSGoIxtum + YxbaogTakgvMVA1fYBx/Ak0jRdBkLYYcczSdUCPBy7VSjks0hTcbwywv+9RQNaiCV8MqviAh8wxo6Eww + OspAURdNx5RI8PwLKcfZUgoTq4lg8AHk1abAoXApX8AukUgIadqrkFp3rjZSJ8Eog5TjpJ7CuIrjQ4pH + iSDeJOKyPIEbgEAA4L4BBB4nMg/XyPUylBeuopNhuDp0SOjmLiIZEZtdT+BG8CKBQPFmodwnZHuKN7WV + JdVHuu3Glh2eUeQtmGT82ex6AhZ3gpgEPciRbGtgP/AkCAmrEyD8BK5+NdGVjkx7AAAAAElFTkSuQmCC + + + \ No newline at end of file diff --git a/Addons/scraper.EmberCore.TMDB/frmTMDBMediaSettingsHolder.vb b/Addons/scraper.EmberCore.TMDB/frmTMDBMediaSettingsHolder.vb new file mode 100644 index 0000000..b500924 --- /dev/null +++ b/Addons/scraper.EmberCore.TMDB/frmTMDBMediaSettingsHolder.vb @@ -0,0 +1,177 @@ +' ################################################################################ +' # EMBER MEDIA MANAGER # +' ################################################################################ +' ################################################################################ +' # This file is part of Ember Media Manager. # +' # # +' # Ember Media Manager is free software: you can redistribute it and/or modify # +' # it under the terms of the GNU General Public License as published by # +' # the Free Software Foundation, either version 3 of the License, or # +' # (at your option) any later version. # +' # # +' # Ember Media Manager is distributed in the hope that it will be useful, # +' # but WITHOUT ANY WARRANTY; without even the implied warranty of # +' # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +' # GNU General Public License for more details. # +' # # +' # You should have received a copy of the GNU General Public License # +' # along with Ember Media Manager. If not, see . # +' ################################################################################ + +Imports System.IO +Imports EmberAPI + +Public Class frmTMDBMediaSettingsHolder + +#Region "Events" + + Public Event ModuleSettingsChanged() + + Public Event SetupPostScraperChanged(ByVal state As Boolean, ByVal difforder As Integer) + +#End Region 'Events + +#Region "Methods" + + Public Sub New() + InitializeComponent() + Me.SetUp() + End Sub + + Private Sub btnDown_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDown.Click + Dim order As Integer = ModulesManager.Instance.externalScrapersModules.FirstOrDefault(Function(p) p.AssemblyName = EmberTMDBScraperModule._AssemblyName).PostScraperOrder + If order < ModulesManager.Instance.externalScrapersModules.Where(Function(y) y.ProcessorModule.IsPostScraper).Count - 1 Then + ModulesManager.Instance.externalScrapersModules.FirstOrDefault(Function(p) p.PostScraperOrder = order + 1).PostScraperOrder = order + ModulesManager.Instance.externalScrapersModules.FirstOrDefault(Function(p) p.AssemblyName = EmberTMDBScraperModule._AssemblyName).PostScraperOrder = order + 1 + RaiseEvent SetupPostScraperChanged(cbEnabled.Checked, 1) + orderChanged() + End If + End Sub + + Private Sub btnUp_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUp.Click + Dim order As Integer = ModulesManager.Instance.externalScrapersModules.FirstOrDefault(Function(p) p.AssemblyName = EmberTMDBScraperModule._AssemblyName).PostScraperOrder + If order > 0 Then + ModulesManager.Instance.externalScrapersModules.FirstOrDefault(Function(p) p.PostScraperOrder = order - 1).PostScraperOrder = order + ModulesManager.Instance.externalScrapersModules.FirstOrDefault(Function(p) p.AssemblyName = EmberTMDBScraperModule._AssemblyName).PostScraperOrder = order - 1 + RaiseEvent SetupPostScraperChanged(cbEnabled.Checked, -1) + orderChanged() + End If + End Sub + + Private Sub cbEnabled_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbEnabled.CheckedChanged + RaiseEvent SetupPostScraperChanged(cbEnabled.Checked, 0) + End Sub + + Sub CheckTrailer() + Me.txtTimeout.Enabled = Me.chkDownloadTrailer.Checked + Me.chkTrailerTMDB.Enabled = Me.chkDownloadTrailer.Checked + Me.chkTrailerTMDBXBMC.Enabled = Me.chkTrailerTMDB.Checked + Me.chkTrailerIMDB.Enabled = Me.chkDownloadTrailer.Checked + If Not Me.chkDownloadTrailer.Checked Then + Me.txtTimeout.Text = "2" + Me.chkTrailerTMDB.Checked = False + Me.chkTrailerTMDBXBMC.Checked = False + Me.chkTrailerIMDB.Checked = False + End If + End Sub + + Private Sub chkDownloadTrailer_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkDownloadTrailer.CheckedChanged + RaiseEvent ModuleSettingsChanged() + CheckTrailer() + End Sub + + Private Sub chkTrailerTMDB_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkTrailerTMDB.CheckedChanged + chkTrailerTMDBXBMC.Enabled = chkTrailerTMDB.Checked + cbTrailerTMDBPref.Enabled = chkTrailerTMDB.Checked + If Not Me.chkTrailerTMDB.Checked Then + Me.chkTrailerTMDBXBMC.Checked = False + End If + RaiseEvent ModuleSettingsChanged() + End Sub + + Private Sub chkTrailerIMDB_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) + RaiseEvent ModuleSettingsChanged() + End Sub + + Private Sub chkTrailerTMDBXBMC_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkTrailerTMDBXBMC.CheckedChanged + RaiseEvent ModuleSettingsChanged() + End Sub + + Private Sub chkScrapeFanart_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkScrapeFanart.CheckedChanged + RaiseEvent ModuleSettingsChanged() + gbSaveFanartIn.Enabled = chkScrapeFanart.Checked + End Sub + + Private Sub chkScrapePoster_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkScrapePoster.CheckedChanged + RaiseEvent ModuleSettingsChanged() + End Sub + + Private Sub chkUseFANARTTV_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles chkUseFANARTTV.CheckedChanged + RaiseEvent ModuleSettingsChanged() + End Sub + + Private Sub chkUseIMDBp_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles chkUseIMDBp.CheckedChanged + RaiseEvent ModuleSettingsChanged() + End Sub + + Private Sub chkUseIMDBf_CheckedChanged(sender As System.Object, e As System.EventArgs) + RaiseEvent ModuleSettingsChanged() + End Sub + + Private Sub chkUseIMPA_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkUseIMPA.CheckedChanged + RaiseEvent ModuleSettingsChanged() + End Sub + + Private Sub chkUseMPDB_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkUseMPDB.CheckedChanged + RaiseEvent ModuleSettingsChanged() + End Sub + + Sub orderChanged() + Dim order As Integer = ModulesManager.Instance.externalScrapersModules.FirstOrDefault(Function(p) p.AssemblyName = EmberTMDBScraperModule._AssemblyName).PostScraperOrder + btnDown.Enabled = (order < ModulesManager.Instance.externalScrapersModules.Where(Function(y) y.ProcessorModule.IsPostScraper).Count - 1) + btnUp.Enabled = (order > 1) + End Sub + + Sub SetUp() + Me.cbEnabled.Text = Master.eLang.GetString(774, "Enabled", True) + Me.chkDownloadTrailer.Text = Master.eLang.GetString(529, "Enable Trailer Support", True) + Me.chkScrapeFanart.Text = Master.eLang.GetString(102, "Get Fanart") + Me.chkScrapePoster.Text = Master.eLang.GetString(101, "Get Posters") + Me.chkTrailerTMDBXBMC.Text = Master.eLang.GetString(111, "XBMC Format") + Me.gbExtrathumbsSize.Text = Master.eLang.GetString(108, "TMDB Extrathumbs Size:") + Me.gbGetFanart.Text = Master.eLang.GetString(124, "Get Fanart From:") + Me.gbGetPoster.Text = Master.eLang.GetString(125, "Get Poster From:") + Me.gbSupportedSites.Text = Master.eLang.GetString(8, "Supported Sites:") + Me.gbTrailers.Text = Master.eLang.GetString(109, "Trailers") + Me.gbImages.Text = Master.eLang.GetString(497, "Images", True) + Me.gbSaveFanartIn.Text = Master.eLang.GetString(113, "Save Fanart In:") + Me.lblInfo.Text = String.Format(Master.eLang.GetString(103, "These settings are specific to this module.{0}Please refer to the global settings for more options."), vbCrLf) + Me.lblPrefLanguage.Text = Master.eLang.GetString(112, "Preferred language") + Me.lblScraperOrder.Text = Master.eLang.GetString(168, "Scrape Order", True) + Me.lblTimeout.Text = Master.eLang.GetString(7, "Timeout:") + Me.txtTimeout.Text = Master.eSettings.TrailerTimeout.ToString + End Sub + + Private Sub txtTimeout_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtTimeout.TextChanged + RaiseEvent ModuleSettingsChanged() + End Sub + + Private Sub optFanartFolderExtraFanart_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles optFanartFolderExtraFanart.CheckedChanged + RaiseEvent ModuleSettingsChanged() + End Sub + + Private Sub optFanartFolderExtraThumbs_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles optFanartFolderExtraThumbs.CheckedChanged + RaiseEvent ModuleSettingsChanged() + End Sub + + Private Sub cbManualETSize_SelectedIndexChanged(ByVal sender As System.Object, e As System.EventArgs) Handles cbManualETSize.SelectedIndexChanged + RaiseEvent ModuleSettingsChanged() + End Sub + + Private Sub cbTrailerTMDBPref_SelectedIndexChanged(ByVal sender As System.Object, e As System.EventArgs) Handles cbTrailerTMDBPref.SelectedIndexChanged + RaiseEvent ModuleSettingsChanged() + End Sub + +#End Region 'Methods + +End Class \ No newline at end of file diff --git a/Addons/scraper.EmberCore.TMDB/packages.config b/Addons/scraper.EmberCore.TMDB/packages.config new file mode 100644 index 0000000..9d72b1b --- /dev/null +++ b/Addons/scraper.EmberCore.TMDB/packages.config @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/Addons/scraper.EmberCore.TMDB/scraper.EmberCore.TMDB.vbproj b/Addons/scraper.EmberCore.TMDB/scraper.EmberCore.TMDB.vbproj new file mode 100644 index 0000000..b720281 --- /dev/null +++ b/Addons/scraper.EmberCore.TMDB/scraper.EmberCore.TMDB.vbproj @@ -0,0 +1,305 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {2EB03DAA-1A5D-47C5-9883-56DCD0F70D23} + Library + EmberScraperModule + scraper.EmberCore.TMDB + 512 + Windows + v3.5 + On + Binary + On + On + + + 3.5 + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + ..\..\ + true + + + + + + + + + + + true + true + true + ..\..\EmberMM-Dev\Modules\ + 42353,42354,42355 + full + x86 + 41998,41999,42004,42016,42017,42018,42019,42020,42021,42022,42024,42025,42026,42029,42030,42031,42032,42036,42099,42104,42105,42106,42107,42108,42109 + ..\..\EmberMM\Modules\scraper.EmberCore.dll.CodeAnalysisLog.xml + true + GlobalSuppressions.vb + AllRules.ruleset + ;D:\Applications\Development\Microsoft Visual Studio 2010\Team Tools\Static Analysis Tools\\Rule Sets + ;D:\Applications\Development\Microsoft Visual Studio 2010\Team Tools\Static Analysis Tools\FxCop\\Rules + + + true + ..\..\EmberMM-Deploy\Modules\ + true + 42353,42354,42355 + pdbonly + x86 + 41998,41999,42004,42016,42017,42018,42019,42020,42021,42022,42024,42025,42026,42029,42030,42031,42032,42036,42099,42104,42105,42106,42107,42108,42109 + ..\..\EmberMM\Modules\scraper.EmberCore.dll.CodeAnalysisLog.xml + true + GlobalSuppressions.vb + AllRules.ruleset + ;D:\Applications\Development\Microsoft Visual Studio 2010\Team Tools\Static Analysis Tools\\Rule Sets + ;D:\Applications\Development\Microsoft Visual Studio 2010\Team Tools\Static Analysis Tools\FxCop\\Rules + + + + ..\..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll + + + ..\..\packages\RestSharp.104.1\lib\net35\RestSharp.dll + + + + + + + + 3.5 + + + 3.5 + + + + + + + + + + + + + + + + + + + + + + + + + + dlgTMDBSearchResults.vb + + + Form + + + dlgImgSelect.vb + + + Form + + + dlgTrailer.vb + + + Form + + + dlgTrailerFormat.vb + + + Form + + + frmTMDBMediaSettingsHolder.vb + + + Form + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + frmTMDBInfoSettingsHolder.vb + + + Form + + + + + + dlgTMDBSearchResults.vb + Designer + + + dlgImgSelect.vb + Designer + + + dlgTrailer.vb + Designer + + + dlgTrailerFormat.vb + Designer + + + frmTMDBMediaSettingsHolder.vb + Designer + + + frmTMDBInfoSettingsHolder.vb + Designer + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + Designer + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + My + Settings.Designer.vb + + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + true + + + False + Windows Installer 3.1 + true + + + + + {208AA35E-C6AE-4D2D-A9DD-B6EFD19A4279} + EmberAPI + False + + + {70F651C6-6BB4-4E4D-AD6C-25C36CA1E9E6} + FanartTVAPI + + + {EFC11645-FAB4-4C30-A498-29F5ECDF77E8} + WatTmdb + + + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + + + + + + + + + \ No newline at end of file diff --git a/Addons/scraper.EmberCore.TMDB/scraperMovieTMDBModule.vb b/Addons/scraper.EmberCore.TMDB/scraperMovieTMDBModule.vb new file mode 100644 index 0000000..7ac1344 --- /dev/null +++ b/Addons/scraper.EmberCore.TMDB/scraperMovieTMDBModule.vb @@ -0,0 +1,761 @@ +' ################################################################################ +' # EMBER MEDIA MANAGER # +' ################################################################################ +' ################################################################################ +' # This file is part of Ember Media Manager. # +' # # +' # Ember Media Manager is free software: you can redistribute it and/or modify # +' # it under the terms of the GNU General Public License as published by # +' # the Free Software Foundation, either version 3 of the License, or # +' # (at your option) any later version. # +' # # +' # Ember Media Manager is distributed in the hope that it will be useful, # +' # but WITHOUT ANY WARRANTY; without even the implied warranty of # +' # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +' # GNU General Public License for more details. # +' # # +' # You should have received a copy of the GNU General Public License # +' # along with Ember Media Manager. If not, see . # +' ################################################################################ + +Imports System.IO +Imports EmberAPI +Imports RestSharp +Imports WatTmdb +Imports EmberScraperModule.TMDBg + +''' +''' Native Scraper +''' +''' +Public Class EmberTMDBScraperModule + Implements Interfaces.EmberMovieScraperModule + + +#Region "Fields" + + Public Shared ConfigOptions As New Structures.ScrapeOptions + Public Shared ConfigScrapeModifier As New Structures.ScrapeModifier + Public Shared _AssemblyName As String + + Private dFImgSelect As dlgImgSelect = Nothing + + Private TMDBId As String + 'Private IMDBid As String + + ''' + ''' Scraping Here + ''' + ''' + Private _MySettings As New sMySettings + Private _TMDBg As TMDBg.Scraper + Private _Name As String = "Ember TMDB Movie Scrapers" + Private _PostScraperEnabled As Boolean = False + Private _ScraperEnabled As Boolean = False + Private _setup As frmTMDBInfoSettingsHolder + Private _setupPost As frmTMDBMediaSettingsHolder + Private _TMDBConf As V3.TmdbConfiguration + Private _TMDBConfE As V3.TmdbConfiguration + Private _TMDBApi As V3.Tmdb + Private _TMDBApiE As V3.Tmdb + +#End Region 'Fields + +#Region "Events" + + Public Event ModuleSettingsChanged() Implements Interfaces.EmberMovieScraperModule.ModuleSettingsChanged + + 'Public Event ScraperUpdateMediaList(ByVal col As Integer, ByVal v As Boolean) Implements Interfaces.EmberMovieScraperModule.MovieScraperEvent + Public Event MovieScraperEvent(ByVal eType As Enums.MovieScraperEventType, ByVal Parameter As Object) Implements Interfaces.EmberMovieScraperModule.MovieScraperEvent + + Public Event SetupPostScraperChanged(ByVal name As String, ByVal State As Boolean, ByVal difforder As Integer) Implements Interfaces.EmberMovieScraperModule.PostScraperSetupChanged + + Public Event SetupScraperChanged(ByVal name As String, ByVal State As Boolean, ByVal difforder As Integer) Implements Interfaces.EmberMovieScraperModule.ScraperSetupChanged + + Public Event SetupNeedsRestart() Implements Interfaces.EmberMovieScraperModule.SetupNeedsRestart + +#End Region 'Events + +#Region "Properties" + + ReadOnly Property IsPostScraper() As Boolean Implements Interfaces.EmberMovieScraperModule.IsPostScraper + Get + Return True + End Get + End Property + + ReadOnly Property IsScraper() As Boolean Implements Interfaces.EmberMovieScraperModule.IsScraper + Get + Return True + End Get + End Property + + ReadOnly Property ModuleName() As String Implements Interfaces.EmberMovieScraperModule.ModuleName + Get + Return _Name + End Get + End Property + + ReadOnly Property ModuleVersion() As String Implements Interfaces.EmberMovieScraperModule.ModuleVersion + Get + Return System.Diagnostics.FileVersionInfo.GetVersionInfo(System.Reflection.Assembly.GetExecutingAssembly.Location).FileVersion.ToString + End Get + End Property + + Property PostScraperEnabled() As Boolean Implements Interfaces.EmberMovieScraperModule.PostScraperEnabled + Get + Return _PostScraperEnabled + End Get + Set(ByVal value As Boolean) + _PostScraperEnabled = value + End Set + End Property + + Property ScraperEnabled() As Boolean Implements Interfaces.EmberMovieScraperModule.ScraperEnabled + Get + Return _ScraperEnabled + End Get + Set(ByVal value As Boolean) + _ScraperEnabled = value + End Set + End Property + +#End Region 'Properties + +#Region "Methods" + Function QueryPostScraperCapabilities(ByVal cap As Enums.PostScraperCapabilities) As Boolean Implements Interfaces.EmberMovieScraperModule.QueryPostScraperCapabilities + Select Case cap + Case Enums.PostScraperCapabilities.Fanart + Return True + Case Enums.PostScraperCapabilities.Poster + Return True + Case Enums.PostScraperCapabilities.Trailer + If _MySettings.DownloadTrailers Then Return True + End Select + Return False + End Function + + Function DownloadTrailer(ByRef DBMovie As Structures.DBMovie, ByRef sURL As String) As Interfaces.ModuleResult Implements Interfaces.EmberMovieScraperModule.DownloadTrailer + Using dTrailer As New dlgTrailer(_TMDBConf, _TMDBConfE, _TMDBApi, _TMDBApiE, _MySettings) + + sURL = dTrailer.ShowDialog(DBMovie.Movie.TMDBID, DBMovie.Filename) + End Using + Return New Interfaces.ModuleResult With {.breakChain = False} + End Function + + Function GetMovieStudio(ByRef DBMovie As Structures.DBMovie, ByRef studio As List(Of String)) As Interfaces.ModuleResult Implements Interfaces.EmberMovieScraperModule.GetMovieStudio + '' perche' lo crea? + + ''Dim TMDBg As New TMDBg.Scraper + ''TMDBg.IMDBURL = MySettings.IMDBURL + studio = _TMDBg.GetMovieStudios(DBMovie.Movie.ID) + Return New Interfaces.ModuleResult With {.breakChain = False} + End Function + + Private Sub Handle_ModuleSettingsChanged() + RaiseEvent ModuleSettingsChanged() + End Sub + + Private Sub Handle_PostModuleSettingsChanged() + RaiseEvent ModuleSettingsChanged() + End Sub + + Private Sub Handle_SetupNeedsRestart() + RaiseEvent SetupNeedsRestart() + End Sub + + + Private Sub Handle_SetupPostScraperChanged(ByVal state As Boolean, ByVal difforder As Integer) + PostScraperEnabled = state + RaiseEvent SetupPostScraperChanged(String.Concat(Me._Name, "PostScraper"), state, difforder) + End Sub + + Private Sub Handle_SetupScraperChanged(ByVal state As Boolean, ByVal difforder As Integer) + ScraperEnabled = state + RaiseEvent SetupScraperChanged(String.Concat(Me._Name, "Scraper"), state, difforder) + End Sub + + Sub Init(ByVal sAssemblyName As String) Implements Interfaces.EmberMovieScraperModule.Init + _AssemblyName = sAssemblyName + LoadSettings() + 'Must be after Load settings to retrieve the correct API key + _TMDBApi = New WatTmdb.V3.Tmdb(_MySettings.TMDBAPIKey, _MySettings.TMDBLanguage) + If IsNothing(_TMDBApi) Then + Master.eLog.WriteToErrorLog(Master.eLang.GetString(119, "TheMovieDB API is missing or not valid"), _TMDBApi.Error.status_message, "Info") + Else + If Not IsNothing(_TMDBApi.Error) AndAlso _TMDBApi.Error.status_message.Length > 0 Then + Master.eLog.WriteToErrorLog(_TMDBApi.Error.status_message, _TMDBApi.Error.status_code.ToString(), "Error") + End If + End If + _TMDBConf = _TMDBApi.GetConfiguration() + _TMDBApiE = New WatTmdb.V3.Tmdb(_MySettings.TMDBAPIKey) + _TMDBConfE = _TMDBApiE.GetConfiguration() + _TMDBg = New TMDBg.Scraper(_TMDBConf, _TMDBConfE, _TMDBApi, _TMDBApiE, _MySettings) + + End Sub + + Function InjectSetupPostScraper() As Containers.SettingsPanel Implements Interfaces.EmberMovieScraperModule.InjectSetupPostScraper + Dim Spanel As New Containers.SettingsPanel + _setupPost = New frmTMDBMediaSettingsHolder + LoadSettings() + _setupPost.cbEnabled.Checked = _PostScraperEnabled + _setupPost.chkTrailerIMDB.Checked = _MySettings.UseIMDBTrailer + _setupPost.chkTrailerTMDB.Checked = _MySettings.UseTMDBTrailer + _setupPost.cbTrailerTMDBPref.Text = _MySettings.UseTMDBTrailerPref + _setupPost.chkTrailerTMDBXBMC.Checked = _MySettings.UseTMDBTrailerXBMC + _setupPost.chkScrapePoster.Checked = ConfigScrapeModifier.Poster + _setupPost.chkScrapeFanart.Checked = ConfigScrapeModifier.Fanart + _setupPost.chkUseIMDBp.Checked = _MySettings.UseIMDB + _setupPost.chkUseIMPA.Checked = _MySettings.UseIMPA + _setupPost.chkUseMPDB.Checked = _MySettings.UseMPDB + _setupPost.chkUseFANARTTV.Checked = _MySettings.UseFANARTTV + + ' ad size from TMDB + '_setupPost.cbManualETSize.Items.Clear() + 'If Not IsNothing(_TMDBg.TMDBConf.images) Then + ' For Each aSi In _TMDBg.TMDBConf.images.poster_sizes + ' _setupPost.cbManualETSize.Items.Add(aSi) + ' Next + ' + 'End If + _setupPost.cbManualETSize.Text = _MySettings.ManualETSize + + _setupPost.txtTimeout.Text = _MySettings.TrailerTimeout.ToString + _setupPost.chkDownloadTrailer.Checked = _MySettings.DownloadTrailers + _setupPost.CheckTrailer() + _setupPost.orderChanged() + Spanel.Name = String.Concat(Me._Name, "PostScraper") + Spanel.Text = Master.eLang.GetString(104, "Ember TMDB Movie Scrapers") + Spanel.Prefix = "TMDBMovieMedia_" + Spanel.Order = 110 + Spanel.Parent = "pnlMovieMedia" + Spanel.Type = Master.eLang.GetString(36, "Movies", True) + Spanel.ImageIndex = If(Me._PostScraperEnabled, 9, 10) + Spanel.Panel = Me._setupPost.pnlSettings + + AddHandler _setupPost.SetupPostScraperChanged, AddressOf Handle_SetupPostScraperChanged + AddHandler _setupPost.ModuleSettingsChanged, AddressOf Handle_PostModuleSettingsChanged + AddHandler _setup.SetupNeedsRestart, AddressOf Handle_SetupNeedsRestart + Return Spanel + End Function + + Function InjectSetupScraper() As Containers.SettingsPanel Implements Interfaces.EmberMovieScraperModule.InjectSetupScraper + Dim SPanel As New Containers.SettingsPanel + _setup = New frmTMDBInfoSettingsHolder + LoadSettings() + _setup.cbEnabled.Checked = _ScraperEnabled + _setup.chkTitle.Checked = ConfigOptions.bTitle + _setup.chkYear.Checked = ConfigOptions.bYear + _setup.chkMPAA.Checked = ConfigOptions.bMPAA + _setup.chkRelease.Checked = ConfigOptions.bRelease + _setup.chkRuntime.Checked = ConfigOptions.bRuntime + _setup.chkRating.Checked = ConfigOptions.bRating + _setup.chkVotes.Checked = ConfigOptions.bVotes + _setup.chkStudio.Checked = ConfigOptions.bStudio + _setup.chkTagline.Checked = ConfigOptions.bTagline + _setup.chkOutline.Checked = ConfigOptions.bOutline + _setup.chkCast.Checked = ConfigOptions.bFullCast + _setup.chkGenre.Checked = ConfigOptions.bGenre + _setup.chkTrailer.Checked = ConfigOptions.bTrailer + _setup.chkCountry.Checked = ConfigOptions.bCountry + _setup.chkCrew.Checked = ConfigOptions.bFullCrew + _setup.chkFallBackEng.Checked = _MySettings.FallBackEng + _setup.cbTMDBPrefLanguage.Text = _MySettings.TMDBLanguage + + '_setup.chkCertification.Checked = ConfigOptions.bCert + + If String.IsNullOrEmpty(_MySettings.TMDBAPIKey) Then + _MySettings.TMDBAPIKey = Master.eLang.GetString(122, "Get your API Key from www.themoviedb.org") + End If + _setup.txtTMDBApiKey.Text = _MySettings.TMDBAPIKey + _setup.cbTMDBPrefLanguage.Text = _MySettings.TMDBLanguage + _setup.chkFallBackEng.Checked = _MySettings.FallBackEng + _setup.orderChanged() + If String.IsNullOrEmpty(_MySettings.FANARTTVApiKey) Then + _MySettings.FANARTTVApiKey = Master.eLang.GetString(123, "Get your API Key from fanart.tv") + End If + _setup.txtFANARTTVApiKey.Text = _MySettings.FANARTTVApiKey + + SPanel.Name = String.Concat(Me._Name, "Scraper") + SPanel.Text = Master.eLang.GetString(104, "Ember TMDB Movie Scrapers") + SPanel.Prefix = "TMDBMovieInfo_" + SPanel.Order = 110 + SPanel.Parent = "pnlMovieData" + SPanel.Type = Master.eLang.GetString(36, "Movies", True) + SPanel.ImageIndex = If(_ScraperEnabled, 9, 10) + SPanel.Panel = _setup.pnlSettings + AddHandler _setup.SetupScraperChanged, AddressOf Handle_SetupScraperChanged + AddHandler _setup.ModuleSettingsChanged, AddressOf Handle_ModuleSettingsChanged + AddHandler _setup.SetupNeedsRestart, AddressOf Handle_SetupNeedsRestart + Return SPanel + End Function + + Sub LoadSettings() + ConfigOptions.bTitle = AdvancedSettings.GetBooleanSetting("DoTitle", True) + ConfigOptions.bYear = AdvancedSettings.GetBooleanSetting("DoYear", True) + ConfigOptions.bMPAA = AdvancedSettings.GetBooleanSetting("DoMPAA", True) + ConfigOptions.bRelease = AdvancedSettings.GetBooleanSetting("DoRelease", True) + ConfigOptions.bRuntime = AdvancedSettings.GetBooleanSetting("DoRuntime", True) + ConfigOptions.bRating = AdvancedSettings.GetBooleanSetting("DoRating", True) + ConfigOptions.bVotes = AdvancedSettings.GetBooleanSetting("DoVotes", True) + ConfigOptions.bStudio = AdvancedSettings.GetBooleanSetting("DoStudio", True) + ConfigOptions.bTagline = AdvancedSettings.GetBooleanSetting("DoTagline", True) + ConfigOptions.bOutline = AdvancedSettings.GetBooleanSetting("DoOutline", True) + ConfigOptions.bPlot = AdvancedSettings.GetBooleanSetting("DoPlot", True) + ConfigOptions.bCast = AdvancedSettings.GetBooleanSetting("DoCast", True) + ConfigOptions.bDirector = AdvancedSettings.GetBooleanSetting("DoDirector", True) + ConfigOptions.bWriters = AdvancedSettings.GetBooleanSetting("DoWriters", True) + ConfigOptions.bProducers = AdvancedSettings.GetBooleanSetting("DoProducers", True) + ConfigOptions.bGenre = AdvancedSettings.GetBooleanSetting("DoGenres", True) + ConfigOptions.bTrailer = AdvancedSettings.GetBooleanSetting("DoTrailer", True) + ConfigOptions.bMusicBy = AdvancedSettings.GetBooleanSetting("DoMusic", True) + ConfigOptions.bOtherCrew = AdvancedSettings.GetBooleanSetting("DoOtherCrews", True) + ConfigOptions.bFullCast = AdvancedSettings.GetBooleanSetting("DoFullCast", True) + ConfigOptions.bFullCrew = AdvancedSettings.GetBooleanSetting("DoFullCrews", True) + ConfigOptions.bTop250 = AdvancedSettings.GetBooleanSetting("DoTop250", True) + ConfigOptions.bCountry = AdvancedSettings.GetBooleanSetting("DoCountry", True) + ConfigOptions.bCert = AdvancedSettings.GetBooleanSetting("DoCert", True) + ConfigOptions.bFullCast = AdvancedSettings.GetBooleanSetting("FullCast", True) + ConfigOptions.bFullCrew = AdvancedSettings.GetBooleanSetting("FullCrew", True) + + _MySettings.TMDBAPIKey = AdvancedSettings.GetSetting("TMDBAPIKey", "Get your API Key from http://www.themoviedb.org") + _MySettings.FANARTTVApiKey = AdvancedSettings.GetSetting("FANARTTVApiKey", "Get your API Key from http://fanart.tv") + _MySettings.FallBackEng = AdvancedSettings.GetBooleanSetting("FallBackEn", False) + _MySettings.TMDBLanguage = AdvancedSettings.GetSetting("TMDBLanguage", "en") + _MySettings.DownloadTrailers = AdvancedSettings.GetBooleanSetting("DownloadTraliers", False) + + _MySettings.TrailerTimeout = Convert.ToInt32(AdvancedSettings.GetSetting("TrailerTimeout", "10")) + _MySettings.UseTMDBTrailer = AdvancedSettings.GetBooleanSetting("UseTMDBTrailer", True) + _MySettings.UseTMDBTrailerXBMC = AdvancedSettings.GetBooleanSetting("UseTMDBTrailerXBMC", False) + _MySettings.UseIMPA = AdvancedSettings.GetBooleanSetting("UseIMPA", False) + _MySettings.UseMPDB = AdvancedSettings.GetBooleanSetting("UseMPDB", False) + _MySettings.UseIMDB = AdvancedSettings.GetBooleanSetting("UseIMDB", False) + _MySettings.UseFANARTTV = AdvancedSettings.GetBooleanSetting("UseFANARTTV", False) + _MySettings.UseIMDBTrailer = AdvancedSettings.GetBooleanSetting("UseIMDBTrailer", True) + _MySettings.ManualETSize = Convert.ToString(AdvancedSettings.GetSetting("ManualETSize", "thumb")) + _MySettings.UseTMDBTrailerPref = Convert.ToString(AdvancedSettings.GetSetting("UseTMDBTrailerPref", "en")) + + ConfigScrapeModifier.DoSearch = True + ConfigScrapeModifier.Meta = True + ConfigScrapeModifier.NFO = True + ConfigScrapeModifier.Extra = True + ConfigScrapeModifier.Actors = True + + ConfigScrapeModifier.Poster = AdvancedSettings.GetBooleanSetting("DoPoster", True) + ConfigScrapeModifier.Fanart = AdvancedSettings.GetBooleanSetting("DoFanart", True) + ConfigScrapeModifier.Trailer = AdvancedSettings.GetBooleanSetting("DoTrailer", True) + End Sub + + Function PostScraper(ByRef DBMovie As Structures.DBMovie, ByVal ScrapeType As Enums.ScrapeType) As Interfaces.ModuleResult Implements Interfaces.EmberMovieScraperModule.PostScraper + 'LoadSettings() + Dim Poster As New Images + Dim Fanart As New Images + Dim pResults As Containers.ImgResult + Dim fResults As Containers.ImgResult + Dim tURL As String = String.Empty + Dim Trailer As Trailers + Dim aScrapeImages As ScrapeImages + + LoadSettings() + If String.IsNullOrEmpty(DBMovie.Movie.TMDBID) Then + _TMDBg.GetMovieID(DBMovie) + End If + Trailer = New Trailers(_TMDBConf, _TMDBConfE, _TMDBApi, _TMDBApiE, _MySettings) + Dim saveModifier As Structures.ScrapeModifier = Master.GlobalScrapeMod + Master.GlobalScrapeMod = Functions.ScrapeModifierAndAlso(Master.GlobalScrapeMod, ConfigScrapeModifier) + + Dim doSave As Boolean = False + + aScrapeImages = New ScrapeImages(_TMDBConf, _TMDBConfE, _TMDBApi, _TMDBApiE, _MySettings) + If Master.GlobalScrapeMod.Poster Then + Poster.Clear() + If Poster.IsAllowedToDownload(DBMovie, Enums.ImageType.Posters) Then + pResults = New Containers.ImgResult + If aScrapeImages.GetPreferredImage(Poster, DBMovie.Movie.ID, DBMovie.Movie.TMDBID, Enums.ImageType.Posters, pResults, DBMovie.Filename, False, If(ScrapeType = Enums.ScrapeType.FullAsk OrElse ScrapeType = Enums.ScrapeType.NewAsk OrElse ScrapeType = Enums.ScrapeType.MarkAsk OrElse ScrapeType = Enums.ScrapeType.UpdateAsk, True, False)) Then + If Not IsNothing(Poster.Image) Then + pResults.ImagePath = Poster.SaveAsPoster(DBMovie) + If Not String.IsNullOrEmpty(pResults.ImagePath) Then + DBMovie.PosterPath = pResults.ImagePath + RaiseEvent MovieScraperEvent(Enums.MovieScraperEventType.PosterItem, True) '4, True) + If Master.GlobalScrapeMod.NFO AndAlso Not Master.eSettings.NoSaveImagesToNfo Then + DBMovie.Movie.Thumb = pResults.Posters + End If + End If + ElseIf ScrapeType = Enums.ScrapeType.FullAsk OrElse ScrapeType = Enums.ScrapeType.NewAsk OrElse ScrapeType = Enums.ScrapeType.MarkAsk OrElse ScrapeType = Enums.ScrapeType.UpdateAsk Then + MsgBox(Master.eLang.GetString(76, "A poster of your preferred size could not be found. Please choose another."), MsgBoxStyle.Information, Master.eLang.GetString(77, "No Preferred Size")) + Using dImgSelect As New dlgImgSelect(_TMDBConf, _TMDBConfE, _TMDBApi, _TMDBApi, _MySettings) + pResults = dImgSelect.ShowDialog(DBMovie, Enums.ImageType.Posters) + If Not String.IsNullOrEmpty(pResults.ImagePath) Then + DBMovie.PosterPath = pResults.ImagePath + RaiseEvent MovieScraperEvent(Enums.MovieScraperEventType.PosterItem, True) '4, True) + If Master.GlobalScrapeMod.NFO AndAlso Not Master.eSettings.NoSaveImagesToNfo Then + DBMovie.Movie.Thumb = pResults.Posters + End If + End If + End Using + End If + End If + End If + End If + Dim didEts As Boolean + If Master.GlobalScrapeMod.Fanart Then + Fanart.Clear() + If Fanart.IsAllowedToDownload(DBMovie, Enums.ImageType.Fanart) Then + fResults = New Containers.ImgResult + didEts = True + If aScrapeImages.GetPreferredImage(Fanart, DBMovie.Movie.IMDBID, DBMovie.Movie.TMDBID, Enums.ImageType.Fanart, fResults, DBMovie.Filename, Master.GlobalScrapeMod.Extra, If(ScrapeType = Enums.ScrapeType.FullAsk OrElse ScrapeType = Enums.ScrapeType.NewAsk OrElse ScrapeType = Enums.ScrapeType.MarkAsk OrElse ScrapeType = Enums.ScrapeType.UpdateAsk, True, False)) Then + If Not IsNothing(Fanart.Image) Then + fResults.ImagePath = Fanart.SaveAsFanart(DBMovie) + If Not String.IsNullOrEmpty(fResults.ImagePath) Then + DBMovie.FanartPath = fResults.ImagePath + RaiseEvent MovieScraperEvent(Enums.MovieScraperEventType.FanartItem, True) ' + If Master.GlobalScrapeMod.NFO AndAlso Not Master.eSettings.NoSaveImagesToNfo Then + DBMovie.Movie.Fanart = fResults.Fanart + End If + End If + ElseIf ScrapeType = Enums.ScrapeType.FullAsk OrElse ScrapeType = Enums.ScrapeType.NewAsk OrElse ScrapeType = Enums.ScrapeType.MarkAsk OrElse ScrapeType = Enums.ScrapeType.UpdateAsk Then + MsgBox(Master.eLang.GetString(78, "Fanart of your preferred size could not be found. Please choose another."), MsgBoxStyle.Information, Master.eLang.GetString(77, "No Preferred Size:")) + + Using dImgSelect As New dlgImgSelect(_TMDBConf, _TMDBConfE, _TMDBApi, _TMDBApi, _MySettings) + fResults = dImgSelect.ShowDialog(DBMovie, Enums.ImageType.Fanart) + If Not String.IsNullOrEmpty(fResults.ImagePath) Then + DBMovie.FanartPath = fResults.ImagePath + RaiseEvent MovieScraperEvent(Enums.MovieScraperEventType.FanartItem, True) + If Master.GlobalScrapeMod.NFO AndAlso Not Master.eSettings.NoSaveImagesToNfo Then + DBMovie.Movie.Fanart = fResults.Fanart + End If + End If + End Using + End If + End If + End If + End If + If Master.GlobalScrapeMod.Trailer AndAlso _MySettings.DownloadTrailers Then + tURL = Trailer.DownloadSingleTrailer(DBMovie.Filename, DBMovie.Movie.TMDBID, DBMovie.isSingle, DBMovie.Movie.Trailer) + If Not String.IsNullOrEmpty(tURL) Then + If tURL.Substring(0, 22) = "http://www.youtube.com" Then + If AdvancedSettings.GetBooleanSetting("UseTMDBTrailerXBMC", False) Then + DBMovie.Movie.Trailer = Replace(tURL, "http://www.youtube.com/watch?v=", "plugin://plugin.video.youtube/?action=play_video&videoid=") + Else + DBMovie.Movie.Trailer = tURL + End If + ElseIf tURL.Substring(0, 7) = "http://" Then + DBMovie.Movie.Trailer = tURL + Else + DBMovie.TrailerPath = tURL + RaiseEvent MovieScraperEvent(Enums.MovieScraperEventType.TrailerItem, True) + End If + End If + End If + If Master.GlobalScrapeMod.Extra Then + If Master.eSettings.AutoET AndAlso DBMovie.isSingle Then + Try + aScrapeImages.GetPreferredFAasET(DBMovie.Movie.TMDBID, DBMovie.Filename) + RaiseEvent MovieScraperEvent(Enums.MovieScraperEventType.ThumbsItem, True) + Catch ex As Exception + End Try + End If + End If + If Master.GlobalScrapeMod.Actors AndAlso Master.eSettings.ScraperActorThumbs Then + For Each act As MediaContainers.Person In DBMovie.Movie.Actors + Dim img As New Images + img.FromWeb(act.Thumb) + If Not IsNothing(img.Image) Then + img.SaveAsActorThumb(act, Directory.GetParent(DBMovie.Filename).FullName, DBMovie) + End If + Next + End If + Master.GlobalScrapeMod = saveModifier + Return New Interfaces.ModuleResult With {.breakChain = False, .BoolProperty = didEts} + End Function + + Sub SaveSettings() + AdvancedSettings.SetBooleanSetting("DoFullCast", ConfigOptions.bFullCast) + AdvancedSettings.SetBooleanSetting("DoFullCrews", ConfigOptions.bFullCrew) + AdvancedSettings.SetBooleanSetting("DoTitle", ConfigOptions.bTitle) + AdvancedSettings.SetBooleanSetting("DoYear", ConfigOptions.bYear) + AdvancedSettings.SetBooleanSetting("DoMPAA", ConfigOptions.bMPAA) + AdvancedSettings.SetBooleanSetting("DoRelease", ConfigOptions.bRelease) + AdvancedSettings.SetBooleanSetting("DoRuntime", ConfigOptions.bRuntime) + AdvancedSettings.SetBooleanSetting("DoRating", ConfigOptions.bRating) + AdvancedSettings.SetBooleanSetting("DoVotes", ConfigOptions.bVotes) + AdvancedSettings.SetBooleanSetting("DoStudio", ConfigOptions.bStudio) + AdvancedSettings.SetBooleanSetting("DoTagline", ConfigOptions.bTagline) + AdvancedSettings.SetBooleanSetting("DoOutline", ConfigOptions.bOutline) + AdvancedSettings.SetBooleanSetting("DoPlot", ConfigOptions.bPlot) + AdvancedSettings.SetBooleanSetting("DoCast", ConfigOptions.bCast) + AdvancedSettings.SetBooleanSetting("DoDirector", ConfigOptions.bDirector) + AdvancedSettings.SetBooleanSetting("DoWriters", ConfigOptions.bWriters) + AdvancedSettings.SetBooleanSetting("DoProducers", ConfigOptions.bProducers) + AdvancedSettings.SetBooleanSetting("DoGenres", ConfigOptions.bGenre) + AdvancedSettings.SetBooleanSetting("DoTrailer", ConfigOptions.bTrailer) + AdvancedSettings.SetBooleanSetting("DoMusic", ConfigOptions.bMusicBy) + AdvancedSettings.SetBooleanSetting("DoOtherCrews", ConfigOptions.bOtherCrew) + AdvancedSettings.SetBooleanSetting("DoCountry", ConfigOptions.bCountry) + AdvancedSettings.SetBooleanSetting("DoTop250", ConfigOptions.bTop250) + AdvancedSettings.SetBooleanSetting("DoCert", ConfigOptions.bCert) + + AdvancedSettings.SetBooleanSetting("FullCast", ConfigOptions.bFullCast) + AdvancedSettings.SetBooleanSetting("FullCrew", ConfigOptions.bFullCrew) + AdvancedSettings.SetBooleanSetting("DownloadTraliers", _MySettings.DownloadTrailers) + + AdvancedSettings.SetSetting("TrailerTimeout", _MySettings.TrailerTimeout.ToString) + AdvancedSettings.SetBooleanSetting("UseTMDBTrailer", _MySettings.UseTMDBTrailer) + AdvancedSettings.SetBooleanSetting("UseTMDBTrailerXBMC", _MySettings.UseTMDBTrailerXBMC) + AdvancedSettings.SetBooleanSetting("UseIMDBTrailer", _MySettings.UseIMDBTrailer) + + AdvancedSettings.SetSetting("ManualETSize", _MySettings.ManualETSize.ToString) + AdvancedSettings.SetSetting("UseTMDBTrailerPref", _MySettings.UseTMDBTrailerPref.ToString) + + AdvancedSettings.SetBooleanSetting("DoPoster", ConfigScrapeModifier.Poster) + AdvancedSettings.SetBooleanSetting("DoFanart", ConfigScrapeModifier.Fanart) + AdvancedSettings.SetBooleanSetting("DoTrailer", ConfigScrapeModifier.Trailer) + + AdvancedSettings.SetSetting("TMDBAPIKey", _MySettings.TMDBAPIKey) + AdvancedSettings.SetSetting("FANARTTVApiKey", _MySettings.FANARTTVApiKey) + AdvancedSettings.SetBooleanSetting("FallBackEn", _MySettings.FallBackEng) + AdvancedSettings.SetSetting("TMDBLanguage", _MySettings.TMDBLanguage) + AdvancedSettings.SetBooleanSetting("UseIMPA", _MySettings.UseIMPA) + AdvancedSettings.SetBooleanSetting("UseMPDB", _MySettings.UseMPDB) + AdvancedSettings.SetBooleanSetting("UseIMDB", _MySettings.UseIMDB) + AdvancedSettings.SetBooleanSetting("UseFANARTTV", _MySettings.UseFANARTTV) + End Sub + + Sub SaveSetupPostScraper(ByVal DoDispose As Boolean) Implements Interfaces.EmberMovieScraperModule.SaveSetupPostScraper + _MySettings.DownloadTrailers = _setupPost.chkDownloadTrailer.Checked + _MySettings.UseIMDBTrailer = _setupPost.chkTrailerIMDB.Checked + _MySettings.UseTMDBTrailer = _setupPost.chkTrailerTMDB.Checked + _MySettings.UseTMDBTrailerXBMC = _setupPost.chkTrailerTMDBXBMC.Checked + _MySettings.TrailerTimeout = Convert.ToInt32(_setupPost.txtTimeout.Text) + _MySettings.ManualETSize = _setupPost.cbManualETSize.Text + _MySettings.UseTMDBTrailerPref = _setupPost.cbTrailerTMDBPref.Text + _MySettings.UseIMDB = _setupPost.chkUseIMDBp.Checked + _MySettings.UseIMPA = _setupPost.chkUseIMPA.Checked + _MySettings.UseMPDB = _setupPost.chkUseMPDB.Checked + _MySettings.UseFANARTTV = _setupPost.chkUseFANARTTV.Checked + ConfigScrapeModifier.Poster = _setupPost.chkScrapePoster.Checked + ConfigScrapeModifier.Fanart = _setupPost.chkScrapeFanart.Checked + SaveSettings() + 'ModulesManager.Instance.SaveSettings() + If DoDispose Then + RemoveHandler _setupPost.SetupPostScraperChanged, AddressOf Handle_SetupPostScraperChanged + RemoveHandler _setupPost.ModuleSettingsChanged, AddressOf Handle_PostModuleSettingsChanged + _setupPost.Dispose() + End If + End Sub + + Sub SaveSetupScraper(ByVal DoDispose As Boolean) Implements Interfaces.EmberMovieScraperModule.SaveSetupScraper + If Not String.IsNullOrEmpty(_setup.txtTMDBApiKey.Text) Then + _MySettings.TMDBAPIKey = _setup.txtTMDBApiKey.Text + Else + _MySettings.TMDBAPIKey = Master.eLang.GetString(122, "Get your API Key from www.themoviedb.org") + End If + If Not String.IsNullOrEmpty(_setup.txtFANARTTVApiKey.Text) Then + _MySettings.FANARTTVApiKey = _setup.txtFANARTTVApiKey.Text + Else + _MySettings.FANARTTVApiKey = Master.eLang.GetString(123, "Get your API Key from fanart.tv") + End If + _MySettings.TMDBLanguage = _setup.cbTMDBPrefLanguage.Text + _MySettings.FallBackEng = _setup.chkFallBackEng.Checked + ConfigOptions.bTitle = _setup.chkTitle.Checked + ConfigOptions.bYear = _setup.chkYear.Checked + ConfigOptions.bMPAA = _setup.chkMPAA.Checked + ConfigOptions.bRelease = _setup.chkRelease.Checked + ConfigOptions.bRuntime = _setup.chkRuntime.Checked + ConfigOptions.bRating = _setup.chkRating.Checked + ConfigOptions.bVotes = _setup.chkVotes.Checked + ConfigOptions.bStudio = _setup.chkStudio.Checked + ConfigOptions.bTagline = _setup.chkTagline.Checked + ConfigOptions.bOutline = _setup.chkOutline.Checked + ConfigOptions.bPlot = False + ConfigOptions.bCast = _setup.chkCast.Checked + ConfigOptions.bDirector = _setup.chkCrew.Checked + ConfigOptions.bWriters = _setup.chkCrew.Checked + ConfigOptions.bProducers = _setup.chkCrew.Checked + ConfigOptions.bGenre = _setup.chkGenre.Checked + ConfigOptions.bTrailer = _setup.chkTrailer.Checked + ConfigOptions.bMusicBy = _setup.chkCrew.Checked + ConfigOptions.bOtherCrew = _setup.chkCrew.Checked + ConfigOptions.bCountry = _setup.chkCountry.Checked + ConfigOptions.bTop250 = False + ConfigOptions.bFullCrew = _setup.chkCrew.Checked + ConfigOptions.bFullCast = _setup.chkCast.Checked + ConfigOptions.bCert = ConfigOptions.bMPAA + _MySettings.FallBackEng = _setup.chkFallBackEng.Checked + _MySettings.TMDBLanguage = _setup.cbTMDBPrefLanguage.Text + SaveSettings() + 'ModulesManager.Instance.SaveSettings() + If DoDispose Then + RemoveHandler _setup.SetupScraperChanged, AddressOf Handle_SetupScraperChanged + RemoveHandler _setup.ModuleSettingsChanged, AddressOf Handle_ModuleSettingsChanged + _setup.Dispose() + End If + End Sub + + Function Scraper(ByRef DBMovie As Structures.DBMovie, ByRef ScrapeType As Enums.ScrapeType, ByRef Options As Structures.ScrapeOptions) As Interfaces.ModuleResult Implements Interfaces.EmberMovieScraperModule.Scraper + 'LoadSettings() + ''TMDBg.IMDBURL = MySettings.IMDBURL + ''TMDBg.UseOFDBTitle = MySettings.UseOFDBTitle + ''TMDBg.UseOFDBOutline = MySettings.UseOFDBOutline + ''TMDBg.UseOFDBPlot = MySettings.UseOFDBPlot + ''TMDBg.UseOFDBGenre = MySettings.UseOFDBGenre + Dim tTitle As String = String.Empty + Dim OldTitle As String = DBMovie.Movie.Title + + If IsNothing(_TMDBApi) Then + Master.eLog.WriteToErrorLog(Master.eLang.GetString(119, "TheMovieDB API is missing or not valid"), _TMDBApi.Error.status_message, "Error") + Return New Interfaces.ModuleResult With {.breakChain = False, .Cancelled = True} + Else + If Not IsNothing(_TMDBApi.Error) AndAlso _TMDBApi.Error.status_message.Length > 0 Then + Master.eLog.WriteToErrorLog(_TMDBApi.Error.status_message, _TMDBApi.Error.status_code.ToString(), "Error") + Return New Interfaces.ModuleResult With {.breakChain = False, .Cancelled = True} + End If + End If + + + If Master.GlobalScrapeMod.NFO AndAlso Not Master.GlobalScrapeMod.DoSearch Then + If Not String.IsNullOrEmpty(DBMovie.Movie.IMDBID) Then + _TMDBg.GetMovieInfo(DBMovie.Movie.ID, DBMovie.Movie, Options.bFullCrew, Options.bFullCast, False, Options, False) + ElseIf Not ScrapeType = Enums.ScrapeType.SingleScrape Then + DBMovie.Movie = _TMDBg.GetSearchMovieInfo(DBMovie.Movie.Title, DBMovie, ScrapeType, Options) + If String.IsNullOrEmpty(DBMovie.Movie.IMDBID) Then Return New Interfaces.ModuleResult With {.breakChain = False, .Cancelled = True} + End If + End If + + If ScrapeType = Enums.ScrapeType.SingleScrape AndAlso Master.GlobalScrapeMod.DoSearch _ + AndAlso ModulesManager.Instance.externalScrapersModules.OrderBy(Function(y) y.ScraperOrder).FirstOrDefault(Function(e) e.ProcessorModule.IsScraper AndAlso e.ProcessorModule.ScraperEnabled).AssemblyName = _AssemblyName Then + DBMovie.Movie.IMDBID = String.Empty + DBMovie.ClearExtras = True + DBMovie.PosterPath = String.Empty + DBMovie.FanartPath = String.Empty + DBMovie.TrailerPath = String.Empty + DBMovie.ExtraPath = String.Empty + DBMovie.SubPath = String.Empty + DBMovie.NfoPath = String.Empty + DBMovie.Movie.Clear() + End If + If String.IsNullOrEmpty(DBMovie.Movie.IMDBID) Then + Select Case ScrapeType + Case Enums.ScrapeType.FilterAuto, Enums.ScrapeType.FullAuto, Enums.ScrapeType.MarkAuto, Enums.ScrapeType.NewAuto, Enums.ScrapeType.UpdateAuto + Return New Interfaces.ModuleResult With {.breakChain = False} + End Select + If ScrapeType = Enums.ScrapeType.SingleScrape Then + Using dSearch As New dlgTMDBSearchResults(_MySettings, Me._TMDBg) + '' dSearch.IMDBURL = MySettings.IMDBURL + Dim tmpTitle As String = DBMovie.Movie.Title + If String.IsNullOrEmpty(tmpTitle) Then + If FileUtils.Common.isVideoTS(DBMovie.Filename) Then + tmpTitle = StringUtils.FilterName(Directory.GetParent(Directory.GetParent(DBMovie.Filename).FullName).Name, False) + ElseIf FileUtils.Common.isBDRip(DBMovie.Filename) Then + tmpTitle = StringUtils.FilterName(Directory.GetParent(Directory.GetParent(Directory.GetParent(DBMovie.Filename).FullName).FullName).Name, False) + Else + tmpTitle = StringUtils.FilterName(If(DBMovie.isSingle, Directory.GetParent(DBMovie.Filename).Name, Path.GetFileNameWithoutExtension(DBMovie.Filename))) + End If + End If + Dim filterOptions As Structures.ScrapeOptions = Functions.ScrapeOptionsAndAlso(Options, ConfigOptions) + If dSearch.ShowDialog(tmpTitle, filterOptions) = Windows.Forms.DialogResult.OK Then + If Not String.IsNullOrEmpty(Master.tmpMovie.IMDBID) Then + DBMovie.Movie.IMDBID = Master.tmpMovie.IMDBID + End If + If Not String.IsNullOrEmpty(DBMovie.Movie.IMDBID) Then + + Master.currMovie.ClearExtras = True + Master.currMovie.PosterPath = String.Empty + Master.currMovie.FanartPath = String.Empty + Master.currMovie.TrailerPath = String.Empty + Master.currMovie.ExtraPath = String.Empty + Master.currMovie.SubPath = String.Empty + Master.currMovie.NfoPath = String.Empty + + + _TMDBg.GetMovieInfo(DBMovie.Movie.ID, DBMovie.Movie, filterOptions.bFullCrew, filterOptions.bFullCast, False, filterOptions, False) + End If + Else + Return New Interfaces.ModuleResult With {.breakChain = False, .Cancelled = True} + End If + End Using + End If + End If + + If Not String.IsNullOrEmpty(DBMovie.Movie.Title) Then + tTitle = StringUtils.FilterTokens(DBMovie.Movie.Title) + If Not OldTitle = DBMovie.Movie.Title OrElse String.IsNullOrEmpty(DBMovie.Movie.SortTitle) Then DBMovie.Movie.SortTitle = tTitle + If Master.eSettings.DisplayYear AndAlso Not String.IsNullOrEmpty(DBMovie.Movie.Year) Then + DBMovie.ListTitle = String.Format("{0} ({1})", tTitle, DBMovie.Movie.Year) + Else + DBMovie.ListTitle = tTitle + End If + Else + If FileUtils.Common.isVideoTS(DBMovie.Filename) Then + DBMovie.ListTitle = StringUtils.FilterName(Directory.GetParent(Directory.GetParent(DBMovie.Filename).FullName).Name) + ElseIf FileUtils.Common.isBDRip(DBMovie.Filename) Then + DBMovie.ListTitle = StringUtils.FilterName(Directory.GetParent(Directory.GetParent(Directory.GetParent(DBMovie.Filename).FullName).FullName).Name) + Else + If DBMovie.UseFolder AndAlso DBMovie.isSingle Then + DBMovie.ListTitle = StringUtils.FilterName(Directory.GetParent(DBMovie.Filename).Name) + Else + DBMovie.ListTitle = StringUtils.FilterName(Path.GetFileNameWithoutExtension(DBMovie.Filename)) + End If + End If + If Not OldTitle = DBMovie.Movie.Title OrElse String.IsNullOrEmpty(DBMovie.Movie.SortTitle) Then DBMovie.Movie.SortTitle = DBMovie.ListTitle + End If + + Return New Interfaces.ModuleResult With {.breakChain = False} + End Function + + Function SelectImageOfType(ByRef mMovie As Structures.DBMovie, ByVal _DLType As Enums.ImageType, ByRef pResults As Containers.ImgResult, Optional ByVal _isEdit As Boolean = False, Optional ByVal preload As Boolean = False) As Interfaces.ModuleResult Implements Interfaces.EmberMovieScraperModule.SelectImageOfType + If String.IsNullOrEmpty(mMovie.Movie.TMDBID) Then + _TMDBg.GetMovieID(mMovie) + End If + If preload AndAlso _DLType = Enums.ImageType.Fanart AndAlso Not IsNothing(dFImgSelect) Then + pResults = dFImgSelect.ShowDialog() + dFImgSelect = Nothing + Else + Using dImgSelect As New dlgImgSelect(_TMDBConf, _TMDBConfE, _TMDBApi, _TMDBApiE, _MySettings) + If preload Then + dFImgSelect = New dlgImgSelect(_TMDBConf, _TMDBConfE, _TMDBApi, _TMDBApiE, _MySettings) + dFImgSelect.PreLoad(mMovie, Enums.ImageType.Fanart, _isEdit) + End If + '' dImgSelect.IMDBURL = MySettings.IMDBURL + pResults = dImgSelect.ShowDialog(mMovie, _DLType, _isEdit) + End Using + End If + Return New Interfaces.ModuleResult With {.breakChain = False} + End Function + Public Sub PostScraperOrderChanged() Implements EmberAPI.Interfaces.EmberMovieScraperModule.PostScraperOrderChanged + _setup.orderChanged() + End Sub + + Public Sub ScraperOrderChanged() Implements EmberAPI.Interfaces.EmberMovieScraperModule.ScraperOrderChanged + _setupPost.orderChanged() + End Sub + +#End Region 'Methods + +#Region "Nested Types" + + Structure sMySettings + +#Region "Fields" + Dim DownloadTrailers As Boolean + Dim TrailerTimeout As Integer + Dim UseTMDBTrailer As Boolean + Dim UseTMDBTrailerXBMC As Boolean + Dim ManualETSize As String + Dim UseTMDBTrailerPref As String + Dim TMDBAPIKey As String + Dim FANARTTVApiKey As String + Dim TMDBLanguage As String + Dim FallBackEng As Boolean + Dim UseIMDB As Boolean + Dim UseIMPA As Boolean + Dim UseMPDB As Boolean + Dim UseFANARTTV As Boolean + Dim UseIMDBTrailer As Boolean +#End Region 'Fields + + End Structure + +#End Region 'Nested Types + +End Class \ No newline at end of file diff --git a/Addons/scraper.EmberCore.XML/Langs/scraper.EmberCore.XML.Debug_(db_DB).xml b/Addons/scraper.EmberCore.XML/Langs/scraper.EmberCore.XML.Debug_(db_DB).xml new file mode 100644 index 0000000..2b6a351 --- /dev/null +++ b/Addons/scraper.EmberCore.XML/Langs/scraper.EmberCore.XML.Debug_(db_DB).xml @@ -0,0 +1,902 @@ + + xml1 + xml2 + xml3 + xml4 + xml5 + xml6 + xml7 + xml8 + xml9 + xml10 + xml11 + xml12 + xml13 + xml14 + xml15 + xml16 + xml17 + xml18 + xml19 + xml20 + xml21 + xml22 + xml23 + xml24 + xml25 + xml26 + xml27 + xml28 + xml29 + xml30 + xml31 + xml32 + xml33 + xml34 + xml35 + xml36 + xml37 + xml38 + xml39 + xml40 + xml41 + xml42 + xml43 + xml44 + xml45 + xml46 + xml47 + xml48 + xml49 + xml50 + xml51 + xml52 + xml53 + xml54 + xml55 + xml56 + xml57 + xml58 + xml59 + xml60 + xml61 + xml62 + xml63 + xml64 + xml65 + xml66 + xml67 + xml68 + xml69 + xml70 + xml71 + xml72 + xml73 + xml74 + xml75 + xml76 + xml77 + xml78 + xml79 + xml80 + xml81 + xml82 + xml83 + xml84 + xml85 + xml86 + xml87 + xml88 + xml89 + xml90 + xml91 + xml92 + xml93 + xml94 + xml95 + xml96 + xml97 + xml98 + xml99 + xml100 + xml101 + xml102 + xml103 + xml104 + xml105 + xml106 + xml107 + xml108 + xml109 + xml110 + xml111 + xml112 + xml113 + xml114 + xml115 + xml116 + xml117 + xml118 + xml119 + xml120 + xml121 + xml122 + xml123 + xml124 + xml125 + xml126 + xml127 + xml128 + xml129 + xml130 + xml131 + xml132 + xml133 + xml134 + xml135 + xml136 + xml137 + xml138 + xml139 + xml140 + xml141 + xml142 + xml143 + xml144 + xml145 + xml146 + xml147 + xml148 + xml149 + xml150 + xml151 + xml152 + xml153 + xml154 + xml155 + xml156 + xml157 + xml158 + xml159 + xml160 + xml161 + xml162 + xml163 + xml164 + xml165 + xml166 + xml167 + xml168 + xml169 + xml170 + xml171 + xml172 + xml173 + xml174 + xml175 + xml176 + xml177 + xml178 + xml179 + xml180 + xml181 + xml182 + xml183 + xml184 + xml185 + xml186 + xml187 + xml188 + xml189 + xml190 + xml191 + xml192 + xml193 + xml194 + xml195 + xml196 + xml197 + xml198 + xml199 + xml200 + xml201 + xml202 + xml203 + xml204 + xml205 + xml206 + xml207 + xml208 + xml209 + xml210 + xml211 + xml212 + xml213 + xml214 + xml215 + xml216 + xml217 + xml218 + xml219 + xml220 + xml221 + xml222 + xml223 + xml224 + xml225 + xml226 + xml227 + xml228 + xml229 + xml230 + xml231 + xml232 + xml233 + xml234 + xml235 + xml236 + xml237 + xml238 + xml239 + xml240 + xml241 + xml242 + xml243 + xml244 + xml245 + xml246 + xml247 + xml248 + xml249 + xml250 + xml251 + xml252 + xml253 + xml254 + xml255 + xml256 + xml257 + xml258 + xml259 + xml260 + xml261 + xml262 + xml263 + xml264 + xml265 + xml266 + xml267 + xml268 + xml269 + xml270 + xml271 + xml272 + xml273 + xml274 + xml275 + xml276 + xml277 + xml278 + xml279 + xml280 + xml281 + xml282 + xml283 + xml284 + xml285 + xml286 + xml287 + xml288 + xml289 + xml290 + xml291 + xml292 + xml293 + xml294 + xml295 + xml296 + xml297 + xml298 + xml299 + xml300 + xml301 + xml302 + xml303 + xml304 + xml305 + xml306 + xml307 + xml308 + xml309 + xml310 + xml311 + xml312 + xml313 + xml314 + xml315 + xml316 + xml317 + xml318 + xml319 + xml320 + xml321 + xml322 + xml323 + xml324 + xml325 + xml326 + xml327 + xml328 + xml329 + xml330 + xml331 + xml332 + xml333 + xml334 + xml335 + xml336 + xml337 + xml338 + xml339 + xml340 + xml341 + xml342 + xml343 + xml344 + xml345 + xml346 + xml347 + xml348 + xml349 + xml350 + xml351 + xml352 + xml353 + xml354 + xml355 + xml356 + xml357 + xml358 + xml359 + xml360 + xml361 + xml362 + xml363 + xml364 + xml365 + xml366 + xml367 + xml368 + xml369 + xml370 + xml371 + xml372 + xml373 + xml374 + xml375 + xml376 + xml377 + xml378 + xml379 + xml380 + xml381 + xml382 + xml383 + xml384 + xml385 + xml386 + xml387 + xml388 + xml389 + xml390 + xml391 + xml392 + xml393 + xml394 + xml395 + xml396 + xml397 + xml398 + xml399 + xml400 + xml401 + xml402 + xml403 + xml404 + xml405 + xml406 + xml407 + xml408 + xml409 + xml410 + xml411 + xml412 + xml413 + xml414 + xml415 + xml416 + xml417 + xml418 + xml419 + xml420 + xml421 + xml422 + xml423 + xml424 + xml425 + xml426 + xml427 + xml428 + xml429 + xml430 + xml431 + xml432 + xml433 + xml434 + xml435 + xml436 + xml437 + xml438 + xml439 + xml440 + xml441 + xml442 + xml443 + xml444 + xml445 + xml446 + xml447 + xml448 + xml449 + xml450 + xml451 + xml452 + xml453 + xml454 + xml455 + xml456 + xml457 + xml458 + xml459 + xml460 + xml461 + xml462 + xml463 + xml464 + xml465 + xml466 + xml467 + xml468 + xml469 + xml470 + xml471 + xml472 + xml473 + xml474 + xml475 + xml476 + xml477 + xml478 + xml479 + xml480 + xml481 + xml482 + xml483 + xml484 + xml485 + xml486 + xml487 + xml488 + xml489 + xml490 + xml491 + xml492 + xml493 + xml494 + xml495 + xml496 + xml497 + xml498 + xml499 + xml500 + xml501 + xml502 + xml503 + xml504 + xml505 + xml506 + xml507 + xml508 + xml509 + xml510 + xml511 + xml512 + xml513 + xml514 + xml515 + xml516 + xml517 + xml518 + xml519 + xml520 + xml521 + xml522 + xml523 + xml524 + xml525 + xml526 + xml527 + xml528 + xml529 + xml530 + xml531 + xml532 + xml533 + xml534 + xml535 + xml536 + xml537 + xml538 + xml539 + xml540 + xml541 + xml542 + xml543 + xml544 + xml545 + xml546 + xml547 + xml548 + xml549 + xml550 + xml551 + xml552 + xml553 + xml554 + xml555 + xml556 + xml557 + xml558 + xml559 + xml560 + xml561 + xml562 + xml563 + xml564 + xml565 + xml566 + xml567 + xml568 + xml569 + xml570 + xml571 + xml572 + xml573 + xml574 + xml575 + xml576 + xml577 + xml578 + xml579 + xml580 + xml581 + xml582 + xml583 + xml584 + xml585 + xml586 + xml587 + xml588 + xml589 + xml590 + xml591 + xml592 + xml593 + xml594 + xml595 + xml596 + xml597 + xml598 + xml599 + xml600 + xml601 + xml602 + xml603 + xml604 + xml605 + xml606 + xml607 + xml608 + xml609 + xml610 + xml611 + xml612 + xml613 + xml614 + xml615 + xml616 + xml617 + xml618 + xml619 + xml620 + xml621 + xml622 + xml623 + xml624 + xml625 + xml626 + xml627 + xml628 + xml629 + xml630 + xml631 + xml632 + xml633 + xml634 + xml635 + xml636 + xml637 + xml638 + xml639 + xml640 + xml641 + xml642 + xml643 + xml644 + xml645 + xml646 + xml647 + xml648 + xml649 + xml650 + xml651 + xml652 + xml653 + xml654 + xml655 + xml656 + xml657 + xml658 + xml659 + xml660 + xml661 + xml662 + xml663 + xml664 + xml665 + xml666 + xml667 + xml668 + xml669 + xml670 + xml671 + xml672 + xml673 + xml674 + xml675 + xml676 + xml677 + xml678 + xml679 + xml680 + xml681 + xml682 + xml683 + xml684 + xml685 + xml686 + xml687 + xml688 + xml689 + xml690 + xml691 + xml692 + xml693 + xml694 + xml695 + xml696 + xml697 + xml698 + xml699 + xml700 + xml701 + xml702 + xml703 + xml704 + xml705 + xml706 + xml707 + xml708 + xml709 + xml710 + xml711 + xml712 + xml713 + xml714 + xml715 + xml716 + xml717 + xml718 + xml719 + xml720 + xml721 + xml722 + xml723 + xml724 + xml725 + xml726 + xml727 + xml728 + xml729 + xml730 + xml731 + xml732 + xml733 + xml734 + xml735 + xml736 + xml737 + xml738 + xml739 + xml740 + xml741 + xml742 + xml743 + xml744 + xml745 + xml746 + xml747 + xml748 + xml749 + xml750 + xml751 + xml752 + xml753 + xml754 + xml755 + xml756 + xml757 + xml758 + xml759 + xml760 + xml761 + xml762 + xml763 + xml764 + xml765 + xml766 + xml767 + xml768 + xml769 + xml770 + xml771 + xml772 + xml773 + xml774 + xml775 + xml776 + xml777 + xml778 + xml779 + xml780 + xml781 + xml782 + xml783 + xml784 + xml785 + xml786 + xml787 + xml788 + xml789 + xml790 + xml791 + xml792 + xml793 + xml794 + xml795 + xml796 + xml797 + xml798 + xml799 + xml800 + xml801 + xml802 + xml803 + xml804 + xml805 + xml806 + xml807 + xml808 + xml809 + xml810 + xml811 + xml812 + xml813 + xml814 + xml815 + xml816 + xml817 + xml818 + xml819 + xml820 + xml821 + xml822 + xml823 + xml824 + xml825 + xml826 + xml827 + xml828 + xml829 + xml830 + xml831 + xml832 + xml833 + xml834 + xml835 + xml836 + xml837 + xml838 + xml839 + xml840 + xml841 + xml842 + xml843 + xml844 + xml845 + xml846 + xml847 + xml848 + xml849 + xml850 + xml851 + xml852 + xml853 + xml854 + xml855 + xml856 + xml857 + xml858 + xml859 + xml860 + xml861 + xml862 + xml863 + xml864 + xml865 + xml866 + xml867 + xml868 + xml869 + xml870 + xml871 + xml872 + xml873 + xml874 + xml875 + xml876 + xml877 + xml878 + xml879 + xml880 + xml881 + xml882 + xml883 + xml884 + xml885 + xml886 + xml887 + xml888 + xml889 + xml890 + xml891 + xml892 + xml893 + xml894 + xml895 + xml896 + xml897 + xml898 + xml899 + xml900 + \ No newline at end of file diff --git a/Addons/scraper.EmberCore.XML/Langs/scraper.EmberCore.XML.Dutch_(nl_NL).xml b/Addons/scraper.EmberCore.XML/Langs/scraper.EmberCore.XML.Dutch_(nl_NL).xml new file mode 100644 index 0000000..136071b --- /dev/null +++ b/Addons/scraper.EmberCore.XML/Langs/scraper.EmberCore.XML.Dutch_(nl_NL).xml @@ -0,0 +1,18 @@ + + Ember XML Film Scanners + + Genre(s): + Bekijk de details van ieder resultaat om de juiste film te vinden. + Zoekresultaten films + Aan het Zoeken... + Details aan het downloaden... + Zoekresultaten + Configureer deze Scanner Instellingen in + Aan het laden, wacht a.u.b. + Scanner velden - Scanner specifiek + Deze instellingen zijn specifiek voor deze module.{0}Bekijk de algemene instellingen voor meer opties. + Scanner + Vul de Scanners in + Instellingen + Instellingen + diff --git a/Addons/scraper.EmberCore.XML/Langs/scraper.EmberCore.XML.English_(en_US).xml b/Addons/scraper.EmberCore.XML/Langs/scraper.EmberCore.XML.English_(en_US).xml index 6491906..6418f5c 100644 --- a/Addons/scraper.EmberCore.XML/Langs/scraper.EmberCore.XML.English_(en_US).xml +++ b/Addons/scraper.EmberCore.XML/Langs/scraper.EmberCore.XML.English_(en_US).xml @@ -1,19 +1,18 @@ - - Ember XML Movie Scrapers - - Genre(s): - View details of each result to find the proper movie. - Movie Search Results - Searching ... - Downloading details... - Search Results - - Configure this Scraper Settings in - Loading Please Wait - Scraper Fields - Scraper specific - These settings are specific to this module.{0}Please refer to the global settings for more options. - Scraper - Populate scrapers - Settings - Settings - \ No newline at end of file + Ember XML Movie Scrapers + + Genre(s): + View details of each result to find the proper movie. + Movie Search Results + Searching ... + Downloading details... + Search Results + Configure this Scraper Settings in + Loading Please Wait + Scraper Fields - Scraper specific + These settings are specific to this module.{0}Please refer to the global settings for more options. + Scraper + Populate scrapers + Settings + Settings + diff --git a/Addons/scraper.EmberCore.XML/Langs/scraper.EmberCore.XML.German_(de_DE).xml b/Addons/scraper.EmberCore.XML/Langs/scraper.EmberCore.XML.German_(de_DE).xml index 671e6cb..034035b 100644 --- a/Addons/scraper.EmberCore.XML/Langs/scraper.EmberCore.XML.German_(de_DE).xml +++ b/Addons/scraper.EmberCore.XML/Langs/scraper.EmberCore.XML.German_(de_DE).xml @@ -1,16 +1,18 @@ - - Ember XML Film Scrapers - - Genre(s): - Zeigt Details jedes Ergebnisses an, um den richtigen Film zu finden. - Film Such Ergebnis - Suchen... - Downloading details... - Suche Ergebnisse - - Configuriere diese Scraper Einstellungen in - Lade Bitte Warten - Scraper Felder - Scraper spezifisch - Diese Einstellungen sind zu diesem Modul spezifisch.{0}Beziehe dich bitte auf die globalen Einstellungen für mehr Optionen. + Ember XML Film Scrapers + + Genre(s): + Zeigt Details jedes Ergebnisses an, um den richtigen Film zu finden. + Film Suchergebnisse + Suchen... + Downloading details... + Suchergebnis + Configuriere diese Scraper Einstellungen in + Lade Bitte Warten + Scraper Felder - Scraper spezifisch + Diese Einstellungen sind zu diesem Modul spezifisch.{0}Beziehe dich bitte auf die globalen Einstellungen für mehr Optionen. + Scraper + Setze Scraper + Einstellungen + Einstellungen - \ No newline at end of file diff --git a/Addons/scraper.EmberCore.XML/Langs/scraper.EmberCore.XML.Italian_(it_IT).xml b/Addons/scraper.EmberCore.XML/Langs/scraper.EmberCore.XML.Italian_(it_IT).xml new file mode 100644 index 0000000..7b75cd1 --- /dev/null +++ b/Addons/scraper.EmberCore.XML/Langs/scraper.EmberCore.XML.Italian_(it_IT).xml @@ -0,0 +1,18 @@ + + Analizzatori Film Ember XML + + Genere(i): + Visualizza i dettagli di ogni risultato per trovare il film corretto. + Risultati della ricerca del Film + Cerco... + Scaricamento dettagli... + Cerca Risultati + Configura questo analizzatore in + Caricamento, attendere. + Campi Analizzatore - Specifico + Queste impostazioni sono specifiche di questo modulo.{0} Fai riferimento alle impostazioni globali per ulteriori opzioni. + Analizzatore + Riempi Analizzatori + Impostazioni + Impostazioni + diff --git a/Addons/scraper.EmberCore.XML/Langs/scraper.EmberCore.XML.Norwegian_(no_NO).xml b/Addons/scraper.EmberCore.XML/Langs/scraper.EmberCore.XML.Norwegian_(no_NO).xml new file mode 100644 index 0000000..4230d70 --- /dev/null +++ b/Addons/scraper.EmberCore.XML/Langs/scraper.EmberCore.XML.Norwegian_(no_NO).xml @@ -0,0 +1,18 @@ + + EMM XML Detaljhentere + + Sjangre: + Se detaljer fra hvert treff for å finne riktig film. + Filmsøkresultater + Søker... + Laster ned detaljer... + Søkeresultater + Konfigurer denne detaljhenteren i + Laster... Vennligst vent... + Detaljhenterområder - Detaljhenterspesifikk + Disse innstillingene er spesifikk til denne modulen.{0}Vennligst se globale innstillinger for flere valg. + Detaljhenter + Hent detaljhentere + Innstillinger + Innstillinger + diff --git "a/Addons/scraper.EmberCore.XML/Langs/scraper.EmberCore.XML.Portugu\303\252s_(pt_BR).xml" "b/Addons/scraper.EmberCore.XML/Langs/scraper.EmberCore.XML.Portugu\303\252s_(pt_BR).xml" deleted file mode 100644 index a91dc2d..0000000 --- "a/Addons/scraper.EmberCore.XML/Langs/scraper.EmberCore.XML.Portugu\303\252s_(pt_BR).xml" +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/Addons/scraper.EmberCore.XML/Langs/scraper.EmberCore.XML.Spanish_(es_ES).xml b/Addons/scraper.EmberCore.XML/Langs/scraper.EmberCore.XML.Spanish_(es_ES).xml new file mode 100644 index 0000000..96c9eee --- /dev/null +++ b/Addons/scraper.EmberCore.XML/Langs/scraper.EmberCore.XML.Spanish_(es_ES).xml @@ -0,0 +1,18 @@ + + Scrapers XML de Ember para Películas + + Género(s): + Ver detalles de cada resultado para encontrar la película correcta. + Resultados de Búsqueda de Películas + Buscando ... + Descargando detalles ... + Resultados de Búsqueda + Configurar los Ajustes de este Scraper en + Cargando, Por favor Esperar + Campos de Scraper - Específicos del Scraper + Estos ajustes son específicos para este módulo.{0} Por favor referirse a los ajustes globales para más opciones. + Scraper + Cargar lista de scrapers + Ajustes + Ajustes + diff --git a/Addons/scraper.EmberCore.XML/My Project/AssemblyInfo.vb b/Addons/scraper.EmberCore.XML/My Project/AssemblyInfo.vb index 390ef2d..c4ec335 100644 --- a/Addons/scraper.EmberCore.XML/My Project/AssemblyInfo.vb +++ b/Addons/scraper.EmberCore.XML/My Project/AssemblyInfo.vb @@ -9,7 +9,7 @@ Imports System.Runtime.InteropServices ' Review the values of the assembly attributes - + diff --git a/Addons/scraper.EmberCore.XML/XMLScraper/MediaTags/AlbumTag.vb b/Addons/scraper.EmberCore.XML/XMLScraper/MediaTags/AlbumTag.vb index ace4c25..57f0fdf 100644 --- a/Addons/scraper.EmberCore.XML/XMLScraper/MediaTags/AlbumTag.vb +++ b/Addons/scraper.EmberCore.XML/XMLScraper/MediaTags/AlbumTag.vb @@ -234,29 +234,29 @@ Namespace XMLScraper Return changed End Function - Public Overloads Overrides Sub Deserialize(ByVal element As XElement) - Title = element.GetStringElement("title", Title) - Artist = element.GetStringElement("artist", Artist) - Label = element.GetStringElement("label", Label) - Type = element.GetStringElement("type", Type) - ReleaseDate = element.GetStringElement("releaseddate", ReleaseDate) - Year = element.GetIntElement("year", Year) - Review = element.GetStringElement("review", Review) - - element.UpdateThumbList("thumb", Thumbs) - - element.UpdateStringList("genre", Genres) - element.UpdateStringList("style", Styles) - element.UpdateStringList("mood", Moods) - element.UpdateStringList("theme", Themes) - - For Each item As XElement In element.Elements("track") - Dim newtrack As New AlbumTrack(item) - If Not Tracks.Contains(newtrack) Then - Tracks.Add(newtrack) - End If - Next - End Sub + Public Overloads Overrides Sub Deserialize(ByVal element As XElement) + Title = element.GetStringElement("title", Title) + Artist = element.GetStringElement("artist", Artist) + Label = element.GetStringElement("label", Label) + Type = element.GetStringElement("type", Type) + ReleaseDate = element.GetStringElement("releaseddate", ReleaseDate) + Year = element.GetIntElement("year", Year) + Review = element.GetStringElement("review", Review) + + element.UpdateThumbList("thumb", Thumbs) + + element.UpdateStringList("genre", Genres) + element.UpdateStringList("style", Styles) + element.UpdateStringList("mood", Moods) + element.UpdateStringList("theme", Themes) + + For Each item As XElement In element.Elements("track") + Dim newtrack As New AlbumTrack(item) + If Not Tracks.Contains(newtrack) Then + Tracks.Add(newtrack) + End If + Next + End Sub Public Overloads Sub Deserialize(ByVal xInfo As XDocument) Deserialize(xInfo.Root) diff --git a/Addons/scraper.EmberCore.XML/clsScrapeImages.vb b/Addons/scraper.EmberCore.XML/clsScrapeImages.vb index 8aa2147..4558580 100644 --- a/Addons/scraper.EmberCore.XML/clsScrapeImages.vb +++ b/Addons/scraper.EmberCore.XML/clsScrapeImages.vb @@ -84,7 +84,7 @@ Public Class ScrapeImages If Not IsNothing(Fanart.Image) Then _Image = Fanart.Image Dim savePath As String = Path.Combine(CachePath, String.Concat("fanart_(url=", StringUtils.CleanURL(miFanart.Url), ").jpg")) - Save(_Image, savePath) + Fanart.Save(savePath, , , False) If Master.eSettings.AutoET Then If Not ETHashes.Contains(HashFile.HashCalcFile(savePath)) Then SaveFAasET(savePath, sPath) @@ -109,7 +109,7 @@ Public Class ScrapeImages If Not IsNothing(Fanart.Image) Then _Image = Fanart.Image savePath = Path.Combine(CachePath, String.Concat("fanart_(url=", StringUtils.CleanURL(miFanart.Url), ").jpg")) - Save(_Image, savePath) + Fanart.Save(savePath, , , False) If Not ETHashes.Contains(HashFile.HashCalcFile(savePath)) Then SaveFAasET(savePath, sPath) End If @@ -146,48 +146,48 @@ Public Class ScrapeImages End Sub - Public Shared Sub Save(ByVal _image As Image, ByVal sPath As String, Optional ByVal iQuality As Long = 0) - Try - If IsNothing(_image) Then Exit Sub - - Dim doesExist As Boolean = File.Exists(sPath) - Dim fAtt As New FileAttributes - If Not String.IsNullOrEmpty(sPath) AndAlso (Not doesExist OrElse (Not CBool(File.GetAttributes(sPath) And FileAttributes.ReadOnly))) Then - If doesExist Then - 'get the current attributes to set them back after writing - fAtt = File.GetAttributes(sPath) - 'set attributes to none for writing - File.SetAttributes(sPath, FileAttributes.Normal) - End If - - Using msSave As New MemoryStream - Dim retSave() As Byte - Dim ICI As ImageCodecInfo = GetEncoderInfo(ImageFormat.Jpeg) - Dim EncPars As EncoderParameters = New EncoderParameters(If(iQuality > 0, 2, 1)) - - EncPars.Param(0) = New EncoderParameter(Encoder.RenderMethod, EncoderValue.RenderNonProgressive) - - If iQuality > 0 Then - EncPars.Param(1) = New EncoderParameter(Encoder.Quality, iQuality) - End If - - _image.Save(msSave, ICI, EncPars) - - retSave = msSave.ToArray - - Using fs As New FileStream(sPath, FileMode.Create, FileAccess.Write) - fs.Write(retSave, 0, retSave.Length) - fs.Flush() - End Using - msSave.Flush() - End Using - - If doesExist Then File.SetAttributes(sPath, fAtt) - End If - Catch ex As Exception - Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") - End Try - End Sub + 'Public Shared Sub Save(ByVal _image As Image, ByVal sPath As String, Optional ByVal iQuality As Long = 0) + ' Try + ' If IsNothing(_image) Then Exit Sub + + ' Dim doesExist As Boolean = File.Exists(sPath) + ' Dim fAtt As New FileAttributes + ' If Not String.IsNullOrEmpty(sPath) AndAlso (Not doesExist OrElse (Not CBool(File.GetAttributes(sPath) And FileAttributes.ReadOnly))) Then + ' If doesExist Then + ' 'get the current attributes to set them back after writing + ' fAtt = File.GetAttributes(sPath) + ' 'set attributes to none for writing + ' File.SetAttributes(sPath, FileAttributes.Normal) + ' End If + + ' Using msSave As New MemoryStream + ' Dim retSave() As Byte + ' Dim ICI As ImageCodecInfo = GetEncoderInfo(ImageFormat.Jpeg) + ' Dim EncPars As EncoderParameters = New EncoderParameters(If(iQuality > 0, 2, 1)) + + ' EncPars.Param(0) = New EncoderParameter(Encoder.RenderMethod, EncoderValue.RenderNonProgressive) + + ' If iQuality > 0 Then + ' EncPars.Param(1) = New EncoderParameter(Encoder.Quality, iQuality) + ' End If + + ' _image.Save(msSave, ICI, EncPars) + + ' retSave = msSave.ToArray + + ' Using fs As New FileStream(sPath, FileMode.Create, FileAccess.Write) + ' fs.Write(retSave, 0, retSave.Length) + ' fs.Flush() + ' End Using + ' msSave.Flush() + ' End Using + + ' If doesExist Then File.SetAttributes(sPath, fAtt) + ' End If + ' Catch ex As Exception + ' Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + ' End Try + 'End Sub Private Shared Function GetEncoderInfo(ByVal Format As ImageFormat) As ImageCodecInfo Dim Encoders() As ImageCodecInfo = ImageCodecInfo.GetImageEncoders() diff --git a/Addons/scraper.EmberCore.XML/dlgImgSelect.vb b/Addons/scraper.EmberCore.XML/dlgImgSelect.vb index c44ba96..cb56178 100644 --- a/Addons/scraper.EmberCore.XML/dlgImgSelect.vb +++ b/Addons/scraper.EmberCore.XML/dlgImgSelect.vb @@ -89,82 +89,82 @@ Public Class dlgImgSelect Return Results End Function - Private Sub AddImage(ByVal iImage As Image, ByVal sDescription As String, ByVal iIndex As Integer, ByVal sURL As String, ByVal isChecked As Boolean) - Try - ReDim Preserve pnlImage(iIndex) - ReDim Preserve pbImage(iIndex) - pnlImage(iIndex) = New Panel() - pbImage(iIndex) = New PictureBox() - pbImage(iIndex).Name = iIndex.ToString - pnlImage(iIndex).Name = iIndex.ToString - pnlImage(iIndex).Size = New Size(256, 286) - pbImage(iIndex).Size = New Size(250, 250) - pnlImage(iIndex).BackColor = Color.White - pnlImage(iIndex).BorderStyle = BorderStyle.FixedSingle - pbImage(iIndex).SizeMode = PictureBoxSizeMode.Zoom - pnlImage(iIndex).Tag = sURL - pbImage(iIndex).Tag = sURL - pbImage(iIndex).Image = iImage - pnlImage(iIndex).Left = iLeft - pbImage(iIndex).Left = 3 - pnlImage(iIndex).Top = iTop - pbImage(iIndex).Top = 3 - pnlBG.Controls.Add(pnlImage(iIndex)) - pnlImage(iIndex).Controls.Add(pbImage(iIndex)) - pnlImage(iIndex).BringToFront() - AddHandler pbImage(iIndex).Click, AddressOf pbImage_Click - AddHandler pbImage(iIndex).DoubleClick, AddressOf pbImage_DoubleClick - AddHandler pnlImage(iIndex).Click, AddressOf pnlImage_Click - - AddHandler pbImage(iIndex).MouseWheel, AddressOf MouseWheelEvent - AddHandler pnlImage(iIndex).MouseWheel, AddressOf MouseWheelEvent - - If DLType = Enums.ImageType.Fanart Then - ReDim Preserve chkImage(iIndex) - chkImage(iIndex) = New CheckBox() - chkImage(iIndex).Name = iIndex.ToString - chkImage(iIndex).Size = New Size(250, 30) - chkImage(iIndex).AutoSize = False - chkImage(iIndex).BackColor = Color.White - chkImage(iIndex).TextAlign = ContentAlignment.MiddleCenter - chkImage(iIndex).Text = String.Format("{0}x{1} ({2})", pbImage(iIndex).Image.Width.ToString, pbImage(iIndex).Image.Height.ToString, sDescription) - chkImage(iIndex).Left = 0 - chkImage(iIndex).Top = 250 - chkImage(iIndex).Checked = isChecked - pnlImage(iIndex).Controls.Add(chkImage(iIndex)) - AddHandler pnlImage(iIndex).MouseWheel, AddressOf MouseWheelEvent - Else - ReDim Preserve lblImage(iIndex) - lblImage(iIndex) = New Label() - lblImage(iIndex).Name = iIndex.ToString - lblImage(iIndex).Size = New Size(250, 30) - lblImage(iIndex).AutoSize = False - lblImage(iIndex).BackColor = Color.White - lblImage(iIndex).TextAlign = ContentAlignment.MiddleCenter - 'lblImage(iIndex).Text = Master.eLang.GetString(55, "Multiple") - lblImage(iIndex).Text = String.Format("{0}x{1} ({2})", pbImage(iIndex).Image.Width.ToString, pbImage(iIndex).Image.Height.ToString, sDescription) - - lblImage(iIndex).Tag = sURL - lblImage(iIndex).Left = 0 - lblImage(iIndex).Top = 250 - pnlImage(iIndex).Controls.Add(lblImage(iIndex)) - AddHandler lblImage(iIndex).Click, AddressOf lblImage_Click - AddHandler lblImage(iIndex).MouseWheel, AddressOf MouseWheelEvent - End If - Catch ex As Exception - Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") - End Try - - iCounter += 1 - - If iCounter = 3 Then - iCounter = 0 - iLeft = 5 - iTop += 301 - Else - iLeft += 271 - End If - End Sub + Private Sub AddImage(ByVal sDescription As String, ByVal iIndex As Integer, ByVal ImgTag As ImageTag, ByVal isChecked As Boolean) + Try + ReDim Preserve pnlImage(iIndex) + ReDim Preserve pbImage(iIndex) + pnlImage(iIndex) = New Panel() + pbImage(iIndex) = New PictureBox() + pbImage(iIndex).Name = iIndex.ToString + pnlImage(iIndex).Name = iIndex.ToString + pnlImage(iIndex).Size = New Size(256, 286) + pbImage(iIndex).Size = New Size(250, 250) + pnlImage(iIndex).BackColor = Color.White + pnlImage(iIndex).BorderStyle = BorderStyle.FixedSingle + pbImage(iIndex).SizeMode = PictureBoxSizeMode.Zoom + pnlImage(iIndex).Tag = ImgTag + pbImage(iIndex).Tag = ImgTag + pbImage(iIndex).Image = ImgTag.ImageObj.Image + pnlImage(iIndex).Left = iLeft + pbImage(iIndex).Left = 3 + pnlImage(iIndex).Top = iTop + pbImage(iIndex).Top = 3 + pnlBG.Controls.Add(pnlImage(iIndex)) + pnlImage(iIndex).Controls.Add(pbImage(iIndex)) + pnlImage(iIndex).BringToFront() + AddHandler pbImage(iIndex).Click, AddressOf pbImage_Click + AddHandler pbImage(iIndex).DoubleClick, AddressOf pbImage_DoubleClick + AddHandler pnlImage(iIndex).Click, AddressOf pnlImage_Click + + AddHandler pbImage(iIndex).MouseWheel, AddressOf MouseWheelEvent + AddHandler pnlImage(iIndex).MouseWheel, AddressOf MouseWheelEvent + + If DLType = Enums.ImageType.Fanart Then + ReDim Preserve chkImage(iIndex) + chkImage(iIndex) = New CheckBox() + chkImage(iIndex).Name = iIndex.ToString + chkImage(iIndex).Size = New Size(250, 30) + chkImage(iIndex).AutoSize = False + chkImage(iIndex).BackColor = Color.White + chkImage(iIndex).TextAlign = ContentAlignment.MiddleCenter + chkImage(iIndex).Text = String.Format("{0}x{1} ({2})", pbImage(iIndex).Image.Width.ToString, pbImage(iIndex).Image.Height.ToString, sDescription) + chkImage(iIndex).Left = 0 + chkImage(iIndex).Top = 250 + chkImage(iIndex).Checked = isChecked + pnlImage(iIndex).Controls.Add(chkImage(iIndex)) + AddHandler pnlImage(iIndex).MouseWheel, AddressOf MouseWheelEvent + Else + ReDim Preserve lblImage(iIndex) + lblImage(iIndex) = New Label() + lblImage(iIndex).Name = iIndex.ToString + lblImage(iIndex).Size = New Size(250, 30) + lblImage(iIndex).AutoSize = False + lblImage(iIndex).BackColor = Color.White + lblImage(iIndex).TextAlign = ContentAlignment.MiddleCenter + 'lblImage(iIndex).Text = Master.eLang.GetString(55, "Multiple") + lblImage(iIndex).Text = String.Format("{0}x{1} ({2})", pbImage(iIndex).Image.Width.ToString, pbImage(iIndex).Image.Height.ToString, sDescription) + + lblImage(iIndex).Tag = ImgTag + lblImage(iIndex).Left = 0 + lblImage(iIndex).Top = 250 + pnlImage(iIndex).Controls.Add(lblImage(iIndex)) + AddHandler lblImage(iIndex).Click, AddressOf lblImage_Click + AddHandler lblImage(iIndex).MouseWheel, AddressOf MouseWheelEvent + End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + + iCounter += 1 + + If iCounter = 3 Then + iCounter = 0 + iLeft = 5 + iTop += 301 + Else + iLeft += 271 + End If + End Sub Private Sub AllDoneDownloading() ' If _impaDone AndAlso _tmdbDone AndAlso _mpdbDone Then @@ -243,7 +243,7 @@ Public Class dlgImgSelect If Master.eSettings.UseImgCache Then Try MovieImages.Item(i).URL = StringUtils.CleanURL(MovieImages.Item(i).URL) - MovieImages.Item(i).WebImage.Save(Path.Combine(CachePath, String.Concat("poster_(", MovieImages.Item(i).Description, ")_(url=", MovieImages.Item(i).URL, ").jpg"))) + MovieImages.Item(i).WebImage.Save(Path.Combine(CachePath, String.Concat("poster_(", MovieImages.Item(i).Description, ")_(url=", MovieImages.Item(i).URL, ").jpg")), , , False) Catch End Try End If @@ -370,23 +370,23 @@ Public Class dlgImgSelect pnlSize.Visible = False - If Not DLType = Enums.ImageType.Fanart AndAlso sURL.ToLower.Contains("themoviedb.org") Then - SetupSizes(sURL) - If Not rbLarge.Checked AndAlso Not rbMedium.Checked AndAlso Not rbSmall.Checked AndAlso Not rbXLarge.Checked Then - OK_Button.Enabled = False - Else - OK_Button.Focus() - End If - tmpImage.Clear() - Else - rbXLarge.Checked = False - rbLarge.Checked = False - rbMedium.Checked = False - rbSmall.Checked = False - OK_Button.Enabled = True - OK_Button.Focus() - tmpImage.Image = pbImage(iIndex).Image - End If + If Not DLType = Enums.ImageType.Fanart Then 'AndAlso sURL.ToLower.Contains("themoviedb.org") Then + SetupSizes(sURL) + If Not rbLarge.Checked AndAlso Not rbMedium.Checked AndAlso Not rbSmall.Checked AndAlso Not rbXLarge.Checked Then + OK_Button.Enabled = False + Else + OK_Button.Focus() + End If + tmpImage.Clear() + Else + rbXLarge.Checked = False + rbLarge.Checked = False + rbMedium.Checked = False + rbSmall.Checked = False + OK_Button.Enabled = True + OK_Button.Focus() + tmpImage = CType(pbImage(iIndex).Tag, ImageTag).ImageObj + End If Catch ex As Exception Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") @@ -594,7 +594,7 @@ Public Class dlgImgSelect If Not IsNothing(tmpImage.Image) Then If isEdit Then - tmpImage.Save(tmpPathPlus) + tmpImage.Save(tmpPathPlus, , , False) Results.ImagePath = tmpPathPlus Else If DLType = Enums.ImageType.Fanart Then @@ -622,7 +622,7 @@ Public Class dlgImgSelect tmpImage.FromWeb(rbLarge.Tag.ToString) End If Case rbMedium.Checked - tmpImage.Image = pbImage(selIndex).Image + tmpImage = CType(pbImage(selIndex).Tag, ImageTag).ImageObj Case rbSmall.Checked If Master.eSettings.UseImgCache Then tmpImage.FromFile(Path.Combine(CachePath, String.Concat("poster_(thumb)_(url=", rbSmall.Tag, ").jpg"))) @@ -633,7 +633,7 @@ Public Class dlgImgSelect If Not IsNothing(tmpImage.Image) Then If isEdit Then - tmpImage.Save(tmpPathPlus) + tmpImage.Save(tmpPathPlus, , , False) Results.ImagePath = tmpPathPlus Else If DLType = Enums.ImageType.Fanart Then @@ -679,15 +679,12 @@ Public Class dlgImgSelect Directory.CreateDirectory(extraPath) End If - Dim fsET As FileStream - For i As Integer = 0 To UBound(chkImage) - If chkImage(i).Checked Then - fsET = New FileStream(Path.Combine(extraPath, String.Concat("thumb", iVal, ".jpg")), FileMode.Create, FileAccess.ReadWrite) - pbImage(i).Image.Save(fsET, Imaging.ImageFormat.Jpeg) - fsET.Close() - iVal += 1 - End If - Next + For i As Integer = 0 To UBound(chkImage) + If chkImage(i).Checked Then + CType(pbImage(i).Tag, ImageTag).ImageObj.Save(Path.Combine(extraPath, String.Concat("thumb", iVal, ".jpg")), , , False) + iVal += 1 + End If + Next End If End If Catch ex As Exception @@ -731,7 +728,7 @@ Public Class dlgImgSelect If posters.Count > 0 Then For Each xPoster As MediaContainers.Image In posters.OrderBy(Function(p) p.URL) If Not IsNothing(xPoster.WebImage.Image) AndAlso (DLType = Enums.ImageType.Fanart OrElse Not (xPoster.URL.ToLower.Contains("themoviedb.org") AndAlso Not xPoster.Description = "cover")) Then - AddImage(xPoster.WebImage.Image, xPoster.Description, iIndex, xPoster.URL, xPoster.isChecked) + AddImage(xPoster.Description, iIndex, New ImageTag With {.URL = xPoster.URL, .ImageObj = xPoster.WebImage}, xPoster.isChecked) iIndex += 1 End If Next @@ -786,9 +783,9 @@ Public Class dlgImgSelect Functions.PNLDoubleBuffer(pnlBG) If DLType = Enums.ImageType.Posters Then - Text = String.Concat(Master.eLang.GetString(39, "Select Poster - "), If(Not String.IsNullOrEmpty(tMovie.Movie.Title), tMovie.Movie.Title, tMovie.ListTitle)) + Text = String.Concat(Master.eLang.GetString(39, "Select Poster"), " - ", If(Not String.IsNullOrEmpty(tMovie.Movie.Title), tMovie.Movie.Title, tMovie.ListTitle)) Else - Text = String.Concat(Master.eLang.GetString(40, "Select Fanart - "), If(Not String.IsNullOrEmpty(tMovie.Movie.Title), tMovie.Movie.Title, tMovie.ListTitle)) + Text = String.Concat(Master.eLang.GetString(40, "Select Fanart"), " - ", If(Not String.IsNullOrEmpty(tMovie.Movie.Title), tMovie.Movie.Title, tMovie.ListTitle)) pnlDLStatus.Height = 75 pnlDLStatus.Top = 207 @@ -893,4 +890,18 @@ Public Class dlgImgSelect #End Region 'Methods +#Region "Nested Types" + + Private Structure ImageTag + +#Region "Fields" + + Dim URL As String + Dim ImageObj As Images + +#End Region 'Fields + + End Structure + +#End Region 'Nested Types End Class \ No newline at end of file diff --git a/Addons/scraper.EmberCore.XML/scraper.EmberCore.XML.vbproj b/Addons/scraper.EmberCore.XML/scraper.EmberCore.XML.vbproj index d27a1be..84680e3 100644 --- a/Addons/scraper.EmberCore.XML/scraper.EmberCore.XML.vbproj +++ b/Addons/scraper.EmberCore.XML/scraper.EmberCore.XML.vbproj @@ -255,13 +255,25 @@ + + PreserveNewest + + + PreserveNewest + PreserveNewest PreserveNewest - + + PreserveNewest + + + PreserveNewest + + PreserveNewest diff --git a/Addons/scraper.EmberCore.XML/scraperMovieXMLModule.vb b/Addons/scraper.EmberCore.XML/scraperMovieXMLModule.vb index ad26585..8da9558 100644 --- a/Addons/scraper.EmberCore.XML/scraperMovieXMLModule.vb +++ b/Addons/scraper.EmberCore.XML/scraperMovieXMLModule.vb @@ -57,6 +57,7 @@ Public Class EmberXMLScraperModule Public Event MovieScraperEvent(ByVal eType As Enums.MovieScraperEventType, ByVal Parameter As Object) Implements Interfaces.EmberMovieScraperModule.MovieScraperEvent Public Event SetupPostScraperChanged(ByVal name As String, ByVal State As Boolean, ByVal difforder As Integer) Implements Interfaces.EmberMovieScraperModule.PostScraperSetupChanged Public Event SetupScraperChanged(ByVal name As String, ByVal State As Boolean, ByVal difforder As Integer) Implements Interfaces.EmberMovieScraperModule.ScraperSetupChanged + Public Event SetupNeedsRestart() Implements Interfaces.EmberMovieScraperModule.SetupNeedsRestart #End Region 'Events @@ -519,11 +520,13 @@ Public Class EmberXMLScraperModule End Try End If End If - If Master.GlobalScrapeMod.Actors AndAlso AdvancedSettings.GetBooleanSetting("ScrapeActorsThumbs", False) Then + If Master.GlobalScrapeMod.Actors AndAlso Master.eSettings.ScraperActorThumbs Then For Each act As MediaContainers.Person In DBMovie.Movie.Actors Dim img As New Images img.FromWeb(act.Thumb) - img.SaveAsActorThumb(act, Directory.GetParent(DBMovie.Filename).FullName) + If Not IsNothing(img.Image) Then + img.SaveAsActorThumb(act, Directory.GetParent(DBMovie.Filename).FullName, DBMovie) + End If Next End If Catch ex As Exception diff --git a/Addons/scraper.EmberCore/Langs/scraper.EmberCore.Debug_(db_DB).xml b/Addons/scraper.EmberCore/Langs/scraper.EmberCore.Debug_(db_DB).xml new file mode 100644 index 0000000..0fba5b0 --- /dev/null +++ b/Addons/scraper.EmberCore/Langs/scraper.EmberCore.Debug_(db_DB).xml @@ -0,0 +1,902 @@ + + native1 + native2 + native3 + native4 + native5 + native6 + native7 + native8 + native9 + native10 + native11 + native12 + native13 + native14 + native15 + native16 + native17 + native18 + native19 + native20 + native21 + native22 + native23 + native24 + native25 + native26 + native27 + native28 + native29 + native30 + native31 + native32 + native33 + native34 + native35 + native36 + native37 + native38 + native39 + native40 + native41 + native42 + native43 + native44 + native45 + native46 + native47 + native48 + native49 + native50 + native51 + native52 + native53 + native54 + native55 + native56 + native57 + native58 + native59 + native60 + native61 + native62 + native63 + native64 + native65 + native66 + native67 + native68 + native69 + native70 + native71 + native72 + native73 + native74 + native75 + native76 + native77 + native78 + native79 + native80 + native81 + native82 + native83 + native84 + native85 + native86 + native87 + native88 + native89 + native90 + native91 + native92 + native93 + native94 + native95 + native96 + native97 + native98 + native99 + native100 + native101 + native102 + native103 + native104 + native105 + native106 + native107 + native108 + native109 + native110 + native111 + native112 + native113 + native114 + native115 + native116 + native117 + native118 + native119 + native120 + native121 + native122 + native123 + native124 + native125 + native126 + native127 + native128 + native129 + native130 + native131 + native132 + native133 + native134 + native135 + native136 + native137 + native138 + native139 + native140 + native141 + native142 + native143 + native144 + native145 + native146 + native147 + native148 + native149 + native150 + native151 + native152 + native153 + native154 + native155 + native156 + native157 + native158 + native159 + native160 + native161 + native162 + native163 + native164 + native165 + native166 + native167 + native168 + native169 + native170 + native171 + native172 + native173 + native174 + native175 + native176 + native177 + native178 + native179 + native180 + native181 + native182 + native183 + native184 + native185 + native186 + native187 + native188 + native189 + native190 + native191 + native192 + native193 + native194 + native195 + native196 + native197 + native198 + native199 + native200 + native201 + native202 + native203 + native204 + native205 + native206 + native207 + native208 + native209 + native210 + native211 + native212 + native213 + native214 + native215 + native216 + native217 + native218 + native219 + native220 + native221 + native222 + native223 + native224 + native225 + native226 + native227 + native228 + native229 + native230 + native231 + native232 + native233 + native234 + native235 + native236 + native237 + native238 + native239 + native240 + native241 + native242 + native243 + native244 + native245 + native246 + native247 + native248 + native249 + native250 + native251 + native252 + native253 + native254 + native255 + native256 + native257 + native258 + native259 + native260 + native261 + native262 + native263 + native264 + native265 + native266 + native267 + native268 + native269 + native270 + native271 + native272 + native273 + native274 + native275 + native276 + native277 + native278 + native279 + native280 + native281 + native282 + native283 + native284 + native285 + native286 + native287 + native288 + native289 + native290 + native291 + native292 + native293 + native294 + native295 + native296 + native297 + native298 + native299 + native300 + native301 + native302 + native303 + native304 + native305 + native306 + native307 + native308 + native309 + native310 + native311 + native312 + native313 + native314 + native315 + native316 + native317 + native318 + native319 + native320 + native321 + native322 + native323 + native324 + native325 + native326 + native327 + native328 + native329 + native330 + native331 + native332 + native333 + native334 + native335 + native336 + native337 + native338 + native339 + native340 + native341 + native342 + native343 + native344 + native345 + native346 + native347 + native348 + native349 + native350 + native351 + native352 + native353 + native354 + native355 + native356 + native357 + native358 + native359 + native360 + native361 + native362 + native363 + native364 + native365 + native366 + native367 + native368 + native369 + native370 + native371 + native372 + native373 + native374 + native375 + native376 + native377 + native378 + native379 + native380 + native381 + native382 + native383 + native384 + native385 + native386 + native387 + native388 + native389 + native390 + native391 + native392 + native393 + native394 + native395 + native396 + native397 + native398 + native399 + native400 + native401 + native402 + native403 + native404 + native405 + native406 + native407 + native408 + native409 + native410 + native411 + native412 + native413 + native414 + native415 + native416 + native417 + native418 + native419 + native420 + native421 + native422 + native423 + native424 + native425 + native426 + native427 + native428 + native429 + native430 + native431 + native432 + native433 + native434 + native435 + native436 + native437 + native438 + native439 + native440 + native441 + native442 + native443 + native444 + native445 + native446 + native447 + native448 + native449 + native450 + native451 + native452 + native453 + native454 + native455 + native456 + native457 + native458 + native459 + native460 + native461 + native462 + native463 + native464 + native465 + native466 + native467 + native468 + native469 + native470 + native471 + native472 + native473 + native474 + native475 + native476 + native477 + native478 + native479 + native480 + native481 + native482 + native483 + native484 + native485 + native486 + native487 + native488 + native489 + native490 + native491 + native492 + native493 + native494 + native495 + native496 + native497 + native498 + native499 + native500 + native501 + native502 + native503 + native504 + native505 + native506 + native507 + native508 + native509 + native510 + native511 + native512 + native513 + native514 + native515 + native516 + native517 + native518 + native519 + native520 + native521 + native522 + native523 + native524 + native525 + native526 + native527 + native528 + native529 + native530 + native531 + native532 + native533 + native534 + native535 + native536 + native537 + native538 + native539 + native540 + native541 + native542 + native543 + native544 + native545 + native546 + native547 + native548 + native549 + native550 + native551 + native552 + native553 + native554 + native555 + native556 + native557 + native558 + native559 + native560 + native561 + native562 + native563 + native564 + native565 + native566 + native567 + native568 + native569 + native570 + native571 + native572 + native573 + native574 + native575 + native576 + native577 + native578 + native579 + native580 + native581 + native582 + native583 + native584 + native585 + native586 + native587 + native588 + native589 + native590 + native591 + native592 + native593 + native594 + native595 + native596 + native597 + native598 + native599 + native600 + native601 + native602 + native603 + native604 + native605 + native606 + native607 + native608 + native609 + native610 + native611 + native612 + native613 + native614 + native615 + native616 + native617 + native618 + native619 + native620 + native621 + native622 + native623 + native624 + native625 + native626 + native627 + native628 + native629 + native630 + native631 + native632 + native633 + native634 + native635 + native636 + native637 + native638 + native639 + native640 + native641 + native642 + native643 + native644 + native645 + native646 + native647 + native648 + native649 + native650 + native651 + native652 + native653 + native654 + native655 + native656 + native657 + native658 + native659 + native660 + native661 + native662 + native663 + native664 + native665 + native666 + native667 + native668 + native669 + native670 + native671 + native672 + native673 + native674 + native675 + native676 + native677 + native678 + native679 + native680 + native681 + native682 + native683 + native684 + native685 + native686 + native687 + native688 + native689 + native690 + native691 + native692 + native693 + native694 + native695 + native696 + native697 + native698 + native699 + native700 + native701 + native702 + native703 + native704 + native705 + native706 + native707 + native708 + native709 + native710 + native711 + native712 + native713 + native714 + native715 + native716 + native717 + native718 + native719 + native720 + native721 + native722 + native723 + native724 + native725 + native726 + native727 + native728 + native729 + native730 + native731 + native732 + native733 + native734 + native735 + native736 + native737 + native738 + native739 + native740 + native741 + native742 + native743 + native744 + native745 + native746 + native747 + native748 + native749 + native750 + native751 + native752 + native753 + native754 + native755 + native756 + native757 + native758 + native759 + native760 + native761 + native762 + native763 + native764 + native765 + native766 + native767 + native768 + native769 + native770 + native771 + native772 + native773 + native774 + native775 + native776 + native777 + native778 + native779 + native780 + native781 + native782 + native783 + native784 + native785 + native786 + native787 + native788 + native789 + native790 + native791 + native792 + native793 + native794 + native795 + native796 + native797 + native798 + native799 + native800 + native801 + native802 + native803 + native804 + native805 + native806 + native807 + native808 + native809 + native810 + native811 + native812 + native813 + native814 + native815 + native816 + native817 + native818 + native819 + native820 + native821 + native822 + native823 + native824 + native825 + native826 + native827 + native828 + native829 + native830 + native831 + native832 + native833 + native834 + native835 + native836 + native837 + native838 + native839 + native840 + native841 + native842 + native843 + native844 + native845 + native846 + native847 + native848 + native849 + native850 + native851 + native852 + native853 + native854 + native855 + native856 + native857 + native858 + native859 + native860 + native861 + native862 + native863 + native864 + native865 + native866 + native867 + native868 + native869 + native870 + native871 + native872 + native873 + native874 + native875 + native876 + native877 + native878 + native879 + native880 + native881 + native882 + native883 + native884 + native885 + native886 + native887 + native888 + native889 + native890 + native891 + native892 + native893 + native894 + native895 + native896 + native897 + native898 + native899 + native900 + \ No newline at end of file diff --git a/Addons/scraper.EmberCore/Langs/scraper.EmberCore.Dutch_(nl_NL)-Help.xml b/Addons/scraper.EmberCore/Langs/scraper.EmberCore.Dutch_(nl_NL)-Help.xml new file mode 100644 index 0000000..2c17e5d --- /dev/null +++ b/Addons/scraper.EmberCore/Langs/scraper.EmberCore.Dutch_(nl_NL)-Help.xml @@ -0,0 +1,45 @@ + + Gebruik deze module wel of niet + Verplaats deze scanner omhoog in volgorde. (Scanner modules worden uitgevoerd van boven naar beneden) + Verplaats deze scanner omlaag in volgorde. (Scanner modules worden uitgevoerd van boven naar beneden) + Voer mirror in om te gebruiken voor IMDB informatie. + Indien geactiveerd zal Ember proberen de filmtitel van OFDB (Duitse taalsite) te halen tijdens scannen. + Indien geactiveerd zal Ember proberen de verhaallijn van OFDB (Duitse taalsite) te halen tijdens scannen. + Indien geactiveerd zal Ember proberen de verhaallijn van OFDB (Duitse taalsite) te halen tijdens scannen. + Indien geactiveerd zal Ember proberen het genre van OFDB (Duitse taalsite) te halen tijdens scannen. + Scan film certificering. + Scan Top250 score. + Beperk het aantal genres tot het ingevoerde aantal. + Beperk het aantal acteurs tot het ingevoerde aantal. + Scan overige crew. (Scan volledige crew moet geactiveerd zijn) + Scan film muzikanten. (Scan volledige crew moet geactiveerd zijn) + Scan film producenten. (Scan volledige crew moet geactiveerd zijn) + Scan filmschrijvers + Scan filmstudio. + Scan film speelduur. + Scan film plot. + Scan film verhaallijn. + Scan film genre. + Scan film regisseur. + Scan film subtitel. + Scan film cast. + Scan film stemmen + Scan film trailer url. + Scan film rating. + Scan film releasedatum. + Scan MPAA waardering. + Scan film jaar. + Scan film titel. + Gebruik deze module wel of niet + Verplaats deze scanner omhoog in volgorde. (Scanner modules worden uitgevoerd van boven naar beneden) + Verplaats deze scanner omlaag in volgorde. (Scanner modules worden uitgevoerd van boven naar beneden) + Gebruik scannen naar posters in deze module. (Kijk bij algemene instellingen voor meer opties) + Gebruik scannen naar fanart in deze module. (Kijk bij algemene instellingen voor meer opties) + Gebruik afbeeldingen van TheMovieDB.org + Gebruik afbeeldingen van + Gebruik afbeeldingen van MoviePosterDB.com + Gebruik automatisch zoeken van extrathumbs in deze module. (Kijk bij algemene instellingen voor meer opties) + Gebruik scannen naar trailers in deze module. (Kijk bij algemene instellingen voor meer opties) + Vul de tijd in (in seconden) die je wilt wachten tot een timeout van trailer sites. (als er geen reactie is in deze tijd, zal de trailer worden overgeslagen) + Selecteer de site waar je trailers en/of bestanden vandaan wilt halen. + diff --git a/Addons/scraper.EmberCore/Langs/scraper.EmberCore.Dutch_(nl_NL).xml b/Addons/scraper.EmberCore/Langs/scraper.EmberCore.Dutch_(nl_NL).xml new file mode 100644 index 0000000..45e7d4a --- /dev/null +++ b/Addons/scraper.EmberCore/Langs/scraper.EmberCore.Dutch_(nl_NL).xml @@ -0,0 +1,118 @@ + + Ember's eigen TV scanners + Gebruik OFDB genre + Gebruik OFDB plot + Gebruik OFDB verhaalschets + Gebruik OFDB titel + IMDB Spiegel: + Scanner velden - Scanner specifiek + Timeout: + Ondersteunde sites: + Haal afbeeldingen van: + Zoekresultaten + IMDB aan het doorzoeken... + Het opgegeven ID is geen geldig IMDB ID. + Je hebt manueel een IMDB ID ingevoerd maar nog niet gecontroleerd of dit juist is. + Verder gaan zonder controle? + Kan de filmdetails voor het ingegeven IMDB ID niet ophalen. Controleer uw invoer en probeer opnieuw. + Controle mislukt + Gedeeltelijke overeenkomsten ({0}) + Exacte overeenkomsten ({0}) + Populaire titels ({0}) + Geen overeenkomsten gevonden + Bekijk details van ieder resultaat om de juiste film te vinden. + Film zoekresultaten + Handmatige IMDB invoer: + Controleer + IMDB aan het doorzoeken... + Downloaden details... + Aan het Downloaden {0} + Geen fanart voor deze film gevonden + Geen fanart gevonden + Geen Posters voor deze film gevonden. + Geen Posters gevonden + Ophalen gegevens van TheMovieDB.com... + TheMovieDB.com is niet geactiveerd + Ophalen gegevens van IMPAwards.com... + IMPAwards is niet geactiveerd + Ophalen gegevens van MoviePosterDB.com... + MoviePostersDB.com is niet geactiveerd + Afbeeldingen aan het voorbereiden... + Selecteer Poster + Selecteer Fanart + Controleer alle miniaturen + Controleer alle Mid + Controleer alle originele + Het geselecteerde onderdeel zal als Fanart worden gebruikt. Geselecteerde onderdelen worden opgeslagen als \extrathumbs. + Uitvoeren van voorbereidende taken... + Downloaden van de geselecteerde afbeelding... + Origineel + Hoes + Gemiddeld + Klein + Origineel ({0}x{1}) + Hoes ({0}x{1}) + Klein ({0}x{1}) + Medium ({0}x{1}) + Meerdere + Downloaden van de geselecteerde trailer... + Het opgegeven bestand naar trailer aan het kopiëren... + De trailer kon niet afgespeeld worden. Oorzaak kan een ongeldige URL zijn of dat u niet de juiste speler hebt om dit type trailer af te spelen. + Fout bij afspelen Trailer + Verplaats + Kopieer + Opgegeven bestand naar trailer aan het verplaatsen... + Stel in als Nfo + Selecteer Trailer + Selecteer Trailer om te downloaden + Handmatig trailer toevoegen + Directe verwijzing of YouTube URL: + Trailer lijst aan het compileren... + Bekijk Trailer + Lokale Trailer: + Kon de verbindingen naar het videoformaat niet ophalen. + Fout in het ophalen van de videoformaat verbindingen + Selecteer Formaat + Beschikbare formatenaan het ophalen... + Beschikbare Formaten + Een poster in uw voorkeursformaat kon niet gevonden worden. Selecteer een ander aub. + Geen voorkeursformaat + Fanart in uw voorkeursformaat kon niet gevonden worden. Selecteer een ander aub. + Er zijn geen gekende afleveringen voor deze serie. Scan de serie, het seizoen, of de aflevering en probeer het opnieuw. + Geen gekende afleveringen + Er is geen Poster beschikbaar voor deze aflevering. + Gastster + Het ID dat u opgaf is een ongeldig TVDB ID. + Serie info aan het downloaden... + TV Zoekresultaten + Bekijk de details van elk resultaat om de juiste TV serie te vinden. + Fanart afbeelding in ware grootte aan het downloaden... + Huidige afbeeldingen aan het inlezen... + Nieuwe afbeeldingen aan het (op)laden... + Standaarden aan het instellen... + Poster Serie + Fanart Aflevering + Fanart Serie + Alle seizoenen poster + Seizoen posters + Seizoen Fanart + Posters Seizoen {0} + Fanart Seizoen {0} + Selectie TV Afbeelding + Huidige Afbeelding: + Haal posters + Haal fanart + Deze instellingen zijn specifiek voor deze module.{0}Bekijk de algemene instellingen voor meer opties aub. + Ember's eigen Film Scanners + + IMDB + OFDB (Duits) + TMDB Extra-Miniaturen grootte: + Trailers: + Youtube/TMDB Trailer: + XBMC formaat + Voorkeurstaal + Bewaar fanart in: + Open in Browser + OFDB allows only 100 queries in a certain time-frame.{0}After you exceed the usage limits, your IP is blocked for a while and Ember uses IMDB data instead (English only). + diff --git a/Addons/scraper.EmberCore/Langs/scraper.EmberCore.English_(en_US)-Help.xml b/Addons/scraper.EmberCore/Langs/scraper.EmberCore.English_(en_US)-Help.xml index fd5185b..1705beb 100644 --- a/Addons/scraper.EmberCore/Langs/scraper.EmberCore.English_(en_US)-Help.xml +++ b/Addons/scraper.EmberCore/Langs/scraper.EmberCore.English_(en_US)-Help.xml @@ -1,46 +1,45 @@ - - Enable or disable this module. - Move this scraper module up in order. (Scraper modules will be processed in order from top to bottom) - Move this scraper module down in order. (Scraper modules will be processed in order from top to bottom) - Enter the mirror to use when retrieving information from IMDB. - If enabled, Ember will attempt to retreive the movie title from OFDB (a German language site) when scraping. - If enabled, Ember will attempt to retreive the movie outline from OFDB (a German language site) when scraping. - If enabled, Ember will attempt to retreive the movie plot from OFDB (a German language site) when scraping. - If enabled, Ember will attempt to retreive the movie genre from OFDB (a German language site) when scraping. - Enable scraping movie certification. - Enable scraping movie Top 250 ranking. - Limit the number of scraped genres to the entered value. - Limit the number of scraped actors to the entered value. - Enable scraping movie other crew. (Scrape Full Crew must be enabled) - Enable scraping movie musicians. (Scrape Full Crew must be enabled) - Enable scraping movie producers. (Scrape Full Crew must be enabled) - Enable scraping movie writers. - Enable scraping movie studio. - Enable scraping movie runtime. - Enable scraping movie plot. - Enable scraping movie outline. - Enable scraping movie genre. - Enable scraping movie director. - Enable scraping movie tagline. - Enable scraping movie cast. - Enable scraping movie votes. - Enable scraping movie trailer url. - Enable scraping movie rating. - Enable scraping movie release date. - Enable scraping movie MPAA. - Enable scraping movie year. - Enable scraping movie title. - Enable or disable this module. - Move this scraper module up in order. (Scraper modules will be processed in order from top to bottom) - Move this scraper module down in order. (Scraper modules will be processed in order from top to bottom) - Enable scraping posters from this module. (Refer to global poster settings for more options) - Enable scraping fanart from this module. (Refer to global fanart settings for more options) - Enable retrieving images from theMovieDB.org. - Enable retrieving images from - Enable retrieving images from MoviePosterDB.com. - Enable automatic extraction of extrathumbs from this module. (Refer to global extrathumb settings for more options) - Enable trailer downloading from this module. (Refer to global trailer settings for more options) - Enter the time (in seconds) you wish to use as a time out for the trailer sites. (If there is no response in the given time frame, the trailer site will be temporarily skipped.) - Select the sites from which you would like to retrieve trailer URLs and/or files. - \ No newline at end of file + Enable or disable this module. + Move this scraper module up in order. (Scraper modules will be processed in order from top to bottom) + Move this scraper module down in order. (Scraper modules will be processed in order from top to bottom) + Enter the mirror to use when retrieving information from IMDB. + If enabled, Ember will attempt to retreive the movie title from OFDB (a German language site) when scraping. + If enabled, Ember will attempt to retreive the movie outline from OFDB (a German language site) when scraping. + If enabled, Ember will attempt to retreive the movie plot from OFDB (a German language site) when scraping. + If enabled, Ember will attempt to retreive the movie genre from OFDB (a German language site) when scraping. + Enable scraping movie certification. + Enable scraping movie Top 250 ranking. + Limit the number of scraped genres to the entered value. + Limit the number of scraped actors to the entered value. + Enable scraping movie other crew. (Scrape Full Crew must be enabled) + Enable scraping movie musicians. (Scrape Full Crew must be enabled) + Enable scraping movie producers. (Scrape Full Crew must be enabled) + Enable scraping movie writers. + Enable scraping movie studio. + Enable scraping movie runtime. + Enable scraping movie plot. + Enable scraping movie outline. + Enable scraping movie genre. + Enable scraping movie director. + Enable scraping movie tagline. + Enable scraping movie cast. + Enable scraping movie votes. + Enable scraping movie trailer url. + Enable scraping movie rating. + Enable scraping movie release date. + Enable scraping movie MPAA. + Enable scraping movie year. + Enable scraping movie title. + Enable or disable this module. + Move this scraper module up in order. (Scraper modules will be processed in order from top to bottom) + Move this scraper module down in order. (Scraper modules will be processed in order from top to bottom) + Enable scraping posters from this module. (Refer to global poster settings for more options) + Enable scraping fanart from this module. (Refer to global fanart settings for more options) + Enable retrieving images from theMovieDB.org. + Enable retrieving images from + Enable retrieving images from MoviePosterDB.com. + Enable automatic extraction of extrathumbs from this module. (Refer to global extrathumb settings for more options) + Enable trailer downloading from this module. (Refer to global trailer settings for more options) + Enter the time (in seconds) you wish to use as a time out for the trailer sites. (If there is no response in the given time frame, the trailer site will be temporarily skipped.) + Select the sites from which you would like to retrieve trailer URLs and/or files. + diff --git a/Addons/scraper.EmberCore/Langs/scraper.EmberCore.English_(en_US).xml b/Addons/scraper.EmberCore/Langs/scraper.EmberCore.English_(en_US).xml index 41b998b..6230750 100644 --- a/Addons/scraper.EmberCore/Langs/scraper.EmberCore.English_(en_US).xml +++ b/Addons/scraper.EmberCore/Langs/scraper.EmberCore.English_(en_US).xml @@ -1,117 +1,118 @@ - - Ember Native TV Scrapers - Use OFDB Genre - Use OFDB Plot - Use OFDB Outline - Use OFDB Title - IMDB Mirror: - Scraper Fields - Scraper specific - Timeout: - Supported Sites: - Get Images From: - Search Results - - Searching IMDB... - The ID you entered is not a valid IMDB ID. - You have manually entered an IMDB ID but have not verified it is correct. - Continue without verification? - Unable to retrieve movie details for the entered IMDB ID. Please check your entry and try again. - Verification Failed - Partial Matches ({0}) - Exact Matches ({0}) - Popular Titles ({0}) - No Matches Found - View details of each result to find the proper movie. - Movie Search Results - Manual IMDB Entry: - Verify - Searching IMDB... - Downloading details... - Downloading {0} - No Fanart found for this movie. - No Fanart Found - No Posters found for this movie. - No Posters Found - Retrieving data from TheMovieDB.com... - TheMovieDB.com is not enabled - Retrieving data from IMPAwards.com... - IMPAwards.com is not enabled - Retrieving data from MoviePosterDB.com... - MoviePostersDB.com is not enabled - Preparing images... - Select Poster - - Select Fanart - - Check All Thumb - Check All Mid - Check All Original - Selected item will be set as fanart. All checked items will be saved to \extrathumbs. - Performing Preliminary Tasks... - Downloading Selected Image... - Original - Cover - Medium - Small - Original ({0}x{1}) - Cover ({0}x{1}) - Small ({0}x{1}) - Medium ({0}x{1}) - Multiple - Downloading selected trailer... - Copying specified file to trailer... - The trailer could not be played. This could be due to an invalid URI or you do not have the proper player to play the trailer type. - Error Playing Trailer - Move - Copy - Moving specified file to trailer... - Set To Nfo - Select Trailer - Select Trailer to Download - Manual Trailer Entry - Direct Link or YouTube URL: - Compiling trailer list... - Preview Trailer - Local Trailer: - The video format links could not be retrieved. - Error Retrieving Video Format Links - Select Format - Getting available formats... - Available Formats - A poster of your preferred size could not be found. Please choose another. - No Preferred Size - Fanart of your preferred size could not be found. Please choose another. - There are no known episodes for this show. Scrape the show, season, or episode and try again. - No Known Episodes - There is no poster available for this episode. - Guest Star - The ID you entered is not a valid TVDB ID. - Downloading show info... - TV Search Results - View details of each result to find the proper TV show. - Downloading Fullsize Fanart Image... - Loading Current Images... - (Down)Loading New Images... - Setting Defaults... - Show Poster - Episode Fanart - Show Fanart - All Seasons Poster - Season Posters - Season Fanart - Season {0} Posters - Season {0} Fanart - TV Image Selection - Current Image: - Get Posters - Get Fanart - These settings are specific to this module.{0}Please refer to the global settings for more options. - Ember Native Movie Scrapers - - IMDB - OFDB (German) - TMDB Extrathumbs Size: - Trailers - Youtube/TMDB Trailer: - XBMC Format - Preferred language - Save Fanart In: - \ No newline at end of file + Ember Native TV Scrapers + Use OFDB Genre + Use OFDB Plot + Use OFDB Outline + Use OFDB Title + IMDB Mirror: + Scraper Fields - Scraper specific + Timeout: + Supported Sites: + Get Images From: + Search Results + Searching IMDB... + The ID you entered is not a valid IMDB ID. + You have manually entered an IMDB ID but have not verified it is correct. + Continue without verification? + Unable to retrieve movie details for the entered IMDB ID. Please check your entry and try again. + Verification Failed + Partial Matches ({0}) + Exact Matches ({0}) + Popular Titles ({0}) + No Matches Found + View details of each result to find the proper movie. + Movie Search Results + Manual IMDB Entry: + Verify + Searching IMDB... + Downloading details... + Downloading {0} + No Fanart found for this movie. + No Fanart Found + No Posters found for this movie. + No Posters Found + Retrieving data from TheMovieDB.com... + TheMovieDB.com is not enabled + Retrieving data from IMPAwards.com... + IMPAwards.com is not enabled + Retrieving data from MoviePosterDB.com... + MoviePostersDB.com is not enabled + Preparing images... + Select Poster + Select Fanart + Check All Thumb + Check All Mid + Check All Original + Selected item will be set as fanart. All checked items will be saved to \extrathumbs. + Performing Preliminary Tasks... + Downloading Selected Image... + Original + Cover + Medium + Small + Original ({0}x{1}) + Cover ({0}x{1}) + Small ({0}x{1}) + Medium ({0}x{1}) + Multiple + Downloading selected trailer... + Copying specified file to trailer... + The trailer could not be played. This could be due to an invalid URL or you do not have the proper player to play the trailer type. + Error Playing Trailer + Move + Copy + Moving specified file to trailer... + Set To Nfo + Select Trailer + Select Trailer to Download + Manual Trailer Entry + Direct Link or YouTube URL: + Compiling trailer list... + Preview Trailer + Local Trailer: + The video format links could not be retrieved. + Error Retrieving Video Format Links + Select Format + Getting available formats... + Available Formats + A poster of your preferred size could not be found. Please choose another. + No Preferred Size + Fanart of your preferred size could not be found. Please choose another. + There are no known episodes for this show. Scrape the show, season, or episode and try again. + No Known Episodes + There is no poster available for this episode. + Guest Star + The ID you entered is not a valid TVDB ID. + Downloading show info... + TV Search Results + View details of each result to find the proper TV show. + Downloading Fullsize Fanart Image... + Loading Current Images... + (Down)Loading New Images... + Setting Defaults... + Show Poster + Episode Fanart + Show Fanart + All Seasons Poster + Season Posters + Season Fanart + Season {0} Posters + Season {0} Fanart + TV Image Selection + Current Image: + Get Posters + Get Fanart + These settings are specific to this module.{0}Please refer to the global settings for more options. + Ember Native Movie Scrapers + + IMDB + OFDB (German) + TMDB Extrathumbs Size: + Trailers + Youtube/TMDB Trailer: + XBMC Format + Preferred language + Save Fanart In: + Open In Browser + OFDB allows only 100 queries in a certain time-frame.{0}After you exceed the usage limits, your IP is blocked for a while and Ember uses IMDB data instead (English only). + diff --git a/Addons/scraper.EmberCore/Langs/scraper.EmberCore.German_(de_DE)-Help.xml b/Addons/scraper.EmberCore/Langs/scraper.EmberCore.German_(de_DE)-Help.xml new file mode 100644 index 0000000..f4c930d --- /dev/null +++ b/Addons/scraper.EmberCore/Langs/scraper.EmberCore.German_(de_DE)-Help.xml @@ -0,0 +1,45 @@ + + Aktiviert dieses Modul. + Verschiebt diesen Scraper in der Reihenfolge einen nach oben (Scrape Module werden von oben nach unten abgearbeitet.) + Verschiebt diesen Scraper in der Reihenfolge einen nach unten (Scrape Module werden von oben nach unten abgearbeitet.) + Gib den Mirror ein über den Ember mit der IMDB kommunizieren soll. + Wenn aktiviert versucht Ember den Titel von der deutschen Seite OFDB.DE zu scrapen. + Wenn aktiviert versucht Ember die Kurzebschreibung von der deutschen Seite OFDB.DE zu scrapen. + Wenn aktiviert versucht Ember die Inhaltsangabe von der deutschen Seite OFDB.DE zu scrapen. + Wenn aktiviert versucht Ember die Genres von der deutschen Seite OFDB.DE zu scrapen. + Aktiviert das Scrapen der Altersbeschränkung mit diesem Modul. + Aktiviert das Scrapen der IMDB Top250 mit diesem Modul. + Die Anzahl der gescrapten Genres limitieren. + Die Anzahl der gescrapten Schauspieler limitieren. + Aktiviert das Scrapen der Sonstigen Crew mit diesem Modul. (Die Gesamte Crew scrapen muss aktiviert sein!) + Aktiviert das Scrapen der Musiker mit diesem Modul. (Die Gesamte Crew scrapen muss aktiviert sein!) + Aktiviert das Scrapen der Produzenten mit diesem Modul. (Die Gesamte Crew scrapen muss aktiviert sein!) + Aktiviert das Scrapen der Autoren mit diesem Modul. + Aktiviert das Scrapen des Studios mit diesem Modul. + Aktiviert das Scrapen der Spielzeit mit diesem Modul. + Aktiviert das Scrapen des Inhalts mit diesem Modul. + Aktiviert das Scrapen der Kurzbeschreibung mit diesem Modul. + Aktiviert das Scrapen von Genre mit diesem Modul. + Aktiviert das Scrapen des Regisseurs mit diesem Modul. + Aktiviert das Scrapen der Tagline mit diesem Modul. + Aktiviert das Scrapen der Schauspieler mit diesem Modul. + Aktiviert das Scrapen der Anzahl Bewertungen mit diesem Modul. + Aktiviert das Scrapen von Trailern mit diesem Modul. + Aktiviert das Scrapen der Bewertung mit diesem Modul. + Aktiviert das Scrapen des Premiere Datums mit diesem Modul. + Aktiviert das Scrapen der MPAA Bewertung mit diesem Modul. + Aktiviert das Scrapen des Jahres mit diesem Modul. + Aktiviert das Scrapen des Titels mit diesem Modul. + Aktiviert dieses Modul. + Verschiebt diesen Scraper in der Reihenfolge einen nach oben (Scrape Module werden von oben nach unten abgearbeitet.) + Verschiebt diesen Scraper in der Reihenfolge einen nach unten (Scrape Module werden von oben nach unten abgearbeitet.) + Aktiviert das Laden von Postern mit diesem Modul. (Schau auch in die Globale Konfiguration!) + Aktiviert das Laden von Fanart mit diesem Modul. (Schau auch in die Globale Konfiguration!) + Aktiviert das Laden von Bildern von TheMovieDB.org. + Aktiviert das Laden von Bildern von IMPA + Aktiviert das Laden von Bildern von MoviePosterDB.com. + Automatische Frame extraktion mit diesem Modul aktivieren. (Schau auch in die Globale Konfiguration!) + Trailer laden mit diesem Modul aktivieren. (Schau auch in die Globale Konfiguration!) + Wähle die Zeit (in Sekunden) die auf Trailerseiten gewartet werden soll. (Wenn die Zeite in dieser Zeit nicht geantwortet hat wird sie übersprungen) + Wähle die Seite von der Trailer URLs/Dateien geladen werden sollen. + diff --git a/Addons/scraper.EmberCore/Scraper/scraper.EmberCore.German_(de_DE).xml b/Addons/scraper.EmberCore/Langs/scraper.EmberCore.German_(de_DE).xml similarity index 74% rename from Addons/scraper.EmberCore/Scraper/scraper.EmberCore.German_(de_DE).xml rename to Addons/scraper.EmberCore/Langs/scraper.EmberCore.German_(de_DE).xml index aa4283d..4e800e6 100644 --- a/Addons/scraper.EmberCore/Scraper/scraper.EmberCore.German_(de_DE).xml +++ b/Addons/scraper.EmberCore/Langs/scraper.EmberCore.German_(de_DE).xml @@ -1,4 +1,3 @@ - Ember Nativer TV Scraper OFDB Genre benutzen @@ -10,12 +9,12 @@ Timeout: Unterstützte Seiten: Bilder holen von: - Suchergebnis - + Suchergebnis Suche in der IMDB... - Die eingegebene ID ist keine gültige IMDB ID - Die IMDB ID ist noch nicht geprüft + Die eingegebene ID ist keine gültige IMDB ID. + Die IMDB ID ist noch nicht geprüft. Ohne Prüfung fortfahren? - Zu der eingegebene IMDB ID konnten keine Informationen geholt werden. Bitte prüfe deine Eingaben + Zu der eingegebene IMDB ID konnten keine Informationen geholt werden. Bitte prüfe deine Eingaben. Prüfung fehlgeschlagen Teil Treffer ({0}) Exakte Treffer({0}) @@ -39,12 +38,12 @@ Lade Daten von MoviePosterDB.com... MoviePostersDB.com ist nicht aktiviert. Bereite Bilder vor... - Wähle Poster - - Wähle Fanart - + Wähle Poster + Wähle Fanart Alle Thumbs Alle Mittl. Alle Original - Markiertes Bild wird Fanart. Alle aktivierten werden extrathumbs. + Markiertes Bild wird Fanart. Alle aktivierten werden Extrathumbs. Vorarbeit läuft... Lade gewähltes Bild... Original @@ -58,16 +57,16 @@ Mehrfach Lade gewählten Trailer... Kopiere gewählten Trailer... - Der Trailer konnte nicht abgespielt werden. Dies könnte an einer Fehlerhaften URI liegen oder es ist kein Player für diesen Dateityp vorhanden. - Fehler beim abspielen des Trailers + Der Trailer konnte nicht abgespielt werden. Dies könnte an einer Fehlerhaften URL liegen oder es ist kein Player für diesen Dateityp vorhanden. + Fehler beim Abspielen des Trailers Verschieben Kopieren - Kopiere gewählten Trailer... - Set To Nfo + Verschiebe gewählten Trailer... + In NFO speichern Trailer wählen Trailer zum laden wählen Man. Trailer - Direktlink oder YouTube URL + Direktlink oder YouTube URL: Stelle Trailerliste zusammen... Trailer Vorschau Lokaler Trailer: @@ -77,13 +76,13 @@ Hole verfügbare Formate... Verfügbare Formate Es konnte kein Poster in der gewünschten Größe gefunden werden. Wähle ein anderes. - Keine gewünschte Größe. + Keine gewünschte Größe Es konnte kein Fanart in der gewünschten Größe gefunden werden. Wähle ein anderes. Keine Episoden für diese TV-Serie verfügbar. Scrape diese Serie, Staffel oder Episode und versuche es erneut. - Keine Episoden verfügbar. + Keine Episoden verfügbar Kein Poster für diese Episode vorhanden. Gast Star - Die eingegebene ID ist keine gültige TVDB ID + Die eingegebene ID ist keine gültige TVDB ID. Lade Serien Informationen... Serien Suchergebnis Betrachte die Details um die richtige TV-Serie zu erkennen. @@ -103,7 +102,17 @@ Aktuelles Bild: Poster laden Fanart laden - Diese Einstellungen sind Modulspezifisch{0}Schaue auch in die Globale Konfiguration! - Ember Nativer TV Scraper + Diese Einstellungen sind Modul-spezifisch. {0} Bitte werfen sie einen Blick in die Globalen Einstellungen für noch mehr Optionen. + Ember Nativer Film Scraper + + IMDB + OFDB (German) + TMDB Extrathumbs Grösse: + Trailer + Youtube/TMDB Trailer: + XBMC Format + Bevorzugte Sprache + Speichere Fanart in: + Im Browser öffnen + OFDB erlaubt nur 100 Abfragen innerhalb einer kurzen Zeit.{0}Danach wird für eine gewisse Zeit deine IP blockiert und Ember macht ein Fallback zu IMDB (nur Englisch). - diff --git a/Addons/scraper.EmberCore/Langs/scraper.EmberCore.Italian_(it_IT)-Help.xml b/Addons/scraper.EmberCore/Langs/scraper.EmberCore.Italian_(it_IT)-Help.xml new file mode 100644 index 0000000..1e1e49a --- /dev/null +++ b/Addons/scraper.EmberCore/Langs/scraper.EmberCore.Italian_(it_IT)-Help.xml @@ -0,0 +1,45 @@ + + Abilita o disabilita questo modulo + Muovi questo modulo d'analisi in alto. (I moduli d'analisi saranno processati in ordine, dall'alto verso il basso) + Muovi questo modulo d'analisi in basso. (I moduli d'analisi saranno processati in ordine, dall'alto verso il basso) + Inserire il sito mirror da utilizzare per il recupero di informazioni da IMDB + Se abilitato, Ember tenterà di recuperare il titolo del film da OFDB (un sito in lingua Tedesca) durante l'analisi. + Se abilitato, Ember tenterà di recuperare la trama breve del film da OFDB (un sito in lingua Tedesca) durante l'analisi. + Se abilitato, Ember tenterà di recuperare la trama del film da OFDB (un sito in lingua Tedesca) durante l'analisi. + Se abilitato, Ember tenterà di recuperare il genere del film da OFDB (un sito in lingua Tedesca) durante l'analisi. + Abilita l'analisi della certificazione del film. + Abiloita l'analisi del film nella classifica TOP 250. + Limita il numero di generi analizzati al seguente valore. + Limita il numero di attori analizzati al seguente valore. + Abilita l'analisi di altri membri del crew. (L'opzione di analisi di tutti i membri del crew deve essere abilitata) + Abilita l'analisi dei musicisti. (L'opzione di analisi di tutti i membri del crew deve essere abilitata) + Abilita l'analisi dei produttori. (L'opzione di analisi di tutti i membri del crew deve essere abilitata) + Abilita l'analisi degli scrittori. + Abilita l'analisi degli studios. + Abilita l'analisi della durata del film. + Abilita l'analisi della trama. + Abilita l'analisi della trama breve. + Abilita l'analisi del genere. + Abilita l'analisi del regista. + Abilita l'analisi della tagline. + Abilita l'analisi del cast. + Abilita l'analisi del numero di voti ricevuti. + Abilita l'analisi dell'URL del trailer. + Abilita l'analisi del punteggio del film. + Abilita l'analisi della data di rilascio. + Abilita l'analisi della certificazione MPAA. + Abilita l'analisi dell'anno di rilascio del film. + Abilita l'analisi del titolo del film. + Abilita o disabilita questo modulo + Muovi questo modulo d'analisi in alto. (I moduli d'analisi saranno processati in ordine, dall'alto verso il basso) + Muovi questo modulo d'analisi in basso. (I moduli d'analisi saranno processati in ordine, dall'alto verso il basso) + Abilita l'analisi dei posters con questo modulo. (Usa le impostazioni globali per i posters per maggiori opzioni) + Abilita l'analisi dei posters con questo modulo. (Usa le impostazioni globali per le fanart per maggiori opzioni) + Abilita il recupero delle immagini da theMovieDB.org. + Abilita il recupero delle immagini da + Abilita il recupero delle immagini da MoviePosterDB.com. + Abilita l'estrazione automatico di extrathumbs con questo modulo. (Usa le impostazioni globali per extrathumbs per maggiori opzioni) + Abilita il download del trailer con questo modulo. (Usa le impostazioni globali peri trailers per maggiori opzioni) + Inserisci il tempo d'attesa (in secondi) da essere usato per i siti di trailers. (Se non viene data una risposta nel tempo dato, il sito verrà temporaneamente saltato). + Seleziona i siti da cui recuperare gli URL ai trailers e/o files. + diff --git a/Addons/scraper.EmberCore/Langs/scraper.EmberCore.Italian_(it_IT).xml b/Addons/scraper.EmberCore/Langs/scraper.EmberCore.Italian_(it_IT).xml new file mode 100644 index 0000000..6388423 --- /dev/null +++ b/Addons/scraper.EmberCore/Langs/scraper.EmberCore.Italian_(it_IT).xml @@ -0,0 +1,118 @@ + + Analizzatori Serie TV predefiniti di Ember + Usa Genere OFDB + Use Trama OFDB + Usa Trama breve OFDB + Usa Titolo OFDB + IMDB Mirror: + Campi Analizzatore - Specifico + Timeout: + Siti Supportati: + Ottieni immagini da: + Cerca Risultati + Ricerco su IMDB... + l'ID inserito non è un ID valido IMDB. + Hai inserito manualmente un ID IMDB ma non hai verificato essere corretto. + Continuare senza verifica? + Impossibile ottenere i dettagli del film usando l'ID IMDB inserito. Controlla la l'ID e riprova. + Verifica Fallita. + Risultati Parziali ({0}) + Risultati Esatti ({0}) + Titoli Popolari ({0}) + Nessun Risultato Trovato + Visualizza i dettagli di ogni risultato per trovare il film corretto. + Risultati della ricerca del Film + Inserimento Manuale IMDB: + Verificare + Ricerco su IMDB... + Scaricamento dettagli... + Scaricamento {0} + Nessuna Fanart trovata per questo film. + Nessuna Fanart Trovata + Nessun Poster trovato per questo film. + Nessun poster Trovato + Recupero dati da TheMovieDB.com... + TheMovieDB.com non è abilitato + Recupero dati da IMPAwards.com... + IMPAwards.com non è abilitato + Recupero dati da MoviePosterDB.com... + MoviePostersDB.com non è abilitato + Preparazione Immagini... + Seleziona Poster + Seleziona Fanart + Controlla tutte le miniature + Check All Mid + Controlla tutti gli originali + Gli elementi selezionati saranno impostati come Fanart. Tuttui gli elementi selezionati saranno salvati nella cartella \extrathumbs. + Eseguo Attività Preliminari... + Scaricamento Immagini Selezionate... + Originale + Copertina + Medio + Piccolo + Originale ({0}x{1}) + Copertina ({0}x{1}) + Piccolo ({0}x{1}) + Medio ({0}x{1}) + Multiplo + Scaricamento trailer selezionato... + Copio file specificato nel trailer + Il trailer non può essere riprodotto. Questo potrebbe essere dovuto ad un URL non valido oppure non si ha il lettore adatto per riprodurre questo tipo di file. + Errore nella riproduzione del trailer + Sposta + Copia + Sposto file specificato nel trailer... + imposta nel file NFO + Seleziona Trailer + Seleziona Trailer da Scaricare + Inserimento Manuale Trailer + Linke Diretto o URL YouTube: + Compilazione Lista Trailer... + Anteprima Trailer + Trailer Locale: + I collegamenti al formato video potrebbero non essere recuperati. + Errore nel recupero dei collegamenti al formato video + Seleziona Formato + Ottengo i formati disponibili... + Formati Disponibili + Un poster delle dimensioni preferite potrebbe non essere trovato. Scegli un altro. + Nessuna Dimensione Preferita + Una fanart delle dimensioni preferite potrebbe non essere trovata. Scegli un altro. + Non ci sono episodi noti per questa Serie. Analizza la Serie, la Stagione o l'Episodio e prova ancora. + Nessun Episodio Conosciuto + Non c'è un poster disponibile per questo Episodio. + Guest Star + L'ID inserito non è un ID TVDB valido. + Scarico informazione della Serie... + Risultati ricerca Serie TV + Visualizza i dettagli di ogni risultato per trovare la Serie TV corretta. + Scarico immagine Fanart di dimensioni compete... + Carico Immagini Correnti... + (Scarico)Carico nuove immagini... + Imposto i predefiniti... + Mostra Poster + Fanart Episodio + Mostra Fanart + Poster Tutte Le Stagioni + Posters Stagione + Fanart Stagione + Posters Stagione {0} + Fanart Stagione {0} + Selezione Immagine TV + Immagine Corrente: + Ottieni Posters + Ottienti Fanart + Queste impostazioni sono specifiche di questo modulo.{0} Fai riferimento alle impostazioni globali per ulteriori opzioni. + Analizzatore Nativo di Ember + + IMDB + OFDB (Tedesco) + Dimensione TMDB Extrathumbs: + Trailers + Youtube/TMDB Trailer: + Formato XBMC + Lingua Preferita + Salva Fanart in: + Apri nel Browser + OFDB allows only 100 queries in a certain time-frame.{0}After you exceed the usage limits, your IP is blocked for a while and Ember uses IMDB data instead (English only). + diff --git a/Addons/scraper.EmberCore/Langs/scraper.EmberCore.Norwegian_(no_NO)-Help.xml b/Addons/scraper.EmberCore/Langs/scraper.EmberCore.Norwegian_(no_NO)-Help.xml new file mode 100644 index 0000000..79a98bf --- /dev/null +++ b/Addons/scraper.EmberCore/Langs/scraper.EmberCore.Norwegian_(no_NO)-Help.xml @@ -0,0 +1,45 @@ + + Slå modulen av eller på. + Flytt denne detaljhentermodulen opp i rekkefølgen. (Detaljhentermoduler vil bli bruk fra toppen ned.) + Flytt denne detaljhentermodulen ned i rekkefølgen. (Detaljhentermoduler vil bli bruk fra toppen ned.) + Før inn speilserver til IMDB. + Hvis påslått, EMM vil å prøve å finne filmtittel fra OFDB (en tyskspråklig side) under detaljhenting. + Hvis påslått, EMM vil prøve å finne beskrivelse av filmen på OFDB (en tyskspråklig side) under detaljhenting. + Hvis påslått, EMM vil hente filmhistorien fra OFDB (en tyskspråklig side) under detaljhenting. + Hvis påslått, EMM vil hente filmsjanger fra OFDB (en tyskspråklig side) under detaljhenting. + Slå på detaljhenting av filmsertifisering. + Slå på detaljhenting av IMDB Top 250-plassering. + Begrens antall detaljhentede sjangre. + Begrens antall skuespillere. + Slå på detaljhenting av andre crew. (Detaljhenting av fullt crew må være påslått) + Slå på detaljhenting av musikere. (Detaljhenting av fullt crew må være påslått) + Slå på detaljhenting av filmprodusenter. (Detaljhenting av full crew må være påslått) + Slå på detaljhenting av manusforfattere. + Slå på detaljhenting av studio. + Slå på detaljhenting av filmlengde. + Slå på detaljhenting av filmens historie. + Slå på detaljhenting av filmens beskrivelse. + Slå på detaljhenting av filmens sjanger. + Slå på detaljhetning av filmens regissør. + Slå på detaljhetning av filmens undertittel. + Slå på detaljhetning av filmens skuespillerbeholdning. + Slå på detaljhetning av filmens poeng. + Slå på detaljhetning av filmens trailer URL. + Slå på detaljhetning av filmens aldersgrense. + Slå på detaljhetning av filmens premieredato. + Slå på detaljhetning av filmens MPAA-markering. + Slå på detaljhetning av filmens år. + Slå på detaljhetning av filmens tittel. + Slå modulen av eller på. + Flytt denne detaljhentermodulen opp i rekkefølgen. (Detaljhentermoduler vil bli bruk fra toppen ned.) + Flytt denne detaljhentermodulen ned i rekkefølgen. (Detaljhentermoduler vil bli bruk fra toppen ned.) + Slå på detaljhetning av plakater i denne modulen. (Se globale plakatinnstillinger for flere valg) + Slå på detaljhetning av fankunst i denne modulen. (Se globale fankunstinnstillinger for flere valg) + Slå på bildehenting fra theMovieDB.org. + Slå på bildehenting fra + Slå på bildehenting fra MoviePosterDB.com + Slå på automatisk henting av ekstrakunst fra denne modulen. (Se globale ekstrakunstinnstillinger for flere valg) + Slå på automatisk henting av trailer fra denne modulen. (Se globale trailerinnstillinger for flere valg) + Før inn tiden (i sekunder) du vil bruke for timeout for trailersider. (Hvis siden ikke svarer innen timeoutfristen, så vil den bli hoppet over) + Velg sidene du vil bruke til trailer URL og/eller filer. + diff --git a/Addons/scraper.EmberCore/Langs/scraper.EmberCore.Norwegian_(no_NO).xml b/Addons/scraper.EmberCore/Langs/scraper.EmberCore.Norwegian_(no_NO).xml new file mode 100644 index 0000000..4e6af23 --- /dev/null +++ b/Addons/scraper.EmberCore/Langs/scraper.EmberCore.Norwegian_(no_NO).xml @@ -0,0 +1,118 @@ + + EMM TV-detaljhentere + Bruk OFDB-sjangere + Bruk OFDB-filmhistorie + Bruk OFDB-beskrivelse + Bruk OFDB-tittel + IMDB-speilserver: + Detaljhenterområder - Detaljhenterspesifikk + Tidsavbrudd: + Støttede sider: + Hent bilder fra: + Søkeresultater + Søker TMDB... + IDen du førte inn er ikke en riktig IMDB-ID. + Du har ført inn en IMDB-ID, men har ikke verifisert om den er riktig. + Fortsette uten verifisering? + Kunne ikke hente filmdetaljer for den innførte IDen. Vennligst sjekk IDen og prøv igjen. + Verifisering feilet + Delvise treff ({0}) + Eksakte treff ({0}) + Populære titler ({0}) + Ingen funnet + Se detaljer fra hvert treff for å finne riktig film. + Filmsøkresultater + Manuell IMDB innføring: + Verifiser + Søker TMDB... + Laster ned detaljer... + Laster ned {0} + Ingen fankunst funnet for denne filmen. + Ingen fankunst funnet + Ingen plakater funnet for denne filmen. + Ingen plakater funnet + Henter data fra TheMovieDB.com... + TheMovieDB.com er ikke påslått + Henter data fra IMPAwards.com... + IMPAwards.com er ikke påslått + Henter data fra MoviePosterDB.com... + MoviePostersDB.com er ikke påslått + Forbereder bilder... + Velg plakat + Velg fankunst + Huk av alle tommelbilder + Huk av alle Mid + Huk av alle originale + Valgte objekt vil bli satt som fankunst. Alle hukede objekter vil bli lagret i \extrathumbs. + Utfører forberedende oppgaver... + Laster ned valgte bilde... + Original + Cover + Medium + Liten + Original ({0}x{1}) + Cover {0}x{1} + Liten ({0}x{1}) + Medium ({0}x{1}) + Flere + Laster ned valgt trailer... + Kopierer valgt fil til trailer... + Traileren kunne ikke spilles av. Det kan være at URL ikke er gyldig, eller at du ikke har riktig avspiller for denne filtypen. + Kunne spille av trailer. + Flytt + Kopiér + Flytter valgt fil til trailer... + Sett i nfo + Velg trailer + Velg trailer til å laste ned + Manuell trailerinnføring + Direkte link eller YouTube URL: + Kompilerer trailerliste... + Sniktitt på trailer + Lokal trailer: + Videoformatlenkene kunne ikke hentes + Kunne ikke hente videoformatlenker + Velg format + Henter tilgjengelige formater... + Tilgjengelige formater + En plakat i din valgte størrelse kunne ikke hentes. Vennligst velg en annen. + Ingen foretrukket størrelse + Fankunst i din foretrukkede størrelse kunne ikke bli funnet. Vennligst velg en annen. + Det er ingen kjente episoder for denne serien. Detaljhent serien, sesongen eller episoden og prøv på nytt. + Ingen kjente episoder + Det er ingen plakater for denne episoden. + Gjesteskuespiller + IDen du innførte er ikke en gyldig TVDB ID. + Laster ned serieinfo... + TVsøk-resultater + Se detaljer fra hvert resultat for å finne riktig serie. + Laster ned fankunst i full størrelse... + Laster inn nåværende bilder... + Laster (ned) nye bilder... + Setter standarder... + Serieplakat + Episodefankunst + Vis fankunst + Alle sesonger-plakat + Sesongplakater + Sesongfankunst + Sesong {0}-plakater + Sesong {0}-fankunst + TV-bilde valg + Nåværende bilde: + Hent plakater + Hent fankunst + Disse innstillingene er spesifikk til denne modulen.{0}Vennligst se globale innstillinger for flere valg. + EMM film-detaljhentere + + IMDB + OFDB (Tysk) + TMDB Ekstrakunst-størrelse: + Trailere + Youtube/TMDB Trailer: + XBMC-format + Foretrukket språk + Lagre fankunst i: + Åpne i nettleser + OFDB tillater kun 100 forespørsler i en gitt tidsramme.{0}Sender du flere enn dette, så vil IP-adressen din bli sperret for en stund, og IMDB vil bli brukt istedet (kun engelsk). + diff --git a/Addons/scraper.EmberCore/Langs/scraper.EmberCore.Spanish_(es_ES)-Help.xml b/Addons/scraper.EmberCore/Langs/scraper.EmberCore.Spanish_(es_ES)-Help.xml new file mode 100644 index 0000000..ddb1413 --- /dev/null +++ b/Addons/scraper.EmberCore/Langs/scraper.EmberCore.Spanish_(es_ES)-Help.xml @@ -0,0 +1,45 @@ + + Habilitar o deshabilitar este módulo. + Mover hacia arriba este scraper en el orden. (Los módulos scrapers serán procesados en orden desde arriba hacia abajo) + Mover hacia abajo este scraper en el orden. (Los módulos scrapers serán procesados en orden desde arriba hacia abajo) + Entrar el sitio mirror a utilizar cuando se traiga información desde IMDB. + Si está habilitado, Ember intentará traer el título de la película desde OFDB (un sitio de lengua alemana) cuando haga scraping. + Si está habilitado, Ember intentará traer el resumen de la trama de la película desde OFDB (un sitio de lengua alemana) cuando haga scraping. + Si está habilitado, Ember intentará traer la trama de la película desde OFDB (un sitio de lengua alemana) cuando haga scraping. + Si está habilitado, Ember intentará traer el género de la película desde OFDB (un sitio de lengua alemana) cuando haga scraping. + Habilitar hacer scraping de la clasificación de la película. + Habilitar hacer scraping de la posición IMDB Top 250 de la película. + Limitar el número de géneros a hacer scraping al valor digitado. + Limitar el número de actores a hacer scraping al valor digitado. + Habilitar hacer scraping al otro equipo de la película (Hacer Scraping al Equipo Completo debe estar habilitado) + Habilitar hacer scraping a los músicos de la película (Hacer Scraping al Equipo Completo debe estar habilitado) + Habilitar hacer scraping a los productores de la película (Hacer Scraping al Equipo Completo debe estar habilitado) + Habilitar hacer scraping a los escritores de la película. + Habilitar hacer scraping al estudio cinematográfico de la película. + Habilitar hacer scraping al tiempo de duración de la película. + Habilitar hacer scraping a la trama de la película. + Habilitar hacer scraping al resumen de la trama de la película. + Habilitar hacer scraping al género de la película. + Habilitar hacer scraping al director de la película. + Habilitar hacer scraping al eslogan de la película. + Habilitar hacer scraping al reparto de la película. + Habilitar hacer scraping a los votos de la película. + Habilitar hacer scraping al URL del trailer de la película. + Habilitar hacer scraping a la clasificación de la película. + Habilitar hacer scraping a la fecha de estreno de la película. + Habilitar hacer scraping a la clasificación MPAA de la película. + Habilitar hacer scraping al año de la película. + Habilitar hacer scraping al título de la película. + Habilitar o deshabilitar este módulo. + Mover hacia arriba este scraper en el orden. (Los módulos scrapers serán procesados en orden desde arriba hacia abajo) + Mover hacia abajo este scraper en el orden. (Los módulos scrapers serán procesados en orden desde arriba hacia abajo) + Habilitar hacer scraping de posters desde este módulo. (Referirse a los ajustes globales de posters para más opciones) + Habilitar hacer scraping de fanart desde este módulo. (Referirse a los ajustes globales de fanart para más opciones) + Habilitar traer imágenes desde theMovieDB.org. + Habilitar traer imágenes desde + Habilitar traer imágenes desde MoviePosterDB.com + Habilitar la extracción automática de extrathumbs desde este módulo. (Referirse a los ajustes globales de extrathumb para más opciones) + Habilitar la descarga de trailer desde este módulo. (Referirse a los ajustes globales de trailer para más opciones) + Digite el tiempo (en segundos) que desea utilizar como tiempo máximo de espera para los sitios de trailers. (Si no hay respuesta en dicho tiempo máximo, el sitio de trailer será ignorado temporalmente.) + Seleccione los sitios dede los cuales desearía traer los URL y/o archivos de trailers. + diff --git a/Addons/scraper.EmberCore/Langs/scraper.EmberCore.Spanish_(es_ES).xml b/Addons/scraper.EmberCore/Langs/scraper.EmberCore.Spanish_(es_ES).xml new file mode 100644 index 0000000..297afed --- /dev/null +++ b/Addons/scraper.EmberCore/Langs/scraper.EmberCore.Spanish_(es_ES).xml @@ -0,0 +1,118 @@ + + Scrapers de TV Nativos de Ember + Utilizar Género de OFDB + Utilizar Trama de OFDB + Utilizar Resumen de Trama de OFDB + Utilizar Título de OFDB + Mirror IMDB: + Campos de Scraper - Específicos al Scraper + Tiempo máximo de espera: + Sitios Soportados: + Obtener Imágenes Desde: + Resultados de Búsqueda + Buscando en IMDB... + El ID que ha introducido no es un ID válido de IMDB. + Ha introducido manualmente un ID de IMDB, pero no ha verificado si está correcto. + ¿Continuar sin verificación? + No ha sido posible obtener los detalles de la pelicula para el ID de IMDB introducido. Por favor verifique el ID e intente de nuevo. + Falló la Verificación + Correspondencias Parciales ({0}) + Correspondencias Exactas ({0}) + Títulos Populares ({0}) + No se ha encontrado ninguna correspondencia + Ver detalles de cada resultado para encontrar la película correcta. + Resultados de Búsqueda de Películas + Entrada Manual de ID de IMDB: + Verificar + Buscando en IMDB... + Descargando detalles... + Descargando {0} + No se ha encontrado fanart para esta película. + No se ha encontrado Fanart + No se han encontrado Posters para esta pelicula. + No se han encontrado Posters + Obteniendo datos desde TheMovieDB.com... + TheMovieDB.com no está habilitado + Obteniendo datos desde IMPAwards.com... + IMPAwards.com no está habilitado + Obteniendo datos desde MoviePosterDB.com... + MoviePosterDB.com no está habilitado + Preparando imágenes... + Seleccione el Poster + Seleccione el Fanart + Seleccionar tamaño Thumb para todos + Seleccionar tamaño Mid para todos + Seleccionar tamaño Original para todos + El ítem seleccionado será establecido como fanart. Todos los ítems seleccionados serán guardados en \extrathumbs. + Realizando Tareas Preliminares... + Descargando Imagen Seleccionada... + Original + Cover + Mediano + Pequeño + Original ({0}x{1}) + Cover ({0}x{1}) + Pequeño ({0}x{1}) + Mediano ({0}x{1}) + Múltiple + Descargando trailer seleccionado... + Copiando archivo especificado a trailer... + El trailer no se puede reproducir. Quizá debido a una URL inválida o que no tengas un reproductor apropiado para el tipo de trailer. + Error al Reproducir Trailer + Mover + Copiar + Moviendo archivo especificado a trailer... + Guardar en NFO + Seleccionar Trailer + Seleccionar Trailer a Descargar + Entrada Manual de Trailer + Enlace Directo o URL de YouTube: + Compilando lista de trailers... + Vista Previa de Trailer + Trailer Local: + Los enlaces de formato de vídeo no pudieron ser obtenidos. + Error al Obtener Enlaces de Formato de Vídeo + Seleccione Formato + Obteniendo formatos disponibles... + Formatos disponibles + No pudo encontrarse un poster de su tamaño preferido. Por favor seleccione otro. + No hay Tamaño Preferido + No pudo encontrarse Fanart de su tamaño preferido. Por favor seleccione otro. + No existen episodios conocidos para esta serie. Haga scraping de la serie, temporado o episodio e intente de nuevo. + No hay Episodios Conocidos + No hay poster disponible para este episodio. + Estrella Invitada + El ID que ha introducido no es un ID válido de TVDB. + Descargando información de la serie... + Resultados de Búsqueda de TV + Visulice los detalles de cada resultado para encontrar la Serie de TV correcta. + Descargando Imágen de Farnart de Tamaño completo + Cargando Imágenes Actuales... + (Des)Cargando Imágenes Nuevas... + Estableciendo Valores por Defecto... + Mostrar Poster + Fanart de Episodio + Fanart de Serie + Poster para Todas las Temporadas + Posters de Temporada + Fanart de Temporada + Posters de Temporada {0} + Fanart de Temporada {0} + Selección de Imagen de TV + Imagen Actual: + Obtener Posters + Obtener Fanart + Estos ajustes son específicos a este módulo.{0}Por favor refiérase a los ajustes globales para más opciones. + Scrapers de Película Nativos de Ember + + IMDB + OFDB (Alemán) + Tamaño de Extrathumbs de TMDB: + Trailers + Trailer de Youtube/IMDB: + Formato de XBMC + Idioma Preferido + Guardar Fanart en: + Abrir en el Navegador + OFDB permite sólo 100 consultas en un tiempo determinado.{0}Después de exceder los límites, tu IP será bloqueada un tiempo y Ember usará IMDB en sustitución (sólo en Inglés) + diff --git a/Addons/scraper.EmberCore/My Project/AssemblyInfo.vb b/Addons/scraper.EmberCore/My Project/AssemblyInfo.vb index 38ae1c7..552f704 100644 --- a/Addons/scraper.EmberCore/My Project/AssemblyInfo.vb +++ b/Addons/scraper.EmberCore/My Project/AssemblyInfo.vb @@ -9,10 +9,10 @@ Imports System.Runtime.InteropServices ' Review the values of the assembly attributes - + - + @@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices ' by using the '*' as shown below: ' - - + + diff --git a/Addons/scraper.EmberCore/Scraper/clsScrapeIMDB.vb b/Addons/scraper.EmberCore/Scraper/clsScrapeIMDB.vb index 0103bae..2c147dd 100644 --- a/Addons/scraper.EmberCore/Scraper/clsScrapeIMDB.vb +++ b/Addons/scraper.EmberCore/Scraper/clsScrapeIMDB.vb @@ -201,7 +201,7 @@ Namespace IMDB Dim D, W, tempD As Integer - If Options.bMPAA Then + If Options.bMPAA AndAlso (String.IsNullOrEmpty(IMDBMovie.MPAA) OrElse Not Master.eSettings.LockMPAA) Then tempD = If(HTML.IndexOf("
MPAA:
") > 0, HTML.IndexOf("
MPAA:
"), 0) D = If(tempD > 0, HTML.IndexOf("
", tempD), 0) @@ -213,7 +213,7 @@ Namespace IMDB If bwIMDB.CancellationPending Then Return Nothing - If Options.bCert Then + If Options.bCert AndAlso (String.IsNullOrEmpty(IMDBMovie.Certification) OrElse Not Master.eSettings.LockMPAA) Then 'get certifications D = HTML.IndexOf("
Certification:
") @@ -230,15 +230,83 @@ Namespace IMDB If Options.bMPAA AndAlso Master.eSettings.UseCertForMPAA AndAlso (Not Master.eSettings.CertificationLang = "USA" OrElse (Master.eSettings.CertificationLang = "USA" AndAlso String.IsNullOrEmpty(IMDBMovie.MPAA))) Then IMDBMovie.MPAA = If(Master.eSettings.CertificationLang = "USA", StringUtils.USACertToMPAA(IMDBMovie.Certification), If(Master.eSettings.OnlyValueForCert, IMDBMovie.Certification.Split(Convert.ToChar(":"))(1), IMDBMovie.Certification)) End If + + + Else + 'No FSK Rating was found -> Alternative: Set USA Rating instead as fallback, MPAA will be converted to FSK, Certification from USA will be used, so people can see that US info was used! + If Master.eSettings.UseMPAAForFSK Then + Try + If Master.eSettings.CertificationLang = "Germany" AndAlso (IMDBMovie.MPAA.ToLower.Contains("usa") Or IMDBMovie.MPAA.ToLower.Contains("rated")) Then + Dim LANGRATING As String = "USA" + Dim Cert2 = From M In rCert Select N = String.Format("{0}:{1}", DirectCast(M, Match).Groups(1).ToString.Trim, DirectCast(M, Match).Groups(2).ToString.Trim) Order By N Descending Where N.Contains(LANGRATING) + If Cert2.Count > 0 Then + IMDBMovie.Certification = Cert2(0).ToString.Replace("West", String.Empty).Trim + If Options.bMPAA AndAlso Master.eSettings.UseCertForMPAA Then + If IMDBMovie.MPAA.ToLower.Contains("usa:g") Or IMDBMovie.MPAA.ToLower.Contains("rated g") Then + IMDBMovie.Certification = IMDBMovie.MPAA + If Master.eSettings.OnlyValueForCert = False Then + IMDBMovie.MPAA = "Germany:0" + Else + IMDBMovie.MPAA = "0" + End If + + ElseIf IMDBMovie.MPAA.ToLower.Contains("usa:pg-13") Or IMDBMovie.MPAA.ToLower.Contains("rated pg-13") Then + IMDBMovie.Certification = IMDBMovie.MPAA + If Master.eSettings.OnlyValueForCert = False Then + IMDBMovie.MPAA = "Germany:16" + Else + IMDBMovie.MPAA = "16" + End If + + ElseIf IMDBMovie.MPAA.ToLower.Contains("usa:pg") Or IMDBMovie.MPAA.ToLower.Contains("rated pg") Then + IMDBMovie.Certification = IMDBMovie.MPAA + If Master.eSettings.OnlyValueForCert = False Then + IMDBMovie.MPAA = "Germany:12" + Else + IMDBMovie.MPAA = "12" + End If + + ElseIf IMDBMovie.Certification.ToLower.Contains("usa:r") Or IMDBMovie.Certification.ToLower.Contains("rated r") Then + IMDBMovie.Certification = IMDBMovie.MPAA + If Master.eSettings.OnlyValueForCert = False Then + IMDBMovie.MPAA = "Germany:18" + Else + IMDBMovie.MPAA = "18" + End If + + ElseIf IMDBMovie.Certification.ToLower.Contains("usa:nc-17") Or IMDBMovie.Certification.ToLower.Contains("rated nc") Then + IMDBMovie.Certification = IMDBMovie.MPAA + If Master.eSettings.OnlyValueForCert = False Then + IMDBMovie.MPAA = "Germany:18" + Else + IMDBMovie.MPAA = "18" + End If + + End If + End If + End If + End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + + End If End If + + Else + IMDBMovie.Certification = Strings.Join(Cert.ToArray, " / ").Trim + + End If End If End If + If String.IsNullOrEmpty(IMDBMovie.Certification) AndAlso Not String.IsNullOrEmpty(IMDBMovie.MPAA) Then IMDBMovie.Certification = IMDBMovie.MPAA End If + End If If bwIMDB.CancellationPending Then Return Nothing @@ -308,6 +376,7 @@ Namespace IMDB 'Find all cast of the movie 'Match the table only 1 time Dim ActorsTable As String = Regex.Match(HTML, ACTORTABLE_PATTERN).ToString + Dim ThumbsSize = AdvancedSettings.GetSetting("ActorThumbsSize", "SY275_SX400") Dim rCast As MatchCollection = Regex.Matches(ActorsTable, TR_PATTERN) @@ -318,7 +387,7 @@ Namespace IMDB Select New MediaContainers.Person(Web.HttpUtility.HtmlDecode(m1.Groups("name").ToString.Trim), _ Web.HttpUtility.HtmlDecode(m2.ToString.Trim), _ If(m3.Groups("thumb").ToString.IndexOf("addtiny") > 0 OrElse m3.Groups("thumb").ToString.IndexOf("no_photo") > 0, String.Empty, Strings.Replace(Web.HttpUtility.HtmlDecode(m3.Groups("thumb").ToString.Trim), _ - "._SX23_SY30_.jpg", "._SY275_SX400_.jpg"))) Take If(Master.eSettings.ActorLimit > 0, Master.eSettings.ActorLimit, 999999) + "._SX23_SY30_.jpg", String.Concat("._", ThumbsSize, "_.jpg")))) Take If(Master.eSettings.ActorLimit > 0, Master.eSettings.ActorLimit, 999999) If Master.eSettings.CastImagesOnly Then Cast1 = Cast1.Where(Function(p As MediaContainers.Person) (Not String.IsNullOrEmpty(p.Thumb))) @@ -389,9 +458,20 @@ Namespace IMDB Select Web.HttpUtility.HtmlDecode(DirectCast(M, Match).Groups("name").ToString) If Cou.Count > 0 Then - IMDBMovie.Country = Strings.Join(Cou.ToArray, " / ").Trim + + 'fix for display country flag in XBMC! + If Strings.Join(Cou.ToArray, " / ").Trim.ToUpper.Contains("USA") Then + IMDBMovie.Country = "United States of America" + ElseIf Strings.Join(Cou.ToArray, " / ").Trim.ToUpper.Contains("UK") Then + IMDBMovie.Country = "United Kingdom" + Else + IMDBMovie.Country = Strings.Join(Cou.ToArray, " / ").Trim() + End If + End If End If + + End If If bwIMDB.CancellationPending Then Return Nothing @@ -413,8 +493,11 @@ Namespace IMDB Dim Gen = From M In rGenres _ Select N = Web.HttpUtility.HtmlDecode(DirectCast(M, Match).Groups("name").ToString) Where Not N.Contains("more") Take If(Master.eSettings.GenreLimit > 0, Master.eSettings.GenreLimit, 999999) If Gen.Count > 0 Then - 'force splitting of /ed genres - IMDBMovie.Genre = Strings.Join(Gen.ToArray, "/").Trim.Replace("/", " / ").Trim + Dim tGenre As String = Strings.Join(Gen.ToArray, "/").Trim + tGenre = StringUtils.GenreFilter(tGenre) + If Not String.IsNullOrEmpty(tGenre) Then + IMDBMovie.Genre = Strings.Join(tGenre.Split(Convert.ToChar("/")), " / ").Trim + End If End If End If End If @@ -637,9 +720,9 @@ mPlot: Dim b As Boolean = False Dim imdbMovie As MediaContainers.Movie = dbMovie.Movie - r.PopularTitles.Sort() - r.ExactMatches.Sort() - r.PartialMatches.Sort() + 'r.PopularTitles.Sort() + 'r.ExactMatches.Sort() + 'r.PartialMatches.Sort() Try Select Case iType @@ -655,7 +738,7 @@ mPlot: Master.tmpMovie.Clear() Using dIMDB As New dlgIMDBSearchResults dIMDB.IMDBURL = IMDBURL - If dIMDB.ShowDialog(r, sMovieName) = Windows.Forms.DialogResult.OK Then + If dIMDB.ShowDialog(r, sMovieName, dbMovie.Filename) = Windows.Forms.DialogResult.OK Then If String.IsNullOrEmpty(Master.tmpMovie.IMDBID) Then b = False Else @@ -689,8 +772,16 @@ mPlot: 'End If If r.ExactMatches.Count = 1 Then b = GetMovieInfo(r.ExactMatches.Item(0).IMDBID, imdbMovie, Master.eSettings.FullCrew, Master.eSettings.FullCast, False, Options, True) - ElseIf r.ExactMatches.Count > 1 AndAlso (r.ExactMatches(If(exactHaveYear >= 0, exactHaveYear, 0)).Lev <= 5 OrElse useAnyway) Then - b = GetMovieInfo(r.ExactMatches.Item(If(exactHaveYear >= 0, exactHaveYear, 0)).IMDBID, imdbMovie, Master.eSettings.FullCrew, Master.eSettings.FullCast, False, Options, True) + ElseIf r.ExactMatches.Count > 1 AndAlso exactHaveYear >= 0 Then + b = GetMovieInfo(r.ExactMatches.Item(exactHaveYear).IMDBID, imdbMovie, Master.eSettings.FullCrew, Master.eSettings.FullCast, False, Options, True) + ElseIf r.PopularTitles.Count > 0 AndAlso popularHaveYear >= 0 Then + b = GetMovieInfo(r.PopularTitles.Item(popularHaveYear).IMDBID, imdbMovie, Master.eSettings.FullCrew, Master.eSettings.FullCrew, False, Options, True) + ElseIf r.ExactMatches.Count > 0 AndAlso (r.ExactMatches(0).Lev <= 5 OrElse useAnyway) Then + b = GetMovieInfo(r.ExactMatches.Item(0).IMDBID, imdbMovie, Master.eSettings.FullCrew, Master.eSettings.FullCast, False, Options, True) + ElseIf r.PopularTitles.Count > 0 AndAlso (r.PopularTitles(0).Lev <= 5 OrElse useAnyway) Then + b = GetMovieInfo(r.PopularTitles.Item(0).IMDBID, imdbMovie, Master.eSettings.FullCrew, Master.eSettings.FullCast, False, Options, True) + ElseIf r.PartialMatches.Count > 0 AndAlso (r.PartialMatches(0).Lev <= 5 OrElse useAnyway) Then + b = GetMovieInfo(r.PartialMatches.Item(0).IMDBID, imdbMovie, Master.eSettings.FullCrew, Master.eSettings.FullCast, False, Options, True) End If End Select @@ -843,84 +934,95 @@ mPlot: Dim D, W As Integer Dim R As New MovieSearchResults - Dim sHTTP As New HTTP - Dim HTML As String = sHTTP.DownloadData(String.Concat("http://", IMDBURL, "/find?q=", Web.HttpUtility.UrlEncode(sMovie, System.Text.Encoding.GetEncoding("ISO-8859-1")), "&s=all")) - Dim HTMLm As String = sHTTP.DownloadData(String.Concat("http://", IMDBURL, "/find?q=", Web.HttpUtility.UrlEncode(sMovie, System.Text.Encoding.GetEncoding("ISO-8859-1")), "&s=tt&ttype=ft&ref_=fn_ft")) - Dim HTMLe As String = sHTTP.DownloadData(String.Concat("http://", IMDBURL, "/find?q=", Web.HttpUtility.UrlEncode(sMovie, System.Text.Encoding.GetEncoding("ISO-8859-1")), "&s=tt&ttype=ft&exact=true&ref_=fn_tt_ex")) - Dim rUri As String = sHTTP.ResponseUri - sHTTP = Nothing - - 'Check if we've been redirected straight to the movie page - If Regex.IsMatch(rUri, IMDB_ID_REGEX) Then - Dim lNewMovie As MediaContainers.Movie = New MediaContainers.Movie(Regex.Match(rUri, IMDB_ID_REGEX).ToString, _ - StringUtils.ProperCase(sMovie), Regex.Match(Regex.Match(HTML, MOVIE_TITLE_PATTERN).ToString, "(?<=\()\d+(?=.*\))").ToString, 0) + If Regex.IsMatch(sMovie.ToLower, IMDB_ID_REGEX) Then + Dim sHTTP As New HTTP + Dim eIMDBID = Regex.Match(sMovie.ToLower, IMDB_ID_REGEX).ToString + Dim HTMLe As String = sHTTP.DownloadData(String.Concat("http://", IMDBURL, "/title/", eIMDBID)) + Dim lNewMovie As MediaContainers.Movie = New MediaContainers.Movie(eIMDBID, Regex.Match(HTMLe, MOVIE_TITLE_PATTERN).ToString.Replace(" - IMDb", String.Empty), "", 0) ', Regex.Match(Regex.Match(HTMLe, MOVIE_TITLE_PATTERN).ToString, "(?<=\()\d+(?=.*\))").ToString, 0) R.ExactMatches.Add(lNewMovie) Return R - End If + Else + Dim sHTTP As New HTTP + Dim HTML As String = sHTTP.DownloadData(String.Concat("http://", IMDBURL, "/find?q=", Web.HttpUtility.UrlEncode(sMovie), "&s=tt&ttype=ft")) + Dim HTMLp As String = sHTTP.DownloadData(String.Concat("http://", IMDBURL, "/find?q=", Web.HttpUtility.UrlEncode(sMovie), "&s=tt&ttype=ft&ref_=fn_tt_pop")) + Dim HTMLm As String = sHTTP.DownloadData(String.Concat("http://", IMDBURL, "/find?q=", Web.HttpUtility.UrlEncode(sMovie), "&s=tt&ttype=ft&ref_=fn_ft")) + Dim HTMLe As String = sHTTP.DownloadData(String.Concat("http://", IMDBURL, "/find?q=", Web.HttpUtility.UrlEncode(sMovie), "&s=tt&ttype=ft&exact=true&ref_=fn_tt_ex")) + Dim rUri As String = sHTTP.ResponseUri + sHTTP = Nothing + + 'Check if we've been redirected straight to the movie page + If Regex.IsMatch(rUri.ToLower, IMDB_ID_REGEX) Then + Dim lNewMovie As MediaContainers.Movie = New MediaContainers.Movie(Regex.Match(rUri.ToLower, IMDB_ID_REGEX).ToString, _ + StringUtils.ProperCase(sMovie), Regex.Match(Regex.Match(HTML, MOVIE_TITLE_PATTERN).ToString, "(?<=\()\d+(?=.*\))").ToString, 0) + R.ExactMatches.Add(lNewMovie) + Return R + End If - D = HTML.IndexOf("Titles") - If D <= 0 Then GoTo mPartial - W = HTML.IndexOf("", D) + 8 + 'popular titles + D = HTMLp.IndexOf("Titles") + If D <= 0 Then GoTo mPartial + W = HTMLp.IndexOf("", D) + 8 - Dim Table As String = Regex.Match(HTML.Substring(D, W - D), TABLE_PATTERN).ToString + Dim Table As String = Regex.Match(HTML.Substring(D, W - D), TABLE_PATTERN).ToString - Dim qPopular = From Mtr In Regex.Matches(Table, TITLE_PATTERN) _ - Where Not DirectCast(Mtr, Match).Groups("name").ToString.Contains("Titles") - If D <= 0 Then GoTo mApprox - W = HTMLm.IndexOf("", D) + 8 + D = HTMLm.IndexOf("Titles") + If D <= 0 Then GoTo mExact + W = HTMLm.IndexOf("", D) + 8 - Table = Regex.Match(HTMLm.Substring(D, W - D), TABLE_PATTERN).ToString - Dim qpartial = From Mtr In Regex.Matches(Table, TITLE_PATTERN) _ - Where Not DirectCast(Mtr, Match).Groups("name").ToString.Contains("", D) + 8 + ' 'Now process "Approx Matches" and merge both Partial and Approx matches + ' D = HTML.IndexOf("Titles (Approx Matches)") + ' If D <= 0 Then GoTo mExact + ' W = HTML.IndexOf("", D) + 8 - Table = Regex.Match(HTML.Substring(D, W - D), TABLE_PATTERN).ToString + ' Table = Regex.Match(HTML.Substring(D, W - D), TABLE_PATTERN).ToString - Dim qApprox = From Mtr In Regex.Matches(Table, TITLE_PATTERN) _ - Where Not DirectCast(Mtr, Match).Groups("name").ToString.Contains("Titles") - If D <= 0 Then GoTo mResult - W = HTMLe.IndexOf("", D) + 8 + D = HTMLe.IndexOf("Titles") + If D <= 0 Then GoTo mResult + W = HTMLe.IndexOf("", D) + 8 - Table = String.Empty - Table = Regex.Match(HTMLe.Substring(D, W - D), TABLE_PATTERN).ToString + Table = String.Empty + Table = Regex.Match(HTMLe.Substring(D, W - D), TABLE_PATTERN).ToString - Dim qExact = From Mtr In Regex.Matches(Table, TITLE_PATTERN) _ - Where Not DirectCast(Mtr, Match).Groups("name").ToString.Contains("]*ver[^>]*.jpg))|(thumbs/imp_([^>]*.jpg))") + Dim mcPoster As MatchCollection = Regex.Matches(HTML, "(thumbs/imp_([^>]*ver[^>]*.jpg))|(thumbs/imp_([^>]*.jpg))") Dim PosterURL As String @@ -129,7 +129,7 @@ Namespace IMPA Try Dim sHTTP As New HTTP - Dim HTML As String = sHTTP.DownloadData(String.Concat("http://", IMDBURL, "/title/tt", IMDBID, "/posters")) + Dim HTML As String = sHTTP.DownloadData(String.Concat("http://www.imdb.com/title/tt", IMDBID, "/posters")) sHTTP = Nothing Dim mcIMPA As MatchCollection = Regex.Matches(HTML, "http://([^""]*)impawards.com/([^""]*)") diff --git a/Addons/scraper.EmberCore/Scraper/clsScrapeImages.vb b/Addons/scraper.EmberCore/Scraper/clsScrapeImages.vb index 5fc7e6f..7bdb821 100644 --- a/Addons/scraper.EmberCore/Scraper/clsScrapeImages.vb +++ b/Addons/scraper.EmberCore/Scraper/clsScrapeImages.vb @@ -39,16 +39,16 @@ Public Class ScrapeImages Dim tmpListTMDB As New List(Of MediaContainers.Image) Dim tmpListIMPA As New List(Of MediaContainers.Image) Dim tmpListMPDB As New List(Of MediaContainers.Image) - Dim tmpIMPAX As Image = Nothing - Dim tmpIMPAL As Image = Nothing - Dim tmpIMPAM As Image = Nothing - Dim tmpIMPAS As Image = Nothing - Dim tmpIMPAW As Image = Nothing - Dim tmpMPDBX As Image = Nothing - Dim tmpMPDBL As Image = Nothing - Dim tmpMPDBM As Image = Nothing - Dim tmpMPDBS As Image = Nothing - Dim tmpMPDBW As Image = Nothing + Dim tmpIMPAX As Images = Nothing + Dim tmpIMPAL As Images = Nothing + Dim tmpIMPAM As Images = Nothing + Dim tmpIMPAS As Images = Nothing + Dim tmpIMPAW As Images = Nothing + Dim tmpMPDBX As Images = Nothing + Dim tmpMPDBL As Images = Nothing + Dim tmpMPDBM As Images = Nothing + Dim tmpMPDBS As Images = Nothing + Dim tmpMPDBW As Images = Nothing Dim CachePath As String = String.Concat(Master.TempPath, Path.DirectorySeparatorChar, IMDBID, Path.DirectorySeparatorChar, If(iType = Enums.ImageType.Posters, "posters", "fanart")) @@ -109,8 +109,8 @@ Public Class ScrapeImages tmdbThumb.WebImage.FromWeb(tmdbThumb.URL) If Not IsNothing(tmdbThumb.WebImage.Image) Then If Not Master.eSettings.NoSaveImagesToNfo Then imgResult.Posters.Add(tmdbThumb.URL) - Image.Image = tmdbThumb.WebImage.Image - Image.Save(Path.Combine(CachePath, String.Concat("poster_(", tmdbThumb.Description, ")_(url=", StringUtils.CleanURL(tmdbThumb.URL), ").jpg"))) + Image = tmdbThumb.WebImage + Image.Save(Path.Combine(CachePath, String.Concat("poster_(", tmdbThumb.Description, ")_(url=", StringUtils.CleanURL(tmdbThumb.URL), ").jpg")), , , False) End If Image.Clear() Next @@ -128,13 +128,13 @@ Public Class ScrapeImages For Each iMovie As MediaContainers.Image In tmpListTMDB If Images.GetPosterDims(iMovie.WebImage.Image) = Master.eSettings.PreferredPosterSize Then - Image.Image = iMovie.WebImage.Image + Image = iMovie.WebImage GoTo foundit End If Next If Not doAsk Then - Image.Image = tmpListTMDB.OrderBy(Function(i) i.WebImage.Image.Height + i.WebImage.Image.Height).FirstOrDefault.WebImage.Image + Image = tmpListTMDB.OrderBy(Function(i) i.WebImage.Image.Height + i.WebImage.Image.Height).FirstOrDefault.WebImage End If End If Else @@ -199,23 +199,23 @@ Public Class ScrapeImages Select Case tmpSize Case Enums.PosterSize.Xlrg If IsNothing(tmpIMPAX) Then - tmpIMPAX = New Bitmap(Image.Image) + tmpIMPAX = Image End If Case Enums.PosterSize.Lrg If IsNothing(tmpIMPAL) Then - tmpIMPAL = New Bitmap(Image.Image) + tmpIMPAL = Image End If Case Enums.PosterSize.Mid If IsNothing(tmpIMPAM) Then - tmpIMPAM = New Bitmap(Image.Image) + tmpIMPAM = Image End If Case Enums.PosterSize.Small If IsNothing(tmpIMPAS) Then - tmpIMPAS = New Bitmap(Image.Image) + tmpIMPAS = Image End If Case Enums.PosterSize.Wide If IsNothing(tmpIMPAW) Then - tmpIMPAW = New Bitmap(Image.Image) + tmpIMPAW = Image End If End Select Else @@ -247,23 +247,23 @@ Public Class ScrapeImages Select Case tmpSize Case Enums.PosterSize.Xlrg If IsNothing(tmpMPDBX) Then - tmpMPDBX = New Bitmap(Image.Image) + tmpMPDBX = Image End If Case Enums.PosterSize.Lrg If IsNothing(tmpMPDBL) Then - tmpMPDBL = New Bitmap(Image.Image) + tmpMPDBL = Image End If Case Enums.PosterSize.Mid If IsNothing(tmpMPDBM) Then - tmpMPDBM = New Bitmap(Image.Image) + tmpMPDBM = Image End If Case Enums.PosterSize.Small If IsNothing(tmpMPDBS) Then - tmpMPDBS = New Bitmap(Image.Image) + tmpMPDBS = Image End If Case Enums.PosterSize.Wide If IsNothing(tmpMPDBW) Then - tmpMPDBW = New Bitmap(Image.Image) + tmpMPDBW = Image End If End Select Else @@ -314,23 +314,23 @@ Public Class ScrapeImages If AdvancedSettings.GetBooleanSetting("UseIMPA", False) Then If tmpListIMPA.Count > 0 Then If Not IsNothing(tmpIMPAX) Then - Image.Image = New Bitmap(tmpIMPAX) + Image = tmpIMPAX GoTo foundIT End If If Not IsNothing(tmpIMPAL) Then - Image.Image = New Bitmap(tmpIMPAL) + Image = tmpIMPAL GoTo foundIT End If If Not IsNothing(tmpIMPAM) Then - Image.Image = New Bitmap(tmpIMPAM) + Image = tmpIMPAM GoTo foundIT End If If Not IsNothing(tmpIMPAS) Then - Image.Image = New Bitmap(tmpIMPAS) + Image = tmpIMPAS GoTo foundIT End If If Not IsNothing(tmpIMPAW) Then - Image.Image = New Bitmap(tmpIMPAW) + Image = tmpIMPAW GoTo foundIT End If End If @@ -341,23 +341,23 @@ Public Class ScrapeImages If AdvancedSettings.GetBooleanSetting("UseMPDB", False) Then If tmpListMPDB.Count > 0 Then If Not IsNothing(tmpMPDBX) Then - Image.Image = New Bitmap(tmpMPDBX) + Image = tmpMPDBX GoTo foundIT End If If Not IsNothing(tmpMPDBL) Then - Image.Image = New Bitmap(tmpMPDBL) + Image = tmpMPDBL GoTo foundIT End If If Not IsNothing(tmpMPDBM) Then - Image.Image = New Bitmap(tmpMPDBM) + Image = tmpMPDBM GoTo foundIT End If If Not IsNothing(tmpMPDBS) Then - Image.Image = New Bitmap(tmpMPDBS) + Image = tmpMPDBS GoTo foundIT End If If Not IsNothing(tmpMPDBW) Then - Image.Image = New Bitmap(tmpMPDBW) + Image = tmpMPDBW GoTo foundIT End If End If @@ -436,9 +436,9 @@ Public Class ScrapeImages For Each miFanart As MediaContainers.Image In tmpListTMDB miFanart.WebImage.FromWeb(miFanart.URL) If Not IsNothing(miFanart.WebImage.Image) Then - Image.Image = miFanart.WebImage.Image + Image = miFanart.WebImage Dim savePath As String = Path.Combine(CachePath, String.Concat("fanart_(", miFanart.Description, ")_(url=", StringUtils.CleanURL(miFanart.URL), ").jpg")) - Image.Save(savePath) + Image.Save(savePath, , , False) If Master.eSettings.AutoET AndAlso doETs Then Select Case miFanart.Description.ToLower Case "original" @@ -489,7 +489,7 @@ Public Class ScrapeImages For Each iMovie As MediaContainers.Image In tmpListTMDB If Images.GetFanartDims(iMovie.WebImage.Image) = Master.eSettings.PreferredFanartSize Then - Image.Image = iMovie.WebImage.Image + Image = iMovie.WebImage GoTo foundit End If Next @@ -497,7 +497,7 @@ Public Class ScrapeImages Image.Clear() If Not doAsk Then - Image.Image = tmpListTMDB.OrderBy(Function(i) i.WebImage.Image.Height + i.WebImage.Image.Height).FirstOrDefault.WebImage.Image + Image = tmpListTMDB.OrderBy(Function(i) i.WebImage.Image.Height + i.WebImage.Image.Height).FirstOrDefault.WebImage End If End If @@ -538,9 +538,9 @@ Public Class ScrapeImages If Master.eSettings.AutoETSize = Enums.FanartSize.Lrg Then miFanart.WebImage.FromWeb(miFanart.URL) If Not IsNothing(miFanart.WebImage.Image) Then - Image.Image = miFanart.WebImage.Image + Image = miFanart.WebImage savePath = Path.Combine(CachePath, String.Concat("fanart_(", miFanart.Description, ")_(url=", StringUtils.CleanURL(miFanart.URL), ").jpg")) - Image.Save(savePath) + Image.Save(savePath, , , False) If Not ETHashes.Contains(HashFile.HashCalcFile(savePath)) Then Image.SaveFAasET(savePath, sPath) End If @@ -550,9 +550,9 @@ Public Class ScrapeImages If Master.eSettings.AutoETSize = Enums.FanartSize.Mid Then miFanart.WebImage.FromWeb(miFanart.URL) If Not IsNothing(miFanart.WebImage.Image) Then - Image.Image = miFanart.WebImage.Image + Image = miFanart.WebImage savePath = Path.Combine(CachePath, String.Concat("fanart_(", miFanart.Description, ")_(url=", StringUtils.CleanURL(miFanart.URL), ").jpg")) - Image.Save(savePath) + Image.Save(savePath, , , False) If Not ETHashes.Contains(HashFile.HashCalcFile(savePath)) Then Image.SaveFAasET(savePath, sPath) End If @@ -562,9 +562,9 @@ Public Class ScrapeImages If Master.eSettings.AutoETSize = Enums.FanartSize.Small Then miFanart.WebImage.FromWeb(miFanart.URL) If Not IsNothing(miFanart.WebImage.Image) Then - Image.Image = miFanart.WebImage.Image + Image = miFanart.WebImage savePath = Path.Combine(CachePath, String.Concat("fanart_(", miFanart.Description, ")_(url=", StringUtils.CleanURL(miFanart.URL), ").jpg")) - Image.Save(savePath) + Image.Save(savePath, , , False) If Not ETHashes.Contains(HashFile.HashCalcFile(savePath)) Then Image.SaveFAasET(savePath, sPath) End If @@ -582,7 +582,7 @@ Public Class ScrapeImages Case Enums.FanartSize.Lrg If iMovie.Description.ToLower = "original" Then If Not IsNothing(iMovie.WebImage.Image) Then - Image.Image = iMovie.WebImage.Image + Image = iMovie.WebImage Else Image.FromWeb(iMovie.URL) End If @@ -591,7 +591,7 @@ Public Class ScrapeImages Case Enums.FanartSize.Mid If iMovie.Description.ToLower = "mid" Then If Not IsNothing(iMovie.WebImage.Image) Then - Image.Image = iMovie.WebImage.Image + Image = iMovie.WebImage Else Image.FromWeb(iMovie.URL) End If @@ -600,7 +600,7 @@ Public Class ScrapeImages Case Enums.FanartSize.Small If iMovie.Description.ToLower = "thumb" Then If Not IsNothing(iMovie.WebImage.Image) Then - Image.Image = iMovie.WebImage.Image + Image = iMovie.WebImage Else Image.FromWeb(iMovie.URL) End If @@ -722,7 +722,7 @@ foundIT: If Not IsNothing(miFanart.WebImage.Image) Then _Image = miFanart.WebImage.Image Dim savePath As String = Path.Combine(CachePath, String.Concat("fanart_(", miFanart.Description, ")_(url=", StringUtils.CleanURL(miFanart.URL), ").jpg")) - Save(_Image, savePath) + miFanart.WebImage.Save(savePath, , , False) If Master.eSettings.AutoET Then Select Case miFanart.Description.ToLower Case "original" @@ -768,7 +768,7 @@ foundIT: If Not IsNothing(miFanart.WebImage.Image) Then _Image = miFanart.WebImage.Image savePath = Path.Combine(CachePath, String.Concat("fanart_(", miFanart.Description, ")_(url=", StringUtils.CleanURL(miFanart.URL), ").jpg")) - Save(_Image, savePath) + miFanart.WebImage.Save(savePath, , , False) If Not ETHashes.Contains(HashFile.HashCalcFile(savePath)) Then SaveFAasET(savePath, sPath) End If @@ -780,7 +780,7 @@ foundIT: If Not IsNothing(miFanart.WebImage.Image) Then _Image = miFanart.WebImage.Image savePath = Path.Combine(CachePath, String.Concat("fanart_(", miFanart.Description, ")_(url=", StringUtils.CleanURL(miFanart.URL), ").jpg")) - Save(_Image, savePath) + miFanart.WebImage.Save(savePath, , , False) If Not ETHashes.Contains(HashFile.HashCalcFile(savePath)) Then SaveFAasET(savePath, sPath) End If @@ -792,7 +792,7 @@ foundIT: If Not IsNothing(miFanart.WebImage.Image) Then _Image = miFanart.WebImage.Image savePath = Path.Combine(CachePath, String.Concat("fanart_(", miFanart.Description, ")_(url=", StringUtils.CleanURL(miFanart.URL), ").jpg")) - Save(_Image, savePath) + miFanart.WebImage.Save(savePath, , , False) If Not ETHashes.Contains(HashFile.HashCalcFile(savePath)) Then SaveFAasET(savePath, sPath) End If @@ -845,9 +845,11 @@ foundIT: If Master.eSettings.VideoTSParent AndAlso FileUtils.Common.isVideoTS(inPath) Then extraPath = Path.Combine(Directory.GetParent(Directory.GetParent(inPath).FullName).FullName, "extrathumbs") ElseIf Master.eSettings.VideoTSParent AndAlso FileUtils.Common.isBDRip(inPath) Then - extraPath = Path.Combine(Directory.GetParent(Directory.GetParent(Directory.GetParent(inPath).FullName).FullName).FullName, "extrathumbs") - Else - extraPath = Path.Combine(Directory.GetParent(inPath).FullName, "extrathumbs") + extraPath = Path.Combine(Directory.GetParent(Directory.GetParent(Directory.GetParent(inPath).FullName).FullName).FullName, "extrathumbs") + ElseIf Master.eSettings.VideoTSParentXBMC AndAlso FileUtils.Common.isBDRip(inPath) Then + extraPath = Path.Combine(Directory.GetParent(Directory.GetParent(inPath).FullName).FullName, "extrathumbs") + Else + extraPath = Path.Combine(Directory.GetParent(inPath).FullName, "extrathumbs") End If iMod = Functions.GetExtraModifier(extraPath) @@ -860,67 +862,68 @@ foundIT: FileUtils.Common.MoveFileWithStream(faPath, Path.Combine(extraPath, String.Concat("thumb", iVal, ".jpg"))) End Sub + ' Duplicate of clsImage + 'Public Shared Sub Save(ByVal _image As Image, ByVal sPath As String, Optional ByVal iQuality As Long = 0, Optional ByVal sUrl As String = "") + ' Try + ' If IsNothing(_image) Then Exit Sub + + ' Dim doesExist As Boolean = File.Exists(sPath) + ' Dim fAtt As New FileAttributes + ' If Not String.IsNullOrEmpty(sPath) AndAlso (Not doesExist OrElse (Not CBool(File.GetAttributes(sPath) And FileAttributes.ReadOnly))) Then + ' If doesExist Then + ' 'get the current attributes to set them back after writing + ' fAtt = File.GetAttributes(sPath) + ' 'set attributes to none for writing + ' File.SetAttributes(sPath, FileAttributes.Normal) + ' End If + + ' If Not sUrl = "" Then + ' Dim stroriginalurl As String = sUrl + + ' 'Image Download from tmdb is special, need original size + ' If Not sUrl.Contains("impawards") AndAlso Not sUrl.Contains("movieposterdb") Then + ' 'Always get original image... + ' 'links to images (tmdb) have following structure: 'example: http://d3gtl9l2a4fn1j.cloudfront.net/t/p/w92/x65b4vsFKYuA878pLN1mJiAsgIP.jpg + ' Dim stringArray() As String = Split(stroriginalurl, "/") + ' If stringArray.Length > 4 Then + ' ' stringArray(5) contains values like "w185","original", "w154"...-->size -> we want original! + ' stringArray(5) = "original" + ' stroriginalurl = Join(stringArray, "/") + ' End If + ' End If + ' Dim webclient As New Net.WebClient + ' webclient.DownloadFile(stroriginalurl, sPath) + ' Else + ' Using msSave As New MemoryStream + ' Dim retSave() As Byte + ' Dim ICI As ImageCodecInfo = GetEncoderInfo(ImageFormat.Jpeg) + ' Dim EncPars As EncoderParameters = New EncoderParameters(If(iQuality > 0, 2, 1)) + + ' EncPars.Param(0) = New EncoderParameter(Encoder.RenderMethod, EncoderValue.RenderNonProgressive) + + ' If iQuality > 0 Then + ' EncPars.Param(1) = New EncoderParameter(Encoder.Quality, iQuality) + ' End If + + ' _image.Save(msSave, ICI, EncPars) + + ' retSave = msSave.ToArray + + ' Using fs As New FileStream(sPath, FileMode.Create, FileAccess.Write) + ' fs.Write(retSave, 0, retSave.Length) + ' fs.Flush() + ' End Using + ' msSave.Flush() + ' End Using + ' End If + + ' If doesExist Then File.SetAttributes(sPath, fAtt) + ' End If + ' Catch ex As Exception + ' Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + ' End Try + 'End Sub - Public Shared Sub Save(ByVal _image As Image, ByVal sPath As String, Optional ByVal iQuality As Long = 0, Optional ByVal sUrl As String = "") - Try - If IsNothing(_image) Then Exit Sub - - Dim doesExist As Boolean = File.Exists(sPath) - Dim fAtt As New FileAttributes - If Not String.IsNullOrEmpty(sPath) AndAlso (Not doesExist OrElse (Not CBool(File.GetAttributes(sPath) And FileAttributes.ReadOnly))) Then - If doesExist Then - 'get the current attributes to set them back after writing - fAtt = File.GetAttributes(sPath) - 'set attributes to none for writing - File.SetAttributes(sPath, FileAttributes.Normal) - End If - - If Not sUrl = "" Then - Dim stroriginalurl As String = sUrl - - 'Image Download from tmdb is special, need original size - If Not sUrl.Contains("impawards") AndAlso Not sUrl.Contains("movieposterdb") Then - 'Always get original image... - 'links to images (tmdb) have following structure: 'example: http://d3gtl9l2a4fn1j.cloudfront.net/t/p/w92/x65b4vsFKYuA878pLN1mJiAsgIP.jpg - Dim stringArray() As String = Split(stroriginalurl, "/") - If stringArray.Length > 4 Then - ' stringArray(5) contains values like "w185","original", "w154"...-->size -> we want original! - stringArray(5) = "original" - stroriginalurl = Join(stringArray, "/") - End If - End If - Dim webclient As New Net.WebClient - webclient.DownloadFile(stroriginalurl, sPath) - Else - Using msSave As New MemoryStream - Dim retSave() As Byte - Dim ICI As ImageCodecInfo = GetEncoderInfo(ImageFormat.Jpeg) - Dim EncPars As EncoderParameters = New EncoderParameters(If(iQuality > 0, 2, 1)) - - EncPars.Param(0) = New EncoderParameter(Encoder.RenderMethod, EncoderValue.RenderNonProgressive) - - If iQuality > 0 Then - EncPars.Param(1) = New EncoderParameter(Encoder.Quality, iQuality) - End If - - _image.Save(msSave, ICI, EncPars) - - retSave = msSave.ToArray - - Using fs As New FileStream(sPath, FileMode.Create, FileAccess.Write) - fs.Write(retSave, 0, retSave.Length) - fs.Flush() - End Using - msSave.Flush() - End Using - End If - - If doesExist Then File.SetAttributes(sPath, fAtt) - End If - Catch ex As Exception - Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") - End Try - End Sub Private Shared Function GetEncoderInfo(ByVal Format As ImageFormat) As ImageCodecInfo Dim Encoders() As ImageCodecInfo = ImageCodecInfo.GetImageEncoders() diff --git a/Addons/scraper.EmberCore/Scraper/clsScrapeOFDB.vb b/Addons/scraper.EmberCore/Scraper/clsScrapeOFDB.vb index 2e94cca..a220a06 100644 --- a/Addons/scraper.EmberCore/Scraper/clsScrapeOFDB.vb +++ b/Addons/scraper.EmberCore/Scraper/clsScrapeOFDB.vb @@ -119,15 +119,20 @@ Public Class OFDB Dim HTML As String = sHTTP.DownloadData(sURL) sHTTP = Nothing - Dim D, W, B As Integer + Dim D, W, Wq, Wqq, B As Integer Dim tmpHTML As String - D = Html.IndexOf("Eine Inhaltsangabe von") + D = HTML.IndexOf("Eine Inhaltsangabe von") If D > 0 Then Dim L As Integer = Html.Length tmpHTML = Html.Substring(D + 22, L - (D + 22)).Trim W = tmpHTML.IndexOf("

") - If W > 0 Then + Wq = tmpHTML.IndexOf("Quelle:") + If Wq > 0 Then + Wqq = tmpHTML.IndexOf("

", Wq) + B = tmpHTML.IndexOf("

", Wqq + 8) + FullPlot = Web.HttpUtility.HtmlDecode(tmpHTML.Substring(Wqq + 8, B - (Wqq + 8)).Replace("
", String.Empty).Replace(vbCrLf, " ").Trim) + ElseIf W > 0 Then B = tmpHTML.IndexOf("

", W + 16) FullPlot = Web.HttpUtility.HtmlDecode(tmpHTML.Substring(W + 16, B - (W + 16)).Replace("
", String.Empty).Replace(vbCrLf, " ").Trim) End If @@ -153,30 +158,60 @@ Public Class OFDB If Not String.IsNullOrEmpty(Html) Then 'title If String.IsNullOrEmpty(OFDBMovie.Title) OrElse Not Master.eSettings.LockTitle Then - Dim OFDBTitle As String = CleanTitle(Web.HttpUtility.HtmlDecode(Regex.Match(Html, "

([^<]+)

").Groups(1).Value.ToString)) - _title = OFDBTitle + Dim OFDBTitle As String = CleanTitle(Web.HttpUtility.HtmlDecode(Regex.Match(HTML, "

([^<]+)

").Groups(1).Value.ToString)) + If OFDBTitle.EndsWith(", Der") Then + _title = String.Concat("Der ", OFDBTitle.Replace(", Der", " ")).Trim + ElseIf OFDBTitle.EndsWith(", Die") Then + _title = String.Concat("Die ", OFDBTitle.Replace(", Die", " ")).Trim + ElseIf OFDBTitle.EndsWith(", Das") Then + _title = String.Concat("Das ", OFDBTitle.Replace(", Das", " ")).Trim + ElseIf OFDBTitle.EndsWith(", The") Then + _title = String.Concat("The ", OFDBTitle.Replace(", The", " ")).Trim + Else + _title = OFDBTitle + End If End If - Dim D, W, B As Integer + Dim D, Dq, W, Wq, B As Integer Dim tmpHTML As String 'outline If String.IsNullOrEmpty(OFDBMovie.Outline) OrElse Not Master.eSettings.LockOutline Then - D = Html.IndexOf("Inhalt:") - - If D > 0 Then - W = Html.IndexOf("", String.Empty).Replace(vbCrLf, " ").Trim) + D = HTML.IndexOf("Inhalt:") + Dq = HTML.IndexOf("Inhalt: ", Dq) + W = HTML.IndexOf("", String.Empty).Replace(vbCrLf, " ").Trim) + ElseIf D > 0 Then + W = HTML.IndexOf("", String.Empty).Replace(vbCrLf, " ").Trim) End If End If 'full plot - D = 0 : W = 0 + D = 0 : Dq = 0 : W = 0 If String.IsNullOrEmpty(OFDBMovie.Plot) OrElse Not Master.eSettings.LockPlot Then - D = Html.IndexOf("Inhalt:") - If D > 0 Then - Dim L As Integer = Html.Length - tmpHTML = Html.Substring(D + 14, L - (D + 14)).Trim + D = HTML.IndexOf("Inhalt:") + Dq = HTML.IndexOf("Inhalt: 0 Then + B = tmpHTML.IndexOf(""">[mehr]", W + 9) + If B > 0 Then + Dim FullPlot = GetFullPlot(String.Concat("http://www.ofdb.de/", tmpHTML.Substring(W + 9, B - (W + 9)))) + If Not String.IsNullOrEmpty(FullPlot) Then + _plot = FullPlot + End If + End If + End If + ElseIf D > 0 Then + Dim L As Integer = HTML.Length + tmpHTML = HTML.Substring(D + 44, L - (D + 44)).Trim W = tmpHTML.IndexOf(" 0 Then B = tmpHTML.IndexOf(""">[mehr]", W + 9) @@ -197,12 +232,15 @@ Public Class OFDB If D > 0 Then W = HTML.IndexOf("", D) If W > 0 Then - Dim rGenres As MatchCollection = Regex.Matches(HTML.Substring(D, W - D), ".*?)[""'].*?>(?.*?)") + Dim rGenres As MatchCollection = Regex.Matches(HTML.Substring(D, W - D), ".*?)[""'].*?>(?.*?)") Dim Gen = From M In rGenres _ Select N = Web.HttpUtility.HtmlDecode(DirectCast(M, Match).Groups("name").ToString) If Gen.Count > 0 Then Dim tGenre As String = Strings.Join(Gen.ToArray, "/").Trim - _genre = Strings.Join(tGenre.Split(Convert.ToChar("/")), " / ").Trim + tGenre = StringUtils.GenreFilter(tGenre) + If Not String.IsNullOrEmpty(tGenre) Then + _genre = Strings.Join(tGenre.Split(Convert.ToChar("/")), " / ").Trim + End If End If End If End If diff --git a/Addons/scraper.EmberCore/Scraper/clsScrapeTMDB.vb b/Addons/scraper.EmberCore/Scraper/clsScrapeTMDB.vb index 3fd3402..d40e628 100644 --- a/Addons/scraper.EmberCore/Scraper/clsScrapeTMDB.vb +++ b/Addons/scraper.EmberCore/Scraper/clsScrapeTMDB.vb @@ -73,44 +73,44 @@ Namespace TMDB If bwTMDB.CancellationPending Then Return Nothing Try Dim ApiXML As String = sHTTP.DownloadData(String.Format("http://api.themoviedb.org/2.1/Movie.getImages/en/xml/{0}/tt{1}", APIKey, imdbID)) - - If Not String.IsNullOrEmpty(ApiXML) Then - Try - xmlTMDB = XDocument.Parse(ApiXML) - Catch - Return alPosters - End Try - - If bwTMDB.WorkerReportsProgress Then - bwTMDB.ReportProgress(1) - End If - - If bwTMDB.CancellationPending Then Return Nothing - - If Not xmlTMDB.......Value = "Nothing found." Then - If sType = "poster" Then - Dim tmdbImages = From iNode In xmlTMDB................Elements Select iNode - If tmdbImages.Count > 0 Then - For Each tmdbI As XElement In tmdbImages - Dim parentID As String = tmdbI.Parent.Attribute("id").Value - If bwTMDB.CancellationPending Then Return Nothing - Dim tmpPoster As New MediaContainers.Image With {.URL = tmdbI.@url, .Description = tmdbI.@size, .Width = tmdbI.@width, .Height = tmdbI.@height, .ParentID = parentID} - alPosters.Add(tmpPoster) - Next - End If - ElseIf sType = "backdrop" Then - Dim tmdbImages = From iNode In xmlTMDB................Elements Select iNode - If tmdbImages.Count > 0 Then - For Each tmdbI As XElement In tmdbImages - Dim parentID As String = tmdbI.Parent.Attribute("id").Value - If bwTMDB.CancellationPending Then Return Nothing - Dim tmpPoster As New MediaContainers.Image With {.URL = tmdbI.@url, .Description = tmdbI.@size, .Width = tmdbI.@width, .Height = tmdbI.@height, .ParentID = parentID} - alPosters.Add(tmpPoster) - Next - End If - End If - End If - End If + If Not String.IsNullOrEmpty(ApiXML) Then + Try + xmlTMDB = XDocument.Parse(ApiXML) + Catch + Return alPosters + End Try + + If bwTMDB.WorkerReportsProgress Then + bwTMDB.ReportProgress(1) + End If + + If bwTMDB.CancellationPending Then Return Nothing + + If Not xmlTMDB.......Value = "Nothing found." Then + If sType = "poster" Then + Dim tmdbImages = From iNode In xmlTMDB................Elements Select iNode + If tmdbImages.Count > 0 Then + For Each tmdbI As XElement In tmdbImages + Dim parentID As String = tmdbI.Parent.Attribute("id").Value + If bwTMDB.CancellationPending Then Return Nothing + Dim tmpPoster As New MediaContainers.Image With {.URL = tmdbI.@url, .Description = tmdbI.@size, .Width = tmdbI.@width, .Height = tmdbI.@height, .ParentID = parentID} + alPosters.Add(tmpPoster) + Next + End If + ElseIf sType = "backdrop" Then + Dim tmdbImages = From iNode In xmlTMDB................Elements Select iNode + If tmdbImages.Count > 0 Then + For Each tmdbI As XElement In tmdbImages + Dim parentID As String = tmdbI.Parent.Attribute("id").Value + If bwTMDB.CancellationPending Then Return Nothing + Debug.Print("{0}/t{1}", tmdbI.@size, tmdbI.@url) + Dim tmpPoster As New MediaContainers.Image With {.URL = tmdbI.@url, .Description = tmdbI.@size, .Width = tmdbI.@width, .Height = tmdbI.@height, .ParentID = parentID} + alPosters.Add(tmpPoster) + Next + End If + End If + End If + End If If bwTMDB.WorkerReportsProgress Then bwTMDB.ReportProgress(2) diff --git a/Addons/scraper.EmberCore/Scraper/clsScrapeTrailers.vb b/Addons/scraper.EmberCore/Scraper/clsScrapeTrailers.vb index 70d407a..19327b4 100644 --- a/Addons/scraper.EmberCore/Scraper/clsScrapeTrailers.vb +++ b/Addons/scraper.EmberCore/Scraper/clsScrapeTrailers.vb @@ -79,6 +79,8 @@ Public Class Trailers File.Delete(String.Concat(tmpNameNoStack, "-trailer", t)) ElseIf File.Exists(String.Concat(tmpNameNoStack, "[trailer]", t)) AndAlso Not String.Concat(tmpNameNoStack, "[trailer]", t).ToLower = NewTrailer.ToLower Then File.Delete(String.Concat(tmpNameNoStack, "[trailer]", t)) + ElseIf Master.eSettings.VideoTSParentXBMC AndAlso FileUtils.Common.isBDRip(sPath) AndAlso File.Exists(String.Concat(Directory.GetParent(Directory.GetParent(sPath).FullName).FullName, "\", "index-trailer", t)) AndAlso Not String.Concat(Directory.GetParent(Directory.GetParent(sPath).FullName).FullName, "\", "index-trailer", t).ToLower = NewTrailer.ToLower Then + File.Delete(String.Concat(Directory.GetParent(Directory.GetParent(sPath).FullName).FullName, "\", "index-trailer", t)) End If Next End Sub diff --git a/Addons/scraper.EmberCore/Scraper/clsScrapeYouTube.vb b/Addons/scraper.EmberCore/Scraper/clsScrapeYouTube.vb index 68dbcc8..b4603fd 100644 --- a/Addons/scraper.EmberCore/Scraper/clsScrapeYouTube.vb +++ b/Addons/scraper.EmberCore/Scraper/clsScrapeYouTube.vb @@ -148,14 +148,14 @@ Namespace YouTube Dim VideoTitle As String = GetVideoTitle(Html) VideoTitle = Regex.Replace(VideoTitle, "['?\\:*<>]*", "") - Dim fmtMatch As Match = Regex.Match(Html, "url_encoded_fmt_stream_map=(.*?)\\u0026amp;", RegexOptions.IgnoreCase) + Dim fmtMatch As Match = Regex.Match(Html, "url_encoded_fmt_stream_map\"": \""(.*?)\"", \""", RegexOptions.IgnoreCase) If fmtMatch.Success Then Dim FormatMap As String = fmtMatch.Groups(1).Value Dim decoded As String = Web.HttpUtility.UrlDecode(FormatMap) - Dim FormatArray() As String = Split(decoded, ",") + Dim FormatArray() As String = Split(decoded.Replace(", ", ";"), ",") - Dim rurl As New Regex("url=([^&,]+)", RegexOptions.IgnoreCase) - Dim rsig As New Regex("sig=([^&,]+)", RegexOptions.IgnoreCase) + Dim rurl As New Regex("url=([^\\]+)", RegexOptions.IgnoreCase) + Dim rsig As New Regex("sig=([^\\]+)", RegexOptions.IgnoreCase) Dim ritag As New Regex("itag=(\d+)", RegexOptions.IgnoreCase) For i As Integer = 0 To FormatArray.Length - 1 diff --git a/Addons/scraper.EmberCore/Scraper/dlgIMDBSearchResults.Designer.vb b/Addons/scraper.EmberCore/Scraper/dlgIMDBSearchResults.Designer.vb index fe32b41..6d0924e 100644 --- a/Addons/scraper.EmberCore/Scraper/dlgIMDBSearchResults.Designer.vb +++ b/Addons/scraper.EmberCore/Scraper/dlgIMDBSearchResults.Designer.vb @@ -22,407 +22,428 @@ Partial Class dlgIMDBSearchResults 'Do not modify it using the code editor. _ Private Sub InitializeComponent() - Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(dlgIMDBSearchResults)) - Me.OK_Button = New System.Windows.Forms.Button() - Me.Cancel_Button = New System.Windows.Forms.Button() - Me.tvResults = New System.Windows.Forms.TreeView() - Me.pbPoster = New System.Windows.Forms.PictureBox() - Me.lblTitle = New System.Windows.Forms.Label() - Me.lblTagline = New System.Windows.Forms.Label() - Me.txtOutline = New System.Windows.Forms.TextBox() - Me.lblYear = New System.Windows.Forms.Label() - Me.lblDirector = New System.Windows.Forms.Label() - Me.lblGenre = New System.Windows.Forms.Label() - Me.txtIMDBID = New System.Windows.Forms.TextBox() - Me.pnlTop = New System.Windows.Forms.Panel() - Me.Label2 = New System.Windows.Forms.Label() - Me.Label1 = New System.Windows.Forms.Label() - Me.PictureBox1 = New System.Windows.Forms.PictureBox() - Me.chkManual = New System.Windows.Forms.CheckBox() - Me.btnVerify = New System.Windows.Forms.Button() - Me.lblIMDB = New System.Windows.Forms.Label() - Me.lblYearHeader = New System.Windows.Forms.Label() - Me.lblDirectorHeader = New System.Windows.Forms.Label() - Me.lblGenreHeader = New System.Windows.Forms.Label() - Me.lblIMDBHeader = New System.Windows.Forms.Label() - Me.lblPlotHeader = New System.Windows.Forms.Label() - Me.btnSearch = New System.Windows.Forms.Button() - Me.txtSearch = New System.Windows.Forms.TextBox() - Me.pnlLoading = New System.Windows.Forms.Panel() - Me.Label3 = New System.Windows.Forms.Label() - Me.ProgressBar1 = New System.Windows.Forms.ProgressBar() - Me.pnlPicStatus = New System.Windows.Forms.Panel() - Me.Label4 = New System.Windows.Forms.Label() - CType(Me.pbPoster, System.ComponentModel.ISupportInitialize).BeginInit() - Me.pnlTop.SuspendLayout() - CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() - Me.pnlLoading.SuspendLayout() - Me.pnlPicStatus.SuspendLayout() - Me.SuspendLayout() - ' - 'OK_Button - ' - Me.OK_Button.Enabled = False - Me.OK_Button.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.OK_Button.Location = New System.Drawing.Point(497, 401) - Me.OK_Button.Name = "OK_Button" - Me.OK_Button.Size = New System.Drawing.Size(67, 22) - Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" - ' - 'Cancel_Button - ' - Me.Cancel_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel - Me.Cancel_Button.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Cancel_Button.Location = New System.Drawing.Point(570, 401) - Me.Cancel_Button.Name = "Cancel_Button" - Me.Cancel_Button.Size = New System.Drawing.Size(67, 22) - Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" - ' - 'tvResults - ' - Me.tvResults.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.tvResults.HideSelection = False - Me.tvResults.Location = New System.Drawing.Point(4, 96) - Me.tvResults.Name = "tvResults" - Me.tvResults.Size = New System.Drawing.Size(281, 299) - Me.tvResults.TabIndex = 5 - ' - 'pbPoster - ' - Me.pbPoster.Location = New System.Drawing.Point(294, 130) - Me.pbPoster.Name = "pbPoster" - Me.pbPoster.Size = New System.Drawing.Size(110, 130) - Me.pbPoster.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom - Me.pbPoster.TabIndex = 2 - Me.pbPoster.TabStop = False - Me.pbPoster.Visible = False - ' - 'lblTitle - ' - Me.lblTitle.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblTitle.Location = New System.Drawing.Point(291, 70) - Me.lblTitle.Name = "lblTitle" - Me.lblTitle.Size = New System.Drawing.Size(346, 19) - Me.lblTitle.TabIndex = 9 - Me.lblTitle.Text = "Title" - Me.lblTitle.Visible = False - ' - 'lblTagline - ' - Me.lblTagline.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblTagline.Location = New System.Drawing.Point(291, 89) - Me.lblTagline.Name = "lblTagline" - Me.lblTagline.Size = New System.Drawing.Size(346, 16) - Me.lblTagline.TabIndex = 10 - Me.lblTagline.Text = "Tagline" - Me.lblTagline.Visible = False - ' - 'txtOutline - ' - Me.txtOutline.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtOutline.Location = New System.Drawing.Point(294, 295) - Me.txtOutline.Multiline = True - Me.txtOutline.Name = "txtOutline" - Me.txtOutline.Size = New System.Drawing.Size(343, 100) - Me.txtOutline.TabIndex = 22 - Me.txtOutline.TabStop = False - Me.txtOutline.Visible = False - ' - 'lblYear - ' - Me.lblYear.AutoSize = True - Me.lblYear.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblYear.Location = New System.Drawing.Point(472, 130) - Me.lblYear.Name = "lblYear" - Me.lblYear.Size = New System.Drawing.Size(31, 13) - Me.lblYear.TabIndex = 13 - Me.lblYear.Text = "0000" - Me.lblYear.Visible = False - ' - 'lblDirector - ' - Me.lblDirector.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblDirector.Location = New System.Drawing.Point(472, 156) - Me.lblDirector.Name = "lblDirector" - Me.lblDirector.Size = New System.Drawing.Size(165, 16) - Me.lblDirector.TabIndex = 15 - Me.lblDirector.Text = "Director" - Me.lblDirector.Visible = False - ' - 'lblGenre - ' - Me.lblGenre.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblGenre.Location = New System.Drawing.Point(472, 183) - Me.lblGenre.Name = "lblGenre" - Me.lblGenre.Size = New System.Drawing.Size(165, 52) - Me.lblGenre.TabIndex = 17 - Me.lblGenre.Text = "Genre" - Me.lblGenre.Visible = False - ' - 'txtIMDBID - ' - Me.txtIMDBID.Enabled = False - Me.txtIMDBID.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtIMDBID.Location = New System.Drawing.Point(139, 399) - Me.txtIMDBID.Name = "txtIMDBID" - Me.txtIMDBID.Size = New System.Drawing.Size(100, 22) - Me.txtIMDBID.TabIndex = 7 - ' - 'pnlTop - ' - Me.pnlTop.BackColor = System.Drawing.Color.LightSteelBlue - Me.pnlTop.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.pnlTop.Controls.Add(Me.Label2) - Me.pnlTop.Controls.Add(Me.Label1) - Me.pnlTop.Controls.Add(Me.PictureBox1) - Me.pnlTop.Dock = System.Windows.Forms.DockStyle.Top - Me.pnlTop.Location = New System.Drawing.Point(0, 0) - Me.pnlTop.Name = "pnlTop" - Me.pnlTop.Size = New System.Drawing.Size(643, 64) - Me.pnlTop.TabIndex = 2 - ' - 'Label2 - ' - Me.Label2.AutoSize = True - Me.Label2.BackColor = System.Drawing.Color.Transparent - Me.Label2.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.Label2.ForeColor = System.Drawing.Color.White - Me.Label2.Location = New System.Drawing.Point(61, 38) - Me.Label2.Name = "Label2" - Me.Label2.Size = New System.Drawing.Size(276, 13) - Me.Label2.TabIndex = 1 - Me.Label2.Text = "View details of each result to find the proper movie." - ' - 'Label1 - ' - Me.Label1.AutoSize = True - Me.Label1.BackColor = System.Drawing.Color.Transparent - Me.Label1.Font = New System.Drawing.Font("Segoe UI", 18.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.Label1.ForeColor = System.Drawing.Color.White - Me.Label1.Location = New System.Drawing.Point(58, 3) - Me.Label1.Name = "Label1" - Me.Label1.Size = New System.Drawing.Size(257, 32) - Me.Label1.TabIndex = 0 - Me.Label1.Text = "Movie Search Results" - ' - 'PictureBox1 - ' - Me.PictureBox1.BackColor = System.Drawing.Color.Transparent - Me.PictureBox1.Image = CType(resources.GetObject("PictureBox1.Image"), System.Drawing.Image) - Me.PictureBox1.Location = New System.Drawing.Point(7, 8) - Me.PictureBox1.Name = "PictureBox1" - Me.PictureBox1.Size = New System.Drawing.Size(48, 48) - Me.PictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize - Me.PictureBox1.TabIndex = 0 - Me.PictureBox1.TabStop = False - ' - 'chkManual - ' - Me.chkManual.AutoSize = True - Me.chkManual.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkManual.Location = New System.Drawing.Point(4, 403) - Me.chkManual.Name = "chkManual" - Me.chkManual.Size = New System.Drawing.Size(128, 17) - Me.chkManual.TabIndex = 6 - Me.chkManual.Text = "Manual IMDB Entry:" - Me.chkManual.UseVisualStyleBackColor = True - ' - 'btnVerify - ' - Me.btnVerify.Enabled = False - Me.btnVerify.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.btnVerify.Location = New System.Drawing.Point(245, 399) - Me.btnVerify.Name = "btnVerify" - Me.btnVerify.Size = New System.Drawing.Size(75, 22) - Me.btnVerify.TabIndex = 8 - Me.btnVerify.Text = "Verify" - Me.btnVerify.UseVisualStyleBackColor = True - ' - 'lblIMDB - ' - Me.lblIMDB.AutoSize = True - Me.lblIMDB.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblIMDB.Location = New System.Drawing.Point(472, 247) - Me.lblIMDB.Name = "lblIMDB" - Me.lblIMDB.Size = New System.Drawing.Size(35, 13) - Me.lblIMDB.TabIndex = 19 - Me.lblIMDB.Text = "IMDB" - Me.lblIMDB.Visible = False - ' - 'lblYearHeader - ' - Me.lblYearHeader.AutoSize = True - Me.lblYearHeader.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblYearHeader.Location = New System.Drawing.Point(410, 130) - Me.lblYearHeader.Name = "lblYearHeader" - Me.lblYearHeader.Size = New System.Drawing.Size(33, 13) - Me.lblYearHeader.TabIndex = 12 - Me.lblYearHeader.Text = "Year:" - Me.lblYearHeader.Visible = False - ' - 'lblDirectorHeader - ' - Me.lblDirectorHeader.AutoSize = True - Me.lblDirectorHeader.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblDirectorHeader.Location = New System.Drawing.Point(410, 156) - Me.lblDirectorHeader.Name = "lblDirectorHeader" - Me.lblDirectorHeader.Size = New System.Drawing.Size(51, 13) - Me.lblDirectorHeader.TabIndex = 14 - Me.lblDirectorHeader.Text = "Director:" - Me.lblDirectorHeader.Visible = False - ' - 'lblGenreHeader - ' - Me.lblGenreHeader.AutoSize = True - Me.lblGenreHeader.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblGenreHeader.Location = New System.Drawing.Point(410, 183) - Me.lblGenreHeader.Name = "lblGenreHeader" - Me.lblGenreHeader.Size = New System.Drawing.Size(54, 13) - Me.lblGenreHeader.TabIndex = 16 - Me.lblGenreHeader.Text = "Genre(s):" - Me.lblGenreHeader.Visible = False - ' - 'lblIMDBHeader - ' - Me.lblIMDBHeader.AutoSize = True - Me.lblIMDBHeader.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblIMDBHeader.Location = New System.Drawing.Point(410, 247) - Me.lblIMDBHeader.Name = "lblIMDBHeader" - Me.lblIMDBHeader.Size = New System.Drawing.Size(53, 13) - Me.lblIMDBHeader.TabIndex = 18 - Me.lblIMDBHeader.Text = "IMDB ID:" - Me.lblIMDBHeader.Visible = False - ' - 'lblPlotHeader - ' - Me.lblPlotHeader.AutoSize = True - Me.lblPlotHeader.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblPlotHeader.Location = New System.Drawing.Point(291, 279) - Me.lblPlotHeader.Name = "lblPlotHeader" - Me.lblPlotHeader.Size = New System.Drawing.Size(83, 13) - Me.lblPlotHeader.TabIndex = 21 - Me.lblPlotHeader.Text = "Plot Summary:" - Me.lblPlotHeader.Visible = False - ' - 'btnSearch - ' - Me.btnSearch.Image = CType(resources.GetObject("btnSearch.Image"), System.Drawing.Image) - Me.btnSearch.Location = New System.Drawing.Point(262, 70) - Me.btnSearch.Name = "btnSearch" - Me.btnSearch.Size = New System.Drawing.Size(23, 23) - Me.btnSearch.TabIndex = 4 - Me.btnSearch.UseVisualStyleBackColor = True - ' - 'txtSearch - ' - Me.txtSearch.Location = New System.Drawing.Point(4, 71) - Me.txtSearch.Name = "txtSearch" - Me.txtSearch.Size = New System.Drawing.Size(252, 22) - Me.txtSearch.TabIndex = 3 - ' - 'pnlLoading - ' - Me.pnlLoading.BackColor = System.Drawing.Color.White - Me.pnlLoading.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.pnlLoading.Controls.Add(Me.Label3) - Me.pnlLoading.Controls.Add(Me.ProgressBar1) - Me.pnlLoading.Location = New System.Drawing.Point(364, 183) - Me.pnlLoading.Name = "pnlLoading" - Me.pnlLoading.Size = New System.Drawing.Size(200, 54) - Me.pnlLoading.TabIndex = 20 - ' - 'Label3 - ' - Me.Label3.AutoSize = True - Me.Label3.Location = New System.Drawing.Point(3, 10) - Me.Label3.Name = "Label3" - Me.Label3.Size = New System.Drawing.Size(98, 13) - Me.Label3.TabIndex = 0 - Me.Label3.Text = "Searching IMDB..." - Me.Label3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft - ' - 'ProgressBar1 - ' - Me.ProgressBar1.Location = New System.Drawing.Point(3, 32) - Me.ProgressBar1.MarqueeAnimationSpeed = 25 - Me.ProgressBar1.Name = "ProgressBar1" - Me.ProgressBar1.Size = New System.Drawing.Size(192, 17) - Me.ProgressBar1.Style = System.Windows.Forms.ProgressBarStyle.Marquee - Me.ProgressBar1.TabIndex = 1 - ' - 'pnlPicStatus - ' - Me.pnlPicStatus.BackColor = System.Drawing.Color.LightSteelBlue - Me.pnlPicStatus.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.pnlPicStatus.Controls.Add(Me.Label4) - Me.pnlPicStatus.Location = New System.Drawing.Point(308, 155) - Me.pnlPicStatus.Name = "pnlPicStatus" - Me.pnlPicStatus.Size = New System.Drawing.Size(81, 45) - Me.pnlPicStatus.TabIndex = 11 - ' - 'Label4 - ' - Me.Label4.Location = New System.Drawing.Point(5, 5) - Me.Label4.Name = "Label4" - Me.Label4.Size = New System.Drawing.Size(70, 33) - Me.Label4.TabIndex = 0 - Me.Label4.Text = "Fetching Poster..." - Me.Label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter - ' - 'dlgIMDBSearchResults - ' - Me.AcceptButton = Me.OK_Button - Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi - Me.CancelButton = Me.Cancel_Button - Me.ClientSize = New System.Drawing.Size(643, 454) - Me.ControlBox = False - Me.Controls.Add(Me.pnlLoading) - Me.Controls.Add(Me.pnlPicStatus) - Me.Controls.Add(Me.Cancel_Button) - Me.Controls.Add(Me.OK_Button) - Me.Controls.Add(Me.btnSearch) - Me.Controls.Add(Me.txtSearch) - Me.Controls.Add(Me.lblPlotHeader) - Me.Controls.Add(Me.lblIMDBHeader) - Me.Controls.Add(Me.lblGenreHeader) - Me.Controls.Add(Me.lblDirectorHeader) - Me.Controls.Add(Me.lblYearHeader) - Me.Controls.Add(Me.lblIMDB) - Me.Controls.Add(Me.btnVerify) - Me.Controls.Add(Me.chkManual) - Me.Controls.Add(Me.pnlTop) - Me.Controls.Add(Me.txtIMDBID) - Me.Controls.Add(Me.lblGenre) - Me.Controls.Add(Me.lblDirector) - Me.Controls.Add(Me.lblYear) - Me.Controls.Add(Me.txtOutline) - Me.Controls.Add(Me.lblTagline) - Me.Controls.Add(Me.lblTitle) - Me.Controls.Add(Me.pbPoster) - Me.Controls.Add(Me.tvResults) - Me.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog - Me.MaximizeBox = False - Me.MinimizeBox = False - Me.MinimumSize = New System.Drawing.Size(649, 460) - Me.Name = "dlgIMDBSearchResults" - Me.ShowIcon = False - Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Search Results" - CType(Me.pbPoster, System.ComponentModel.ISupportInitialize).EndInit() - Me.pnlTop.ResumeLayout(False) - Me.pnlTop.PerformLayout() - CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() - Me.pnlLoading.ResumeLayout(False) - Me.pnlLoading.PerformLayout() - Me.pnlPicStatus.ResumeLayout(False) - Me.ResumeLayout(False) - Me.PerformLayout() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(dlgIMDBSearchResults)) + Me.OK_Button = New System.Windows.Forms.Button() + Me.Cancel_Button = New System.Windows.Forms.Button() + Me.tvResults = New System.Windows.Forms.TreeView() + Me.pbPoster = New System.Windows.Forms.PictureBox() + Me.lblTitle = New System.Windows.Forms.Label() + Me.lblTagline = New System.Windows.Forms.Label() + Me.txtOutline = New System.Windows.Forms.TextBox() + Me.lblYear = New System.Windows.Forms.Label() + Me.lblDirector = New System.Windows.Forms.Label() + Me.lblGenre = New System.Windows.Forms.Label() + Me.txtIMDBID = New System.Windows.Forms.TextBox() + Me.pnlTop = New System.Windows.Forms.Panel() + Me.Label2 = New System.Windows.Forms.Label() + Me.Label1 = New System.Windows.Forms.Label() + Me.PictureBox1 = New System.Windows.Forms.PictureBox() + Me.chkManual = New System.Windows.Forms.CheckBox() + Me.btnVerify = New System.Windows.Forms.Button() + Me.lblIMDB = New System.Windows.Forms.Label() + Me.lblYearHeader = New System.Windows.Forms.Label() + Me.lblDirectorHeader = New System.Windows.Forms.Label() + Me.lblGenreHeader = New System.Windows.Forms.Label() + Me.lblIMDBHeader = New System.Windows.Forms.Label() + Me.lblPlotHeader = New System.Windows.Forms.Label() + Me.btnSearch = New System.Windows.Forms.Button() + Me.txtSearch = New System.Windows.Forms.TextBox() + Me.pnlLoading = New System.Windows.Forms.Panel() + Me.Label3 = New System.Windows.Forms.Label() + Me.ProgressBar1 = New System.Windows.Forms.ProgressBar() + Me.pnlPicStatus = New System.Windows.Forms.Panel() + Me.Label4 = New System.Windows.Forms.Label() + Me.txtFileName = New System.Windows.Forms.TextBox() + Me.btnOpenFolder = New System.Windows.Forms.Button() + CType(Me.pbPoster, System.ComponentModel.ISupportInitialize).BeginInit() + Me.pnlTop.SuspendLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.pnlLoading.SuspendLayout() + Me.pnlPicStatus.SuspendLayout() + Me.SuspendLayout() + ' + 'OK_Button + ' + Me.OK_Button.Enabled = False + Me.OK_Button.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.OK_Button.Location = New System.Drawing.Point(501, 431) + Me.OK_Button.Name = "OK_Button" + Me.OK_Button.Size = New System.Drawing.Size(67, 22) + Me.OK_Button.TabIndex = 0 + Me.OK_Button.Text = "OK" + ' + 'Cancel_Button + ' + Me.Cancel_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.Cancel_Button.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Cancel_Button.Location = New System.Drawing.Point(574, 431) + Me.Cancel_Button.Name = "Cancel_Button" + Me.Cancel_Button.Size = New System.Drawing.Size(67, 22) + Me.Cancel_Button.TabIndex = 1 + Me.Cancel_Button.Text = "Cancel" + ' + 'tvResults + ' + Me.tvResults.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.tvResults.HideSelection = False + Me.tvResults.Location = New System.Drawing.Point(8, 126) + Me.tvResults.Name = "tvResults" + Me.tvResults.Size = New System.Drawing.Size(281, 299) + Me.tvResults.TabIndex = 5 + ' + 'pbPoster + ' + Me.pbPoster.Location = New System.Drawing.Point(298, 160) + Me.pbPoster.Name = "pbPoster" + Me.pbPoster.Size = New System.Drawing.Size(110, 130) + Me.pbPoster.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom + Me.pbPoster.TabIndex = 2 + Me.pbPoster.TabStop = False + Me.pbPoster.Visible = False + ' + 'lblTitle + ' + Me.lblTitle.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblTitle.Location = New System.Drawing.Point(295, 100) + Me.lblTitle.Name = "lblTitle" + Me.lblTitle.Size = New System.Drawing.Size(346, 19) + Me.lblTitle.TabIndex = 9 + Me.lblTitle.Text = "Title" + Me.lblTitle.Visible = False + ' + 'lblTagline + ' + Me.lblTagline.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblTagline.Location = New System.Drawing.Point(295, 119) + Me.lblTagline.Name = "lblTagline" + Me.lblTagline.Size = New System.Drawing.Size(346, 16) + Me.lblTagline.TabIndex = 10 + Me.lblTagline.Text = "Tagline" + Me.lblTagline.Visible = False + ' + 'txtOutline + ' + Me.txtOutline.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtOutline.Location = New System.Drawing.Point(298, 325) + Me.txtOutline.Multiline = True + Me.txtOutline.Name = "txtOutline" + Me.txtOutline.Size = New System.Drawing.Size(343, 100) + Me.txtOutline.TabIndex = 22 + Me.txtOutline.TabStop = False + Me.txtOutline.Visible = False + ' + 'lblYear + ' + Me.lblYear.AutoSize = True + Me.lblYear.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblYear.Location = New System.Drawing.Point(476, 160) + Me.lblYear.Name = "lblYear" + Me.lblYear.Size = New System.Drawing.Size(31, 13) + Me.lblYear.TabIndex = 13 + Me.lblYear.Text = "0000" + Me.lblYear.Visible = False + ' + 'lblDirector + ' + Me.lblDirector.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblDirector.Location = New System.Drawing.Point(476, 186) + Me.lblDirector.Name = "lblDirector" + Me.lblDirector.Size = New System.Drawing.Size(165, 16) + Me.lblDirector.TabIndex = 15 + Me.lblDirector.Text = "Director" + Me.lblDirector.Visible = False + ' + 'lblGenre + ' + Me.lblGenre.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblGenre.Location = New System.Drawing.Point(476, 213) + Me.lblGenre.Name = "lblGenre" + Me.lblGenre.Size = New System.Drawing.Size(165, 52) + Me.lblGenre.TabIndex = 17 + Me.lblGenre.Text = "Genre" + Me.lblGenre.Visible = False + ' + 'txtIMDBID + ' + Me.txtIMDBID.Enabled = False + Me.txtIMDBID.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtIMDBID.Location = New System.Drawing.Point(143, 429) + Me.txtIMDBID.Name = "txtIMDBID" + Me.txtIMDBID.Size = New System.Drawing.Size(100, 22) + Me.txtIMDBID.TabIndex = 7 + ' + 'pnlTop + ' + Me.pnlTop.BackColor = System.Drawing.Color.LightSteelBlue + Me.pnlTop.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.pnlTop.Controls.Add(Me.Label2) + Me.pnlTop.Controls.Add(Me.Label1) + Me.pnlTop.Controls.Add(Me.PictureBox1) + Me.pnlTop.Dock = System.Windows.Forms.DockStyle.Top + Me.pnlTop.Location = New System.Drawing.Point(0, 0) + Me.pnlTop.Name = "pnlTop" + Me.pnlTop.Size = New System.Drawing.Size(647, 64) + Me.pnlTop.TabIndex = 2 + ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.BackColor = System.Drawing.Color.Transparent + Me.Label2.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Label2.ForeColor = System.Drawing.Color.White + Me.Label2.Location = New System.Drawing.Point(61, 38) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(276, 13) + Me.Label2.TabIndex = 1 + Me.Label2.Text = "View details of each result to find the proper movie." + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.BackColor = System.Drawing.Color.Transparent + Me.Label1.Font = New System.Drawing.Font("Segoe UI", 18.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Label1.ForeColor = System.Drawing.Color.White + Me.Label1.Location = New System.Drawing.Point(58, 3) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(256, 32) + Me.Label1.TabIndex = 0 + Me.Label1.Text = "Movie Search Results" + ' + 'PictureBox1 + ' + Me.PictureBox1.BackColor = System.Drawing.Color.Transparent + Me.PictureBox1.Image = CType(resources.GetObject("PictureBox1.Image"), System.Drawing.Image) + Me.PictureBox1.Location = New System.Drawing.Point(7, 8) + Me.PictureBox1.Name = "PictureBox1" + Me.PictureBox1.Size = New System.Drawing.Size(48, 48) + Me.PictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize + Me.PictureBox1.TabIndex = 0 + Me.PictureBox1.TabStop = False + ' + 'chkManual + ' + Me.chkManual.AutoSize = True + Me.chkManual.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkManual.Location = New System.Drawing.Point(8, 433) + Me.chkManual.Name = "chkManual" + Me.chkManual.Size = New System.Drawing.Size(128, 17) + Me.chkManual.TabIndex = 6 + Me.chkManual.Text = "Manual IMDB Entry:" + Me.chkManual.UseVisualStyleBackColor = True + ' + 'btnVerify + ' + Me.btnVerify.Enabled = False + Me.btnVerify.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.btnVerify.Location = New System.Drawing.Point(249, 429) + Me.btnVerify.Name = "btnVerify" + Me.btnVerify.Size = New System.Drawing.Size(75, 22) + Me.btnVerify.TabIndex = 8 + Me.btnVerify.Text = "Verify" + Me.btnVerify.UseVisualStyleBackColor = True + ' + 'lblIMDB + ' + Me.lblIMDB.AutoSize = True + Me.lblIMDB.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblIMDB.Location = New System.Drawing.Point(476, 277) + Me.lblIMDB.Name = "lblIMDB" + Me.lblIMDB.Size = New System.Drawing.Size(35, 13) + Me.lblIMDB.TabIndex = 19 + Me.lblIMDB.Text = "IMDB" + Me.lblIMDB.Visible = False + ' + 'lblYearHeader + ' + Me.lblYearHeader.AutoSize = True + Me.lblYearHeader.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblYearHeader.Location = New System.Drawing.Point(414, 160) + Me.lblYearHeader.Name = "lblYearHeader" + Me.lblYearHeader.Size = New System.Drawing.Size(32, 13) + Me.lblYearHeader.TabIndex = 12 + Me.lblYearHeader.Text = "Year:" + Me.lblYearHeader.Visible = False + ' + 'lblDirectorHeader + ' + Me.lblDirectorHeader.AutoSize = True + Me.lblDirectorHeader.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblDirectorHeader.Location = New System.Drawing.Point(414, 186) + Me.lblDirectorHeader.Name = "lblDirectorHeader" + Me.lblDirectorHeader.Size = New System.Drawing.Size(51, 13) + Me.lblDirectorHeader.TabIndex = 14 + Me.lblDirectorHeader.Text = "Director:" + Me.lblDirectorHeader.Visible = False + ' + 'lblGenreHeader + ' + Me.lblGenreHeader.AutoSize = True + Me.lblGenreHeader.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblGenreHeader.Location = New System.Drawing.Point(414, 213) + Me.lblGenreHeader.Name = "lblGenreHeader" + Me.lblGenreHeader.Size = New System.Drawing.Size(54, 13) + Me.lblGenreHeader.TabIndex = 16 + Me.lblGenreHeader.Text = "Genre(s):" + Me.lblGenreHeader.Visible = False + ' + 'lblIMDBHeader + ' + Me.lblIMDBHeader.AutoSize = True + Me.lblIMDBHeader.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblIMDBHeader.Location = New System.Drawing.Point(414, 277) + Me.lblIMDBHeader.Name = "lblIMDBHeader" + Me.lblIMDBHeader.Size = New System.Drawing.Size(53, 13) + Me.lblIMDBHeader.TabIndex = 18 + Me.lblIMDBHeader.Text = "IMDB ID:" + Me.lblIMDBHeader.Visible = False + ' + 'lblPlotHeader + ' + Me.lblPlotHeader.AutoSize = True + Me.lblPlotHeader.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblPlotHeader.Location = New System.Drawing.Point(295, 309) + Me.lblPlotHeader.Name = "lblPlotHeader" + Me.lblPlotHeader.Size = New System.Drawing.Size(83, 13) + Me.lblPlotHeader.TabIndex = 21 + Me.lblPlotHeader.Text = "Plot Summary:" + Me.lblPlotHeader.Visible = False + ' + 'btnSearch + ' + Me.btnSearch.Image = CType(resources.GetObject("btnSearch.Image"), System.Drawing.Image) + Me.btnSearch.Location = New System.Drawing.Point(266, 100) + Me.btnSearch.Name = "btnSearch" + Me.btnSearch.Size = New System.Drawing.Size(23, 23) + Me.btnSearch.TabIndex = 4 + Me.btnSearch.UseVisualStyleBackColor = True + ' + 'txtSearch + ' + Me.txtSearch.Location = New System.Drawing.Point(8, 101) + Me.txtSearch.Name = "txtSearch" + Me.txtSearch.Size = New System.Drawing.Size(252, 22) + Me.txtSearch.TabIndex = 3 + ' + 'pnlLoading + ' + Me.pnlLoading.BackColor = System.Drawing.Color.White + Me.pnlLoading.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.pnlLoading.Controls.Add(Me.Label3) + Me.pnlLoading.Controls.Add(Me.ProgressBar1) + Me.pnlLoading.Location = New System.Drawing.Point(368, 213) + Me.pnlLoading.Name = "pnlLoading" + Me.pnlLoading.Size = New System.Drawing.Size(200, 54) + Me.pnlLoading.TabIndex = 20 + ' + 'Label3 + ' + Me.Label3.AutoSize = True + Me.Label3.Location = New System.Drawing.Point(3, 10) + Me.Label3.Name = "Label3" + Me.Label3.Size = New System.Drawing.Size(98, 13) + Me.Label3.TabIndex = 0 + Me.Label3.Text = "Searching IMDB..." + Me.Label3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + ' + 'ProgressBar1 + ' + Me.ProgressBar1.Location = New System.Drawing.Point(3, 32) + Me.ProgressBar1.MarqueeAnimationSpeed = 25 + Me.ProgressBar1.Name = "ProgressBar1" + Me.ProgressBar1.Size = New System.Drawing.Size(192, 17) + Me.ProgressBar1.Style = System.Windows.Forms.ProgressBarStyle.Marquee + Me.ProgressBar1.TabIndex = 1 + ' + 'pnlPicStatus + ' + Me.pnlPicStatus.BackColor = System.Drawing.Color.LightSteelBlue + Me.pnlPicStatus.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.pnlPicStatus.Controls.Add(Me.Label4) + Me.pnlPicStatus.Location = New System.Drawing.Point(312, 185) + Me.pnlPicStatus.Name = "pnlPicStatus" + Me.pnlPicStatus.Size = New System.Drawing.Size(81, 45) + Me.pnlPicStatus.TabIndex = 11 + ' + 'Label4 + ' + Me.Label4.Location = New System.Drawing.Point(5, 5) + Me.Label4.Name = "Label4" + Me.Label4.Size = New System.Drawing.Size(70, 33) + Me.Label4.TabIndex = 0 + Me.Label4.Text = "Fetching Poster..." + Me.Label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter + ' + 'txtFileName + ' + Me.txtFileName.Enabled = False + Me.txtFileName.Location = New System.Drawing.Point(8, 73) + Me.txtFileName.Name = "txtFileName" + Me.txtFileName.Size = New System.Drawing.Size(598, 22) + Me.txtFileName.TabIndex = 3 + ' + 'btnOpenFolder + ' + Me.btnOpenFolder.Location = New System.Drawing.Point(612, 73) + Me.btnOpenFolder.Name = "btnOpenFolder" + Me.btnOpenFolder.Size = New System.Drawing.Size(29, 23) + Me.btnOpenFolder.TabIndex = 23 + Me.btnOpenFolder.Text = "..." + Me.btnOpenFolder.UseVisualStyleBackColor = True + ' + 'dlgIMDBSearchResults + ' + Me.AcceptButton = Me.OK_Button + Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi + Me.CancelButton = Me.Cancel_Button + Me.ClientSize = New System.Drawing.Size(647, 492) + Me.ControlBox = False + Me.Controls.Add(Me.btnOpenFolder) + Me.Controls.Add(Me.txtFileName) + Me.Controls.Add(Me.pnlLoading) + Me.Controls.Add(Me.pnlPicStatus) + Me.Controls.Add(Me.Cancel_Button) + Me.Controls.Add(Me.OK_Button) + Me.Controls.Add(Me.btnSearch) + Me.Controls.Add(Me.txtSearch) + Me.Controls.Add(Me.lblPlotHeader) + Me.Controls.Add(Me.lblIMDBHeader) + Me.Controls.Add(Me.lblGenreHeader) + Me.Controls.Add(Me.lblDirectorHeader) + Me.Controls.Add(Me.lblYearHeader) + Me.Controls.Add(Me.lblIMDB) + Me.Controls.Add(Me.btnVerify) + Me.Controls.Add(Me.chkManual) + Me.Controls.Add(Me.pnlTop) + Me.Controls.Add(Me.txtIMDBID) + Me.Controls.Add(Me.lblGenre) + Me.Controls.Add(Me.lblDirector) + Me.Controls.Add(Me.lblYear) + Me.Controls.Add(Me.txtOutline) + Me.Controls.Add(Me.lblTagline) + Me.Controls.Add(Me.lblTitle) + Me.Controls.Add(Me.pbPoster) + Me.Controls.Add(Me.tvResults) + Me.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.MinimumSize = New System.Drawing.Size(649, 460) + Me.Name = "dlgIMDBSearchResults" + Me.ShowIcon = False + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "Search Results" + CType(Me.pbPoster, System.ComponentModel.ISupportInitialize).EndInit() + Me.pnlTop.ResumeLayout(False) + Me.pnlTop.PerformLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() + Me.pnlLoading.ResumeLayout(False) + Me.pnlLoading.PerformLayout() + Me.pnlPicStatus.ResumeLayout(False) + Me.ResumeLayout(False) + Me.PerformLayout() - End Sub + End Sub Friend WithEvents OK_Button As System.Windows.Forms.Button Friend WithEvents Cancel_Button As System.Windows.Forms.Button Friend WithEvents tvResults As System.Windows.Forms.TreeView @@ -453,5 +474,7 @@ Partial Class dlgIMDBSearchResults Friend WithEvents ProgressBar1 As System.Windows.Forms.ProgressBar Friend WithEvents pnlPicStatus As System.Windows.Forms.Panel Friend WithEvents Label4 As System.Windows.Forms.Label + Friend WithEvents txtFileName As System.Windows.Forms.TextBox + Friend WithEvents btnOpenFolder As System.Windows.Forms.Button End Class diff --git a/Addons/scraper.EmberCore/Scraper/dlgIMDBSearchResults.resx b/Addons/scraper.EmberCore/Scraper/dlgIMDBSearchResults.resx index 09fbdab..fc0d614 100644 --- a/Addons/scraper.EmberCore/Scraper/dlgIMDBSearchResults.resx +++ b/Addons/scraper.EmberCore/Scraper/dlgIMDBSearchResults.resx @@ -120,72 +120,71 @@ - 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 - gg== + iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr5AAAK+QG0Yd4ZAAALEUlE + QVRoQ+1YCVCU5xle5Qa55JDTRA4XWMIpKsgRLgFRVOQGAbl21+VabuWSS0A0chiPIB5RquKRkIR4VI1N + SMxMjW1sik2maWOSydFOkknTZprD/+n7/i4Gcrad1CYzvDPP/N/u/v/3v+fzvt9KZmRGZmRGZmRGZmRG + fgZi7+CoWf2ExN5xvmb1lXh6eRsFh4TMc5fJQpycnXvs7OxbLa2s7zeznDdLc8v/X76u+KKAALeNKlW6 + UqnsycrKurQiPv6jZcuWwd3dHXZ2dphrYfHmPBubATs7h04bW9t6Xz+/Cnom38PD8z7NFpLszCyJmflc + zSeJxNTMXLP6kWWq8mXl6tbevv7Xe/v6PtizZ89nnZ2dKCkpQXJyMoKDg7Fq1SohISFBWJeYiFUJCVjg + 5CRC6uYmkIFfBAYFfbg0MGjU1s5+iWbLaWLn4Oi2UOoeovkoMTA00qz+TVm7dq0OKaGXlpFhVFJWZqbc + qLLKy8uz9fPzX5Cdk/P86OgoJiYmcOvWLeHRI0fQ0NCA4uJiJCUlITQ0VMTixYtFg/Lz8rBx40ZwZHx9 + fREVFSWUlpYK6enpoKghMTFxYllwSGpo2IPOUdHR+0NCQz+IioqGXKHA8uXL37W0tvYilb47DcMjIjUr + iU5waFjgvn37Snp7e49WVFScpk0u7d69+8aOHQ+9U1VV9UVOTg7i4uIgk8kEPz8/HDt2DNevX0dfXx8y + MjJYGaTTNTc3V7zGxMYibsUKqCsqRCPYMDYkLS0d5eXloD1RUVmJuro6lJWV31bRPRQ5NlSwsrIWvLy9 + 4eLi8q6ugYEL6adFmG5IWHiEeI2IiMpvbGx8p7u7++OGxobbtEZ9fT02bNgA9lR/fz86OjqgIK9weixa + tEjMcUtLS5w/fx5nz55FkVyO+PiVpEgZUlNTERERgRWkfHh4OBLXraMoNVKalUKlKhYNZIOy1q9HS1sb + 2js6hO09PfydQPuDnWNrawsDAwPBxs7uS30Dg0pS04AwW1R4qjwYEZnd2dWF/Px8gdJEKKaX7HjkGIrV + VWCPR0ZGghVmg6hY2QDxs6OjI7S1tcUc55Q6fPgwVq5KAO2BNWvWiNHgFOFn2AiKLI5QuvG7mrdsQUtL + C65du4YrV65gbGwM1TU1KCoqEvdnA9hBurq60NLShomp6VZSlSudjeBI3BXt9vaOtwoLC8XQcR7nFynR + 99Tv0f/0BJQV9Yh4MExkFR8fH8jJy1MN0NfXF6Nw8OBBMUpsZExsHDIzM0VlONe5PlauXCkcOnQIZ86c + wdGjR8nYRzE+Po6LFy+K0WMHnDhxQiQCuneaAbNmzYKxsfFL2jo6HqSvDcGY9WblJcTb3vTijzgt2ACV + SoXcfDlaj19D44lXUHfoKhJTsyjnPWBtbY3o6GjR0KkG0OboIq+2USrU1tYiOSUF/vQ7O4PTLicnF8xS + rOjQ0JBY9M899xwuXbqEkZERMroB+QUFFLl8bNq8GfFkgL+//10DSE3MnTsX7h6yEVo7aGBCkEiSklOW + dG/b9jHnKnuWc1OuLIaq5wkU9b2A7O3jSK/sxwNeXrCwsICrqyvlefykAQIbYGVlhda2NqG6upojJGRk + ZAruHh4g/v+bk5NTF73GxcfXt6qxqeldVp4N6aNoNVCdscOUSgXWUY2EhoZg4UIpqFdA5uk51QDB3Nyc + i/8WrZnLFxDuNAsPT0+3vXv3fhAbGytw6Ni7lcQK8fJu+KmehHPOKSxSnIRPQJBoAG9E1IaAgADBwcEB + hkZGYg3UavKXi5d/d3Zx/a25hUUavcKMYFtTU1PZPzAwwWmmVqvBJNHc3IwtVAtcI2xAWFgYKS7DPIq0 + Gb2HGt/dCJiZmcHBwbGa1gsJbMQcwh0hA96mohM4Cozk5CSszSmBVDUKF9UYnBVnkZBeKCqvo6MjphFH + YP78+f8wmmMsd3FxTSGPtS0NDHxy8ZIlv3Z2dunS09cPoK2N6HtPYqeXqA4+37SpDupytVBHaca1xEqz + 04g8vjJAJhPZZzI1J2vA0NDoMhUz7+lOmEfQvdtZK6uq+tgTpJjA1McezM1MQ2T5ALzbn4dr7RVkV3fD + zNRU0NLSEtgAKui/EDMU0eNLCbzxIoIfwZvAXjINj4xcV0DkwIXd3t4ubOvbgz3DT6ByczOyczdg9erV + YtdmZ3Dkpxqgp6cHYxMTmJqaYfbs2Z/MMZ6TS3v6EFwJHNVpTGT28MMP/5OZgyhTiImJAXViZGdSY2ob + gu9DL6Gs8xGYmpgIpqam/MIblDrZ9ByPAaws05slgRmCvTM7KDg4lfsBpyM5R9jc2IzDl1/Fo+Nv4+Cz + b6H35DiKqxsRFLgEUqkUzs7OYt+YaoCunp7gRuxH0TxMe7LyDC5gfcIdCQkJE68KpTJlcHBQbELc/tk7 + 2dnZ2Ersse3gadQ2biFvmMLGxuamiYlJKj3CHVBGYF6eFO6SjDklpaVvMCNR4xMaKAJbHhrE3su30Df2 + KnY8fhPdZyaw9eQNVLX2QeYuFYmAa2qygZEBAr2HZif3P9F+ywhBBH4fO2ua9yVSD6ZXiRaND7uGh4dF + TifOFmhMEI4fP44LF86DZpTblPPvU1uvoXvjCJwyd6jsaxIeFbWcCvTv3Fu421aoy9C273F0nb6JluGX + UX/oOlT9VxGqHsOCrBHEpijIMfNgRITg5ubGBjC7CTTJvmZgaJhMW4YSfAnTvf8tor1r1676Xxw79uG5 + c+fwzDPPiOjq7n6Dcn6QPMR5GE/g4YlT5VslNS0tp6W19XOejbhYKyvUqOkZRt3QdZQOXEVk9VncT4rb + p52AY/oJBCuOwk3mJRasvb0906dAxnyiq6ObRdvxuzhVuWANCd8cJViIDTQriaS+ocGWxuWMpqbmThrG + aol9Mulr9sRaQjDBnjA9jFMkMzNrPTWwz1Kooa2nWaeROnFheTNyd7wIT8UoFuQ9BqfCxwmjcCp4DPfl + jSJNXkfFOoupWuAUouI9RVst1+ABAhfutyv/A8IhcyOwFzgHOW2+94QVExMbsX379k8oAgLTI0+aeUUq + +CpH4Kx8Eq6lT0OqPgdpxXksLKdoKMeQ2z2GOYYGAvO9rZ3dp7TNasIaAkfAmfC9qfNDwgrrEr7T618T + Y5qv3iNCEJjNuLmVl6sRnL0F0qoL8Ki/DK+WZ+HdNg7Ppitwrb6I6NZLWOzvIxIF5X4v7bGOMBlxZrc7 + s8+9kpTU1J27Bga4QQnU5cVGxR03qHoYQbtfRszwHxB3/DWED/0OPltfQFTnrxAZHsIG/NHQ0LCAtsgg + cBSYOn8w6v8Lmd3U1PRRNR1YeEzhQxCfLeQFeUjb/RTyr/4Vit98jMwr7yH80E1BfuCqEBy09DbR6RA9 + m0NYT1hB4IOMHuHeiYtUKl5J6bCdO3d+ygMbD4o8NnCzVBQVoHbXIDrGb6DixTeRePpVYe+pc3ByWnCB + mIi7O0eAGYiblNgYCfdWVCUl4jUxKSlz//79wgClE43bQg+duni9f/8gjlDPOXrytDDyxBgKFYpX6HYF + QUlgAzh9uEH9h6f5H1EAHiQlkvucnKJofH6HGuOXBw4cEE9u3CD5AHPy1Cls29bzPvH+Jrq1lKAiMG3z + fPXNrnuv5cCRI5qVxLyoSF5FB59f7uzt/TOl1vvUIF/Pzd1wkc67rfR7BUFN4BSKIfDfeTqEn5RwLtsQ + zwfS6S6V5h05fWaPFxM4dXhA5MbFvM9d9ycrzOncWe8nME0uJvgTJmd9blr3nDb/W+Ec5ybJYMN+NorP + yIzMyIz8rEUi+Re4NXpfio4DrwAAAABJRU5ErkJggg== - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK6QAA - CukB/XXO0wAAAepJREFUOE+lkktIG1EUhkeFaLQ+UGulgthNEUHRCrqyIHZTdSd0Iyq46cL3Sly50ppV - uywYi2uDiyKK1ioFk0lm7mSmSgymJuIqSkwwCTVpGs3fM0Pa+poWceBj4N5zvnvOuZcDwN2HeyWrB98Q - LFosuRJjz51O6cXmxsaj/1V3RSAx8fVXRQnIsgwVRZHjJHr7L8kfAROFPoWS3G43gicnCIVC8O7vQ11z - StKsnkQTrK6sGCSJBXddLpyfJ5FKpTTUz+f1gvbA22w1t0k0AW3WCYIAv9+PZPIn4vGYRiLxA+HwKRhj - EByOIV2BdWur3mG34/j4iJISiEYjRBSx2BkikQiYKOJQ4ft1BZ/X13NIEHalW1CrUEVACj6fF4yqe2W2 - TegK0m0MiBSoziEQCNAQg/B4PPi2I8Fk+QJucBnZI0vvrkuuXCPP8+PU63dC7RnbTvHi/cKnA2O3GYbu - OeT0ziOv58Na8djHgt+iGw+JHk+pzWrtpMF27cn2Ko7jMnLbTebCl1MoaH+D/I4ZFHbM7FZ0ThtvfYl6 - 913WMjFc2jyGkqZRlNC/om2yXBNk0RFEEfGEqCZqiXriGdGYpoHCHhdXtg6W1fQKD592mQwZ3N8KKCiL - yCaMRB7xgMi/zuXqMinnTi3otfYLj6yxrhdJtZ8AAAAASUVORK5CYII= + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAArpAAAK6QH9dc7TAAAB9ElE + QVQ4T6XSTWgTQRQH8E0LaZPaD9oaxULRi0igJSroqYLoxaa3gpfSFrx4sGp7Kj31pDYnPQpG8dzgQcSg + 1orQZJPd2exWSYOxiXhKQz5oEjQxpubvm6WN2zUe1IXf7OzMe2/fLCsA+C9NF//GbwtPfD67wti5SES5 + +GZ19ZB532zfg8Lkq+uallFVFZymqRUqdNcYY9aYMFma1igpFoshl80in88jsbkJvhZRlAfGJCN9eOH3 + WxWF5TaiUezs1FCv13X8SiYSoD2IwaCTx5rpA20OS5KEVCqFWu07KpWyrlr9hkJhG4wxSOHwdXMypw+B + tTVXOBRCOr1FSVWUSkVSQrn8FcViEUyW8VkTr5iTOX14vbLSTgUK0d0j8C54IaCOZDIBRt1d9gYXjIl7 + GhM6xjWZAvl3yGQy9BFziMfj+Phegcf3FsLMc7TdfHbPmMztexBFcZ7O+oXwM+NdRP5xf/nVJ9uEF9aJ + h2ifeoyOyUcve+eedjUtwNHP0x8MBMaoo/EPauioIAgW+6jH233pFrpG76DTvYRu99LGwNhtW9MCf+IY + WbjRf3YOfWdm0Uf3gQuLh/m60EqvID3kGDlBhoiLnCKnd52ksCO9g+dnHM4p6eDxcY/VIvzqgAJaSRux + kQ5ygHSa7XXDtVBOo8C/g/ATj6yxruTRIKcAAAAASUVORK5CYII= \ No newline at end of file diff --git a/Addons/scraper.EmberCore/Scraper/dlgIMDBSearchResults.vb b/Addons/scraper.EmberCore/Scraper/dlgIMDBSearchResults.vb index f6ab164..6eddfac 100644 --- a/Addons/scraper.EmberCore/Scraper/dlgIMDBSearchResults.vb +++ b/Addons/scraper.EmberCore/Scraper/dlgIMDBSearchResults.vb @@ -19,6 +19,7 @@ ' ################################################################################ Imports System.Text.RegularExpressions +Imports System.IO Imports EmberAPI Public Class dlgIMDBSearchResults @@ -48,16 +49,17 @@ Public Class dlgIMDBSearchResults #Region "Methods" - Public Overloads Function ShowDialog(ByVal sMovieTitle As String, ByVal filterOptions As Structures.ScrapeOptions) As Windows.Forms.DialogResult + Public Overloads Function ShowDialog(ByVal sMovieTitle As String, ByVal filterOptions As Structures.ScrapeOptions, ByVal sFilename As String) As Windows.Forms.DialogResult Me.tmrWait.Enabled = False Me.tmrWait.Interval = 250 Me.tmrLoad.Enabled = False Me.tmrLoad.Interval = 100 - _filterOptions = filterOptions + _filterOptions = filterOptions - Me.Text = String.Concat(Master.eLang.GetString(10, "Search Results - "), sMovieTitle) - Me.txtSearch.Text = sMovieTitle + Me.Text = String.Concat(Master.eLang.GetString(10, "Search Results"), " - ", sMovieTitle) + Me.txtSearch.Text = sMovieTitle + Me.txtFileName.Text = sFilename chkManual.Enabled = False IMDB.IMDBURL = IMDBURL IMDB.SearchMovieAsync(sMovieTitle, _filterOptions) @@ -65,14 +67,15 @@ Public Class dlgIMDBSearchResults Return MyBase.ShowDialog() End Function - Public Overloads Function ShowDialog(ByVal Res As IMDB.MovieSearchResults, ByVal sMovieTitle As String) As Windows.Forms.DialogResult + Public Overloads Function ShowDialog(ByVal Res As IMDB.MovieSearchResults, ByVal sMovieTitle As String, ByVal sFilename As String) As Windows.Forms.DialogResult Me.tmrWait.Enabled = False Me.tmrWait.Interval = 250 Me.tmrLoad.Enabled = False Me.tmrLoad.Interval = 100 - Me.Text = String.Concat(Master.eLang.GetString(10, "Search Results - "), sMovieTitle) - Me.txtSearch.Text = sMovieTitle + Me.Text = String.Concat(Master.eLang.GetString(10, "Search Results"), " - ", sMovieTitle) + Me.txtSearch.Text = sMovieTitle + Me.txtFileName.Text = sFilename SearchResultsDownloaded(Res) Return MyBase.ShowDialog() @@ -142,6 +145,14 @@ Public Class dlgIMDBSearchResults Me.Close() End Sub + Private Sub btnOpenFolder_Click(sender As Object, e As EventArgs) Handles btnOpenFolder.Click + Dim fPath As String = Directory.GetParent(Me.txtFileName.Text).FullName + + If Not String.IsNullOrEmpty(fPath) Then + Shell("Explorer.exe " & fPath, vbNormalFocus) + End If + End Sub + Private Sub chkManual_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkManual.CheckedChanged Me.ClearInfo() Me.OK_Button.Enabled = False @@ -353,11 +364,11 @@ Public Class dlgIMDBSearchResults 'determine if we automatically start downloading info for selected node If M.ExactMatches.Count > 0 Then - 'If M.ExactMatches.Count = 1 Then Me.tvResults.SelectedNode = selNode - 'Else - 'Me.tvResults.SelectedNode = Nothing - 'End If + ElseIf M.PopularTitles.Count > 0 Then + Me.tvResults.SelectedNode = selNode + ElseIf M.PartialMatches.Count > 0 Then + Me.tvResults.SelectedNode = selNode Else Me.tvResults.SelectedNode = Nothing End If @@ -506,4 +517,5 @@ Public Class dlgIMDBSearchResults End Structure #End Region 'Nested Types + End Class \ No newline at end of file diff --git a/Addons/scraper.EmberCore/Scraper/dlgImgSelect.vb b/Addons/scraper.EmberCore/Scraper/dlgImgSelect.vb index 8b467fd..7e37076 100644 --- a/Addons/scraper.EmberCore/Scraper/dlgImgSelect.vb +++ b/Addons/scraper.EmberCore/Scraper/dlgImgSelect.vb @@ -57,7 +57,7 @@ Public Class dlgImgSelect Private TMDB As New TMDB.Scraper Private TMDBPosters As New List(Of MediaContainers.Image) Private tMovie As New Structures.DBMovie - Private tmpImage As New Images + Private tmpImage As New MediaContainers.Image Private _impaDone As Boolean = True Private _mpdbDone As Boolean = True Private _tmdbDone As Boolean = True @@ -589,7 +589,7 @@ Public Class dlgImgSelect Me.rbSmall.Checked = False Me.OK_Button.Enabled = True Me.OK_Button.Focus() - Me.tmpImage.Image = Me.pbImage(iIndex).Image + Me.tmpImage = CType(Me.pbImage(iIndex).Tag, MediaContainers.Image) End If Catch ex As Exception @@ -897,75 +897,77 @@ Public Class dlgImgSelect tmpPathPlus = Path.Combine(Master.TempPath, "poster.jpg") End If - If Not IsNothing(Me.tmpImage.Image) Then - If isEdit Then - Me.tmpImage.Save(tmpPathPlus, 100, selURL) - Results.ImagePath = tmpPathPlus - Else - If Me.DLType = Enums.ImageType.Fanart Then - Results.ImagePath = Me.tmpImage.SaveAsFanart(tMovie) - Else - Results.ImagePath = Me.tmpImage.SaveAsPoster(tMovie) - End If - End If - Else - Me.pnlBG.Visible = False - Me.pnlSinglePic.Visible = True - Me.Refresh() - Application.DoEvents() - Select Case True - Case Me.rbXLarge.Checked - If Master.eSettings.UseImgCache Then - tmpImage.FromFile(Path.Combine(CachePath, String.Concat("poster_(original)_(url=", Me.rbXLarge.Tag, ").jpg"))) - Else - If extrathumbSize = "original" And DLType = Enums.ImageType.Fanart Then - Me.tmpImage.Image = Me.pbImage(selIndex).Image - Else - Me.tmpImage.FromWeb(Me.rbXLarge.Tag.ToString) - End If - End If - Case Me.rbLarge.Checked - If Master.eSettings.UseImgCache Then - Me.tmpImage.FromFile(Path.Combine(CachePath, String.Concat("poster_(mid)_(url=", Me.rbLarge.Tag, ").jpg"))) - Else - If extrathumbSize = "w1280" And DLType = Enums.ImageType.Fanart Or Not DLType = Enums.ImageType.Fanart Then - Me.tmpImage.Image = Me.pbImage(selIndex).Image - Else - Me.tmpImage.FromWeb(Me.rbLarge.Tag.ToString) - End If - End If - Case Me.rbMedium.Checked - If extrathumbSize = "poster" And DLType = Enums.ImageType.Fanart Then - Me.tmpImage.Image = Me.pbImage(selIndex).Image - Else - Me.tmpImage.FromWeb(Me.rbMedium.Tag.ToString) - End If - Case Me.rbSmall.Checked - If Master.eSettings.UseImgCache Then - Me.tmpImage.FromFile(Path.Combine(CachePath, String.Concat("poster_(thumb)_(url=", Me.rbSmall.Tag, ").jpg"))) - Else - If extrathumbSize = "thumb" And DLType = Enums.ImageType.Fanart Then - Me.tmpImage.Image = Me.pbImage(selIndex).Image - Else - Me.tmpImage.FromWeb(Me.rbSmall.Tag.ToString) - End If - End If - End Select - - If Not IsNothing(Me.tmpImage.Image) Then - If isEdit Then - Me.tmpImage.Save(tmpPathPlus, 100, selURL) - Results.ImagePath = tmpPathPlus - Else - If Me.DLType = Enums.ImageType.Fanart Then - Results.ImagePath = Me.tmpImage.SaveAsFanart(Me.tMovie) - Else - Results.ImagePath = Me.tmpImage.SaveAsPoster(Me.tMovie) - End If - End If - End If - Me.pnlSinglePic.Visible = False - End If + If Not IsNothing(Me.tmpImage.WebImage.Image) Then + If isEdit Then + 'Me.tmpImage.Save(tmpPathPlus, 100, selURL) + Me.tmpImage.WebImage.Save(tmpPathPlus, , , False) + Results.ImagePath = tmpPathPlus + Else + If Me.DLType = Enums.ImageType.Fanart Then + Results.ImagePath = Me.tmpImage.WebImage.SaveAsFanart(tMovie) + Else + Results.ImagePath = Me.tmpImage.WebImage.SaveAsPoster(tMovie) + End If + End If + Else + Me.pnlBG.Visible = False + Me.pnlSinglePic.Visible = True + Me.Refresh() + Application.DoEvents() + Select Case True + Case Me.rbXLarge.Checked + If Master.eSettings.UseImgCache Then + tmpImage.WebImage.FromFile(Path.Combine(CachePath, String.Concat("poster_(original)_(url=", Me.rbXLarge.Tag, ").jpg"))) + Else + If extrathumbSize = "original" And DLType = Enums.ImageType.Fanart Then + Me.tmpImage.WebImage = CType(Me.pbImage(selIndex).Tag, MediaContainers.Image).WebImage + Else + Me.tmpImage.WebImage.FromWeb(Me.rbXLarge.Tag.ToString) + End If + End If + Case Me.rbLarge.Checked + If Master.eSettings.UseImgCache Then + Me.tmpImage.WebImage.FromFile(Path.Combine(CachePath, String.Concat("poster_(mid)_(url=", Me.rbLarge.Tag, ").jpg"))) + Else + If extrathumbSize = "w1280" And DLType = Enums.ImageType.Fanart Or Not DLType = Enums.ImageType.Fanart Then + Me.tmpImage.WebImage = CType(Me.pbImage(selIndex).Tag, MediaContainers.Image).WebImage + Else + Me.tmpImage.WebImage.FromWeb(Me.rbLarge.Tag.ToString) + End If + End If + Case Me.rbMedium.Checked + If extrathumbSize = "poster" And DLType = Enums.ImageType.Fanart Then + Me.tmpImage.WebImage = CType(Me.pbImage(selIndex).Tag, MediaContainers.Image).WebImage + Else + Me.tmpImage.WebImage.FromWeb(Me.rbMedium.Tag.ToString) + End If + Case Me.rbSmall.Checked + If Master.eSettings.UseImgCache Then + Me.tmpImage.WebImage.FromFile(Path.Combine(CachePath, String.Concat("poster_(thumb)_(url=", Me.rbSmall.Tag, ").jpg"))) + Else + If extrathumbSize = "thumb" And DLType = Enums.ImageType.Fanart Then + Me.tmpImage.WebImage = CType(Me.pbImage(selIndex).Tag, MediaContainers.Image).WebImage + Else + Me.tmpImage.WebImage.FromWeb(Me.rbSmall.Tag.ToString) + End If + End If + End Select + + If Not IsNothing(Me.tmpImage.WebImage.Image) Then + If isEdit Then + 'Me.tmpImage.Save(tmpPathPlus, 100, selURL) + Me.tmpImage.WebImage.Save(tmpPathPlus, , , False) + Results.ImagePath = tmpPathPlus + Else + If Me.DLType = Enums.ImageType.Fanart Then + Results.ImagePath = Me.tmpImage.WebImage.SaveAsFanart(Me.tMovie) + Else + Results.ImagePath = Me.tmpImage.WebImage.SaveAsPoster(Me.tMovie) + End If + End If + End If + Me.pnlSinglePic.Visible = False + End If If Me.DLType = Enums.ImageType.Fanart Then Dim iMod As Integer = 0 @@ -1121,9 +1123,9 @@ Public Class dlgImgSelect Functions.PNLDoubleBuffer(Me.pnlBG) If Me.DLType = Enums.ImageType.Posters Then - Me.Text = String.Concat(Master.eLang.GetString(39, "Select Poster - "), If(Not String.IsNullOrEmpty(Me.tMovie.Movie.Title), Me.tMovie.Movie.Title, Me.tMovie.ListTitle)) + Me.Text = String.Concat(Master.eLang.GetString(39, "Select Poster"), " - ", If(Not String.IsNullOrEmpty(Me.tMovie.Movie.Title), Me.tMovie.Movie.Title, Me.tMovie.ListTitle)) Else - Me.Text = String.Concat(Master.eLang.GetString(40, "Select Fanart - "), If(Not String.IsNullOrEmpty(Me.tMovie.Movie.Title), Me.tMovie.Movie.Title, Me.tMovie.ListTitle)) + Me.Text = String.Concat(Master.eLang.GetString(40, "Select Fanart"), " - ", If(Not String.IsNullOrEmpty(Me.tMovie.Movie.Title), Me.tMovie.Movie.Title, Me.tMovie.ListTitle)) Me.pnlDLStatus.Height = 75 Me.pnlDLStatus.Top = 207 diff --git a/Addons/scraper.EmberCore/Scraper/dlgTrailer.Designer.vb b/Addons/scraper.EmberCore/Scraper/dlgTrailer.Designer.vb index 1865dbc..2871b29 100644 --- a/Addons/scraper.EmberCore/Scraper/dlgTrailer.Designer.vb +++ b/Addons/scraper.EmberCore/Scraper/dlgTrailer.Designer.vb @@ -22,241 +22,253 @@ Partial Class dlgTrailer 'Do not modify it using the code editor. _ Private Sub InitializeComponent() - Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(dlgTrailer)) - Me.OK_Button = New System.Windows.Forms.Button() - Me.Cancel_Button = New System.Windows.Forms.Button() - Me.lbTrailers = New System.Windows.Forms.ListBox() - Me.GroupBox1 = New System.Windows.Forms.GroupBox() - Me.pnlStatus = New System.Windows.Forms.Panel() - Me.lblStatus = New System.Windows.Forms.Label() - Me.pbStatus = New System.Windows.Forms.ProgressBar() - Me.btnGetTrailers = New System.Windows.Forms.Button() - Me.GroupBox2 = New System.Windows.Forms.GroupBox() - Me.btnBrowse = New System.Windows.Forms.Button() - Me.txtManual = New System.Windows.Forms.TextBox() - Me.Label2 = New System.Windows.Forms.Label() - Me.txtYouTube = New System.Windows.Forms.TextBox() - Me.Label1 = New System.Windows.Forms.Label() - Me.btnPlayTrailer = New System.Windows.Forms.Button() - Me.btnSetNfo = New System.Windows.Forms.Button() - Me.ofdTrailer = New System.Windows.Forms.OpenFileDialog() - Me.Panel1 = New System.Windows.Forms.Panel() - Me.GroupBox1.SuspendLayout() - Me.pnlStatus.SuspendLayout() - Me.GroupBox2.SuspendLayout() - Me.Panel1.SuspendLayout() - Me.SuspendLayout() - ' - 'OK_Button - ' - Me.OK_Button.Enabled = False - Me.OK_Button.Location = New System.Drawing.Point(290, 339) - Me.OK_Button.Name = "OK_Button" - Me.OK_Button.Size = New System.Drawing.Size(74, 23) - Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "Download" - ' - 'Cancel_Button - ' - Me.Cancel_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel - Me.Cancel_Button.Location = New System.Drawing.Point(369, 339) - Me.Cancel_Button.Name = "Cancel_Button" - Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) - Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" - ' - 'lbTrailers - ' - Me.lbTrailers.Enabled = False - Me.lbTrailers.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lbTrailers.FormattingEnabled = True - Me.lbTrailers.HorizontalScrollbar = True - Me.lbTrailers.Location = New System.Drawing.Point(6, 19) - Me.lbTrailers.Name = "lbTrailers" - Me.lbTrailers.Size = New System.Drawing.Size(411, 173) - Me.lbTrailers.TabIndex = 0 - ' - 'GroupBox1 - ' - Me.GroupBox1.Controls.Add(Me.pnlStatus) - Me.GroupBox1.Controls.Add(Me.btnGetTrailers) - Me.GroupBox1.Controls.Add(Me.GroupBox2) - Me.GroupBox1.Controls.Add(Me.lbTrailers) - Me.GroupBox1.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.GroupBox1.Location = New System.Drawing.Point(9, 9) - Me.GroupBox1.Name = "GroupBox1" - Me.GroupBox1.Size = New System.Drawing.Size(424, 319) - Me.GroupBox1.TabIndex = 0 - Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "Select Trailer to Scrape" - ' - 'pnlStatus - ' - Me.pnlStatus.BackColor = System.Drawing.Color.White - Me.pnlStatus.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.pnlStatus.Controls.Add(Me.lblStatus) - Me.pnlStatus.Controls.Add(Me.pbStatus) - Me.pnlStatus.Location = New System.Drawing.Point(112, 82) - Me.pnlStatus.Name = "pnlStatus" - Me.pnlStatus.Size = New System.Drawing.Size(200, 54) - Me.pnlStatus.TabIndex = 1 - Me.pnlStatus.Visible = False - ' - 'lblStatus - ' - Me.lblStatus.AutoSize = True - Me.lblStatus.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblStatus.Location = New System.Drawing.Point(3, 10) - Me.lblStatus.Name = "lblStatus" - Me.lblStatus.Size = New System.Drawing.Size(121, 13) - Me.lblStatus.TabIndex = 0 - Me.lblStatus.Text = "Compiling trailer list..." - Me.lblStatus.TextAlign = System.Drawing.ContentAlignment.MiddleLeft - ' - 'pbStatus - ' - Me.pbStatus.Location = New System.Drawing.Point(3, 32) - Me.pbStatus.MarqueeAnimationSpeed = 25 - Me.pbStatus.Name = "pbStatus" - Me.pbStatus.Size = New System.Drawing.Size(192, 17) - Me.pbStatus.Style = System.Windows.Forms.ProgressBarStyle.Marquee - Me.pbStatus.TabIndex = 1 - ' - 'btnGetTrailers - ' - Me.btnGetTrailers.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.btnGetTrailers.Image = CType(resources.GetObject("btnGetTrailers.Image"), System.Drawing.Image) - Me.btnGetTrailers.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnGetTrailers.Location = New System.Drawing.Point(120, 82) - Me.btnGetTrailers.Name = "btnGetTrailers" - Me.btnGetTrailers.Size = New System.Drawing.Size(184, 23) - Me.btnGetTrailers.TabIndex = 2 - Me.btnGetTrailers.Text = "Download Trailer List" - Me.btnGetTrailers.TextAlign = System.Drawing.ContentAlignment.MiddleRight - Me.btnGetTrailers.UseVisualStyleBackColor = True - ' - 'GroupBox2 - ' - Me.GroupBox2.Controls.Add(Me.btnBrowse) - Me.GroupBox2.Controls.Add(Me.txtManual) - Me.GroupBox2.Controls.Add(Me.Label2) - Me.GroupBox2.Controls.Add(Me.txtYouTube) - Me.GroupBox2.Controls.Add(Me.Label1) - Me.GroupBox2.Location = New System.Drawing.Point(6, 201) - Me.GroupBox2.Name = "GroupBox2" - Me.GroupBox2.Size = New System.Drawing.Size(411, 111) - Me.GroupBox2.TabIndex = 3 - Me.GroupBox2.TabStop = False - Me.GroupBox2.Text = "Manual Trailer Entry" - ' - 'btnBrowse - ' - Me.btnBrowse.Location = New System.Drawing.Point(376, 82) - Me.btnBrowse.Name = "btnBrowse" - Me.btnBrowse.Size = New System.Drawing.Size(25, 23) - Me.btnBrowse.TabIndex = 4 - Me.btnBrowse.Text = "..." - Me.btnBrowse.UseVisualStyleBackColor = True - ' - 'txtManual - ' - Me.txtManual.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.txtManual.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtManual.Location = New System.Drawing.Point(9, 82) - Me.txtManual.Name = "txtManual" - Me.txtManual.Size = New System.Drawing.Size(365, 22) - Me.txtManual.TabIndex = 3 - ' - 'Label2 - ' - Me.Label2.AutoSize = True - Me.Label2.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label2.Location = New System.Drawing.Point(6, 68) - Me.Label2.Name = "Label2" - Me.Label2.Size = New System.Drawing.Size(72, 13) - Me.Label2.TabIndex = 2 - Me.Label2.Text = "Local Trailer:" - ' - 'txtYouTube - ' - Me.txtYouTube.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.txtYouTube.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtYouTube.Location = New System.Drawing.Point(9, 28) - Me.txtYouTube.Name = "txtYouTube" - Me.txtYouTube.Size = New System.Drawing.Size(392, 22) - Me.txtYouTube.TabIndex = 1 - ' - 'Label1 - ' - Me.Label1.AutoSize = True - Me.Label1.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label1.Location = New System.Drawing.Point(6, 14) - Me.Label1.Name = "Label1" - Me.Label1.Size = New System.Drawing.Size(153, 13) - Me.Label1.TabIndex = 0 - Me.Label1.Text = "Direct Link or YouTube URL:" - ' - 'btnPlayTrailer - ' - Me.btnPlayTrailer.Enabled = False - Me.btnPlayTrailer.Image = CType(resources.GetObject("btnPlayTrailer.Image"), System.Drawing.Image) - Me.btnPlayTrailer.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnPlayTrailer.Location = New System.Drawing.Point(12, 339) - Me.btnPlayTrailer.Name = "btnPlayTrailer" - Me.btnPlayTrailer.Size = New System.Drawing.Size(106, 23) - Me.btnPlayTrailer.TabIndex = 3 - Me.btnPlayTrailer.Text = "Preview Trailer" - Me.btnPlayTrailer.TextAlign = System.Drawing.ContentAlignment.MiddleRight - Me.btnPlayTrailer.UseVisualStyleBackColor = True - ' - 'btnSetNfo - ' - Me.btnSetNfo.Enabled = False - Me.btnSetNfo.Location = New System.Drawing.Point(207, 339) - Me.btnSetNfo.Name = "btnSetNfo" - Me.btnSetNfo.Size = New System.Drawing.Size(77, 23) - Me.btnSetNfo.TabIndex = 4 - Me.btnSetNfo.Text = "Set To Nfo" - ' - 'Panel1 - ' - Me.Panel1.BackColor = System.Drawing.Color.White - Me.Panel1.Controls.Add(Me.GroupBox1) - Me.Panel1.Location = New System.Drawing.Point(3, 3) - Me.Panel1.Name = "Panel1" - Me.Panel1.Size = New System.Drawing.Size(444, 331) - Me.Panel1.TabIndex = 2 - ' - 'dlgTrailer - ' - Me.AcceptButton = Me.OK_Button - Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi - Me.CancelButton = Me.Cancel_Button - Me.ClientSize = New System.Drawing.Size(450, 366) - Me.ControlBox = False - Me.Controls.Add(Me.Panel1) - Me.Controls.Add(Me.btnSetNfo) - Me.Controls.Add(Me.Cancel_Button) - Me.Controls.Add(Me.OK_Button) - Me.Controls.Add(Me.btnPlayTrailer) - Me.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog - Me.MaximizeBox = False - Me.MinimizeBox = False - Me.Name = "dlgTrailer" - Me.ShowIcon = False - Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Select Trailer" - Me.GroupBox1.ResumeLayout(False) - Me.pnlStatus.ResumeLayout(False) - Me.pnlStatus.PerformLayout() - Me.GroupBox2.ResumeLayout(False) - Me.GroupBox2.PerformLayout() - Me.Panel1.ResumeLayout(False) - Me.ResumeLayout(False) + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(dlgTrailer)) + Me.OK_Button = New System.Windows.Forms.Button() + Me.Cancel_Button = New System.Windows.Forms.Button() + Me.lbTrailers = New System.Windows.Forms.ListBox() + Me.GroupBox1 = New System.Windows.Forms.GroupBox() + Me.pnlStatus = New System.Windows.Forms.Panel() + Me.lblStatus = New System.Windows.Forms.Label() + Me.pbStatus = New System.Windows.Forms.ProgressBar() + Me.btnGetTrailers = New System.Windows.Forms.Button() + Me.GroupBox2 = New System.Windows.Forms.GroupBox() + Me.btnBrowse = New System.Windows.Forms.Button() + Me.txtManual = New System.Windows.Forms.TextBox() + Me.Label2 = New System.Windows.Forms.Label() + Me.txtYouTube = New System.Windows.Forms.TextBox() + Me.Label1 = New System.Windows.Forms.Label() + Me.btnPlayTrailer = New System.Windows.Forms.Button() + Me.btnSetNfo = New System.Windows.Forms.Button() + Me.ofdTrailer = New System.Windows.Forms.OpenFileDialog() + Me.Panel1 = New System.Windows.Forms.Panel() + Me.btnPlayBrowser = New System.Windows.Forms.Button() + Me.GroupBox1.SuspendLayout() + Me.pnlStatus.SuspendLayout() + Me.GroupBox2.SuspendLayout() + Me.Panel1.SuspendLayout() + Me.SuspendLayout() + ' + 'OK_Button + ' + Me.OK_Button.Enabled = False + Me.OK_Button.Location = New System.Drawing.Point(350, 340) + Me.OK_Button.Name = "OK_Button" + Me.OK_Button.Size = New System.Drawing.Size(120, 23) + Me.OK_Button.TabIndex = 6 + Me.OK_Button.Text = "Download" + ' + 'Cancel_Button + ' + Me.Cancel_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.Cancel_Button.Location = New System.Drawing.Point(350, 369) + Me.Cancel_Button.Name = "Cancel_Button" + Me.Cancel_Button.Size = New System.Drawing.Size(120, 23) + Me.Cancel_Button.TabIndex = 7 + Me.Cancel_Button.Text = "Cancel" + ' + 'lbTrailers + ' + Me.lbTrailers.Enabled = False + Me.lbTrailers.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lbTrailers.FormattingEnabled = True + Me.lbTrailers.HorizontalScrollbar = True + Me.lbTrailers.Location = New System.Drawing.Point(6, 19) + Me.lbTrailers.Name = "lbTrailers" + Me.lbTrailers.Size = New System.Drawing.Size(445, 173) + Me.lbTrailers.TabIndex = 0 + ' + 'GroupBox1 + ' + Me.GroupBox1.Controls.Add(Me.pnlStatus) + Me.GroupBox1.Controls.Add(Me.btnGetTrailers) + Me.GroupBox1.Controls.Add(Me.GroupBox2) + Me.GroupBox1.Controls.Add(Me.lbTrailers) + Me.GroupBox1.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.GroupBox1.Location = New System.Drawing.Point(9, 9) + Me.GroupBox1.Name = "GroupBox1" + Me.GroupBox1.Size = New System.Drawing.Size(458, 319) + Me.GroupBox1.TabIndex = 0 + Me.GroupBox1.TabStop = False + Me.GroupBox1.Text = "Select Trailer to Scrape" + ' + 'pnlStatus + ' + Me.pnlStatus.BackColor = System.Drawing.Color.White + Me.pnlStatus.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.pnlStatus.Controls.Add(Me.lblStatus) + Me.pnlStatus.Controls.Add(Me.pbStatus) + Me.pnlStatus.Location = New System.Drawing.Point(122, 60) + Me.pnlStatus.Name = "pnlStatus" + Me.pnlStatus.Size = New System.Drawing.Size(200, 54) + Me.pnlStatus.TabIndex = 1 + Me.pnlStatus.Visible = False + ' + 'lblStatus + ' + Me.lblStatus.AutoSize = True + Me.lblStatus.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblStatus.Location = New System.Drawing.Point(3, 10) + Me.lblStatus.Name = "lblStatus" + Me.lblStatus.Size = New System.Drawing.Size(121, 13) + Me.lblStatus.TabIndex = 0 + Me.lblStatus.Text = "Compiling trailer list..." + Me.lblStatus.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + ' + 'pbStatus + ' + Me.pbStatus.Location = New System.Drawing.Point(3, 32) + Me.pbStatus.MarqueeAnimationSpeed = 25 + Me.pbStatus.Name = "pbStatus" + Me.pbStatus.Size = New System.Drawing.Size(192, 17) + Me.pbStatus.Style = System.Windows.Forms.ProgressBarStyle.Marquee + Me.pbStatus.TabIndex = 1 + ' + 'btnGetTrailers + ' + Me.btnGetTrailers.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.btnGetTrailers.Image = CType(resources.GetObject("btnGetTrailers.Image"), System.Drawing.Image) + Me.btnGetTrailers.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnGetTrailers.Location = New System.Drawing.Point(130, 82) + Me.btnGetTrailers.Name = "btnGetTrailers" + Me.btnGetTrailers.Size = New System.Drawing.Size(184, 23) + Me.btnGetTrailers.TabIndex = 2 + Me.btnGetTrailers.Text = "Download Trailer List" + Me.btnGetTrailers.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnGetTrailers.UseVisualStyleBackColor = True + ' + 'GroupBox2 + ' + Me.GroupBox2.Controls.Add(Me.btnBrowse) + Me.GroupBox2.Controls.Add(Me.txtManual) + Me.GroupBox2.Controls.Add(Me.Label2) + Me.GroupBox2.Controls.Add(Me.txtYouTube) + Me.GroupBox2.Controls.Add(Me.Label1) + Me.GroupBox2.Location = New System.Drawing.Point(6, 201) + Me.GroupBox2.Name = "GroupBox2" + Me.GroupBox2.Size = New System.Drawing.Size(445, 111) + Me.GroupBox2.TabIndex = 3 + Me.GroupBox2.TabStop = False + Me.GroupBox2.Text = "Manual Trailer Entry" + ' + 'btnBrowse + ' + Me.btnBrowse.Location = New System.Drawing.Point(410, 82) + Me.btnBrowse.Name = "btnBrowse" + Me.btnBrowse.Size = New System.Drawing.Size(25, 23) + Me.btnBrowse.TabIndex = 4 + Me.btnBrowse.Text = "..." + Me.btnBrowse.UseVisualStyleBackColor = True + ' + 'txtManual + ' + Me.txtManual.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.txtManual.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtManual.Location = New System.Drawing.Point(9, 82) + Me.txtManual.Name = "txtManual" + Me.txtManual.Size = New System.Drawing.Size(395, 22) + Me.txtManual.TabIndex = 3 + ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label2.Location = New System.Drawing.Point(6, 68) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(71, 13) + Me.Label2.TabIndex = 2 + Me.Label2.Text = "Local Trailer:" + ' + 'txtYouTube + ' + Me.txtYouTube.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.txtYouTube.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtYouTube.Location = New System.Drawing.Point(9, 28) + Me.txtYouTube.Name = "txtYouTube" + Me.txtYouTube.Size = New System.Drawing.Size(426, 22) + Me.txtYouTube.TabIndex = 1 + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label1.Location = New System.Drawing.Point(6, 14) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(151, 13) + Me.Label1.TabIndex = 0 + Me.Label1.Text = "Direct Link or YouTube URL:" + ' + 'btnPlayTrailer + ' + Me.btnPlayTrailer.Enabled = False + Me.btnPlayTrailer.Image = CType(resources.GetObject("btnPlayTrailer.Image"), System.Drawing.Image) + Me.btnPlayTrailer.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnPlayTrailer.Location = New System.Drawing.Point(12, 369) + Me.btnPlayTrailer.Name = "btnPlayTrailer" + Me.btnPlayTrailer.Size = New System.Drawing.Size(120, 23) + Me.btnPlayTrailer.TabIndex = 3 + Me.btnPlayTrailer.Text = "Preview Trailer" + Me.btnPlayTrailer.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnPlayTrailer.UseVisualStyleBackColor = True + ' + 'btnSetNfo + ' + Me.btnSetNfo.Enabled = False + Me.btnSetNfo.Location = New System.Drawing.Point(224, 340) + Me.btnSetNfo.Name = "btnSetNfo" + Me.btnSetNfo.Size = New System.Drawing.Size(120, 23) + Me.btnSetNfo.TabIndex = 5 + Me.btnSetNfo.Text = "Set To Nfo" + ' + 'Panel1 + ' + Me.Panel1.BackColor = System.Drawing.Color.White + Me.Panel1.Controls.Add(Me.GroupBox1) + Me.Panel1.Location = New System.Drawing.Point(3, 3) + Me.Panel1.Name = "Panel1" + Me.Panel1.Size = New System.Drawing.Size(478, 331) + Me.Panel1.TabIndex = 2 + ' + 'btnPlayBrowser + ' + Me.btnPlayBrowser.Enabled = False + Me.btnPlayBrowser.Location = New System.Drawing.Point(12, 340) + Me.btnPlayBrowser.Name = "btnPlayBrowser" + Me.btnPlayBrowser.Size = New System.Drawing.Size(120, 23) + Me.btnPlayBrowser.TabIndex = 4 + Me.btnPlayBrowser.Text = "Open In Browser" + Me.btnPlayBrowser.UseVisualStyleBackColor = True + ' + 'dlgTrailer + ' + Me.AcceptButton = Me.OK_Button + Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi + Me.CancelButton = Me.Cancel_Button + Me.ClientSize = New System.Drawing.Size(484, 398) + Me.ControlBox = False + Me.Controls.Add(Me.Panel1) + Me.Controls.Add(Me.btnSetNfo) + Me.Controls.Add(Me.Cancel_Button) + Me.Controls.Add(Me.OK_Button) + Me.Controls.Add(Me.btnPlayTrailer) + Me.Controls.Add(Me.btnPlayBrowser) + Me.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "dlgTrailer" + Me.ShowIcon = False + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "Select Trailer" + Me.GroupBox1.ResumeLayout(False) + Me.pnlStatus.ResumeLayout(False) + Me.pnlStatus.PerformLayout() + Me.GroupBox2.ResumeLayout(False) + Me.GroupBox2.PerformLayout() + Me.Panel1.ResumeLayout(False) + Me.ResumeLayout(False) - End Sub + End Sub Friend WithEvents OK_Button As System.Windows.Forms.Button Friend WithEvents Cancel_Button As System.Windows.Forms.Button Friend WithEvents lbTrailers As System.Windows.Forms.ListBox @@ -275,5 +287,6 @@ Partial Class dlgTrailer Friend WithEvents ofdTrailer As System.Windows.Forms.OpenFileDialog Friend WithEvents btnGetTrailers As System.Windows.Forms.Button Friend WithEvents Panel1 As System.Windows.Forms.Panel + Friend WithEvents btnPlayBrowser As System.Windows.Forms.Button End Class diff --git a/Addons/scraper.EmberCore/Scraper/dlgTrailer.resx b/Addons/scraper.EmberCore/Scraper/dlgTrailer.resx index 2be3cac..f08e020 100644 --- a/Addons/scraper.EmberCore/Scraper/dlgTrailer.resx +++ b/Addons/scraper.EmberCore/Scraper/dlgTrailer.resx @@ -120,33 +120,33 @@ - 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 diff --git a/Addons/scraper.EmberCore/Scraper/dlgTrailer.vb b/Addons/scraper.EmberCore/Scraper/dlgTrailer.vb index 7e3454f..67c25ca 100644 --- a/Addons/scraper.EmberCore/Scraper/dlgTrailer.vb +++ b/Addons/scraper.EmberCore/Scraper/dlgTrailer.vb @@ -68,6 +68,7 @@ Public Class dlgTrailer Me.OK_Button.Enabled = False Me.btnSetNfo.Enabled = False Me.btnPlayTrailer.Enabled = False + Me.btnPlayBrowser.Enabled = False Me.lbTrailers.Enabled = False Me.txtYouTube.Enabled = False Me.txtManual.Enabled = False @@ -95,7 +96,15 @@ Public Class dlgTrailer Me.lblStatus.Text = Master.eLang.GetString(57, "Copying specified file to trailer...") If Master.eSettings.ValidExts.Contains(Path.GetExtension(Me.txtManual.Text)) AndAlso File.Exists(Me.txtManual.Text) Then If CloseDialog Then - Me.tURL = Path.Combine(Directory.GetParent(Me.sPath).FullName, String.Concat(Path.GetFileNameWithoutExtension(Me.sPath), If(Master.eSettings.DashTrailer, "-trailer", "[trailer]"), Path.GetExtension(Me.txtManual.Text))) + If Master.eSettings.VideoTSParentXBMC AndAlso FileUtils.Common.isBDRip(Me.sPath) Then + Me.tURL = String.Concat(Directory.GetParent(Directory.GetParent(Me.sPath).FullName).FullName, "\", "index", If(Master.eSettings.DashTrailer, "-trailer", "[trailer]"), Path.GetExtension(Me.txtManual.Text)) + ElseIf Master.eSettings.MovieNameNFOStack Then + Dim sPathStack As String = StringUtils.CleanStackingMarkers(Path.GetFileNameWithoutExtension(Me.sPath)) + Me.tURL = Path.Combine(Directory.GetParent(Me.sPath).FullName, String.Concat(Path.GetFileNameWithoutExtension(sPathStack), If(Master.eSettings.DashTrailer, "-trailer", "[trailer]"), Path.GetExtension(Me.txtManual.Text))) + Else + Me.tURL = Path.Combine(Directory.GetParent(Me.sPath).FullName, String.Concat(Path.GetFileNameWithoutExtension(Me.sPath), If(Master.eSettings.DashTrailer, "-trailer", "[trailer]"), Path.GetExtension(Me.txtManual.Text))) + End If + FileUtils.Common.MoveFileWithStream(Me.txtManual.Text, Me.tURL) Me.DialogResult = System.Windows.Forms.DialogResult.OK @@ -178,6 +187,7 @@ Public Class dlgTrailer Me.OK_Button.Enabled = False Me.btnSetNfo.Enabled = False Me.btnPlayTrailer.Enabled = False + Me.btnPlayBrowser.Enabled = False Me.lbTrailers.Enabled = False Me.txtYouTube.Enabled = False Me.txtManual.Enabled = False @@ -203,6 +213,30 @@ Public Class dlgTrailer End Try End Sub + Private Sub btnPlayBrowser_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPlayBrowser.Click + If Not String.IsNullOrEmpty(Me.txtYouTube.Text) Then + If Master.isWindows Then + Process.Start(Me.txtYouTube.Text) + Else + Using Explorer As New Process + Explorer.StartInfo.FileName = "xdg-open" + Explorer.StartInfo.Arguments = Me.txtYouTube.Text + Explorer.Start() + End Using + End If + Else + If Master.isWindows Then + Process.Start(Me.lbTrailers.SelectedItem.ToString) + Else + Using Explorer As New Process + Explorer.StartInfo.FileName = "xdg-open" + Explorer.StartInfo.Arguments = Me.lbTrailers.SelectedItem.ToString + Explorer.Start() + End Using + End If + End If + End Sub + Private Sub btnSetNfo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetNfo.Click If Me.btnSetNfo.Text = Master.eLang.GetString(60, "Move") Then @@ -210,6 +244,7 @@ Public Class dlgTrailer Me.OK_Button.Enabled = False Me.btnSetNfo.Enabled = False Me.btnPlayTrailer.Enabled = False + Me.btnPlayBrowser.Enabled = False Me.lbTrailers.Enabled = False Me.txtYouTube.Enabled = False Me.txtManual.Enabled = False @@ -220,7 +255,14 @@ Public Class dlgTrailer Me.pnlStatus.Visible = True Application.DoEvents() - Me.tURL = Path.Combine(Directory.GetParent(Me.sPath).FullName, String.Concat(Path.GetFileNameWithoutExtension(Me.sPath), If(Master.eSettings.DashTrailer, "-trailer", "[trailer]"), Path.GetExtension(Me.txtManual.Text))) + If Master.eSettings.VideoTSParentXBMC AndAlso FileUtils.Common.isBDRip(Me.sPath) Then + Me.tURL = String.Concat(Directory.GetParent(Directory.GetParent(Me.sPath).FullName).FullName, "\", "index", If(Master.eSettings.DashTrailer, "-trailer", "[trailer]"), Path.GetExtension(Me.txtManual.Text)) + ElseIf Master.eSettings.MovieNameNFOStack Then + Dim sPathStack As String = StringUtils.CleanStackingMarkers(Path.GetFileNameWithoutExtension(Me.sPath)) + Me.tURL = Path.Combine(Directory.GetParent(Me.sPath).FullName, String.Concat(Path.GetFileNameWithoutExtension(sPathStack), If(Master.eSettings.DashTrailer, "-trailer", "[trailer]"), Path.GetExtension(Me.txtManual.Text))) + Else + Me.tURL = Path.Combine(Directory.GetParent(Me.sPath).FullName, String.Concat(Path.GetFileNameWithoutExtension(Me.sPath), If(Master.eSettings.DashTrailer, "-trailer", "[trailer]"), Path.GetExtension(Me.txtManual.Text))) + End If File.Move(Me.txtManual.Text, Me.tURL) Me.DialogResult = System.Windows.Forms.DialogResult.OK @@ -374,6 +416,11 @@ Public Class dlgTrailer Me.OK_Button.Enabled = True Me.btnSetNfo.Enabled = True Me.btnPlayTrailer.Enabled = True + If Me.txtManual.Text.Length > 0 Then + Me.btnPlayBrowser.Enabled = False + Else + Me.btnPlayBrowser.Enabled = True + End If If Me.txtManual.Text.Length > 0 Then Me.OK_Button.Text = Master.eLang.GetString(61, "Copy") Me.btnSetNfo.Text = Master.eLang.GetString(60, "Move") @@ -385,6 +432,7 @@ Public Class dlgTrailer Me.OK_Button.Enabled = False Me.OK_Button.Text = Master.eLang.GetString(373, "Download", True) Me.btnPlayTrailer.Enabled = False + Me.btnPlayBrowser.Enabled = False Me.btnSetNfo.Enabled = False Me.btnSetNfo.Text = Master.eLang.GetString(63, "Set To Nfo") End If @@ -399,6 +447,7 @@ Public Class dlgTrailer Me.Label1.Text = Master.eLang.GetString(67, "Direct Link or YouTube URL:") Me.lblStatus.Text = Master.eLang.GetString(68, "Compiling trailer list...") Me.btnPlayTrailer.Text = Master.eLang.GetString(69, "Preview Trailer") + Me.btnPlayBrowser.Text = Master.eLang.GetString(114, "Open In Browser") Me.btnSetNfo.Text = Master.eLang.GetString(63, "Set To Nfo") Me.Label2.Text = Master.eLang.GetString(70, "Local Trailer:") End Sub diff --git a/Addons/scraper.EmberCore/Scraper/dlgTrailerFormat.Designer.vb b/Addons/scraper.EmberCore/Scraper/dlgTrailerFormat.Designer.vb index aa7ae6a..8d135fa 100644 --- a/Addons/scraper.EmberCore/Scraper/dlgTrailerFormat.Designer.vb +++ b/Addons/scraper.EmberCore/Scraper/dlgTrailerFormat.Designer.vb @@ -22,127 +22,127 @@ Partial Class dlgTrailerFormat 'Do not modify it using the code editor. _ Private Sub InitializeComponent() - Me.OK_Button = New System.Windows.Forms.Button() - Me.Cancel_Button = New System.Windows.Forms.Button() - Me.lstFormats = New System.Windows.Forms.ListBox() - Me.GroupBox1 = New System.Windows.Forms.GroupBox() - Me.pnlStatus = New System.Windows.Forms.Panel() - Me.lblStatus = New System.Windows.Forms.Label() - Me.pbStatus = New System.Windows.Forms.ProgressBar() - Me.Panel1 = New System.Windows.Forms.Panel() - Me.GroupBox1.SuspendLayout() - Me.pnlStatus.SuspendLayout() - Me.Panel1.SuspendLayout() - Me.SuspendLayout() - ' - 'OK_Button - ' - Me.OK_Button.Enabled = False - Me.OK_Button.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.OK_Button.Location = New System.Drawing.Point(84, 117) - Me.OK_Button.Name = "OK_Button" - Me.OK_Button.Size = New System.Drawing.Size(67, 23) - Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" - ' - 'Cancel_Button - ' - Me.Cancel_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel - Me.Cancel_Button.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.Cancel_Button.Location = New System.Drawing.Point(154, 117) - Me.Cancel_Button.Name = "Cancel_Button" - Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) - Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" - ' - 'lstFormats - ' - Me.lstFormats.Enabled = False - Me.lstFormats.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lstFormats.FormattingEnabled = True - Me.lstFormats.Location = New System.Drawing.Point(6, 19) - Me.lstFormats.Name = "lstFormats" - Me.lstFormats.Size = New System.Drawing.Size(177, 69) - Me.lstFormats.TabIndex = 0 - ' - 'GroupBox1 - ' - Me.GroupBox1.Controls.Add(Me.lstFormats) - Me.GroupBox1.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.GroupBox1.Location = New System.Drawing.Point(17, 2) - Me.GroupBox1.Name = "GroupBox1" - Me.GroupBox1.Size = New System.Drawing.Size(189, 100) - Me.GroupBox1.TabIndex = 0 - Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "Available Formats" - ' - 'pnlStatus - ' - Me.pnlStatus.BackColor = System.Drawing.Color.White - Me.pnlStatus.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.pnlStatus.Controls.Add(Me.lblStatus) - Me.pnlStatus.Controls.Add(Me.pbStatus) - Me.pnlStatus.Location = New System.Drawing.Point(10, 29) - Me.pnlStatus.Name = "pnlStatus" - Me.pnlStatus.Size = New System.Drawing.Size(200, 54) - Me.pnlStatus.TabIndex = 1 - ' - 'lblStatus - ' - Me.lblStatus.AutoSize = True - Me.lblStatus.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblStatus.Location = New System.Drawing.Point(3, 10) - Me.lblStatus.Name = "lblStatus" - Me.lblStatus.Size = New System.Drawing.Size(147, 13) - Me.lblStatus.TabIndex = 0 - Me.lblStatus.Text = "Getting available formats..." - Me.lblStatus.TextAlign = System.Drawing.ContentAlignment.MiddleLeft - ' - 'pbStatus - ' - Me.pbStatus.Location = New System.Drawing.Point(3, 29) - Me.pbStatus.MarqueeAnimationSpeed = 25 - Me.pbStatus.Name = "pbStatus" - Me.pbStatus.Size = New System.Drawing.Size(192, 17) - Me.pbStatus.Style = System.Windows.Forms.ProgressBarStyle.Marquee - Me.pbStatus.TabIndex = 1 - ' - 'Panel1 - ' - Me.Panel1.BackColor = System.Drawing.Color.White - Me.Panel1.Controls.Add(Me.pnlStatus) - Me.Panel1.Controls.Add(Me.GroupBox1) - Me.Panel1.Location = New System.Drawing.Point(2, 4) - Me.Panel1.Name = "Panel1" - Me.Panel1.Size = New System.Drawing.Size(220, 111) - Me.Panel1.TabIndex = 2 - ' - 'dlgTrailerFormat - ' - Me.AcceptButton = Me.OK_Button - Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi - Me.CancelButton = Me.Cancel_Button - Me.ClientSize = New System.Drawing.Size(224, 143) - Me.Controls.Add(Me.Panel1) - Me.Controls.Add(Me.Cancel_Button) - Me.Controls.Add(Me.OK_Button) - Me.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog - Me.MaximizeBox = False - Me.MinimizeBox = False - Me.Name = "dlgTrailerFormat" - Me.ShowIcon = False - Me.ShowInTaskbar = False - Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Select Format" - Me.GroupBox1.ResumeLayout(False) - Me.pnlStatus.ResumeLayout(False) - Me.pnlStatus.PerformLayout() - Me.Panel1.ResumeLayout(False) - Me.ResumeLayout(False) + Me.OK_Button = New System.Windows.Forms.Button() + Me.Cancel_Button = New System.Windows.Forms.Button() + Me.lstFormats = New System.Windows.Forms.ListBox() + Me.GroupBox1 = New System.Windows.Forms.GroupBox() + Me.pnlStatus = New System.Windows.Forms.Panel() + Me.lblStatus = New System.Windows.Forms.Label() + Me.pbStatus = New System.Windows.Forms.ProgressBar() + Me.Panel1 = New System.Windows.Forms.Panel() + Me.GroupBox1.SuspendLayout() + Me.pnlStatus.SuspendLayout() + Me.Panel1.SuspendLayout() + Me.SuspendLayout() + ' + 'OK_Button + ' + Me.OK_Button.Enabled = False + Me.OK_Button.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.OK_Button.Location = New System.Drawing.Point(72, 187) + Me.OK_Button.Name = "OK_Button" + Me.OK_Button.Size = New System.Drawing.Size(67, 23) + Me.OK_Button.TabIndex = 0 + Me.OK_Button.Text = "OK" + ' + 'Cancel_Button + ' + Me.Cancel_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.Cancel_Button.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Cancel_Button.Location = New System.Drawing.Point(145, 187) + Me.Cancel_Button.Name = "Cancel_Button" + Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) + Me.Cancel_Button.TabIndex = 1 + Me.Cancel_Button.Text = "Cancel" + ' + 'lstFormats + ' + Me.lstFormats.Enabled = False + Me.lstFormats.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lstFormats.FormattingEnabled = True + Me.lstFormats.Location = New System.Drawing.Point(4, 19) + Me.lstFormats.Name = "lstFormats" + Me.lstFormats.Size = New System.Drawing.Size(170, 121) + Me.lstFormats.TabIndex = 0 + ' + 'GroupBox1 + ' + Me.GroupBox1.Controls.Add(Me.lstFormats) + Me.GroupBox1.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.GroupBox1.Location = New System.Drawing.Point(10, 8) + Me.GroupBox1.Name = "GroupBox1" + Me.GroupBox1.Size = New System.Drawing.Size(180, 151) + Me.GroupBox1.TabIndex = 0 + Me.GroupBox1.TabStop = False + Me.GroupBox1.Text = "Available Formats" + ' + 'pnlStatus + ' + Me.pnlStatus.BackColor = System.Drawing.Color.White + Me.pnlStatus.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.pnlStatus.Controls.Add(Me.lblStatus) + Me.pnlStatus.Controls.Add(Me.pbStatus) + Me.pnlStatus.Location = New System.Drawing.Point(12, 75) + Me.pnlStatus.Name = "pnlStatus" + Me.pnlStatus.Size = New System.Drawing.Size(200, 54) + Me.pnlStatus.TabIndex = 1 + ' + 'lblStatus + ' + Me.lblStatus.AutoSize = True + Me.lblStatus.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblStatus.Location = New System.Drawing.Point(3, 10) + Me.lblStatus.Name = "lblStatus" + Me.lblStatus.Size = New System.Drawing.Size(147, 13) + Me.lblStatus.TabIndex = 0 + Me.lblStatus.Text = "Getting available formats..." + Me.lblStatus.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + ' + 'pbStatus + ' + Me.pbStatus.Location = New System.Drawing.Point(3, 29) + Me.pbStatus.MarqueeAnimationSpeed = 25 + Me.pbStatus.Name = "pbStatus" + Me.pbStatus.Size = New System.Drawing.Size(192, 17) + Me.pbStatus.Style = System.Windows.Forms.ProgressBarStyle.Marquee + Me.pbStatus.TabIndex = 1 + ' + 'Panel1 + ' + Me.Panel1.BackColor = System.Drawing.Color.White + Me.Panel1.Controls.Add(Me.GroupBox1) + Me.Panel1.Location = New System.Drawing.Point(12, 12) + Me.Panel1.Name = "Panel1" + Me.Panel1.Size = New System.Drawing.Size(200, 169) + Me.Panel1.TabIndex = 2 + ' + 'dlgTrailerFormat + ' + Me.AcceptButton = Me.OK_Button + Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi + Me.CancelButton = Me.Cancel_Button + Me.ClientSize = New System.Drawing.Size(224, 217) + Me.Controls.Add(Me.pnlStatus) + Me.Controls.Add(Me.Panel1) + Me.Controls.Add(Me.Cancel_Button) + Me.Controls.Add(Me.OK_Button) + Me.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "dlgTrailerFormat" + Me.ShowIcon = False + Me.ShowInTaskbar = False + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "Select Format" + Me.GroupBox1.ResumeLayout(False) + Me.pnlStatus.ResumeLayout(False) + Me.pnlStatus.PerformLayout() + Me.Panel1.ResumeLayout(False) + Me.ResumeLayout(False) - End Sub + End Sub Friend WithEvents OK_Button As System.Windows.Forms.Button Friend WithEvents Cancel_Button As System.Windows.Forms.Button Friend WithEvents lstFormats As System.Windows.Forms.ListBox diff --git a/Addons/scraper.EmberCore/Scraper/scraper.EmberCore.German_(de_DE)-Help.xml b/Addons/scraper.EmberCore/Scraper/scraper.EmberCore.German_(de_DE)-Help.xml deleted file mode 100644 index b613dee..0000000 --- a/Addons/scraper.EmberCore/Scraper/scraper.EmberCore.German_(de_DE)-Help.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - Aktiviert dieses Modul. - Verschiebt diesen Scraper in der Reihenfolge einen nach oben (Scrape Module werden von oben nach unten abgearbeitet.) - Verschiebt diesen Scraper in der Reihenfolge einen nach unten (Scrape Module werden von oben nach unten abgearbeitet.) - Gib den Mirror ein über den Ember mit der IMDB kommunizieren soll. - Wenn aktiviert versucht Ember den Titel von der deutschen Seite OFDB.DE zu scrapen. - Wenn aktiviert versucht Ember die Kurzebschreibung von der deutschen Seite OFDB.DE zu scrapen. - Wenn aktiviert versucht Ember die Inhaltsangabe von der deutschen Seite OFDB.DE zu scrapen. - Wenn aktiviert versucht Ember die Genres von der deutschen Seite OFDB.DE zu scrapen. - Aktiviert das scrapen der Altersbeschränkung (=Certification) mit diesem Modul. - Aktiviert das scrapen der IMDB Top250 mit diesem Modul. - Die Anzahl der gescrapten Genres limitieren. - Die Anzahl der gescrapten Schauspieler limitieren. - Aktiviert das scrapen der Sonstigen Crew mit diesem Modul. (Die Gesamte Crew scrapen muss aktiviert sein!) - Aktiviert das scrapen der Musiker mit diesem Modul. (Die Gesamte Crew scrapen muss aktiviert sein!) - Aktiviert das scrapen der Produzenten mit diesem Modul. (Die Gesamte Crew scrapen muss aktiviert sein!) - Aktiviert das scrapen der Autoren mit diesem Modul. - Aktiviert das scrapen des Studios mit diesem Modul. - Aktiviert das scrapen der Spielzeit mit diesem Modul. - Aktiviert das scrapen des Inhalts (=Plot)) mit diesem Modul. - Aktiviert das scrapen der Kurzbeschreibung mit diesem Modul. - Aktiviert das scrapen von Genre mit diesem Modul. - Aktiviert das scrapen des Regisseurs mit diesem Modul. - Aktiviert das scrapen der Tagline mit diesem Modul. - Aktiviert das scrapen der Schauspieler mit diesem Modul. - Aktiviert das scrapen der Anzahl Bewertungen (=Stimmen) mit diesem Modul. - Aktiviert das scrapen von Trailern mit diesem Modul. - Aktiviert das scrapen der Bewertung mit diesem Modul. - Aktiviert das scrapen des Premiere Datums mit diesem Modul. - Aktiviert das scrapen der MPAA Bewertung mit diesem Modul. - Aktiviert das scrapen des Jahres mit diesem Modul. - Aktiviert das scrapen des Titels mit diesem Modul. - Aktiviert dieses Modul. - Verschiebt diesen Scraper in der Reihenfolge einen nach oben (Scrape Module werden von oben nach unten abgearbeitet.) - Verschiebt diesen Scraper in der Reihenfolge einen nach unten (Scrape Module werden von oben nach unten abgearbeitet.) - Aktiviert das Laden von Postern mit diesem Modul. (Schau auch in die Globale Konfiguration!) - Aktiviert das Laden von Fanart mit diesem Modul. (Schau auch in die Globale Konfiguration!) - Aktiviert das Laden von Bildern von TheMovieDB.org. - Aktiviert das Laden von Bildern von IMPA - Aktiviert das Laden von Bildern von MoviePosterDB.com. - Automatische Frame extraktion mit diesem Modul aktivieren. (Schau auch in die Globale Konfiguration!) - Trailer laden mit diesem Modul aktivieren. (Schau auch in die Globale Konfiguration!) - Wähle die Zeit (in Sekunden) die auf Trailerseiten gewartet werden soll. (Wenn die Zeite in dieser Zeit nicht geantwortet hat wird sie übersprungen) - Wähle die Seite von der Trailer URLS/Dateien geladen werden sollen. - - diff --git "a/Addons/scraper.EmberCore/Scraper/scraper.EmberCore.Portugu\303\252s_(pt-BR).xml" "b/Addons/scraper.EmberCore/Scraper/scraper.EmberCore.Portugu\303\252s_(pt-BR).xml" deleted file mode 100644 index a91dc2d..0000000 --- "a/Addons/scraper.EmberCore/Scraper/scraper.EmberCore.Portugu\303\252s_(pt-BR).xml" +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/Addons/scraper.EmberCore/TVScraper/clsScrapeTVDB.vb b/Addons/scraper.EmberCore/TVScraper/clsScrapeTVDB.vb index 4459f88..552c905 100644 --- a/Addons/scraper.EmberCore/TVScraper/clsScrapeTVDB.vb +++ b/Addons/scraper.EmberCore/TVScraper/clsScrapeTVDB.vb @@ -94,9 +94,9 @@ Public Class Scraper Return sObject.GetSingleEpisode(New Structures.ScrapeInfo With {.ShowID = ShowID, .TVDBID = TVDBID, .iSeason = Season, .iEpisode = Episode, .SelectedLang = Lang, .Ordering = Ordering, .Options = Options}) End Function - Public Function GetSingleImage(ByVal Title As String, ByVal ShowID As Integer, ByVal TVDBID As String, ByVal Type As Enums.TVImageType, ByVal Season As Integer, ByVal Episode As Integer, ByVal Lang As String, ByVal Ordering As Enums.Ordering, ByVal CurrentImage As Image) As Image - Return sObject.GetSingleImage(New Structures.ScrapeInfo With {.ShowTitle = Title, .ShowID = ShowID, .TVDBID = TVDBID, .ImageType = Type, .iSeason = Season, .iEpisode = Episode, .SelectedLang = Lang, .Ordering = Ordering, .CurrentImage = CurrentImage}) - End Function + Public Sub GetSingleImage(ByVal Title As String, ByVal ShowID As Integer, ByVal TVDBID As String, ByVal Type As Enums.TVImageType, ByVal Season As Integer, ByVal Episode As Integer, ByVal Lang As String, ByVal Ordering As Enums.Ordering, ByVal CurrentImage As Images, ByRef RetImage As Images) + sObject.GetSingleImage(New Structures.ScrapeInfo With {.ShowTitle = Title, .ShowID = ShowID, .TVDBID = TVDBID, .ImageType = Type, .iSeason = Season, .iEpisode = Episode, .SelectedLang = Lang, .Ordering = Ordering, .CurrentImage = CurrentImage}, RetImage) + End Sub Public Sub InnerEvent(ByVal eType As Enums.TVScraperEventType, ByVal iProgress As Integer, ByVal Parameter As Object) RaiseEvent ScraperEvent(eType, iProgress, Parameter) @@ -424,7 +424,7 @@ Public Class Scraper Return New MediaContainers.EpisodeDetails End Function - Public Function GetSingleImage(ByVal sInfo As Structures.ScrapeInfo) As Image + Public Sub GetSingleImage(ByVal sInfo As Structures.ScrapeInfo, ByRef RetImage As Images) tmpTVDBShow = New TVDBShow If sInfo.ImageType = Enums.TVImageType.EpisodePoster Then @@ -435,71 +435,62 @@ Public Class Scraper If Not String.IsNullOrEmpty(sInfo.TVDBID) Then Master.currShow.TVShow.ID = sInfo.TVDBID - Using tImage As New Images - Dim tmpEp As MediaContainers.EpisodeDetails = Me.GetListOfKnownEpisodes(sInfo).FirstOrDefault(Function(e) e.Episode = sInfo.iEpisode AndAlso e.Season = sInfo.iSeason) - If Not IsNothing(tmpEp) Then + Dim tmpEp As MediaContainers.EpisodeDetails = Me.GetListOfKnownEpisodes(sInfo).FirstOrDefault(Function(e) e.Episode = sInfo.iEpisode AndAlso e.Season = sInfo.iSeason) + If Not IsNothing(tmpEp) Then - If File.Exists(tmpEp.LocalFile) Then - tImage.FromFile(tmpEp.LocalFile) - Else - tImage.FromWeb(tmpEp.PosterURL) - If Not IsNothing(tImage.Image) Then - Directory.CreateDirectory(Directory.GetParent(tmpEp.LocalFile).FullName) - tImage.Save(tmpEp.LocalFile) - End If + If File.Exists(tmpEp.LocalFile) Then + RetImage.FromFile(tmpEp.LocalFile) + Else + RetImage.FromWeb(tmpEp.PosterURL) + If Not IsNothing(RetImage.Image) Then + Directory.CreateDirectory(Directory.GetParent(tmpEp.LocalFile).FullName) + RetImage.Save(tmpEp.LocalFile, , , False) End If + End If - If Not IsNothing(tImage.Image) Then - Using dPosterConfirm As New dlgTVEpisodePoster - If dPosterConfirm.ShowDialog(tImage.Image) = DialogResult.OK Then - Return tImage.Image - Else - Return Nothing - End If - End Using - Else - MsgBox(Master.eLang.GetString(81, "There is no poster available for this episode."), MsgBoxStyle.OkOnly, Master.eLang.GetString(31, "No Posters Found")) - Return Nothing - End If + If Not IsNothing(RetImage.Image) Then + Using dPosterConfirm As New dlgTVEpisodePoster + If Not (dPosterConfirm.ShowDialog(RetImage.Image) = DialogResult.OK) Then + RetImage.Dispose() + End If + End Using Else - Return Nothing + MsgBox(Master.eLang.GetString(81, "There is no poster available for this episode."), MsgBoxStyle.OkOnly, Master.eLang.GetString(31, "No Posters Found")) + RetImage.Dispose() End If - End Using + Else + RetImage.Dispose() + End If Else - Return Nothing + RetImage.Dispose() End If End Using Else - Using tImage As New Images - Dim tmpEp As MediaContainers.EpisodeDetails = Me.GetListOfKnownEpisodes(sInfo).FirstOrDefault(Function(e) e.Episode = sInfo.iEpisode AndAlso e.Season = sInfo.iSeason) - If Not IsNothing(tmpEp) Then - - If File.Exists(tmpEp.LocalFile) Then - tImage.FromFile(tmpEp.LocalFile) - Else - tImage.FromWeb(tmpEp.PosterURL) - If Not IsNothing(tImage.Image) Then - Directory.CreateDirectory(Directory.GetParent(tmpEp.LocalFile).FullName) - tImage.Save(tmpEp.LocalFile) - End If + Dim tmpEp As MediaContainers.EpisodeDetails = Me.GetListOfKnownEpisodes(sInfo).FirstOrDefault(Function(e) e.Episode = sInfo.iEpisode AndAlso e.Season = sInfo.iSeason) + If Not IsNothing(tmpEp) Then + If File.Exists(tmpEp.LocalFile) Then + RetImage.FromFile(tmpEp.LocalFile) + Else + RetImage.FromWeb(tmpEp.PosterURL) + If Not IsNothing(RetImage.Image) Then + Directory.CreateDirectory(Directory.GetParent(tmpEp.LocalFile).FullName) + RetImage.Save(tmpEp.LocalFile, , , False) End If + End If - If Not IsNothing(tImage.Image) Then - Using dPosterConfirm As New dlgTVEpisodePoster - If dPosterConfirm.ShowDialog(tImage.Image) = DialogResult.OK Then - Return tImage.Image - Else - Return Nothing - End If - End Using - Else - MsgBox(Master.eLang.GetString(81, "There is no poster available for this episode."), MsgBoxStyle.OkOnly, Master.eLang.GetString(31, "No Posters Found")) - Return Nothing - End If + If Not IsNothing(RetImage.Image) Then + Using dPosterConfirm As New dlgTVEpisodePoster + If Not (dPosterConfirm.ShowDialog(RetImage.Image) = DialogResult.OK) Then + RetImage.Dispose() + End If + End Using Else - Return Nothing + MsgBox(Master.eLang.GetString(81, "There is no poster available for this episode."), MsgBoxStyle.OkOnly, Master.eLang.GetString(31, "No Posters Found")) + RetImage.Dispose() End If - End Using + Else + RetImage.Dispose() + End If End If Else If String.IsNullOrEmpty(sInfo.TVDBID) Then @@ -509,20 +500,20 @@ Public Class Scraper Master.currShow.TVShow.ID = sInfo.TVDBID Me.DownloadSeries(sInfo, True) Using dImageSelect As New dlgTVImageSelect - Return dImageSelect.ShowDialog(sInfo.ShowID, sInfo.ImageType, sInfo.iSeason, sInfo.CurrentImage) + RetImage = dImageSelect.ShowDialog(sInfo.ShowID, sInfo.ImageType, sInfo.iSeason, sInfo.CurrentImage) End Using Else - Return Nothing + RetImage.Dispose() End If End Using Else Me.DownloadSeries(sInfo, True) Using dImageSelect As New dlgTVImageSelect - Return dImageSelect.ShowDialog(sInfo.ShowID, sInfo.ImageType, sInfo.iSeason, sInfo.CurrentImage) + RetImage = dImageSelect.ShowDialog(sInfo.ShowID, sInfo.ImageType, sInfo.iSeason, sInfo.CurrentImage) End Using End If End If - End Function + End Sub Public Function IsBusy() As Boolean Return bwTVDB.IsBusy @@ -848,11 +839,11 @@ Public Class Scraper If Me.bwTVDB.CancellationPending Then Return If Episode.TVEp.Season > -1 AndAlso Episode.TVEp.Episode > -1 AndAlso Not Episode.IsLockEp Then - If Not IsNothing(Episode.TVEp.Poster.Image) Then Episode.EpPosterPath = Episode.TVEp.Poster.SaveAsEpPoster(Episode) + If Not IsNothing(Episode.TVEp.Poster.Image) Then Episode.EpPosterPath = Episode.TVEp.Poster.SaveAsEpPoster(Episode, Episode.TVEp.PosterURL) If Me.bwTVDB.CancellationPending Then Return - If Master.eSettings.EpisodeFanartEnabled AndAlso Not IsNothing(Episode.TVEp.Fanart.Image) Then Episode.EpFanartPath = Episode.TVEp.Fanart.SaveAsEpFanart(Episode) + If Master.eSettings.EpisodeFanartEnabled AndAlso Not IsNothing(Episode.TVEp.Fanart.Image) Then Episode.EpFanartPath = Episode.TVEp.Fanart.SaveAsEpFanart(Episode, ) If Me.bwTVDB.CancellationPending Then Return @@ -871,7 +862,7 @@ Public Class Scraper cSea(0).Fanart.Image.FromWeb(cSea(0).Fanart.URL) If Not IsNothing(cSea(0).Fanart.Image.Image) Then Directory.CreateDirectory(Directory.GetParent(cSea(0).Fanart.LocalFile).FullName) - cSea(0).Fanart.Image.Save(cSea(0).Fanart.LocalFile) + cSea(0).Fanart.Image.Save(cSea(0).Fanart.LocalFile, , , False) Episode.SeasonFanartPath = cSea(0).Fanart.Image.SaveAsSeasonFanart(Episode) End If End If @@ -934,24 +925,14 @@ Public Class Scraper End Sub Private Sub SaveToCache(ByVal sID As String, ByVal sURL As String, ByVal sPath As String) - Dim sHTTP As New HTTP Dim sImage As New Images - sHTTP.StartDownloadImage(sURL) - - While sHTTP.IsDownloading - Application.DoEvents() - Threading.Thread.Sleep(50) - End While - - sImage.Image = sHTTP.Image + sImage.FromWeb(sURL) If Not IsNothing(sImage.Image) Then - sImage.Save(Path.Combine(Master.TempPath, String.Concat("Shows", Path.DirectorySeparatorChar, sID, Path.DirectorySeparatorChar, sPath.Replace(Convert.ToChar("/"), Path.DirectorySeparatorChar)))) + sImage.Save(Path.Combine(Master.TempPath, String.Concat("Shows", Path.DirectorySeparatorChar, sID, Path.DirectorySeparatorChar, sPath.Replace(Convert.ToChar("/"), Path.DirectorySeparatorChar))), , , True) End If - sImage = Nothing - sHTTP = Nothing End Sub Private Function SearchSeries(ByVal sInfo As Structures.ScrapeInfo) As List(Of TVSearchResults) diff --git a/Addons/scraper.EmberCore/TVScraper/dlgTVImageSelect.vb b/Addons/scraper.EmberCore/TVScraper/dlgTVImageSelect.vb index 12e7038..3559ba0 100644 --- a/Addons/scraper.EmberCore/TVScraper/dlgTVImageSelect.vb +++ b/Addons/scraper.EmberCore/TVScraper/dlgTVImageSelect.vb @@ -80,22 +80,22 @@ Public Class dlgTVImageSelect 'no preferred size, just get any one of them If IsNothing(tSP) Then tSP = ShowPosterList.FirstOrDefault(Function(p) Not IsNothing(p.Image.Image)) - If Not IsNothing(tSP) Then - Scraper.TVDBImages.ShowPoster.Image.Image = tSP.Image.Image - Scraper.TVDBImages.ShowPoster.LocalFile = tSP.LocalFile - Scraper.TVDBImages.ShowPoster.URL = tSP.URL - Else - 'still nothing? try to get from generic posters - Dim tSPg As Scraper.TVDBPoster = GenericPosterList.FirstOrDefault(Function(p) p.Language = Master.eSettings.TVDBLanguage AndAlso Not IsNothing(p.Image.Image)) - - If IsNothing(tSPg) Then tSPg = GenericPosterList.FirstOrDefault(Function(p) Not IsNothing(p.Image.Image)) - - If Not IsNothing(tSPg) Then - Scraper.TVDBImages.ShowPoster.Image.Image = tSPg.Image.Image - Scraper.TVDBImages.ShowPoster.LocalFile = tSPg.LocalFile - Scraper.TVDBImages.ShowPoster.URL = tSPg.URL - End If - End If + If Not IsNothing(tSP) Then + Scraper.TVDBImages.ShowPoster.Image = tSP.Image + Scraper.TVDBImages.ShowPoster.LocalFile = tSP.LocalFile + Scraper.TVDBImages.ShowPoster.URL = tSP.URL + Else + 'still nothing? try to get from generic posters + Dim tSPg As Scraper.TVDBPoster = GenericPosterList.FirstOrDefault(Function(p) p.Language = Master.eSettings.TVDBLanguage AndAlso Not IsNothing(p.Image.Image)) + + If IsNothing(tSPg) Then tSPg = GenericPosterList.FirstOrDefault(Function(p) Not IsNothing(p.Image.Image)) + + If Not IsNothing(tSPg) Then + Scraper.TVDBImages.ShowPoster.Image = tSPg.Image + Scraper.TVDBImages.ShowPoster.LocalFile = tSPg.LocalFile + Scraper.TVDBImages.ShowPoster.URL = tSPg.URL + End If + End If Else Dim tSPg As Scraper.TVDBPoster = GenericPosterList.FirstOrDefault(Function(p) Not IsNothing(p.Image.Image) AndAlso Me.GetPosterDims(p.Size) = Master.eSettings.PreferredShowPosterSize AndAlso p.Language = Master.eSettings.TVDBLanguage) @@ -109,7 +109,7 @@ Public Class dlgTVImageSelect If IsNothing(tSPg) Then tSPg = GenericPosterList.FirstOrDefault(Function(p) Not IsNothing(p.Image.Image)) If Not IsNothing(tSPg) Then - Scraper.TVDBImages.ShowPoster.Image.Image = tSPg.Image.Image + Scraper.TVDBImages.ShowPoster.Image = tSPg.Image Scraper.TVDBImages.ShowPoster.LocalFile = tSPg.LocalFile Scraper.TVDBImages.ShowPoster.URL = tSPg.URL Else @@ -118,7 +118,7 @@ Public Class dlgTVImageSelect If IsNothing(tSP) Then tSP = ShowPosterList.FirstOrDefault(Function(p) Not IsNothing(p.Image.Image)) If Not IsNothing(tSP) Then - Scraper.TVDBImages.ShowPoster.Image.Image = tSP.Image.Image + Scraper.TVDBImages.ShowPoster.Image = tSP.Image Scraper.TVDBImages.ShowPoster.LocalFile = tSP.LocalFile Scraper.TVDBImages.ShowPoster.URL = tSP.URL End If @@ -148,7 +148,7 @@ Public Class dlgTVImageSelect Scraper.TVDBImages.ShowFanart.Image.FromWeb(tSF.URL) If Not IsNothing(Scraper.TVDBImages.ShowFanart.Image.Image) Then Directory.CreateDirectory(Directory.GetParent(tSF.LocalFile).FullName) - Scraper.TVDBImages.ShowFanart.Image.Save(tSF.LocalFile) + Scraper.TVDBImages.ShowFanart.Image.Save(tSF.LocalFile, , , False) Scraper.TVDBImages.ShowFanart.LocalFile = tSF.LocalFile Scraper.TVDBImages.ShowFanart.URL = tSF.URL End If @@ -171,7 +171,7 @@ Public Class dlgTVImageSelect If IsNothing(tSP) Then tSP = ShowPosterList.FirstOrDefault(Function(p) Not IsNothing(p.Image.Image)) If Not IsNothing(tSP) Then - Scraper.TVDBImages.AllSeasonPoster.Image.Image = tSP.Image.Image + Scraper.TVDBImages.AllSeasonPoster.Image = tSP.Image Scraper.TVDBImages.AllSeasonPoster.LocalFile = tSP.LocalFile Scraper.TVDBImages.AllSeasonPoster.URL = tSP.URL Else @@ -181,7 +181,7 @@ Public Class dlgTVImageSelect If IsNothing(tSPg) Then tSPg = GenericPosterList.FirstOrDefault(Function(p) Not IsNothing(p.Image.Image)) If Not IsNothing(tSPg) Then - Scraper.TVDBImages.AllSeasonPoster.Image.Image = tSPg.Image.Image + Scraper.TVDBImages.AllSeasonPoster.Image = tSPg.Image Scraper.TVDBImages.AllSeasonPoster.LocalFile = tSPg.LocalFile Scraper.TVDBImages.AllSeasonPoster.URL = tSPg.URL End If @@ -195,7 +195,7 @@ Public Class dlgTVImageSelect If IsNothing(tSPg) Then tSPg = GenericPosterList.FirstOrDefault(Function(p) Not IsNothing(p.Image.Image)) If Not IsNothing(tSPg) Then - Scraper.TVDBImages.AllSeasonPoster.Image.Image = tSPg.Image.Image + Scraper.TVDBImages.AllSeasonPoster.Image = tSPg.Image Scraper.TVDBImages.AllSeasonPoster.LocalFile = tSPg.LocalFile Scraper.TVDBImages.AllSeasonPoster.URL = tSPg.URL Else @@ -204,7 +204,7 @@ Public Class dlgTVImageSelect If IsNothing(tSP) Then tSP = ShowPosterList.FirstOrDefault(Function(p) Not IsNothing(p.Image.Image)) If Not IsNothing(tSP) Then - Scraper.TVDBImages.AllSeasonPoster.Image.Image = tSP.Image.Image + Scraper.TVDBImages.AllSeasonPoster.Image = tSP.Image Scraper.TVDBImages.AllSeasonPoster.LocalFile = tSP.LocalFile Scraper.TVDBImages.AllSeasonPoster.URL = tSP.URL End If @@ -225,9 +225,9 @@ Public Class dlgTVImageSelect tSea = SeasonList.FirstOrDefault(Function(p) Not IsNothing(p.Image.Image) AndAlso p.Season = iSeason AndAlso p.Type = Master.eSettings.PreferredSeasonPosterSize AndAlso p.Language = Master.eSettings.TVDBLanguage) If IsNothing(tSea) Then tSea = SeasonList.FirstOrDefault(Function(p) Not IsNothing(p.Image.Image) AndAlso p.Season = iSeason AndAlso p.Type = Master.eSettings.PreferredSeasonPosterSize) If IsNothing(tSea) Then tSea = SeasonList.FirstOrDefault(Function(p) Not IsNothing(p.Image.Image) AndAlso p.Season = iSeason) - If Not IsNothing(tSea) Then cSeason.Poster.Image = tSea.Image.Image + If Not IsNothing(tSea) Then cSeason.Poster = tSea.Image End If - If (Me._type = Enums.TVImageType.All OrElse Me._type = Enums.TVImageType.SeasonFanart) AndAlso Master.eSettings.SeasonFanartEnabled AndAlso IsNothing(cSeason.Fanart.Image.Image) AndAlso Not IsNothing(Scraper.TVDBImages.ShowFanart.Image.Image) Then cSeason.Fanart.Image.Image = Scraper.TVDBImages.ShowFanart.Image.Image + If (Me._type = Enums.TVImageType.All OrElse Me._type = Enums.TVImageType.SeasonFanart) AndAlso Master.eSettings.SeasonFanartEnabled AndAlso IsNothing(cSeason.Fanart.Image.Image) AndAlso Not IsNothing(Scraper.TVDBImages.ShowFanart.Image.Image) Then cSeason.Fanart.Image = Scraper.TVDBImages.ShowFanart.Image If Me.bwLoadImages.CancellationPending Then Return True @@ -253,7 +253,7 @@ Public Class dlgTVImageSelect If Not String.IsNullOrEmpty(Episode.EpFanartPath) Then Episode.TVEp.Fanart.FromFile(Episode.EpFanartPath) ElseIf Not IsNothing(Scraper.TVDBImages.ShowFanart.Image.Image) Then - Episode.TVEp.Fanart.Image = Scraper.TVDBImages.ShowFanart.Image.Image + Episode.TVEp.Fanart = Scraper.TVDBImages.ShowFanart.Image End If End If @@ -284,77 +284,78 @@ Public Class dlgTVImageSelect Return MyBase.ShowDialog End Function - Public Overloads Function ShowDialog(ByVal ShowID As Integer, ByVal Type As Enums.TVImageType, ByVal Season As Integer, ByVal CurrentImage As Image) As Image - Me._id = ShowID - Me._type = Type - Me._season = Season - Me.pbCurrent.Image = CurrentImage - - If MyBase.ShowDialog = Windows.Forms.DialogResult.OK Then - Return Me.pbCurrent.Image - Else - Return Nothing - End If - End Function - - Private Sub AddImage(ByVal iImage As Image, ByVal sDescription As String, ByVal iIndex As Integer, ByVal fTag As ImageTag) - Try - ReDim Preserve Me.pnlImage(iIndex) - ReDim Preserve Me.pbImage(iIndex) - ReDim Preserve Me.lblImage(iIndex) - Me.pnlImage(iIndex) = New Panel() - Me.pbImage(iIndex) = New PictureBox() - Me.lblImage(iIndex) = New Label() - Me.pbImage(iIndex).Name = iIndex.ToString - Me.pnlImage(iIndex).Name = iIndex.ToString - Me.lblImage(iIndex).Name = iIndex.ToString - Me.pnlImage(iIndex).Size = New Size(187, 187) - Me.pbImage(iIndex).Size = New Size(181, 151) - Me.lblImage(iIndex).Size = New Size(181, 30) - Me.pnlImage(iIndex).BackColor = Color.White - Me.pnlImage(iIndex).BorderStyle = BorderStyle.FixedSingle - Me.pbImage(iIndex).SizeMode = PictureBoxSizeMode.Zoom - Me.lblImage(iIndex).AutoSize = False - Me.lblImage(iIndex).BackColor = Color.White - Me.lblImage(iIndex).TextAlign = System.Drawing.ContentAlignment.MiddleCenter - Me.lblImage(iIndex).Text = sDescription - Me.pbImage(iIndex).Image = iImage - Me.pnlImage(iIndex).Left = iLeft - Me.pbImage(iIndex).Left = 3 - Me.lblImage(iIndex).Left = 0 - Me.pnlImage(iIndex).Top = iTop - Me.pbImage(iIndex).Top = 3 - Me.lblImage(iIndex).Top = 151 - Me.pnlImage(iIndex).Tag = fTag - Me.pbImage(iIndex).Tag = fTag - Me.lblImage(iIndex).Tag = fTag - Me.pnlImages.Controls.Add(Me.pnlImage(iIndex)) - Me.pnlImage(iIndex).Controls.Add(Me.pbImage(iIndex)) - Me.pnlImage(iIndex).Controls.Add(Me.lblImage(iIndex)) - Me.pnlImage(iIndex).BringToFront() - AddHandler pbImage(iIndex).Click, AddressOf pbImage_Click - AddHandler pbImage(iIndex).DoubleClick, AddressOf pbImage_DoubleClick - AddHandler pnlImage(iIndex).Click, AddressOf pnlImage_Click - AddHandler lblImage(iIndex).Click, AddressOf lblImage_Click - - AddHandler pbImage(iIndex).MouseWheel, AddressOf MouseWheelEvent - AddHandler pnlImage(iIndex).MouseWheel, AddressOf MouseWheelEvent - AddHandler lblImage(iIndex).MouseWheel, AddressOf MouseWheelEvent - - Catch ex As Exception - Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") - End Try - - Me.iCounter += 1 - - If Me.iCounter = 3 Then - Me.iCounter = 0 - Me.iLeft = 5 - Me.iTop += 192 - Else - Me.iLeft += 192 - End If - End Sub + Public Overloads Function ShowDialog(ByVal ShowID As Integer, ByVal Type As Enums.TVImageType, ByVal Season As Integer, ByVal CurrentImage As Images) As Images + Me._id = ShowID + Me._type = Type + Me._season = Season + Me.pbCurrent.Image = CurrentImage.Image + Me.pbCurrent.Tag = CurrentImage + + If MyBase.ShowDialog = Windows.Forms.DialogResult.OK Then + Return CType(Me.pbCurrent.Tag, Images) + Else + Return Nothing + End If + End Function + + Private Sub AddImage(ByVal sDescription As String, ByVal iIndex As Integer, ByVal fTag As ImageTag) + Try + ReDim Preserve Me.pnlImage(iIndex) + ReDim Preserve Me.pbImage(iIndex) + ReDim Preserve Me.lblImage(iIndex) + Me.pnlImage(iIndex) = New Panel() + Me.pbImage(iIndex) = New PictureBox() + Me.lblImage(iIndex) = New Label() + Me.pbImage(iIndex).Name = iIndex.ToString + Me.pnlImage(iIndex).Name = iIndex.ToString + Me.lblImage(iIndex).Name = iIndex.ToString + Me.pnlImage(iIndex).Size = New Size(187, 187) + Me.pbImage(iIndex).Size = New Size(181, 151) + Me.lblImage(iIndex).Size = New Size(181, 30) + Me.pnlImage(iIndex).BackColor = Color.White + Me.pnlImage(iIndex).BorderStyle = BorderStyle.FixedSingle + Me.pbImage(iIndex).SizeMode = PictureBoxSizeMode.Zoom + Me.lblImage(iIndex).AutoSize = False + Me.lblImage(iIndex).BackColor = Color.White + Me.lblImage(iIndex).TextAlign = System.Drawing.ContentAlignment.MiddleCenter + Me.lblImage(iIndex).Text = sDescription + Me.pbImage(iIndex).Image = fTag.ImageObj.Image + Me.pnlImage(iIndex).Left = iLeft + Me.pbImage(iIndex).Left = 3 + Me.lblImage(iIndex).Left = 0 + Me.pnlImage(iIndex).Top = iTop + Me.pbImage(iIndex).Top = 3 + Me.lblImage(iIndex).Top = 151 + Me.pnlImage(iIndex).Tag = fTag + Me.pbImage(iIndex).Tag = fTag + Me.lblImage(iIndex).Tag = fTag + Me.pnlImages.Controls.Add(Me.pnlImage(iIndex)) + Me.pnlImage(iIndex).Controls.Add(Me.pbImage(iIndex)) + Me.pnlImage(iIndex).Controls.Add(Me.lblImage(iIndex)) + Me.pnlImage(iIndex).BringToFront() + AddHandler pbImage(iIndex).Click, AddressOf pbImage_Click + AddHandler pbImage(iIndex).DoubleClick, AddressOf pbImage_DoubleClick + AddHandler pnlImage(iIndex).Click, AddressOf pnlImage_Click + AddHandler lblImage(iIndex).Click, AddressOf lblImage_Click + + AddHandler pbImage(iIndex).MouseWheel, AddressOf MouseWheelEvent + AddHandler pnlImage(iIndex).MouseWheel, AddressOf MouseWheelEvent + AddHandler lblImage(iIndex).MouseWheel, AddressOf MouseWheelEvent + + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + + Me.iCounter += 1 + + If Me.iCounter = 3 Then + Me.iCounter = 0 + Me.iLeft = 5 + Me.iTop += 192 + Else + Me.iLeft += 192 + End If + End Sub Private Sub btnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancel.Click If Me.bwLoadData.IsBusy Then Me.bwLoadData.CancelAsync() @@ -387,7 +388,7 @@ Public Class dlgTVImageSelect Scraper.TVDBImages.ShowFanart.Image.FromWeb(Scraper.TVDBImages.ShowFanart.URL) If Not IsNothing(Scraper.TVDBImages.ShowFanart.Image.Image) Then Directory.CreateDirectory(Directory.GetParent(Scraper.TVDBImages.ShowFanart.LocalFile).FullName) - Scraper.TVDBImages.ShowFanart.Image.Save(Scraper.TVDBImages.ShowFanart.LocalFile) + Scraper.TVDBImages.ShowFanart.Image.Save(Scraper.TVDBImages.ShowFanart.LocalFile, , , False) Master.currShow.ShowFanartPath = Scraper.TVDBImages.ShowFanart.LocalFile End If End If @@ -398,32 +399,36 @@ Public Class dlgTVImageSelect Me.lblStatus.Text = Master.eLang.GetString(87, "Downloading Fullsize Fanart Image...") Me.pbStatus.Style = ProgressBarStyle.Marquee Me.pnlStatus.Visible = True - If Not String.IsNullOrEmpty(Scraper.TVDBImages.SeasonImageList(0).Fanart.LocalFile) AndAlso File.Exists(Scraper.TVDBImages.SeasonImageList(0).Fanart.LocalFile) Then - Scraper.TVDBImages.SeasonImageList(0).Fanart.Image.FromFile(Scraper.TVDBImages.SeasonImageList(0).Fanart.LocalFile) - Me.pbCurrent.Image = Scraper.TVDBImages.SeasonImageList(0).Fanart.Image.Image - ElseIf Not String.IsNullOrEmpty(Scraper.TVDBImages.SeasonImageList(0).Fanart.URL) AndAlso Not String.IsNullOrEmpty(Scraper.TVDBImages.SeasonImageList(0).Fanart.LocalFile) Then - Scraper.TVDBImages.SeasonImageList(0).Fanart.Image.Clear() - Scraper.TVDBImages.SeasonImageList(0).Fanart.Image.FromWeb(Scraper.TVDBImages.SeasonImageList(0).Fanart.URL) - If Not IsNothing(Scraper.TVDBImages.SeasonImageList(0).Fanart.Image.Image) Then - Directory.CreateDirectory(Directory.GetParent(Scraper.TVDBImages.SeasonImageList(0).Fanart.LocalFile).FullName) - Scraper.TVDBImages.SeasonImageList(0).Fanart.Image.Save(Scraper.TVDBImages.SeasonImageList(0).Fanart.LocalFile) - Me.pbCurrent.Image = Scraper.TVDBImages.SeasonImageList(0).Fanart.Image.Image - End If - End If + If Not String.IsNullOrEmpty(Scraper.TVDBImages.SeasonImageList(0).Fanart.LocalFile) AndAlso File.Exists(Scraper.TVDBImages.SeasonImageList(0).Fanart.LocalFile) Then + Scraper.TVDBImages.SeasonImageList(0).Fanart.Image.FromFile(Scraper.TVDBImages.SeasonImageList(0).Fanart.LocalFile) + Me.pbCurrent.Image = Scraper.TVDBImages.SeasonImageList(0).Fanart.Image.Image + Me.pbCurrent.Tag = Scraper.TVDBImages.SeasonImageList(0).Fanart.Image + ElseIf Not String.IsNullOrEmpty(Scraper.TVDBImages.SeasonImageList(0).Fanart.URL) AndAlso Not String.IsNullOrEmpty(Scraper.TVDBImages.SeasonImageList(0).Fanart.LocalFile) Then + Scraper.TVDBImages.SeasonImageList(0).Fanart.Image.Clear() + Scraper.TVDBImages.SeasonImageList(0).Fanart.Image.FromWeb(Scraper.TVDBImages.SeasonImageList(0).Fanart.URL) + If Not IsNothing(Scraper.TVDBImages.SeasonImageList(0).Fanart.Image.Image) Then + Directory.CreateDirectory(Directory.GetParent(Scraper.TVDBImages.SeasonImageList(0).Fanart.LocalFile).FullName) + Scraper.TVDBImages.SeasonImageList(0).Fanart.Image.Save(Scraper.TVDBImages.SeasonImageList(0).Fanart.LocalFile, , , False) + Me.pbCurrent.Image = Scraper.TVDBImages.SeasonImageList(0).Fanart.Image.Image + Me.pbCurrent.Tag = Scraper.TVDBImages.SeasonImageList(0).Fanart.Image + End If + End If ElseIf (Me._type = Enums.TVImageType.ShowFanart OrElse Me._type = Enums.TVImageType.EpisodeFanart) AndAlso Me._fanartchanged Then Me.lblStatus.Text = Master.eLang.GetString(87, "Downloading Fullsize Fanart Image...") Me.pbStatus.Style = ProgressBarStyle.Marquee Me.pnlStatus.Visible = True If Not String.IsNullOrEmpty(Scraper.TVDBImages.ShowFanart.LocalFile) AndAlso File.Exists(Scraper.TVDBImages.ShowFanart.LocalFile) Then Scraper.TVDBImages.ShowFanart.Image.FromFile(Scraper.TVDBImages.ShowFanart.LocalFile) - Me.pbCurrent.Image = Scraper.TVDBImages.ShowFanart.Image.Image + Me.pbCurrent.Image = Scraper.TVDBImages.ShowFanart.Image.Image + Me.pbCurrent.Tag = Scraper.TVDBImages.ShowFanart.Image ElseIf Not String.IsNullOrEmpty(Scraper.TVDBImages.ShowFanart.URL) AndAlso Not String.IsNullOrEmpty(Scraper.TVDBImages.ShowFanart.LocalFile) Then Scraper.TVDBImages.ShowFanart.Image.Clear() Scraper.TVDBImages.ShowFanart.Image.FromWeb(Scraper.TVDBImages.ShowFanart.URL) If Not IsNothing(Scraper.TVDBImages.ShowFanart.Image.Image) Then Directory.CreateDirectory(Directory.GetParent(Scraper.TVDBImages.ShowFanart.LocalFile).FullName) - Scraper.TVDBImages.ShowFanart.Image.Save(Scraper.TVDBImages.ShowFanart.LocalFile) - Me.pbCurrent.Image = Scraper.TVDBImages.ShowFanart.Image.Image + Scraper.TVDBImages.ShowFanart.Image.Save(Scraper.TVDBImages.ShowFanart.LocalFile, , , False) + Me.pbCurrent.Image = Scraper.TVDBImages.ShowFanart.Image.Image + Me.pbCurrent.Tag = Scraper.TVDBImages.ShowFanart.Image End If End If End If @@ -453,21 +458,21 @@ Public Class dlgTVImageSelect Select Case Me._type Case Enums.TVImageType.AllSeasonPoster - Scraper.TVDBImages.AllSeasonPoster.Image.Image = Me.pbCurrent.Image + Scraper.TVDBImages.AllSeasonPoster.Image = CType(Me.pbCurrent.Tag, Images) Case Enums.TVImageType.SeasonFanart cSI = New Scraper.TVDBSeasonImage cSI.Season = Me._season - cSI.Fanart.Image.Image = Me.pbCurrent.Image + cSI.Fanart.Image = CType(Me.pbCurrent.Tag, Images) Scraper.TVDBImages.SeasonImageList.Add(cSI) Case Enums.TVImageType.SeasonPoster cSI = New Scraper.TVDBSeasonImage cSI.Season = Me._season - cSI.Poster.Image = Me.pbCurrent.Image + cSI.Poster = CType(Me.pbCurrent.Tag, Images) Scraper.TVDBImages.SeasonImageList.Add(cSI) Case Enums.TVImageType.ShowFanart, Enums.TVImageType.EpisodeFanart - Scraper.TVDBImages.ShowFanart.Image.Image = Me.pbCurrent.Image + Scraper.TVDBImages.ShowFanart.Image = CType(Me.pbCurrent.Tag, Images) Case Enums.TVImageType.ShowPoster - Scraper.TVDBImages.ShowPoster.Image.Image = Me.pbCurrent.Image + Scraper.TVDBImages.ShowPoster.Image = CType(Me.pbCurrent.Tag, Images) Case Enums.TVImageType.All If _withcurrent Then @@ -652,7 +657,8 @@ Public Class dlgTVImageSelect Me.iCounter = 0 Me.iLeft = 5 Me.iTop = 5 - Me.pbCurrent.Image = Nothing + Me.pbCurrent.Image = Nothing + Me.pbCurrent.Tag = Nothing If Me.pnlImages.Controls.Count > 0 Then For i As Integer = UBound(Me.pnlImage) To 0 Step -1 @@ -684,25 +690,25 @@ Public Class dlgTVImageSelect Me.bwLoadData.RunWorkerAsync() End Sub - Private Sub DoSelect(ByVal iIndex As Integer, ByVal SelImage As Image, ByVal SelTag As ImageTag) - Try - For i As Integer = 0 To UBound(Me.pnlImage) - Me.pnlImage(i).BackColor = Color.White - Me.lblImage(i).BackColor = Color.White - Me.lblImage(i).ForeColor = Color.Black - Next + Private Sub DoSelect(ByVal iIndex As Integer, ByVal SelTag As ImageTag) + Try + For i As Integer = 0 To UBound(Me.pnlImage) + Me.pnlImage(i).BackColor = Color.White + Me.lblImage(i).BackColor = Color.White + Me.lblImage(i).ForeColor = Color.Black + Next - Me.pnlImage(iIndex).BackColor = Color.Blue - Me.lblImage(iIndex).BackColor = Color.Blue - Me.lblImage(iIndex).ForeColor = Color.White + Me.pnlImage(iIndex).BackColor = Color.Blue + Me.lblImage(iIndex).BackColor = Color.Blue + Me.lblImage(iIndex).ForeColor = Color.White - SetImage(SelImage, SelTag) + SetImage(SelTag) - Me.CheckCurrentImage() - Catch ex As Exception - Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") - End Try - End Sub + Me.CheckCurrentImage() + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub Private Function DownloadAllImages() As Boolean Dim iProgress As Integer = 1 @@ -745,7 +751,7 @@ Public Class dlgTVImageSelect Seas.Image.FromWeb(Seas.URL) If Not IsNothing(Seas.Image.Image) Then Directory.CreateDirectory(Directory.GetParent(Seas.LocalFile).FullName) - Seas.Image.Save(Seas.LocalFile) + Seas.Image.Save(Seas.LocalFile, , , False) SeasonList.Add(Seas) End If End If @@ -774,12 +780,12 @@ Public Class dlgTVImageSelect SPost.Image.FromWeb(SPost.URL) If Not IsNothing(SPost.Image.Image) Then Directory.CreateDirectory(Directory.GetParent(SPost.LocalFile).FullName) - SPost.Image.Save(SPost.LocalFile) + SPost.Image.Save(SPost.LocalFile, , , False) ShowPosterList.Add(SPost) End If End If Else - SPost.Image.FromFile(SPost.LocalFile) + SPost.Image.FromFile(SPost.LocalFile) ShowPosterList.Add(SPost) End If @@ -803,7 +809,7 @@ Public Class dlgTVImageSelect SFan.Image.FromWeb(SFan.ThumbnailURL) If Not IsNothing(SFan.Image.Image) Then Directory.CreateDirectory(Directory.GetParent(SFan.LocalThumb).FullName) - SFan.Image.Image.Save(SFan.LocalThumb) + SFan.Image.Save(SFan.LocalThumb, , , False) FanartList.Add(SFan) End If End If @@ -833,7 +839,7 @@ Public Class dlgTVImageSelect Post.Image.FromWeb(Post.URL) If Not IsNothing(Post.Image.Image) Then Directory.CreateDirectory(Directory.GetParent(Post.LocalFile).FullName) - Post.Image.Save(Post.LocalFile) + Post.Image.Save(Post.LocalFile, , , False) GenericPosterList.Add(Post) End If End If @@ -861,33 +867,30 @@ Public Class dlgTVImageSelect Return Me.SetDefaults() End Function - Private Function DownloadFanart(ByVal iTag As ImageTag) As Image + Private Sub DownloadFanart(ByVal iTag As ImageTag, ByRef tImage As Images) Dim sHTTP As New HTTP - Using tImage As New Images - If Not String.IsNullOrEmpty(iTag.Path) AndAlso File.Exists(iTag.Path) Then - tImage.FromFile(iTag.Path) - ElseIf Not String.IsNullOrEmpty(iTag.Path) AndAlso Not String.IsNullOrEmpty(iTag.URL) Then - Me.lblStatus.Text = Master.eLang.GetString(87, "Downloading Fullsize Fanart Image...") - Me.pbStatus.Style = ProgressBarStyle.Marquee - Me.pnlStatus.Visible = True + If Not String.IsNullOrEmpty(iTag.Path) AndAlso File.Exists(iTag.Path) Then + tImage.FromFile(iTag.Path) + ElseIf Not String.IsNullOrEmpty(iTag.Path) AndAlso Not String.IsNullOrEmpty(iTag.URL) Then + Me.lblStatus.Text = Master.eLang.GetString(87, "Downloading Fullsize Fanart Image...") + Me.pbStatus.Style = ProgressBarStyle.Marquee + Me.pnlStatus.Visible = True - Application.DoEvents() + Application.DoEvents() - tImage.FromWeb(iTag.URL) - If Not IsNothing(tImage.Image) Then - Directory.CreateDirectory(Directory.GetParent(iTag.Path).FullName) - tImage.Save(iTag.Path) - End If + tImage.FromWeb(iTag.URL) + If Not IsNothing(tImage.Image) Then + Directory.CreateDirectory(Directory.GetParent(iTag.Path).FullName) + tImage.Save(iTag.Path, , , False) + End If - sHTTP = Nothing + sHTTP = Nothing - Me.pnlStatus.Visible = False - End If + Me.pnlStatus.Visible = False + End If - Return tImage.Image - End Using - End Function + End Sub Private Sub GenerateList() Try @@ -955,7 +958,7 @@ Public Class dlgTVImageSelect Private Sub lblImage_Click(ByVal sender As Object, ByVal e As System.EventArgs) Dim iindex As Integer = Convert.ToInt32(DirectCast(sender, Label).Name) - Me.DoSelect(iindex, Me.pbImage(iindex).Image, DirectCast(DirectCast(sender, Label).Tag, ImageTag)) + Me.DoSelect(iindex, DirectCast(DirectCast(sender, Label).Tag, ImageTag)) End Sub Private Sub MouseWheelEvent(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) @@ -975,19 +978,22 @@ Public Class dlgTVImageSelect End Sub Private Sub pbDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles pbDelete.Click - Me.pbCurrent.Image = Nothing - Me.SetImage(Nothing, New ImageTag) + Me.pbCurrent.Image = Nothing + Me.pbCurrent.Tag = Nothing + Me.SetImage(New ImageTag) End Sub Private Sub pbImage_Click(ByVal sender As Object, ByVal e As System.EventArgs) - Me.DoSelect(Convert.ToInt32(DirectCast(sender, PictureBox).Name), DirectCast(sender, PictureBox).Image, DirectCast(DirectCast(sender, PictureBox).Tag, ImageTag)) + Me.DoSelect(Convert.ToInt32(DirectCast(sender, PictureBox).Name), DirectCast(DirectCast(sender, PictureBox).Tag, ImageTag)) End Sub Private Sub pbImage_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) + Dim tImages As New Images Dim tImage As Image = Nothing Dim iTag As ImageTag = DirectCast(DirectCast(sender, PictureBox).Tag, ImageTag) If Not IsNothing(iTag) OrElse Not iTag.isFanart Then - tImage = DownloadFanart(iTag) + DownloadFanart(iTag, tImages) + tImage = tImages.Image Else tImage = DirectCast(sender, PictureBox).Image End If @@ -998,74 +1004,80 @@ Public Class dlgTVImageSelect Private Sub pbUndo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles pbUndo.Click If Me.SelSeason = -999 Then If Me.SelIsPoster Then - Scraper.TVDBImages.ShowPoster.Image.Image = DefaultImages.ShowPoster.Image.Image + Scraper.TVDBImages.ShowPoster.Image = DefaultImages.ShowPoster.Image Scraper.TVDBImages.ShowPoster.LocalFile = DefaultImages.ShowPoster.LocalFile Scraper.TVDBImages.ShowPoster.URL = DefaultImages.ShowPoster.URL - Me.pbCurrent.Image = Scraper.TVDBImages.ShowPoster.Image.Image + Me.pbCurrent.Image = Scraper.TVDBImages.ShowPoster.Image.Image + Me.pbCurrent.Tag = Scraper.TVDBImages.ShowPoster.Image Else - Scraper.TVDBImages.ShowFanart.Image.Image = DefaultImages.ShowFanart.Image.Image + Scraper.TVDBImages.ShowFanart.Image = DefaultImages.ShowFanart.Image Scraper.TVDBImages.ShowFanart.LocalFile = DefaultImages.ShowFanart.LocalFile Scraper.TVDBImages.ShowFanart.URL = DefaultImages.ShowFanart.URL - Me.pbCurrent.Image = Scraper.TVDBImages.ShowFanart.Image.Image + Me.pbCurrent.Image = Scraper.TVDBImages.ShowFanart.Image.Image + Me.pbCurrent.Tag = Scraper.TVDBImages.ShowFanart.Image End If ElseIf Me.SelSeason = 999 Then - Scraper.TVDBImages.AllSeasonPoster.Image.Image = DefaultImages.AllSeasonPoster.Image.Image + Scraper.TVDBImages.AllSeasonPoster.Image = DefaultImages.AllSeasonPoster.Image Scraper.TVDBImages.AllSeasonPoster.LocalFile = DefaultImages.AllSeasonPoster.LocalFile Scraper.TVDBImages.AllSeasonPoster.URL = DefaultImages.AllSeasonPoster.URL - Me.pbCurrent.Image = Scraper.TVDBImages.AllSeasonPoster.Image.Image + Me.pbCurrent.Image = Scraper.TVDBImages.AllSeasonPoster.Image.Image + Me.pbCurrent.Tag = Scraper.TVDBImages.AllSeasonPoster.Image Else If Me.SelIsPoster Then - Dim dSPost As Image = DefaultImages.SeasonImageList.FirstOrDefault(Function(s) s.Season = Me.SelSeason).Poster.Image - Scraper.TVDBImages.SeasonImageList.FirstOrDefault(Function(s) s.Season = Me.SelSeason).Poster.Image = dSPost - Me.pbCurrent.Image = dSPost + Dim dSPost As Images = DefaultImages.SeasonImageList.FirstOrDefault(Function(s) s.Season = Me.SelSeason).Poster + Scraper.TVDBImages.SeasonImageList.FirstOrDefault(Function(s) s.Season = Me.SelSeason).Poster = dSPost + Me.pbCurrent.Image = dSPost.Image + Me.pbCurrent.Tag = dSPost Else Dim dSFan As Scraper.TVDBFanart = DefaultImages.SeasonImageList.FirstOrDefault(Function(s) s.Season = Me.SelSeason).Fanart Dim tSFan As Scraper.TVDBFanart = Scraper.TVDBImages.SeasonImageList.FirstOrDefault(Function(s) s.Season = Me.SelSeason).Fanart - tSFan.Image.Image = dSFan.Image.Image + tSFan.Image = dSFan.Image tSFan.LocalFile = dSFan.LocalFile tSFan.URL = dSFan.URL - Me.pbCurrent.Image = dSFan.Image.Image + Me.pbCurrent.Image = dSFan.Image.Image + Me.pbCurrent.Tag = dSFan.Image End If End If End Sub Private Sub pnlImage_Click(ByVal sender As Object, ByVal e As System.EventArgs) Dim iIndex As Integer = Convert.ToInt32(DirectCast(sender, Panel).Name) - Me.DoSelect(iIndex, Me.pbImage(iIndex).Image, DirectCast(DirectCast(sender, Panel).Tag, ImageTag)) + Me.DoSelect(iIndex, DirectCast(DirectCast(sender, Panel).Tag, ImageTag)) End Sub - Private Sub SetImage(ByVal SelImage As Image, ByVal SelTag As ImageTag) - Me.pbCurrent.Image = SelImage - - Me._fanartchanged = True - - If Me.SelSeason = -999 Then - If Me.SelIsPoster Then - Scraper.TVDBImages.ShowPoster.Image.Image = SelImage - Scraper.TVDBImages.ShowPoster.LocalFile = SelTag.Path - Scraper.TVDBImages.ShowPoster.URL = SelTag.URL - Else - Scraper.TVDBImages.ShowFanart.Image.Image = SelImage - Scraper.TVDBImages.ShowFanart.LocalFile = SelTag.Path - Scraper.TVDBImages.ShowFanart.URL = SelTag.URL - End If - ElseIf Me.SelSeason = 999 Then - Scraper.TVDBImages.AllSeasonPoster.Image.Image = SelImage - Scraper.TVDBImages.AllSeasonPoster.LocalFile = SelTag.Path - Scraper.TVDBImages.AllSeasonPoster.URL = SelTag.URL - Else - If Me.SelIsPoster Then - Scraper.TVDBImages.SeasonImageList.FirstOrDefault(Function(s) s.Season = Me.SelSeason).Poster.Image = SelImage - Else - Dim tFan As Scraper.TVDBFanart = Scraper.TVDBImages.SeasonImageList.FirstOrDefault(Function(s) s.Season = Me.SelSeason).Fanart - If Not IsNothing(tFan) Then - tFan.Image.Image = SelImage - tFan.LocalFile = SelTag.Path - tFan.URL = SelTag.URL - End If - End If - End If - End Sub + Private Sub SetImage(ByVal SelTag As ImageTag) + Me.pbCurrent.Image = SelTag.ImageObj.Image + Me.pbCurrent.Tag = SelTag.ImageObj + + Me._fanartchanged = True + + If Me.SelSeason = -999 Then + If Me.SelIsPoster Then + Scraper.TVDBImages.ShowPoster.Image = SelTag.ImageObj + Scraper.TVDBImages.ShowPoster.LocalFile = SelTag.Path + Scraper.TVDBImages.ShowPoster.URL = SelTag.URL + Else + Scraper.TVDBImages.ShowFanart.Image = SelTag.ImageObj + Scraper.TVDBImages.ShowFanart.LocalFile = SelTag.Path + Scraper.TVDBImages.ShowFanart.URL = SelTag.URL + End If + ElseIf Me.SelSeason = 999 Then + Scraper.TVDBImages.AllSeasonPoster.Image = SelTag.ImageObj + Scraper.TVDBImages.AllSeasonPoster.LocalFile = SelTag.Path + Scraper.TVDBImages.AllSeasonPoster.URL = SelTag.URL + Else + If Me.SelIsPoster Then + Scraper.TVDBImages.SeasonImageList.FirstOrDefault(Function(s) s.Season = Me.SelSeason).Poster = SelTag.ImageObj + Else + Dim tFan As Scraper.TVDBFanart = Scraper.TVDBImages.SeasonImageList.FirstOrDefault(Function(s) s.Season = Me.SelSeason).Fanart + If Not IsNothing(tFan) Then + tFan.Image = SelTag.ImageObj + tFan.LocalFile = SelTag.Path + tFan.URL = SelTag.URL + End If + End If + End If + End Sub Private Sub SetUp() Me.Text = Master.eLang.GetString(99, "TV Image Selection") @@ -1094,13 +1106,13 @@ Public Class dlgTVImageSelect iCount = ShowPosterList.Count For i = 0 To iCount - 1 If Not IsNothing(ShowPosterList(i)) AndAlso Not IsNothing(ShowPosterList(i).Image) AndAlso Not IsNothing(ShowPosterList(i).Image.Image) Then - Me.AddImage(ShowPosterList(i).Image.Image, String.Format("{0}x{1}", ShowPosterList(i).Image.Image.Width, ShowPosterList(i).Image.Image.Height), i, New ImageTag With {.URL = ShowPosterList(i).URL, .Path = ShowPosterList(i).LocalFile, .isFanart = False}) + Me.AddImage(String.Format("{0}x{1}", ShowPosterList(i).Image.Image.Width, ShowPosterList(i).Image.Image.Height), i, New ImageTag With {.URL = ShowPosterList(i).URL, .Path = ShowPosterList(i).LocalFile, .isFanart = False, .ImageObj = ShowPosterList(i).Image}) End If Next For i = 0 To GenericPosterList.Count - 1 If Not IsNothing(GenericPosterList(i)) AndAlso Not IsNothing(GenericPosterList(i).Image) AndAlso Not IsNothing(GenericPosterList(i).Image.Image) Then - Me.AddImage(GenericPosterList(i).Image.Image, String.Format("{0}x{1}", GenericPosterList(i).Image.Image.Width, GenericPosterList(i).Image.Image.Height), i + iCount, New ImageTag With {.URL = GenericPosterList(i).URL, .Path = GenericPosterList(i).LocalFile, .isFanart = False}) + Me.AddImage(String.Format("{0}x{1}", GenericPosterList(i).Image.Image.Width, GenericPosterList(i).Image.Image.Height), i + iCount, New ImageTag With {.URL = GenericPosterList(i).URL, .Path = GenericPosterList(i).LocalFile, .isFanart = False, .ImageObj = GenericPosterList(i).Image}) End If Next @@ -1116,7 +1128,7 @@ Public Class dlgTVImageSelect For i = 0 To FanartList.Count - 1 If Not IsNothing(FanartList(i)) AndAlso Not IsNothing(FanartList(i).Image) AndAlso Not IsNothing(FanartList(i).Image.Image) Then - Me.AddImage(FanartList(i).Image.Image, String.Format("{0}x{1}", FanartList(i).Size.Width, FanartList(i).Size.Height), i, New ImageTag With {.URL = FanartList(i).URL, .Path = FanartList(i).LocalFile, .isFanart = True}) + Me.AddImage(String.Format("{0}x{1}", FanartList(i).Size.Width, FanartList(i).Size.Height), i, New ImageTag With {.URL = FanartList(i).URL, .Path = FanartList(i).LocalFile, .isFanart = True, .ImageObj = FanartList(i).Image}) End If Next @@ -1132,13 +1144,13 @@ Public Class dlgTVImageSelect iCount = GenericPosterList.Count For i = 0 To iCount - 1 If Not IsNothing(GenericPosterList(i)) AndAlso Not IsNothing(GenericPosterList(i).Image) AndAlso Not IsNothing(GenericPosterList(i).Image.Image) Then - Me.AddImage(GenericPosterList(i).Image.Image, String.Format("{0}x{1}", GenericPosterList(i).Image.Image.Width, GenericPosterList(i).Image.Image.Height), i, New ImageTag With {.URL = GenericPosterList(i).URL, .Path = GenericPosterList(i).LocalFile, .isFanart = False}) + Me.AddImage(String.Format("{0}x{1}", GenericPosterList(i).Image.Image.Width, GenericPosterList(i).Image.Image.Height), i, New ImageTag With {.URL = GenericPosterList(i).URL, .Path = GenericPosterList(i).LocalFile, .isFanart = False, .ImageObj = GenericPosterList(i).Image}) End If Next For i = 0 To ShowPosterList.Count - 1 If Not IsNothing(ShowPosterList(i)) AndAlso Not IsNothing(ShowPosterList(i).Image) AndAlso Not IsNothing(ShowPosterList(i).Image.Image) Then - Me.AddImage(ShowPosterList(i).Image.Image, String.Format("{0}x{1}", ShowPosterList(i).Image.Image.Width, ShowPosterList(i).Image.Image.Height), i + iCount, New ImageTag With {.URL = ShowPosterList(i).URL, .Path = ShowPosterList(i).LocalFile, .isFanart = False}) + Me.AddImage(String.Format("{0}x{1}", ShowPosterList(i).Image.Image.Width, ShowPosterList(i).Image.Image.Height), i + iCount, New ImageTag With {.URL = ShowPosterList(i).URL, .Path = ShowPosterList(i).LocalFile, .isFanart = False, .ImageObj = ShowPosterList(i).Image}) End If Next Else @@ -1155,7 +1167,7 @@ Public Class dlgTVImageSelect End If For i = 0 To FanartList.Count - 1 If Not IsNothing(FanartList(i)) AndAlso Not IsNothing(FanartList(i).Image) AndAlso Not IsNothing(FanartList(i).Image.Image) Then - Me.AddImage(FanartList(i).Image.Image, String.Format("{0}x{1}", FanartList(i).Size.Width, FanartList(i).Size.Height), i, New ImageTag With {.URL = FanartList(i).URL, .Path = FanartList(i).LocalFile, .isFanart = True}) + Me.AddImage(String.Format("{0}x{1}", FanartList(i).Size.Width, FanartList(i).Size.Height), i, New ImageTag With {.URL = FanartList(i).URL, .Path = FanartList(i).LocalFile, .isFanart = True, .ImageObj = FanartList(i).Image}) End If Next ElseIf tMatch.Groups("type").Value = "p" Then @@ -1170,7 +1182,7 @@ Public Class dlgTVImageSelect iCount = 0 For Each SImage As Scraper.TVDBSeasonPoster In SeasonList.Where(Function(s) s.Season = Convert.ToInt32(tMatch.Groups("num").Value)) If Not IsNothing(SImage.Image) AndAlso Not IsNothing(SImage.Image.Image) Then - Me.AddImage(SImage.Image.Image, String.Format("{0}x{1}", SImage.Image.Image.Width, SImage.Image.Image.Height), iCount, New ImageTag With {.URL = SImage.URL, .Path = SImage.LocalFile, .isFanart = False}) + Me.AddImage(String.Format("{0}x{1}", SImage.Image.Image.Width, SImage.Image.Image.Height), iCount, New ImageTag With {.URL = SImage.URL, .Path = SImage.LocalFile, .isFanart = False, .ImageObj = SImage.Image}) End If iCount += 1 Next @@ -1199,7 +1211,8 @@ Public Class dlgTVImageSelect Dim isFanart As Boolean Dim Path As String - Dim URL As String + Dim URL As String + Dim ImageObj As Images #End Region 'Fields diff --git a/Addons/scraper.EmberCore/frmInfoSettingsHolder.Designer.vb b/Addons/scraper.EmberCore/frmInfoSettingsHolder.Designer.vb index fa997c4..bf11b70 100644 --- a/Addons/scraper.EmberCore/frmInfoSettingsHolder.Designer.vb +++ b/Addons/scraper.EmberCore/frmInfoSettingsHolder.Designer.vb @@ -22,570 +22,582 @@ Partial Class frmInfoSettingsHolder 'Do not modify it using the code editor. _ Private Sub InitializeComponent() - Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmInfoSettingsHolder)) - Me.lblVersion = New System.Windows.Forms.Label() - Me.GroupBox30 = New System.Windows.Forms.GroupBox() - Me.Label18 = New System.Windows.Forms.Label() - Me.txtIMDBURL = New System.Windows.Forms.TextBox() - Me.GroupBox15 = New System.Windows.Forms.GroupBox() - Me.chkOFDBGenre = New System.Windows.Forms.CheckBox() - Me.chkOFDBPlot = New System.Windows.Forms.CheckBox() - Me.chkOFDBOutline = New System.Windows.Forms.CheckBox() - Me.chkOFDBTitle = New System.Windows.Forms.CheckBox() - Me.cbEnabled = New System.Windows.Forms.CheckBox() - Me.Panel1 = New System.Windows.Forms.Panel() - Me.Label2 = New System.Windows.Forms.Label() - Me.btnDown = New System.Windows.Forms.Button() - Me.btnUp = New System.Windows.Forms.Button() - Me.pnlSettings = New System.Windows.Forms.Panel() - Me.Label1 = New System.Windows.Forms.Label() - Me.PictureBox1 = New System.Windows.Forms.PictureBox() - Me.gbOptions = New System.Windows.Forms.GroupBox() - Me.chkCertification = New System.Windows.Forms.CheckBox() - Me.chkCountry = New System.Windows.Forms.CheckBox() - Me.chkTop250 = New System.Windows.Forms.CheckBox() - Me.chkCrew = New System.Windows.Forms.CheckBox() - Me.chkMusicBy = New System.Windows.Forms.CheckBox() - Me.chkProducers = New System.Windows.Forms.CheckBox() - Me.chkFullCast = New System.Windows.Forms.CheckBox() - Me.chkWriters = New System.Windows.Forms.CheckBox() - Me.chkStudio = New System.Windows.Forms.CheckBox() - Me.chkRuntime = New System.Windows.Forms.CheckBox() - Me.chkFullCrew = New System.Windows.Forms.CheckBox() - Me.chkPlot = New System.Windows.Forms.CheckBox() - Me.chkOutline = New System.Windows.Forms.CheckBox() - Me.chkGenre = New System.Windows.Forms.CheckBox() - Me.chkDirector = New System.Windows.Forms.CheckBox() - Me.chkTagline = New System.Windows.Forms.CheckBox() - Me.chkCast = New System.Windows.Forms.CheckBox() - Me.chkVotes = New System.Windows.Forms.CheckBox() - Me.chkTrailer = New System.Windows.Forms.CheckBox() - Me.chkRating = New System.Windows.Forms.CheckBox() - Me.chkRelease = New System.Windows.Forms.CheckBox() - Me.chkMPAA = New System.Windows.Forms.CheckBox() - Me.chkYear = New System.Windows.Forms.CheckBox() - Me.chkTitle = New System.Windows.Forms.CheckBox() - Me.GroupBox30.SuspendLayout() - Me.GroupBox15.SuspendLayout() - Me.Panel1.SuspendLayout() - Me.pnlSettings.SuspendLayout() - CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() - Me.gbOptions.SuspendLayout() - Me.SuspendLayout() - ' - 'lblVersion - ' - Me.lblVersion.Location = New System.Drawing.Point(286, 393) - Me.lblVersion.Name = "lblVersion" - Me.lblVersion.Size = New System.Drawing.Size(90, 16) - Me.lblVersion.TabIndex = 74 - Me.lblVersion.Text = "Version:" - ' - 'GroupBox30 - ' - Me.GroupBox30.Controls.Add(Me.Label18) - Me.GroupBox30.Controls.Add(Me.txtIMDBURL) - Me.GroupBox30.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.GroupBox30.Location = New System.Drawing.Point(8, 40) - Me.GroupBox30.Name = "GroupBox30" - Me.GroupBox30.Size = New System.Drawing.Size(213, 69) - Me.GroupBox30.TabIndex = 1 - Me.GroupBox30.TabStop = False - Me.GroupBox30.Text = "IMDB" - ' - 'Label18 - ' - Me.Label18.AutoSize = True - Me.Label18.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label18.Location = New System.Drawing.Point(6, 18) - Me.Label18.Name = "Label18" - Me.Label18.Size = New System.Drawing.Size(73, 13) - Me.Label18.TabIndex = 0 - Me.Label18.Text = "IMDB Mirror:" - ' - 'txtIMDBURL - ' - Me.txtIMDBURL.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtIMDBURL.Location = New System.Drawing.Point(8, 32) - Me.txtIMDBURL.Name = "txtIMDBURL" - Me.txtIMDBURL.Size = New System.Drawing.Size(192, 22) - Me.txtIMDBURL.TabIndex = 1 - ' - 'GroupBox15 - ' - Me.GroupBox15.Controls.Add(Me.chkOFDBGenre) - Me.GroupBox15.Controls.Add(Me.chkOFDBPlot) - Me.GroupBox15.Controls.Add(Me.chkOFDBOutline) - Me.GroupBox15.Controls.Add(Me.chkOFDBTitle) - Me.GroupBox15.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.GroupBox15.Location = New System.Drawing.Point(8, 114) - Me.GroupBox15.Name = "GroupBox15" - Me.GroupBox15.Size = New System.Drawing.Size(213, 87) - Me.GroupBox15.TabIndex = 2 - Me.GroupBox15.TabStop = False - Me.GroupBox15.Text = "OFDB (German)" - ' - 'chkOFDBGenre - ' - Me.chkOFDBGenre.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkOFDBGenre.Location = New System.Drawing.Point(6, 65) - Me.chkOFDBGenre.Name = "chkOFDBGenre" - Me.chkOFDBGenre.Size = New System.Drawing.Size(168, 17) - Me.chkOFDBGenre.TabIndex = 3 - Me.chkOFDBGenre.Text = "Use OFDB Genre" - Me.chkOFDBGenre.UseVisualStyleBackColor = True - ' - 'chkOFDBPlot - ' - Me.chkOFDBPlot.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkOFDBPlot.Location = New System.Drawing.Point(6, 49) - Me.chkOFDBPlot.Name = "chkOFDBPlot" - Me.chkOFDBPlot.Size = New System.Drawing.Size(168, 17) - Me.chkOFDBPlot.TabIndex = 2 - Me.chkOFDBPlot.Text = "Use OFDB Plot" - Me.chkOFDBPlot.UseVisualStyleBackColor = True - ' - 'chkOFDBOutline - ' - Me.chkOFDBOutline.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkOFDBOutline.Location = New System.Drawing.Point(6, 33) - Me.chkOFDBOutline.Name = "chkOFDBOutline" - Me.chkOFDBOutline.Size = New System.Drawing.Size(168, 17) - Me.chkOFDBOutline.TabIndex = 1 - Me.chkOFDBOutline.Text = "Use OFDB Outline" - Me.chkOFDBOutline.UseVisualStyleBackColor = True - ' - 'chkOFDBTitle - ' - Me.chkOFDBTitle.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkOFDBTitle.Location = New System.Drawing.Point(6, 17) - Me.chkOFDBTitle.Name = "chkOFDBTitle" - Me.chkOFDBTitle.Size = New System.Drawing.Size(168, 17) - Me.chkOFDBTitle.TabIndex = 0 - Me.chkOFDBTitle.Text = "Use OFDB Title" - Me.chkOFDBTitle.UseVisualStyleBackColor = True - ' - 'cbEnabled - ' - Me.cbEnabled.AutoSize = True - Me.cbEnabled.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.cbEnabled.Location = New System.Drawing.Point(10, 5) - Me.cbEnabled.Name = "cbEnabled" - Me.cbEnabled.Size = New System.Drawing.Size(68, 17) - Me.cbEnabled.TabIndex = 0 - Me.cbEnabled.Text = "Enabled" - Me.cbEnabled.UseVisualStyleBackColor = True - ' - 'Panel1 - ' - Me.Panel1.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ - Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.Panel1.BackColor = System.Drawing.Color.WhiteSmoke - Me.Panel1.Controls.Add(Me.Label2) - Me.Panel1.Controls.Add(Me.btnDown) - Me.Panel1.Controls.Add(Me.cbEnabled) - Me.Panel1.Controls.Add(Me.btnUp) - Me.Panel1.Location = New System.Drawing.Point(0, 0) - Me.Panel1.Name = "Panel1" - Me.Panel1.Size = New System.Drawing.Size(1125, 25) - Me.Panel1.TabIndex = 0 - ' - 'Label2 - ' - Me.Label2.AutoSize = True - Me.Label2.Font = New System.Drawing.Font("Segoe UI", 6.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label2.Location = New System.Drawing.Point(500, 7) - Me.Label2.Name = "Label2" - Me.Label2.Size = New System.Drawing.Size(58, 12) - Me.Label2.TabIndex = 1 - Me.Label2.Text = "Scraper order" - ' - 'btnDown - ' - Me.btnDown.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) - Me.btnDown.Image = CType(resources.GetObject("btnDown.Image"), System.Drawing.Image) - Me.btnDown.Location = New System.Drawing.Point(591, 1) - Me.btnDown.Name = "btnDown" - Me.btnDown.Size = New System.Drawing.Size(23, 23) - Me.btnDown.TabIndex = 3 - Me.btnDown.UseVisualStyleBackColor = True - ' - 'btnUp - ' - Me.btnUp.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) - Me.btnUp.Image = CType(resources.GetObject("btnUp.Image"), System.Drawing.Image) - Me.btnUp.Location = New System.Drawing.Point(566, 1) - Me.btnUp.Name = "btnUp" - Me.btnUp.Size = New System.Drawing.Size(23, 23) - Me.btnUp.TabIndex = 2 - Me.btnUp.UseVisualStyleBackColor = True - ' - 'pnlSettings - ' - Me.pnlSettings.Controls.Add(Me.Label1) - Me.pnlSettings.Controls.Add(Me.PictureBox1) - Me.pnlSettings.Controls.Add(Me.Panel1) - Me.pnlSettings.Controls.Add(Me.GroupBox30) - Me.pnlSettings.Controls.Add(Me.GroupBox15) - Me.pnlSettings.Controls.Add(Me.gbOptions) - Me.pnlSettings.Location = New System.Drawing.Point(12, 1) - Me.pnlSettings.Name = "pnlSettings" - Me.pnlSettings.Size = New System.Drawing.Size(617, 369) - Me.pnlSettings.TabIndex = 0 - ' - 'Label1 - ' - Me.Label1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) - Me.Label1.Font = New System.Drawing.Font("Segoe UI", 6.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.Label1.ForeColor = System.Drawing.Color.Blue - Me.Label1.Location = New System.Drawing.Point(37, 337) - Me.Label1.Name = "Label1" - Me.Label1.Size = New System.Drawing.Size(225, 31) - Me.Label1.TabIndex = 4 - Me.Label1.Text = "These settings are specific to this module." & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "Please refer to the global settings " & _ - "for more options." - Me.Label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft - ' - 'PictureBox1 - ' - Me.PictureBox1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) - Me.PictureBox1.Image = CType(resources.GetObject("PictureBox1.Image"), System.Drawing.Image) - Me.PictureBox1.Location = New System.Drawing.Point(3, 335) - Me.PictureBox1.Name = "PictureBox1" - Me.PictureBox1.Size = New System.Drawing.Size(30, 31) - Me.PictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage - Me.PictureBox1.TabIndex = 96 - Me.PictureBox1.TabStop = False - ' - 'gbOptions - ' - Me.gbOptions.Controls.Add(Me.chkCertification) - Me.gbOptions.Controls.Add(Me.chkCountry) - Me.gbOptions.Controls.Add(Me.chkTop250) - Me.gbOptions.Controls.Add(Me.chkCrew) - Me.gbOptions.Controls.Add(Me.chkMusicBy) - Me.gbOptions.Controls.Add(Me.chkProducers) - Me.gbOptions.Controls.Add(Me.chkFullCast) - Me.gbOptions.Controls.Add(Me.chkWriters) - Me.gbOptions.Controls.Add(Me.chkStudio) - Me.gbOptions.Controls.Add(Me.chkRuntime) - Me.gbOptions.Controls.Add(Me.chkFullCrew) - Me.gbOptions.Controls.Add(Me.chkPlot) - Me.gbOptions.Controls.Add(Me.chkOutline) - Me.gbOptions.Controls.Add(Me.chkGenre) - Me.gbOptions.Controls.Add(Me.chkDirector) - Me.gbOptions.Controls.Add(Me.chkTagline) - Me.gbOptions.Controls.Add(Me.chkCast) - Me.gbOptions.Controls.Add(Me.chkVotes) - Me.gbOptions.Controls.Add(Me.chkTrailer) - Me.gbOptions.Controls.Add(Me.chkRating) - Me.gbOptions.Controls.Add(Me.chkRelease) - Me.gbOptions.Controls.Add(Me.chkMPAA) - Me.gbOptions.Controls.Add(Me.chkYear) - Me.gbOptions.Controls.Add(Me.chkTitle) - Me.gbOptions.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.gbOptions.Location = New System.Drawing.Point(227, 40) - Me.gbOptions.Name = "gbOptions" - Me.gbOptions.Size = New System.Drawing.Size(387, 161) - Me.gbOptions.TabIndex = 3 - Me.gbOptions.TabStop = False - Me.gbOptions.Text = "Scraper Fields" - ' - 'chkCertification - ' - Me.chkCertification.AutoSize = True - Me.chkCertification.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkCertification.Location = New System.Drawing.Point(6, 70) - Me.chkCertification.Name = "chkCertification" - Me.chkCertification.Size = New System.Drawing.Size(89, 17) - Me.chkCertification.TabIndex = 3 - Me.chkCertification.Text = "Certification" - Me.chkCertification.UseVisualStyleBackColor = True - ' - 'chkCountry - ' - Me.chkCountry.AutoSize = True - Me.chkCountry.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkCountry.Location = New System.Drawing.Point(237, 53) - Me.chkCountry.Name = "chkCountry" - Me.chkCountry.Size = New System.Drawing.Size(67, 17) - Me.chkCountry.TabIndex = 18 - Me.chkCountry.Text = "Country" - Me.chkCountry.UseVisualStyleBackColor = True - ' - 'chkTop250 - ' - Me.chkTop250.AutoSize = True - Me.chkTop250.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkTop250.Location = New System.Drawing.Point(237, 19) - Me.chkTop250.Name = "chkTop250" - Me.chkTop250.Size = New System.Drawing.Size(66, 17) - Me.chkTop250.TabIndex = 16 - Me.chkTop250.Text = "Top 250" - Me.chkTop250.UseVisualStyleBackColor = True - ' - 'chkCrew - ' - Me.chkCrew.AutoSize = True - Me.chkCrew.Enabled = False - Me.chkCrew.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkCrew.Location = New System.Drawing.Point(246, 104) - Me.chkCrew.Name = "chkCrew" - Me.chkCrew.Size = New System.Drawing.Size(85, 17) - Me.chkCrew.TabIndex = 21 - Me.chkCrew.Text = "Other Crew" - Me.chkCrew.UseVisualStyleBackColor = True - ' - 'chkMusicBy - ' - Me.chkMusicBy.AutoSize = True - Me.chkMusicBy.Enabled = False - Me.chkMusicBy.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkMusicBy.Location = New System.Drawing.Point(246, 121) - Me.chkMusicBy.Name = "chkMusicBy" - Me.chkMusicBy.Size = New System.Drawing.Size(71, 17) - Me.chkMusicBy.TabIndex = 22 - Me.chkMusicBy.Text = "Music By" - Me.chkMusicBy.UseVisualStyleBackColor = True - ' - 'chkProducers - ' - Me.chkProducers.AutoSize = True - Me.chkProducers.Enabled = False - Me.chkProducers.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkProducers.Location = New System.Drawing.Point(246, 138) - Me.chkProducers.Name = "chkProducers" - Me.chkProducers.Size = New System.Drawing.Size(77, 17) - Me.chkProducers.TabIndex = 23 - Me.chkProducers.Text = "Producers" - Me.chkProducers.UseVisualStyleBackColor = True - ' - 'chkFullCast - ' - Me.chkFullCast.AutoSize = True - Me.chkFullCast.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkFullCast.Location = New System.Drawing.Point(237, 70) - Me.chkFullCast.Name = "chkFullCast" - Me.chkFullCast.Size = New System.Drawing.Size(107, 17) - Me.chkFullCast.TabIndex = 19 - Me.chkFullCast.Text = "Scrape Full Cast" - Me.chkFullCast.UseVisualStyleBackColor = True - ' - 'chkWriters - ' - Me.chkWriters.AutoSize = True - Me.chkWriters.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkWriters.Location = New System.Drawing.Point(131, 121) - Me.chkWriters.Name = "chkWriters" - Me.chkWriters.Size = New System.Drawing.Size(63, 17) - Me.chkWriters.TabIndex = 14 - Me.chkWriters.Text = "Writers" - Me.chkWriters.UseVisualStyleBackColor = True - ' - 'chkStudio - ' - Me.chkStudio.AutoSize = True - Me.chkStudio.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkStudio.Location = New System.Drawing.Point(131, 19) - Me.chkStudio.Name = "chkStudio" - Me.chkStudio.Size = New System.Drawing.Size(60, 17) - Me.chkStudio.TabIndex = 8 - Me.chkStudio.Text = "Studio" - Me.chkStudio.UseVisualStyleBackColor = True - ' - 'chkRuntime - ' - Me.chkRuntime.AutoSize = True - Me.chkRuntime.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkRuntime.Location = New System.Drawing.Point(6, 104) - Me.chkRuntime.Name = "chkRuntime" - Me.chkRuntime.Size = New System.Drawing.Size(69, 17) - Me.chkRuntime.TabIndex = 5 - Me.chkRuntime.Text = "Runtime" - Me.chkRuntime.UseVisualStyleBackColor = True - ' - 'chkFullCrew - ' - Me.chkFullCrew.AutoSize = True - Me.chkFullCrew.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkFullCrew.Location = New System.Drawing.Point(237, 87) - Me.chkFullCrew.Name = "chkFullCrew" - Me.chkFullCrew.Size = New System.Drawing.Size(111, 17) - Me.chkFullCrew.TabIndex = 20 - Me.chkFullCrew.Text = "Scrape Full Crew" - Me.chkFullCrew.UseVisualStyleBackColor = True - ' - 'chkPlot - ' - Me.chkPlot.AutoSize = True - Me.chkPlot.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkPlot.Location = New System.Drawing.Point(131, 70) - Me.chkPlot.Name = "chkPlot" - Me.chkPlot.Size = New System.Drawing.Size(46, 17) - Me.chkPlot.TabIndex = 11 - Me.chkPlot.Text = "Plot" - Me.chkPlot.UseVisualStyleBackColor = True - ' - 'chkOutline - ' - Me.chkOutline.AutoSize = True - Me.chkOutline.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkOutline.Location = New System.Drawing.Point(131, 53) - Me.chkOutline.Name = "chkOutline" - Me.chkOutline.Size = New System.Drawing.Size(65, 17) - Me.chkOutline.TabIndex = 10 - Me.chkOutline.Text = "Outline" - Me.chkOutline.UseVisualStyleBackColor = True - ' - 'chkGenre - ' - Me.chkGenre.AutoSize = True - Me.chkGenre.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkGenre.Location = New System.Drawing.Point(131, 138) - Me.chkGenre.Name = "chkGenre" - Me.chkGenre.Size = New System.Drawing.Size(57, 17) - Me.chkGenre.TabIndex = 15 - Me.chkGenre.Text = "Genre" - Me.chkGenre.UseVisualStyleBackColor = True - ' - 'chkDirector - ' - Me.chkDirector.AutoSize = True - Me.chkDirector.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkDirector.Location = New System.Drawing.Point(131, 104) - Me.chkDirector.Name = "chkDirector" - Me.chkDirector.Size = New System.Drawing.Size(67, 17) - Me.chkDirector.TabIndex = 13 - Me.chkDirector.Text = "Director" - Me.chkDirector.UseVisualStyleBackColor = True - ' - 'chkTagline - ' - Me.chkTagline.AutoSize = True - Me.chkTagline.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkTagline.Location = New System.Drawing.Point(131, 36) - Me.chkTagline.Name = "chkTagline" - Me.chkTagline.Size = New System.Drawing.Size(63, 17) - Me.chkTagline.TabIndex = 9 - Me.chkTagline.Text = "Tagline" - Me.chkTagline.UseVisualStyleBackColor = True - ' - 'chkCast - ' - Me.chkCast.AutoSize = True - Me.chkCast.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkCast.Location = New System.Drawing.Point(131, 87) - Me.chkCast.Name = "chkCast" - Me.chkCast.Size = New System.Drawing.Size(48, 17) - Me.chkCast.TabIndex = 12 - Me.chkCast.Text = "Cast" - Me.chkCast.UseVisualStyleBackColor = True - ' - 'chkVotes - ' - Me.chkVotes.AutoSize = True - Me.chkVotes.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkVotes.Location = New System.Drawing.Point(6, 138) - Me.chkVotes.Name = "chkVotes" - Me.chkVotes.Size = New System.Drawing.Size(55, 17) - Me.chkVotes.TabIndex = 7 - Me.chkVotes.Text = "Votes" - Me.chkVotes.UseVisualStyleBackColor = True - ' - 'chkTrailer - ' - Me.chkTrailer.AutoSize = True - Me.chkTrailer.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkTrailer.Location = New System.Drawing.Point(237, 36) - Me.chkTrailer.Name = "chkTrailer" - Me.chkTrailer.Size = New System.Drawing.Size(57, 17) - Me.chkTrailer.TabIndex = 17 - Me.chkTrailer.Text = "Trailer" - Me.chkTrailer.UseVisualStyleBackColor = True - ' - 'chkRating - ' - Me.chkRating.AutoSize = True - Me.chkRating.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkRating.Location = New System.Drawing.Point(6, 121) - Me.chkRating.Name = "chkRating" - Me.chkRating.Size = New System.Drawing.Size(60, 17) - Me.chkRating.TabIndex = 6 - Me.chkRating.Text = "Rating" - Me.chkRating.UseVisualStyleBackColor = True - ' - 'chkRelease - ' - Me.chkRelease.AutoSize = True - Me.chkRelease.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkRelease.Location = New System.Drawing.Point(6, 87) - Me.chkRelease.Name = "chkRelease" - Me.chkRelease.Size = New System.Drawing.Size(92, 17) - Me.chkRelease.TabIndex = 4 - Me.chkRelease.Text = "Release Date" - Me.chkRelease.UseVisualStyleBackColor = True - ' - 'chkMPAA - ' - Me.chkMPAA.AutoSize = True - Me.chkMPAA.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkMPAA.Location = New System.Drawing.Point(6, 53) - Me.chkMPAA.Name = "chkMPAA" - Me.chkMPAA.Size = New System.Drawing.Size(56, 17) - Me.chkMPAA.TabIndex = 2 - Me.chkMPAA.Text = "MPAA" - Me.chkMPAA.UseVisualStyleBackColor = True - ' - 'chkYear - ' - Me.chkYear.AutoSize = True - Me.chkYear.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkYear.Location = New System.Drawing.Point(6, 36) - Me.chkYear.Name = "chkYear" - Me.chkYear.Size = New System.Drawing.Size(47, 17) - Me.chkYear.TabIndex = 1 - Me.chkYear.Text = "Year" - Me.chkYear.UseVisualStyleBackColor = True - ' - 'chkTitle - ' - Me.chkTitle.AutoSize = True - Me.chkTitle.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkTitle.Location = New System.Drawing.Point(6, 19) - Me.chkTitle.Name = "chkTitle" - Me.chkTitle.Size = New System.Drawing.Size(47, 17) - Me.chkTitle.TabIndex = 0 - Me.chkTitle.Text = "Title" - Me.chkTitle.UseVisualStyleBackColor = True - ' - 'frmInfoSettingsHolder - ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi - Me.BackColor = System.Drawing.Color.White - Me.ClientSize = New System.Drawing.Size(652, 388) - Me.Controls.Add(Me.pnlSettings) - Me.Controls.Add(Me.lblVersion) - Me.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog - Me.MaximizeBox = False - Me.MinimizeBox = False - Me.Name = "frmInfoSettingsHolder" - Me.ShowInTaskbar = False - Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Scraper Setup" - Me.GroupBox30.ResumeLayout(False) - Me.GroupBox30.PerformLayout() - Me.GroupBox15.ResumeLayout(False) - Me.Panel1.ResumeLayout(False) - Me.Panel1.PerformLayout() - Me.pnlSettings.ResumeLayout(False) - CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() - Me.gbOptions.ResumeLayout(False) - Me.gbOptions.PerformLayout() - Me.ResumeLayout(False) + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmInfoSettingsHolder)) + Me.lblVersion = New System.Windows.Forms.Label() + Me.GroupBox30 = New System.Windows.Forms.GroupBox() + Me.Label18 = New System.Windows.Forms.Label() + Me.txtIMDBURL = New System.Windows.Forms.TextBox() + Me.GroupBox15 = New System.Windows.Forms.GroupBox() + Me.chkOFDBGenre = New System.Windows.Forms.CheckBox() + Me.chkOFDBPlot = New System.Windows.Forms.CheckBox() + Me.chkOFDBOutline = New System.Windows.Forms.CheckBox() + Me.chkOFDBTitle = New System.Windows.Forms.CheckBox() + Me.cbEnabled = New System.Windows.Forms.CheckBox() + Me.Panel1 = New System.Windows.Forms.Panel() + Me.Label2 = New System.Windows.Forms.Label() + Me.btnDown = New System.Windows.Forms.Button() + Me.btnUp = New System.Windows.Forms.Button() + Me.pnlSettings = New System.Windows.Forms.Panel() + Me.lblOFDBWarning = New System.Windows.Forms.Label() + Me.Label1 = New System.Windows.Forms.Label() + Me.PictureBox1 = New System.Windows.Forms.PictureBox() + Me.gbOptions = New System.Windows.Forms.GroupBox() + Me.chkCertification = New System.Windows.Forms.CheckBox() + Me.chkCountry = New System.Windows.Forms.CheckBox() + Me.chkTop250 = New System.Windows.Forms.CheckBox() + Me.chkCrew = New System.Windows.Forms.CheckBox() + Me.chkMusicBy = New System.Windows.Forms.CheckBox() + Me.chkProducers = New System.Windows.Forms.CheckBox() + Me.chkFullCast = New System.Windows.Forms.CheckBox() + Me.chkWriters = New System.Windows.Forms.CheckBox() + Me.chkStudio = New System.Windows.Forms.CheckBox() + Me.chkRuntime = New System.Windows.Forms.CheckBox() + Me.chkFullCrew = New System.Windows.Forms.CheckBox() + Me.chkPlot = New System.Windows.Forms.CheckBox() + Me.chkOutline = New System.Windows.Forms.CheckBox() + Me.chkGenre = New System.Windows.Forms.CheckBox() + Me.chkDirector = New System.Windows.Forms.CheckBox() + Me.chkTagline = New System.Windows.Forms.CheckBox() + Me.chkCast = New System.Windows.Forms.CheckBox() + Me.chkVotes = New System.Windows.Forms.CheckBox() + Me.chkTrailer = New System.Windows.Forms.CheckBox() + Me.chkRating = New System.Windows.Forms.CheckBox() + Me.chkRelease = New System.Windows.Forms.CheckBox() + Me.chkMPAA = New System.Windows.Forms.CheckBox() + Me.chkYear = New System.Windows.Forms.CheckBox() + Me.chkTitle = New System.Windows.Forms.CheckBox() + Me.GroupBox30.SuspendLayout() + Me.GroupBox15.SuspendLayout() + Me.Panel1.SuspendLayout() + Me.pnlSettings.SuspendLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.gbOptions.SuspendLayout() + Me.SuspendLayout() + ' + 'lblVersion + ' + Me.lblVersion.Location = New System.Drawing.Point(286, 393) + Me.lblVersion.Name = "lblVersion" + Me.lblVersion.Size = New System.Drawing.Size(90, 16) + Me.lblVersion.TabIndex = 74 + Me.lblVersion.Text = "Version:" + ' + 'GroupBox30 + ' + Me.GroupBox30.Controls.Add(Me.Label18) + Me.GroupBox30.Controls.Add(Me.txtIMDBURL) + Me.GroupBox30.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.GroupBox30.Location = New System.Drawing.Point(8, 40) + Me.GroupBox30.Name = "GroupBox30" + Me.GroupBox30.Size = New System.Drawing.Size(213, 69) + Me.GroupBox30.TabIndex = 1 + Me.GroupBox30.TabStop = False + Me.GroupBox30.Text = "IMDB" + ' + 'Label18 + ' + Me.Label18.AutoSize = True + Me.Label18.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label18.Location = New System.Drawing.Point(6, 18) + Me.Label18.Name = "Label18" + Me.Label18.Size = New System.Drawing.Size(73, 13) + Me.Label18.TabIndex = 0 + Me.Label18.Text = "IMDB Mirror:" + ' + 'txtIMDBURL + ' + Me.txtIMDBURL.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtIMDBURL.Location = New System.Drawing.Point(8, 32) + Me.txtIMDBURL.Name = "txtIMDBURL" + Me.txtIMDBURL.Size = New System.Drawing.Size(192, 22) + Me.txtIMDBURL.TabIndex = 1 + ' + 'GroupBox15 + ' + Me.GroupBox15.Controls.Add(Me.chkOFDBGenre) + Me.GroupBox15.Controls.Add(Me.chkOFDBPlot) + Me.GroupBox15.Controls.Add(Me.chkOFDBOutline) + Me.GroupBox15.Controls.Add(Me.chkOFDBTitle) + Me.GroupBox15.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.GroupBox15.Location = New System.Drawing.Point(8, 114) + Me.GroupBox15.Name = "GroupBox15" + Me.GroupBox15.Size = New System.Drawing.Size(213, 87) + Me.GroupBox15.TabIndex = 2 + Me.GroupBox15.TabStop = False + Me.GroupBox15.Text = "OFDB (German)" + ' + 'chkOFDBGenre + ' + Me.chkOFDBGenre.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkOFDBGenre.Location = New System.Drawing.Point(6, 65) + Me.chkOFDBGenre.Name = "chkOFDBGenre" + Me.chkOFDBGenre.Size = New System.Drawing.Size(194, 17) + Me.chkOFDBGenre.TabIndex = 3 + Me.chkOFDBGenre.Text = "Use OFDB Genre" + Me.chkOFDBGenre.UseVisualStyleBackColor = True + ' + 'chkOFDBPlot + ' + Me.chkOFDBPlot.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkOFDBPlot.Location = New System.Drawing.Point(6, 49) + Me.chkOFDBPlot.Name = "chkOFDBPlot" + Me.chkOFDBPlot.Size = New System.Drawing.Size(194, 17) + Me.chkOFDBPlot.TabIndex = 2 + Me.chkOFDBPlot.Text = "Use OFDB Plot" + Me.chkOFDBPlot.UseVisualStyleBackColor = True + ' + 'chkOFDBOutline + ' + Me.chkOFDBOutline.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkOFDBOutline.Location = New System.Drawing.Point(6, 33) + Me.chkOFDBOutline.Name = "chkOFDBOutline" + Me.chkOFDBOutline.Size = New System.Drawing.Size(194, 17) + Me.chkOFDBOutline.TabIndex = 1 + Me.chkOFDBOutline.Text = "Use OFDB Outline" + Me.chkOFDBOutline.UseVisualStyleBackColor = True + ' + 'chkOFDBTitle + ' + Me.chkOFDBTitle.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkOFDBTitle.Location = New System.Drawing.Point(6, 17) + Me.chkOFDBTitle.Name = "chkOFDBTitle" + Me.chkOFDBTitle.Size = New System.Drawing.Size(194, 17) + Me.chkOFDBTitle.TabIndex = 0 + Me.chkOFDBTitle.Text = "Use OFDB Title" + Me.chkOFDBTitle.UseVisualStyleBackColor = True + ' + 'cbEnabled + ' + Me.cbEnabled.AutoSize = True + Me.cbEnabled.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.cbEnabled.Location = New System.Drawing.Point(10, 5) + Me.cbEnabled.Name = "cbEnabled" + Me.cbEnabled.Size = New System.Drawing.Size(68, 17) + Me.cbEnabled.TabIndex = 0 + Me.cbEnabled.Text = "Enabled" + Me.cbEnabled.UseVisualStyleBackColor = True + ' + 'Panel1 + ' + Me.Panel1.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Panel1.BackColor = System.Drawing.Color.WhiteSmoke + Me.Panel1.Controls.Add(Me.Label2) + Me.Panel1.Controls.Add(Me.btnDown) + Me.Panel1.Controls.Add(Me.cbEnabled) + Me.Panel1.Controls.Add(Me.btnUp) + Me.Panel1.Location = New System.Drawing.Point(0, 0) + Me.Panel1.Name = "Panel1" + Me.Panel1.Size = New System.Drawing.Size(1125, 25) + Me.Panel1.TabIndex = 0 + ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.Font = New System.Drawing.Font("Segoe UI", 6.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label2.Location = New System.Drawing.Point(500, 7) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(58, 12) + Me.Label2.TabIndex = 1 + Me.Label2.Text = "Scraper order" + ' + 'btnDown + ' + Me.btnDown.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.btnDown.Image = CType(resources.GetObject("btnDown.Image"), System.Drawing.Image) + Me.btnDown.Location = New System.Drawing.Point(591, 1) + Me.btnDown.Name = "btnDown" + Me.btnDown.Size = New System.Drawing.Size(23, 23) + Me.btnDown.TabIndex = 3 + Me.btnDown.UseVisualStyleBackColor = True + ' + 'btnUp + ' + Me.btnUp.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.btnUp.Image = CType(resources.GetObject("btnUp.Image"), System.Drawing.Image) + Me.btnUp.Location = New System.Drawing.Point(566, 1) + Me.btnUp.Name = "btnUp" + Me.btnUp.Size = New System.Drawing.Size(23, 23) + Me.btnUp.TabIndex = 2 + Me.btnUp.UseVisualStyleBackColor = True + ' + 'pnlSettings + ' + Me.pnlSettings.Controls.Add(Me.lblOFDBWarning) + Me.pnlSettings.Controls.Add(Me.Label1) + Me.pnlSettings.Controls.Add(Me.PictureBox1) + Me.pnlSettings.Controls.Add(Me.Panel1) + Me.pnlSettings.Controls.Add(Me.GroupBox30) + Me.pnlSettings.Controls.Add(Me.GroupBox15) + Me.pnlSettings.Controls.Add(Me.gbOptions) + Me.pnlSettings.Location = New System.Drawing.Point(12, 1) + Me.pnlSettings.Name = "pnlSettings" + Me.pnlSettings.Size = New System.Drawing.Size(617, 369) + Me.pnlSettings.TabIndex = 0 + ' + 'lblOFDBWarning + ' + Me.lblOFDBWarning.Location = New System.Drawing.Point(14, 208) + Me.lblOFDBWarning.Name = "lblOFDBWarning" + Me.lblOFDBWarning.Size = New System.Drawing.Size(600, 36) + Me.lblOFDBWarning.TabIndex = 97 + Me.lblOFDBWarning.Text = "OFDB allows only 100 queries in a certain time-frame." & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "After you exceed the usage" & _ + " limits, your IP is blocked for a while and Ember uses IMDB data instead (Englis" & _ + "h only)." + ' + 'Label1 + ' + Me.Label1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.Label1.Font = New System.Drawing.Font("Segoe UI", 6.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Label1.ForeColor = System.Drawing.Color.Blue + Me.Label1.Location = New System.Drawing.Point(37, 337) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(225, 31) + Me.Label1.TabIndex = 4 + Me.Label1.Text = "These settings are specific to this module." & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "Please refer to the global settings " & _ + "for more options." + Me.Label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + ' + 'PictureBox1 + ' + Me.PictureBox1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.PictureBox1.Image = CType(resources.GetObject("PictureBox1.Image"), System.Drawing.Image) + Me.PictureBox1.Location = New System.Drawing.Point(3, 335) + Me.PictureBox1.Name = "PictureBox1" + Me.PictureBox1.Size = New System.Drawing.Size(30, 31) + Me.PictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage + Me.PictureBox1.TabIndex = 96 + Me.PictureBox1.TabStop = False + ' + 'gbOptions + ' + Me.gbOptions.Controls.Add(Me.chkCertification) + Me.gbOptions.Controls.Add(Me.chkCountry) + Me.gbOptions.Controls.Add(Me.chkTop250) + Me.gbOptions.Controls.Add(Me.chkCrew) + Me.gbOptions.Controls.Add(Me.chkMusicBy) + Me.gbOptions.Controls.Add(Me.chkProducers) + Me.gbOptions.Controls.Add(Me.chkFullCast) + Me.gbOptions.Controls.Add(Me.chkWriters) + Me.gbOptions.Controls.Add(Me.chkStudio) + Me.gbOptions.Controls.Add(Me.chkRuntime) + Me.gbOptions.Controls.Add(Me.chkFullCrew) + Me.gbOptions.Controls.Add(Me.chkPlot) + Me.gbOptions.Controls.Add(Me.chkOutline) + Me.gbOptions.Controls.Add(Me.chkGenre) + Me.gbOptions.Controls.Add(Me.chkDirector) + Me.gbOptions.Controls.Add(Me.chkTagline) + Me.gbOptions.Controls.Add(Me.chkCast) + Me.gbOptions.Controls.Add(Me.chkVotes) + Me.gbOptions.Controls.Add(Me.chkTrailer) + Me.gbOptions.Controls.Add(Me.chkRating) + Me.gbOptions.Controls.Add(Me.chkRelease) + Me.gbOptions.Controls.Add(Me.chkMPAA) + Me.gbOptions.Controls.Add(Me.chkYear) + Me.gbOptions.Controls.Add(Me.chkTitle) + Me.gbOptions.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.gbOptions.Location = New System.Drawing.Point(227, 40) + Me.gbOptions.Name = "gbOptions" + Me.gbOptions.Size = New System.Drawing.Size(387, 161) + Me.gbOptions.TabIndex = 3 + Me.gbOptions.TabStop = False + Me.gbOptions.Text = "Scraper Fields" + ' + 'chkCertification + ' + Me.chkCertification.AutoSize = True + Me.chkCertification.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkCertification.Location = New System.Drawing.Point(6, 70) + Me.chkCertification.Name = "chkCertification" + Me.chkCertification.Size = New System.Drawing.Size(89, 17) + Me.chkCertification.TabIndex = 3 + Me.chkCertification.Text = "Certification" + Me.chkCertification.UseVisualStyleBackColor = True + ' + 'chkCountry + ' + Me.chkCountry.AutoSize = True + Me.chkCountry.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkCountry.Location = New System.Drawing.Point(237, 53) + Me.chkCountry.Name = "chkCountry" + Me.chkCountry.Size = New System.Drawing.Size(67, 17) + Me.chkCountry.TabIndex = 18 + Me.chkCountry.Text = "Country" + Me.chkCountry.UseVisualStyleBackColor = True + ' + 'chkTop250 + ' + Me.chkTop250.AutoSize = True + Me.chkTop250.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkTop250.Location = New System.Drawing.Point(237, 19) + Me.chkTop250.Name = "chkTop250" + Me.chkTop250.Size = New System.Drawing.Size(66, 17) + Me.chkTop250.TabIndex = 16 + Me.chkTop250.Text = "Top 250" + Me.chkTop250.UseVisualStyleBackColor = True + ' + 'chkCrew + ' + Me.chkCrew.AutoSize = True + Me.chkCrew.Enabled = False + Me.chkCrew.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkCrew.Location = New System.Drawing.Point(246, 104) + Me.chkCrew.Name = "chkCrew" + Me.chkCrew.Size = New System.Drawing.Size(85, 17) + Me.chkCrew.TabIndex = 21 + Me.chkCrew.Text = "Other Crew" + Me.chkCrew.UseVisualStyleBackColor = True + ' + 'chkMusicBy + ' + Me.chkMusicBy.AutoSize = True + Me.chkMusicBy.Enabled = False + Me.chkMusicBy.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkMusicBy.Location = New System.Drawing.Point(246, 121) + Me.chkMusicBy.Name = "chkMusicBy" + Me.chkMusicBy.Size = New System.Drawing.Size(71, 17) + Me.chkMusicBy.TabIndex = 22 + Me.chkMusicBy.Text = "Music By" + Me.chkMusicBy.UseVisualStyleBackColor = True + ' + 'chkProducers + ' + Me.chkProducers.AutoSize = True + Me.chkProducers.Enabled = False + Me.chkProducers.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkProducers.Location = New System.Drawing.Point(246, 138) + Me.chkProducers.Name = "chkProducers" + Me.chkProducers.Size = New System.Drawing.Size(77, 17) + Me.chkProducers.TabIndex = 23 + Me.chkProducers.Text = "Producers" + Me.chkProducers.UseVisualStyleBackColor = True + ' + 'chkFullCast + ' + Me.chkFullCast.AutoSize = True + Me.chkFullCast.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkFullCast.Location = New System.Drawing.Point(237, 70) + Me.chkFullCast.Name = "chkFullCast" + Me.chkFullCast.Size = New System.Drawing.Size(107, 17) + Me.chkFullCast.TabIndex = 19 + Me.chkFullCast.Text = "Scrape Full Cast" + Me.chkFullCast.UseVisualStyleBackColor = True + ' + 'chkWriters + ' + Me.chkWriters.AutoSize = True + Me.chkWriters.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkWriters.Location = New System.Drawing.Point(131, 121) + Me.chkWriters.Name = "chkWriters" + Me.chkWriters.Size = New System.Drawing.Size(63, 17) + Me.chkWriters.TabIndex = 14 + Me.chkWriters.Text = "Writers" + Me.chkWriters.UseVisualStyleBackColor = True + ' + 'chkStudio + ' + Me.chkStudio.AutoSize = True + Me.chkStudio.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkStudio.Location = New System.Drawing.Point(131, 19) + Me.chkStudio.Name = "chkStudio" + Me.chkStudio.Size = New System.Drawing.Size(60, 17) + Me.chkStudio.TabIndex = 8 + Me.chkStudio.Text = "Studio" + Me.chkStudio.UseVisualStyleBackColor = True + ' + 'chkRuntime + ' + Me.chkRuntime.AutoSize = True + Me.chkRuntime.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkRuntime.Location = New System.Drawing.Point(6, 104) + Me.chkRuntime.Name = "chkRuntime" + Me.chkRuntime.Size = New System.Drawing.Size(69, 17) + Me.chkRuntime.TabIndex = 5 + Me.chkRuntime.Text = "Runtime" + Me.chkRuntime.UseVisualStyleBackColor = True + ' + 'chkFullCrew + ' + Me.chkFullCrew.AutoSize = True + Me.chkFullCrew.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkFullCrew.Location = New System.Drawing.Point(237, 87) + Me.chkFullCrew.Name = "chkFullCrew" + Me.chkFullCrew.Size = New System.Drawing.Size(111, 17) + Me.chkFullCrew.TabIndex = 20 + Me.chkFullCrew.Text = "Scrape Full Crew" + Me.chkFullCrew.UseVisualStyleBackColor = True + ' + 'chkPlot + ' + Me.chkPlot.AutoSize = True + Me.chkPlot.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkPlot.Location = New System.Drawing.Point(131, 70) + Me.chkPlot.Name = "chkPlot" + Me.chkPlot.Size = New System.Drawing.Size(46, 17) + Me.chkPlot.TabIndex = 11 + Me.chkPlot.Text = "Plot" + Me.chkPlot.UseVisualStyleBackColor = True + ' + 'chkOutline + ' + Me.chkOutline.AutoSize = True + Me.chkOutline.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkOutline.Location = New System.Drawing.Point(131, 53) + Me.chkOutline.Name = "chkOutline" + Me.chkOutline.Size = New System.Drawing.Size(65, 17) + Me.chkOutline.TabIndex = 10 + Me.chkOutline.Text = "Outline" + Me.chkOutline.UseVisualStyleBackColor = True + ' + 'chkGenre + ' + Me.chkGenre.AutoSize = True + Me.chkGenre.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkGenre.Location = New System.Drawing.Point(131, 138) + Me.chkGenre.Name = "chkGenre" + Me.chkGenre.Size = New System.Drawing.Size(57, 17) + Me.chkGenre.TabIndex = 15 + Me.chkGenre.Text = "Genre" + Me.chkGenre.UseVisualStyleBackColor = True + ' + 'chkDirector + ' + Me.chkDirector.AutoSize = True + Me.chkDirector.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkDirector.Location = New System.Drawing.Point(131, 104) + Me.chkDirector.Name = "chkDirector" + Me.chkDirector.Size = New System.Drawing.Size(67, 17) + Me.chkDirector.TabIndex = 13 + Me.chkDirector.Text = "Director" + Me.chkDirector.UseVisualStyleBackColor = True + ' + 'chkTagline + ' + Me.chkTagline.AutoSize = True + Me.chkTagline.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkTagline.Location = New System.Drawing.Point(131, 36) + Me.chkTagline.Name = "chkTagline" + Me.chkTagline.Size = New System.Drawing.Size(63, 17) + Me.chkTagline.TabIndex = 9 + Me.chkTagline.Text = "Tagline" + Me.chkTagline.UseVisualStyleBackColor = True + ' + 'chkCast + ' + Me.chkCast.AutoSize = True + Me.chkCast.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkCast.Location = New System.Drawing.Point(131, 87) + Me.chkCast.Name = "chkCast" + Me.chkCast.Size = New System.Drawing.Size(48, 17) + Me.chkCast.TabIndex = 12 + Me.chkCast.Text = "Cast" + Me.chkCast.UseVisualStyleBackColor = True + ' + 'chkVotes + ' + Me.chkVotes.AutoSize = True + Me.chkVotes.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkVotes.Location = New System.Drawing.Point(6, 138) + Me.chkVotes.Name = "chkVotes" + Me.chkVotes.Size = New System.Drawing.Size(55, 17) + Me.chkVotes.TabIndex = 7 + Me.chkVotes.Text = "Votes" + Me.chkVotes.UseVisualStyleBackColor = True + ' + 'chkTrailer + ' + Me.chkTrailer.AutoSize = True + Me.chkTrailer.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkTrailer.Location = New System.Drawing.Point(237, 36) + Me.chkTrailer.Name = "chkTrailer" + Me.chkTrailer.Size = New System.Drawing.Size(57, 17) + Me.chkTrailer.TabIndex = 17 + Me.chkTrailer.Text = "Trailer" + Me.chkTrailer.UseVisualStyleBackColor = True + ' + 'chkRating + ' + Me.chkRating.AutoSize = True + Me.chkRating.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkRating.Location = New System.Drawing.Point(6, 121) + Me.chkRating.Name = "chkRating" + Me.chkRating.Size = New System.Drawing.Size(60, 17) + Me.chkRating.TabIndex = 6 + Me.chkRating.Text = "Rating" + Me.chkRating.UseVisualStyleBackColor = True + ' + 'chkRelease + ' + Me.chkRelease.AutoSize = True + Me.chkRelease.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkRelease.Location = New System.Drawing.Point(6, 87) + Me.chkRelease.Name = "chkRelease" + Me.chkRelease.Size = New System.Drawing.Size(92, 17) + Me.chkRelease.TabIndex = 4 + Me.chkRelease.Text = "Release Date" + Me.chkRelease.UseVisualStyleBackColor = True + ' + 'chkMPAA + ' + Me.chkMPAA.AutoSize = True + Me.chkMPAA.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkMPAA.Location = New System.Drawing.Point(6, 53) + Me.chkMPAA.Name = "chkMPAA" + Me.chkMPAA.Size = New System.Drawing.Size(56, 17) + Me.chkMPAA.TabIndex = 2 + Me.chkMPAA.Text = "MPAA" + Me.chkMPAA.UseVisualStyleBackColor = True + ' + 'chkYear + ' + Me.chkYear.AutoSize = True + Me.chkYear.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkYear.Location = New System.Drawing.Point(6, 36) + Me.chkYear.Name = "chkYear" + Me.chkYear.Size = New System.Drawing.Size(47, 17) + Me.chkYear.TabIndex = 1 + Me.chkYear.Text = "Year" + Me.chkYear.UseVisualStyleBackColor = True + ' + 'chkTitle + ' + Me.chkTitle.AutoSize = True + Me.chkTitle.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkTitle.Location = New System.Drawing.Point(6, 19) + Me.chkTitle.Name = "chkTitle" + Me.chkTitle.Size = New System.Drawing.Size(47, 17) + Me.chkTitle.TabIndex = 0 + Me.chkTitle.Text = "Title" + Me.chkTitle.UseVisualStyleBackColor = True + ' + 'frmInfoSettingsHolder + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi + Me.BackColor = System.Drawing.Color.White + Me.ClientSize = New System.Drawing.Size(652, 388) + Me.Controls.Add(Me.pnlSettings) + Me.Controls.Add(Me.lblVersion) + Me.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "frmInfoSettingsHolder" + Me.ShowInTaskbar = False + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "Scraper Setup" + Me.GroupBox30.ResumeLayout(False) + Me.GroupBox30.PerformLayout() + Me.GroupBox15.ResumeLayout(False) + Me.Panel1.ResumeLayout(False) + Me.Panel1.PerformLayout() + Me.pnlSettings.ResumeLayout(False) + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() + Me.gbOptions.ResumeLayout(False) + Me.gbOptions.PerformLayout() + Me.ResumeLayout(False) - End Sub + End Sub Friend WithEvents lblVersion As System.Windows.Forms.Label Friend WithEvents GroupBox30 As System.Windows.Forms.GroupBox Friend WithEvents Label18 As System.Windows.Forms.Label @@ -628,5 +640,6 @@ Partial Class frmInfoSettingsHolder Friend WithEvents chkMPAA As System.Windows.Forms.CheckBox Friend WithEvents chkYear As System.Windows.Forms.CheckBox Friend WithEvents chkTitle As System.Windows.Forms.CheckBox + Friend WithEvents lblOFDBWarning As System.Windows.Forms.Label End Class diff --git a/Addons/scraper.EmberCore/frmInfoSettingsHolder.resx b/Addons/scraper.EmberCore/frmInfoSettingsHolder.resx index c37233a..bda0fe7 100644 --- a/Addons/scraper.EmberCore/frmInfoSettingsHolder.resx +++ b/Addons/scraper.EmberCore/frmInfoSettingsHolder.resx @@ -120,76 +120,74 @@ - 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 + rkJggg== - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK8gAA - CvIBPVL3EQAAAo1JREFUOE+lkW1IU1EYx5+lbi0jKk2EDKlMJ5eZEFlRyKBUwg/lB3sBSYllRC218K3A - ptvSSpfMtKRIU0vzSviCuU0xnXozKVNn06lzTklJ+yDCwA+yp7ObDeUaBB34cd7+53cezgFEhP/BdXje - PgqfZ19C3/diMM2/hqlFLbSMx117Z4rK+PbjBb/blgXvx2XQbcsHx5pLNxSYf9LQO3M/rvzrMXtZ/2FH - m0WWzszk/Jugf/Y5dE7J4572Uajp9SZ4YUmfCBtHE+S6iaS/V7BgH4OBuUrQjafFF30KwYIeX1QzfiwF - jC8RUVhtjM1hph+vezPXZMFu3tw2qZKqmYOY1+WHD7v91/GArOX3UNgwmqR0OFZ4fx7eJWi1qC7n94Sh - /MNuVHTuRVXnflSu8nu8D7M79qDKIEL9hCKEI5he/CJsMt8JrRxMiFR/lBiy2gOILIjlXvsBzO06ZK0Y - uBRJm26GLy7PenAEc0tD0G5VQ6tFA4XM2ZrUlgDM0AWzpGuDUNFxfLBhJBv0ljxYXllyVe4aGKxVoDUX - g36sFPI6ztA3GgIxqYlikTUG413dCSNtVABtzAHGVssVaCefQfNYCTSbSiFbH0NLa0V4tU7McoWm8HZT - uPFNvwqqh5TwdkTJFUgzz0EBnQlaSwWk1sfQsWUivPhKzHK+nMLEGiIYegS5dclwJELMFQBpAgEf0tTX - IaX+Ql2URoTRxWKW00UUxledHE59kgjCLQJnlCtwA+DxANw3Ac/jVObRWklRKEoKV9GEYoQqbJjv5i4g - GYEzy/kFsuhG8CKBQOFWvsQnZGeyN7XdSYqPeMetbbs8o8leMMn4O7MbCYBsuBOEJOhBqiTdOpwXeBL4 - ayv4Ba5+NdG8cgGAAAAAAElFTkSuQmCC + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAryAAAK8gE9UvcRAAACgklE + QVQ4T6WOa0iTURjHn6VuLSMqTYQMqUwnL7NBZEUhg1IJP5Qf7AKSEmZEmVrMS4Gp29LKLdmaJUWalzRf + CS+Y2xLz+mZSps7mps4rKVkfRBD8IHs675sM7DUKOvDjPOec//M7DyDif+Eq5pds8HH2OfR+NYB1vhIm + F4zQPBp75bU1MuPLt2fCrqkseDOaBF1TBeD8m8D+g4aembuxpZ+PLJX0HXS2OJLSmZncfxP0zT6F9sns + 2Me9FOp6vAleWNQrwQZbfLZpLPnPgu9LI9A/Vw6m0bQ4/YcQ1HT7opbx49AwvkREYZUlJpeZfujq+U1g + 39gyrk7QMvsxv9MP73f5r+EeuSvoprDelqxyOlcEPMFbh/piQXcoZr/bicr23ahu34uqVX7VezCnbReq + OyRoHlOG8ATTC5/EjfZbsvKB+Ajte3lHVmsAkQVx3Gndh3mdBybK+i9E0NbrYQvLsx48wdziILROaMkk + OihkTlcrmgMwwxTMkW4MQmXb0YH64RwwO/JheWXR1ecqOiYqwGg3gHmkGPLbTtHX6gMxuZHiSGoIxtum + YxbaogTakgvMVA1fYBx/Ak0jRdBkLYYcczSdUCPBy7VSjks0hTcbwywv+9RQNaiCV8MqviAh8wxo6Eww + OspAURdNx5RI8PwLKcfZUgoTq4lg8AHk1abAoXApX8AukUgIadqrkFp3rjZSJ8Eog5TjpJ7CuIrjQ4pH + iSDeJOKyPIEbgEAA4L4BBB4nMg/XyPUylBeuopNhuDp0SOjmLiIZEZtdT+BG8CKBQPFmodwnZHuKN7WV + JdVHuu3Glh2eUeQtmGT82ex6AhZ3gpgEPciRbGtgP/AkCAmrEyD8BK5+NdGVjkx7AAAAAElFTkSuQmCC - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALCQAA - CwkBEvpHPgAABypJREFUWEftlntQlccZxrex1tjYNJMEREEhgiB3OBzu94sXEFSQOypEMEYr9Ro9eBJj - 24wlxabt1PSShFhJEFEuKhxUBAFNRSFq7ESlQUwninYMaqKOM3Gcefq82+RooZ3Qv+gfPTO/+fZ8u++7 - z77v7rufAqBGkhGdXBb+fwH/GxG41NenPr10SfX19qrt75aPWbliefGc2Ym1c5OTmubOTrKwbclKT7Pk - ZKZbMuenWRbkZFsW5y+y5C/Is+Tn5eq2vMucn2rJyUjXY+fSRmzFx5ykWXVLFhesbjvS+rjk/f5XX2ms - e+DyZ5+p/itXRMTopUWL6+gIedmZSIiJQk5mBlYsW4rUOSnITEvF2tUrseT5AmSlz8faVauwbs1qZGek - o7AgH+vYlzU/DakpydomL+ufPnKzMiA+VxWvsHCeMX+/dk1d7e9/KKB6V5Wqq9mj3tj6i5SZcbF48OAB - +vv7ER4ciJbmZgoFfvyj5di4Yb1uH2xqQhoFffHFLdy7dw/pqfOwb2+97tu86RUsLSrU7WNHOxAaZAQX - pv/PSojDRtP6zN+/uU399je/fihg9szpKnnWDEW1JfFU3LBvHyr+tB2hgQF4fcsWHGlt0REpLFiEjvY2 - lL1eipSkROyrr4eloQEMNcpKS3H8zx/gxSWFjE4ajrS0gAvSPt595200WRoxMz6W/w2buDAlWFNAZSpx - eryaHhtdIquODA3WK1yQnYVshlrCWrAwD4sXLcTC3BwU5i/CsheWgLnXyIpFxKyEeG2TvyAXGYxKBlOW - yxSmpszWPiNCggRzREigEqwCZPKkGQkSAZMIaD3cjLt37+LWzZvfzq2buHP7Nn71y63YsG4tbgwM4Cbt - btwY0G3hNvvb244gKiwEYUFGc0RwkBKGRCAuKsJE0HPhAgZoeO3q1WFx+8svUVX5PkO+FXfu3BliM/D5 - 57jY26tTEGL0N4cHG5kC40MB7FCShpjIcFNsZBhOnujUG+fiJ5+g91uQMVcuX0b5229hy2s/0+3BNuLr - 1IcfgilGcICfOSwoQAnWCLBDzYiLUdHhoSbC3XsUf+3pwbmPPx4WfRf78IffvYmfbn4VrClDbHro68Tx - 44iPjkSQv6851GhQglUAcy8bUDFHJtksrYcP4y9nz+L0qVPD4vy5c+Cxwqsvb8SF8+eH2Jz96COennbE - RYYj0M/HzCgowSogPipSJURHqciQYFMEN+EBiwXdXV3opOrhcOb0abxRVqbrxJnTZ4bYdJ08ieZDhxDD - 6Ab4epkD/X2VYBUQGxmuuPnkbJqYG+ytr8MHx45x57YNi87OTl0vXlq7BifYHmwnKW3cv18fRYO3p9no - 660EqwDmXcVEhCkWDVNIgD+qd+1CKwvJoYMHh0V7Wzte+8lmrF5ZjI6ODr3aRxFfdTU1urL6ebqbKUIJ - VgFUJvlXnNzETYL3KnbA0mjBflbE4SBCN71sRvHyZWhm6W7gah+liSmt2rlTV0UfDzezn5e7EqwCmHfm - P0gFGXxNAb7eKGfprKutxZ7du4eFiJT8L3uhSE9cs2fPv1BfV4cdLO3BBj94uU01+7i7KcEqICwwQIUH - GSUvJoYG28vL/ysBMulG0wa8qAU0DBEti6nYsQPcePCY6mymCCVYBbA6Mf8GxR1q8nCZoguKrH5nZeV/ - pOrrPnnK2CJe0XJ/VO2sYlUUu/ettrurq1H68y1cvQvcp04xe7g6K8EqgGeTx8JH+Xt7lLg+5wgXRwc5 - LnrXBhv8YfTzQRTbkazlEkbZTFKyQ4wGjVRPr2muEFvJc1RoCBhNKTpgamHw8YLLZAe4TXGEm7OTmU/F - 5yOngBuQTpSv57QSUVmzu5qVbRsm2dmgZP1LrAuNkAoptfzggSZ+eKzCVKdJ+squqnyPjp2whiegpfkQ - eK3zwglAU2OjLkwO45/FNhapvXW1oH84T7bf5OPuqjwfjYD9BDvFLx+1+RVzcgDV3r9/H3/79BIm2jyN - +toa/TExLzmJV22mbldWVIgjXL9+Xd90srJ33vqj7it6Pl8Lld+BpkbYPfMUenou6P8SkeLlSzOS+O3x - 1A+ffBgBxd93iLub2yh/b8+a6bFRiIkI1angBkVK4gx4M8R+XMHc5ESmwAh3l+d4/8eCV7nkVY+bxz4e - L9np2kbGOTP00WHBvIiieBH5N0xzdR0tc8nPugdGcX7yBN+Nf2LsWBf78balDna2HY72E7ocxtt0TbB5 - usvJYaLQPdH22W7HiXbdzo6TujlG4zx5UjfH6j4ZI2Mn2DzTZU9bJ/FhZ3uUPsueHDfOlXPYPsa5ZM7B - An7Alw5U50wms+3Cge7Ek3gTX+JH/ImBBAxC3kmfjJGxYuMhPsSX+CRTZA4ybrAAxReCROIxMop8l4wm - 3yNjyONk7Nd8n89/xzf9MlZsxFZ8iC/xKb5lDj2fNQLSGClGbOJvFjziAv4B1z91K1OjhosAAAAASUVO - RK5CYII= + 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 \ No newline at end of file diff --git a/Addons/scraper.EmberCore/frmInfoSettingsHolder.vb b/Addons/scraper.EmberCore/frmInfoSettingsHolder.vb index 21a3d0b..0e6af96 100644 --- a/Addons/scraper.EmberCore/frmInfoSettingsHolder.vb +++ b/Addons/scraper.EmberCore/frmInfoSettingsHolder.vb @@ -225,7 +225,8 @@ Public Class frmInfoSettingsHolder Me.chkFullCrew.Text = Master.eLang.GetString(513, "Scrape Full Crew", True) Me.chkTop250.Text = Master.eLang.GetString(868, "Top250", True) Me.GroupBox30.Text = Master.eLang.GetString(106, "IMDB") - Me.GroupBox15.Text = Master.eLang.GetString(107, "OFDB (German)") + Me.GroupBox15.Text = Master.eLang.GetString(107, "OFDB (German)") + Me.lblOFDBWarning.Text = String.Format(Master.eLang.GetString(115, "OFDB allows only 100 queries in a certain time-frame.{0}After you exceed the usage limits, your IP is blocked for a while and Ember uses IMDB data instead (English only)."), vbCrLf) End Sub Private Sub txtIMDBURL_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtIMDBURL.TextChanged diff --git a/Addons/scraper.EmberCore/frmMediaSettingsHolder.Designer.vb b/Addons/scraper.EmberCore/frmMediaSettingsHolder.Designer.vb index b5e621a..e776a04 100644 --- a/Addons/scraper.EmberCore/frmMediaSettingsHolder.Designer.vb +++ b/Addons/scraper.EmberCore/frmMediaSettingsHolder.Designer.vb @@ -22,475 +22,503 @@ Partial Class frmMediaSettingsHolder 'Do not modify it using the code editor. _ Private Sub InitializeComponent() - Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmMediaSettingsHolder)) - Me.pnlSettings = New System.Windows.Forms.Panel() - Me.Label1 = New System.Windows.Forms.Label() - Me.PictureBox1 = New System.Windows.Forms.PictureBox() - Me.GroupBox3 = New System.Windows.Forms.GroupBox() - Me.GroupBox4 = New System.Windows.Forms.GroupBox() - Me.cbManualETSize = New System.Windows.Forms.ComboBox() - Me.grpSaveFanart = New System.Windows.Forms.GroupBox() - Me.optFanartFolderExtraFanart = New System.Windows.Forms.RadioButton() - Me.optFanartFolderExtraThumbs = New System.Windows.Forms.RadioButton() - Me.GroupBox9 = New System.Windows.Forms.GroupBox() - Me.chkUseMPDB = New System.Windows.Forms.CheckBox() - Me.chkUseTMDB = New System.Windows.Forms.CheckBox() - Me.chkUseIMPA = New System.Windows.Forms.CheckBox() - Me.chkScrapePoster = New System.Windows.Forms.CheckBox() - Me.chkScrapeFanart = New System.Windows.Forms.CheckBox() - Me.GroupBox1 = New System.Windows.Forms.GroupBox() - Me.GroupBox5 = New System.Windows.Forms.GroupBox() - Me.cbTrailerTMDBPref = New System.Windows.Forms.ComboBox() - Me.Label2 = New System.Windows.Forms.Label() - Me.chkDownloadTrailer = New System.Windows.Forms.CheckBox() - Me.Label23 = New System.Windows.Forms.Label() - Me.txtTimeout = New System.Windows.Forms.TextBox() - Me.GroupBox2 = New System.Windows.Forms.GroupBox() - Me.chkTrailerTMDBXBMC = New System.Windows.Forms.CheckBox() - Me.chkTrailerIMDB = New System.Windows.Forms.CheckBox() - Me.chkTrailerTMDB = New System.Windows.Forms.CheckBox() - Me.Panel2 = New System.Windows.Forms.Panel() - Me.Label3 = New System.Windows.Forms.Label() - Me.btnDown = New System.Windows.Forms.Button() - Me.btnUp = New System.Windows.Forms.Button() - Me.cbEnabled = New System.Windows.Forms.CheckBox() - Me.pnlSettings.SuspendLayout() - CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() - Me.GroupBox3.SuspendLayout() - Me.GroupBox4.SuspendLayout() - Me.grpSaveFanart.SuspendLayout() - Me.GroupBox9.SuspendLayout() - Me.GroupBox1.SuspendLayout() - Me.GroupBox5.SuspendLayout() - Me.GroupBox2.SuspendLayout() - Me.Panel2.SuspendLayout() - Me.SuspendLayout() - ' - 'pnlSettings - ' - Me.pnlSettings.Controls.Add(Me.Label1) - Me.pnlSettings.Controls.Add(Me.PictureBox1) - Me.pnlSettings.Controls.Add(Me.GroupBox3) - Me.pnlSettings.Controls.Add(Me.GroupBox1) - Me.pnlSettings.Controls.Add(Me.Panel2) - Me.pnlSettings.Location = New System.Drawing.Point(12, 4) - Me.pnlSettings.Name = "pnlSettings" - Me.pnlSettings.Size = New System.Drawing.Size(617, 369) - Me.pnlSettings.TabIndex = 0 - ' - 'Label1 - ' - Me.Label1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) - Me.Label1.Font = New System.Drawing.Font("Segoe UI", 6.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.Label1.ForeColor = System.Drawing.Color.Blue - Me.Label1.Location = New System.Drawing.Point(37, 337) - Me.Label1.Name = "Label1" - Me.Label1.Size = New System.Drawing.Size(225, 31) - Me.Label1.TabIndex = 3 - Me.Label1.Text = "These settings are specific to this module." & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "Please refer to the global settings " & _ - "for more options." - Me.Label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft - ' - 'PictureBox1 - ' - Me.PictureBox1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) - Me.PictureBox1.Image = CType(resources.GetObject("PictureBox1.Image"), System.Drawing.Image) - Me.PictureBox1.Location = New System.Drawing.Point(3, 335) - Me.PictureBox1.Name = "PictureBox1" - Me.PictureBox1.Size = New System.Drawing.Size(30, 31) - Me.PictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage - Me.PictureBox1.TabIndex = 94 - Me.PictureBox1.TabStop = False - ' - 'GroupBox3 - ' - Me.GroupBox3.Controls.Add(Me.GroupBox4) - Me.GroupBox3.Controls.Add(Me.grpSaveFanart) - Me.GroupBox3.Controls.Add(Me.GroupBox9) - Me.GroupBox3.Controls.Add(Me.chkScrapePoster) - Me.GroupBox3.Controls.Add(Me.chkScrapeFanart) - Me.GroupBox3.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.GroupBox3.Location = New System.Drawing.Point(15, 31) - Me.GroupBox3.Name = "GroupBox3" - Me.GroupBox3.Size = New System.Drawing.Size(587, 131) - Me.GroupBox3.TabIndex = 1 - Me.GroupBox3.TabStop = False - Me.GroupBox3.Text = "Images" - ' - 'GroupBox4 - ' - Me.GroupBox4.Controls.Add(Me.cbManualETSize) - Me.GroupBox4.Location = New System.Drawing.Point(374, 11) - Me.GroupBox4.Name = "GroupBox4" - Me.GroupBox4.Size = New System.Drawing.Size(160, 80) - Me.GroupBox4.TabIndex = 4 - Me.GroupBox4.TabStop = False - Me.GroupBox4.Text = "TMDB Extrathumbs Size:" - ' - 'cbManualETSize - ' - Me.cbManualETSize.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList - Me.cbManualETSize.Enabled = False - Me.cbManualETSize.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.cbManualETSize.FormattingEnabled = True - Me.cbManualETSize.Items.AddRange(New Object() {"original", "w1280", "poster", "thumb"}) - Me.cbManualETSize.Location = New System.Drawing.Point(21, 35) - Me.cbManualETSize.Name = "cbManualETSize" - Me.cbManualETSize.Size = New System.Drawing.Size(121, 21) - Me.cbManualETSize.TabIndex = 0 - ' - 'grpSaveFanart - ' - Me.grpSaveFanart.Controls.Add(Me.optFanartFolderExtraFanart) - Me.grpSaveFanart.Controls.Add(Me.optFanartFolderExtraThumbs) - Me.grpSaveFanart.Enabled = False - Me.grpSaveFanart.Location = New System.Drawing.Point(24, 54) - Me.grpSaveFanart.Name = "grpSaveFanart" - Me.grpSaveFanart.Size = New System.Drawing.Size(123, 66) - Me.grpSaveFanart.TabIndex = 2 - Me.grpSaveFanart.TabStop = False - Me.grpSaveFanart.Text = "Save Fanart In:" - ' - 'optFanartFolderExtraFanart - ' - Me.optFanartFolderExtraFanart.AutoSize = True - Me.optFanartFolderExtraFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.optFanartFolderExtraFanart.Location = New System.Drawing.Point(22, 38) - Me.optFanartFolderExtraFanart.Name = "optFanartFolderExtraFanart" - Me.optFanartFolderExtraFanart.Size = New System.Drawing.Size(85, 17) - Me.optFanartFolderExtraFanart.TabIndex = 1 - Me.optFanartFolderExtraFanart.TabStop = True - Me.optFanartFolderExtraFanart.Text = "\extrafanart" - Me.optFanartFolderExtraFanart.UseVisualStyleBackColor = True - ' - 'optFanartFolderExtraThumbs - ' - Me.optFanartFolderExtraThumbs.AutoSize = True - Me.optFanartFolderExtraThumbs.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.optFanartFolderExtraThumbs.Location = New System.Drawing.Point(22, 19) - Me.optFanartFolderExtraThumbs.Name = "optFanartFolderExtraThumbs" - Me.optFanartFolderExtraThumbs.Size = New System.Drawing.Size(93, 17) - Me.optFanartFolderExtraThumbs.TabIndex = 0 - Me.optFanartFolderExtraThumbs.TabStop = True - Me.optFanartFolderExtraThumbs.Text = "\extrathumbs" - Me.optFanartFolderExtraThumbs.UseVisualStyleBackColor = True - ' - 'GroupBox9 - ' - Me.GroupBox9.Controls.Add(Me.chkUseMPDB) - Me.GroupBox9.Controls.Add(Me.chkUseTMDB) - Me.GroupBox9.Controls.Add(Me.chkUseIMPA) - Me.GroupBox9.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.GroupBox9.Location = New System.Drawing.Point(165, 11) - Me.GroupBox9.Name = "GroupBox9" - Me.GroupBox9.Size = New System.Drawing.Size(160, 80) - Me.GroupBox9.TabIndex = 3 - Me.GroupBox9.TabStop = False - Me.GroupBox9.Text = "Get Images From:" - ' - 'chkUseMPDB - ' - Me.chkUseMPDB.CheckAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkUseMPDB.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkUseMPDB.Location = New System.Drawing.Point(6, 56) - Me.chkUseMPDB.Name = "chkUseMPDB" - Me.chkUseMPDB.Size = New System.Drawing.Size(150, 22) - Me.chkUseMPDB.TabIndex = 2 - Me.chkUseMPDB.Text = "MoviePosterDB.com" - Me.chkUseMPDB.TextAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkUseMPDB.UseVisualStyleBackColor = True - ' - 'chkUseTMDB - ' - Me.chkUseTMDB.CheckAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkUseTMDB.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkUseTMDB.Location = New System.Drawing.Point(6, 18) - Me.chkUseTMDB.Name = "chkUseTMDB" - Me.chkUseTMDB.Size = New System.Drawing.Size(149, 19) - Me.chkUseTMDB.TabIndex = 0 - Me.chkUseTMDB.Text = "themoviedb.org" - Me.chkUseTMDB.TextAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkUseTMDB.UseVisualStyleBackColor = True - ' - 'chkUseIMPA - ' - Me.chkUseIMPA.CheckAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkUseIMPA.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkUseIMPA.Location = New System.Drawing.Point(6, 37) - Me.chkUseIMPA.Name = "chkUseIMPA" - Me.chkUseIMPA.Size = New System.Drawing.Size(149, 20) - Me.chkUseIMPA.TabIndex = 1 - Me.chkUseIMPA.Text = "IMPAwards.com" - Me.chkUseIMPA.TextAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkUseIMPA.UseVisualStyleBackColor = True - ' - 'chkScrapePoster - ' - Me.chkScrapePoster.CheckAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkScrapePoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkScrapePoster.Location = New System.Drawing.Point(6, 19) - Me.chkScrapePoster.Name = "chkScrapePoster" - Me.chkScrapePoster.Size = New System.Drawing.Size(114, 15) - Me.chkScrapePoster.TabIndex = 0 - Me.chkScrapePoster.Text = "Get Posters" - Me.chkScrapePoster.TextAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkScrapePoster.UseVisualStyleBackColor = True - ' - 'chkScrapeFanart - ' - Me.chkScrapeFanart.CheckAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkScrapeFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkScrapeFanart.Location = New System.Drawing.Point(6, 37) - Me.chkScrapeFanart.Name = "chkScrapeFanart" - Me.chkScrapeFanart.Size = New System.Drawing.Size(84, 16) - Me.chkScrapeFanart.TabIndex = 1 - Me.chkScrapeFanart.Text = "Get Fanart" - Me.chkScrapeFanart.TextAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkScrapeFanart.UseVisualStyleBackColor = True - ' - 'GroupBox1 - ' - Me.GroupBox1.Controls.Add(Me.GroupBox5) - Me.GroupBox1.Controls.Add(Me.chkDownloadTrailer) - Me.GroupBox1.Controls.Add(Me.Label23) - Me.GroupBox1.Controls.Add(Me.txtTimeout) - Me.GroupBox1.Controls.Add(Me.GroupBox2) - Me.GroupBox1.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.GroupBox1.Location = New System.Drawing.Point(15, 168) - Me.GroupBox1.Name = "GroupBox1" - Me.GroupBox1.Size = New System.Drawing.Size(587, 112) - Me.GroupBox1.TabIndex = 2 - Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "Trailers" - Me.GroupBox1.UseCompatibleTextRendering = True - ' - 'GroupBox5 - ' - Me.GroupBox5.Controls.Add(Me.cbTrailerTMDBPref) - Me.GroupBox5.Controls.Add(Me.Label2) - Me.GroupBox5.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold) - Me.GroupBox5.Location = New System.Drawing.Point(374, 12) - Me.GroupBox5.Name = "GroupBox5" - Me.GroupBox5.Size = New System.Drawing.Size(161, 94) - Me.GroupBox5.TabIndex = 4 - Me.GroupBox5.TabStop = False - Me.GroupBox5.Text = "Youtube/TMDB Trailer:" - ' - 'cbTrailerTMDBPref - ' - Me.cbTrailerTMDBPref.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList - Me.cbTrailerTMDBPref.Enabled = False - Me.cbTrailerTMDBPref.Font = New System.Drawing.Font("Segoe UI", 8.25!) - Me.cbTrailerTMDBPref.FormattingEnabled = True - Me.cbTrailerTMDBPref.Items.AddRange(New Object() {"bg", "cs", "da", "de", "el", "en", "es", "fi", "fr", "he", "hu", "it", "nb", "nl", "no", "pl", "pt", "ru", "sk", "sv", "ta", "tr", "uk", "vi", "xx", "zh"}) - Me.cbTrailerTMDBPref.Location = New System.Drawing.Point(21, 51) - Me.cbTrailerTMDBPref.Name = "cbTrailerTMDBPref" - Me.cbTrailerTMDBPref.Size = New System.Drawing.Size(121, 21) - Me.cbTrailerTMDBPref.TabIndex = 1 - ' - 'Label2 - ' - Me.Label2.AutoSize = True - Me.Label2.Font = New System.Drawing.Font("Segoe UI", 8.25!) - Me.Label2.Location = New System.Drawing.Point(26, 26) - Me.Label2.Name = "Label2" - Me.Label2.Size = New System.Drawing.Size(111, 13) - Me.Label2.TabIndex = 0 - Me.Label2.Text = "Preferred Language:" - ' - 'chkDownloadTrailer - ' - Me.chkDownloadTrailer.AutoSize = True - Me.chkDownloadTrailer.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkDownloadTrailer.Location = New System.Drawing.Point(6, 19) - Me.chkDownloadTrailer.Name = "chkDownloadTrailer" - Me.chkDownloadTrailer.Size = New System.Drawing.Size(140, 17) - Me.chkDownloadTrailer.TabIndex = 0 - Me.chkDownloadTrailer.Text = "Enable Trailer Support" - Me.chkDownloadTrailer.UseVisualStyleBackColor = True - ' - 'Label23 - ' - Me.Label23.AutoSize = True - Me.Label23.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label23.Location = New System.Drawing.Point(21, 43) - Me.Label23.Name = "Label23" - Me.Label23.Size = New System.Drawing.Size(51, 13) - Me.Label23.TabIndex = 1 - Me.Label23.Text = "Timeout:" - ' - 'txtTimeout - ' - Me.txtTimeout.Enabled = False - Me.txtTimeout.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtTimeout.Location = New System.Drawing.Point(82, 39) - Me.txtTimeout.Name = "txtTimeout" - Me.txtTimeout.Size = New System.Drawing.Size(50, 22) - Me.txtTimeout.TabIndex = 2 - ' - 'GroupBox2 - ' - Me.GroupBox2.Controls.Add(Me.chkTrailerTMDBXBMC) - Me.GroupBox2.Controls.Add(Me.chkTrailerIMDB) - Me.GroupBox2.Controls.Add(Me.chkTrailerTMDB) - Me.GroupBox2.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.GroupBox2.Location = New System.Drawing.Point(165, 12) - Me.GroupBox2.Name = "GroupBox2" - Me.GroupBox2.Size = New System.Drawing.Size(161, 94) - Me.GroupBox2.TabIndex = 3 - Me.GroupBox2.TabStop = False - Me.GroupBox2.Text = "Supported Sites:" - ' - 'chkTrailerTMDBXBMC - ' - Me.chkTrailerTMDBXBMC.AutoSize = True - Me.chkTrailerTMDBXBMC.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkTrailerTMDBXBMC.Location = New System.Drawing.Point(26, 44) - Me.chkTrailerTMDBXBMC.Name = "chkTrailerTMDBXBMC" - Me.chkTrailerTMDBXBMC.Size = New System.Drawing.Size(95, 17) - Me.chkTrailerTMDBXBMC.TabIndex = 1 - Me.chkTrailerTMDBXBMC.Text = "XBMC Format" - Me.chkTrailerTMDBXBMC.UseVisualStyleBackColor = True - ' - 'chkTrailerIMDB - ' - Me.chkTrailerIMDB.AutoSize = True - Me.chkTrailerIMDB.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkTrailerIMDB.Location = New System.Drawing.Point(6, 67) - Me.chkTrailerIMDB.Name = "chkTrailerIMDB" - Me.chkTrailerIMDB.Size = New System.Drawing.Size(54, 17) - Me.chkTrailerIMDB.TabIndex = 2 - Me.chkTrailerIMDB.Text = "IMDB" - Me.chkTrailerIMDB.UseVisualStyleBackColor = True - ' - 'chkTrailerTMDB - ' - Me.chkTrailerTMDB.AutoSize = True - Me.chkTrailerTMDB.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkTrailerTMDB.Location = New System.Drawing.Point(6, 21) - Me.chkTrailerTMDB.Name = "chkTrailerTMDB" - Me.chkTrailerTMDB.Size = New System.Drawing.Size(103, 17) - Me.chkTrailerTMDB.TabIndex = 0 - Me.chkTrailerTMDB.Text = "Youtube/TMDB" - Me.chkTrailerTMDB.UseVisualStyleBackColor = True - ' - 'Panel2 - ' - Me.Panel2.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ - Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.Panel2.BackColor = System.Drawing.Color.WhiteSmoke - Me.Panel2.Controls.Add(Me.Label3) - Me.Panel2.Controls.Add(Me.btnDown) - Me.Panel2.Controls.Add(Me.btnUp) - Me.Panel2.Controls.Add(Me.cbEnabled) - Me.Panel2.Location = New System.Drawing.Point(0, 0) - Me.Panel2.Name = "Panel2" - Me.Panel2.Size = New System.Drawing.Size(1125, 25) - Me.Panel2.TabIndex = 0 - ' - 'Label3 - ' - Me.Label3.AutoSize = True - Me.Label3.Font = New System.Drawing.Font("Segoe UI", 6.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label3.Location = New System.Drawing.Point(500, 7) - Me.Label3.Name = "Label3" - Me.Label3.Size = New System.Drawing.Size(58, 12) - Me.Label3.TabIndex = 1 - Me.Label3.Text = "Scraper order" - ' - 'btnDown - ' - Me.btnDown.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) - Me.btnDown.Image = CType(resources.GetObject("btnDown.Image"), System.Drawing.Image) - Me.btnDown.Location = New System.Drawing.Point(591, 1) - Me.btnDown.Name = "btnDown" - Me.btnDown.Size = New System.Drawing.Size(23, 23) - Me.btnDown.TabIndex = 3 - Me.btnDown.UseVisualStyleBackColor = True - ' - 'btnUp - ' - Me.btnUp.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) - Me.btnUp.Image = CType(resources.GetObject("btnUp.Image"), System.Drawing.Image) - Me.btnUp.Location = New System.Drawing.Point(566, 1) - Me.btnUp.Name = "btnUp" - Me.btnUp.Size = New System.Drawing.Size(23, 23) - Me.btnUp.TabIndex = 2 - Me.btnUp.UseVisualStyleBackColor = True - ' - 'cbEnabled - ' - Me.cbEnabled.AutoSize = True - Me.cbEnabled.Location = New System.Drawing.Point(10, 5) - Me.cbEnabled.Name = "cbEnabled" - Me.cbEnabled.Size = New System.Drawing.Size(68, 17) - Me.cbEnabled.TabIndex = 0 - Me.cbEnabled.Text = "Enabled" - Me.cbEnabled.UseVisualStyleBackColor = True - ' - 'frmMediaSettingsHolder - ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi - Me.BackColor = System.Drawing.Color.White - Me.ClientSize = New System.Drawing.Size(652, 388) - Me.Controls.Add(Me.pnlSettings) - Me.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog - Me.MaximizeBox = False - Me.MinimizeBox = False - Me.Name = "frmMediaSettingsHolder" - Me.ShowInTaskbar = False - Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Scraper Setup" - Me.pnlSettings.ResumeLayout(False) - CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() - Me.GroupBox3.ResumeLayout(False) - Me.GroupBox4.ResumeLayout(False) - Me.grpSaveFanart.ResumeLayout(False) - Me.grpSaveFanart.PerformLayout() - Me.GroupBox9.ResumeLayout(False) - Me.GroupBox1.ResumeLayout(False) - Me.GroupBox1.PerformLayout() - Me.GroupBox5.ResumeLayout(False) - Me.GroupBox5.PerformLayout() - Me.GroupBox2.ResumeLayout(False) - Me.GroupBox2.PerformLayout() - Me.Panel2.ResumeLayout(False) - Me.Panel2.PerformLayout() - Me.ResumeLayout(False) + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmMediaSettingsHolder)) + Me.pnlSettings = New System.Windows.Forms.Panel() + Me.lblInfo = New System.Windows.Forms.Label() + Me.PictureBox1 = New System.Windows.Forms.PictureBox() + Me.gbImages = New System.Windows.Forms.GroupBox() + Me.gbActorThumbsSize = New System.Windows.Forms.GroupBox() + Me.cbActorThumbsSize = New System.Windows.Forms.ComboBox() + Me.gbExtrathumbsSize = New System.Windows.Forms.GroupBox() + Me.cbManualETSize = New System.Windows.Forms.ComboBox() + Me.gbSaveFanartIn = New System.Windows.Forms.GroupBox() + Me.optFanartFolderExtraFanart = New System.Windows.Forms.RadioButton() + Me.optFanartFolderExtraThumbs = New System.Windows.Forms.RadioButton() + Me.gbGetImages = New System.Windows.Forms.GroupBox() + Me.chkUseMPDB = New System.Windows.Forms.CheckBox() + Me.chkUseTMDB = New System.Windows.Forms.CheckBox() + Me.chkUseIMPA = New System.Windows.Forms.CheckBox() + Me.chkScrapePoster = New System.Windows.Forms.CheckBox() + Me.chkScrapeFanart = New System.Windows.Forms.CheckBox() + Me.gbTrailers = New System.Windows.Forms.GroupBox() + Me.chkDownloadTrailer = New System.Windows.Forms.CheckBox() + Me.lblTimeout = New System.Windows.Forms.Label() + Me.txtTimeout = New System.Windows.Forms.TextBox() + Me.gbSupportedSites = New System.Windows.Forms.GroupBox() + Me.gbYouTubeTrailer = New System.Windows.Forms.GroupBox() + Me.cbTrailerTMDBPref = New System.Windows.Forms.ComboBox() + Me.lblPrefLanguage = New System.Windows.Forms.Label() + Me.chkTrailerTMDBXBMC = New System.Windows.Forms.CheckBox() + Me.chkTrailerIMDB = New System.Windows.Forms.CheckBox() + Me.chkTrailerTMDB = New System.Windows.Forms.CheckBox() + Me.Panel2 = New System.Windows.Forms.Panel() + Me.lblScraperOrder = New System.Windows.Forms.Label() + Me.btnDown = New System.Windows.Forms.Button() + Me.btnUp = New System.Windows.Forms.Button() + Me.cbEnabled = New System.Windows.Forms.CheckBox() + Me.pnlSettings.SuspendLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.gbImages.SuspendLayout() + Me.gbActorThumbsSize.SuspendLayout() + Me.gbExtrathumbsSize.SuspendLayout() + Me.gbSaveFanartIn.SuspendLayout() + Me.gbGetImages.SuspendLayout() + Me.gbTrailers.SuspendLayout() + Me.gbSupportedSites.SuspendLayout() + Me.gbYouTubeTrailer.SuspendLayout() + Me.Panel2.SuspendLayout() + Me.SuspendLayout() + ' + 'pnlSettings + ' + Me.pnlSettings.Controls.Add(Me.lblInfo) + Me.pnlSettings.Controls.Add(Me.PictureBox1) + Me.pnlSettings.Controls.Add(Me.gbImages) + Me.pnlSettings.Controls.Add(Me.gbTrailers) + Me.pnlSettings.Controls.Add(Me.Panel2) + Me.pnlSettings.Location = New System.Drawing.Point(12, 4) + Me.pnlSettings.Name = "pnlSettings" + Me.pnlSettings.Size = New System.Drawing.Size(617, 369) + Me.pnlSettings.TabIndex = 0 + ' + 'lblInfo + ' + Me.lblInfo.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.lblInfo.Font = New System.Drawing.Font("Segoe UI", 6.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblInfo.ForeColor = System.Drawing.Color.Blue + Me.lblInfo.Location = New System.Drawing.Point(37, 337) + Me.lblInfo.Name = "lblInfo" + Me.lblInfo.Size = New System.Drawing.Size(350, 31) + Me.lblInfo.TabIndex = 3 + Me.lblInfo.Text = "These settings are specific to this module." & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "Please refer to the global settings " & _ + "for more options." + Me.lblInfo.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + ' + 'PictureBox1 + ' + Me.PictureBox1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.PictureBox1.Image = CType(resources.GetObject("PictureBox1.Image"), System.Drawing.Image) + Me.PictureBox1.Location = New System.Drawing.Point(3, 335) + Me.PictureBox1.Name = "PictureBox1" + Me.PictureBox1.Size = New System.Drawing.Size(30, 31) + Me.PictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage + Me.PictureBox1.TabIndex = 94 + Me.PictureBox1.TabStop = False + ' + 'gbImages + ' + Me.gbImages.Controls.Add(Me.gbActorThumbsSize) + Me.gbImages.Controls.Add(Me.gbExtrathumbsSize) + Me.gbImages.Controls.Add(Me.gbSaveFanartIn) + Me.gbImages.Controls.Add(Me.gbGetImages) + Me.gbImages.Controls.Add(Me.chkScrapePoster) + Me.gbImages.Controls.Add(Me.chkScrapeFanart) + Me.gbImages.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.gbImages.Location = New System.Drawing.Point(15, 31) + Me.gbImages.Name = "gbImages" + Me.gbImages.Size = New System.Drawing.Size(587, 177) + Me.gbImages.TabIndex = 1 + Me.gbImages.TabStop = False + Me.gbImages.Text = "Images" + ' + 'gbActorThumbsSize + ' + Me.gbActorThumbsSize.Controls.Add(Me.cbActorThumbsSize) + Me.gbActorThumbsSize.Location = New System.Drawing.Point(374, 98) + Me.gbActorThumbsSize.Name = "gbActorThumbsSize" + Me.gbActorThumbsSize.Size = New System.Drawing.Size(160, 73) + Me.gbActorThumbsSize.TabIndex = 5 + Me.gbActorThumbsSize.TabStop = False + Me.gbActorThumbsSize.Text = "Actor Thumbs Size:" + ' + 'cbActorThumbsSize + ' + Me.cbActorThumbsSize.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cbActorThumbsSize.Font = New System.Drawing.Font("Segoe UI", 8.25!) + Me.cbActorThumbsSize.FormattingEnabled = True + Me.cbActorThumbsSize.Items.AddRange(New Object() {"SY275_SX400", "SY720_SX1080", "SY1080_SX1920"}) + Me.cbActorThumbsSize.Location = New System.Drawing.Point(21, 35) + Me.cbActorThumbsSize.Name = "cbActorThumbsSize" + Me.cbActorThumbsSize.Size = New System.Drawing.Size(121, 21) + Me.cbActorThumbsSize.TabIndex = 0 + ' + 'gbExtrathumbsSize + ' + Me.gbExtrathumbsSize.Controls.Add(Me.cbManualETSize) + Me.gbExtrathumbsSize.Location = New System.Drawing.Point(374, 11) + Me.gbExtrathumbsSize.Name = "gbExtrathumbsSize" + Me.gbExtrathumbsSize.Size = New System.Drawing.Size(160, 80) + Me.gbExtrathumbsSize.TabIndex = 4 + Me.gbExtrathumbsSize.TabStop = False + Me.gbExtrathumbsSize.Text = "TMDB Extrathumbs Size:" + ' + 'cbManualETSize + ' + Me.cbManualETSize.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cbManualETSize.Enabled = False + Me.cbManualETSize.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.cbManualETSize.FormattingEnabled = True + Me.cbManualETSize.Items.AddRange(New Object() {"original", "w1280", "poster", "thumb"}) + Me.cbManualETSize.Location = New System.Drawing.Point(21, 35) + Me.cbManualETSize.Name = "cbManualETSize" + Me.cbManualETSize.Size = New System.Drawing.Size(121, 21) + Me.cbManualETSize.TabIndex = 0 + ' + 'gbSaveFanartIn + ' + Me.gbSaveFanartIn.Controls.Add(Me.optFanartFolderExtraFanart) + Me.gbSaveFanartIn.Controls.Add(Me.optFanartFolderExtraThumbs) + Me.gbSaveFanartIn.Enabled = False + Me.gbSaveFanartIn.Location = New System.Drawing.Point(23, 52) + Me.gbSaveFanartIn.Name = "gbSaveFanartIn" + Me.gbSaveFanartIn.Size = New System.Drawing.Size(123, 66) + Me.gbSaveFanartIn.TabIndex = 2 + Me.gbSaveFanartIn.TabStop = False + Me.gbSaveFanartIn.Text = "Save Fanart In:" + ' + 'optFanartFolderExtraFanart + ' + Me.optFanartFolderExtraFanart.AutoSize = True + Me.optFanartFolderExtraFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.optFanartFolderExtraFanart.Location = New System.Drawing.Point(22, 38) + Me.optFanartFolderExtraFanart.Name = "optFanartFolderExtraFanart" + Me.optFanartFolderExtraFanart.Size = New System.Drawing.Size(85, 17) + Me.optFanartFolderExtraFanart.TabIndex = 1 + Me.optFanartFolderExtraFanart.TabStop = True + Me.optFanartFolderExtraFanart.Text = "\extrafanart" + Me.optFanartFolderExtraFanart.UseVisualStyleBackColor = True + ' + 'optFanartFolderExtraThumbs + ' + Me.optFanartFolderExtraThumbs.AutoSize = True + Me.optFanartFolderExtraThumbs.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.optFanartFolderExtraThumbs.Location = New System.Drawing.Point(22, 19) + Me.optFanartFolderExtraThumbs.Name = "optFanartFolderExtraThumbs" + Me.optFanartFolderExtraThumbs.Size = New System.Drawing.Size(93, 17) + Me.optFanartFolderExtraThumbs.TabIndex = 0 + Me.optFanartFolderExtraThumbs.TabStop = True + Me.optFanartFolderExtraThumbs.Text = "\extrathumbs" + Me.optFanartFolderExtraThumbs.UseVisualStyleBackColor = True + ' + 'gbGetImages + ' + Me.gbGetImages.Controls.Add(Me.chkUseMPDB) + Me.gbGetImages.Controls.Add(Me.chkUseTMDB) + Me.gbGetImages.Controls.Add(Me.chkUseIMPA) + Me.gbGetImages.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.gbGetImages.Location = New System.Drawing.Point(165, 11) + Me.gbGetImages.Name = "gbGetImages" + Me.gbGetImages.Size = New System.Drawing.Size(160, 80) + Me.gbGetImages.TabIndex = 3 + Me.gbGetImages.TabStop = False + Me.gbGetImages.Text = "Get Images From:" + ' + 'chkUseMPDB + ' + Me.chkUseMPDB.CheckAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkUseMPDB.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkUseMPDB.Location = New System.Drawing.Point(6, 52) + Me.chkUseMPDB.Name = "chkUseMPDB" + Me.chkUseMPDB.Size = New System.Drawing.Size(150, 17) + Me.chkUseMPDB.TabIndex = 2 + Me.chkUseMPDB.Text = "MoviePosterDB.com" + Me.chkUseMPDB.TextAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkUseMPDB.UseVisualStyleBackColor = True + ' + 'chkUseTMDB + ' + Me.chkUseTMDB.CheckAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkUseTMDB.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkUseTMDB.Location = New System.Drawing.Point(6, 20) + Me.chkUseTMDB.Name = "chkUseTMDB" + Me.chkUseTMDB.Size = New System.Drawing.Size(149, 17) + Me.chkUseTMDB.TabIndex = 0 + Me.chkUseTMDB.Text = "themoviedb.org" + Me.chkUseTMDB.TextAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkUseTMDB.UseVisualStyleBackColor = True + ' + 'chkUseIMPA + ' + Me.chkUseIMPA.CheckAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkUseIMPA.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkUseIMPA.Location = New System.Drawing.Point(6, 36) + Me.chkUseIMPA.Name = "chkUseIMPA" + Me.chkUseIMPA.Size = New System.Drawing.Size(149, 17) + Me.chkUseIMPA.TabIndex = 1 + Me.chkUseIMPA.Text = "IMPAwards.com" + Me.chkUseIMPA.TextAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkUseIMPA.UseVisualStyleBackColor = True + ' + 'chkScrapePoster + ' + Me.chkScrapePoster.CheckAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkScrapePoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkScrapePoster.Location = New System.Drawing.Point(6, 20) + Me.chkScrapePoster.Name = "chkScrapePoster" + Me.chkScrapePoster.Size = New System.Drawing.Size(114, 17) + Me.chkScrapePoster.TabIndex = 0 + Me.chkScrapePoster.Text = "Get Posters" + Me.chkScrapePoster.TextAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkScrapePoster.UseVisualStyleBackColor = True + ' + 'chkScrapeFanart + ' + Me.chkScrapeFanart.CheckAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkScrapeFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkScrapeFanart.Location = New System.Drawing.Point(6, 36) + Me.chkScrapeFanart.Name = "chkScrapeFanart" + Me.chkScrapeFanart.Size = New System.Drawing.Size(114, 17) + Me.chkScrapeFanart.TabIndex = 1 + Me.chkScrapeFanart.Text = "Get Fanart" + Me.chkScrapeFanart.TextAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkScrapeFanart.UseVisualStyleBackColor = True + ' + 'gbTrailers + ' + Me.gbTrailers.Controls.Add(Me.chkDownloadTrailer) + Me.gbTrailers.Controls.Add(Me.lblTimeout) + Me.gbTrailers.Controls.Add(Me.txtTimeout) + Me.gbTrailers.Controls.Add(Me.gbSupportedSites) + Me.gbTrailers.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.gbTrailers.Location = New System.Drawing.Point(15, 214) + Me.gbTrailers.Name = "gbTrailers" + Me.gbTrailers.Size = New System.Drawing.Size(587, 112) + Me.gbTrailers.TabIndex = 2 + Me.gbTrailers.TabStop = False + Me.gbTrailers.Text = "Trailers" + Me.gbTrailers.UseCompatibleTextRendering = True + ' + 'chkDownloadTrailer + ' + Me.chkDownloadTrailer.AutoSize = True + Me.chkDownloadTrailer.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkDownloadTrailer.Location = New System.Drawing.Point(6, 20) + Me.chkDownloadTrailer.Name = "chkDownloadTrailer" + Me.chkDownloadTrailer.Size = New System.Drawing.Size(140, 17) + Me.chkDownloadTrailer.TabIndex = 0 + Me.chkDownloadTrailer.Text = "Enable Trailer Support" + Me.chkDownloadTrailer.UseVisualStyleBackColor = True + ' + 'lblTimeout + ' + Me.lblTimeout.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblTimeout.Location = New System.Drawing.Point(6, 44) + Me.lblTimeout.Name = "lblTimeout" + Me.lblTimeout.Size = New System.Drawing.Size(72, 13) + Me.lblTimeout.TabIndex = 1 + Me.lblTimeout.Text = "Timeout:" + Me.lblTimeout.TextAlign = System.Drawing.ContentAlignment.TopRight + ' + 'txtTimeout + ' + Me.txtTimeout.Enabled = False + Me.txtTimeout.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtTimeout.Location = New System.Drawing.Point(85, 40) + Me.txtTimeout.Name = "txtTimeout" + Me.txtTimeout.Size = New System.Drawing.Size(50, 22) + Me.txtTimeout.TabIndex = 2 + ' + 'gbSupportedSites + ' + Me.gbSupportedSites.Controls.Add(Me.gbYouTubeTrailer) + Me.gbSupportedSites.Controls.Add(Me.chkTrailerTMDBXBMC) + Me.gbSupportedSites.Controls.Add(Me.chkTrailerIMDB) + Me.gbSupportedSites.Controls.Add(Me.chkTrailerTMDB) + Me.gbSupportedSites.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.gbSupportedSites.Location = New System.Drawing.Point(165, 12) + Me.gbSupportedSites.Name = "gbSupportedSites" + Me.gbSupportedSites.Size = New System.Drawing.Size(321, 94) + Me.gbSupportedSites.TabIndex = 3 + Me.gbSupportedSites.TabStop = False + Me.gbSupportedSites.Text = "Supported Sites:" + ' + 'gbYouTubeTrailer + ' + Me.gbYouTubeTrailer.Controls.Add(Me.cbTrailerTMDBPref) + Me.gbYouTubeTrailer.Controls.Add(Me.lblPrefLanguage) + Me.gbYouTubeTrailer.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold) + Me.gbYouTubeTrailer.Location = New System.Drawing.Point(140, 12) + Me.gbYouTubeTrailer.Name = "gbYouTubeTrailer" + Me.gbYouTubeTrailer.Size = New System.Drawing.Size(161, 76) + Me.gbYouTubeTrailer.TabIndex = 4 + Me.gbYouTubeTrailer.TabStop = False + Me.gbYouTubeTrailer.Text = "Youtube/TMDB Trailer:" + ' + 'cbTrailerTMDBPref + ' + Me.cbTrailerTMDBPref.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cbTrailerTMDBPref.Enabled = False + Me.cbTrailerTMDBPref.Font = New System.Drawing.Font("Segoe UI", 8.25!) + Me.cbTrailerTMDBPref.FormattingEnabled = True + Me.cbTrailerTMDBPref.Items.AddRange(New Object() {"bg", "cs", "da", "de", "el", "en", "es", "fi", "fr", "he", "hu", "it", "nb", "nl", "no", "pl", "pt", "ru", "sk", "sv", "ta", "tr", "uk", "vi", "xx", "zh"}) + Me.cbTrailerTMDBPref.Location = New System.Drawing.Point(21, 42) + Me.cbTrailerTMDBPref.Name = "cbTrailerTMDBPref" + Me.cbTrailerTMDBPref.Size = New System.Drawing.Size(121, 21) + Me.cbTrailerTMDBPref.TabIndex = 1 + ' + 'lblPrefLanguage + ' + Me.lblPrefLanguage.AutoSize = True + Me.lblPrefLanguage.Font = New System.Drawing.Font("Segoe UI", 8.25!) + Me.lblPrefLanguage.Location = New System.Drawing.Point(26, 20) + Me.lblPrefLanguage.Name = "lblPrefLanguage" + Me.lblPrefLanguage.Size = New System.Drawing.Size(111, 13) + Me.lblPrefLanguage.TabIndex = 0 + Me.lblPrefLanguage.Text = "Preferred Language:" + ' + 'chkTrailerTMDBXBMC + ' + Me.chkTrailerTMDBXBMC.AutoSize = True + Me.chkTrailerTMDBXBMC.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkTrailerTMDBXBMC.Location = New System.Drawing.Point(26, 36) + Me.chkTrailerTMDBXBMC.Name = "chkTrailerTMDBXBMC" + Me.chkTrailerTMDBXBMC.Size = New System.Drawing.Size(95, 17) + Me.chkTrailerTMDBXBMC.TabIndex = 1 + Me.chkTrailerTMDBXBMC.Text = "XBMC Format" + Me.chkTrailerTMDBXBMC.UseVisualStyleBackColor = True + ' + 'chkTrailerIMDB + ' + Me.chkTrailerIMDB.AutoSize = True + Me.chkTrailerIMDB.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkTrailerIMDB.Location = New System.Drawing.Point(6, 60) + Me.chkTrailerIMDB.Name = "chkTrailerIMDB" + Me.chkTrailerIMDB.Size = New System.Drawing.Size(54, 17) + Me.chkTrailerIMDB.TabIndex = 2 + Me.chkTrailerIMDB.Text = "IMDB" + Me.chkTrailerIMDB.UseVisualStyleBackColor = True + ' + 'chkTrailerTMDB + ' + Me.chkTrailerTMDB.AutoSize = True + Me.chkTrailerTMDB.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkTrailerTMDB.Location = New System.Drawing.Point(6, 20) + Me.chkTrailerTMDB.Name = "chkTrailerTMDB" + Me.chkTrailerTMDB.Size = New System.Drawing.Size(103, 17) + Me.chkTrailerTMDB.TabIndex = 0 + Me.chkTrailerTMDB.Text = "Youtube/TMDB" + Me.chkTrailerTMDB.UseVisualStyleBackColor = True + ' + 'Panel2 + ' + Me.Panel2.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Panel2.BackColor = System.Drawing.Color.WhiteSmoke + Me.Panel2.Controls.Add(Me.lblScraperOrder) + Me.Panel2.Controls.Add(Me.btnDown) + Me.Panel2.Controls.Add(Me.btnUp) + Me.Panel2.Controls.Add(Me.cbEnabled) + Me.Panel2.Location = New System.Drawing.Point(0, 0) + Me.Panel2.Name = "Panel2" + Me.Panel2.Size = New System.Drawing.Size(1125, 25) + Me.Panel2.TabIndex = 0 + ' + 'lblScraperOrder + ' + Me.lblScraperOrder.AutoSize = True + Me.lblScraperOrder.Font = New System.Drawing.Font("Segoe UI", 6.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblScraperOrder.Location = New System.Drawing.Point(470, 7) + Me.lblScraperOrder.Name = "lblScraperOrder" + Me.lblScraperOrder.Size = New System.Drawing.Size(58, 12) + Me.lblScraperOrder.TabIndex = 1 + Me.lblScraperOrder.Text = "Scraper order" + ' + 'btnDown + ' + Me.btnDown.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.btnDown.Image = CType(resources.GetObject("btnDown.Image"), System.Drawing.Image) + Me.btnDown.Location = New System.Drawing.Point(591, 1) + Me.btnDown.Name = "btnDown" + Me.btnDown.Size = New System.Drawing.Size(23, 23) + Me.btnDown.TabIndex = 3 + Me.btnDown.UseVisualStyleBackColor = True + ' + 'btnUp + ' + Me.btnUp.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.btnUp.Image = CType(resources.GetObject("btnUp.Image"), System.Drawing.Image) + Me.btnUp.Location = New System.Drawing.Point(566, 1) + Me.btnUp.Name = "btnUp" + Me.btnUp.Size = New System.Drawing.Size(23, 23) + Me.btnUp.TabIndex = 2 + Me.btnUp.UseVisualStyleBackColor = True + ' + 'cbEnabled + ' + Me.cbEnabled.AutoSize = True + Me.cbEnabled.Location = New System.Drawing.Point(10, 5) + Me.cbEnabled.Name = "cbEnabled" + Me.cbEnabled.Size = New System.Drawing.Size(68, 17) + Me.cbEnabled.TabIndex = 0 + Me.cbEnabled.Text = "Enabled" + Me.cbEnabled.UseVisualStyleBackColor = True + ' + 'frmMediaSettingsHolder + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi + Me.BackColor = System.Drawing.Color.White + Me.ClientSize = New System.Drawing.Size(652, 388) + Me.Controls.Add(Me.pnlSettings) + Me.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "frmMediaSettingsHolder" + Me.ShowInTaskbar = False + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "Scraper Setup" + Me.pnlSettings.ResumeLayout(False) + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() + Me.gbImages.ResumeLayout(False) + Me.gbActorThumbsSize.ResumeLayout(False) + Me.gbExtrathumbsSize.ResumeLayout(False) + Me.gbSaveFanartIn.ResumeLayout(False) + Me.gbSaveFanartIn.PerformLayout() + Me.gbGetImages.ResumeLayout(False) + Me.gbTrailers.ResumeLayout(False) + Me.gbTrailers.PerformLayout() + Me.gbSupportedSites.ResumeLayout(False) + Me.gbSupportedSites.PerformLayout() + Me.gbYouTubeTrailer.ResumeLayout(False) + Me.gbYouTubeTrailer.PerformLayout() + Me.Panel2.ResumeLayout(False) + Me.Panel2.PerformLayout() + Me.ResumeLayout(False) - End Sub + End Sub Friend WithEvents pnlSettings As System.Windows.Forms.Panel Friend WithEvents chkScrapeFanart As System.Windows.Forms.CheckBox Friend WithEvents chkScrapePoster As System.Windows.Forms.CheckBox Friend WithEvents chkDownloadTrailer As System.Windows.Forms.CheckBox - Friend WithEvents GroupBox9 As System.Windows.Forms.GroupBox + Friend WithEvents gbGetImages As System.Windows.Forms.GroupBox Friend WithEvents chkUseMPDB As System.Windows.Forms.CheckBox Friend WithEvents chkUseTMDB As System.Windows.Forms.CheckBox Friend WithEvents chkUseIMPA As System.Windows.Forms.CheckBox - Friend WithEvents GroupBox2 As System.Windows.Forms.GroupBox + Friend WithEvents gbSupportedSites As System.Windows.Forms.GroupBox Friend WithEvents Panel2 As System.Windows.Forms.Panel Friend WithEvents cbEnabled As System.Windows.Forms.CheckBox - Friend WithEvents Label23 As System.Windows.Forms.Label + Friend WithEvents lblTimeout As System.Windows.Forms.Label Friend WithEvents txtTimeout As System.Windows.Forms.TextBox - Friend WithEvents GroupBox3 As System.Windows.Forms.GroupBox - Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox - Friend WithEvents Label3 As System.Windows.Forms.Label + Friend WithEvents gbImages As System.Windows.Forms.GroupBox + Friend WithEvents gbTrailers As System.Windows.Forms.GroupBox + Friend WithEvents lblScraperOrder As System.Windows.Forms.Label Friend WithEvents btnDown As System.Windows.Forms.Button Friend WithEvents btnUp As System.Windows.Forms.Button - Friend WithEvents Label1 As System.Windows.Forms.Label + Friend WithEvents lblInfo As System.Windows.Forms.Label Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox - Friend WithEvents grpSaveFanart As System.Windows.Forms.GroupBox + Friend WithEvents gbSaveFanartIn As System.Windows.Forms.GroupBox Friend WithEvents optFanartFolderExtraFanart As System.Windows.Forms.RadioButton Friend WithEvents optFanartFolderExtraThumbs As System.Windows.Forms.RadioButton Friend WithEvents chkTrailerIMDB As System.Windows.Forms.CheckBox Friend WithEvents chkTrailerTMDB As System.Windows.Forms.CheckBox Friend WithEvents chkTrailerTMDBXBMC As System.Windows.Forms.CheckBox - Friend WithEvents GroupBox4 As System.Windows.Forms.GroupBox + Friend WithEvents gbExtrathumbsSize As System.Windows.Forms.GroupBox Friend WithEvents cbManualETSize As System.Windows.Forms.ComboBox - Friend WithEvents GroupBox5 As System.Windows.Forms.GroupBox + Friend WithEvents gbYouTubeTrailer As System.Windows.Forms.GroupBox Friend WithEvents cbTrailerTMDBPref As System.Windows.Forms.ComboBox - Friend WithEvents Label2 As System.Windows.Forms.Label + Friend WithEvents lblPrefLanguage As System.Windows.Forms.Label + Friend WithEvents gbActorThumbsSize As System.Windows.Forms.GroupBox + Friend WithEvents cbActorThumbsSize As System.Windows.Forms.ComboBox End Class \ No newline at end of file diff --git a/Addons/scraper.EmberCore/frmMediaSettingsHolder.resx b/Addons/scraper.EmberCore/frmMediaSettingsHolder.resx index 3c46229..023cf14 100644 --- a/Addons/scraper.EmberCore/frmMediaSettingsHolder.resx +++ b/Addons/scraper.EmberCore/frmMediaSettingsHolder.resx @@ -165,74 +165,73 @@ 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 + 6bKz54D4Hdc/dStsxIkAAAAAAElFTkSuQmCC - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK8gAA - CvIBPVL3EQAAApRJREFUOE+l0GtIU2EYB/DHC0Ve2lDsIppZ2TQ9UwPJsCAJirDsQ/lhlHT5YFCWXbDm - Xam0vMGm4mVeppApXiDSckynNc2pa5jTbOmWqSEtA6WUwuTpOSeS5PitAz94zvs+7/+9ACLC/1hZbF3Q - A+vrohEGZ+Rh5XqvikqDj4JVpveo7J/OjFpa/gaLS1bO301XihFrFbBMs7XQaoqmRSKseB3AUeh9sWkk - QmeafQyj1hoOL6B3KhNY/Z9y4dGbg02yXiEW6Nw48l4XNmRE8+EWdFiuc3gBPZM5wNJNy6Bm8HBDbs9m - zH/lwcnr2YrFA2JjhyUJ2s1SDi9AO5ED2olcOoUcqgxHGrK07pjd7cV5qPXEgr5go9qcAqrxRHg+dnuN - K0yWw8sJOXR/LIJS/bGGjK5teO/FTs7dLm86SYixbSwNnr1Ppk0U/ICp+VHoMJdAu0UGxQOR9SmaHZje - KeKkaXzoJPuHWkzp8GT0Pnz/OccPmJ57a9dqyvOsNlwNzNYeVce37Uapyo9zRyXCDE3omNIQG1g3JPWd - //HFhvcGzcMPLqaqw5cTVGF4szUI4576r3KjRYyJqgMobQvF5uEsMS/g84JFUK1PSoiu3Y4xjQF4qZFZ - JYb+z9ftwnT1ybK5XzP2vIDBdzrQjjeDwpAUH1UlQokyACXVzB9KBqOUfpjReaaksi8ZWjRN/DcA+ty2 - COFCrARS6y/HRZYHYkQRgxGFDJ5QiPFKzalCybXjsMldyLbyA+wAbGjcnjg4OzjZ7pMwqYfygzBcFowh - 5/aUCgQb2TlHsp7t5V2BBu2IK/GjpGBq9HXxEJx29RaepdqfxvbSHEO82N61AoAm7MkG4mRLaCGVYEu1 - IxXOxIGs+/cEvwG4WS+MPfOKlQAAAABJRU5ErkJggg== + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAryAAAK8gE9UvcRAAAChklE + QVQ4T6XOaUjTcRjA8ceDIo82FDtEMyubppsaSIYFSVCEHS/KF6Ok44VBWXZgzVuptLxgU/GYxxQyxQMi + Lcd0WtM2dQ1zmi11mRrSMlBKKUyenv0MQ/6+6w8fePgd3/8PEPG/rAyWeT3zbcEI/dOysDK9V3mFwUdu + Var3qOidyohcXPoOC4sWhhMYslQyppkaaDFF0SUBlr8JYOR6X2wcitCZZp7AsKWa4QS0kxlM7+ccePz2 + YKNUy8d8nRsj07pYI0Pqj7eh3XyD4QS6J7IZ3ZQUqvsP1+d0b8a81x5MbvdWLOoTGdvNidA2JmE4Ac14 + NsmhV8ig0nCkPlPjjlldXswjjSfm9wQbVWPJoBxNgBcjd7gB7UQZvBqXQdenQijRH6tP79yG91/uZO51 + etNLQoytI6nw/EMS/UTODUzODUP7WDG0maVQ1HeyLlm9A9M6BEyq2odesn+g2ZQGT4cfwI9fs9zA1Ow7 + uxZTrmeV4VpgluaoKq51N0qUfsxdpQDT1aEjCkNMYO2AxHfu51cbTqBp8OGlFFX4UrwyDG+1BGHsM/9V + bjaLMEF5ACWtodg0mCniBL7Mm3lV+sT4qJrtGN0QgJcbhKtEkwu1uzBNdap09ve0PSfQ/14HmtEmkBsS + 4yIrBShWBKC4SrhMIcRIhR+md5wtruhJgmZ148q9fwN9blv4cDFGDCl1V2JPlgViRKEQIwqEeEIuwqvV + pwvE14/DJnc+O8sJ2AHY0Lo9cXB2cLLdJxamHMoLwnBpMIac31PC42207jmS9dazawXsiCvxo1IwHfR1 + 8eCdcfXmn6PZn9b20p6QeFnPrhWwsicbiJMtWV4CW5odaXAmDmQd+fsChD+4WS+MAxa1eQAAAABJRU5E + rkJggg== - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK8gAA - CvIBPVL3EQAAAo1JREFUOE+lkW1IU1EYx5+lbi0jKk2EDKlMJ5eZEFlRyKBUwg/lB3sBSYllRC218K3A - ptvSSpfMtKRIU0vzSviCuU0xnXozKVNn06lzTklJ+yDCwA+yp7ObDeUaBB34cd7+53cezgFEhP/BdXje - PgqfZ19C3/diMM2/hqlFLbSMx117Z4rK+PbjBb/blgXvx2XQbcsHx5pLNxSYf9LQO3M/rvzrMXtZ/2FH - m0WWzszk/Jugf/Y5dE7J4572Uajp9SZ4YUmfCBtHE+S6iaS/V7BgH4OBuUrQjafFF30KwYIeX1QzfiwF - jC8RUVhtjM1hph+vezPXZMFu3tw2qZKqmYOY1+WHD7v91/GArOX3UNgwmqR0OFZ4fx7eJWi1qC7n94Sh - /MNuVHTuRVXnflSu8nu8D7M79qDKIEL9hCKEI5he/CJsMt8JrRxMiFR/lBiy2gOILIjlXvsBzO06ZK0Y - uBRJm26GLy7PenAEc0tD0G5VQ6tFA4XM2ZrUlgDM0AWzpGuDUNFxfLBhJBv0ljxYXllyVe4aGKxVoDUX - g36sFPI6ztA3GgIxqYlikTUG413dCSNtVABtzAHGVssVaCefQfNYCTSbSiFbH0NLa0V4tU7McoWm8HZT - uPFNvwqqh5TwdkTJFUgzz0EBnQlaSwWk1sfQsWUivPhKzHK+nMLEGiIYegS5dclwJELMFQBpAgEf0tTX - IaX+Ql2URoTRxWKW00UUxledHE59kgjCLQJnlCtwA+DxANw3Ac/jVObRWklRKEoKV9GEYoQqbJjv5i4g - GYEzy/kFsuhG8CKBQOFWvsQnZGeyN7XdSYqPeMetbbs8o8leMMn4O7MbCYBsuBOEJOhBqiTdOpwXeBL4 - ayv4Ba5+NdG8cgGAAAAAAElFTkSuQmCC + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAryAAAK8gE9UvcRAAACgklE + QVQ4T6WOa0iTURjHn6VuLSMqTYQMqUwnL7NBZEUhg1IJP5Qf7AKSEmZEmVrMS4Gp29LKLdmaJUWalzRf + CS+Y2xLz+mZSps7mps4rKVkfRBD8IHs675sM7DUKOvDjPOec//M7DyDif+Eq5pds8HH2OfR+NYB1vhIm + F4zQPBp75bU1MuPLt2fCrqkseDOaBF1TBeD8m8D+g4aembuxpZ+PLJX0HXS2OJLSmZncfxP0zT6F9sns + 2Me9FOp6vAleWNQrwQZbfLZpLPnPgu9LI9A/Vw6m0bQ4/YcQ1HT7opbx49AwvkREYZUlJpeZfujq+U1g + 39gyrk7QMvsxv9MP73f5r+EeuSvoprDelqxyOlcEPMFbh/piQXcoZr/bicr23ahu34uqVX7VezCnbReq + OyRoHlOG8ATTC5/EjfZbsvKB+Ajte3lHVmsAkQVx3Gndh3mdBybK+i9E0NbrYQvLsx48wdziILROaMkk + OihkTlcrmgMwwxTMkW4MQmXb0YH64RwwO/JheWXR1ecqOiYqwGg3gHmkGPLbTtHX6gMxuZHiSGoIxtum + YxbaogTakgvMVA1fYBx/Ak0jRdBkLYYcczSdUCPBy7VSjks0hTcbwywv+9RQNaiCV8MqviAh8wxo6Eww + OspAURdNx5RI8PwLKcfZUgoTq4lg8AHk1abAoXApX8AukUgIadqrkFp3rjZSJ8Eog5TjpJ7CuIrjQ4pH + iSDeJOKyPIEbgEAA4L4BBB4nMg/XyPUylBeuopNhuDp0SOjmLiIZEZtdT+BG8CKBQPFmodwnZHuKN7WV + JdVHuu3Glh2eUeQtmGT82ex6AhZ3gpgEPciRbGtgP/AkCAmrEyD8BK5+NdGVjkx7AAAAAElFTkSuQmCC \ No newline at end of file diff --git a/Addons/scraper.EmberCore/frmMediaSettingsHolder.vb b/Addons/scraper.EmberCore/frmMediaSettingsHolder.vb index eb04560..fbcbe68 100644 --- a/Addons/scraper.EmberCore/frmMediaSettingsHolder.vb +++ b/Addons/scraper.EmberCore/frmMediaSettingsHolder.vb @@ -59,14 +59,14 @@ Public Class frmMediaSettingsHolder Sub CheckTrailer() Me.txtTimeout.Enabled = Me.chkDownloadTrailer.Checked - Me.chkTrailerIMDB.Enabled = Me.chkDownloadTrailer.Checked Me.chkTrailerTMDB.Enabled = Me.chkDownloadTrailer.Checked - Me.chkTrailerTMDBXBMC.Enabled = Me.chkDownloadTrailer.Checked + Me.chkTrailerTMDBXBMC.Enabled = Me.chkTrailerTMDB.Checked + Me.chkTrailerIMDB.Enabled = Me.chkDownloadTrailer.Checked If Not Me.chkDownloadTrailer.Checked Then Me.txtTimeout.Text = "2" Me.chkTrailerTMDB.Checked = False - Me.chkTrailerIMDB.Checked = False Me.chkTrailerTMDBXBMC.Checked = False + Me.chkTrailerIMDB.Checked = False End If End Sub @@ -78,6 +78,9 @@ Public Class frmMediaSettingsHolder Private Sub chkTrailerTMDB_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkTrailerTMDB.CheckedChanged chkTrailerTMDBXBMC.Enabled = chkTrailerTMDB.Checked cbTrailerTMDBPref.Enabled = chkTrailerTMDB.Checked + If Not Me.chkTrailerTMDB.Checked Then + Me.chkTrailerTMDBXBMC.Checked = False + End If RaiseEvent ModuleSettingsChanged() End Sub @@ -91,7 +94,7 @@ Public Class frmMediaSettingsHolder Private Sub chkScrapeFanart_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkScrapeFanart.CheckedChanged RaiseEvent ModuleSettingsChanged() - grpSaveFanart.Enabled = chkScrapeFanart.Checked + gbSaveFanartIn.Enabled = chkScrapeFanart.Checked End Sub Private Sub chkScrapePoster_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkScrapePoster.CheckedChanged @@ -123,25 +126,24 @@ Public Class frmMediaSettingsHolder End Sub Sub SetUp() - Me.txtTimeout.Text = Master.eSettings.TrailerTimeout.ToString - Me.Label23.Text = Master.eLang.GetString(7, "Timeout:") - Me.GroupBox2.Text = Master.eLang.GetString(8, "Supported Sites:") - Me.GroupBox9.Text = Master.eLang.GetString(9, "Get Images From:") - Me.grpSaveFanart.Text = Master.eLang.GetString(8001, "Save Fanart In:") - Me.chkDownloadTrailer.Text = Master.eLang.GetString(529, "Enable Trailer Support", True) - Me.Label3.Text = Master.eLang.GetString(168, "Scrape Order", True) Me.cbEnabled.Text = Master.eLang.GetString(774, "Enabled", True) - Me.chkScrapePoster.Text = Master.eLang.GetString(101, "Get Posters") + Me.chkDownloadTrailer.Text = Master.eLang.GetString(529, "Enable Trailer Support", True) Me.chkScrapeFanart.Text = Master.eLang.GetString(102, "Get Fanart") - Me.Label1.Text = String.Format(Master.eLang.GetString(103, "These settings are specific to this module.{0}Please refer to the global settings for more options."), vbCrLf) - Me.GroupBox3.Text = Master.eLang.GetString(467, "Images", True) - Me.GroupBox4.Text = Master.eLang.GetString(108, "TMDB Extrathumbs Size:") - Me.GroupBox1.Text = Master.eLang.GetString(109, "Trailers") - Me.GroupBox5.Text = Master.eLang.GetString(110, "Youtube/TMDB Trailer:") - Me.chkTrailerTMDBXBMC.Text = Master.eLang.GetString(111, "XBMC Format") - Me.Label2.Text = Master.eLang.GetString(112, "Preferred language") - Me.grpSaveFanart.Text = Master.eLang.GetString(113, "Save Fanart In:") - End Sub + Me.chkScrapePoster.Text = Master.eLang.GetString(101, "Get Posters") + Me.chkTrailerTMDBXBMC.Text = Master.eLang.GetString(111, "XBMC Format") + Me.gbExtrathumbsSize.Text = Master.eLang.GetString(108, "TMDB Extrathumbs Size:") + Me.gbImages.Text = Master.eLang.GetString(497, "Images", True) + Me.gbSaveFanartIn.Text = Master.eLang.GetString(113, "Save Fanart In:") + Me.gbSupportedSites.Text = Master.eLang.GetString(8, "Supported Sites:") + Me.gbTrailers.Text = Master.eLang.GetString(109, "Trailers") + Me.gbGetImages.Text = Master.eLang.GetString(9, "Get Images From:") + Me.gbYouTubeTrailer.Text = Master.eLang.GetString(110, "Youtube/TMDB Trailer:") + Me.lblInfo.Text = String.Format(Master.eLang.GetString(103, "These settings are specific to this module.{0}Please refer to the global settings for more options."), vbCrLf) + Me.lblPrefLanguage.Text = Master.eLang.GetString(112, "Preferred language") + Me.lblScraperOrder.Text = Master.eLang.GetString(168, "Scrape Order", True) + Me.lblTimeout.Text = Master.eLang.GetString(7, "Timeout:") + Me.txtTimeout.Text = Master.eSettings.TrailerTimeout.ToString + End Sub Private Sub txtTimeout_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtTimeout.TextChanged RaiseEvent ModuleSettingsChanged() @@ -159,6 +161,10 @@ Public Class frmMediaSettingsHolder RaiseEvent ModuleSettingsChanged() End Sub + Private Sub cbActorThumbsSize_SelectedIndexChanged(ByVal sender As System.Object, e As System.EventArgs) Handles cbActorThumbsSize.SelectedIndexChanged + RaiseEvent ModuleSettingsChanged() + End Sub + Private Sub cbTrailerTMDBPref_SelectedIndexChanged(ByVal sender As System.Object, e As System.EventArgs) Handles cbTrailerTMDBPref.SelectedIndexChanged RaiseEvent ModuleSettingsChanged() End Sub diff --git a/Addons/scraper.EmberCore/scraper.EmberCore.vbproj b/Addons/scraper.EmberCore/scraper.EmberCore.vbproj index 675af3e..c1c0154 100644 --- a/Addons/scraper.EmberCore/scraper.EmberCore.vbproj +++ b/Addons/scraper.EmberCore/scraper.EmberCore.vbproj @@ -298,15 +298,45 @@ + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + PreserveNewest PreserveNewest - - - + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + Always diff --git a/Addons/scraper.EmberCore/scraperMovieNativeModule.vb b/Addons/scraper.EmberCore/scraperMovieNativeModule.vb index 8385e57..358521f 100644 --- a/Addons/scraper.EmberCore/scraperMovieNativeModule.vb +++ b/Addons/scraper.EmberCore/scraperMovieNativeModule.vb @@ -61,7 +61,9 @@ Public Class EmberNativeScraperModule Public Event SetupPostScraperChanged(ByVal name As String, ByVal State As Boolean, ByVal difforder As Integer) Implements Interfaces.EmberMovieScraperModule.PostScraperSetupChanged - Public Event SetupScraperChanged(ByVal name As String, ByVal State As Boolean, ByVal difforder As Integer) Implements Interfaces.EmberMovieScraperModule.ScraperSetupChanged + Public Event SetupScraperChanged(ByVal name As String, ByVal State As Boolean, ByVal difforder As Integer) Implements Interfaces.EmberMovieScraperModule.ScraperSetupChanged + + Public Event SetupNeedsRestart() Implements Interfaces.EmberMovieScraperModule.SetupNeedsRestart #End Region 'Events @@ -181,6 +183,7 @@ Public Class EmberNativeScraperModule _setupPost.chkUseIMPA.Checked = MySettings.UseIMPA _setupPost.chkUseMPDB.Checked = MySettings.UseMPDB _setupPost.cbManualETSize.Text = MySettings.ManualETSize + _setupPost.cbActorThumbsSize.Text = MySettings.ActorThumbsSize _setupPost.txtTimeout.Text = MySettings.TrailerTimeout.ToString _setupPost.chkDownloadTrailer.Checked = MySettings.DownloadTrailers _setupPost.CheckTrailer() @@ -292,6 +295,7 @@ Public Class EmberNativeScraperModule MySettings.UseTMDBTrailer = AdvancedSettings.GetBooleanSetting("UseTMDBTrailer", True) MySettings.UseTMDBTrailerXBMC = AdvancedSettings.GetBooleanSetting("UseTMDBTrailerXBMC", False) MySettings.ManualETSize = Convert.ToString(AdvancedSettings.GetSetting("ManualETSize", "thumb")) + MySettings.ActorThumbsSize = Convert.ToString(AdvancedSettings.GetSetting("ActorThumbsSize", "SY275_SX400")) MySettings.UseTMDBTrailerPref = Convert.ToString(AdvancedSettings.GetSetting("UseTMDBTrailerPref", "en")) ConfigScrapeModifier.DoSearch = True @@ -410,11 +414,13 @@ Public Class EmberNativeScraperModule End Try End If End If - If Master.GlobalScrapeMod.Actors AndAlso AdvancedSettings.GetBooleanSetting("ScrapeActorsThumbs", False) Then + If Master.GlobalScrapeMod.Actors AndAlso Master.eSettings.ScraperActorThumbs Then For Each act As MediaContainers.Person In DBMovie.Movie.Actors Dim img As New Images img.FromWeb(act.Thumb) - img.SaveAsActorThumb(act, Directory.GetParent(DBMovie.Filename).FullName) + If Not IsNothing(img.Image) Then + img.SaveAsActorThumb(act, Directory.GetParent(DBMovie.Filename).FullName, DBMovie) + End If Next End If Master.GlobalScrapeMod = saveModifier @@ -465,6 +471,7 @@ Public Class EmberNativeScraperModule AdvancedSettings.SetBooleanSetting("UseTMDBTrailerXBMC", MySettings.UseTMDBTrailerXBMC) AdvancedSettings.SetSetting("ManualETSize", MySettings.ManualETSize.ToString) + AdvancedSettings.SetSetting("ActorThumbsSize", MySettings.ActorThumbsSize.ToString) AdvancedSettings.SetSetting("UseTMDBTrailerPref", MySettings.UseTMDBTrailerPref.ToString) AdvancedSettings.SetBooleanSetting("DoPoster", ConfigScrapeModifier.Poster) @@ -482,6 +489,7 @@ Public Class EmberNativeScraperModule MySettings.UseIMPA = _setupPost.chkUseIMPA.Checked MySettings.UseMPDB = _setupPost.chkUseMPDB.Checked MySettings.ManualETSize = _setupPost.cbManualETSize.Text + MySettings.ActorThumbsSize = _setupPost.cbActorThumbsSize.Text MySettings.UseTMDBTrailerPref = _setupPost.cbTrailerTMDBPref.Text ConfigScrapeModifier.Poster = _setupPost.chkScrapePoster.Checked ConfigScrapeModifier.Fanart = _setupPost.chkScrapeFanart.Checked @@ -587,7 +595,7 @@ Public Class EmberNativeScraperModule End If End If Dim filterOptions As Structures.ScrapeOptions = Functions.ScrapeOptionsAndAlso(Options, ConfigOptions) - If dSearch.ShowDialog(tmpTitle, filterOptions) = Windows.Forms.DialogResult.OK Then + If dSearch.ShowDialog(tmpTitle, filterOptions, DBMovie.Filename) = Windows.Forms.DialogResult.OK Then If Not String.IsNullOrEmpty(Master.tmpMovie.IMDBID) Then DBMovie.Movie.IMDBID = Master.tmpMovie.IMDBID End If @@ -683,6 +691,7 @@ Public Class EmberNativeScraperModule Dim UseIMDBTrailer As Boolean Dim UseTMDBTrailerXBMC As Boolean Dim ManualETSize As String + Dim ActorThumbsSize As String Dim UseTMDBTrailerPref As String #End Region 'Fields diff --git a/Addons/scraper.EmberCore/scraperTVNativeModule.vb b/Addons/scraper.EmberCore/scraperTVNativeModule.vb index 028ed1d..bf7a26a 100644 --- a/Addons/scraper.EmberCore/scraperTVNativeModule.vb +++ b/Addons/scraper.EmberCore/scraperTVNativeModule.vb @@ -124,10 +124,10 @@ Public Class EmberNativeTVScraperModule Return New Interfaces.ModuleResult With {.breakChain = False} End Function - Public Function GetSingleImage(ByVal Title As String, ByVal ShowID As Integer, ByVal TVDBID As String, ByVal Type As Enums.TVImageType, ByVal Season As Integer, ByVal Episode As Integer, ByVal Lang As String, ByVal Ordering As Enums.Ordering, ByVal CurrentImage As Image, ByRef Image As Image) As Interfaces.ModuleResult Implements Interfaces.EmberTVScraperModule.GetSingleImage - Image = TVScraper.GetSingleImage(Title, ShowID, TVDBID, Type, Season, Episode, Lang, Ordering, CurrentImage) - Return New Interfaces.ModuleResult With {.breakChain = True} - End Function + Public Function GetSingleImage(ByVal Title As String, ByVal ShowID As Integer, ByVal TVDBID As String, ByVal Type As Enums.TVImageType, ByVal Season As Integer, ByVal Episode As Integer, ByVal Lang As String, ByVal Ordering As Enums.Ordering, ByVal CurrentImage As Images, ByRef Image As Images) As Interfaces.ModuleResult Implements Interfaces.EmberTVScraperModule.GetSingleImage + TVScraper.GetSingleImage(Title, ShowID, TVDBID, Type, Season, Episode, Lang, Ordering, CurrentImage, Image) + Return New Interfaces.ModuleResult With {.breakChain = True} + End Function Public Sub Handler_ScraperEvent(ByVal eType As Enums.TVScraperEventType, ByVal iProgress As Integer, ByVal Parameter As Object) RaiseEvent TVScraperEvent(eType, iProgress, Parameter) diff --git a/Ember Media Manager.sln b/Ember Media Manager.sln index bfd1c7b..f01abee 100644 --- a/Ember Media Manager.sln +++ b/Ember Media Manager.sln @@ -7,13 +7,16 @@ Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Ember Media Manager", "Embe {EF6A550E-DD76-4F4D-8250-8598140F828B} = {EF6A550E-DD76-4F4D-8250-8598140F828B} {2A08A524-88DA-432F-92E6-8DC63C5376DA} = {2A08A524-88DA-432F-92E6-8DC63C5376DA} {E567C031-1F7B-4637-9B3A-806988DE50CF} = {E567C031-1F7B-4637-9B3A-806988DE50CF} - {64D6F035-F186-4193-AF35-D20126B8DA64} = {64D6F035-F186-4193-AF35-D20126B8DA64} {84B2143A-D04F-4262-923D-21AEDF86E2B7} = {84B2143A-D04F-4262-923D-21AEDF86E2B7} + {EFC11645-FAB4-4C30-A498-29F5ECDF77E8} = {EFC11645-FAB4-4C30-A498-29F5ECDF77E8} + {8DAFAF56-AD78-4B47-866F-E8179511AF5B} = {8DAFAF56-AD78-4B47-866F-E8179511AF5B} {6FE33C61-E2C2-4982-9536-63AEF0A98AAA} = {6FE33C61-E2C2-4982-9536-63AEF0A98AAA} {859C1085-518B-49D2-9C84-D91C4094097F} = {859C1085-518B-49D2-9C84-D91C4094097F} {F6CACA89-E8E4-45D9-B942-97FBD4ADD106} = {F6CACA89-E8E4-45D9-B942-97FBD4ADD106} + {2EB03DAA-1A5D-47C5-9883-56DCD0F70D23} = {2EB03DAA-1A5D-47C5-9883-56DCD0F70D23} {B413DEAF-4FDC-416A-B3E0-968C1C8F3F83} = {B413DEAF-4FDC-416A-B3E0-968C1C8F3F83} {B0BDF9C2-EB9C-4090-B9A9-B703DF00CCEF} = {B0BDF9C2-EB9C-4090-B9A9-B703DF00CCEF} + {70F651C6-6BB4-4E4D-AD6C-25C36CA1E9E6} = {70F651C6-6BB4-4E4D-AD6C-25C36CA1E9E6} {E7FDD1C9-BCF7-4624-B033-D3888E422A8B} = {E7FDD1C9-BCF7-4624-B033-D3888E422A8B} {62356BCF-D15A-4BF1-B980-395CEC0004A9} = {62356BCF-D15A-4BF1-B980-395CEC0004A9} EndProjectSection @@ -48,79 +51,221 @@ Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "scraper.EmberCore", "Addons EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "scraper.EmberCore.XML", "Addons\scraper.EmberCore.XML\scraper.EmberCore.XML.vbproj", "{E567C031-1F7B-4637-9B3A-806988DE50CF}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{8564C91B-7F49-482F-A4B3-C3D7E818648F}" - ProjectSection(SolutionItems) = preProject - .nuget\NuGet.Config = .nuget\NuGet.Config - .nuget\NuGet.exe = .nuget\NuGet.exe - .nuget\NuGet.targets = .nuget\NuGet.targets +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "scraper.EmberCore.TMDB", "Addons\scraper.EmberCore.TMDB\scraper.EmberCore.TMDB.vbproj", "{2EB03DAA-1A5D-47C5-9883-56DCD0F70D23}" + ProjectSection(ProjectDependencies) = postProject + {EFC11645-FAB4-4C30-A498-29F5ECDF77E8} = {EFC11645-FAB4-4C30-A498-29F5ECDF77E8} EndProjectSection EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WatTmdb", "WatTmdb\WatTmdb.csproj", "{EFC11645-FAB4-4C30-A498-29F5ECDF77E8}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FanartTVAPI", "FanartTVAPI\FanartTVAPI.csproj", "{70F651C6-6BB4-4E4D-AD6C-25C36CA1E9E6}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RottenTomatoesAPI", "RottenTomatoesAPI\RottenTomatoesAPI.csproj", "{8DAFAF56-AD78-4B47-866F-E8179511AF5B}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Removed", "Removed", "{620861D6-4C88-4A5F-B3D5-C1D45468D16F}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|Mixed Platforms = Debug|Mixed Platforms Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|Mixed Platforms = Release|Mixed Platforms Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution + {9B57D3AB-AF12-4012-B945-284C2448DC81}.Debug|Any CPU.ActiveCfg = Debug|x86 + {9B57D3AB-AF12-4012-B945-284C2448DC81}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {9B57D3AB-AF12-4012-B945-284C2448DC81}.Debug|Mixed Platforms.Build.0 = Debug|x86 {9B57D3AB-AF12-4012-B945-284C2448DC81}.Debug|x86.ActiveCfg = Debug|x86 {9B57D3AB-AF12-4012-B945-284C2448DC81}.Debug|x86.Build.0 = Debug|x86 + {9B57D3AB-AF12-4012-B945-284C2448DC81}.Release|Any CPU.ActiveCfg = Release|x86 + {9B57D3AB-AF12-4012-B945-284C2448DC81}.Release|Mixed Platforms.ActiveCfg = Release|x86 + {9B57D3AB-AF12-4012-B945-284C2448DC81}.Release|Mixed Platforms.Build.0 = Release|x86 {9B57D3AB-AF12-4012-B945-284C2448DC81}.Release|x86.ActiveCfg = Release|x86 {9B57D3AB-AF12-4012-B945-284C2448DC81}.Release|x86.Build.0 = Release|x86 + {208AA35E-C6AE-4D2D-A9DD-B6EFD19A4279}.Debug|Any CPU.ActiveCfg = Debug|x86 + {208AA35E-C6AE-4D2D-A9DD-B6EFD19A4279}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {208AA35E-C6AE-4D2D-A9DD-B6EFD19A4279}.Debug|Mixed Platforms.Build.0 = Debug|x86 {208AA35E-C6AE-4D2D-A9DD-B6EFD19A4279}.Debug|x86.ActiveCfg = Debug|x86 {208AA35E-C6AE-4D2D-A9DD-B6EFD19A4279}.Debug|x86.Build.0 = Debug|x86 + {208AA35E-C6AE-4D2D-A9DD-B6EFD19A4279}.Release|Any CPU.ActiveCfg = Release|x86 + {208AA35E-C6AE-4D2D-A9DD-B6EFD19A4279}.Release|Mixed Platforms.ActiveCfg = Release|x86 + {208AA35E-C6AE-4D2D-A9DD-B6EFD19A4279}.Release|Mixed Platforms.Build.0 = Release|x86 {208AA35E-C6AE-4D2D-A9DD-B6EFD19A4279}.Release|x86.ActiveCfg = Release|x86 {208AA35E-C6AE-4D2D-A9DD-B6EFD19A4279}.Release|x86.Build.0 = Release|x86 + {EAAB0601-6478-44D2-A39C-89B0850D7833}.Debug|Any CPU.ActiveCfg = Debug|x86 + {EAAB0601-6478-44D2-A39C-89B0850D7833}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {EAAB0601-6478-44D2-A39C-89B0850D7833}.Debug|Mixed Platforms.Build.0 = Debug|x86 {EAAB0601-6478-44D2-A39C-89B0850D7833}.Debug|x86.ActiveCfg = Debug|x86 {EAAB0601-6478-44D2-A39C-89B0850D7833}.Debug|x86.Build.0 = Debug|x86 + {EAAB0601-6478-44D2-A39C-89B0850D7833}.Release|Any CPU.ActiveCfg = Release|x86 + {EAAB0601-6478-44D2-A39C-89B0850D7833}.Release|Mixed Platforms.ActiveCfg = Release|x86 + {EAAB0601-6478-44D2-A39C-89B0850D7833}.Release|Mixed Platforms.Build.0 = Release|x86 {EAAB0601-6478-44D2-A39C-89B0850D7833}.Release|x86.ActiveCfg = Release|x86 {EAAB0601-6478-44D2-A39C-89B0850D7833}.Release|x86.Build.0 = Release|x86 + {B413DEAF-4FDC-416A-B3E0-968C1C8F3F83}.Debug|Any CPU.ActiveCfg = Debug|x86 + {B413DEAF-4FDC-416A-B3E0-968C1C8F3F83}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {B413DEAF-4FDC-416A-B3E0-968C1C8F3F83}.Debug|Mixed Platforms.Build.0 = Debug|x86 {B413DEAF-4FDC-416A-B3E0-968C1C8F3F83}.Debug|x86.ActiveCfg = Debug|x86 {B413DEAF-4FDC-416A-B3E0-968C1C8F3F83}.Debug|x86.Build.0 = Debug|x86 + {B413DEAF-4FDC-416A-B3E0-968C1C8F3F83}.Release|Any CPU.ActiveCfg = Release|x86 + {B413DEAF-4FDC-416A-B3E0-968C1C8F3F83}.Release|Mixed Platforms.ActiveCfg = Release|x86 + {B413DEAF-4FDC-416A-B3E0-968C1C8F3F83}.Release|Mixed Platforms.Build.0 = Release|x86 {B413DEAF-4FDC-416A-B3E0-968C1C8F3F83}.Release|x86.ActiveCfg = Release|x86 {B413DEAF-4FDC-416A-B3E0-968C1C8F3F83}.Release|x86.Build.0 = Release|x86 + {F6CACA89-E8E4-45D9-B942-97FBD4ADD106}.Debug|Any CPU.ActiveCfg = Debug|x86 + {F6CACA89-E8E4-45D9-B942-97FBD4ADD106}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {F6CACA89-E8E4-45D9-B942-97FBD4ADD106}.Debug|Mixed Platforms.Build.0 = Debug|x86 {F6CACA89-E8E4-45D9-B942-97FBD4ADD106}.Debug|x86.ActiveCfg = Debug|x86 {F6CACA89-E8E4-45D9-B942-97FBD4ADD106}.Debug|x86.Build.0 = Debug|x86 + {F6CACA89-E8E4-45D9-B942-97FBD4ADD106}.Release|Any CPU.ActiveCfg = Release|x86 + {F6CACA89-E8E4-45D9-B942-97FBD4ADD106}.Release|Mixed Platforms.ActiveCfg = Release|x86 + {F6CACA89-E8E4-45D9-B942-97FBD4ADD106}.Release|Mixed Platforms.Build.0 = Release|x86 {F6CACA89-E8E4-45D9-B942-97FBD4ADD106}.Release|x86.ActiveCfg = Release|x86 {F6CACA89-E8E4-45D9-B942-97FBD4ADD106}.Release|x86.Build.0 = Release|x86 + {B0BDF9C2-EB9C-4090-B9A9-B703DF00CCEF}.Debug|Any CPU.ActiveCfg = Debug|x86 + {B0BDF9C2-EB9C-4090-B9A9-B703DF00CCEF}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {B0BDF9C2-EB9C-4090-B9A9-B703DF00CCEF}.Debug|Mixed Platforms.Build.0 = Debug|x86 {B0BDF9C2-EB9C-4090-B9A9-B703DF00CCEF}.Debug|x86.ActiveCfg = Debug|x86 {B0BDF9C2-EB9C-4090-B9A9-B703DF00CCEF}.Debug|x86.Build.0 = Debug|x86 + {B0BDF9C2-EB9C-4090-B9A9-B703DF00CCEF}.Release|Any CPU.ActiveCfg = Release|x86 + {B0BDF9C2-EB9C-4090-B9A9-B703DF00CCEF}.Release|Mixed Platforms.ActiveCfg = Release|x86 + {B0BDF9C2-EB9C-4090-B9A9-B703DF00CCEF}.Release|Mixed Platforms.Build.0 = Release|x86 {B0BDF9C2-EB9C-4090-B9A9-B703DF00CCEF}.Release|x86.ActiveCfg = Release|x86 {B0BDF9C2-EB9C-4090-B9A9-B703DF00CCEF}.Release|x86.Build.0 = Release|x86 + {84B2143A-D04F-4262-923D-21AEDF86E2B7}.Debug|Any CPU.ActiveCfg = Debug|x86 + {84B2143A-D04F-4262-923D-21AEDF86E2B7}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {84B2143A-D04F-4262-923D-21AEDF86E2B7}.Debug|Mixed Platforms.Build.0 = Debug|x86 {84B2143A-D04F-4262-923D-21AEDF86E2B7}.Debug|x86.ActiveCfg = Debug|x86 {84B2143A-D04F-4262-923D-21AEDF86E2B7}.Debug|x86.Build.0 = Debug|x86 + {84B2143A-D04F-4262-923D-21AEDF86E2B7}.Release|Any CPU.ActiveCfg = Release|x86 + {84B2143A-D04F-4262-923D-21AEDF86E2B7}.Release|Mixed Platforms.ActiveCfg = Release|x86 + {84B2143A-D04F-4262-923D-21AEDF86E2B7}.Release|Mixed Platforms.Build.0 = Release|x86 {84B2143A-D04F-4262-923D-21AEDF86E2B7}.Release|x86.ActiveCfg = Release|x86 {84B2143A-D04F-4262-923D-21AEDF86E2B7}.Release|x86.Build.0 = Release|x86 + {2A08A524-88DA-432F-92E6-8DC63C5376DA}.Debug|Any CPU.ActiveCfg = Debug|x86 + {2A08A524-88DA-432F-92E6-8DC63C5376DA}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {2A08A524-88DA-432F-92E6-8DC63C5376DA}.Debug|Mixed Platforms.Build.0 = Debug|x86 {2A08A524-88DA-432F-92E6-8DC63C5376DA}.Debug|x86.ActiveCfg = Debug|x86 {2A08A524-88DA-432F-92E6-8DC63C5376DA}.Debug|x86.Build.0 = Debug|x86 + {2A08A524-88DA-432F-92E6-8DC63C5376DA}.Release|Any CPU.ActiveCfg = Release|x86 + {2A08A524-88DA-432F-92E6-8DC63C5376DA}.Release|Mixed Platforms.ActiveCfg = Release|x86 + {2A08A524-88DA-432F-92E6-8DC63C5376DA}.Release|Mixed Platforms.Build.0 = Release|x86 {2A08A524-88DA-432F-92E6-8DC63C5376DA}.Release|x86.ActiveCfg = Release|x86 {2A08A524-88DA-432F-92E6-8DC63C5376DA}.Release|x86.Build.0 = Release|x86 + {E7FDD1C9-BCF7-4624-B033-D3888E422A8B}.Debug|Any CPU.ActiveCfg = Debug|x86 + {E7FDD1C9-BCF7-4624-B033-D3888E422A8B}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {E7FDD1C9-BCF7-4624-B033-D3888E422A8B}.Debug|Mixed Platforms.Build.0 = Debug|x86 {E7FDD1C9-BCF7-4624-B033-D3888E422A8B}.Debug|x86.ActiveCfg = Debug|x86 {E7FDD1C9-BCF7-4624-B033-D3888E422A8B}.Debug|x86.Build.0 = Debug|x86 + {E7FDD1C9-BCF7-4624-B033-D3888E422A8B}.Release|Any CPU.ActiveCfg = Release|x86 + {E7FDD1C9-BCF7-4624-B033-D3888E422A8B}.Release|Mixed Platforms.ActiveCfg = Release|x86 + {E7FDD1C9-BCF7-4624-B033-D3888E422A8B}.Release|Mixed Platforms.Build.0 = Release|x86 {E7FDD1C9-BCF7-4624-B033-D3888E422A8B}.Release|x86.ActiveCfg = Release|x86 {E7FDD1C9-BCF7-4624-B033-D3888E422A8B}.Release|x86.Build.0 = Release|x86 + {64D6F035-F186-4193-AF35-D20126B8DA64}.Debug|Any CPU.ActiveCfg = Debug|x86 + {64D6F035-F186-4193-AF35-D20126B8DA64}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 {64D6F035-F186-4193-AF35-D20126B8DA64}.Debug|x86.ActiveCfg = Debug|x86 - {64D6F035-F186-4193-AF35-D20126B8DA64}.Debug|x86.Build.0 = Debug|x86 + {64D6F035-F186-4193-AF35-D20126B8DA64}.Release|Any CPU.ActiveCfg = Release|x86 + {64D6F035-F186-4193-AF35-D20126B8DA64}.Release|Mixed Platforms.ActiveCfg = Release|x86 {64D6F035-F186-4193-AF35-D20126B8DA64}.Release|x86.ActiveCfg = Release|x86 - {64D6F035-F186-4193-AF35-D20126B8DA64}.Release|x86.Build.0 = Release|x86 + {6FE33C61-E2C2-4982-9536-63AEF0A98AAA}.Debug|Any CPU.ActiveCfg = Debug|x86 + {6FE33C61-E2C2-4982-9536-63AEF0A98AAA}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {6FE33C61-E2C2-4982-9536-63AEF0A98AAA}.Debug|Mixed Platforms.Build.0 = Debug|x86 {6FE33C61-E2C2-4982-9536-63AEF0A98AAA}.Debug|x86.ActiveCfg = Debug|x86 {6FE33C61-E2C2-4982-9536-63AEF0A98AAA}.Debug|x86.Build.0 = Debug|x86 + {6FE33C61-E2C2-4982-9536-63AEF0A98AAA}.Release|Any CPU.ActiveCfg = Release|x86 + {6FE33C61-E2C2-4982-9536-63AEF0A98AAA}.Release|Mixed Platforms.ActiveCfg = Release|x86 + {6FE33C61-E2C2-4982-9536-63AEF0A98AAA}.Release|Mixed Platforms.Build.0 = Release|x86 {6FE33C61-E2C2-4982-9536-63AEF0A98AAA}.Release|x86.ActiveCfg = Release|x86 {6FE33C61-E2C2-4982-9536-63AEF0A98AAA}.Release|x86.Build.0 = Release|x86 + {859C1085-518B-49D2-9C84-D91C4094097F}.Debug|Any CPU.ActiveCfg = Debug|x86 + {859C1085-518B-49D2-9C84-D91C4094097F}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {859C1085-518B-49D2-9C84-D91C4094097F}.Debug|Mixed Platforms.Build.0 = Debug|x86 {859C1085-518B-49D2-9C84-D91C4094097F}.Debug|x86.ActiveCfg = Debug|x86 {859C1085-518B-49D2-9C84-D91C4094097F}.Debug|x86.Build.0 = Debug|x86 + {859C1085-518B-49D2-9C84-D91C4094097F}.Release|Any CPU.ActiveCfg = Release|x86 + {859C1085-518B-49D2-9C84-D91C4094097F}.Release|Mixed Platforms.ActiveCfg = Release|x86 + {859C1085-518B-49D2-9C84-D91C4094097F}.Release|Mixed Platforms.Build.0 = Release|x86 {859C1085-518B-49D2-9C84-D91C4094097F}.Release|x86.ActiveCfg = Release|x86 {859C1085-518B-49D2-9C84-D91C4094097F}.Release|x86.Build.0 = Release|x86 + {62356BCF-D15A-4BF1-B980-395CEC0004A9}.Debug|Any CPU.ActiveCfg = Debug|x86 + {62356BCF-D15A-4BF1-B980-395CEC0004A9}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {62356BCF-D15A-4BF1-B980-395CEC0004A9}.Debug|Mixed Platforms.Build.0 = Debug|x86 {62356BCF-D15A-4BF1-B980-395CEC0004A9}.Debug|x86.ActiveCfg = Debug|x86 {62356BCF-D15A-4BF1-B980-395CEC0004A9}.Debug|x86.Build.0 = Debug|x86 + {62356BCF-D15A-4BF1-B980-395CEC0004A9}.Release|Any CPU.ActiveCfg = Release|x86 + {62356BCF-D15A-4BF1-B980-395CEC0004A9}.Release|Mixed Platforms.ActiveCfg = Release|x86 + {62356BCF-D15A-4BF1-B980-395CEC0004A9}.Release|Mixed Platforms.Build.0 = Release|x86 {62356BCF-D15A-4BF1-B980-395CEC0004A9}.Release|x86.ActiveCfg = Release|x86 {62356BCF-D15A-4BF1-B980-395CEC0004A9}.Release|x86.Build.0 = Release|x86 + {EF6A550E-DD76-4F4D-8250-8598140F828B}.Debug|Any CPU.ActiveCfg = Debug|x86 + {EF6A550E-DD76-4F4D-8250-8598140F828B}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {EF6A550E-DD76-4F4D-8250-8598140F828B}.Debug|Mixed Platforms.Build.0 = Debug|x86 {EF6A550E-DD76-4F4D-8250-8598140F828B}.Debug|x86.ActiveCfg = Debug|x86 {EF6A550E-DD76-4F4D-8250-8598140F828B}.Debug|x86.Build.0 = Debug|x86 + {EF6A550E-DD76-4F4D-8250-8598140F828B}.Release|Any CPU.ActiveCfg = Release|x86 + {EF6A550E-DD76-4F4D-8250-8598140F828B}.Release|Mixed Platforms.ActiveCfg = Release|x86 + {EF6A550E-DD76-4F4D-8250-8598140F828B}.Release|Mixed Platforms.Build.0 = Release|x86 {EF6A550E-DD76-4F4D-8250-8598140F828B}.Release|x86.ActiveCfg = Release|x86 {EF6A550E-DD76-4F4D-8250-8598140F828B}.Release|x86.Build.0 = Release|x86 + {E567C031-1F7B-4637-9B3A-806988DE50CF}.Debug|Any CPU.ActiveCfg = Debug|x86 + {E567C031-1F7B-4637-9B3A-806988DE50CF}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {E567C031-1F7B-4637-9B3A-806988DE50CF}.Debug|Mixed Platforms.Build.0 = Debug|x86 {E567C031-1F7B-4637-9B3A-806988DE50CF}.Debug|x86.ActiveCfg = Debug|x86 {E567C031-1F7B-4637-9B3A-806988DE50CF}.Debug|x86.Build.0 = Debug|x86 + {E567C031-1F7B-4637-9B3A-806988DE50CF}.Release|Any CPU.ActiveCfg = Release|x86 + {E567C031-1F7B-4637-9B3A-806988DE50CF}.Release|Mixed Platforms.ActiveCfg = Release|x86 + {E567C031-1F7B-4637-9B3A-806988DE50CF}.Release|Mixed Platforms.Build.0 = Release|x86 {E567C031-1F7B-4637-9B3A-806988DE50CF}.Release|x86.ActiveCfg = Release|x86 {E567C031-1F7B-4637-9B3A-806988DE50CF}.Release|x86.Build.0 = Release|x86 + {2EB03DAA-1A5D-47C5-9883-56DCD0F70D23}.Debug|Any CPU.ActiveCfg = Debug|x86 + {2EB03DAA-1A5D-47C5-9883-56DCD0F70D23}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {2EB03DAA-1A5D-47C5-9883-56DCD0F70D23}.Debug|Mixed Platforms.Build.0 = Debug|x86 + {2EB03DAA-1A5D-47C5-9883-56DCD0F70D23}.Debug|x86.ActiveCfg = Debug|x86 + {2EB03DAA-1A5D-47C5-9883-56DCD0F70D23}.Debug|x86.Build.0 = Debug|x86 + {2EB03DAA-1A5D-47C5-9883-56DCD0F70D23}.Release|Any CPU.ActiveCfg = Release|x86 + {2EB03DAA-1A5D-47C5-9883-56DCD0F70D23}.Release|Mixed Platforms.ActiveCfg = Release|x86 + {2EB03DAA-1A5D-47C5-9883-56DCD0F70D23}.Release|Mixed Platforms.Build.0 = Release|x86 + {2EB03DAA-1A5D-47C5-9883-56DCD0F70D23}.Release|x86.ActiveCfg = Release|x86 + {2EB03DAA-1A5D-47C5-9883-56DCD0F70D23}.Release|x86.Build.0 = Release|x86 + {EFC11645-FAB4-4C30-A498-29F5ECDF77E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EFC11645-FAB4-4C30-A498-29F5ECDF77E8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EFC11645-FAB4-4C30-A498-29F5ECDF77E8}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {EFC11645-FAB4-4C30-A498-29F5ECDF77E8}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {EFC11645-FAB4-4C30-A498-29F5ECDF77E8}.Debug|x86.ActiveCfg = Debug|Any CPU + {EFC11645-FAB4-4C30-A498-29F5ECDF77E8}.Debug|x86.Build.0 = Debug|Any CPU + {EFC11645-FAB4-4C30-A498-29F5ECDF77E8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EFC11645-FAB4-4C30-A498-29F5ECDF77E8}.Release|Any CPU.Build.0 = Release|Any CPU + {EFC11645-FAB4-4C30-A498-29F5ECDF77E8}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {EFC11645-FAB4-4C30-A498-29F5ECDF77E8}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {EFC11645-FAB4-4C30-A498-29F5ECDF77E8}.Release|x86.ActiveCfg = Release|Any CPU + {EFC11645-FAB4-4C30-A498-29F5ECDF77E8}.Release|x86.Build.0 = Release|Any CPU + {70F651C6-6BB4-4E4D-AD6C-25C36CA1E9E6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {70F651C6-6BB4-4E4D-AD6C-25C36CA1E9E6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {70F651C6-6BB4-4E4D-AD6C-25C36CA1E9E6}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {70F651C6-6BB4-4E4D-AD6C-25C36CA1E9E6}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {70F651C6-6BB4-4E4D-AD6C-25C36CA1E9E6}.Debug|x86.ActiveCfg = Debug|Any CPU + {70F651C6-6BB4-4E4D-AD6C-25C36CA1E9E6}.Debug|x86.Build.0 = Debug|Any CPU + {70F651C6-6BB4-4E4D-AD6C-25C36CA1E9E6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {70F651C6-6BB4-4E4D-AD6C-25C36CA1E9E6}.Release|Any CPU.Build.0 = Release|Any CPU + {70F651C6-6BB4-4E4D-AD6C-25C36CA1E9E6}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {70F651C6-6BB4-4E4D-AD6C-25C36CA1E9E6}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {70F651C6-6BB4-4E4D-AD6C-25C36CA1E9E6}.Release|x86.ActiveCfg = Release|Any CPU + {70F651C6-6BB4-4E4D-AD6C-25C36CA1E9E6}.Release|x86.Build.0 = Release|Any CPU + {8DAFAF56-AD78-4B47-866F-E8179511AF5B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8DAFAF56-AD78-4B47-866F-E8179511AF5B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8DAFAF56-AD78-4B47-866F-E8179511AF5B}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {8DAFAF56-AD78-4B47-866F-E8179511AF5B}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {8DAFAF56-AD78-4B47-866F-E8179511AF5B}.Debug|x86.ActiveCfg = Debug|Any CPU + {8DAFAF56-AD78-4B47-866F-E8179511AF5B}.Debug|x86.Build.0 = Debug|Any CPU + {8DAFAF56-AD78-4B47-866F-E8179511AF5B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8DAFAF56-AD78-4B47-866F-E8179511AF5B}.Release|Any CPU.Build.0 = Release|Any CPU + {8DAFAF56-AD78-4B47-866F-E8179511AF5B}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {8DAFAF56-AD78-4B47-866F-E8179511AF5B}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {8DAFAF56-AD78-4B47-866F-E8179511AF5B}.Release|x86.ActiveCfg = Release|Any CPU + {8DAFAF56-AD78-4B47-866F-E8179511AF5B}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -133,11 +278,12 @@ Global {84B2143A-D04F-4262-923D-21AEDF86E2B7} = {4FD2B635-11BD-4532-96F6-97ECB41072A1} {2A08A524-88DA-432F-92E6-8DC63C5376DA} = {4FD2B635-11BD-4532-96F6-97ECB41072A1} {E7FDD1C9-BCF7-4624-B033-D3888E422A8B} = {4FD2B635-11BD-4532-96F6-97ECB41072A1} - {64D6F035-F186-4193-AF35-D20126B8DA64} = {4FD2B635-11BD-4532-96F6-97ECB41072A1} {6FE33C61-E2C2-4982-9536-63AEF0A98AAA} = {4FD2B635-11BD-4532-96F6-97ECB41072A1} {859C1085-518B-49D2-9C84-D91C4094097F} = {4FD2B635-11BD-4532-96F6-97ECB41072A1} {62356BCF-D15A-4BF1-B980-395CEC0004A9} = {4FD2B635-11BD-4532-96F6-97ECB41072A1} {EF6A550E-DD76-4F4D-8250-8598140F828B} = {4FD2B635-11BD-4532-96F6-97ECB41072A1} {E567C031-1F7B-4637-9B3A-806988DE50CF} = {4FD2B635-11BD-4532-96F6-97ECB41072A1} + {2EB03DAA-1A5D-47C5-9883-56DCD0F70D23} = {4FD2B635-11BD-4532-96F6-97ECB41072A1} + {64D6F035-F186-4193-AF35-D20126B8DA64} = {620861D6-4C88-4A5F-B3D5-C1D45468D16F} EndGlobalSection EndGlobal diff --git a/Ember Media Manager/Bin/MediaInfo.dll b/Ember Media Manager/Bin/MediaInfo.dll new file mode 100644 index 0000000..ea8c039 Binary files /dev/null and b/Ember Media Manager/Bin/MediaInfo.dll differ diff --git a/Ember Media Manager/Bin/ffmpeg.exe b/Ember Media Manager/Bin/ffmpeg.exe new file mode 100644 index 0000000..8c60c8e Binary files /dev/null and b/Ember Media Manager/Bin/ffmpeg.exe differ diff --git a/Ember Media Manager/Ember Media Manager.vbproj b/Ember Media Manager/Ember Media Manager.vbproj index 0906a5c..d21db28 100644 --- a/Ember Media Manager/Ember Media Manager.vbproj +++ b/Ember Media Manager/Ember Media Manager.vbproj @@ -66,6 +66,9 @@ ..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll + + ..\packages\RestSharp.104.1\lib\net35\RestSharp.dll + @@ -363,9 +366,9 @@ VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb My.Resources Designer + Resources.Designer.vb @@ -381,7 +384,9 @@ - + + Designer + @@ -472,6 +477,12 @@ + + Always + + + Always + PreserveNewest @@ -481,6 +492,9 @@ PreserveNewest + + PreserveNewest + PreserveNewest @@ -523,6 +537,12 @@ PreserveNewest + + PreserveNewest + + + PreserveNewest + PreserveNewest @@ -4627,11 +4647,21 @@ PreserveNewest + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + PreserveNewest PreserveNewest + Designer PreserveNewest @@ -4648,20 +4678,26 @@ PreserveNewest - - PreserveNewest + + Always + + + Always + + + Always - PreserveNewest + Always - PreserveNewest + Always - PreserveNewest + Always - PreserveNewest + Always PreserveNewest @@ -4762,16 +4798,29 @@ PreserveNewest + + PreserveNewest + + + PreserveNewest + PreserveNewest - + PreserveNewest - + + PreserveNewest + + + PreserveNewest + + PreserveNewest + PreserveNewest @@ -4794,6 +4843,14 @@ {208AA35E-C6AE-4D2D-A9DD-B6EFD19A4279} EmberAPI + + {70F651C6-6BB4-4E4D-AD6C-25C36CA1E9E6} + FanartTVAPI + + + {EFC11645-FAB4-4C30-A498-29F5ECDF77E8} + WatTmdb + diff --git a/Ember Media Manager/Images/Flags/achan_7.png b/Ember Media Manager/Images/Flags/achan_7.png new file mode 100644 index 0000000..5ae9a64 Binary files /dev/null and b/Ember Media Manager/Images/Flags/achan_7.png differ diff --git a/Ember Media Manager/Images/Flags/acodec_dtshd_hra.png b/Ember Media Manager/Images/Flags/acodec_dtshd_hra.png new file mode 100644 index 0000000..4a31f50 Binary files /dev/null and b/Ember Media Manager/Images/Flags/acodec_dtshd_hra.png differ diff --git a/Ember Media Manager/Images/Flags/acodec_dtshd_ma.png b/Ember Media Manager/Images/Flags/acodec_dtshd_ma.png new file mode 100644 index 0000000..4a31f50 Binary files /dev/null and b/Ember Media Manager/Images/Flags/acodec_dtshd_ma.png differ diff --git a/Ember Media Manager/Images/Genres/Genres.xml b/Ember Media Manager/Images/Genres/Genres.xml index f950aee..79e90c5 100644 --- a/Ember Media Manager/Images/Genres/Genres.xml +++ b/Ember Media Manager/Images/Genres/Genres.xml @@ -85,9 +85,6 @@ children.jpg - - children.jpg - children.jpg @@ -418,7 +415,7 @@ war.jpg - + western.jpg @@ -442,6 +439,9 @@ short.jpg + + documentary.jpg + default.jpg diff --git a/Ember Media Manager/Langs/Debug_(db_DB).xml b/Ember Media Manager/Langs/Debug_(db_DB).xml new file mode 100644 index 0000000..25b9e5f --- /dev/null +++ b/Ember Media Manager/Langs/Debug_(db_DB).xml @@ -0,0 +1,902 @@ + + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18 + 19 + 20 + 21 + 22 + 23 + 24 + 25 + 26 + 27 + 28 + 29 + 30 + 31 + 32 + 33 + 34 + 35 + 36 + 37 + 38 + 39 + 40 + 41 + 42 + 43 + 44 + 45 + 46 + 47 + 48 + 49 + 50 + 51 + 52 + 53 + 54 + 55 + 56 + 57 + 58 + 59 + 60 + 61 + 62 + 63 + 64 + 65 + 66 + 67 + 68 + 69 + 70 + 71 + 72 + 73 + 74 + 75 + 76 + 77 + 78 + 79 + 80 + 81 + 82 + 83 + 84 + 85 + 86 + 87 + 88 + 89 + 90 + 91 + 92 + 93 + 94 + 95 + 96 + 97 + 98 + 99 + 100 + 101 + 102 + 103 + 104 + 105 + 106 + 107 + 108 + 109 + 110 + 111 + 112 + 113 + 114 + 115 + 116 + 117 + 118 + 119 + 120 + 121 + 122 + 123 + 124 + 125 + 126 + 127 + 128 + 129 + 130 + 131 + 132 + 133 + 134 + 135 + 136 + 137 + 138 + 139 + 140 + 141 + 142 + 143 + 144 + 145 + 146 + 147 + 148 + 149 + 150 + 151 + 152 + 153 + 154 + 155 + 156 + 157 + 158 + 159 + 160 + 161 + 162 + 163 + 164 + 165 + 166 + 167 + 168 + 169 + 170 + 171 + 172 + 173 + 174 + 175 + 176 + 177 + 178 + 179 + 180 + 181 + 182 + 183 + 184 + 185 + 186 + 187 + 188 + 189 + 190 + 191 + 192 + 193 + 194 + 195 + 196 + 197 + 198 + 199 + 200 + 201 + 202 + 203 + 204 + 205 + 206 + 207 + 208 + 209 + 210 + 211 + 212 + 213 + 214 + 215 + 216 + 217 + 218 + 219 + 220 + 221 + 222 + 223 + 224 + 225 + 226 + 227 + 228 + 229 + 230 + 231 + 232 + 233 + 234 + 235 + 236 + 237 + 238 + 239 + 240 + 241 + 242 + 243 + 244 + 245 + 246 + 247 + 248 + 249 + 250 + 251 + 252 + 253 + 254 + 255 + 256 + 257 + 258 + 259 + 260 + 261 + 262 + 263 + 264 + 265 + 266 + 267 + 268 + 269 + 270 + 271 + 272 + 273 + 274 + 275 + 276 + 277 + 278 + 279 + 280 + 281 + 282 + 283 + 284 + 285 + 286 + 287 + 288 + 289 + 290 + 291 + 292 + 293 + 294 + 295 + 296 + 297 + 298 + 299 + 300 + 301 + 302 + 303 + 304 + 305 + 306 + 307 + 308 + 309 + 310 + 311 + 312 + 313 + 314 + 315 + 316 + 317 + 318 + 319 + 320 + 321 + 322 + 323 + 324 + 325 + 326 + 327 + 328 + 329 + 330 + 331 + 332 + 333 + 334 + 335 + 336 + 337 + 338 + 339 + 340 + 341 + 342 + 343 + 344 + 345 + 346 + 347 + 348 + 349 + 350 + 351 + 352 + 353 + 354 + 355 + 356 + 357 + 358 + 359 + 360 + 361 + 362 + 363 + 364 + 365 + 366 + 367 + 368 + 369 + 370 + 371 + 372 + 373 + 374 + 375 + 376 + 377 + 378 + 379 + 380 + 381 + 382 + 383 + 384 + 385 + 386 + 387 + 388 + 389 + 390 + 391 + 392 + 393 + 394 + 395 + 396 + 397 + 398 + 399 + 400 + 401 + 402 + 403 + 404 + 405 + 406 + 407 + 408 + 409 + 410 + 411 + 412 + 413 + 414 + 415 + 416 + 417 + 418 + 419 + 420 + 421 + 422 + 423 + 424 + 425 + 426 + 427 + 428 + 429 + 430 + 431 + 432 + 433 + 434 + 435 + 436 + 437 + 438 + 439 + 440 + 441 + 442 + 443 + 444 + 445 + 446 + 447 + 448 + 449 + 450 + 451 + 452 + 453 + 454 + 455 + 456 + 457 + 458 + 459 + 460 + 461 + 462 + 463 + 464 + 465 + 466 + 467 + 468 + 469 + 470 + 471 + 472 + 473 + 474 + 475 + 476 + 477 + 478 + 479 + 480 + 481 + 482 + 483 + 484 + 485 + 486 + 487 + 488 + 489 + 490 + 491 + 492 + 493 + 494 + 495 + 496 + 497 + 498 + 499 + 500 + 501 + 502 + 503 + 504 + 505 + 506 + 507 + 508 + 509 + 510 + 511 + 512 + 513 + 514 + 515 + 516 + 517 + 518 + 519 + 520 + 521 + 522 + 523 + 524 + 525 + 526 + 527 + 528 + 529 + 530 + 531 + 532 + 533 + 534 + 535 + 536 + 537 + 538 + 539 + 540 + 541 + 542 + 543 + 544 + 545 + 546 + 547 + 548 + 549 + 550 + 551 + 552 + 553 + 554 + 555 + 556 + 557 + 558 + 559 + 560 + 561 + 562 + 563 + 564 + 565 + 566 + 567 + 568 + 569 + 570 + 571 + 572 + 573 + 574 + 575 + 576 + 577 + 578 + 579 + 580 + 581 + 582 + 583 + 584 + 585 + 586 + 587 + 588 + 589 + 590 + 591 + 592 + 593 + 594 + 595 + 596 + 597 + 598 + 599 + 600 + 601 + 602 + 603 + 604 + 605 + 606 + 607 + 608 + 609 + 610 + 611 + 612 + 613 + 614 + 615 + 616 + 617 + 618 + 619 + 620 + 621 + 622 + 623 + 624 + 625 + 626 + 627 + 628 + 629 + 630 + 631 + 632 + 633 + 634 + 635 + 636 + 637 + 638 + 639 + 640 + 641 + 642 + 643 + 644 + 645 + 646 + 647 + 648 + 649 + 650 + 651 + 652 + 653 + 654 + 655 + 656 + 657 + 658 + 659 + 660 + 661 + 662 + 663 + 664 + 665 + 666 + 667 + 668 + 669 + 670 + 671 + 672 + 673 + 674 + 675 + 676 + 677 + 678 + 679 + 680 + 681 + 682 + 683 + 684 + 685 + 686 + 687 + 688 + 689 + 690 + 691 + 692 + 693 + 694 + 695 + 696 + 697 + 698 + 699 + 700 + 701 + 702 + 703 + 704 + 705 + 706 + 707 + 708 + 709 + 710 + 711 + 712 + 713 + 714 + 715 + 716 + 717 + 718 + 719 + 720 + 721 + 722 + 723 + 724 + 725 + 726 + 727 + 728 + 729 + 730 + 731 + 732 + 733 + 734 + 735 + 736 + 737 + 738 + 739 + 740 + 741 + 742 + 743 + 744 + 745 + 746 + 747 + 748 + 749 + 750 + 751 + 752 + 753 + 754 + 755 + 756 + 757 + 758 + 759 + 760 + 761 + 762 + 763 + 764 + 765 + 766 + 767 + 768 + 769 + 770 + 771 + 772 + 773 + 774 + 775 + 776 + 777 + 778 + 779 + 780 + 781 + 782 + 783 + 784 + 785 + 786 + 787 + 788 + 789 + 790 + 791 + 792 + 793 + 794 + 795 + 796 + 797 + 798 + 799 + 800 + 801 + 802 + 803 + 804 + 805 + 806 + 807 + 808 + 809 + 810 + 811 + 812 + 813 + 814 + 815 + 816 + 817 + 818 + 819 + 820 + 821 + 822 + 823 + 824 + 825 + 826 + 827 + 828 + 829 + 830 + 831 + 832 + 833 + 834 + 835 + 836 + 837 + 838 + 839 + 840 + 841 + 842 + 843 + 844 + 845 + 846 + 847 + 848 + 849 + 850 + 851 + 852 + 853 + 854 + 855 + 856 + 857 + 858 + 859 + 860 + 861 + 862 + 863 + 864 + 865 + 866 + 867 + 868 + 869 + 870 + 871 + 872 + 873 + 874 + 875 + 876 + 877 + 878 + 879 + 880 + 881 + 882 + 883 + 884 + 885 + 886 + 887 + 888 + 889 + 890 + 891 + 892 + 893 + 894 + 895 + 896 + 897 + 898 + 899 + 900 + diff --git a/Ember Media Manager/Langs/Dutch_(nl_NL)-Help.xml b/Ember Media Manager/Langs/Dutch_(nl_NL)-Help.xml new file mode 100644 index 0000000..780fd51 --- /dev/null +++ b/Ember Media Manager/Langs/Dutch_(nl_NL)-Help.xml @@ -0,0 +1,368 @@ + + Indien geactiveerd zal de waarde van de genre afbeeldingen steeds getoond worden. Indien gedeactiveerd zal de tekst enkel zichtbaar zijn als je de muis over een genre afbeelding laat zweven. + Indien geactiveerd controleert Ember de mapnamen op brontypes. Indien gedeactiveerd controleert Ember enkel de bestandsnaam. + Indien geactiveerd wordt fanart niet getoond in het hoofdscherm. Dit versnelt de interface op trage computers. + Indien geactiveerd worden posters niet getoond in het hoofdscherm. Dit versnelt de interface op trage computers. + Indien geactiveerd worden de afmetingen van de afbeeldingen (posters en fanart) over de afbeeldingen heen getoond. + Indien geactiveerd controleert Ember bij elke start op een nieuwe versie. + Indien geactiveerd worden NFO bestanden overschreven bij het opslaan. Indien gedeactiveerd worden ze hernoemd in *.info. + Indien geactiveerd worden alle fouten gelogd naar een bestand terug te vinden in <Ember installatie directory>\Log\errlog.txt. + Selecteer het thema dat op de opmaak van afleveringen toegepast dient te worden. + Selecteer het thema dat op de opmaak van TV Serie en Seizoen toegepast dient te worden. + Selecteer het thema dat op de opmaak van films toegepast dient te worden. + Download addons voor Ember, inclusief modules, thema's, vertalingen naar andere talen, en export sjablonen. + Selecteer de taal voor de interface van Ember. (U moet Ember herstarten om de wijziging te activeren). + Schoon alle bestanden genoemd "folder.jpg" op. + Schoon alle "miniaturen" mappen op. + Schoon alle bestanden genoemd "movie.tbn" op. + Schoon alle bestanden genoemd <film>.jpg op. + Schoon alle bestanden genoemd <film>.tbn op. + Schoon alle bestanden genoemd "movie.jpg" op. + Schoon alle bestanden genoemd "fanart.jpg" op. + Schoon alle bestanden genoemd "poster.jpg" op. + Schoon alle bestanden genoemd <film>-fanart.jpg op. + Schoon alle bestanden genoemd "poster.tbn" op. + Schoon alle bestanden genoemd "movie.nfo" op. + Schoon alle bestanden genoemd <film>.fanart.jpg op. + Schoon alle bestanden genoemd <film>.nfo op. + Plaats alle bestanden die een extensie hebben in de "Toegestane Video Extensies" lijst automatisch op de toegestane lijst. + Verwijder de geselecteerde extensie van de toegestane lijst. + Voeg de ingevoerde extensie aan de toegestane lijst toe. + Voer een extensie in om ze aan de toegestane lijst toe te voegen. + Deze lijst bevat alle huidige extensies die worden overgeslagen bij het opschonen. + Indien geactiveerd bewaard Ember Sets informatie in een formaat dat herkend wordt door YAMJ. Indien gedeactiveerd bewaard Ember Sets informatie in een formaat herkend door XBMC. + Indien geactiveerd wordt bij het klikken op een selectievakje in de filmlijst een niet-automatische scan gebruikt. Indien gedeactiveerd wordt een automatische scan gebruikt. + Indien geactiveerd worden nieuwe films "gemarkeerd". Indien gedeactiveerd worden nieuwe films nog steeds groen gekleurd totdat ze bijgewerkt worden of tot de volgende Ember sessie. + Selecteer de ta(a)l(en) van de genres die je Ember wil laten tonen. + Voer het tolerantieniveau in dat Ember moet gebruiken bij het matchen van de titel. Hoe hoger het cijfer, hoe toleranter het algoritme. 0 = uitgeschakeld. + Activeer dit om Ember de verschillen tussen de filmtitel en de film zijn bestandsnaam te laten controleren. Dit om zeker te zijn dat de gescande gegevens effectief voor het geselecteerde filmbestand zijn. + Verwijder het geselecteerde sorteringsteken van de lijst. + Voeg het ingevoerde sorteringsteken toe aan de lijst. + Voer een sorteringsteken in om aan de lijst toe te voegen. + Een lijst van alle actuele sorteringstekens. (Indien de filmtitel begint met een sorteringsteken, zal het sorteringsteken naar het einde verplaatst worden. E.g. Sorteringsteken = "De", Titel = "De zaak Alzheimer", Resultaat = "Zaak Alzheimer, De") + Indien geactiveerd zal Ember het jaar van de film in de algemene filmlijst tonen. + Verberg de Extra-miniaturen kolom van de algemene filmlijst. + Verberg de Ondertitels kolom van de algemene filmlijst. + Verberg de Trailers kolom van de algemene filmlijst. + Verberg de Info kolom van de algemene filmlijst. + Verberg de Fanart kolom van de algemene filmlijst. + Verberg de Poster kolom van de algemene filmlijst. + Indien geactiveerd zullen "<film>.ext" onderdelen enkel gebruikt worden in mappen die meerdere films bevatten. Dit is nuttig indien je een combinatie hebt van mappen met meerdere films in en mappen met enkele films in, en je het aantal extra bestanden wilt beperken. + Bewaar trailer bestanden als "<film>[trailer].ext" + Bewaar trailer bestanden als "<film>-trailer.ext" + Indien geactiveerd bewaard Ember meta-gegevensbestanden in de basismap (YAMJ geschikt). Indien gedeactiveerd bewaard Ember de meta-gegevensbestanden direct in de VIDEO_TS map (XBMC geschikt). Deze instelling is ook van toepassing op BDMV mappen. + Bewaar nfo bestanden als "<film>.nfo". + Bewaar nfo bestanden als "movie.nfo". + Bewaar fanart bestanden als "<film>.fanart.jpg". + Bewaar fanart bestanden als "<film>-fanart.jpg". + Bewaar fanart bestanden als "fanart.jpg". + Bewaar poster bestanden als "folder.jpg". + Bewaar poster bestanden als "poster.jpg". + Bewaar poster bestanden als "folder.tbn". + Bewaar poster bestanden als "<film>.jpg". + Bewaar poster bestanden als "movie.jpg". + Bewaar poster bestanden als "<film>.tbn". + Bewaar poster bestanden als "movie.tbn". + De lijst van alle actuele filmbronnen. (Bestandspaden die gescand worden op filmbestanden) + De lijst van alle actuele filmbronnen. (Bestandspaden die gescand worden op filmbestanden) + De lijst van alle actuele filmbronnen. (Bestandspaden die gescand worden op filmbestanden) + De lijst van alle actuele filmbronnen. (Bestandspaden die gescand worden op filmbestanden) + De lijst van alle actuele filmbronnen. (Bestandspaden die gescand worden op filmbestanden) + De lijst van alle actuele filmbronnen. (Bestandspaden die gescand worden op filmbestanden) + De lijst van alle actuele filmbronnen. (Bestandspaden die gescand worden op filmbestanden) + Verwijder de geselecteerde bron(nen) uit de bronnenlijst. + Voeg een nieuwe map aan de bronnenlijst toe. + Schaal posterbestanden naar de ingevoerde breedte. + Schaal posterbestanden naar de ingevoerde hoogte. + Pas de kwaliteit van de posterbestanden aan. (0 = originele kwaliteit) + Schaal posterbestanden voor het opslaan. + Selecteer de poster afmetingen die u bij voorkeur van de afbeeldingenservers wenst te bekomen. Tijdens het automatische scannen zal Ember eerst een poster van deze afmetingen trachten te vinden. Indien zulk een poster niet gevonden wordt, zal de eerst beschikbare afbeelding genomen worden. + Indien geactiveerd zullen bestaande posterbestanden overschreven worden indien nieuwe zijn geselecteerd. Indien gedeactiveerd zullen posterbestanden enkel bewaard worden indien een huidige nog niet bestaat. + Schaal fanartbestanden naar de ingevoerde breedte. + Schaal fanartbestanden naar de ingevoerde hoogte. + Indien geactiveerd zal Ember enkel fanart van de geselecteerde afmeting proberen te bekomen. (Noot: indien er geen fanartafbeeldingen van de geselecteerde afmeting beschikbaar zijn, zullen fanartafbeeldingen niet opgehaald worden) + Pas de kwaliteit van de fanartbestanden aan. (0 = originele kwaliteit) + Schaal fanartbestanden voor het opslaan. + Selecteer de fanart afmetingen die u bij voorkeur van de afbeeldingenservers wenst te bekomen. Tijdens het automatische scannen zal Ember eerst een fanartafbeelding van deze afmetingen trachten te vinden. Indien zulk een fanartafbeelding niet gevonden wordt, zal de eerst beschikbare afbeelding genomen worden. + Indien geactiveerd zullen bestaande fanartbestanden overschreven worden indien nieuwe zijn geselecteerd. Indien gedeactiveerd zullen fanartbestanden enkel bewaard worden indien een huidige nog niet bestaat. + Indien geactiveerd zal Ember geen URL's van de poster- en fanartafbeeldingen in de nfo bestanden opslaan. (Aanbevolen voor YAMJ geschiktheid) + Selecteer afbeeldingen bij het scannen van een enkel filmbestand. + Bewaar afbeeldingen in de afbeeldingenbuffer tijdens het scannen van meerdere filmbestanden. + Indien geactiveerd zal Ember de afbeeldingenbuffer niet opschonen tussen sessies door. + Activeer Ember's afbeeldingenbuffer. + Indien geactiveerd en indien er geen fanart beschikbaar is voor de geselecteerde film, zal Ember een van de onttrokken miniaturen gebruiken als fanartafbeelding. + Indien geactiveerd zullen extra-miniaturen enkel onttrokken worden uit het eerste gedeelte van de film om zo "spoilers" te vermijden. + Voer het aantal extra-miniaturen in dat u automatisch wenst aan te maken. + Indien geactiveerd zal Ember automatisch het ingevoerde aantal extra-miniaturen onttrekken tijdens het scannen. + Voer het domein van uw proxy in. (Optioneel - niet verreist voor de meeste proxies) + Voer het wachtwoord in dat nodig is om toegang te krijgen tot uw proxy. + Voer de gebruikersnaam in die nodig is om toegang te krijgen tot uw proxy. + Activeer indien uw proxy authenticatie vereist. + Voer de poort in nodig om toegang te krijgen tot uw proxy. + Voer het IP of de URL in nodig om toegang te krijgen tot uw proxy. + Indien geactiveerd zal Ember de ingevoerde proxy gebruiken voor alle internet communicatie. + Verplaats degeselecteerde filter omhoog in de lijst. (Filters worden uitgevoerd in volgorde van boven naar beneden) + Verplaats degeselecteerde filter omlaag in de lijst. (Filters worden uitgevoerd in volgorde van boven naar beneden) + Verzorg automatisch beginkapitalen voor filmtitels. (e.g. "de zaak alzheimer" wordt "De Zaak Alzheimer") + Verwijder de geselecteerde filter van de lijst. + Voeg de ingevoerde filter aan de lijst toe. + Voer tekst of RegEx in om als filter te gebruiken. Speciaal: "a[->]b" = vervang alle instanties van "a" met "b" (e.g. ".[->]_" vervangt alle punten in de titel met een laag liggend streepje.) + De lijst van alle actuele filters die gebruikt worden bij het aanmaken van filmtitels. + Indien geactiveerd zal Ember, bij het gebruik van de Missende Onderdelen Filter, films tonen met ontbrekende extra-miniaturen. + Indien geactiveerd zal Ember, bij het gebruik van de Missende Onderdelen Filter, films tonen met ontbrekende ondertitels. + Indien geactiveerd zal Ember, bij het gebruik van de Missende Onderdelen Filter, films tonen met ontbrekende trailers. + Indien geactiveerd zal Ember, bij het gebruik van de Missende Onderdelen Filter, films tonen met ontbrekende nfo-bestanden. + Indien geactiveerd zal Ember, bij het gebruik van de Missende Onderdelen Filter, films tonen met ontbrekende fanart. + Indien geactiveerd zal Ember, bij het gebruik van de Missende Onderdelen Filter, films tonen met ontbrekende posters. + Indien geactiveerd zal Ember automatisch nieuwe fanartafbeeldingen in de opgegeven achtergronden map opslaan. + Open een mappenverkenner om een achtergrondenmap te selecteren. + Het pad naar de achtergrondenmap. + Verwijder de geselecteerde extensie van de Geen Stack Extensie lijst. + Voeg de ingevoerde extensie aan de Geen Stack Extensie lijst toe. + Voer een extensie in om ze aan de Geen Stack Extensie lijst toe te voegen. + De lijst van extensies die Ember niet zal stacken in enkelvoudige bestanden bij het toevoegen in de bibliotheek. + Verwijder de geselecteerde extensie van de Toegestane Video Extensies lijst. + Voeg de ingevoerde extensie aan de Toegestane Video Extensies lijst toe. + Voer een extensie in om ze aan de Toegestane Video Extensies lijst toe te voegen. + De lijst van extensies waar Ember naar zal zoeken bij het bijwerken van de bibliotheek. + Wijzig de geselecteerde bron. + Indien geactiveerd zal Ember nieuwe bestanden toevoegen in volgorde van laatste wijzigingstijd. Indien gedeactiveerd zal Ember nieuwe bestanden aan de bibliotheek toevoegen in alfabetische volgorde. + Indien geactiveerd zal Ember alle enkelvoudige bestanden in de hoofdmap van de bron in hun eigen mappen sorteren. + Indien geactiveerd zal Ember alle mappen/bestanden scannen onafgezien van de laatste scantijd. Indien gedeactiveerd zal Ember enkel mappen/bestanden scannen die toegevoegd zijn na de laatste keer dat bestanden werden gescand. + Indien geactiveerd zal Ember de film gegevensbank opschonen na elke scan. (Het verwijderen van bestanden die niet langer bestaan of die niet langer binnen de ingestelde waarden vallen) + Indien geactiveerd zal Ember proberen VIDEO_TS mappen te herkennen zelfs al noemt de map niet "VIDEO_TS". Indien gedeactiveerd zal Ember nog steeds VIDEO_TS mappen behandelen die "VIDEO_TS" noemen. Deze instelling is ook van toepassing op BDMV mappen. + Indien geactiveerd zal Ember geen bestanden overslaan die kleiner zijn dan de ingevoerde "Sla Bestanden Over Kleiner Dan" afmetingen indien ze stacking markeerders bevatten (zoals "CD1" of "DVD2"). + Ember zal de ingevoerde afmetingen gebruiken als de minimale afmeting van filmbestanden. Elk bestand kleiner dan dit zal overgeslagen worden bij het bijwerken van de bibliotheek. + Ember zal de ingevoerde afmetingen gebruiken als de minimale afmeting van afleveringbestanden. Elk bestand kleiner dan dit zal overgeslagen worden bij het bijwerken van de bibliotheek. + Selecteer de voorkeuze kwaliteit van de gedownloade trailers. + Indien geactiveerd zal Ember alle bestaande trailers voor de film verwijderen vooraleer de nieuwe op te slaan. + Indien geactiveerd zal Ember bestaande trailers overschrijven bij het opslaan van nieuwe. Indien gedeactiveerd zullen nieuwe trailerbestanden enkel bewaard worden als er nog geen bestaan. + Indien geactiveerd zullen trailerbestanden niet gedownload worden. De trailer URL zal echter bewaard worden in de nfo. + Indien geactiveerd zullen trailers gedownload worden bij het scannen van een enkele film. + Indien geactiveerd zullen trailers gedownload worden bij het scannen van "Alle Onderdelen". + Gebruik Ember's trailer ondersteuning. + Selecteer de afmetingen van de fanart die je wenst te downloaden als extra-miniaturen. + Indien geactiveerd zal Ember automatisch alle fanart van de gewenste afmetingen downloaden als extra-miniaturen. + Schaal extra-miniaturen naar de ingevoerde breedte. + Schaal extra-miniaturen naar de ingevoerde hoogte. + Indien geactiveerd zal Ember "zwarte balken" aan de kanten van de extra-miniaturen toevoegen indien deze smaller zijn dan de opgegeven afmetingen. + Schaal extra-miniaturen naar de ingevoerde afmetingen, ongeacht de systeemeigen resolutie. + Bewaar extra-miniaturen in dezelfde resolutie als de video. + De lijst van alle actuele TV Serie bronnen. (Bestandspaden die gescand worden op TV Serie bestanden) + De lijst van alle actuele TV Serie bronnen. (Bestandspaden die gescand worden op TV Serie bestanden) + De lijst van alle actuele TV Serie bronnen. (Bestandspaden die gescand worden op TV Serie bestanden) + De lijst van alle actuele TV Serie bronnen. (Bestandspaden die gescand worden op TV Serie bestanden) + Indien geactiveerd zal Ember nieuwe bestanden toevoegen in volgorde van laatste wijzigingstijd. Indien gedeactiveerd zal Ember nieuwe bestanden aan de bibliotheek toevoegen in alfabetische volgorde. + Indien geactiveerd zal Ember alle mappen/bestanden scannen onafgezien van de laatste scantijd. Indien gedeactiveerd zal Ember enkel mappen/bestanden scannen die toegevoegd zijn na de laatste keer dat bestanden werden gescand. + Indien geactiveerd zal Ember de TV Serie gegevensbank opschonen na elke scan. (Het verwijderen van bestanden die niet langer bestaan of die niet langer binnen de ingestelde waarden vallen) + Voeg een nieuwe map aan de bronnenlijst toe. + Wijzig de geselecteerde bron. + Verwijder de geselecteerde bron(nen) uit de bronnenlijst. + Bewaar Alle Seizoen poster bestanden als "season-all.jpg". + Bewaar Alle Seizoen poster bestanden als "season-all.tbn". + Bewaar aflevering fanart bestanden als "<aflevering>.fanart.jpg". + Bewaar aflevering fanart bestanden als "<aflevering>-fanart.jpg". + Bewaar aflevering poster bestanden als "<aflevering>.jpg". + Bewaar aflevering poster bestanden als "<aflevering>.tbn". + Bewaar seizoen fanart bestanden als "<seizoen>.fanart.jpg". (Bewaart enkel in de seizoensmap, indien deze bestaat) + Bewaar seizoen fanart bestanden als "<seizoen>-fanart.jpg". (Bewaart enkel in de seizoensmap, indien deze bestaat) + Bewaar seizoen fanart bestanden als "fanart.jpg". (Bewaart enkel in de seizoensmap, indien deze bestaat) + Bewaar seizoen fanart bestanden als "folder.jpg". (Bewaart enkel in de seizoensmap, indien deze bestaat) + Bewaar seizoen poster bestanden als "<seizoen>.jpg". (Bewaart enkel in de seizoensmap, indien deze bestaat) + Bewaar seizoen poster bestanden als "<seizoen>.tbn". (Bewaart enkel in de seizoensmap, indien deze bestaat) + Bewaar seizoen poster bestanden als "poster.jpg". (Bewaart enkel in de seizoensmap, indien deze bestaat) + Bewaar seizoen poster bestanden als "poster.tbn". (Bewaart enkel in de seizoensmap, indien deze bestaat) + Bewaar seizoen poster bestanden als "seasonX.tbn". (Bewaart enkel in de seizoensmap, indien deze bestaat) + Bewaar seizoen poster bestanden als "seasonXX.tbn". (e.g. season02.tbn) + Bewaar TV Serie fanart bestanden als "<tv serie>.fanart.jpg". + Bewaar TV Serie fanart bestanden als "<tv serie>-fanart.jpg". + Bewaar TV Serie fanart bestanden als "fanart.jpg". + Bewaar TV Serie poster bestanden als "<tv serie>.jpg". + Bewaar TV Serie poster bestanden als "<tv serie>.tbn". + Bewaar TV Serie poster bestanden als "poster.jpg". + Bewaar TV Serie poster bestanden als "poster.tbn". + Bewaar TV Serie poster bestanden als "folder.jpg". + Voeg de ingevoerde RegEx toe aan de TV Serie RegEx lijst. + Voer de RegEx in die gebruikt moet worden om het seizoensnummer te herkennen. + Kies of u de seizoens RegEx wilt uitvoeren op de mapnaam of op de bestandsnaam van de aflevering. + Voer de RegEx in die gebruikt moet worden om het afleveringnummer te herkennen. + Kies of u de afleveringen RegEx wilt uitvoeren op de mapnaam, op de bestandsnaam van de aflevering of op de resultaten van de seizoens RegEx. + Wijzig de geselecteerde TV Serie RegEx. + Verwijder de geselecteerde TV Serie RegEx van de lijst. + De lijst van actuele TV Serie RegEx. + De lijst van actuele TV Serie RegEx. + De lijst van actuele TV Serie RegEx. + De lijst van actuele TV Serie RegEx. + De lijst van actuele TV Serie RegEx. + De lijst van actuele TV Serie RegEx. + Indien geactiveerd zullen afleveringen die in uw verzameling ontbreken in de afleveringenlijst getoond worden, maar ze zullen lichtgrijs gekleurd zijn. + Verberg de Info kolom van de afleveringenlijst. + Verberg de Fanart kolom van de afleveringenlijst. + Verberg de Poster kolom van de afleveringenlijst. + Verberg de Fanart kolom van de seizoenslijst. + Verberg de Poster kolom van de seizoenslijst. + Verberg de Info kolom van de TV Serie lijst. + Verberg de Fanart kolom van de TV Serie lijst. + Verberg de Poster kolom van de TV Serie lijst. + Indien geactiveerd zal, indien er een Alle Seizoensposter bestaat voor de geselecteerde TV Serie, deze laatste op het rechtse deel van de interface getoond worden. + Selecteer de plaats voor de beoordelingen die u in de interface wenst te tonen. + Indien geactiveerd zal Ember niet proberen om bestandsnamen van afleveringen te filteren op titels, maar zal ze in tegendeel samenstellen uit de naam van de TV Serie, het seizoen, en de aflevering totdat een aanvaardbare naam is verkregen. + Verplaats degeselecteerde filter omhoog in de lijst. (Filters worden uitgevoerd in volgorde van boven naar beneden) + Verplaats degeselecteerde filter omlaag in de lijst. (Filters worden uitgevoerd in volgorde van boven naar beneden) + Pas automatisch juiste beginkapitalen toe op titels van afleveringen. (e.g. "zwarte kat op parking" wordt "Zwarte Kat Op Parking") + Verwijder de geselecteerde filter van de filterlijst. + Voeg de ingevoerde filter aan de filterlijst toe. + Voer een filter in om hem aan de lijst toe te voegen. + De lijst van alle actuele filters die gebruikt worden bij het aanmaken van titels voor afleveringen. + Verplaats degeselecteerde filter omhoog in de lijst. (Filters worden uitgevoerd in volgorde van boven naar beneden) + Verplaats degeselecteerde filter omlaag in de lijst. (Filters worden uitgevoerd in volgorde van boven naar beneden) + Verzorg automatisch beginkapitalen voor titels van afleveringen. (e.g. "maya en de spin thekla" wordt "Maya En De Spin Thekla") + Verwijder de geselecteerde filter van de filterlijst. + Voeg de ingevoerde filter aan de filterlijst toe. + Voer een filter in om hem aan de lijst toe te voegen. + De lijst van alle actuele filters die gebruikt worden bij het aanmaken van titels voor TV Series. + Indien geactiveerd worden alle Engelse afbeeldingen opgehaald, ongeacht de geselecteerde taal. + Indien geactiveerd worden enkel afbeeldingen van de voorkeurstaal opgehaald . + Schaal TV Serie bestanden naar de ingevoerde breedte. + Schaal TV Serie bestanden naar de ingevoerde hoogte. + Pas de kwaliteit van de TV Serie bestanden aan. (0 = originele kwaliteit) + Schaal TV Serie bestanden voor het opslaan. + Selecteer het TV Serie poster type dat u bij voorkeur van de afbeeldingenservers wenst te bekomen. Tijdens het scannen van de TV Serie zal Ember eerst een poster van dit type trachten te vinden. Indien een poster van de opgegeven afmetingen niet gevonden wordt, zal de eerst beschikbare afbeelding genomen worden. + Indien geactiveerd zullen bestaande TV Serie posterbestanden overschreven worden indien nieuwe zijn geselecteerd. Indien gedeactiveerd zullen TV Serie posterbestanden enkel bewaard worden indien een huidige nog niet bestaat. + Schaal TV Serie fanartbestanden naar de ingevoerde breedte. + Schaal TV Serie fanartbestanden naar de ingevoerde hoogte. + Pas de kwaliteit van de TV Serie fanartbestanden aan. (0 = originele kwaliteit) + Schaal TV Serie fanartbestanden voor het opslaan. + Selecteer de fanart afmetingen die u bij voorkeur van de afbeeldingenservers wenst te bekomen. Tijdens het scannen van de TV Serie zal Ember eerst een fanartafbeelding van deze afmetingen trachten te vinden. Indien zulk een fanartafbeelding niet gevonden wordt, zal de eerst beschikbare afbeelding genomen worden. + Indien geactiveerd zullen bestaande TV Serie fanartbestanden overschreven worden indien nieuwe zijn geselecteerd. Indien gedeactiveerd zullen TV Serie fanartbestanden enkel bewaard worden indien een huidige nog niet bestaat. + Schaal seizoen posterbestanden naar de ingevoerde breedte. + Schaal seizoen posterbestanden naar de ingevoerde hoogte. + Pas de kwaliteit van de seizoen posterbestanden aan. (0 = originele kwaliteit) + Schaal seizoen posterbestanden voor het opslaan. + Selecteer de seizoen poster afmetingen die u bij voorkeur van de afbeeldingenservers wenst te bekomen. Tijdens het automatische scannen zal Ember eerst een poster van deze afmetingen trachten te vinden. Indien zulk een poster niet gevonden wordt, zal de eerst beschikbare afbeelding genomen worden. + Indien geactiveerd zullen bestaande seizoen posterbestanden overschreven worden indien nieuwe zijn geselecteerd. Indien gedeactiveerd zullen seizoen posterbestanden enkel bewaard worden indien een huidige nog niet bestaat. + Schaal seizoen fanartbestanden naar de ingevoerde breedte. + Schaal seizoen fanartbestanden naar de ingevoerde hoogte. + Pas de kwaliteit van de seizoen fanartbestanden aan. (0 = originele kwaliteit) + Schaal seizoen fanartbestanden voor het opslaan. + Selecteer de fanart afmetingen die u bij voorkeur van de afbeeldingenservers wenst te bekomen. Tijdens het scannen van de TV Serie zal Ember eerst een fanartafbeelding van deze afmetingen trachten te vinden. Indien zulk een fanartafbeelding niet gevonden wordt, zal de eerst beschikbare afbeelding genomen worden. + Indien geactiveerd zullen bestaande seizoen fanartbestanden overschreven worden indien nieuwe zijn geselecteerd. Indien gedeactiveerd zullen seizoen fanartbestanden enkel bewaard worden indien een huidige nog niet bestaat. + Schaal aflevering posterbestanden naar de ingevoerde breedte. + Schaal aflevering posterbestanden naar de ingevoerde hoogte. + Pas de kwaliteit van de aflevering posterbestanden aan. (0 = originele kwaliteit) + Schaal aflevering posterbestanden voor het opslaan. + Indien geactiveerd zullen bestaande aflevering posterbestanden overschreven worden indien nieuwe zijn geselecteerd. Indien gedeactiveerd zullen aflevering posterbestanden enkel bewaard worden indien een huidige nog niet bestaat. + Schaal aflevering fanartbestanden naar de ingevoerde breedte. + Schaal aflevering fanartbestanden naar de ingevoerde hoogte. + Pas de kwaliteit van de aflevering fanartbestanden aan. (0 = originele kwaliteit) + Schaal aflevering fanartbestanden voor het opslaan. + Selecteer de fanart afmetingen die u bij voorkeur van de afbeeldingenservers wenst te bekomen. Tijdens het scannen van de TV Serie zal Ember eerst een fanartafbeelding van deze afmetingen trachten te vinden. Indien zulk een fanartafbeelding niet gevonden wordt, zal de eerst beschikbare afbeelding genomen worden. + Indien geactiveerd zullen bestaande aflevering fanartbestanden overschreven worden indien nieuwe zijn geselecteerd. Indien gedeactiveerd zullen aflevering fanartbestanden enkel bewaard worden indien een huidige nog niet bestaat. + Activeer het scannen van de TV Serie waardering. + Activeer het scannen van de TV Serie acteurs. + Activeer het scannen van de TV Serie studios. + Activeer het scannen van de TV Serie inroductiedatum. + Activeer het scannen van de URL van de afleveringengids. + Activeer het scannen van de TV Serie MPAA. + Activeer het scannen van de plot van de TV Serie. + Activeer het scannen van het genre van de TV Serie. + Activeer het scannen van de TV Serie titel. + Activeer het scannen van de acterurs van de aflevering. + Activeer het scannen van de credits van de aflevering. + Activeer het scannen van de regisserurs van de aflevering. + Activeer het scannen van de plot van de aflevering. + Activeer het scannen van de waardering van de aflevering. + Activeer het scannen van de introductiedatum van de aflevering. + Activeer het scannen van de titel van de aflevering. + Activeer het scannen van het volgnummer van de aflevering. + Activeer het scannen van het volgnummer van het seizoen. + Indien geactiveerd zal de titel van de aflevering enkel gescand worden indien een huidige nog niet bestaat. + Indien geactiveerd zal de waardering van de aflevering enkel gescand worden indien een huidige nog niet bestaat. + Indien geactiveerd zal de plot van de aflevering enkel gescand worden indien een huidige nog niet bestaat. + Indien geactiveerd zal de plot van de TV Serie enkel gescand worden indien een huidige nog niet bestaat. + Indien geactiveerd zal het genre van de TV Serie enkel gescand worden indien een huidige nog niet bestaat. + Indien geactiveerd zal de studio van de TV Show enkel gescand worden indien een huidige nog niet bestaat. + Indien geactiveerd zal de waardering van de TV Show enkel gescand worden indien een huidige nog niet bestaat. + Indien geactiveerd zal de titel van de TV Show enkel gescand worden indien een huidige nog niet bestaat. + The extensielijst die standaard metagegevens bezitten. + Voer een extensie in om een standaard metagegeven aan te maken. + Verwijder het standaard metagegeven voor de geselecteerde extensie van de standaard metagegevenslijst. + Bewerk het standaard metagegeven voor de geselecteerde extensie van de standaard metagegevenslijst. + Maak het standaard metagegeven voor de ingevoerde extensie aan en voeg het toe aan de standaard metagegevenslijst. + Indien de geselecteerde taal in de aflevering wordt gevonden, zal een speciaal icoon over het metagegeven audioicoon heen gelegd worden. + Indien geactiveerd zal Ember afleveringsbestanden op metagegevens scannen. + Geef de wachttijd op tussen het bijwerken van de gebufferde TV informatie bestanden. + Voer de TVDB API Key in van het mediacenter of -speler die u gebruikt. Dit is niet noodzakelijk om Ember te laten functioneren. Het wordt enkel gebruikt bij het bewaren van de Afleveringsgids URL in de NFO. + Voer de mirror in om informatie op te halen voor de TheTVDB. + Klik om alle beschikbare talen van de TheTVDB op te halen. + Selecteer de voorkeurstaal om te gebruiken bij het downloaden van TV Serie informatie en afbeeldingen. + Activeer het scannen van de film certificering. + Activeer het scannen van de film Top 250 rangorde. + Activeer het scannen van het film productieland. + Beperk het aantal gescande genres tot het ingevoerde aantal. + Beperk het aantal gescande acteurs tot het ingevoerde aantal. + Activeer het scannen van de overige crew. (Scan volledige crew moet geactiveerd zijn) + Activeer het scannen van de film muzikanten. (Scan volledige crew moet geactiveerd zijn) + Activeer het scannen van de film regisseurs. (Scan volledige crew moet geactiveerd zijn) + Activeer het scannen van de film scenaristen. + Activeer het scannen van de film studio. + Activeer het scannen van de film speelduur. + Activeer het scannen van de film plot. + Activeer het scannen van de film verhaalschets. + Activeer het scannen van het film genre. + Activeer het scannen van de film regisseur. + Activeer het scannen van de film quote. + Activeer het scannen van de film cast. + Activeer het scannen van de film stemmen. + Activeer het scannen van de film trailer URL. + Activeer het scannen van de film waardering. + Activeer het scannen van de film introductiedatum. + Activeer het scannen van de film MPAA. + Activeer het scannen van het film jaar. + Activeer het scannen van de film titel. + The extensielijst die standaard metagegevens bezitten. + Voer een extensie in om een standaard metagegeven aan te maken. + Verwijder het standaard metagegeven voor de geselecteerde extensie van de standaard metagegevenslijst. + Bewerk het standaard metagegeven voor de geselecteerde extensie van de standaard metagegevenslijst. + Maak het standaard metagegeven voor de ingevoerde extensie aan en voeg het toe aan de standaard metagegevenslijst. + Indien geactiveerd zal Ember *.ifo bestanden op metagegevens scannen. + Indien de geselecteerde taal in de film wordt gevonden, zal een speciaal icoon over het metagegeven audioicoon heen gelegd worden. + Voer het formaat in dat u wenst te gebruiken voor de speelduur van de film zoals opgehaald bij het scannen van de metagegevens. Noot: u kan ook <0m> gebruiken om 0 minuten op te vullen. + Indien geactiveerd zal Ember filmbestanden op metagegevens scannen. + Gebruik de lengte van de film zoals opgehaald door het scannen van de metagegevens als de speelduur van de film. + Indien geactiveerd zal de verhaalschets van de film enkel gescand worden indien een huidige nog niet bestaat. + Indien geactiveerd zal de plot van de film enkel gescand worden indien een huidige nog niet bestaat. + Indien geactiveerd zal de filmtrailer enkel gescand worden indien een huidige nog niet bestaat. + Indien geactiveerd zal het genre van de film enkel gescand worden indien een huidige nog niet bestaat. + Indien geactiveerd zal de filmstudio enkel gescand worden indien een huidige nog niet bestaat. + Indien geactiveerd zal de waardering van de film enkel gescand worden indien een huidige nog niet bestaat. + Indien geactiveerd zal de filmquote enkel gescand worden indien een huidige nog niet bestaat. + Indien geactiveerd zal de filmtitel enkel gescand worden indien een huidige nog niet bestaat. + Selecteer de regio van de titel waar u Ember wil laten naar zoeken. + Indien geactiveerd zal Ember controleren op alternatieve titels in de opgegeven taal. Dit is nuttig om titels in uw moedertaal op te halen bij het scannen van buitenlands films. + Indien geactiveerd zal Ember de verhaalschets gebruiken als plot als het plot leeg is. + Indien geactiveerd zal Ember enkel acteurs scannen met geldige afbeeldingen. + Indien geactiveerd zal Ember de certificering van de geselecteerde regio gebruiken in plaats van de MPAA waardering. + Indien geactiveerd zal Ember alle acteurs scannen in plaats van enkel deze van de topaffiche. + Indien geactiveerd zal Ember alle crewleden scannen (indien individueel geactiveerd). + Selecteer de regio om certificeringswaarderingen te filteren. + Scan enkel de certificeringswaarderingen voor de geselecteerde regio. + Indien geactiveerd worden nieuwe TV Series "gemarkeerd". Indien gedeactiveerd worden nieuwe TV Series nog steeds groen gekleurd totdat ze bijgewerkt worden of tot de volgende Ember sessie. + Indien geactiveerd worden nieuwe afleveringen "gemarkeerd". Indien gedeactiveerd worden nieuwe afleveringen nog steeds groen gekleurd totdat ze bijgewerkt worden of tot de volgende Ember sessie. + Selecteer de standaard rangorde die Ember moet gebruiken bij het scannen van TV Serie informatie. + Indien geactiveerd zal Ember enkel de waarde opslaan van de certificering in het MPAA veld. (e.g. "Germany:18" zal bewaard worden als "18") + Indien geactiveerd zal Ember proberen een banner (brede) afbeelding van het geselecteerde type te downloaden als de TV Series standaard poster. + Indien geactiveerd zal Ember proberen een poster afbeelding van het geselecteerde type te downloaden als de TV Series standaard poster. + Dit zal de TV Serie filters terug op de standaard lijst plaatsen. WAARSCHUWING: Dit ZAL alle maatwerk filters verwijderen die u hebt opgegeven. + Dit zal de afleveringen filters terug op de standaard lijst plaatsen. WAARSCHUWING: Dit ZAL alle maatwerk filters verwijderen die u hebt opgegeven. + Dit zal de film filters terug op de standaard lijst plaatsen. WAARSCHUWING: Dit ZAL alle maatwerk filters verwijderen die u hebt opgegeven. + Dit zal de geldige extensies terug op de standaard lijst plaatsen. WAARSCHUWING: Dit ZAL alle maatwerk extensies verwijderen die u hebt opgegeven. + Dit zal de TV Serie RegEx terug op de standaard lijst plaatsen. WAARSCHUWING: Dit ZAL alle maatwerk RegEx verwijderen die u hebt opgegeven. + Activeer Klik Scan op de kolomselectievakjes in het hoofdscherm. + Indien geactiveerd zal Ember de bestandscreatiedatum respecteren van het videobestand in plaats van de huidige datum bij het importeren van nieuwe films in de gegevensbank. Dit zorgt voor stabielere zoekresultaten bij het filteren op nieuwe films! + Indien geactiveerd zal het taalveld (video metagegevens) niet bijgewerkt worden. + Indien geactiveerd zal het taalveld (audio metagegevens) niet bijgewerkt worden. + Indien geactiveerd zal het certificering/MPAA veld niet bijgewerkt worden. + Indien geactiveerd zullen MPAA waarden omgezet worden naar FSK indien er geen FSK waarden gevonden worden. Prioriteit: FSK -> MPAA + Verberg de Gezien kolom van de algemene filmlijst. + diff --git a/Ember Media Manager/Langs/Dutch_(nl_NL).xml b/Ember Media Manager/Langs/Dutch_(nl_NL).xml new file mode 100644 index 0000000..5b0ed77 --- /dev/null +++ b/Ember Media Manager/Langs/Dutch_(nl_NL).xml @@ -0,0 +1,892 @@ + + &Bestand + &Afsluiten + &Wijzig + &Instellingen + &Help + &Over + Media laden: + &Opties + &Opschonen bestanden + Bestanden &sorteren in mappen + Kopiëer bestaande fanart naar &achtergronden map + Herstel Metadata Studio &Tags + Mapnaam + Set &Manager + Bestandsnaam + Seizoen resultaat + Leeg &alle buffers + &Films opnieuw laden + Sluiten + Genres + Titel + Herladen + Markeer + Blokkeren + Wijzig film + Details + >> Selecteer Genre << + Toevoegen + Bevestig + Verwijder + (Opnieuw)Scannen geselecteerde films + Wijzig film + Open map + Verwijder film + Markeer alles + Films + Leeg filters + Algemeen + Buiten tolerantie + Missende items + Dubbele + Specifiek + Geblokkeerd + Keuze + En + Of + Nieuw + Gemarkeerd + Jaar: + Bron: + Genre: + Filters: + Stoppen scanner... + Stop scanner + Geen informatie beschikbaar voor deze film + Certificering(en) + Releasedatum + Vernieuwen + Metadata + Bestandspad + IMDB ID + Regisseur + Acteurs + Plot schets + Plot + Info + Scan media + Alle films + Automatisch (Forceer beste match) + Alle items + Alleen NFO + Alleen poster + Alleen fanart + Alleen extra pictogrammen + Alleen trailer + Alleen metadata + Vragen (Benodigd als er geen exacte match is) + Films met missende items + Nieuwe films + Gemarkeerde films + Aangepaste scanner... + Update bibliotheek + Mediacenters + Scan/download data van het internet voor meerdere films + Scan bronnen voor nieuwe content en schoon de database. + Stuur een commando naar XBMC om het "Update Library" proces te starten. + (De)markeer alle films in de lijst. + Zoek op filmtitel door hier tekst in te voeren. + Speel de film af met de standaard mediaspeler + Scan en bewaar de metadata van de geselecteerde opnieuw. + Toon alleen films met eenzelfde IMDB ID. + Toon alleen films waarvan de titel buiten de tolerantie valt. + Toon alleen films waarvan items missen. + Toon alleen nieuwe films. + Toon alleen gemarkeerde films. + Toon alleen geblokkeerde films. + Toon alleen films van de geselecteerde bron. + Selecteer genre... + Alle processen afbreken... + Acteur + Weet je zeker dat je verder wilt gaan? + WAARSCHUWING: als je verder gaat worden alle verboden bestands-extensies verwijderd! + WAARSCHUWING: als je verder gaat worden de volgende types definitief verwijderd: + Weet je het zeker? + Demarkeer alles + >> Meerdere << + Demarkeer + Deblokkeer + WAARSCHUWING: HIERMEE VERWIJDER JE ALLE GESELECTEERDE FILMS VAN DE HARDDISK + Vernieuwen Media: + Laden bestandsmappen niet gelukt. Controleer de instellingen. + Speelduur: {0} + Selecteer de standaard taal waarnaar Ember moet zoeken bij het verzamelen van serie items. + * dit MOET geactiveerd worden om gebruik te kunnen maken van extra-miniaturen en bestand naamgeving opties zoals movie.tbn, fanart.jpg, enz. + Toevoegen Regex + Uitvoeren voorbereidende taken (verzamelen van gegevens)... + Onbekende film ({0}) + {0} stemmen + Stoppen bestandsopschoner... + Stop opschoner + Achtergrond kopiëren aan het annuleren... + Annuleer kopiëren + Opschonen + Werk Regex bij + Stoppen scanner... + Stop scanner + Media aan het scannen (alle films - vragen): + Media aan het scannen (alle films - automatisch): + Opschonen bestanden: + Fanart naar achtergrondmap aan het kopiëren: + {0} als {1} + Media aan het scannen (films missende onderdelen - automatisch): + Media aan het scannen (films missende onderdelen - vragen): + Media aan het scannen (nieuwe films - vragen): + Media aan het scannen (nieuwe films - automatisch): + Media scannen (gemarkeerde films - vragen): + Media scannen (gemarkeerde films - automatisch): + Herscannen {0} + Aan het scannen: + Metadata aan het scannen: + Kon geen filmdetails van het internet verkrijgen. Controleer je internetverbinding en probeer opnieuw. + Fout bij verkrijgen details + Werk alleen {0} bij + Werk bij + Enkel + (Her)scan seizoen + (Her)scan aflevering + Poster + Fanart + Nfo + Trailer + Ondertitels + Extraminiaturen + Acteur naam: + Acteur rol: + Acteur Miniatuur (URL): + Nieuwe acteur + Wijzig acteur + Opgegeven URL is ongeldig. + Ongeldige URL + Voer een URL in om te controleren + Geen Miniatuur URL opgegeven + (Her)scan film + (Opnieuw)Scannen geselecteerde films + Filmlijst aan het Compileren... + Compilatie aan het annuleren... + Annuleer + Scan volgorde + Blokkeer alles + Deblokkeer alles + Naam: + Omschrijving: + Addon versie: + Map: + Bestandsnaam + Nieuwe map + Nieuwe bestandsnaam + Min. versie Ember + Ok + Voorbeeld + Geef URL naar afbeelding in: + Voeg handmatig fanart toe + Voeg handmatig poster toe + Viewer Afbeelding + Passend + Volledige grootte + &Opmaak / inspringen + &Plakken + &Opslaan + Handmatige NFO Bewerker + Dit is geen geldig XML document + Bestand is ongeldig. + Bestand is geldig. + Ongeldig + Geldig + Wil je de wijzigingen opslaan? + Opslaan? + Filmbron + Bron naam: + Bron pad: + Bron opties + Slechts één film per map* + Gebruik mapnaam voor eerste oplijsting + Scan recursief + Selecteer de bronmap voor de film mappen en bestanden + Instellen naam: + Bewerk set + Voeg nieuwe set toe + Een nieuwe versie is beschikbaar + Kon toepassing om bij te werken niet laden + Klik hier + om embermm.com te bezoeken + Sorteer bestanden in mappen + Start + Status + Voer het pad in en druk op "start" om te beginnen. + Pad om te sorteren: + Selecteer de map met bestanden om te sorteren. + Aan het Verplaatsen + WAARSCHUWING: als je verder gaat worden alle bestanden in afzonderlijke mappen gesorteerd. + De map die je hebt ingegeven bestaat niet. Voer een geldig pad in. + Map niet gevonden + Selecteer studio + Wijzig de details voor de geselecteerde film + Lokale trailer gevonden + Studio: + Trailer URL: + Credits: + MPAA waarderingsomschrijving: + Handmatig bewerken + Acteurs: + Naam + Rol + Miniatuur + MPAA waardering: + Introductiedatum: + Certificaten + Speelduur: + Regisseur: + Top 250: + Plot: + Verhaalschets: + Quotelijn: + Stemmen: + Beoordeling: + Titel: + Verwijder poster + Wijzig poster (scan) + Wijzig poster (lokaal zoeken) + Verwijder fanart + Wijzig fanart (scan) + Wijzig fanart (lokaal zoeken) + Je hebt extraminiaturen in de wachtrij klaarstaan om te verplaatsen naar de film map. + Verplaats nu + Bewaar als fanart + Beeld extractie + Max. Ember versie + Categorie + Pad naar nieuwe schermafbeelding: + Huidige schermafbeelding: + Schermafbeelding moet in JPEG formaat zijn, gelijk aan of kleiner dan 150 KB groot en gelijk aan of kleiner dan 133x95 pixels. + Versie: + Geïnstalleerd: + Opschonen buffer + Wijzig poster (download) + Wijzig fanart (download) + Een of meerdere bufferbronnen zijn op dit moment in gebruik en kunnen op dit moment niet gewist worden. + Kan buffer niet opschonen + Afmeting: {0}x{1} + De trailer kon niet afgespeeld worden. Oorzaak kan een ongeldige URL zijn of dat u niet de juiste speler hebt om dit type trailer af te spelen. + Fout bij afspelen Trailer + Addon bestand + Opslaan + Opnieuw Instellen + Filter + Toepassen + Nieuwe addon + Jaar + Wijzig addon - + Addon bestanden + Video + Audio + Onbekend + Geannuleerd + Addons + Aanmelden + Aanmelden op Addons Server + Ophalen "{0}" addons... + Aan het aanmelden... + Vertalingen + Sjablonen + Foutieve invoer + Andere + Maak nieuw + Verwijder addon + Om verder te gaan met verwijderen moet je bevestigen dat je de eigenaar bent van deze addon. + Bevestig eigendom + Herstarten Ember Media Manager? + Recente wijzigingen vereisen een herstart van Ember Media Manager om te voltooien.\n\nWil je Ember Media Manager nu herstarten? + Ja + Land + Originele titel + + + + + + + + + + + + + + + + + + + + X-Large + Large + Medium + Small + + + + + + + + + + + + + + + + + + + + + + + + + DVD + Ongeldig + + + + Bestaat + + + + + + Klaar + Klaar + + + Set manager + Sets + Films in sets + Niets geselecteerd + Films en Sets aan het laden... + Afbreken laden... + Film boxsets toevoegen en instellen. + + Download + + + + + + + + + + + Maatwerk scanner + Maak een maatwerk scanner + Selectie filter + Bijwerk modus + Wijziger + Begin + Opties + Andere medewerkers + Muziek door + Producenten + Schrijvers + Studio + Speelduur + Quote + Acteurs + Stemmen + Beoordeling + MPAA + Ember opstart wizard + < Terug + Verder > + Welkom bij Ember Media Manager + Tip: Bij selecties met de tekst <film> zal door Ember Media Manager de bestandsnaam van de film gebruikt worden. + Voegen bron toe + Dat was niet zo moeilijk, toch? Zoals eerder vermeld kan je deze en andere opties wijzigen in het instellingen venster. + Dat is alles!{0}Ember Media Manager is klaar voor gebruik! + Pad + Recursief + Gebruik mapnaam + Enkele video + Ten eerste, vertel Ember Media Manager eens waar je films staan. Je kunt zoveel bronnen opgeven als je wilt. + Het is de eerste keer dat je Ember Media Manager gebruikt of je bent net naar een nieuwe versie overgestapt. Er zijn een paar dingen die Ember Media Manager nodig heeft om goed te werken. Deze wizard zal je door de verschillende stappen helpen om Ember Media Manager in te stellen. {0}{0}Alleen een handvol instellingen zal tijdens deze wizard worden behandeld. Je kunt deze en andere instellingen op ieder moment wijzigen door "Instellingen.." in het "Wijzigen" menu te selecteren. + Nu Ember Media Manager weet waar te zoeken moeten we nog instellen wat het moet zoeken. Selecteer gewoon elke combinatie van bestandtypes van waaruit je Ember Media Manager wilt laten inlezen en opslaan. Je kunt er meer dan één kiezen in iedere sectie. + Enkele opties waarin je kan geïnteresseerd zijn:{0}{0}Maatwerk filters - Indien je filmbestanden zaken als "DVDRip", "BluRay", "x264", enz. in hun map- of bestandsnaam hebben en je wenst de namen te filteren bij het inladen in de medialijst, kan je de Maatwerk Filter optie gebruiken. De maatwerkfilter is verenigbaar met RegEx om er het meeste uit te halen.{0}{0}Afbeeldingen - Deze afdeling laat toe te selecteren van welke websites je afbeeldingen wilt 'scannen', alsook instellen van de voorkeursafmetingen voor de afbeeldingen die Ember Media Manager selecteert.{0}{0}Blokkeringen - In deze afdeling kan je bepaalde informatie 'blokkeren' zodat deze niet bijgewerkt wordt zelfs al 'herscan' je een film. Dit is nuttig als je manueel een titel, plot of verhaalschets bewerkt en je wijzigingen wenst te behouden. + Weet je zeker dat je de geselecteerde bronnen wilt verwijderen? Hiermee verwijder je de films van deze bronnen uit de Ember Media Manager database. + Metadata is niet beschikbaar voor deze film. Probeer opnieuw te scannen. + Instellingen + Verbinding + + + + Gebruikersnaam: + Wachtwoord: + + + Overige + Interface taal + Pas dashboard animaties toe + Controleer op nieuwe versies + Overschrijven niet in overeenstemming zijnde NFO's + (indien geselecteerd zullen de niet in overeenstemming zijnde nfo's worden hernoemd naar <bestandsnaam>.info) + Log fouten naar een logbestand + Toon overlapping indien de video een audiostroom bevat met de volgende taal: + Schoon bestanden op + Standaard + Expert + Zet video extensies op de geldige lijst + Video extensies op de geldige lijst: + PAS OP: het gebruik van de Expert Modus Opschoner kan mogelijk gewenste bestanden wissen. Wees voorzichtig in het gebruik van dit instrument. + Download addons + Bestand + + + Bestanden aan het downloaden... + + + + Map/bestandsnaam filters + Zet namen om naar de juiste beginlettering + Toon altijd de genre tekst + Genre Taalfilter + Toon geen fanart + Toon geen posters + Toon afbeeldingsformaat + Help + Markeer nieuwe films + Media lijst opties + Wanverhouding tolerantie: + Controleer zekerheid in titel juistheid + Sorteertekens om te negeren + Toon jaar in lijsttitel + Verberg Extraminiaturen kolom + Verberg Ondertitel Kolom + Verberg Trailer kolom + Verberg Info Kolom + Verberg Fanart Kolom + Verberg Poster kolom + Bestanden benoemen + Gebruik <film> enkel voor mappen met meerdere films. + YAMJ geschikte VIDEO_TS bestandsplaatsing / benoeming + Frodo geschikte VIDEO_TS bestandsplaatsing / benoeming + + + + Kwaliteit: + Max Breedte: + Max Hoogte: + Automatisch schalen: + Voorkeursformaat: + Overschrijf bestaande + Instellingen laden... + + + + Globale Blokkeringen + Blokkeer Trailer + Blokkeer Genre + Blokkeer Studio + Blokkeer Beoordeling + Blokkeer Quote + Blokkeer Titel + Blokkeer Verhaalschets + Blokkeer Plot + Afbeeldingen + Sla de URL's niet op in Nfo + Ophalen bij Enkelvoudig Scannen + MoviePosterDB.com + TheMovieDB.org + IMPAwards.com + Gebruik indien geen fanart gevonden + Metadata niet beschikbaar voor deze aflevering. Overweeg herscan. + Geen spoilers + Aantal om te maken: + Uitpakken tijdens scannen + Gebruik verhaalschets indien plot leeg is + + Scan alleen acteurs met afbeeldingen + Gebruik certificering van MPAA + Scan volledige cast + Scan volledige crew + Gebruik certificeringstaal: + Formaat duurtijd: + Gebruik duurtijd voor speelduur + Scan metadata + Configureer Ember's uiterlijk en gebruik. + Verwijder geselecteerde + Achtergronden map + Bewaar fanart automatisch in achtergronden map + Verwijder alle bestaande + + Verzamel alleen URL's bij het scannen + Haal op tijdens Enkelvoudig Scannen + + Ophalen tijdens autom. scannen + + Gebruik trailer ondersteuning + Geen stackextensies + + + + Geldige video extensies + Bewerk Bron + Overige opties + Herken VIDEO_TS mappen + Sla controle op grootte van gecombineerde bestanden over + MB + Sla bestanden over kleiner dan: + Grootte (Extractie Beelden) + Vulling + Breedte: + Hoogte: + Gebruik maatwerkgrootte + Gebruik Eigen resolutie + Buffering + Gebruik tijdens autom. scannen + Markeer nieuwe series + Blijvende buffer voor afbeeldingen + Gebruik buffer voor afbeeldingen + Selecteer de map waar u de achtergronden wenst te bewaren. + Bestandssysteem + + Bestanden en bronnen + Scanners - Gegevens + Scanners - Afbeeldingen & trailers + Breed + + + + + + + + + + Acteursbuffer aan het maken: + Alles + [geen] + [uitgezet] + Posters aan het scannen: + Fanart aan het scannen: + Trailers aan het scannen: + Extraminiaturen aan het maken: + Filmdetails aan het nakijken: + Scanvelden - Algemeen + Limiet: + Bestandslocatie: + Toon alleen films van de geselecteerde bron. + Filter Mankerende Onderdelen + Controleer op Poster + Controleer op Fanart + Controleer op NFO + Controleer op Trailer + Controleer op Ondertitels + Controleer op Extraminiaturen + + + + Top 250 + + + Metadata Bewerker + Videosporen + Audiosporen + Ondertitelsporen + Spoortype + Download alle fanart afbeeldingen van de volgende grootte als extraminiaturen: + Extra sortering + Datum toegevoegd + Bronnen + Wijzig meta gegevens + Codec + Scantype + Breedte + Hoogte + Aspect + Duurtijd + Taal + Kanalen + Voorkeur + Spoorbewerker + Beeldverhouding + Interlaced + Progressief + Videospoor + Audiospoor + Ondertitelspoor + Film thema + Markeer nieuwe afleveringen + Media aan het scannen (huidige filter - vragen): + Media aan het scannen (huidige filter - automatisch): + Huidige filter + Standaarden volgens bestandstype + Bestandstype + Geselecteerde onderdelen: {0} + Gebruik IFO parsing + Thema's + + + + + + U hebt {0} mappen geselecteerd om te openen. Bent u zeker? + + + + + + + Sorteertitel + Sets opslaan op YAMJ wijze + Gegevensbank opschonen + Première: {0} + Verwijder uit gegevensbank + Uitgezonden: {0} + Seizoen: {0}, Aflevering: {1} + Werk alles bij + Seizoen + Er is geen informatie beschikbaar voor deze serie + Er is geen informatie beschikbaar voor deze aflevering. + TV Series + Seizoen + Speciale Seizoen Afleveringen + Bewerk aflevering + Wijzig de details voor de geselecteerde aflevering + Uitgezonden: + Seizoen: + Aflevering: + Laad aflevering + Bewaar als poster + Bewerk serie + Wijzig de details voor de geselecteerde serie + Première: + Thema TV Serie + Thema Aflevering + Schoon de gegevensbank op na het bijwerken van de bibliotheek + Negeer laatste scantijd bij het bijwerken van de bibliotheek + Toon map/bestandsnaam filters + Aflevering map/bestandsnaam filters + Proxy + Gebruik proxy + Proxy URL: + Proxy poort: + Credentials + Gebruik credentials + Domein: + TV Waarderingsregio + Series + Seizoenen + Afleveringen + Poster Serie + Fanart Serie + Posters Seizoen + Fanart Seizoen + Posters Aflevering + Fanart Aflevering + [MISSING] + Bewerk RegEx + Toon match RegEx + Seizoensmatch RegEx + Episodematch RegEx + Pas toe op + Bewerk RegEx + Toon RegEx + RegEx Aflevering + TV Series + RegEx + TV Serie + TV Aflevering + + + + TV Bron + Selecteer de bronmap voor de TV serie mappen/bestanden. + + Donneer + Gegevensbank opschonen + Forceer Titel Taal + Gebruik mapnaam in bron type controle + Sorteer de bestanden in mappen voor het updaten van de bibliotheek + Locale Trailer: + Bevestig onderdelen die verwijderd zullen worden + Schakel alle bestanden + Herscan + Klaarmaken voor bijwerken... + We zijn nu klaar om bij te werken. Ember zal nu afsluiten zodat het bijwerken kan starten.\n\nWilt u verder gaan? + JA + NEE + Bijwerken + Certificering + AfleveringsGidsURL + Première op + Acteurs + Seizoen {0} + Aflevering + Uitgezonden + Credits + Voorkeursformaat: + Vernieuwen Serie: + <h>=Uren <m>=Minuten <s>=Seconden + Toon ontbrekende afleveringen + Stel de afleveringstitel samen in plaats van te filteren + Alle seizoenposters + Haal enkel afbeeldingen voor de geselecteerde taal op + Haal ook Engelse afbeeldingen op + API Key: + Sortering afleveringen: + Herdownload serie informatie elke: + Voorkeurstaal: + Haal beschikbare talen op + Serie + TV Seizoen + Geen + Leeg + Grafisch + Tekst + Week + Veertiendaags + Maand + Nooit + Altijd + Moduleinstellingen + Aflevering # + Alle afleveringen aan het laden: + Alle afbeeldingen aan het opslaan: + theTVDB aan het doorzoeken... + Selecteer afbeeldingen: + Serie Zip aan het downloaden... + TV Serie aan het controleren: + TV aflevering aan het controleren: + Weet je zeker dat je de geselecteerde serie(s) en alle bijbehorende afleveringen wilt verwijderen? + Weet je zeker dat je de geselecteerde aflevering wilt verwijderen? + Weet je zeker dat je het geselecteerde seizoen en bijbehorende afleveringen wilt verwijderen? + (Her)scan serie + Wijzig Serie + Verwijder TV Serie + Bewerk Seizoen + Wijzig Afbeeldingen + Verwijder Seizoen + Wijzig Aflevering + Verwijder Aflevering + Aangezet + Uitgezet + + Schrijver + + + + + + Samenvatting Plot: + + + Alle seizoensposter + + + + + + Donneer + &Versies... + &Module instellingen... + Interface + Scan in volgorde van laatste schrijftijd + Standaard sortering afleveringen: + + Scanner - Trailers + Voorkeurskwaliteit: + TMDB Mirror: + Modules + Vervolgens laten we Ember Media Manager weten waar het je series kan vinden. Je kan zoveel bronnen opgeven als je wenst. + Tenslotte laten we Ember Media Manager weten welke TV Serie bestanden te zoeken. Selecteer gewoon een combinatie van bestandtypes vanuit dewelke je Ember Media Manager wilt laten opladen en bewaren. Je kunt er meer dan één kiezen uit iedere onderdeel. + Verzend naar PasteBin.com + Kopieer naar klembord + Er gebeurde een fout tijdens het verzenden van gegevens naar PasteBin.com + Viewer foutbestanden + Voordat u foutrapporten doorstuurt, verzeker u ervan dat de fout nog niet gerapporteerd werd. U kan een oplijsting van alle gekende fouten hier terugvinden: + http://www.embermm.com/projects/embermm/issues + PasteBin URL: + Oude Titel: {0} | Nieuwe Titel: {1} + Film gescand + Toegevoegde Aflevering: + Toegevoegde Film: + Er is een fout voorgekomen + Nieuwe film toegevoegd + Nieuwe aflevering toegevoegd + TV RegEx profielen + RegEx profiel + Omschrijving + Overige + Audio en video codec mapping + Filmbron: + Downloads: + + + Gebruik acteur miniaturen + Kijk uit naar ""Dump"" map + Wijzig de details voor het geselecteerde seizoen + + Toon alle seizoensposter + Dit zijn specifieke instellingen voor de scanner en werken als een filter. Controleer ook de algemene Ember instellingen. + * Binnenin de Seizoensmap + Bewaar enkel de waarde in NFO + + Scanners - Afbeeldingen + Banner + Absoluut + Weet je zeker dat je naar de standaard lijst van serie filters terug wilt gaan? + Weet je zeker dat je naar de standaard lijst van aflevering filters terug wilt gaan? + Weet je zeker dat je naar de standaard lijst van video filters terug wilt gaan? + Weet je zeker dat je naar de standaard lijst van geldige video extensies terug wilt gaan? + Weet je zeker dat je naar de standaard lijst van serie RegEx terug wilt gaan? + >> Niets geselecteerd << + + + + Gebruik klik-scan + &Controleer op updates + Geen updates op het ogenblik + Vraag bij klik-scan + Media aan het scannen (alle films - overslaan): + Basis instelling + Standaard opties aan het aanmaken... + Modules aan het laden... + GUI aan het aanmaken... + Gegevensbank aan het opladen... + Module aan het uitvoeren... + Media aan het opladen... + Commandolijn Scannen... + Vertalingen aan het opladen... + Uitvoeringselementen aan het positioneren... + Menu's aan het instellen... + Versie {0}.{1}.{2}.{3} + Metagegevens + XBMC Frodo + Top 250 + EmberMM.com &Wiki... + + + + + Gebruik de bestandscreatiedatum van het videobestand + + + + + Blokkeer taal (video) + Blokkeer taal (audio) + Blokkeer MPAA/Certificering + Gebruik MPAA om op terug te vallen voor de FSK Waardering + Gezien + Verberg Gezien kolom + Lock Subtitle + Retry + Abort + Database Compatibility + Database is not compatible! + Your database is not compatible with this version of Ember!\n\nYour existing database will be saved as "Media.emm_old" and an empty database will be created.\n\nTo adapt your old Databank follow this tutorial. + diff --git a/Ember Media Manager/Langs/English_(en_US)-Help.xml b/Ember Media Manager/Langs/English_(en_US)-Help.xml index 81f1175..bf50c58 100644 --- a/Ember Media Manager/Langs/English_(en_US)-Help.xml +++ b/Ember Media Manager/Langs/English_(en_US)-Help.xml @@ -1,362 +1,369 @@ - If enabled, the value of the genre images will always be displayed. If disabled, the text will only be visible when you hover your mouse over one of the genre images. - If enabled, Ember will check the folder name for source types. If disabled, Ember will only check the file name. - If enabled, fanart will not be displayed in the main window. This is helpful to speed up the interface on slow computers. - If enabled, posters will not be displayed in the main window. This is helpful to speed up the interface on slow computers. - If enabled, the dimensions of the images (posters and fanart) will be overlayed on top of the images. - If enabled, Ember will check for a new version at each start up. - If enabled, NFO files will be overwritten when saving. If disabled, they will be renamed to *.info. - If enabled, all errors will be logged to a file located in <Ember Installation Directory>\Log\errlog.txt. - Select the theme to apply for the episode layout. - Select the theme to apply for the TV Show and Season layout. - Select the theme to apply for the movie layout. - Download addons for Ember, including modules, themes, translations to other languages, and export templates. - Select the language to use for Ember's interface. (You must restart Ember for changes to take effect) - Clean all files named "folder.jpg". - Clean all "extrathumbs" folders. - Clean all files named "movie.tbn". - Clean all files named <movie>.jpg. - Clean all files named <movie>.tbn. - Clean all files named "movie.jpg". - Clean all files named "fanart.jpg". - Clean all files named "poster.jpg". - Clean all files named <movie>-fanart.jpg. - Clean all files named "poster.tbn". - Clean all files named "movie.nfo". - Clean all files named <movie>.fanart.jpg. - Clean all files named <movie>.nfo. - Automatically whitelist all files which have an extension in the "Valid Video Extensions" list. - Remove the selected extension from the whitelist. - Add the entered extension to the whitelist. - Enter an extension to add to the whitelist. - This list contains all the current extensions that will be skipped during cleaning. - If enabled, Ember will save sets information in a format that is compatible with YAMJ. If disabled, Ember will save sets information in a format that is compatible with XBMC. - If enabled, when clicking on a checkbox in the movies list a non-automatic will be used. If disabled, an automatic scrape will be used. - If enabled, new movies will be "marked". If disabled, new movies will still be colored green until updated or the next Ember session. - Select the language(s) of the genres you would like Ember to display. - Enter the tolerance level you would like Ember to use when title matching. The higher the number, the more lenient the algorithm is. 0 = disabled - Enable this to have Ember check the differences between the title of the movie and it's file name. This is useful to make sure that the scraped data is actually for the selected movie file. - Remove the selected sort token from the list. - Add the entered sort token to the list. - Enter in a sort token to add to the list. - A list of all current sort tokens. (If the movie title begins with a sort token, then the sort token will be moved to the end. For example: Sort Token = "The", Title = "The Dark Knight", Result = "Dark Knight, The") - If enabled, Ember will display the year of the movie in the main movie list. - Hide the Extrathumbs column from the main movie list. - Hide the Subtitles column from the main movie list. - Hide the Trailers column from the main movie list. - Hide the Info column from the main movie list. - Hide the Fanart column from the main movie list. - Hide the Poster column from the main movie list. - If enabled, "<movie>.ext" items will only be utilized in folders that have multiple movies. This is useful when you have a mixture of multiple movie and single movie folders and you wish to reduce the number of extra files. - Save trailer files as "<movie>[trailer].ext". - Save trailer files as "<movie>-trailer.ext". - If enabled, Ember will save the meta files in the parent directory (YAMJ compatible). If disabled, Ember will save the meta files directly to the VIDEO_TS folder (XBMC compatible). This setting applies to BDMV folders, as well. - Save nfo files as "<movie>.nfo". - Save nfo files as "movie.nfo". - Save fanart files as "<movie>.fanart.jpg". - Save fanart files as "<movie>-fanart.jpg". - Save fanart files as "fanart.jpg" - Save poster files as "folder.jpg" - Save poster files as "poster.jpg" - Save poster files as "poster.tbn" - Save poster files as "<movie>.jpg" - Save poster files as "movie.jpg" - Save poster files as "<movie>.tbn" - Save poster files as "movie.tbn" - The list of all current movie sources. (Paths that will be scanned for movie files) - The list of all current movie sources. (Paths that will be scanned for movie files) - The list of all current movie sources. (Paths that will be scanned for movie files) - The list of all current movie sources. (Paths that will be scanned for movie files) - The list of all current movie sources. (Paths that will be scanned for movie files) - The list of all current movie sources. (Paths that will be scanned for movie files) - The list of all current movie sources. (Paths that will be scanned for movie files) - Remove the selected source(s) from the sources list. - Add a new folder to the sources list. - Resize poster files to the entered width. - Resize poster files to the entered height. - Adjust the quality of the poster files. (0 = original quality) - Resize poster files before saving. - Select the preferred poster size you would like to retreive from the image servers. During automatic scrapers, Ember will attempt to find a poster of this size first. If a poster of the selected size cannot be found, the first available image will be used instead. - If enabled, existing poster files will be overwritten if new ones are selected. If disabled, poster files will only be saved if a current one does not already exist. - Resize fanart files to the entered width. - Resize fanart files to the entered height. - If enabled, Ember will only retrieve fanart of the selected size. (NOTE: If there are no fanart images of the selected size available, no fanart images will be retrieved) - Adjust the quality of the fanart files. (0 = original quality) - Resize fanart files before saving. - Select the preferred fanart size you would like to retrieve from the image servers. Durint automatic scrapers, Ember will attempt to find a fanart image of this size first. If a fanart image of the selected size cannot be found, the first available image will be used instead. - If enabled, existing fanart files will be overwritten if new ones are selected. If disabled, fanart files will only be saved if a current one does not already exist. - If enabled, Ember will not save URLs to the poster and fanart images in the nfo files. (Recommended for YAMJ compatibility) - Select images while scraping a single movie file. - Save images to the image cache when scraping multiple movie files. - If enabled, Ember will not clear the image cache between sessions. - Enable Ember's image cache. - If enabled and no fanart is available for the selected movie, Ember will use one of the extracted thumbnails as the fanart image. - If enabled, extrathumbs will only be extracted from the first half of the movie in order to avoid "spoilers". - Enter the number of extrathumbs you would like to automatically generate. - If enabled, Ember will automatically extract the entered number of extrathumbs during scraping. - Enter the domain for your proxy. (Optional - not necessary for most proxies) - Enter the password needed to access your proxy. - Enter the username needed to access your proxy. - Enable if your proxy requires authentication. - Enter the port needed to access your proxy. - Enter the IP or URL needed to access your proxy. - If enabled, Ember will use the entered proxy for all internet communications. - Move the selected filter up in the list. (Filters are processed in order from top to bottom) - Move the selected filter down in the list. (Filters are processed in order from top to bottom) - Automatically apply proper casing to movie titles. (Example: "the dark knight" becomes "The Dark Knight") - Remove the selected filter from the list. - Add the entered filter to the list. - Enter text or regex to use as a filter. Special: "a[->]b" = replace all occurrances of "a" with "b" (Example: ".[->]_" will replace all periods in the title with underscores.) - The list of all current filters that will be used when generating titles for movies. - If enabled, Ember will display movies missing extrathumbs when utilizing the Missing Items Filter. - If enabled, Ember will display movies missing subtitle files when utilizing the Missing Items Filter. - If enabled, Ember will display movies missing trailers when utilizing the Missing Items Filter. - If enabled, Ember will display movies missing nfo files when utilizing the Missing Items Filter. - If enabled, Ember will display movies missing fanart when utilizing the Missing Items Filter. - If enabled, Ember will display movies missing posters when utilizing the Missing Items Filter. - If enabled, Ember will automatically save new fanart images to the entered backdrops folder. - Open a folder browser to select a backdrops folder. - The path to the backdrops folder. - Remove the selected extension from the No Stack Extensions list. - Add the entered extension to the No Stack Extensions list. - Enter an extension to add to the No Stack Extensions list. - The list of extensions Ember will not stack into single files when adding them to the library. - Remove the selected extension from the Valid Video Extensions list. - Add the entered extension to the Valid Video Extensions list. - Enter an extension to add to the Valid Video Extensions list. - The list of extensions Ember will look for when updating the library. - Edit the selected source. - If enabled, Ember will add new files in order of there last modified time. If disabled, Ember will add new files to the library in alphabetical order. - If enabled, Ember will sort all single files in the top directory of the source into their own folders. - If enabled, Ember will scan all folders/files regardless of the last scan time. If disabled, Ember will only scan files/folders added after the last time files were scanned. - If enabled, Ember will clean the movie database after each scan. (Remove entries for files that no longer exist or no longer match selected setting values) - If enabled, Ember will attempt to recognize VIDEO_TS folders even if the folder is not named "VIDEO_TS". If disabled, Ember will still handle VIDEO_TS folders if the folder is named "VIDEO_TS". This setting also applies to BDMV folders. - If enabled, Ember will not skip files smaller than the entered "Skip Files Smaller Than" size if they contain stacking markers (such as "CD1" or "DVD2"). - Ember will use the entered size as the minimum size for movie files. Any files smaller than this will be skipped when updating the library. - Ember will use the entered size as the minimum size for episode files. Any files smaller than this will be skipped when updating the library. - Select the preferred quality of the downloaded trailers. - If enabled, Ember will delete all existing trailers for the movie before saving the new one. - If enabled, existing trailer files will be overwritten when saving new ones. If disabled, new trailer files will only be saved if one does not already exist. - If enabled, trailer files will not be downloaded. Instead, the trailer url will be saved to the nfo. - If enabled, trailers will be downloaded while scraping a single movie. - If enabled, trailers will be downloaded during "All Items" scrapers. - Enable Ember's trailer support. - Select the size of the fanart you would like to download as extrathumbs. - If enabled, Ember will automatically download all fanart of the selected size as extrathumbs. - Resize extrathumbs to the entered width. - Resize extrathumbs to the entered height. - If enabled, Ember will add "black bars" to the edges of the extrathumbs if they are smaller than the entered size. - Resize extrathumbs to the entered size, regardless of the native resolution. - Save extrathumbs using the same resolution as the video. - The list of all current TV Show sources. (Paths that will be scanned for TV Show files) - The list of all current TV Show sources. (Paths that will be scanned for TV Show files) - The list of all current TV Show sources. (Paths that will be scanned for TV Show files) - The list of all current TV Show sources. (Paths that will be scanned for TV Show files) - If enabled, Ember will add new files in order of there last modified time. If disabled, Ember will add new files to the library in alphabetical order. - If enabled, Ember will scan all folders/files regardless of the last scan time. If disabled, Ember will only scan files/folders added after the last time files were scanned. - If enabled, Ember will clean the TV Show database after each scan. (Remove entries for files that no longer exist or no longer match selected setting values) - Add a new folder to the sources list. - Edit the selected source. - Remove the selected source(s) from the sources list. - Save All Seasons poster files as "season-all.jpg". - Save All Seasons poster files as "season-all.tbn". - Save episode fanart files as "<episode>.fanart.jpg". - Save episode fanart files as "<episode>-fanart.jpg". - Save episode poster files as "<episode>.jpg". - Save episode poster files as "<episode>.tbn". - Save season fanart files as "<season>.fanart.jpg". (Will only save inside the season directory, if it exists) - Save season fanart files as "<season>-fanart.jpg". (Will only save inside the season directory, if it exists) - Save season fanart files as "fanart.jpg". (Will only save inside the season directory, if it exists) - Save season fanart files as "folder.jpg". (Will only save inside the season directory, if it exists) - Save season poster files as "<season>.jpg". (Will only save inside the season directory, if it exists) - Save season poster files as "<season>.tbn". (Will only save inside the season directory, if it exists) - Save season poster files as "poster.jpg". (Will only save inside the season directory, if it exists) - Save season poster files as "poster.tbn". (Will only save inside the season directory, if it exists) - Save season poster files as "seasonX.tbn". (Example: season2.tbn) - Save season poster files as "seasonXX.tbn". (Example: season02.tbn) - Save show fanart files as "<show>.fanart.jpg". - Save show fanart files as "<show>-fanart.jpg". - Save show fanart files as "fanart.jpg". - Save show poster files as "<show>.jpg". - Save show poster files as "<show>.tbn". - Save show poster files as "poster.jpg". - Save show poster files as "poster.tbn". - Save show poster files as "folder.jpg". - Add the entered regex to the TV Show Regex list. - Enter the regex to use to detect the season number. - Choose if you would like to process the season regex against the directory name or the episode file name. - Enter the regex to use to detect the episode number. - Choose if you would like to process the episode regex against the directory name, the episode file name, or the results of the season regex. - Edit the selected TV Show regex. - Remove the selected TV Show regex from the list. - The list of current TV Show regex. - The list of current TV Show regex. - The list of current TV Show regex. - The list of current TV Show regex. - The list of current TV Show regex. - The list of current TV Show regex. - If enabled, episodes that are missing from your collection will be displayed in the episode list, but will be colored a light gray. - Hide the Info column from the episode list. - Hide the Fanart column from the episode list. - Hide the Poster column from the episode list. - Hide the Fanart column from the season list. - Hide the Poster column from the poster list. - Hide the Info column from the show list. - Hide the Fanart column from the show list. - Hide the Poster column from the show list. - If enabled, if an All Season poster exists for the selected show, it will be displayed on the right of the interface. - Select the region of the ratings you would like to display in the interface. - If enabled, Ember will not attempt to filter episode file names for titles and instead will build them from the show name, season, and episode until a proper title has been fetched. - Move the selected filter up in the list. (Filters are processed in order from top to bottom) - Move the selected filter down in the list. (Filters are processed in order from top to bottom) - Automatically apply proper casing to episode titles. (Example: "stole beer from golfer" becomes "Stole Beer From Golfer") - Remove the selected filter from the filter list. - Add the entered filter to the filter list. - Enter a filter to add to the filter list. - The list of all current filters that will be used when generating titles for episodes. - Move the selected filter up in the list. (Filters are processed in order from top to bottom) - Move the selected filter down in the list. (Filters are processed in order from top to bottom) - Automatically apply proper casing to episode titles. (Example: "my name is earl" becomes "My Name is Earl") - Remove the selected filter from the filter list. - Add the entered filter to the filter list. - Enter a filter to add to the filter list. - The list of all current filters that will be used when generating titles for shows. - If enabled, all English images will be retrieved, regardless of the selected language. - If enabled, only images for the preferred language will be retrieved. - Resize show poster files to the entered width. - Resize show poster files to the entered height. - Adjust the quality of the show poster files. (0 = original quality) - Resize show poster files before saving. - Select the preferred show poster type you would like to retreive from the image servers. During the show scraper, Ember will attempt to find a poster of this type first. If a poster of the selected size cannot be found, the first available image will be used instead. - If enabled, existing show poster files will be overwritten if new ones are selected. If disabled, show poster files will only be saved if a current one does not already exist. - Resize show fanart files to the entered width. - Resize show fanart files to the entered height. - Adjust the quality of the show fanart files. (0 = original quality) - Resize show fanart files before saving. - Select the preferred fanart size you would like to retreive from the image servers. During the show scraper, Ember will attempt to find a fanart image of this size first. If a fanart image of the selected size cannot be found, the first available image will be used instead. - If enabled, existing show fanart files will be overwritten if new ones are selected. If disabled, show fanart files will only be saved if a current one does not already exist. - Resize season poster files to the entered width. - Resize season poster files to the entered height. - Adjust the quality of the season poster files. (0 = original quality) - Resize season poster files before saving. - Select the preferred season poster type you would like to retreive from the image servers. During the show scraper, Ember will attempt to find a poster of this type first. If a poster of the selected size cannot be found, the first available image will be used instead. - If enabled, existing season poster files will be overwritten if new ones are selected. If disabled, season poster files will only be saved if a current one does not already exist. - Resize season fanart files to the entered width. - Resize season fanart files to the entered height. - Adjust the quality of the season fanart files. (0 = original quality) - Resize season fanart files before saving. - Select the preferred fanart size you would like to retreive from the image servers. During the show scraper, Ember will attempt to find a fanart image of this size first. If a fanart image of the selected size cannot be found, the first available image will be used instead. - If enabled, existing season fanart files will be overwritten if new ones are selected. If disabled, season fanart files will only be saved if a current one does not already exist. - Resize episode poster files to the entered width. - Resize episode poster files to the entered height. - Adjust the quality of the episode poster files. (0 = original quality) - Resize episode poster files before saving. - If enabled, existing episode poster files will be overwritten if new ones are selected. If disabled, episode poster files will only be saved if a current one does not already exist. - Resize episode fanart files to the entered width. - Resize episode fanart files to the entered height. - Adjust the quality of the episode fanart files. (0 = original quality) - Resize episode fanart files before saving. - Select the preferred fanart size you would like to retreive from the image servers. During the show scraper, Ember will attempt to find a fanart image of this size first. If a fanart image of the selected size cannot be found, the first available image will be used instead. - If enabled, existing episode fanart files will be overwritten if new ones are selected. If disabled, episode fanart files will only be saved if a current one does not already exist. - Enable scraping show rating. - Enable scraping show actors. - Enable scraping show studios. - Enable scraping show premiered date. - Enable scraping the Episode Guide URL. - Enable scraping show MPAA. - Enable scraping show plot. - Enable scraping show genre. - Enable scraping show title. - Enable scraping episode actors. - Enable scraping episode credits. - Enable scraping episode directors. - Enable scraping episode plot. - Enable scraping episode rating. - Enable scraping episode aired date. - Enable scraping episode title. - Enable scraping episode number. - Enable scraping season number. - If enabled, the episode title will only be scraped if a current one does not exist. - If enabled, the episode rating will only be scraped if a current one does not exist. - If enabled, the episode plot will only be scraped if a current one does not exist. - If enabled, the show plot will only be scraped if a current one does not exist. - If enabled, the show genre will only be scraped if a current one does not exist. - If enabled, the show studio will only be scraped if a current one does not exist. - If enabled, the show rating will only be scraped if a current one does not exist. - If enabled, the show title will only be scraped if a current one does not exist. - The list of extensions that have default meta data entries. - Enter an extension to create a default meta data entry. - Remove the default meta data for the selected extension from the default meta data list. - Edit the default meta data for the selected extension in the default meta data list. - Create default meta data for the entered extension and add the to the default meta data list. - If the selected language is found in the episode, a special icon indicator will be overlayed on the meta data audio icon. - If enabled, Ember will scan episode files for meta data. - Select the time to wait between updating cached TV information files. - Enter the TVDB API Key of the media center/player you use. This is not necessary for Ember to function. It is only used when saving the Episode Guide URL to the nfo. - Enter the mirror to use when retrieving information from theTVDB. - Click to download all available languages from theTVDB. - Select the preferred language to use when downloading show information and images. - Enable scraping movie certification. - Enable scraping movie Top 250 ranking. - Enable scraping movie production country. - Limit the number of scraped genres to the entered value. - Limit the number of scraped actors to the entered value. - Enable scraping movie other crew. (Scrape Full Crew must be enabled) - Enable scraping movie musicians. (Scrape Full Crew must be enabled) - Enable scraping movie producers. (Scrape Full Crew must be enabled) - Enable scraping movie writers. - Enable scraping movie studio. - Enable scraping movie runtime. - Enable scraping movie plot. - Enable scraping movie outline. - Enable scraping movie genre. - Enable scraping movie director. - Enable scraping movie tagline. - Enable scraping movie cast. - Enable scraping movie votes. - Enable scraping movie trailer url. - Enable scraping movie rating. - Enable scraping movie release date. - Enable scraping movie MPAA. - Enable scraping movie year. - Enable scraping movie title. - The list of extensions that have default meta data entries. - Enter an extension to create a default meta data entry. - Remove the default meta data for the selected extension from the default meta data list. - Edit the default meta data for the selected extension in the default meta data list. - Create default meta data for the entered extension and add the to the default meta data list. - If enabled, Ember will process *.ifo files for meta data information. - If the selected language is found in the movie, a special icon indicator will be overlayed on the meta data audio icon. - Enter the format you wish to use for the movie duration retrieved from scanning meta data. Note you can also use <0m> for 0 padding minutes - If enabled, Ember will scan movie files for meta data. - Use the movie duration retrieved from scanning meta data as the runtime of the movie. - If enabled, the movie outline will only be scraped if a current one does not exist. - If enabled, the movie plot will only be scraped if a current one does not exist. - If enabled, the movie trailer will only be scraped if a current one does not exist. - If enabled, the movie genre will only be scraped if a current one does not exist. - If enabled, the movie studio will only be scraped if a current one does not exist. - If enabled, the movie rating will only be scraped if a current one does not exist. - If enabled, the movie tagline will only be scraped if a current one does not exist. - If enabled, the movie title will only be scraped if a current one does not exist. - Select the region of the title you would like Ember to look for. - If enabled, Ember will check for alternative titles in the selected language. This is useful for fetching titles in your native language when scraping foreign films. - If enabled, Ember will use the outline for the plot if the plot is empty. - If enabled, Ember will only scrape cast entries that have valid images. - If enabled, Ember will use the certifcation of the selected region in place of the MPAA rating. - If enabled, all cast members will be scraped instead of only top billed. - If enabled, all crew members will be scraped (if individually enabled). - Select the region to filter certification ratings. - Only scrape the certificaton rating for the selected region. - If enabled, new shows will be "marked". If disabled, new shows will still be colored green until updated or the next Ember session. - If enabled, new episodes will be "marked". If disabled, new episodes will still be colored green until updated or the next Ember session. - Select the default ordering Ember will use when scraping information for a show. - If enabled, Ember will only save the value of the certification to the MPAA field. (Example: "Germany:18" will save as "18") - If enabled, Ember will attempt to download a banner (wide) image of the selected type as the default show poster. - If enabled, Ember will attempt to download a poster image of the selected type as the default show poster. - This will reset the show filters to the default list. WARNING: This WILL delete any custom filters you have entered. - This will reset the episode filters to the default list. WARNING: This WILL delete any custom filters you have entered. - This will reset the movie filters to the default list. WARNING: This WILL delete any custom filters you have entered. - This will reset the valid extensions to the default list. WARNING: This WILL delete any custom extensions you have entered. - This will reset the show regex to the default list. WARNING: This WILL delete any custom regex you have entered. - Enable Click Scrape on main screen column marks. - \ No newline at end of file + If enabled, the value of the genre images will always be displayed. If disabled, the text will only be visible when you hover your mouse over one of the genre images. + If enabled, Ember will check the folder name for source types. If disabled, Ember will only check the file name. + If enabled, fanart will not be displayed in the main window. This is helpful to speed up the interface on slow computers. + If enabled, posters will not be displayed in the main window. This is helpful to speed up the interface on slow computers. + If enabled, the dimensions of the images (posters and fanart) will be overlayed on top of the images. + If enabled, Ember will check for a new version at each start up. + If enabled, NFO files will be overwritten when saving. If disabled, they will be renamed to *.info. + If enabled, all errors will be logged to a file located in <Ember Installation Directory>\Log\errlog.txt. + Select the theme to apply for the episode layout. + Select the theme to apply for the TV Show and Season layout. + Select the theme to apply for the movie layout. + Download addons for Ember, including modules, themes, translations to other languages, and export templates. + Select the language to use for Ember's interface. (You must restart Ember for changes to take effect) + Clean all files named "folder.jpg". + Clean all "extrathumbs" folders. + Clean all files named "movie.tbn". + Clean all files named <movie>.jpg. + Clean all files named <movie>.tbn. + Clean all files named "movie.jpg". + Clean all files named "fanart.jpg". + Clean all files named "poster.jpg". + Clean all files named <movie>-fanart.jpg. + Clean all files named "poster.tbn". + Clean all files named "movie.nfo". + Clean all files named <movie>.fanart.jpg. + Clean all files named <movie>.nfo. + Automatically whitelist all files which have an extension in the "Valid Video Extensions" list. + Remove the selected extension from the whitelist. + Add the entered extension to the whitelist. + Enter an extension to add to the whitelist. + This list contains all the current extensions that will be skipped during cleaning. + If enabled, Ember will save sets information in a format that is compatible with YAMJ. If disabled, Ember will save sets information in a format that is compatible with XBMC. + If enabled, when clicking on a checkbox in the movies list a non-automatic will be used. If disabled, an automatic scrape will be used. + If enabled, new movies will be "marked". If disabled, new movies will still be colored green until updated or the next Ember session. + Select the language(s) of the genres you would like Ember to display. + Enter the tolerance level you would like Ember to use when title matching. The higher the number, the more lenient the algorithm is. 0 = disabled + Enable this to have Ember check the differences between the title of the movie and it's file name. This is useful to make sure that the scraped data is actually for the selected movie file. + Remove the selected sort token from the list. + Add the entered sort token to the list. + Enter in a sort token to add to the list. + A list of all current sort tokens. (If the movie title begins with a sort token, then the sort token will be moved to the end. For example: Sort Token = "The", Title = "The Dark Knight", Result = "Dark Knight, The") + If enabled, Ember will display the year of the movie in the main movie list. + Hide the Extrathumbs column from the main movie list. + Hide the Subtitles column from the main movie list. + Hide the Trailers column from the main movie list. + Hide the Info column from the main movie list. + Hide the Fanart column from the main movie list. + Hide the Poster column from the main movie list. + If enabled, "<movie>.ext" items will only be utilized in folders that have multiple movies. This is useful when you have a mixture of multiple movie and single movie folders and you wish to reduce the number of extra files. + Save trailer files as "<movie>[trailer].ext". + Save trailer files as "<movie>-trailer.ext". + If enabled, Ember will save the meta files in the parent directory (YAMJ compatible). If disabled, Ember will save the meta files directly to the VIDEO_TS folder (XBMC compatible). This setting applies to BDMV folders, as well. + Save nfo files as "<movie>.nfo". + Save nfo files as "movie.nfo". + Save fanart files as "<movie>.fanart.jpg". + Save fanart files as "<movie>-fanart.jpg". + Save fanart files as "fanart.jpg" + Save poster files as "folder.jpg" + Save poster files as "poster.jpg" + Save poster files as "poster.tbn" + Save poster files as "<movie>.jpg" + Save poster files as "movie.jpg" + Save poster files as "<movie>.tbn" + Save poster files as "movie.tbn" + The list of all current movie sources. (Paths that will be scanned for movie files) + The list of all current movie sources. (Paths that will be scanned for movie files) + The list of all current movie sources. (Paths that will be scanned for movie files) + The list of all current movie sources. (Paths that will be scanned for movie files) + The list of all current movie sources. (Paths that will be scanned for movie files) + The list of all current movie sources. (Paths that will be scanned for movie files) + The list of all current movie sources. (Paths that will be scanned for movie files) + Remove the selected source(s) from the sources list. + Add a new folder to the sources list. + Resize poster files to the entered width. + Resize poster files to the entered height. + Adjust the quality of the poster files. (0 = original quality) + Resize poster files before saving. + Select the preferred poster size you would like to retreive from the image servers. During automatic scrapers, Ember will attempt to find a poster of this size first. If a poster of the selected size cannot be found, the first available image will be used instead. + If enabled, existing poster files will be overwritten if new ones are selected. If disabled, poster files will only be saved if a current one does not already exist. + Resize fanart files to the entered width. + Resize fanart files to the entered height. + If enabled, Ember will only retrieve fanart of the selected size. (NOTE: If there are no fanart images of the selected size available, no fanart images will be retrieved) + Adjust the quality of the fanart files. (0 = original quality) + Resize fanart files before saving. + Select the preferred fanart size you would like to retrieve from the image servers. Durint automatic scrapers, Ember will attempt to find a fanart image of this size first. If a fanart image of the selected size cannot be found, the first available image will be used instead. + If enabled, existing fanart files will be overwritten if new ones are selected. If disabled, fanart files will only be saved if a current one does not already exist. + If enabled, Ember will not save URLs to the poster and fanart images in the nfo files. (Recommended for YAMJ compatibility) + Select images while scraping a single movie file. + Save images to the image cache when scraping multiple movie files. + If enabled, Ember will not clear the image cache between sessions. + Enable Ember's image cache. + If enabled and no fanart is available for the selected movie, Ember will use one of the extracted thumbnails as the fanart image. + If enabled, extrathumbs will only be extracted from the first half of the movie in order to avoid "spoilers". + Enter the number of extrathumbs you would like to automatically generate. + If enabled, Ember will automatically extract the entered number of extrathumbs during scraping. + Enter the domain for your proxy. (Optional - not necessary for most proxies) + Enter the password needed to access your proxy. + Enter the username needed to access your proxy. + Enable if your proxy requires authentication. + Enter the port needed to access your proxy. + Enter the IP or URL needed to access your proxy. + If enabled, Ember will use the entered proxy for all internet communications. + Move the selected filter up in the list. (Filters are processed in order from top to bottom) + Move the selected filter down in the list. (Filters are processed in order from top to bottom) + Automatically apply proper casing to movie titles. (Example: "the dark knight" becomes "The Dark Knight") + Remove the selected filter from the list. + Add the entered filter to the list. + Enter text or regex to use as a filter. Special: "a[->]b" = replace all occurrances of "a" with "b" (Example: ".[->]_" will replace all periods in the title with underscores.) + The list of all current filters that will be used when generating titles for movies. + If enabled, Ember will display movies missing extrathumbs when utilizing the Missing Items Filter. + If enabled, Ember will display movies missing subtitle files when utilizing the Missing Items Filter. + If enabled, Ember will display movies missing trailers when utilizing the Missing Items Filter. + If enabled, Ember will display movies missing nfo files when utilizing the Missing Items Filter. + If enabled, Ember will display movies missing fanart when utilizing the Missing Items Filter. + If enabled, Ember will display movies missing posters when utilizing the Missing Items Filter. + If enabled, Ember will automatically save new fanart images to the entered backdrops folder. + Open a folder browser to select a backdrops folder. + The path to the backdrops folder. + Remove the selected extension from the No Stack Extensions list. + Add the entered extension to the No Stack Extensions list. + Enter an extension to add to the No Stack Extensions list. + The list of extensions Ember will not stack into single files when adding them to the library. + Remove the selected extension from the Valid Video Extensions list. + Add the entered extension to the Valid Video Extensions list. + Enter an extension to add to the Valid Video Extensions list. + The list of extensions Ember will look for when updating the library. + Edit the selected source. + If enabled, Ember will add new files in order of there last modified time. If disabled, Ember will add new files to the library in alphabetical order. + If enabled, Ember will sort all single files in the top directory of the source into their own folders. + If enabled, Ember will scan all folders/files regardless of the last scan time. If disabled, Ember will only scan files/folders added after the last time files were scanned. + If enabled, Ember will clean the movie database after each scan. (Remove entries for files that no longer exist or no longer match selected setting values) + If enabled, Ember will attempt to recognize VIDEO_TS folders even if the folder is not named "VIDEO_TS". If disabled, Ember will still handle VIDEO_TS folders if the folder is named "VIDEO_TS". This setting also applies to BDMV folders. + If enabled, Ember will not skip files smaller than the entered "Skip Files Smaller Than" size if they contain stacking markers (such as "CD1" or "DVD2"). + Ember will use the entered size as the minimum size for movie files. Any files smaller than this will be skipped when updating the library. + Ember will use the entered size as the minimum size for episode files. Any files smaller than this will be skipped when updating the library. + Select the preferred quality of the downloaded trailers. + If enabled, Ember will delete all existing trailers for the movie before saving the new one. + If enabled, existing trailer files will be overwritten when saving new ones. If disabled, new trailer files will only be saved if one does not already exist. + If enabled, trailer files will not be downloaded. Instead, the trailer url will be saved to the nfo. + If enabled, trailers will be downloaded while scraping a single movie. + If enabled, trailers will be downloaded during "All Items" scrapers. + Enable Ember's trailer support. + Select the size of the fanart you would like to download as extrathumbs. + If enabled, Ember will automatically download all fanart of the selected size as extrathumbs. + Resize extrathumbs to the entered width. + Resize extrathumbs to the entered height. + If enabled, Ember will add "black bars" to the edges of the extrathumbs if they are smaller than the entered size. + Resize extrathumbs to the entered size, regardless of the native resolution. + Save extrathumbs using the same resolution as the video. + The list of all current TV Show sources. (Paths that will be scanned for TV Show files) + The list of all current TV Show sources. (Paths that will be scanned for TV Show files) + The list of all current TV Show sources. (Paths that will be scanned for TV Show files) + The list of all current TV Show sources. (Paths that will be scanned for TV Show files) + If enabled, Ember will add new files in order of there last modified time. If disabled, Ember will add new files to the library in alphabetical order. + If enabled, Ember will scan all folders/files regardless of the last scan time. If disabled, Ember will only scan files/folders added after the last time files were scanned. + If enabled, Ember will clean the TV Show database after each scan. (Remove entries for files that no longer exist or no longer match selected setting values) + Add a new folder to the sources list. + Edit the selected source. + Remove the selected source(s) from the sources list. + Save All Seasons poster files as "season-all.jpg". + Save All Seasons poster files as "season-all.tbn". + Save episode fanart files as "<episode>.fanart.jpg". + Save episode fanart files as "<episode>-fanart.jpg". + Save episode poster files as "<episode>.jpg". + Save episode poster files as "<episode>.tbn". + Save season fanart files as "<season>.fanart.jpg". (Will only save inside the season directory, if it exists) + Save season fanart files as "<season>-fanart.jpg". (Will only save inside the season directory, if it exists) + Save season fanart files as "fanart.jpg". (Will only save inside the season directory, if it exists) + Save season fanart files as "folder.jpg". (Will only save inside the season directory, if it exists) + Save season poster files as "<season>.jpg". (Will only save inside the season directory, if it exists) + Save season poster files as "<season>.tbn". (Will only save inside the season directory, if it exists) + Save season poster files as "poster.jpg". (Will only save inside the season directory, if it exists) + Save season poster files as "poster.tbn". (Will only save inside the season directory, if it exists) + Save season poster files as "seasonX.tbn". (Example: season2.tbn) + Save season poster files as "seasonXX.tbn". (Example: season02.tbn) + Save show fanart files as "<show>.fanart.jpg". + Save show fanart files as "<show>-fanart.jpg". + Save show fanart files as "fanart.jpg". + Save show poster files as "<show>.jpg". + Save show poster files as "<show>.tbn". + Save show poster files as "poster.jpg". + Save show poster files as "poster.tbn". + Save show poster files as "folder.jpg". + Add the entered regex to the TV Show Regex list. + Enter the regex to use to detect the season number. + Choose if you would like to process the season regex against the directory name or the episode file name. + Enter the regex to use to detect the episode number. + Choose if you would like to process the episode regex against the directory name, the episode file name, or the results of the season regex. + Edit the selected TV Show regex. + Remove the selected TV Show regex from the list. + The list of current TV Show regex. + The list of current TV Show regex. + The list of current TV Show regex. + The list of current TV Show regex. + The list of current TV Show regex. + The list of current TV Show regex. + If enabled, episodes that are missing from your collection will be displayed in the episode list, but will be colored a light gray. + Hide the Info column from the episode list. + Hide the Fanart column from the episode list. + Hide the Poster column from the episode list. + Hide the Fanart column from the season list. + Hide the Poster column from the poster list. + Hide the Info column from the show list. + Hide the Fanart column from the show list. + Hide the Poster column from the show list. + If enabled, if an All Season poster exists for the selected show, it will be displayed on the right of the interface. + Select the region of the ratings you would like to display in the interface. + If enabled, Ember will not attempt to filter episode file names for titles and instead will build them from the show name, season, and episode until a proper title has been fetched. + Move the selected filter up in the list. (Filters are processed in order from top to bottom) + Move the selected filter down in the list. (Filters are processed in order from top to bottom) + Automatically apply proper casing to episode titles. (Example: "stole beer from golfer" becomes "Stole Beer From Golfer") + Remove the selected filter from the filter list. + Add the entered filter to the filter list. + Enter a filter to add to the filter list. + The list of all current filters that will be used when generating titles for episodes. + Move the selected filter up in the list. (Filters are processed in order from top to bottom) + Move the selected filter down in the list. (Filters are processed in order from top to bottom) + Automatically apply proper casing to episode titles. (Example: "my name is earl" becomes "My Name is Earl") + Remove the selected filter from the filter list. + Add the entered filter to the filter list. + Enter a filter to add to the filter list. + The list of all current filters that will be used when generating titles for shows. + If enabled, all English images will be retrieved, regardless of the selected language. + If enabled, only images for the preferred language will be retrieved. + Resize show poster files to the entered width. + Resize show poster files to the entered height. + Adjust the quality of the show poster files. (0 = original quality) + Resize show poster files before saving. + Select the preferred show poster type you would like to retreive from the image servers. During the show scraper, Ember will attempt to find a poster of this type first. If a poster of the selected size cannot be found, the first available image will be used instead. + If enabled, existing show poster files will be overwritten if new ones are selected. If disabled, show poster files will only be saved if a current one does not already exist. + Resize show fanart files to the entered width. + Resize show fanart files to the entered height. + Adjust the quality of the show fanart files. (0 = original quality) + Resize show fanart files before saving. + Select the preferred fanart size you would like to retreive from the image servers. During the show scraper, Ember will attempt to find a fanart image of this size first. If a fanart image of the selected size cannot be found, the first available image will be used instead. + If enabled, existing show fanart files will be overwritten if new ones are selected. If disabled, show fanart files will only be saved if a current one does not already exist. + Resize season poster files to the entered width. + Resize season poster files to the entered height. + Adjust the quality of the season poster files. (0 = original quality) + Resize season poster files before saving. + Select the preferred season poster type you would like to retreive from the image servers. During the show scraper, Ember will attempt to find a poster of this type first. If a poster of the selected size cannot be found, the first available image will be used instead. + If enabled, existing season poster files will be overwritten if new ones are selected. If disabled, season poster files will only be saved if a current one does not already exist. + Resize season fanart files to the entered width. + Resize season fanart files to the entered height. + Adjust the quality of the season fanart files. (0 = original quality) + Resize season fanart files before saving. + Select the preferred fanart size you would like to retreive from the image servers. During the show scraper, Ember will attempt to find a fanart image of this size first. If a fanart image of the selected size cannot be found, the first available image will be used instead. + If enabled, existing season fanart files will be overwritten if new ones are selected. If disabled, season fanart files will only be saved if a current one does not already exist. + Resize episode poster files to the entered width. + Resize episode poster files to the entered height. + Adjust the quality of the episode poster files. (0 = original quality) + Resize episode poster files before saving. + If enabled, existing episode poster files will be overwritten if new ones are selected. If disabled, episode poster files will only be saved if a current one does not already exist. + Resize episode fanart files to the entered width. + Resize episode fanart files to the entered height. + Adjust the quality of the episode fanart files. (0 = original quality) + Resize episode fanart files before saving. + Select the preferred fanart size you would like to retreive from the image servers. During the show scraper, Ember will attempt to find a fanart image of this size first. If a fanart image of the selected size cannot be found, the first available image will be used instead. + If enabled, existing episode fanart files will be overwritten if new ones are selected. If disabled, episode fanart files will only be saved if a current one does not already exist. + Enable scraping show rating. + Enable scraping show actors. + Enable scraping show studios. + Enable scraping show premiered date. + Enable scraping the Episode Guide URL. + Enable scraping show MPAA. + Enable scraping show plot. + Enable scraping show genre. + Enable scraping show title. + Enable scraping episode actors. + Enable scraping episode credits. + Enable scraping episode directors. + Enable scraping episode plot. + Enable scraping episode rating. + Enable scraping episode aired date. + Enable scraping episode title. + Enable scraping episode number. + Enable scraping season number. + If enabled, the episode title will only be scraped if a current one does not exist. + If enabled, the episode rating will only be scraped if a current one does not exist. + If enabled, the episode plot will only be scraped if a current one does not exist. + If enabled, the show plot will only be scraped if a current one does not exist. + If enabled, the show genre will only be scraped if a current one does not exist. + If enabled, the show studio will only be scraped if a current one does not exist. + If enabled, the show rating will only be scraped if a current one does not exist. + If enabled, the show title will only be scraped if a current one does not exist. + The list of extensions that have default meta data entries. + Enter an extension to create a default meta data entry. + Remove the default meta data for the selected extension from the default meta data list. + Edit the default meta data for the selected extension in the default meta data list. + Create default meta data for the entered extension and add the to the default meta data list. + If the selected language is found in the episode, a special icon indicator will be overlayed on the meta data audio icon. + If enabled, Ember will scan episode files for meta data. + Select the time to wait between updating cached TV information files. + Enter the TVDB API Key of the media center/player you use. This is not necessary for Ember to function. It is only used when saving the Episode Guide URL to the nfo. + Enter the mirror to use when retrieving information from theTVDB. + Click to download all available languages from theTVDB. + Select the preferred language to use when downloading show information and images. + Enable scraping movie certification. + Enable scraping movie Top 250 ranking. + Enable scraping movie production country. + Limit the number of scraped genres to the entered value. + Limit the number of scraped actors to the entered value. + Enable scraping movie other crew. (Scrape Full Crew must be enabled) + Enable scraping movie musicians. (Scrape Full Crew must be enabled) + Enable scraping movie producers. (Scrape Full Crew must be enabled) + Enable scraping movie writers. + Enable scraping movie studio. + Enable scraping movie runtime. + Enable scraping movie plot. + Enable scraping movie outline. + Enable scraping movie genre. + Enable scraping movie director. + Enable scraping movie tagline. + Enable scraping movie cast. + Enable scraping movie votes. + Enable scraping movie trailer url. + Enable scraping movie rating. + Enable scraping movie release date. + Enable scraping movie MPAA. + Enable scraping movie year. + Enable scraping movie title. + The list of extensions that have default meta data entries. + Enter an extension to create a default meta data entry. + Remove the default meta data for the selected extension from the default meta data list. + Edit the default meta data for the selected extension in the default meta data list. + Create default meta data for the entered extension and add the to the default meta data list. + If enabled, Ember will process *.ifo files for meta data information. + If the selected language is found in the movie, a special icon indicator will be overlayed on the meta data audio icon. + Enter the format you wish to use for the movie duration retrieved from scanning meta data. Note you can also use <0m> for 0 padding minutes + If enabled, Ember will scan movie files for meta data. + Use the movie duration retrieved from scanning meta data as the runtime of the movie. + If enabled, the movie outline will only be scraped if a current one does not exist. + If enabled, the movie plot will only be scraped if a current one does not exist. + If enabled, the movie trailer will only be scraped if a current one does not exist. + If enabled, the movie genre will only be scraped if a current one does not exist. + If enabled, the movie studio will only be scraped if a current one does not exist. + If enabled, the movie rating will only be scraped if a current one does not exist. + If enabled, the movie tagline will only be scraped if a current one does not exist. + If enabled, the movie title will only be scraped if a current one does not exist. + Select the region of the title you would like Ember to look for. + If enabled, Ember will check for alternative titles in the selected language. This is useful for fetching titles in your native language when scraping foreign films. + If enabled, Ember will use the outline for the plot if the plot is empty. + If enabled, Ember will only scrape cast entries that have valid images. + If enabled, Ember will use the certifcation of the selected region in place of the MPAA rating. + If enabled, all cast members will be scraped instead of only top billed. + If enabled, all crew members will be scraped (if individually enabled). + Select the region to filter certification ratings. + Only scrape the certificaton rating for the selected region. + If enabled, new shows will be "marked". If disabled, new shows will still be colored green until updated or the next Ember session. + If enabled, new episodes will be "marked". If disabled, new episodes will still be colored green until updated or the next Ember session. + Select the default ordering Ember will use when scraping information for a show. + If enabled, Ember will only save the value of the certification to the MPAA field. (Example: "Germany:18" will save as "18") + If enabled, Ember will attempt to download a banner (wide) image of the selected type as the default show poster. + If enabled, Ember will attempt to download a poster image of the selected type as the default show poster. + This will reset the show filters to the default list. WARNING: This WILL delete any custom filters you have entered. + This will reset the episode filters to the default list. WARNING: This WILL delete any custom filters you have entered. + This will reset the movie filters to the default list. WARNING: This WILL delete any custom filters you have entered. + This will reset the valid extensions to the default list. WARNING: This WILL delete any custom extensions you have entered. + This will reset the show regex to the default list. WARNING: This WILL delete any custom regex you have entered. + Enable Click Scrape on main screen column marks. + If enabled Ember will respect the FileBuilt-Date of videofile instead of using the current date when importing new movies into the database. That results in more stable searches when filtering for newest movies! + If enabled, the language field (video metadata) will not be updated. + If enabled, the language field (audio metadata) will not be updated. + If enabled, the certification/MPAA field will not be updated. + If enabled, MPAA values will be converted to FSK if no FSK values are found. Priority: FSK -> MPAA + Hide the Watched column from the main movie list. + Hide the Watched column from the episode list. + diff --git a/Ember Media Manager/Langs/English_(en_US).xml b/Ember Media Manager/Langs/English_(en_US).xml index 5d3a6ff..848061b 100644 --- a/Ember Media Manager/Langs/English_(en_US).xml +++ b/Ember Media Manager/Langs/English_(en_US).xml @@ -1,4 +1,3 @@ - &File E&xit @@ -189,7 +188,7 @@ &Format / Indent &Parse &Save - Manual NFO Editor | + Manual NFO Editor | This is not a proper XML document File is not valid. File is valid. @@ -218,7 +217,7 @@ Enter Path and Press "Go" to Begin. Path to Sort: Select the folder which contains the files you wish to sort. - Moving + Moving WARNING: If you continue, all files will be sorted into separate folders. The folder you entered does not exist. Please enter a valid path. Folder Not Found @@ -266,7 +265,7 @@ Clear Cache Change Poster (Download) Change Fanart (Download) - Master.eLang.GetString(148, "One or more cache resources is currently in use and cannot be deleted at the moment. + One or more cache resources is currently in use and cannot be deleted at the moment. Cannot Clear Cache Size: {0}x{1} The trailer could not be played. This could be due to an invalid URI or you do not have the proper player to play the trailer type. @@ -278,7 +277,7 @@ Apply New Addon Year - Edit Addon - + Edit Addon - Addon Files Video Audio @@ -302,68 +301,68 @@ Yes Country Original Title - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + X-Large Large Medium Small - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + DVD Invalid - - - + + + Exists - - - - - + + + + + Finished Done - - + + Sets Manager Sets Movies In Set @@ -371,18 +370,18 @@ Loading Movies and Sets... Canceling Load... Add and configure movie boxed sets. - + Download - - - - - - - - - - + + + + + + + + + + Custom Scraper Create a custom scraper Selection Filter @@ -421,13 +420,13 @@ Meta Data is not available for this movie. Try rescanning. Settings Connection - - - + + + Username: Password: - - + + Miscellaneous Interface Language: Enable Panel Animation @@ -444,12 +443,12 @@ WARNING: Using the Expert Mode Cleaner could potentially delete wanted files. Take care when using this tool. Download Addons... File - - + + Downloading Files... - - - + + + Folder/File Name Filters Convert Names to Proper Case Always Display Genre Text @@ -473,10 +472,10 @@ File Naming Use <movie> Only for Folders with Multiple Movies YAMJ Compatible VIDEO_TS File Placement/Naming - - - - + Frodo Compatible VIDEO_TS File Placement/Naming + + + Quality: Max Width: Max Height: @@ -484,9 +483,9 @@ Preferred Size: Overwrite Existing Loading Settings... - - - + + + Global Locks Lock Trailer Lock Genre @@ -508,7 +507,7 @@ Number To Create: Extract During Scrapers Use Outline for Plot if Plot is Empty - + Scrape Only Actors With Images Use Certification for MPAA Scrape Full Cast @@ -522,17 +521,17 @@ Backdrops Folder Automatically Save Fanart To Backdrops Folder Delete All Existing - + Only Get URLs When Scraping Get During Single Scrape - + Get During Automated Scrapers - + Enable Trailer Support No Stack Extensions - - - + + + Valid Video Extensions Edit Source Miscellaneous Options @@ -553,20 +552,20 @@ Use Image Cache Select the folder where you wish to store your backdrops. File System - + Files and Sources Scrapers - Data Scrapers - Images & Trailers Wide - - - - - - - - - + + + + + + + + + Generating Actors Cache: All [none] @@ -587,12 +586,12 @@ Check for Trailer Check for Subs Check for Extrathumbs - - - + + + Top 250 - - + + Metadata Editor Video Streams Audio Streams @@ -629,18 +628,18 @@ Selected Items: {0} Enable IFO Parsing Themes - - - - - + + + + + You have selected {0} folders to open. Are you sure you want to do this? - - - - - - + + + + + + Sort Title YAMJ Compatible Sets Saving Cleaning Database... @@ -653,7 +652,7 @@ No Information is Available for This Show No Information is Available for This Episode TV Shows - Season + Season Season Specials Edit Episode Edit the details for the selected episode. @@ -688,7 +687,7 @@ Season Fanart Episode Posters Episode Fanart - [MISSING] + [MISSING] Edit Regex Show Match Regex Season Match Regex: @@ -701,12 +700,12 @@ Regex TV Show TV Episode - - - + + + TV Source Select the parent folder for your TV Series folders/files. - + Donate Clean Database Force Title Language: @@ -775,29 +774,29 @@ Delete Episode Enabled Disabled - + Writer - - - - - + + + + + Plot Summary: - - + + All Seasons Poster - - - - - + + + + + Donate &Versions... &Module Settings... Interface Scan in order of last write time Default Episode Ordering: - + Scraper - Trailers Preferred Quality: TVDB Mirror @@ -813,8 +812,8 @@ PasteBin URL: Old Title: {0} | New Title: {1} Movie Scraped - Added Episode: - Added Movie: + Added Episode: + Added Movie: An Error Has Occurred New Movie Added New Episode Added @@ -825,17 +824,17 @@ Audio & Video Codec Mapping Video Source: Downloads: - - - Enable Actors Cache + + + Enable Actor Thumbs Watch for ""Dump"" Folder Edit the details for the selected season. - + Display All Season Poster These are Scraper specific settings and act as a filter.\nYou should also check Ember Global Settings. * Inside Season Folder Only Save the Value to NFO - + Scrapers - Images Banner Absolute @@ -845,9 +844,9 @@ Are you sure you want to reset to the default list of valid video extensions? Are you sure you want to reset to the default list of show regex? >> No Item Selected << - - - + + + Enable Click Scrape &Check For Updates... No Updates at this time @@ -866,7 +865,28 @@ Setting menus... Version {0}.{1}.{2}.{3} Metadata - XBMC Frodo - Top 250 - EmberMM.com &Wiki... + XBMC Frodo + Top 250 + EmberMM.com &Wiki... + + + + + Use file creation date of videofile + + + + + Lock Language (video) + Lock Language (audio) + Lock MPAA/Certification + Use MPAA as Fallback for FSK Rating + Watched + Hide Watched Column + Lock Subtitle + Retry + Abort + Database Compatibility + Database is not compatible! + Your database is not compatible with this version of Ember!\n\nYour existing database will be saved as "Media.emm_old" and an empty database will be created.\n\nTo adapt your old Databank follow this tutorial. diff --git a/Ember Media Manager/Langs/German_(de_DE)-Help.xml b/Ember Media Manager/Langs/German_(de_DE)-Help.xml index c9cfa32..b22e5e8 100644 --- a/Ember Media Manager/Langs/German_(de_DE)-Help.xml +++ b/Ember Media Manager/Langs/German_(de_DE)-Help.xml @@ -1,14 +1,14 @@ Wenn aktiviert wird der Names des Genres immer im Genrebild angezeigt. Wenn deaktiviert wird der Name des Genres nur angezeigt, wenn sich die Maus auf dem Genrebild befindet - Wenn aktiviert durchsucht ember Verzeichnissnamen nach Tags (=SourceTypes). Wenn deaktivert wird nur der Dateiname durchsucht. + Wenn aktiviert durchsucht Ember Verzeichnissnamen nach Tags (=SourceTypes). Wenn deaktivert wird nur der Dateiname durchsucht. Wenn aktiviert werden Fanarts nicht in der Standardansicht angezeigt. Dies könnte auf langsamen Computern helfen die Geschwindigkeit zu erhöhen. Wenn aktiviert werden Poster nicht in der Standardansicht angezeigt. Dies könnte auf langsamen Computern helfen die Geschwindigkeit zu erhöhen. Wenn aktiviert blendet ember die Abmessungen der Poster und Fanarts oben in den Bildern ein. Wenn aktiviert prüft Ember bei jedem Start ob eine neue Version verfügbar ist. Wenn aktiviert werden NFO Dateien beim speichern überschrieben. Wenn deaktiviert werden diese nach .INFO verschoben - Wenn aktiviert werden alle Fehler in folgendes Logfile geschrieben: <Ember Installation Directory>\Log\errlog.txt. + Wenn aktiviert werden alle Fehler in folgendes Logfile geschrieben: <Ember Installations-Verzeichniss>\Log\errlog.txt. Wähle das Theme für das Episoden Layout. - Wähle das Theme für das das TV-Serien and Staffel Layout. + Wähle das Theme für das das TV-Serien und Staffel Layout. Wähle das Theme für das das Film Layout. Lade Erweiterungen für Ember herunter, z.B. Module, Themes, Übersetzungen oder Export Templates. Wähle die Sprache für die Ember Oberfläche. (Ember muss anschließend neugestartet werden) @@ -26,9 +26,9 @@ Alle <movie>.fanart.jpg Dateien löschen. Alle <movie>.nfo Dateien löschen. Alle Erweiterungen die unter "Gültige Video Erweiterungen" aufgeführt sind automatisch der Whitelist hinzufügen. - Die Gewählte Erweiterung aus der Whitelist entfernen. - Die angegebene Erweiterung zur Whitelist hinzufügen. - Gib eine Erweiterung zum hinzufügen ein. + Die gewählte Erweiterung aus der Whitelist entfernen. + Die eingegebene Erweiterung zur Whitelist hinzufügen. + Gib eine Erweiterung zum Hinzufügen ein. Diese Liste beinhaltet alle Erweiterungen die beim säubern übersprungen werden. Wenn aktiviert speichert Ember Sets YAMJ kompatibel. Wenn deaktiviert werden Sets zu XBMC kompatibel gespeichert. Wenn aktiviert bewirkt ein klick auf die Movie Checkbox das nicht automatische scrappen. Wenn deaktiviert ist der automatische scrap möglich. @@ -37,8 +37,8 @@ Enter the tolerance level you would like Ember to use when title matching. The higher the number, the more lenient the algorithm is. 0 = disabled Aktiviere dies um Ember nach Unterschiedlichen Titeln und Dateinamen suchen zu lassen. Dies ist hilfreich um sicherzustellen, dass die Informationen für den richtigen Film sind. Löscht das gewählte Token aus der Liste. - Fügt das eingegebene Token in die Liste hinzu. - Gib ein Token ein. + Fügt das eingegebene Token der Liste hinzu. + Gib ein Sortier-Token ein um ihn der Liste hinzuzufügen. Eine Liste aller aktueller Sort-Tokens. (Wenn ein Filmtitel mit einem dieser Sort-Tokens beginnt, wird das Token ans Ende verschoben. z.B.: Sort Token = "The", Titel = "The Dark Knight", Ergebnis = "Dark Knight, The") Wenn aktiviert zeigt Ember in der Medienliste das Jahr in Klammern hinter dem Titel. Verstecke die Extrathumb Spalte in der Medienliste. @@ -63,35 +63,35 @@ Poster Dateien als "movie.jpg" speichern. Poster Dateien als "<movie>.tbn" speichern. Poster Dateien als "movie.tbn" speichern. - The list of all current movie sources. (Paths that will be scanned for movie files) - Die Liste aller aktuellen Filmquellen (Movie sources). (Diese Pfade werden nach Filmen durchsucht) - Die Liste aller aktuellen Filmquellen (Movie sources). (Diese Pfade werden nach Filmen durchsucht) - Die Liste aller aktuellen Filmquellen (Movie sources). (Diese Pfade werden nach Filmen durchsucht) - Die Liste aller aktuellen Filmquellen (Movie sources). (Diese Pfade werden nach Filmen durchsucht) - Die Liste aller aktuellen Filmquellen (Movie sources). (Diese Pfade werden nach Filmen durchsucht) - Die Liste aller aktuellen Filmquellen (Movie sources). (Diese Pfade werden nach Filmen durchsucht) - Die gewählte Filmquelle entfernen. + Die Liste aller aktuellen Filmquellen. (Diese Pfade werden nach Filmen durchsucht) + Die Liste aller aktuellen Filmquellen. (Diese Pfade werden nach Filmen durchsucht) + Die Liste aller aktuellen Filmquellen. (Diese Pfade werden nach Filmen durchsucht) + Die Liste aller aktuellen Filmquellen. (Diese Pfade werden nach Filmen durchsucht) + Die Liste aller aktuellen Filmquellen. (Diese Pfade werden nach Filmen durchsucht) + Die Liste aller aktuellen Filmquellen. (Diese Pfade werden nach Filmen durchsucht) + Die Liste aller aktuellen Filmquellen. (Diese Pfade werden nach Filmen durchsucht) + Die gewählte Filmquelle(n) entfernen. Eine neue Filmquelle anlegen. - Poster auf die angegebene Größe ändern. - Poster auf die angegebene Größe ändern. + Poster auf die angegebene Breite ändern. + Poster auf die angegebene Höhe ändern. Die Qualität von Poster auf diesen Wert ändern (0 = Original Qualität) Die Größe von Postern vor dem Scannen verändern. Wähle deine bevorzugte Größe von Postern. Ember wird versuchen Poster in deiner gewünschten Größe zu scrapen, falls solche nicht verfügbar sind wird nach der nächst kleineren Größe gesucht. Wenn aktiviert werden vorhandene Poster beim speichern überschrieben. Wenn nicht aktiviert wird das Poster nur gespeichert, wenn aktuell keines vorhanden ist.. - Die Größe von Fanart Dateien wird auf diesen Wert verändert. + Fanart auf die angegebene Breite ändern. Die Größe von Fanart Dateien wird auf diesen Wert verändert. Wenn aktiviert wird Ember nur versuchen Fanarts in dieser größe zu laden. (Beachte, dass wenn kein Fanart in der gewünschten Größe vorhanden ist, keines gespeichert wird) Die Qualität von Fanart Bildern (0 = Original Qualität) - Größe vor dem speichern ändern. + Größe des Fanarts vor dem Speichern ändern. Wähle deine bevorzugte Größe von Fanarts. Ember wird versuchen Fanarts in deiner gewünschten Größe zu scrapen, falls solche nicht verfügbar sind wird nach der nächst kleineren Größe gesucht. - Wenn aktiviert werden vorhandene Fanarts beim speichern überschrieben. Wenn nicht aktiviert wird das Fanart nur gespeichert, wenn aktuell keines vorhanden ist.. + Wenn aktiviert werden vorhandene Fanarts beim speichern überschrieben. Wenn nicht aktiviert wird das Fanart nur gespeichert, wenn aktuell keines vorhanden ist. Wenn aktiviert wird Ember NICHT die URLs von Bildern in den NFO-Dateien speichern. (Für die YAMJ kompatibilität) - Bilder beim einzelnen scrapen aussuchen + Bilder beim einzelnen Scrapen aussuchen. Bilder im Bildercache speichern beim automatischen scrapen Wenn aktiviert bleibt der Imagecache nach Beenden vorhanden. Embers Imagecache benutzen. Wenn aktiviert und kein Fanart verfügbar ist, wird Ember ein Extrathumb als Fanart speichern. - Wenn aktiviert werden nur Frames aus der ersten Hälfte des Films extrahiert. (Um Spoiler zu verhindern) + Wenn aktiviert werden nur Frames aus der ersten Hälfte des Films extrahiert um Spoiler zu verhindern. Gib die Anzahl an Frames an, die Ember aus dem Video extrahieren soll. Wenn aktiviert wird Ember die angegebene Anzahl an Frames aus dem Video extrahieren. Gib die Domäne für die Anmeldung am Proxy ein. (Bei den meisten Proxy Servern nicht nötig) @@ -106,7 +106,7 @@ Ändere die Filmtitel in Jedes-Wort-Groß. (z.B.: "the dark knight" wird "The Dark Knight") Entfernt den aktuellen Filter. Fügt den angegebenen Filter der Liste hinzu. - Gib einen Text oder RegExp als Filter ein. Special: "a[->]b" = replace all occurrances of "a" with "b" (Example: ".[->]_" will replace all periods in the title with underscores.) + Gib einen Text oder RegExp als Filter ein. Special: "a[->]b" = ersetzt alle "a" durch ein "b" (Beispiel: ".[->]_" ersetzt alle Punkte durch einen Unterstrich.) Die Liste aller aktuell aktivierten Filter die benutzt werden um den Filmtitel zu erkennen. Wenn aktiviert wird Ember bei "Fehlendem Einträge Filter" Filme anzeigen, die über keine Extrathumbs verfügen. Wenn aktiviert wird Ember bei dem "Fehlendem Einträge Filter" Filme anzeigen, die über keine Untertitel verfügen. @@ -119,23 +119,23 @@ Der Pfad zum Backdrop Verzeichnis. Entfernt die gewählte Erweiterung aus der Nicht-Stapeln-Liste. Fügt die angegebene Erweiterung der Nicht-Stapeln-Liste hinzu. - Gib eine Erweiterung zum hinzufügen an. + Gib eine Erweiterung an um sie der Nicht-Stapeln-Liste hinzuzufügen. Die Liste an Erweiterungen welche nicht zu einzelnen Filmen zusammengefasst (=gestapelt) werden. Entfernt die gewählte Erweiterung aus der Gültige-Erweiterungen-Liste. Fügt die angegebene Erweiterung der Gültige-Erweiterungen-Liste. - Gib eine Erweiterung zum hinzufügen an. + Gib eine neue Erweiterung ein um sie der Gültige-Erweiterungen-Liste hinzuzufügen. Die Liste an Erweiterungen nach denen Ember in den Quellen suchen wird. Die gewählte Quelle editieren. Wenn aktiviert wird Ember neue Videos in der Reihenfolge des zuletzt geänderten Zeitraums einlesen, wenn deaktiviert legt Ember neue Dateien alphabetisch an. - Wenn aktiviert, wird Ember vor einem Scan alle Einzel Dateien im Haupt Verzeichnis der Source in ihre eigenen Ordner sortieren. - Wenn aktiviert wird Ember die letzte Scanzeit beim lesen ignorieren. Wenn deaktiviert wird Ember nur Dateien einlesen die jünger als die letzte Scanzeit sind.. - Wenn aktiviert wird Ember nach jedem Scanvorgang die Datenbank säubern. + Wenn aktiviert, wird Ember vor einem Scan alle einzelnen Dateien im Hauptverzeichnis der Source in ihre eigenen Ordner sortieren. + Wenn aktiviert wird Ember die letzte Scanzeit beim lesen ignorieren. Wenn deaktiviert wird Ember nur Dateien einlesen die jünger als die letzte Scanzeit sind. + Wenn aktiviert wird Ember nach jedem Scanvorgang die Datenbank säubern (Dateien die nicht mehr vorhanden sind werden aus der Datenbank entfernt). Wenn aktiviert wird Ember versuchen VideoTS Verz. zu erkennen obwohl sie nicht so benannt sind. Wenn deaktiviert werden nur "VIDEO_TS" erkannt. - Wenn aktiviert wird Ember nur Dateien scannen die größer als die angegebene Größe sind. - Ember wird Dateien die kleiner als die angegebene Größe sind beim scannen überspringen. - Ember wird Dateien die kleiner als die angegebene Größe sind beim scannen überspringen. + Wenn aktiviert wird Ember Dateien die kleiner sind als die minimale Grösse nicht überspringen wenn sie gestapelt sind (wie z.B. "CD1" oder "DVD2" + Ember wird Dateien die kleiner als die angegebene Größe sind beim scannen von Filmen überspringen. + Ember wird Dateien die kleiner als die angegebene Größe sind beim scannen von Episoden überspringen. Wähle dein bevorzugtes Trailer Format. - If enabled, Ember will delete all existing trailers for the movie before saving the new one. + Wenn aktiviert wird Ember alle existierenden Trailer löschen bevor der neue Trailer gespeichert wird. Wenn aktiviert wird Ember Trailer beim speichern überschreiben. Wenn aktiviert werden keine Trailer heruntergeladen, es wird nur die URL in der NFO-Datei gespeichert. Wenn aktiviert werden Trailer beim einzeln Scrapen gescraped. @@ -144,7 +144,7 @@ Wähle die Größe für Fanarts die als Extrathumbs gespeichert werden sollen. Wenn aktiviert werden automatisch alle Fanarts der angegebebnen Größe als Extrathumbs gespeichert. Verändere die Größe von Extrathumbs zu der angegebenen. - Verändere die Größe von Extrathumbs zu der angegebenen. + Verändere die Größe von Extrathumbs auf die angegebene Grösse. Wenn aktiviert wird Ember schwarze Balken in den Extrathumbs erzeugen um die Größe zu erreichen. Verändere die Größe von Extrathumbs auf die angegebene. Speichere Extrathumbs in ihrer ursprünglichen Größe. @@ -153,11 +153,11 @@ Die Liste aller angelegten Serien Quellverzeichnisse. (Verzeichnisse werden nach TV-Serien durchsucht) Die Liste aller angelegten Serien Quellverzeichnisse. (Verzeichnisse werden nach TV-Serien durchsucht) Wenn aktiviert wird Ember neue Videos in der Reihenfolge des zuletzt geänderten Zeitraums einlesen, wenn deaktiviert legt Ember neue Dateien alphabetisch an. - >Wenn aktiviert wird Ember die letzte Scanzeit beim lesen ignorieren. Wenn deaktiviert wird Ember nur Dateien einlesen die jünger als die letzte Scanzeit sind.. - Wenn aktiviert wird Ember nach jedem Scanvorgang die Datenbank säubern. - Fügt eine neue Quelle ein. - Die aktuelle Quelle editieren. - Die aktuelle Quelle aus der Liste löschen. + Wenn aktiviert wird Ember die letzte Scanzeit beim lesen ignorieren. Wenn deaktiviert wird Ember nur Dateien einlesen die jünger als die letzte Scanzeit sind. + Wenn aktiviert wird Ember nach jedem Scanvorgang die Datenbank säubern. (Entfernt Einträge deren Dateien nicht mehr vorhanden sind oder nicht mehr mit den Einstellungen übereinstimmen) + Eine neue Filmquelle anlegen. + Die gewählte Quelle editieren. + Die gewählte Filmquelle(n) entfernen. Das Alle-Staffeln Poster als "season-all.jpg" speichern. Das Alle-Staffeln Poster als "season-all.tbn" speichern. Das Episoden Fanart Poster als "<episode>.fanart.jpg" speichern. @@ -187,8 +187,8 @@ Wähle ob die Staffel anhand des Verzeichnis- oder Dateinamens erkannt werden soll. Gib das Regex zum erkennen der Episoden Nummer ein. Wähle ob die Nummer der Episode aus dem Dateinamen, Verzeichnisnamen oder dem Ergebnis der Staffel suche erkannt werden soll. - Das gewählte Regex editieren. - Das gewählte Regex aus der Liste löschen. + Das gewählte Serien Regex editieren. + Das gewählte Serien Regex aus der Liste löschen. Die Liste der vorhandenen Serien Regex. Die Liste der vorhandenen Serien Regex. Die Liste der vorhandenen Serien Regex. @@ -207,70 +207,70 @@ Wenn aktiviert und ein Alle-Staffeln-Poster vorhanden ist wird es rechts angezeigt. Wähle die Region der Bewertung/Altersfreigabe. Wenn aktiviert wird Ember versuchen die Episodentitel zu filtern. Wenn deaktiviert wird Ember die Titel scrapen. - Schiebe den gewählten Filter in der Liste oben unten. (Filter werden von oben nach unten abgearbeitet) + Schiebe den gewählten Filter in der Liste nach oben. (Filter werden von oben nach unten abgearbeitet) Schiebe den gewählten Filter in der Liste nach unten. (Filter werden von oben nach unten abgearbeitet) Ändere die Episodentitel in Jedes-Wort-Groß. (z.B.: "the dark knight" wird "The Dark Knight") - Entfernt den aktuellen Filter. - Fügt den angegebenen Filter der Liste hinzu. - Fügt den angegebenen Filter der Liste hinzu. + Entfernt den Filter von der Liste. + Fügt den Filter der Liste hinzu. + Gib einen Filter ein. Die Liste aller gewählten Filter die zum filtern von Episodentitel verwendet werden. Schiebe den gewählten Filter in der Liste nach oben. (Filter werden von oben nach unten abgearbeitet) Schiebe den gewählten Filter in der Liste nach unten. (Filter werden von oben nach unten abgearbeitet) Ändere die Episodentitel in Jedes-Wort-Groß. (z.B.: "the dark knight" wird "The Dark Knight") - Entfernt den aktuellen Filter. - Fügt den angegebenen Filter der Liste hinzu. + Entfernt den Filter von der Liste. + Fügt den Filter der Liste hinzu. Gib einen Filter ein. - Die Liste aller Filter die benutzt werden um den Serientitel zu erkennen.. + Die Liste aller Filter die benutzt werden um den Serientitel zu erkennen. Wenn aktiviert werden auch englische Bilder geladen - egal welche Sprache eingestellt ist. Wenn aktiviert werden nur Bilder der gewählten Sprache geladen. - Verändere die Größe von Postern auf die angegebene. - Verändere die Größe von Postern auf die angegebene. + Verändere die Größe von Postern auf die angegebene Breite. + Verändere die Größe von Postern auf die angegebene Höhe. Die Qualität von Postern (0 = Original Qualität) Postergröße verändern vor dem speichern Wähle deinen Bevorzugten Serien Poster Typ. Während des Scrapens wird Ember versuchen ein Bild von diesem Typ zu laden. - Wenn aktiviert werden vorhandene Poster beim speichern überschrieben. Wenn nicht aktiviert wird das Poster nur gespeichert, wenn aktuell keines vorhanden ist.. - Verändere die Größe von Serien Fanarts auf die angegebene. - Verändere die Größe von Serien Fanarts auf die angegebene. - Die Qualität von Fanart Bildern (0 = Original Qualität) - Fanartgröße verändern vor dem speichern - Wähle deine bevorzugte Größe von Serien Fanarts. Ember wird versuchen Poster in deiner gewünschten Größe zu scrapen, falls solche nicht verfügbar sind wird nach der nächst kleineren Größe gesucht. - Wenn aktiviert werden vorhandene Serien Fanarts beim speichern überschrieben. Wenn nicht aktiviert wird das Poster nur gespeichert, wenn aktuell keines vorhanden ist.. - Verändere die Größe von Staffel Postern auf die angegebene. - Verändere die Größe von Staffel Postern auf die angegebene. + Wenn aktiviert werden vorhandene Poster beim speichern überschrieben. Wenn nicht aktiviert wird das Poster nur gespeichert, wenn aktuell keines vorhanden ist. + Verändere die Größe von Serien Fanarts auf die angegebene Breite. + Verändere die Größe von Serien Fanarts auf die angegebene Höhe. + Die Qualität von Serien Fanart (0 = Original Qualität) + Fanartgröße verändern vor dem Speichern. + Wähle deine bevorzugte Größe von Episoden Fanarts. Ember wird versuchen Fanarts in deiner gewünschten Größe zu scrapen, falls solche nicht verfügbar sind wird nach der nächst kleineren Größe gesucht. + Wenn aktiviert werden vorhandene Serien Fanarts beim speichern überschrieben. Wenn nicht aktiviert wird das Poster nur gespeichert, wenn aktuell keines vorhanden ist. + Verändere die Größe von Serien Poster auf die angegebene Breite. + Verändere die Größe von Serien Poster auf die angegebene Höhe. Die Qualität von Staffel Postern (0 = Original Qualität) - Staffel Poster Größe verändern vor dem speichern + Staffel Poster Größe verändern vor dem speichern. Wähle deine bevorzugte Größe von Staffel Postern. Ember wird versuchen Poster in deiner gewünschten Größe zu scrapen, falls solche nicht verfügbar sind wird nach der nächst kleineren Größe gesucht. - Wenn aktiviert werden vorhandene Staffel Poster beim speichern überschrieben. Wenn nicht aktiviert wird das Poster nur gespeichert, wenn aktuell keines vorhanden ist.. - Verändere die Größe von Staffel Fanart auf die angegebene. - Verändere die Größe von Staffel Fanart auf die angegebene. + Wenn aktiviert werden vorhandene Staffel Poster beim speichern überschrieben. Wenn nicht aktiviert wird das Poster nur gespeichert, wenn aktuell keines vorhanden ist. + Verändere die Größe von Staffel Fanarts auf die angegebene Breite. + Verändere die Größe von Episoden Fanart auf die angegebene Höhe. Die Qualität von Staffel Fanart (0 = Original Qualität) - Staffel Fanart Größe verändern vor dem speichern - Wähle deine bevorzugte Größe von Staffel Fanarts. Ember wird versuchen Fanarts in deiner gewünschten Größe zu scrapen, falls solche nicht verfügbar sind wird nach der nächst kleineren Größe gesucht. - Wenn aktiviert werden vorhandene Staffel Fanarts beim speichern überschrieben. Wenn nicht aktiviert wird das Poster nur gespeichert, wenn aktuell keines vorhanden ist.. - Verändere die Größe von Episoden Postern auf die angegebene. - Verändere die Größe von Episoden Postern auf die angegebene. + Staffel Fanart Größe verändern vor dem speichern. + Wähle deine bevorzugte Größe von Episoden Fanarts. Ember wird versuchen Fanarts in deiner gewünschten Größe zu scrapen, falls solche nicht verfügbar sind wird nach der nächst kleineren Größe gesucht. + Wenn aktiviert werden vorhandene Staffel Fanarts beim speichern überschrieben. Wenn nicht aktiviert wird das Poster nur gespeichert, wenn aktuell keines vorhanden ist. + Verändere die Größe von Episoden Postern auf die angegebene Breite. + Verändere die Größe von Episoden Postern auf die angegebene Höhe. Die Qualität von Episoden Postern (0 = Original Qualität) Episoden Poster Größe verändern vor dem speichern - Wenn aktiviert werden vorhandene Episoden Fanarts beim speichern überschrieben. Wenn nicht aktiviert wird das Poster nur gespeichert, wenn aktuell keines vorhanden ist.. - Verändere die Größe von Episoden Fanart auf die angegebene. - Verändere die Größe von Episoden Fanart auf die angegebene. + Wenn aktiviert werden vorhandene Episoden Fanarts beim speichern überschrieben. Wenn nicht aktiviert wird das Poster nur gespeichert, wenn aktuell keines vorhanden ist. + Verändere die Größe von Episoden Fanart auf die angegebene Breite. + Verändere die Größe von Episoden Fanart auf die angegebene Höhe. Die Qualität von Episoden Fanart (0 = Original Qualität) - Episoden Fanart Größe verändern vor dem speichern + Episoden Fanart Größe verändern vor dem speichern. Wähle deine bevorzugte Größe von Episoden Fanarts. Ember wird versuchen Fanarts in deiner gewünschten Größe zu scrapen, falls solche nicht verfügbar sind wird nach der nächst kleineren Größe gesucht. - Wenn aktiviert werden vorhandene Episoden Fanarts beim speichern überschrieben. Wenn nicht aktiviert wird das Poster nur gespeichert, wenn aktuell keines vorhanden ist.. + Wenn aktiviert werden vorhandene Episoden Fanarts beim speichern überschrieben. Wenn nicht aktiviert wird das Poster nur gespeichert, wenn aktuell keines vorhanden ist. Das Scrapen von TV-Serien Bewertungen einschalten. Das Scrapen von TV-Serien Schauspielern einschalten. Das Scrapen von TV-Serien Studios einschalten. Das Scrapen von TV-Serien Premiereterminen einschalten. Das Scrapen von EpisodenGuide URLs einschalten. Das Scrapen von MPAA-Informationen einschalten. - Das Scrapen von TV-Serien Inhaltsangaben (=Plot) einschalten. - Das Scrapen von TV-Serien Genres einschalten. + Das Scrapen von TV-Serien Inhaltsangaben einschalten. + Das Scrapen von Genres einschalten. Das Scrapen von TV-Serien Titeln einschalten. Das Scrapen von Episoden Schauspielern einschalten. Das Scrapen von Episoden Credits einschalten. Das Scrapen von Episoden Regisseuren einschalten. - Das Scrapen von Episoden Inhaltsangaben (=Plot) einschalten. + Das Scrapen von Episoden Inhaltsangaben einschalten. Das Scrapen von Episoden Bewertungen einschalten. Das Scrapen von Episoden Austrahlungsterminen einschalten. Das Scrapen von Episoden Titeln einschalten. @@ -298,6 +298,7 @@ Wähle die bevorzugte Sprache in der nach Informationen und Bildern gesucht werden soll. Das Scrapen von Altersbeschränkungen einschalten. Das Scrapen von IMDB Top250 einschalten. + Das Scrapen von Ländern einschalten. Die Anzahl an gescrapeten Genres limitieren. Die Anzahl an gescrapeten Schauspielern limitieren. Das Scrapen von der restlichen Crew einschalten. ("Gesamte Crew Scrapen" muss eingeschaltet sein) @@ -305,28 +306,28 @@ Das Scrapen von Produzenten einschalten. ("Gesamte Crew Scrapen" muss eingeschaltet sein) Das Scrapen von Autoren einschalten. Das Scrapen von Studios einschalten. - Das Scrapen von Spielzeiten (=Duration) einschalten. - Das Scrapen von Inhaltsangaben (=Plot, Inhalt) einschalten. - Das Scrapen von Kurzbeschreibungen (=Outline) einschalten. + Das Scrapen von Spielzeiten einschalten. + Das Scrapen von Inhaltsangaben einschalten. + Das Scrapen von Kurzbeschreibungen einschalten. Das Scrapen von Genres einschalten. Das Scrapen von Regisseuren einschalten. Das Scrapen von Taglines einschalten. Das Scrapen von Schauspielern einschalten. - Das Scrapen von Anzahl Bewertungen (=Stimmen) einschalten. + Das Scrapen von Anzahl Bewertungen einschalten. Das Scrapen von Trailer URLs einschalten. Das Scrapen von Bewertungen einschalten. Das Scrapen von Premiere-Daten einschalten. Das Scrapen von MPAA-Informationen einschalten. Das Scrapen von Filmjahren einschalten. Das Scrapen von Filmtiteln einschalten. - Die Liste der Erweiterungen die einen Default Metadatensatz haben. - Gib eine Erweiterung für einen neuen default Metadatensatz ein. - Die Default Metadaten der gewählten Erweiterung entfernen. - Die Default Metadaten der gewählten Erweiterung editieren. - Default Metadaten für die gewählte Erweiterung anlegen und der Liste der Default Metadatan hinzufügen. - Wenn aktiviert werden Metadaten aus .IFO Dateien gelesen. + Die Liste der Erweiterungen die einen Defaultmetadaten Eintrag haben. + Gib eine Erweiterung ein. + Die Defaultmetadaten der gewählten Erweiterung entfernen. + Die gewählten Defaultmetadaten editieren. + Fügt die eingegebenen Defaultmetadaten der Liste hinzu. + Wenn aktiviert werden Metadaten aus *.IFO Dateien gelesen. Wenn ein Film die gewählte Sprache beinhaltet wird ein Overlay bei dem Audio Metadaten Symbol eingeblendet. - Wähle das Format für die Spielzeit von Filmen gescannt aus den Metadaten. + Wähle das Format für die Spielzeit von Filmen gescannt aus den Metadaten. Benutze <0m> um die Minuten auzufüllen. Wenn aktiviert werden Metadaten aus den Dateien gescannt. Benutze die Spielzeit aus den Metadaten als Filmlänge. Wenn aktiviert wird die Kurzbeschreibung nur verändert wenn sie leer ist. @@ -335,7 +336,7 @@ Wenn aktiviert werden das Genre nicht verändert sofern mindestens eins zugewiesen ist. Wenn aktiviert wird das Studio nicht verändert sofern eines vorhanden ist. Wenn aktiviert wird die Bewertung nicht verändert sofern eine vorhanden ist. - Wenn aktiviert wird die Tagline nicht verändert sofern sie nicht leer ist. + Wenn aktiviert wird der Titel nicht verändert sofern er nicht leer ist. Wenn aktiviert wird der Titel nicht verändert sofern er nicht leer ist. Wähle die Region die benutzt werden soll im Titel in der eigenen Sprache zu erhalten. Wenn aktiviert wird Ember nach Filmtiteln in der gewählten Sprache suchen. Dies ist Hilfreich um Titel in der eigenen Sprache bei Fremdsprachigen Filmen zu erhalten. @@ -357,5 +358,11 @@ Dies wird die Film Filter wieder auf den Standard zurücksetzen. WARNUNG: Dies WIRD jegliche eigene Änderung löschen. Dies wird die Liste der gültigen Erweiterungen wieder auf den Standard zurücksetzen. WARNUNG: Dies WIRD jegliche eigene Änderung löschen. Dies wird die Serien RegEx wieder auf den Standard zurücksetzen. WARNUNG: Dies WIRD jegliche eigene Änderung löschen. + Aktiviere Click-Scrape im Hauptmenü beim Anklicken der Tabellen-Markierungen. + Wenn aktiviert wird beim Einlesen von Filmen in die Datenbank, das Erstelldatum der Videodatei berücksichtigt statt das aktuelle Datum. Dadurch wird die Sortierung der neuesten Filme zuverlässig und unabhängig von der Datenbank! + Wenn aktiviert wird das Sprachfeld (Video Metadata) nicht aktualisiert. + Wenn aktiviert wird das Sprachfeld (Audio Metadata) nicht aktualisiert. + Wenn aktiviert wird die Altersfreigabe nicht aktualisiert. + Wenn aktiviert werden die MPAA Freigabewerte in FSK konvertiert falls keine FSK Freigabe gefunden wird. Priorität: FSK -> MPAA + Verstecke die Gesehen Spalte in der Medienliste. - diff --git a/Ember Media Manager/Langs/German_(de_DE).xml b/Ember Media Manager/Langs/German_(de_DE).xml index 458fdde..8d362d5 100644 --- a/Ember Media Manager/Langs/German_(de_DE).xml +++ b/Ember Media Manager/Langs/German_(de_DE).xml @@ -1,4 +1,3 @@ - &Datei Beenden @@ -18,7 +17,7 @@ Staffel Ergebnis C&ache leeren Al&le Filme neu laden - Exit + Schliessen Genres Titel Neu laden @@ -30,13 +29,13 @@ Hinzufügen Setzen Entfernen - Film Re-Scrapen + Ausgewählte Filme (Re)Scrapen Film wechseln Beinhaltendes Verzeichnis öffnen Film löschen Alle markieren Filme - Filter aus + Filter löschen Generell Intolerant Unvollständige @@ -52,7 +51,7 @@ Quelle: Genre: Filter - Scraper Abbrechen... + Scraper wird abbgebrochen... Scraper Abbrechen Keine Informationen über diesen Film verfügbar Altersfreigabe @@ -98,7 +97,7 @@ Nur gesperrte Filme anzeigen. Nur Filme der gewählten Quelle anzeigen. Genre wählen... - Speichere Daten und beende.. + Breche alle Prozesse ab... Schauspieler Bist du sicher, dass du fortfahren möchtest? WARNUNG: Wenn du fortfährst werden alle nicht erlaubten Dateitypen gelöscht! @@ -122,10 +121,10 @@ Dateinamensäuberung abbrechen Breche Backdrop Kopiervorgang ab Kopiervorgang abbrechen - reset - speichern - Breche Scraper ab... - Scraper stoppen + leeren + Reguläre Ausdrücke aktualisieren + Scraper wird abbgebrochen... + Scraper Abbrechen Scrape Medien (Alle Filme - Fragen): Scrape Medien (Alle Filme - Automatisch): Dateinamen säubern: @@ -141,10 +140,10 @@ Scrapen: Metadata scannen: Keine Daten aus dem Internet verfügbar, bitte Internetverbindung prüfen und erneut versuchen. - Fehler beim herunterladen der Details. + Fehler beim Herunterladen der Details. Nur {0} aktualisieren - Aktualisieren - Nur + Update + Nur Staffel (Re)Scrapen Episode (Re)Scrapen Poster @@ -163,7 +162,7 @@ Bitte gebe eine URL zur Prüfung ein. Keine Thumb URL eingegeben Film (Re)Scrapen - (Re)Scrape gewählten Film + Ausgewählte Filme (Re)Scrapen Erstelle Filmliste... Erstellung abbrechen... Abbruch @@ -172,7 +171,7 @@ Sperre aufheben Name: Beschreibung: - Erweiterungs Version: + Addon Version: Verzeichnis Dateiname Neues Verzeichnis @@ -189,10 +188,10 @@ &Formatieren &Parsen &Speichern - NFO Editor | + NFO Editor | Dies ist kein gültiges XML-Dokument Datei ist nicht gültig. - Datei ist gültig + Datei ist gültig. Nicht gültig Gültig Möchtest du die Änderungen speichern? @@ -218,7 +217,7 @@ Verzeichnis wählen und "Los" drücken Pfad zum sortieren: Wählen den Pfad in dem sich die Dateien zum sortieren befinden. - Verschiebe + Verschiebe WARNUNG: Wenn du fortfährst werden alle Dateien in separate Verzeichnisse verschoben. Der eingegebene Pfad existiert nicht. Bitte wähle einen gültigen. Verzeichnis nicht gefunden @@ -266,20 +265,20 @@ Cache leeren Poster wechseln (Herunterladen) Fanart wechseln (Herunterladen) - Master.eLang.GetString(148, "Ein oder mehrere Ressources sind in Benutzung und können derzeit nicht gelöscht werden + Ein oder mehrere Ressources sind in Benutzung und können derzeit nicht gelöscht werden. Konnte Cache nicht leeren Größe: {0}x{1} Trailer konnte nicht gestartet werden. Dies könnte an einer Fehlerhaften URI oder an deinem Player liegen. Fehler bei der Wiedergabe - Erweiterungs Datei + Addon Datei Speichern Zurücksetzen Filter Übernehmen - Neu + Neues Addon Jahr - Erweiterung Edit. - - Erweiterungs Dateien + Bearbeite Addon + Addon Dateien Video Audio Unbekannt @@ -293,77 +292,77 @@ Templates Ungültiger Eintrag Sonstiges - Neu + Neues erstellen Erweiterung löschen - Um mit dem Löschen fortzufahren musst du bestätigen, dass du der Besitzer dieser Erweiterung bist + Um mit dem Löschen fortzufahren musst du bestätigen, dass du der Besitzer dieser Erweiterung bist. Besitz Bestätigen Ember Media Manager neu starten? - Die Änderungen benötigen einen Neustart von Ember\n\nMöchtest du jetzt neu starten? + Die Änderungen benötigen einen Neustart von Ember.\n\nMöchtest du jetzt neu starten? Ja Land Originaltitel - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + Sehr groß Groß Mittel Klein - - - - - - - - - - - - - - - - - - - - - - - - - DVD + + + + + + + + + + + + + + + + + + + + + + + + + DVD Ungültig - - - + + + Existiert - - - - - + + + + + Fertiggestellt Alles fertiggestellt - - + + Sets Manager Sets Filme im Set @@ -371,23 +370,23 @@ Lade Filme und Sets... Breche laden ab... Filme zu Filmboxen hinzufügen. - + Herunterladen - - - - - - - - - - + + + + + + + + + + Benutzerdefinierter Scraper Benutzerdefinierten Scraper erstellen Auswahl Filter Update Modus - Modi + Modifikator Starten Optionen Sonstige Crew @@ -395,7 +394,7 @@ Produzenten Autoren Studio - Länge + Laufzeit Tagline Schauspieler Anz. Stimmen @@ -406,7 +405,7 @@ Weiter > Willkommen beim EMM TIPP: Auswählen, die den Text <movie> beinhalten, werden den Filmdatei-Namen verwenden. - Hinzufügen + Quelle hinzufügen Das war nicht schwer, oder? Wie bereits erwähnt können die Einstellungen jederzeit im Einstellungs-Fenster verändert werden. Das war alles!{0}Ember Media Manager ist jetzt bereit! Pfad @@ -414,21 +413,21 @@ Verzeichnisnamen benutzen Einzelner Film Zuerst solltest du Ember Media Manager mitteilen wo sich deine Filme befinden. Erzeuge eine neue Quelle und trage dort das Quellverzeichnis ein. Du kannst soviele Quellen anlegen wie du möchtest. - Du startest entweder Ember zum ersten mal oder hast ein Upgrade auf eine neue Version durchgeführt. Da sind ein paar Dinge die Ember noch von dir wissen muss. {0}Dieser Assistent wird dich durch die Einstellungen begleiten um sich deinen Wünschen und Gegebenheiten anzupassen.{0}{0}In diesem Assistent werden nur die wichtigsten Einstellungen angeboten, du kannst diese und andere Einstellungen jederzeit im "Einstellungen..." Dialog unter dem "Bearbeiten" Menüpunkt verändern. + Du startest entweder Ember zum ersten mal oder hast ein Upgrade auf eine neue Version durchgeführt. Da sind ein paar Dinge die Ember noch von dir wissen muss. Dieser Assistent wird dich durch die Einstellungen begleiten um sich deinen Wünschen und Gegebenheiten anzupassen.{0}{0}In diesem Assistent werden nur die wichtigsten Einstellungen angeboten, du kannst diese und andere Einstellungen jederzeit im "Einstellungen..." Dialog unter dem "Bearbeiten" Menüpunkt verändern. Jetzt, wo Ember Media Manager weiß, WO er nach den Dateien schauen muss, brauchen wir ihm nur noch sagen, WONACH er suchen soll. Bitte wähle eine Kombination aus Dateitypen nach denen Ember Media Manager suchen und in welchen er speichern soll. Du kannst in jeder Sektion natürlich mehrere auswählen. Einige Optionen, die dich noch interessieren könnten:{0}{0}Benutzerdefinierte Filter - Wenn deine Dateinamen oder Verzeichnisse Tags wie "DVDRip", BluRay", "x264", etc. beinhalten, du diese aber beim lesen herausfiltern möchtest, kannst du Benutzerdefinierte Reguläre-Ausdrücke (RegExp) verwenden.{0}{0}Bilder - Diese Sektion erlaubt die Wahl, welche Webseiten zum "Scrapen" verwendet werden, sowie was deine bevorzugte Bildgröße ist.{0}{0}Sperren - In dieser Sektion wird es dir ermöglicht bestimmte Informationen zu sperren, was bedeutet, dass diese Informationen - selbst beim Re-scrapen - nicht automatisch verändert werden. Dies ist besonders hilfreich, wenn du den Titel, Inhalt oder die Kurzbeschreibung manuell editiert hast. Bist du sicher, dass du die gewählte Quelle entfernen möchtest? Dies wird alle Filme der gewählten Quelle aus der Datenbank entfernen Es sind keine Metadaten für diesen Film verfügbar. Einstellungen Kommunikation - - - + + + Benutzer: Passwort: - - - Gemischtes + + + Diverses Sprache: Panel Animation einschalten Automatisch nach Updates suchen @@ -444,12 +443,12 @@ WARNUNG: Der Experten-Modus könnte auch erwünschte Dateien löschen! Erweiterungen laden... Datei - - + + Lade Dateien herunter... - - - + + + Pfad-/Dateiname Filter Jedes Wort groß schreiben Immer Genre-Text anzeigen @@ -473,20 +472,20 @@ Datei Benennung Benutze <movie> nur für Verz. mit mehreren Filmen YAMJ Kompatible VIDEO_TS Datei Sortierung/Benennung - - - - + Frodo Kompatible VIDEO_TS Datei Sortierung/Benennung + + + Poster Qualität: Max Breite: Max Höhe: Größe automatisch verändern: - Bevorzugte Größe + Bevorzugte Größe: Existierende überschreiben Lade Einstellungen... - - - + + + Globales sperren Trailer sperren Genre sperren @@ -494,8 +493,8 @@ Bewertung sperren Tagline sperren Titel sperren - Kurzbeschr. sperren - Beschreibung sperren + Kurzbeschreibung sperren + Handlung sperren Bilder URLs nicht in Nfo speichern Beim Einzelscrapen holen @@ -508,33 +507,33 @@ Anzahl: Beim scrapen extrahieren Benutze Kurzbeschr. falls Beschr. nicht vorhanden - + Nur Schauspieler mit Bild berücksichtigen FSK berücksichtigen Alle Schauspieler (Cast) Alle Mitarbeiter (Crew) Altersfreigaben Region: - Lautzeit Format + Laufzeit Format Benutze Spielzeit als Länge Metadaten scannen Verändert Embers Aussehen und Verhalten - Entfernen + Markierte entfernen Backdrops Verzeichnis Speichere automatisch Fanart im Backdrops-Verz. Alle vorhandenen überschreiben - + Nur URLs holen beim Scrapen Hole beim einzelnen Scrapen - + Hole beim automatischen Scrapen - + Trailer Supp. aktivieren Erweiter. nicht stapeln - - - + + + Gültige Video Erweiterungen - Editieren + Quelle editieren Diverse Optionen Erkenne VIDEO_TS Verzeichnisse auch bei gestapelten Dateien @@ -544,8 +543,8 @@ Rahmen Breite: Höhe: - Benutzerdef. Größe - Native Größe + Benutze benutzerdef. Größe + Benutze native Größe Caching Mehrfach Scrapen Neue TV-Serien "fest" markieren @@ -553,32 +552,32 @@ Image Cache benutzen Wähle das Verzeichnis für die Backdrops Datei Einstellungen - + Dateien und Quellen Scraper - Daten - Scraper - Bilder + Scraper - Bilder & Trailer Banner - - - - - - - - - - Schauspl.Cache aktivieren: + + + + + + + + + + Generiere Schauspl. Cache: Alle [keine] [Deaktiviert] Scrape Poster: Scrape Fanart: - Scrape Trailers: + Scrape Trailer: Erzeuge Extrathumbs: Überprüfe Filmdetails: Scrape Felder - Global Limit: - Tags: + Datei Quelle Zeige nur Filme der gewählten Quelle. Fehlende Einträge Filter Prüfe Poster @@ -587,12 +586,12 @@ Prüfe Trailer Prüfe Untertit. Prüfe Extrathumbs - - - + + + Top 250 - - + + Metadaten Editor Video Streams Audio Streams @@ -607,8 +606,8 @@ Scan Type Breite Höhe - Verhä. - Länge + Seitenverhältnis + Dauer Sprache Kanäle Bevorzugt @@ -618,38 +617,38 @@ Progressive Video Stream Audio Stream - Untert. Stream + Untertitel Stream Movie Theme Neue Episoden "fest" markieren - Medien Scrapen (Fragen): - Medien Scrapen (Automatisch): + Medien Scrapen (Aktueller Filter - Fragen) + Medien Scrapen (Aktueller Filter - Automatisch) Aktueller Filter Standard nach Dateityp Dateityp Gewählte Einträge: {0} IFO Parsing einschalten Themes - - - - - + + + + + Du hast {0} Verzeichnisse zum öffnen gewählt. Bist du Sicher? - - - - - - - Sort. Titel + + + + + + + Sortier Titel YAMJ Kompatibles speichern Säubere Datenbank... Premiere: {0} - Aus der Datenbank entfernen + Aus Datenbank entfernen Ausgestrahlt: {0} Staffel: {0}, Episode: {1} Alle aktualisieren - Staffel + Staffel Keine Informationen über diese Serie vorhanden Keine Informationen über diese Episode vorhanden TV Serien @@ -663,11 +662,11 @@ Episode Laden Als Poster speichern Serie Editieren - Die Details der gewählten Serie editieren. + TV Serien Theme Premiere: TV Serien Theme Episode Theme - Datenbank nach Update säubern + Datenbank nach Bibliotheksaktualisierung säubern Letzte Scanzeit beim Update ignorieren Serien Verzeichnis/Datei Filter Episoden Verzeichnis/Datei Filter @@ -688,8 +687,8 @@ Staffel Fanart Episoden Poster Episoden Fanart - [FEHLT] - Editieren + [FEHLT] + Edit Regex Serien Match Regex Staffel Match Regex: Episode Match Regex: @@ -701,12 +700,12 @@ Regex Serie Episode - - - + + + Serien Quelle Wähle das Serien Verzeichnis - IMDB Bewertung + Spende Datenbank säubern Nur Titel der Sprache: @@ -762,7 +761,7 @@ Lade Serien Zip: Prüfe Serie: Prüfe Episode: - Bist du sicher, dass du die gewählte Serie und alle enthaltenen Episoden löschen möchtest? + Bist du sicher, dass du die gewählte Serie(n) und alle enthaltenen Episoden löschen möchtest? Bist du sicher, dass du die gewählte Episode löschen möchtest? Bist du sicher, dass du die gewählte Staffel und alle enthaltenen Episoden löschen möchtest? Serie (Re)Scrapen @@ -773,37 +772,37 @@ Staffel löschen Episode wechseln Episode löschen - eingeschaltet - ausgeschaltet - + Aktiviert + Deaktiviert + Autor - - - - - + + + + + Inhalt: - - + + Alle-Staffeln Poster - - - - - + + + + + Spende &Versionen... &Modul Einstellungen... Oberfläche In der Reihenfolge des letzten Schreibvorgangs scannen Standard Episoden Sortierung: - + Scraper - Trailer Bevorzugte Qualität: TVDB Mirror Module Als nächstes verrate Ember wo sich deine TV-Serien befinden. Du kannst so viele Quellen eintragen wie du möchtest. - Und zu guter Letzt musst du Ember noch sagen, nach welchen Serien Dateien Ember suchen muss. Wähle einfach eine Kombination aus Dateien die Ember laden und speichern soll. Du kannst auch mehrere wählen! + Und zu guter Letzt musst du Ember noch sagen, nach welchen Serien Dateien Ember suchen muss. Wähle einfach eine Kombination aus Dateien die Ember laden und speichern soll. Du kannst auch mehrere wählen! Bei PasteBin.com hochladen In die Zwischenablage kopieren Ein Hochladen zu Pastebin.com ist ein Fehler aufgetreten @@ -813,44 +812,81 @@ PasteBin URL: Bisheriger Titel: {0} | Neuer Titel: {1} Film Scraped - Episode hinzugefügt: - Film hinzugefügt: + Neue Episode hinzugefügt + Neuen Film hinzugefügt Ein Fehler ist aufgetreten Neuen Film hinzugefügt Neue Episode hinzugefügt TV RegEx Profile RegEx Profile Beschreibung - Miscellaneous + Diverses Audio & Video Codec Mapping Video Source: Downloads: - - - Aktiviere Schauspl.Cache + + + Aktiviere Actor Thumbs Überwachen des ""Dump"" Ordners Details für die gewählte Staffel editieren. - + Alle-Staffeln Poster zeigen Dies sind Scraper spezifische Einstellungen.\nDu solltest auch die Globalen Einstellungen prüfen. * Im Staffel Verzeichnis Nur Wert speichern - - Scraper - Bilder + + Fragen On Click Scrape Banner Absolut - Bist du sicher, dass du die Serien Filter zurücksetzen möchtest? - Bist du sicher, dass du die Episoden Filter zurücksetzen möchtest? - Bist du sicher, dass du die Film Filter zurücksetzen möchtest? - Bist du sicher, dass du die gültigen Video Extensions zurücksetzen möchtest? - Bist du sicher, dass du die Serien RegEx zurücksetzen möchtest? - >> Kein Eintrag gewählt << - - - - Einschalten Click Scrape - Nach Updates Su&chen - Kein Update vorhanden - Fragen On Click Scrape + Sind sie sich sicher das sie die Show-Filter auf die Standardwerte zurücksetzen wollen ? + Sind sie sich sicher das sie die Folgen(Episoden)-Filter auf die Standardwerte zurücksetzen wollen ? + Sind sie sich sicher das sie die Filme-Filter auf die Standardwerte zurücksetzen wollen ? + Sind sie sich sicher das sie die Liste der zulässigen Video- Dateierweiterungen auf die Standardwerte zurücksetzen wollen ? + Sind sie sich sicher das sie die Liste der regulären Ausdrücke für Shows auf die Standardwerte zurücksetzen wollen ? + >> Kein Eintrag ausgewählt << + + + + Click-Scrape aktivieren + &Überprüfe auf Updates... + Zur Zeit keine Updates verfügbar + Fragen bei Click-Scrape + Scrape Medien (Alle Filme - Überspringen): + Grundeinstellung + Erstellen von Standard-Optionen... + Lade Module... + Erstelle Grafische Benutzeroberfläche... + Lade Datenbank... + Laufendes Modul... + Medien werden geladen... + Command Line Scraping... + Lade Übersetzungen... + Positionieren von Steuerelementen... + Stelle Menüs ein... + Version {0}.{1}.{2}.{3} + Metadaten + XBMC Frodo + Top 250 + EmberMM.com &Wiki... + + + + + Nutze "Erstellt:"-Dateiinfo der Videodatei + + + + + Sprache sperren (Video) + Sprache sperren (Audio) + Altersfreigabe sperren + Benutze MPAA wenn keine FSK Freigabe vorliegt + Gesehen + Gesehen-Spalte verstecken + Untertitel sperren + Wiederholen + Abbrechen + Datenbank Kompatibilität + Datenbank ist nicht kompatibel! + Deine Datenbank ist nicht kompatibel mit dieser Version von Ember!\n\nDeine bestehende Datenbank wird als "Media.emm_old" gesichert und eine leere Datenbank angelegt.\n\nUm deine alte Datenbank anzupassen folge diesem Tutorial. - diff --git a/Ember Media Manager/Langs/Italian_(it_IT)-Help.xml b/Ember Media Manager/Langs/Italian_(it_IT)-Help.xml new file mode 100644 index 0000000..c47a02f --- /dev/null +++ b/Ember Media Manager/Langs/Italian_(it_IT)-Help.xml @@ -0,0 +1,368 @@ + + Se abilitato, le immagini del genere verranno sempre visualizzate. Se disabilitato, sarà visible solo il testo quando il puntatore del mouse passa sopra una delle immagini. + Se abilitato, Ember controllerà il nome della cartella per i tipi di sorgente. Se disabilitato, Ember controllerà solo il nome del file. + Se abilitato, la fanart non sarà visualizzata nella finestra principale. Abilitare questa opzione è utile a velocizzare la visualizzazione su computer lenti. + Se abilitato, iposters non saranno visualizzati nella finestra principale. Abilitare questa opzione è utile a velocizzare la visualizzazione su computer lenti. + Se abilitato, le dimensioni delle immagini (Posters e Fanart) saranno mostrate nelle immagini stesse. + Se abilitato, Ember cercherà una nuova versione ad ogni avvio. + Se abilitato, i files NFO saranno sovrascritti durante il salvataggio. Se disabilitato saranno invece rinominati come *.info. + Se abilitato, tutti gli errori saranno trascritti in un file nel percorso <Ember Installation Directory>\Log\errlog.txt. + Seleziona il tema da applicare al layout episodio. + Seleziona il tema da applicare al layout della Serie TV e della Stagione. + Seleziona il tema da applicare al layout del film. + Scarica Addons per Ember, inclusi moduli, temi, traduzioni e modelli di esportazione. + Seleziona la Lingua da usare nell'interfaccia di Ember. (devi riavviare Ember affiché la modifica abbia effetto) + Pulisci tutti i files chiamati "folder.jpg". + Pulisci tutte le Cartelle "extrathumbs". + Pulisci tutti i files "movie.tbn". + Pulisci tutti i files <movie>.jpg. + Pulisci tutti i files <movie>.tbn. + Pulisci tutti i files "movie.jpg". + Pulisci tutti i files "fanart.jpg". + Pulisci tutti i files "poster.jpg". + Pulisci tutti i files <movie>-fanart.jpg. + Pulisci tutti i files "poster.tbn". + Pulisci tutti i files "movie.nfo". + Pulisci tutti i files <movie>.fanart.jpg. + Pulisci tutti i files <movie>.nfo. + Metti automaticamente nella whitelist tutti i files che hanno una estensione elencata nella lista "Estensioni Video Valide". + Rimuovi le estensioni selezionate dalla whitelist. + Aggiungi l'estensione inserita nella whitelist. + Inserisci un'estensione da aggiungere alla whitelist. + Questa lista contiene tutte le estensioni correnti che saranno saltate durante la pulizia. + Se abilitato, Ember salverà le informazioni del set in un formato compatibile YAMJ. Se disabilitato, Ember salverà le informazioni del set in un formato compatibile XBMC. + Se abilitato, cliccando su una casella di controllo della lista dei film inizilizzerà un'analisi manuale. Se disabilitato, verrà usata un'analisi automatica. + Se abilitato, i nuovi films verranno "marcati". Se disabilitato, i nuovi films continueranno ad essere colorati in verde sino a nuovo aggiornamento o al successivo riavvio di Ember. + Seleziona la lingua(e) dei generi che vorresti Ember mostrasse. + Immettere il livello di tolleranza che si desideri Ember usi quando trova un titolo corrispondente. Maggiore è il numero maggiore è la tolleranza dell'algoritmo. 0 = disabilitato + Attiva questo affinché Ember controlli le differenze tra il titolo del film e il nome del file. Questo è utile per assicurarsi che i dati analizzati siano realmente per il file selezionato. + Remove the selected sort token from the list. + Add the entered sort token to the list. + Enter in a sort token to add to the list. + A list of all current sort tokens. (If the movie title begins with a sort token, then the sort token will be moved to the end. For example: Sort Token = "The", Title = "The Dark Knight", Result = "Dark Knight, The") + Se abilitato, Ember mostrerà l'anno del film nella lista principale. + Nascondi la colonna Extrathumbs dalla lista principale dei Film. + Nascondi la colonna Extrathumbs dalla lista principale dei Film. + Nascondi la colonna Sottotiltoli dalla lista principale dei Film. + Nascondi la colonna Info dalla lista principale dei Film. + Nascondi la colonna Fanart dalla lista principale dei Film. + Nascondi la colonna Poster dalla lista principale dei Film. + If enabled, "<movie>.ext" items will only be utilized in folders that have multiple movies. This is useful when you have a mixture of multiple movie and single movie folders and you wish to reduce the number of extra files. + Salva trailer come "<movie>[trailer].ext". + salva trailer come "<movie>-trailer.ext". + If enabled, Ember will save the meta files in the parent directory (YAMJ compatible). If disabled, Ember will save the meta files directly to the VIDEO_TS folder (XBMC compatible). This setting applies to BDMV folders, as well. + Salva files NFO come "movie.nfo". + salva files NFO come "movie.nfo". + Salva files fanart come "<movie>.fanart.jpg". + Salva files fanart come "<movie>-fanart.jpg". + Salva files fanart come "fanart.jpg". + Salva poster come "folder.jpg" + Salva poster come "poster.jpg" + Salva poster come "poster.tbn" + Salva poster come "<movie>.jpg" + Salva poster come "movie.jpg" + Salva poster come "<movie>.tbn" + Salva poster come "movie.tbn" + Lista di tutte le sorgenti film. (Percorsi che verranno scansionati per i files dei film) + Lista di tutte le sorgenti film. (Percorsi che verranno scansionati per i files dei film) + Lista di tutte le sorgenti film. (Percorsi che verranno scansionati per i files dei film) + Lista di tutte le sorgenti film. (Percorsi che verranno scansionati per i files dei film) + Lista di tutte le sorgenti film. (Percorsi che verranno scansionati per i files dei film) + Lista di tutte le sorgenti film. (Percorsi che verranno scansionati per i files dei film) + Lista di tutte le sorgenti film. (Percorsi che verranno scansionati per i files dei film) + Rimuovi la sorgente(i) selezionata dalla lista. + Aggiungi una nuova cartella alla lista sorgenti. + Resize poster files to the entered width. + Resize poster files to the entered height. + Adjust the quality of the poster files. (0 = original quality) + Resize poster files before saving. + Select the preferred poster size you would like to retreive from the image servers. During automatic scrapers, Ember will attempt to find a poster of this size first. If a poster of the selected size cannot be found, the first available image will be used instead. + If enabled, existing poster files will be overwritten if new ones are selected. If disabled, poster files will only be saved if a current one does not already exist. + Resize fanart files to the entered width. + Resize fanart files to the entered height. + If enabled, Ember will only retrieve fanart of the selected size. (NOTE: If there are no fanart images of the selected size available, no fanart images will be retrieved) + Adjust the quality of the fanart files. (0 = original quality) + Resize fanart files before saving. + Select the preferred fanart size you would like to retrieve from the image servers. Durint automatic scrapers, Ember will attempt to find a fanart image of this size first. If a fanart image of the selected size cannot be found, the first available image will be used instead. + If enabled, existing fanart files will be overwritten if new ones are selected. If disabled, fanart files will only be saved if a current one does not already exist. + If enabled, Ember will not save URLs to the poster and fanart images in the nfo files. (Recommended for YAMJ compatibility) + Select images while scraping a single movie file. + Save images to the image cache when scraping multiple movie files. + If enabled, Ember will not clear the image cache between sessions. + Enable Ember's image cache. + If enabled and no fanart is available for the selected movie, Ember will use one of the extracted thumbnails as the fanart image. + If enabled, extrathumbs will only be extracted from the first half of the movie in order to avoid "spoilers". + Enter the number of extrathumbs you would like to automatically generate. + If enabled, Ember will automatically extract the entered number of extrathumbs during scraping. + Enter the domain for your proxy. (Optional - not necessary for most proxies) + Enter the password needed to access your proxy. + Enter the username needed to access your proxy. + Abilita se il tuo proxy richiede l'autenticazione. + Inserisci la porta per poter accedere al tuo proxy. + Inserisci l'IP o l'URL per poter accedere al tuo proxy. + Se abilitato, Ember il proxy definito per tutte le connessioni internet. + Move the selected filter up in the list. (Filters are processed in order from top to bottom) + Move the selected filter down in the list. (Filters are processed in order from top to bottom) + Automatically apply proper casing to movie titles. (Example: "the dark knight" becomes "The Dark Knight") + Rimuovi il filtro selezionato dalla lista. + Aggiungi il filtro selezionato alla lista. + Enter text or regex to use as a filter. Special: "a[->]b" = replace all occurrances of "a" with "b" (Example: ".[->]_" will replace all periods in the title with underscores.) + The list of all current filters that will be used when generating titles for movies. + If enabled, Ember will display movies missing extrathumbs when utilizing the Missing Items Filter. + If enabled, Ember will display movies missing subtitle files when utilizing the Missing Items Filter. + If enabled, Ember will display movies missing trailers when utilizing the Missing Items Filter. + If enabled, Ember will display movies missing nfo files when utilizing the Missing Items Filter. + If enabled, Ember will display movies missing fanart when utilizing the Missing Items Filter. + If enabled, Ember will display movies missing posters when utilizing the Missing Items Filter. + If enabled, Ember will automatically save new fanart images to the entered backdrops folder. + Open a folder browser to select a backdrops folder. + Il percorso alla cartella degli sfondi. + Remove the selected extension from the No Stack Extensions list. + Add the entered extension to the No Stack Extensions list. + Enter an extension to add to the No Stack Extensions list. + The list of extensions Ember will not stack into single files when adding them to the library. + Remove the selected extension from the Valid Video Extensions list. + Add the entered extension to the Valid Video Extensions list. + Enter an extension to add to the Valid Video Extensions list. + The list of extensions Ember will look for when updating the library. + Modifica la sorgente selezionata. + If enabled, Ember will add new files in order of there last modified time. If disabled, Ember will add new files to the library in alphabetical order. + If enabled, Ember will sort all single files in the top directory of the source into their own folders. + If enabled, Ember will scan all folders/files regardless of the last scan time. If disabled, Ember will only scan files/folders added after the last time files were scanned. + If enabled, Ember will clean the movie database after each scan. (Remove entries for files that no longer exist or no longer match selected setting values) + If enabled, Ember will attempt to recognize VIDEO_TS folders even if the folder is not named "VIDEO_TS". If disabled, Ember will still handle VIDEO_TS folders if the folder is named "VIDEO_TS". This setting also applies to BDMV folders. + If enabled, Ember will not skip files smaller than the entered "Skip Files Smaller Than" size if they contain stacking markers (such as "CD1" or "DVD2"). + Ember will use the entered size as the minimum size for movie files. Any files smaller than this will be skipped when updating the library. + Ember will use the entered size as the minimum size for episode files. Any files smaller than this will be skipped when updating the library. + Seleziona la qualità preferita per i trailers da scaricare. + If enabled, Ember will delete all existing trailers for the movie before saving the new one. + If enabled, existing trailer files will be overwritten when saving new ones. If disabled, new trailer files will only be saved if one does not already exist. + If enabled, trailer files will not be downloaded. Instead, the trailer url will be saved to the nfo. + If enabled, trailers will be downloaded while scraping a single movie. + If enabled, trailers will be downloaded during "All Items" scrapers. + Abilita Supporto Trailer di Ember + Select the size of the fanart you would like to download as extrathumbs. + If enabled, Ember will automatically download all fanart of the selected size as extrathumbs. + Resize extrathumbs to the entered width. + Resize extrathumbs to the entered height. + If enabled, Ember will add "black bars" to the edges of the extrathumbs if they are smaller than the entered size. + Resize extrathumbs to the entered size, regardless of the native resolution. + Save extrathumbs using the same resolution as the video. + The list of all current TV Show sources. (Paths that will be scanned for TV Show files) + The list of all current TV Show sources. (Paths that will be scanned for TV Show files) + The list of all current TV Show sources. (Paths that will be scanned for TV Show files) + The list of all current TV Show sources. (Paths that will be scanned for TV Show files) + If enabled, Ember will add new files in order of there last modified time. If disabled, Ember will add new files to the library in alphabetical order. + If enabled, Ember will scan all folders/files regardless of the last scan time. If disabled, Ember will only scan files/folders added after the last time files were scanned. + If enabled, Ember will clean the TV Show database after each scan. (Remove entries for files that no longer exist or no longer match selected setting values) + Aggiungi una nuova cartella alla lista sorgenti. + Modifica la sorgente selezionata. + Rimuovi la sorgente(i) selezionata dalla lista. + Save All Seasons poster files as "season-all.jpg". + Save All Seasons poster files as "season-all.tbn". + Save episode fanart files as "<episode>.fanart.jpg". + Save episode fanart files as "<episode>-fanart.jpg". + Save episode poster files as "<episode>.jpg". + Save episode poster files as "<episode>.tbn". + Save season fanart files as "<season>.fanart.jpg". (Will only save inside the season directory, if it exists) + Save season fanart files as "<season>-fanart.jpg". (Will only save inside the season directory, if it exists) + Save season fanart files as "fanart.jpg". (Will only save inside the season directory, if it exists) + Save season fanart files as "folder.jpg". (Will only save inside the season directory, if it exists) + Save season poster files as "<season>.jpg". (Will only save inside the season directory, if it exists) + Save season poster files as "<season>.tbn". (Will only save inside the season directory, if it exists) + Save season poster files as "poster.jpg". (Will only save inside the season directory, if it exists) + Save season poster files as "poster.tbn". (Will only save inside the season directory, if it exists) + Save season poster files as "seasonX.tbn". (Example: season2.tbn) + Save season poster files as "seasonXX.tbn". (Example: season02.tbn) + Save show fanart files as "<show>.fanart.jpg". + Save show fanart files as "<show>-fanart.jpg". + Save show fanart files as "fanart.jpg". + Save show poster files as "<show>.jpg". + Save show poster files as "<show>.tbn". + Save show poster files as "poster.jpg". + Save show poster files as "poster.tbn". + Save show poster files as "folder.jpg". + Add the entered regex to the TV Show Regex list. + Enter the regex to use to detect the season number. + Choose if you would like to process the season regex against the directory name or the episode file name. + Enter the regex to use to detect the episode number. + Choose if you would like to process the episode regex against the directory name, the episode file name, or the results of the season regex. + Edit the selected TV Show regex. + Remove the selected TV Show regex from the list. + The list of current TV Show regex. + The list of current TV Show regex. + The list of current TV Show regex. + The list of current TV Show regex. + The list of current TV Show regex. + The list of current TV Show regex. + If enabled, episodes that are missing from your collection will be displayed in the episode list, but will be colored a light gray. + Hide the Info column from the episode list. + Hide the Fanart column from the episode list. + Hide the Poster column from the episode list. + Hide the Fanart column from the season list. + Hide the Poster column from the poster list. + Hide the Info column from the show list. + Hide the Fanart column from the show list. + Hide the Poster column from the show list. + If enabled, if an All Season poster exists for the selected show, it will be displayed on the right of the interface. + Select the region of the ratings you would like to display in the interface. + If enabled, Ember will not attempt to filter episode file names for titles and instead will build them from the show name, season, and episode until a proper title has been fetched. + Move the selected filter up in the list. (Filters are processed in order from top to bottom) + Move the selected filter down in the list. (Filters are processed in order from top to bottom) + Automatically apply proper casing to episode titles. (Example: "stole beer from golfer" becomes "Stole Beer From Golfer") + Remove the selected filter from the filter list. + Add the entered filter to the filter list. + Enter a filter to add to the filter list. + The list of all current filters that will be used when generating titles for episodes. + Move the selected filter up in the list. (Filters are processed in order from top to bottom) + Move the selected filter down in the list. (Filters are processed in order from top to bottom) + Automatically apply proper casing to episode titles. (Example: "my name is earl" becomes "My Name is Earl") + Remove the selected filter from the filter list. + Add the entered filter to the filter list. + Enter a filter to add to the filter list. + The list of all current filters that will be used when generating titles for shows. + If enabled, all English images will be retrieved, regardless of the selected language. + If enabled, only images for the preferred language will be retrieved. + Resize show poster files to the entered width. + Resize show poster files to the entered height. + Adjust the quality of the show poster files. (0 = original quality) + Resize show poster files before saving. + Select the preferred show poster type you would like to retreive from the image servers. During the show scraper, Ember will attempt to find a poster of this type first. If a poster of the selected size cannot be found, the first available image will be used instead. + If enabled, existing show poster files will be overwritten if new ones are selected. If disabled, show poster files will only be saved if a current one does not already exist. + Resize show fanart files to the entered width. + Resize show fanart files to the entered height. + Adjust the quality of the show fanart files. (0 = original quality) + Resize show fanart files before saving. + Select the preferred fanart size you would like to retreive from the image servers. During the show scraper, Ember will attempt to find a fanart image of this size first. If a fanart image of the selected size cannot be found, the first available image will be used instead. + If enabled, existing show fanart files will be overwritten if new ones are selected. If disabled, show fanart files will only be saved if a current one does not already exist. + Resize season poster files to the entered width. + Resize season poster files to the entered height. + Adjust the quality of the season poster files. (0 = original quality) + Resize season poster files before saving. + Select the preferred season poster type you would like to retreive from the image servers. During the show scraper, Ember will attempt to find a poster of this type first. If a poster of the selected size cannot be found, the first available image will be used instead. + If enabled, existing season poster files will be overwritten if new ones are selected. If disabled, season poster files will only be saved if a current one does not already exist. + Resize season fanart files to the entered width. + Resize season fanart files to the entered height. + Adjust the quality of the season fanart files. (0 = original quality) + Resize season fanart files before saving. + Select the preferred fanart size you would like to retreive from the image servers. During the show scraper, Ember will attempt to find a fanart image of this size first. If a fanart image of the selected size cannot be found, the first available image will be used instead. + If enabled, existing season fanart files will be overwritten if new ones are selected. If disabled, season fanart files will only be saved if a current one does not already exist. + Resize episode poster files to the entered width. + Resize episode poster files to the entered height. + Adjust the quality of the episode poster files. (0 = original quality) + Resize episode poster files before saving. + If enabled, existing episode poster files will be overwritten if new ones are selected. If disabled, episode poster files will only be saved if a current one does not already exist. + Resize episode fanart files to the entered width. + Resize episode fanart files to the entered height. + Adjust the quality of the episode fanart files. (0 = original quality) + Resize episode fanart files before saving. + Select the preferred fanart size you would like to retreive from the image servers. During the show scraper, Ember will attempt to find a fanart image of this size first. If a fanart image of the selected size cannot be found, the first available image will be used instead. + If enabled, existing episode fanart files will be overwritten if new ones are selected. If disabled, episode fanart files will only be saved if a current one does not already exist. + Enable scraping show rating. + Enable scraping show actors. + Enable scraping show studios. + Enable scraping show premiered date. + Enable scraping the Episode Guide URL. + Enable scraping show MPAA. + Enable scraping show plot. + Enable scraping show genre. + Enable scraping show title. + Enable scraping episode actors. + Enable scraping episode credits. + Enable scraping episode directors. + Enable scraping episode plot. + Enable scraping episode rating. + Enable scraping episode aired date. + Enable scraping episode title. + Enable scraping episode number. + Enable scraping season number. + If enabled, the episode title will only be scraped if a current one does not exist. + If enabled, the episode rating will only be scraped if a current one does not exist. + If enabled, the episode plot will only be scraped if a current one does not exist. + If enabled, the show plot will only be scraped if a current one does not exist. + If enabled, the show genre will only be scraped if a current one does not exist. + If enabled, the show studio will only be scraped if a current one does not exist. + If enabled, the show rating will only be scraped if a current one does not exist. + If enabled, the show title will only be scraped if a current one does not exist. + The list of extensions that have default meta data entries. + Enter an extension to create a default meta data entry. + Remove the default meta data for the selected extension from the default meta data list. + Edit the default meta data for the selected extension in the default meta data list. + Create default meta data for the entered extension and add the to the default meta data list. + If the selected language is found in the episode, a special icon indicator will be overlayed on the meta data audio icon. + If enabled, Ember will scan episode files for meta data. + Select the time to wait between updating cached TV information files. + Enter the TVDB API Key of the media center/player you use. This is not necessary for Ember to function. It is only used when saving the Episode Guide URL to the nfo. + Enter the mirror to use when retrieving information from theTVDB. + Click to download all available languages from theTVDB. + Select the preferred language to use when downloading show information and images. + Enable scraping movie certification. + Enable scraping movie Top 250 ranking. + Enable scraping movie production country. + Limit the number of scraped genres to the entered value. + Limit the number of scraped actors to the entered value. + Enable scraping movie other crew. (Scrape Full Crew must be enabled) + Enable scraping movie musicians. (Scrape Full Crew must be enabled) + Enable scraping movie producers. (Scrape Full Crew must be enabled) + Enable scraping movie writers. + Enable scraping movie studio. + Enable scraping movie runtime. + Enable scraping movie plot. + Enable scraping movie outline. + Enable scraping movie genre. + Enable scraping movie director. + Enable scraping movie tagline. + Enable scraping movie cast. + Enable scraping movie votes. + Enable scraping movie trailer url. + Enable scraping movie rating. + Enable scraping movie release date. + Enable scraping movie MPAA. + Enable scraping movie year. + Enable scraping movie title. + The list of extensions that have default meta data entries. + Enter an extension to create a default meta data entry. + Remove the default meta data for the selected extension from the default meta data list. + Edit the default meta data for the selected extension in the default meta data list. + Create default meta data for the entered extension and add the to the default meta data list. + If enabled, Ember will process *.ifo files for meta data information. + If the selected language is found in the movie, a special icon indicator will be overlayed on the meta data audio icon. + Enter the format you wish to use for the movie duration retrieved from scanning meta data. Note you can also use <0m> for 0 padding minutes + If enabled, Ember will scan movie files for meta data. + Use the movie duration retrieved from scanning meta data as the runtime of the movie. + If enabled, the movie outline will only be scraped if a current one does not exist. + If enabled, the movie plot will only be scraped if a current one does not exist. + If enabled, the movie trailer will only be scraped if a current one does not exist. + If enabled, the movie genre will only be scraped if a current one does not exist. + If enabled, the movie studio will only be scraped if a current one does not exist. + If enabled, the movie rating will only be scraped if a current one does not exist. + If enabled, the movie tagline will only be scraped if a current one does not exist. + If enabled, the movie title will only be scraped if a current one does not exist. + Select the region of the title you would like Ember to look for. + If enabled, Ember will check for alternative titles in the selected language. This is useful for fetching titles in your native language when scraping foreign films. + If enabled, Ember will use the outline for the plot if the plot is empty. + If enabled, Ember will only scrape cast entries that have valid images. + If enabled, Ember will use the certifcation of the selected region in place of the MPAA rating. + If enabled, all cast members will be scraped instead of only top billed. + If enabled, all crew members will be scraped (if individually enabled). + Select the region to filter certification ratings. + Only scrape the certificaton rating for the selected region. + If enabled, new shows will be "marked". If disabled, new shows will still be colored green until updated or the next Ember session. + If enabled, new episodes will be "marked". If disabled, new episodes will still be colored green until updated or the next Ember session. + Select the default ordering Ember will use when scraping information for a show. + If enabled, Ember will only save the value of the certification to the MPAA field. (Example: "Germany:18" will save as "18") + If enabled, Ember will attempt to download a banner (wide) image of the selected type as the default show poster. + If enabled, Ember will attempt to download a poster image of the selected type as the default show poster. + This will reset the show filters to the default list. WARNING: This WILL delete any custom filters you have entered. + This will reset the episode filters to the default list. WARNING: This WILL delete any custom filters you have entered. + This will reset the movie filters to the default list. WARNING: This WILL delete any custom filters you have entered. + This will reset the valid extensions to the default list. WARNING: This WILL delete any custom extensions you have entered. + This will reset the show regex to the default list. WARNING: This WILL delete any custom regex you have entered. + Enable Click Scrape on main screen column marks. + If enabled Ember will respect the FileBuilt-Date of videofile instead of using the current date when importing new movies into the database. That results in more stable searches when filtering for newest movies! + If enabled, the language field (video metadata) will not be updated. + If enabled, the language field (audio metadata) will not be updated. + If enabled, the certification/MPAA field will not be updated. + If enabled, MPAA values will be converted to FSK if no FSK values are found. Priority: FSK -> MPAA + Hide the Watched column from the main movie list. + diff --git a/Ember Media Manager/Langs/Italian_(it_IT).xml b/Ember Media Manager/Langs/Italian_(it_IT).xml new file mode 100644 index 0000000..97df2da --- /dev/null +++ b/Ember Media Manager/Langs/Italian_(it_IT).xml @@ -0,0 +1,892 @@ + + &File + &Esci + &Modifica + &Impostazioni... + &Aiuto + &Informazioni... + Carico Contenuti: + &Strumenti + &Pulisci Files + &Ordina Files nelle Cartelle + Copia la Fanart esistente nella Cartella Sfo&ndi + Rispristina Metadati Studios &Tags + Nome Cartella + Sets Mana&ger + Nome File + Risultati Stagione + Pulisci tutta la cac&he + Ricarica &Tutti i Films + Chiudi + Generi + Titolo + Ricarica + Marca + Blocca + Modifica Film + Dettagli + >> Seleziona Genere << + Aggiungi + Set + Rimuovi + (Ri)Analizza Films Selezionati + Cambia Film + Apri Cartella + Cancella Film + Marca Tutti + Films + Cancella Filtri + Generale + Fuori Tolleranza + Elementi Mancanti + Duplicati + Specifico + Bloccato + Modificatore + And + Or + Nuovo + Marcato + Anno: + Origine: + Genere: + Filtri + Cancellazione Analisi... + Cancella Analisi + Nessuna Informazione disponibile per questo Film + Certifiazione(i) + Data di rilascio + Aggiorna + Metadati + Percorso File + IMDB ID + Regista + Cast + Trama + Trama + Informazioni + Analizza Media + Tutti Film + Automatico (forza migliore corrispondenza) + Tutti gli elementi + Solo NFO + Solo Poster + Solo Fanart + Solo Extrathumbs + Solo Trailer + Solo Metadati + Chiedi (Richiede input in mancanza di esatta corrispondenza) + Elementi Mancanti Film + Nuovo Film + Seleziona Films + Analizzatore personalizzato... + Aggiorna Libreria + Media Centers + Analizza/Scarica dati da internet per film multipli + Scansiona le sorgenti per nuovi contenuti e pulisci il database + Manda un commando a XMBC per iniziare il suo processo interno di "Aggiorna Libreria" + Seleziona o Deseleziona tutti i film nella lista + Ricerca i titoli dei films inserendo il testo qui + Riproduci il file col riproduttore multimediale predefinito di sistema + Scansiona nuovamente e salva i metadati per il film selezionato + Mostra solo films che hanno un ID IMDB duplicato + Mostra solo films che hanno un titolo fuori tolleranza + Mostra solo films che hanno elementi mancanti + Mostra solo nuovi films + Visualizza solo i films selezionati. + Mostra solo films bloccati + Visualizza solo i films dalla sorgente selezionata. + Seleziona Genere... + Cancellazione di tutti i processi... + Attore + Sei sicuro di voler continuare? + ATTENZIONE: Se continui, tutti i tipi di files non presenti nella whitelist saranno cancellati! + ATTENZIONE: Se continui, tutti i files dei seguenti tipi saranno definitivamente cancellati! + Sei sicuro? + Deseleziona tutto + >> Multiplo << + Deseleziona + Sblocca + ATTENZIONE: QUESTO CANCELLERÀ DEFINITIVAMENTE IL FILM(S) SELEZIONATO DAL DISCO RIGIDO. + Aggiorno: + Impossibile caricare le cartelle. Controllare le impostazioni. + Durata: {0} + Ora seleziona la lingua predefinita che Ember userà durante l'analisi degli elementi delle Serie Televisive. + * Questo DEVE essere abilitato per usare extrathumbs e le opzioni di denominazione file, come movie.tbn, fanart.jpg, etc. + Aggiungi Regex + Eseguo Attività Preliminari (Raccolta Dati)... + Film Sconosciuto ({0}) + {0} Voti + Cancello Pulizia File + Cancello Pulizia + Cancello Copia Sfondo... + Cancello Copia + Cancella + Aggiorna Regex + Cancellazione Analisi... + Cancella Analisi + Analizza Media (Tutti i Films - Chiedi): + Analizza Medi (Tutti i Films - Automatico) + Pulendo i Files: + Copia la Fanart nella Cartella Sfondi + {0} come {1} + Analisi Media (Elementi Mancanti Film - Automatico): + Analisi Media (Elementi Mancanti Film - Chiedi): + Analisi Media (Nuovi Film - Chiedi): + Analisi Media (Nuovi Film - Automatico): + Analisi Media (Film Selezionati - Chiedi): + Analisi Media (Film Selezionati - Automatico): + Ri-Analisi {0} + Analisi: + Scansione Metadati: + Impossibile ottenere i dettagli del film da internet. Controlla la tua connessione e riprova. + Errore nel recupero dei dettagli + Aggiorna {0} Solo + Aggiorna + Solo + (Ri)Analizza Stagione + (Ri)Analizza Episodio + Poster + Fanart + Nfo + Trailer + Sottotitoli + Extrathumbs + Nome Attore: + Ruolo Attore: + Miniatura Attore (URL): + Nuovo Attore + Modifica Attore + URL specificato non è valido. + URL non valido + Inserisci un URL da verifivare + Nessun URL specificato per la miniatura + (Ri)Analizza Film + (Ri)Analizza Films Selezionati + Compilazione Lista Film... + Cancellazione Copilazione... + Cancella + Ordine Analisi + Blocca Tutti + Sblocca Tutti + Nome: + Descrizione: + Versione Addon: + Cartella + Nome File + Nuova Cartella + Nuovo Nome File + Min. Versione Ember: + OK + Anteprima + Inserisci URL Immagine: + Inserimento Manuale Fanart + Inserimento Manuale Poster + Visualizzatore Immagine + Adatta + A schermo intero + &Formatta/Ordina + &Analizza + &Salva + Editor Manuale NFO + Questo non è un documento XML corretto + File non valido. + File valido + Non Valido + Valido + Vuoi salvare le modifiche? + Salvare? + Sorgente Film + Nome Sorgente: + Percorso Sorgente: + Opzioni Sorgente + Rileva Solo Un Film Da Ogni Cartella* + Usa il nome della Cartella per l'elenco iniziale + Snasione Ricorsiva + Seleziona la cartella principale per le cartelle/files del Film + Nome Set: + Modifica Set + Aggiungi un Nuovo Set + E' disponibile una nuova versione. + Errore nel caricare l'applicazione di aggiornamento. + Clicca qui + Visitare embermm.com + Ordina Files nelle Cartelle + Vai + Stato + Inserisci il percorso e premi "Vai" per iniziare. + Percorso da ordinare: + Seleziona la cartella che contiene i file da ordinare. + Spostando + ATTENZIONE: se continui, tutti i files saranno ordinati in cartelle differenti. + La cartella non esiste. Inserire un percorso valido. + Cartella non trovata + Seleziona Studios + Modifica i dettagli del film selezionato. + Trovato Trailer in locale + Studios: + URL Trailer: + Riconoscimenti: + Descrizione classificazione MPAA: + Modifica manuale + Attori: + Nome + Ruolo + Miniatura + Classificazione MPAA: + Data di riliascio: + Certificazione(i): + Durata: + Regista: + Top 250: + Trama: + Trama breve: + Tagline: + Voti: + Punteggio: + Titolo: + Rimuovi Poster + Cambia Poster (Analizza) + Cambia Poster (scegli localmente) + Rimuovi Fanart + Cambia Fanart (Analizza) + Cambia fanart (Scegli Localmente) + Hai delle extrathumbs in attesa di essere trasferite nella cartella del film. + Trasferisci Ora + imposta come Fanart + Estrazione fotogramma + Max. Versione Ember: + Categoria: + Percorso verso il nuovo Screen Shot: + Screen Shot attuale: + Lo Screen Shot deve essere un'immagine JPEG, di dimensioni uguali o inferiori a 150KB e uguali o inferiori a 133x95 inches. + Versione: + Installato + Pulisci la Cache + Cambia Poster (Download) + Cambia Fanart (Download) + Una o più risorse della cache sono attualmente in uso e al momento non possono essere cancellate. + Impossibile pulire la cache + Size: {0}x{1} + Il trailer non può essere riprodotto. Questo potrebbe essere dovuto ad un URI non valido oppure non si ha il lettore adatto per riprodurre il tipo di file. + Errore nella riproduzione del trailer + Addon File + Salva + Reset + Filtro + Applica + Nuovo Addon + Anno + Modifica Addon - + Addon Files + Video + Audio + Sconosciuto + Cancellato + Addons + Login + Login Addons Server + Fetching "{0}" Addons... + Logging in... + Traduzioni + Modelli + Inserimento non valido + Altro + Crea Nuovo + Cancella Addon + Per poter procedere con la cancellazione, tu devi confermare che sei il proprietario dell'Addon + Conferma Proprietà + Riavvia Ember Media Manager? + Cambiamenti recenti richiedono un riavvio di Ember Media Manager per essere completi.\n\n Vuoi riavviare ora Ember Media Manager? + Si + Paese + Titolo Originale + + + + + + + + + + + + + + + + + + + + X-Large + Large + Medium + Small + + + + + + + + + + + + + + + + + + + + + + + + + DVD + Non Valido + + + + Esiste + + + + + + Finito + Fatto + + + Sets Manager + Sets + Films nel Set + Niente Selezionato + Caricamento Films e Sets... + Cancellazione caricamento... + Aggiungi e configura Boxed Sets di films + + Download + + + + + + + + + + + Analizzatore personalizzato + Crea un analizzatore personalizzato + Selezione Filtro + Modalità Aggiornamento + Modificatori + Inizio + Opzioni + Altri Membri Crew + Musica di + Produttori + Scrittori + Studio + Durata + Trama + Cast + Voti + Punteggio + MPAA + Ember Startup Wizard + < Indietro + Avanti > + Benvenuto su Ember Media manager + AIUTO: Le selezioni che contengono il testo <movie> significano che Ember Media Manager utilizzerà il nome del file del film. + Aggiungi Sorgente + Non era così difficile, vero? Come accennato in precedenza, è possibile modificare queste o altre opzioni nella finestra di dialogo Impostazioni. + Questo è tutto!{0}Ember Media Manager è pronto! + Percorso + Ricorsivo + Usa Nome Cartella + Video Singolo + In primo luogo, di ad Ember Media Manager dove localizzare tutti i tuoi film. È possibile aggiungere fonti come molti come si desidera. + Questa è la prima o è la prima esecuzione Ember Media Manager o hai aggiornato a una versione più recente. Ci sono poche cose che Ember Media Manager deve conoscere per funzionare correttamente. Questa procedura guidata ti guiderà attraverso la configurazione di Ember Media Manager per funzionare col tuo set up.{0}{0}Solo una manciata di impostazioni sarà mostrata in questa procedura guidata. È possibile modificare queste o qualsiasi altra impostazione in qualsiasi momento selezionando "Impostazioni..." dal menu "Modifica". + Ora che Ember Media Manager sa DOVE cercare i files, abbiamo bisogno di dire QUALI files cercare. Basta selezionare qualsiasi combinazione di tipo di file che si desidera Ember Media Manager carichi e salvi. Se lo si desidera, è possibile selezionare più di uno da ogni sezione. + Alcune opzioni che potrebbero interessarti: {0} {0} filtri personalizzati - se il vostro file ha cose come "DVDRip", "BluRay", "x264", ecc nel loro nome file o cartella e si desidera filtrare i nomi durante il caricamento nella lista, è possibile utilizzare l'opzione filtro personalizzato. Il filtro personalizzato è compatibile RegEx per la massima facilità di utilizzo.{0}{0}Immagini - questa sezione consente di selezionare i siti Web da cui "estrarre" immagini così come selezionare un formato preferito per le immagini che Ember Media Manager seleziona.{0}{0}Blocchi - questa sezione consente di "bloccare" alcune informazioni in modo da non essere aggiornate anche se si rianalizza il film. Questo è utile se si modifica il titolo, la struttura o la trama di un film e desidera mantenere le modifiche apportate manualmente. + Sei sicuro di voler rimuovere le sorgenti selezionate? Questo rimuoverà i films da queste sorgenti del database Ember. + Metadati non disponibili per questo film. Riprova la scansione. + Impostazioni + Connessione + + + + Username: + Password: + + + Miscellanea + Lingua Interfaccia + Abilita animazioni nel pannello + Controlla aggiornamenti + Sovrascrivi nfos non conformi + (Se non selezionato, nfos non conformi saranno rinominati in <filename>.info) + Log Errors su File + Mostra Overlay se il Video contiene uno Stream Audio con le seguenti lingue: + Pulisci Files + Standard + Esperto + Whitelist delle Estensioni Video + Estensioni nella Whitelist: + ATTENZIONE: usando la modalità experta, durante la pulizia, può portare a cancellare involontariamente dei files. Prestare attenzione durante l'uso di tale strumento. + Download Addons... + File + + + Downloading Files... + + + + Filtri Nomi Cartella/File + Converti i Nomi usando masiuscole e minuscole. + Mostra sempre il Genere + Filtro Lingua Genere + Non Mostare Fanart + Non Mostrare Poster + Mostra Dimensioni Immagine + Aiuto + Segna Nuovi Film + Opzioni Lista Media + Tolleranza di mancata corrispondenza + Controlla la probabilità della corrispondenza del Titolo + Ordina i Token da ignorare + Mostra l'Anno nella lista Titoli + Nascondi la colonna Extrahumb + Nascondi Colonna Sottotitoli + Nascondi Colonna Trailer + Nascondi Colonna Info + Nascondi Colonna Fanart + Nascondi Colonna Poster + Denominazione File + Uss <movie> Solo per Cartelle con film multipli + Posizionamento/Denominazione File VIDEO_TS compatibile con YAMJ + Posizionamento/Denominazione File VIDEO_TS compatibile con Frodo + + + + Qualità: + Larghezza Max: + Altezza Max: + Ridimesiona Automaticamente: + Dimensione Preferita: + Sovrascrivi Esistente + Caricamento Impostazioni... + + + + Blocchi Globali + Blocca Trailer + Blocca Genere + Blocca Studios + Blocca Punteggio + Blocca Tagline + Blocca Titolo + Blocca Trama Breve + Blocca Trama + Immagini + Non salvare URLs nel file NFO + Ottieni in analisi singola + MoviePosterDB.com + TheMovideDB.org + IMPAwards.com + Usa se non trovi una fanart + Metadati non disponibili per questo episodio. Riprova la scansione. + No Spoilers + Numero da creare: + Estrai durante l'analisi + Usa trama breve se la trama completa è vuota + + Analizza solo attori con immagini + Usa certificazione MPAA + Analizza cast completo + Analizza Crew completo + Usa come lingua delle certificazioni: + Formato Durata Film + Usa Durata al posto di Runtime + Scansiona Metadati + Configura l'aspetto e il funzionamento di Ember. + Rimuovi selezionati + Cartella sfondi + Salva automaticamente la Fanart nella Cartella Sfondi + Cancella Tutto + + Ottieni URL solo durante l'analisi + Ottieni durante analisi singola + + Ottieni durante Analisi Automatiche + + Abilita Supporto Trailer + No estensioni dello Stack + + + + Estensioni Video Valide + Modifica Sorgente + Opzioni Varie + Riconosci cartelle VIDEO_TS + Salta il controllo delle dimensioni dei file impilati + MB + Salta files più piccoli di: + Dimensionamento (Fotogrammi Estratti) + Padding + Larghezza: + Altezza: + Usa Dimensione Personalizzata + Usa Risoluzione Nativa + Caching + Usa durante Analisi Automatiche + Evidenzia Nuove Serie + Cache delle immagini persistenti + Usa Immagine nella cache + Seleziona la cartella dove salvare gli sfondi. + File System + + File e Sorgenti + Analizzatori -Dati + Analizzatori - Immagini & Trailers + Wide + + + + + + + + + + Generazione Cache Attori: + Tutto + [nessuno] + [Disabilitato] + Analizza Posters: + Analizza Fanart: + Analizza Trailers: + Generazione Extrathumbs: + Verifica Dettagli Films: + Campi Analizzatore - Globale + Limite: + Sorgente File: + Visualizza solo i films dalla sorgente selezionata. + Filtro elementi Manacanti + Controlla presenza Poster + Controlla presenza Fanart + Controlla presenza file NFO + Controlla presenza Trailer + Controlla presenza sottotitoli + Controlla presenza di Extrathumbs + + + + Top 250 + + + editor di Metadati + Video Streams + Audio Streams + Streams Sottotitoli + Tipo Stream + Scarica tutte le fanart della seguente dimensione come extrathumbs: + Ordinamento Extra + Data di aggiunta + Sorgenti + Modifica Metadati + Codec + Tipo di scansione + Larghezza + Altezza + Apetto + Durata + Lingua + Canali + Preferito + Stream Editor + Proporzione Aspetto + Interlacciato + Progressivo + Video Stream + Audio Stream + Stream Sottotitoli + Tema Film + Evidenzia Nuovi Episodi + Analisi Media (Filtro Corrente - Chiedi): + Analisi Media (Filtro Corrente - Automatico): + Filtro Corrente + Defaults by File Type + Tipo di File + Elementi Selezionati: {0} + Abilita Analisi IFO + Temi + + + + + + Hai selezionato{0} cartelle da aprire. Sei sicuro? + + + + + + + Ordina Titolo + Salvataggio Sets Compatibile YAMJ + Pulendo il database... + Anteprima: {0} + Rimuovi dal database + Mandato in onda: {0} + Stagione: {0}, Episodio: {1} + Aggiorna tutto + Stagione + Nessuna Informazione disponibile per questa Serie + Nessuna Informazione disponibile per questo Episodio + Serie TV + Stagione + Speciali + Modifica Episodio + Modifica i dettagli per l'episodio selezionato. + Mandato in onda: + Stagione: + Episodio: + Carica Episodio + Salva come Poster + Modifica Serie TV + Modifica i dettagli per la Serie TV selezionata. + Anteprima: + Tema Serie TV + Tema Episodio + Pulisci il database dopo aver aggiornato la libreria + Ignora l'ultima scansione quando aggiorni la libreria + Filtri nomi cartelle/files Serie TV + Filtri nomi cartelle/files Episodio + Proxy + Abilita Proxy + Proxy URL: + Porta Proxy: + Credenziali + Abilita Credenziali + Dominio: + TV Rating Region + Serie TV + Stagione + Episodi + Posters Serie TV + Fanart Serie TV + Posters Stagione + Fanart Stagione + Posters Episodio + Fanart Episodio + [MISSING] + Modifica Regex + Regex combacianti Serie Tv + Regex combacianti Stagione: + Regex combacianti Episodio: + Applica a + Modifica Regex + Regex Serie TV + Episode Regex + Serie TV + Espressione Regolare + Serie TV + Episodio TV + + + + Sorgente TV + Seleziona la cartella principale per le cartelle/files delle Serie TV + + Dona + Pulisci Database + Forza lingua titolo: + Includi il nome della cartella nel controllo del tipo di sorgente + Ordina i files nelle cartelle prima di ogni aggiornamento della libreria + Trailer in locale: + Conferma gli elementi da cancellare + Attivare o disattivare tutti i file + Ri-Analizza + Preparazione aggiornamento... + Pronto all'aggiornamento. Ember ora si chiuderà affnché l'aggiornamento possa iniziare.\n\n Vuoi continuare? + SI + NO + Aggiornamento + Certificazione + EpisodeGuideURL + Anteprima + Attori + Stagione {0} + Episodio + Mandato in onda + Riconoscimenti + Tipo Preferito: + Aggiorno Serie: + <h>=Ore <m>=Minuti <s>=Secondi + Mostra Episodi Mancanti + Build Episode Title Instead of Filtering + Poster Tutta la Stagione + Ottieni immagini solo per la lingua selezionata + Ottinei pure Immagini in lingua inglese + API Key: + Ordinamento Episodio: + Riscarica Informazioni Serie TV ogni: + Lingua Preferita: + Scorri Lingue disponibili + Serie TV + Stagione TV + Nessuno + Vuoto + Grafica + Testo + Settimana + Bisettimanale + Mese + Mai + Sempre + Impostazioni Modulo + Episodio # + Caricando tutti gli episodi: + Salvando tutte le immagini: + Cercando in TVDB: + Seleziona Immagini: + Downloading Show Zip: + Verifico Serie TV: + Verifico Episodio TV: + Sei sicuro di che voler cancellare il TV Show(s) selezionati e tutti i relativi episodi ? + Sei sicuro di voler cancellare l'Episodio selezionato? + Sei sicuro di che voler cancellare la Stagione selezionata e tutti i suoi episodi? + (Ri)Analizza Serie TV + Cambia Serie TV + Cancella Serie TV + Modifica Stagione + Cambia Immagine + Cancella Stagione + Cambia Episodio + Cancella Episodio + Abilitato + Disabilitato + + Scrittore + + + + + + Sommario della trama: + + + Poster Tutte Le Stagioni + + + + + + Dona + &Versioni... + Impostazioni &Modulo... + Interfaccia + Scan in order of last write time + Ordinamento Predefinito Episodio: + + Analizzatori - Trailers + Qualità Preferita: + TVDB Mirror + Moduli + Successivamente, dire ad Ember Media Manager dove localizzare tutti i vostri programmi televisivi. È possibile aggiungere fonti come si desidera. + E infine, diciamo a Ember Media Manager quali file TV Show cercare. Basta selezionare qualsiasi combinazione di tipo di file che si desidera Ember Media Manager carichi e salvi. Se lo si desidera, è possibile selezionarne più di uno. + Mando a PasteBin.com + Copia negli Appunti + Si è verificato un errore durante il tentativo di inviare i dati a Pastebin.com + Visualizzatore del Log Errori + Prima di presentare un rapporto di bug, verifica che il bug non sia già stato segnalato. Puoi vedere una lista di tutti i bugs qui: + http://www.embermm.com/projects/embermm/issues + PasteBin URL: + Vecchio Titolo: {0} | Nuovo Titolo: {1} + Fim Analizzato + Episodio Aggiunto: + Film Aggiunto: + E' capitato un errore + Nuovo Film Aggiunto + Nuovo Episodio Aggiunto + TV RegEx Profiles + RegEx Profile + Descrizione + Miscellanea + Mappatura dei Codec Audio & Video + Sorgente Video: + Downloads: + + + Enable Actor Thumbs + Watch for ""Dump"" Folder + Modifica i dettagli per la Stagione selezionata. + + Mostra Poster Tutte le Stagioni + These are Scraper specific settings and act as a filter.\nYou should also check Ember Global Settings. + * Inside Season Folder + Salva solo il valore nel file NFO + + Analizzatori - Immagini + Banner + Assoluto + Sei sicuro di che voler ripristinare l'elenco predefinito dei filtri degli Show? + Sei sicuro di che voler ripristinare l'elenco predefinito dei filtri episodio? + Sei sicuro di che voler ripristinare l'elenco predefinito dei filtri dei film? + Are you sure you want to reset to the default list of valid video extensions? + Are you sure you want to reset to the default list of show regex? + >> No Item Selected << + + + + Enable Click Scrape + &Check For Updates... + No Updates at this time + Ask On Click Scrape + Scraping Media (All Movies - Skip): + Setup Basico + Creating default options... + Carico Moduli... + Creo GUI + Carico database... + Avvio Modulo... + Carico Media... + Command Line Scraping... + Carico Traduzioni... + Positioning controls... + Setting menus... + Versione {0}.{1}.{2}.{3} + Metadati + XBMC Frodo + Top 250 + EmberMM.com &Wiki... + + + + + Use file creation date of videofile + + + + + Lock Language (video) + Lock Language (audio) + Lock MPAA/Certification + Use MPAA as Fallback for FSK Rating + Watched + Hide Watched Column + Lock Subtitle + Retry + Abort + Database Compatibility + Database is not compatible! + Your database is not compatible with this version of Ember!\n\nYour existing database will be saved as "Media.emm_old" and an empty database will be created.\n\nTo adapt your old Databank follow this tutorial. + diff --git a/Ember Media Manager/Langs/Norwegian_(no_NO)-Help.xml b/Ember Media Manager/Langs/Norwegian_(no_NO)-Help.xml new file mode 100644 index 0000000..3ca9042 --- /dev/null +++ b/Ember Media Manager/Langs/Norwegian_(no_NO)-Help.xml @@ -0,0 +1,368 @@ + + Hvis påslått så vil bildeteksten alltid bli vist. Hvis avslått, så vil teksten kun vises når musepekeren er over sjangerbildet. + Hvis påslått, så vil EMM alltid sjekke mappenavnet for kildetypen. Hvis avslått, så vil EMM kun sjekke filnavnet. + Hvis påslått, så vil fankunst ikke vises i hovedvinduet. Dette er bra for å øke hastigheten av grensesnittet på tregere maskiner. + Hvis påslått, så vil plakater ikke bli vist i hovedvinduet. Dette er bra for å øke hastigheten av grensesnittet på tregere maskiner. + Hvis påslått, så vil dimensjonene til bilder (plakater og fankunst) bli vist over bildene. + Hvis påslåt, så vil EMM se etter ny versjon når EMM starter. + Hvis påslått, så vil Nfo-filer bli overskrevet når detaljer lagres. Hvis avslått, så vil de bli omdøpt til *.info. + Hvis påslått, så vil alle feilmeldinger bli lagret i <EMM installasjonmappe>\Log\errlog.txt. + Velg temaet for episodeoppsett. + Velg temaet for TVserie- og sesongoppsett. + Velg temaet for filmoppsett. + Last ned programutvidelser for EMM, inkludert moduler, temaer, oversettelser til andre språk, og eksporttemplater. + Velg språket som brukes i EMMs grensesnitt (krever omstart). + Rens all "folder.jpg"-filer. + Rens alle "extrathumbs"-mapper. + Rens alle "movie.tbn"-filer. + Rens alle "<film>.jpg"-filer. + Rens alle "<film>.tbn-filer. + Rens alle "movie.jpg"-filer. + Rens alle "fanart.jpg"-filer. + Rens alle "poster.jpg"-filer + Rens alle "<film>-fanart.jpg"-filer + Rens alle "poster.tbn"-filer. + Rens alle "movie.nfo"-filer. + Rens alle "<film>.fanart.jpg"-filer. + Rens alle "<movie>.nfo"-filer. + Automatisk tillat alle filer som har en filtype i "Gyldig filtype"-listen. + Fjern valgte filtype fra listen. + Legg til innførte filtype til listen. + Skriv inn en filtype til å legge til i listen. + Denne listen inneholder alle nåværende filtyper som vil bli hoppet over når databasen renses. + Hvis påslåt, så vil EMM lagre all samling-informasjon i et format som er YAMJ-kompatibelt. Hvis avslått, så vil informasjonen lagres i XBMC-format. + Hvis påslått, så vil en manuell detaljhenter bli brukt ved markering i filmlisten. Hvis avslått, så vil en automatisk detaljhenter bli brukt. + Hvis påslått, så vil nye filmer bli "markert" i filmlisten. Hvis avslått, så vil nye filmer bli vist med tykk, grønn farge til filmen er oppdatert eller til neste EMM-sesjon. + Velg språk du vil at EMM skal bruke. + Velg toleransenivået du vil at EMM skal bruke når tittel skal matches. Høyere tall, jo snillere er EMM. 0 = avslått. + Slå på denne for at EMM skal sjeffe forskjellen mellom filmnavn og filnavn. Dette er for at automatisk detaljhenting er for riktig film. + Fjern valgt token fra listen. + Legg til den innskrevne sorteringstoken i listen. + Skriv inn en sorteringstoken til å legge til i listen. + Liste over alle nåværende sorteringstoken. (Hvis tittelen begynner med en sorteringstoken, så vil tokenen bli flyttet til slutten av tittelen. Eksempel: Sorteringstoken = "The", Title = "The Dark Knight", Resultat = "Dark Knight, The".) + Hvis påslått, EMM vil vise filmens år i filmlisten. + Gjem ekstrakunst-seksjonen fra filmlisten. + Gjem undertekstseksjonen fra filmlisten. + Gjem trailerseksjonen fra filmlisten. + Gjem infoseksjonen fra filmlisten. + Gjen fankunstseksjonen fra filmlisten. + Gjem plakatseksjonen fra filmlisten. + Hvis påslått, så vil "<film>.ext" kun bli brukt i mapper som har flere filmer. + Lagre trailere som "<film>[trailer].ext". + Lagre trailere som <movie>-trailer.ext". + Hvis påslått, så vil EMM lagre metadata i filmmappen (YAMJ). Hvis avslått, så vil EMM lagre metadata i VIDEO_TSmappen (XBMC). Dette angår også BDMVmapper. + Lagre Nfofiler som "<film>.nfo". + Lagre Nfofiler som "movie.nfo". + Lagre fankunst som "<film>.fanart.jpg". + Lagre fankunst som "<film>-fanart.jpg". + Lagre fankunst som "fanart.jpg". + Lagre plakater som "folder.jpg". + Lagre plakater som "poster.jpg". + Lagre plakater som "poster.tbn". + Lagre plakater som "<film>.jpg". + Lagre plakater som "movie.jpg". + Lagre plakater som "<film>.tbn". + Lagre plakater som "movie.tbn". + Liste over alle nåværende filmkilder (baner som vil ble skannet for filmfiler). + Liste over alle nåværende filmkilder (baner som vil ble skannet for filmfiler). + Liste over alle nåværende filmkilder (baner som vil ble skannet for filmfiler). + Liste over alle nåværende filmkilder (baner som vil ble skannet for filmfiler). + Liste over alle nåværende filmkilder (baner som vil ble skannet for filmfiler). + Liste over alle nåværende filmkilder (baner som vil ble skannet for filmfiler). + Liste over alle nåværende filmkilder (baner som vil ble skannet for filmfiler). + Fjern valgte kilder fra kildelisten. + Legg til en ny mappe til kildelisten + Forandre størrelsen på plakater til den innførte bredden. + Forandre størrelsen på plakater til den innførte høyden. + Justér kvaliteten til plakatfiler (0 = original kvalitet). + Forandre størrelsen på plakatfiler før lagring. + Velg den foretrukne plakatstørrelsen du vil EMM skal hente under automatisk detaljhenting. Hvis den ikke finnes, så vil den nærmeste størrelsen brukes. + Hvis påslått, så vil eksisterende plakatfiler bli overskrevet hvis nye plakater er valgt. Hvis avslått, plakater vil kun bli lagret hvis en ikke allerede finnes. + Forandre størrelsen på fankunst til den innførte bredden. + Forandre størrelsen på fankunst til den innførte høyden. + Hvis påslått, så vil EMM hente fankunst kun med valgt størrelse (BEMERK: Hvis det ikke er fankunst med valgt størrelse tilgjengelig, så vil ingen fankunst bli hentet). + Justér kvaliteten til fankunstfiler (0 = original kvalitet). + Forandre størrelsen på fankunstfiler før lagring. + Velg den foretrukne fankunststørrelsen du vil EMM skal hente under automatisk detaljhenting. Hvis den ikke finnes, så vil den nærmeste størrelsen brukes. + Hvis påslått, så vil eksisterende fankunstfiler bli overskrevet hvis nye plakater er valgt. Hvis avslått, fankunst vil kun bli lagret hvis en ikke allerede finnes. + Hvis påslått, så vil EMM ikke lagre URLer til plakater og fankunst i Nfo. (Anbefalt for YAMJ) + Velg bilder under detaljhenting av en enkelt film. + Lagre bilder til bildemellomlager under detaljhenting for flere filmer. + Hvis påslått, så vil EMM ikke tømme mellomlageret. + Slå på EMMs bildemellomlager. + Hvis påslått og ingen fankunst er tilgjengelig for filmen, EMM vil bruke et bilde fra filmen som fankunst. + Hvis påslått, så vil ekstrakunst kun hentes fra den første halvdelen av filmen. Dette for å unngå spoilere. + Før inn antall ekstrakunstbilder vil skal automatisk lages. + Hvis påslått, så vil EMM automatisk hente det innførte tallet av ekstrakunst fra filmen. + Før inn domenet til proxien din. (Valgfritt, ikke nødvendig for de fleste proxier) + Før inn passordet til din proxy. + Før inn brukernavnet til din proxy. + Slå på hvis din proxy krever innlogging. + Før inn porten til din proxy. + Før inn IP-adressen eller URL til din proxy. + Hvis påslått, EMM vil bruke valgt proxy for all internettilgang. + Flytt valgt filter opp i listen. (Filtre er brukt fra toppen og ned) + Flytt valgt filter ned i listen. (Filtre er brukt fra toppen og ned) + Bruk riktig forbokstav i filmtitler. (Eksempel: "the dark knight" blir "The Dark Knight") + Fjern valgt filter fra listen. + Legg til det innførte filteret til listen. + Før inn text eller Regex for å bruke det som Filter. Spesielle: "a[->]b" = erstatter alle a med b. + Liste over alle filtre som vil bli brukt under generering av filmtitler. + Hvis påslått, EMM vil vise filmer med manglende ekstrakunst når du bruker Manglende Objekter-filter. + Hvis påslått, EMM vil vise filmer med manglende undertekst når du bruker Manglende Objekter-filter. + Hvis påslått, EMM vil vise filmer med manglende trailer når du bruker Manglende Objekter-filter. + Hvis påslått, EMM vil vise filmer med manglende Nfo-filer når du bruker Manglende Objekter-filter. + Hvis påslått, EMM vil vise filmer med manglende fankunst når du bruker Manglende Objekter-filter. + Hvis påslått, EMM vil vise filmer med manglende plakater når du bruker Manglende Objekter-filter. + Hvis påslått, EMM vil automatisk lagre ny fankunst i den innførte bakgrunnsmappen. + Åpne en mappeutforsker for å velge en bakgrunnsmappe. + Banen til bakgrunnsmappen. + Fjern den valgte filtypen fra No Stack-listen. + Legg til den innførte filtypen til No Stack-listen. + Før inn en filtype for å legge til i No Stack-listen. + Listen over filtyper EMM ikke vil stable inn i enkle filer når filmer legges til i biblioteket. + Fjern valgt filtypen fra Tillatte Videofiltyper-listen. + Legg til den innførte filtypen til Tillatte Videofiltyper-listen. + Før inn en filtype for å legge inn i Tillatte Videofiltyper-listen. + Liste over filtyper som EMM vil se etter i en bibliotekoppdatering. + Endre valgt kilde. + Hvis påslått, EMM vil legge til nye filer etter deres siste modifiserte tidspunkt. Hvis avslått, så vil de ble lagt til alfabetisk. + Hvis påslått, EMM vil sortere filer i toppmappen i kildene inn i egne mapper. + Hvis påslått, EMM vil skanne alle mapper/filer uansett om de var der forrige skan. Hvis avslått, så vil EMM skanne alle mapper/filer. + Hvis påslått, EMM vil rense databasen etter hver skanning. (Fjerne ting som ikke lenger eksisterer) + Hvis påslått, så vil EMM prøve å gjenkjenne VIDEO_TS-mapper, selv om de ikke heter VIDEO_TS. Hvis avslått, så vil kun mapper som heter VIDEO_TS bli gjenkjent som det. Dette gjelder også BDMV-mapper. + Hvis påslått, EMM vil ikke hoppe over filer mindre enn den innførte "Hopp over mindre enn" størrelsen hvis de stablende elementer (som "CD1" eller "DVD2"). + EMM vil bruke den innførte størrelsen for minimumstørrelse for alle filmfiler. Filer mindre enn dette vil bli hoppet over under bibliotekoppdateringer. + EMM vil bruke den innførte størrelsen for minimumstørrelse for alle episodefiler. Filer mindre enn dette vil bli hoppet over under bibliotekoppdateringer. + Velg den foretrukne kvaliteten til trailere. + Hvis påslått, så vil EMM slette alle lagrede trailere for valgt film før den lagrer en ny. + Hvis påslått, så vil eksisterende trailere bli overskrevet når nye lagres. Hvis avslått, så vil nye trailere kun bli lagret hvis ingen eksisterer fra før. + Hvis påslått, så vil trailere ikke bli lastet ned. Istedet vil URL til trailer bli lagret i Nfo. + Hvis påslått, trailere vil bli lastet ned under detaljhenting av én film. + Hvis påslått, så vil trailere bli lastet ned under "alle objekter"-detaljhentere. + Slå på EMMs trailerfunksjon. + Velg størrelsen på fankunst du vil lagre som ekstrakunst. + Hvis påslått, så vil EMM automatisk laste ned all fankunst med valgt størrelse som ekstrakunst. + Forandre bredden på ekstrakunst til denne bredden. + Forandre høyden på ekstrakunst til denne høyden. + Hvis påslått, så vil EMM legge til svarte områder dersom ekstrakunsten er mindre enn den valgte størrelsen. + Forandre størrelsen på ekstrakunst til den valgte størrelsen, uansett originalstørrelse. + Lagre ekstrakunsten med samme størrelse som video. + Liste over alle nåværende TVkilder. (Baner som skal skannes for TVserier) + Liste over alle nåværende TVkilder. (Baner som skal skannes for TVserier) + Liste over alle nåværende TVkilder. (Baner som skal skannes for TVserier) + Liste over alle nåværende TVkilder. (Baner som skal skannes for TVserier) + Hvis påslått, EMM vil legge til nye filer etter deres siste modifiserte tidspunkt. Hvis avslått, så vil de ble lagt til alfabetisk. + Hvis påslått, EMM vil skanne alle mapper/filer uansett om de var der forrige skan. Hvis avslått, så vil EMM skanne alle mapper/filer. + Hvis påslått, så vil EMM rense TVseriedatabasen etter hvert gjennomskan. (Fjerne alle episoder som ikke lenger eksisterer) + Legg til en ny mappe til kildelisten + Endre valgt kilde. + Fjern valgte kilder fra kildelisten. + Lagre alle-sesongerplakatfiler som "season-all.jpg". + Lagre alle-sesongerplakatfiler som "season-all.tbn". + Lagre episodefankunst som "<episode>.fanart.jpg". + Lagre episodefankunst som "<episode>-fanart.jpg". + Lagre episodeplakat som "<episode>.jpg". + Lagre episodeplakat som "<episode>.tbn". + Lagre sesong-fankunst som "<sesong>.fanart.jpg". (Kun i sesongmappen, hvis den eksisterer) + Lagre sesong-fankunst som "<sesong>-fanart.jpg". (Kun i sesongmappen, hvis den eksisterer) + Lagre sesong-fankunst som "fanart.jpg". (Kun i sesongmappen, hvis den eksisterer) + Lagre sesong-fankunst som "folder.jpg". (Kun i sesongmappen, hvis den eksisterer) + Lagre sesong-plakat som "<sesong>.jpg". (Kun i sesongmappen, hvis den eksisterer) + Lagre sesong-plakat som "<sesong>.tbn". (Kun i sesongmappen, hvis den eksisterer) + Lagre sesong-fankunst som "poster.jpg". (Kun i sesongmappen, hvis den eksisterer) + Lagre sesong-fankunst som "sesong.tbn". (Kun i sesongmappen, hvis den eksisterer) + Lagre sesongplakat som "seasonX.tbn". (Eksempel: season2.tbn) + Lagre sesongplakat som "seasonXX.tbn". (Eksempel: season02.tbn) + Lagre seriefankunst som "<serie>.fanart.jpg". + Lagre seriefankunst som "<serie>-fanart.jpg". + Lagre seriefankunst som "fanart.jpg". + Lagre serieplakat som "<serie>.jpg". + Lagre serieplakat som "<serie>.tbn". + Lagre serieplakat som "poster.jpg". + Lagre serieplakat som "poster.tbn". + "Lagre serieplakat som "folder.jpg". + Legg til den innførte Regex til TVserie-Regexlisten. + Legg til Regex til å finne sesongtall. + Velg hvis du vil at Regex skal sjekke mappenavn eller filnavn for sesongtall. + Legg til Regex til å finne episodetall. + Velg hvis du vil at Regex skal sjekke mappenavn eller filnavn for episodetall. + Endre valgt TVserie-Regex. + Fjern valgte TVserie-Regex fra listen. + Liste over nåværende TVserie-Regex. + Liste over nåværende TVserie-Regex. + Liste over nåværende TVserie-Regex. + Liste over nåværende TVserie-Regex. + Liste over nåværende TVserie-Regex. + Liste over nåværende TVserie-Regex. + Hvis påslått, så vil episoder du mangler bli vist i listen, men påført en lys grå farge. + Gjem infoseksjonen fra episodelisten. + Gjem fankunstseksjonen fra episodelisten. + Gjem plakatseksjonen fra episodelisten. + Gjem fankunstseksjonen fra sesonglisten. + Gjem plakatseksjonen fra plakatlisten. + Gjem infoseksjonen fra serielisten. + Gjem fankunstseksjonen fra serielisten. + Gjem plakatseksjonen fra serielisten. + Hvis påslått, hvis en "alle sesonger"-plakat eksisterer for valgt serie så vil den bli vist til høyre i hovedbildet. + Velg regionen for filmvurderinger du vil skal vises i hovedbildet. + Hvis påslått, EMM vik ikke filtrere episodetitler fra filnavn, og heller bygge tittel utifra serienavn, sesong og episode til en skikkelig tittel har blitt hentet. + Flytt valgt filter opp i listen. (Filtre er brukt fra toppen og ned) + Flytt valgt filter ned i listen. (Filtre er brukt fra toppen og ned) + Automatisk legg til riktig førbokstav i episodetitler. (Eksempel: "stole beer from a golfer" blir "Stole Beer From A Golfer") + Fjern det valgte filteret fra filterlisten. + Legg til det innførte filteret til filterlisten. + Før inn et filter for å legge til i filterlisten. + Liste over alle filtere som vil bli brukt under generering av episodetitler. + Flytt valgt filter opp i listen. (Filtre er brukt fra toppen og ned) + Flytt valgt filter ned i listen. (Filtre er brukt fra toppen og ned) + Automatisk bruk riktig førbokstav i serietitler. (Eksempel: "my name is earl" blir "My Name Is Earl") + Fjern det valgte filteret fra filterlisten. + Legg til det innførte filteret til filterlisten. + Før inn et filter for å legge til i filterlisten. + Liste over alle filtere som vil bli brukt under generering av serietitler. + Hvis påslåt, alle engelske bilder vil bli lastet ned, uansett valgt språk. + Hvis påslått, alle bilder med foretrukket språk vil bli lastet ned. + Forandre serieplakatbredde til valgt bredde. + Forandre serieplakathøyde til valgt høyde. + Endre kvaliteten på serieplakater. (0 = original kvalitet) + Forandre størrelsen på plakater før de lagres. + Velg den foretrukne plakattypen du vil skal hentes fra serverene. Under detaljhenting vil EMM prøve å finne denne typen først. Hvis den ikke finnes, så vil første type funnet bli brukt. + Hvis påslått, eksisterende plakatfiler vil bli overskrevet hvis nye er valgt. Hvis avslått, plakater vil kun bli lagret hvis ingen allerede eksisterer. + Forandre bredden til fankunst til den valgte bredden. + Forandre høyden til fankunst til den valgte høyden. + Endre kvaliteten til fankunsten. (0 = original kvalitet) + Forandre størrelsen på fankunst før den blir lagret. + Velg den foretrukne størrelsen på fankunsten du vil skal hentes fra serveren. Under detaljhenting så vil EMM prøve å finne denne først. Hvis den ikke finnes, så vil første bilde bli brukt. + Hvis påslått, eksisterende fankunstfiler vil bli overskrevet hvis nye er valgt. Hvis avslått, fankunst vil kun bli lagret hvis ingen allerede eksisterer. + Forandre bredden til sesongplakater til valgt bredde. + Forandre høyden til sesongplakater til valgt høyden. + Endre kvaliteten på sesongplakater. (0 = original kvalitet) + Forandre størrelsen på sesongplakater før lagring. + Velg den foretrukne sesongplakattypen du vil skal hentes fra serverene. Under detaljhenting vil EMM prøve å finne denne typen først. Hvis den ikke finnes, så vil første type funnet bli brukt. + Hvis påslått, eksisterende sesongplakatfiler vil bli overskrevet hvis nye er valgt. Hvis avslått, nye plakater vil kun bli lagret hvis ingen allerede eksisterer. + Forandre bredden til sesongfankunst til innført bredde. + Forandre høyden til sesongfankunst til innført høyde. + Endre kvaliteten på sesongfankunstfiler. (0 = original kvalitet) + Forandre størrelsen på fankunstfiler før lagring. + Velg den foretrukne størrelsen på fankunsten du vil skal hentes fra serveren. Under detaljhenting så vil EMM prøve å finne denne først. Hvis den ikke finnes, så vil første bilde bli brukt. + Hvis påslått, eksisterende sesongfankunstfiler vil bli overskrevet hvis nye er valgt. Hvis avslått, ny fankunst vil kun bli lagret hvis ingen allerede eksisterer. + Forandre bredden til episodeplakater til innført bredde. + Forandre høyden til episodeplakater til innført høyde. + Endre kvaliteten på episodeplakatfiler. (0 = original kvalitet) + Forandre størrelsen på episodeplakatfiler før lagring. + Hvis påslått, eksisterende episodeplakatfiler vil bli overskrevet hvis nye er valgt. Hvis avslått, nye plakater vil kun bli lagret hvis ingen allerede eksisterer. + Forandre bredden til episodefankunst til innført bredde. + Forandre høyden til episodefankunst til innført høyde. + Endre kvaliteten på episodefankunstfiler. (0 = original kvalitet) + Forandre størrelsen på episodefankunstfiler før lagring. + Velg den foretrukne størrelsen på fankunsten du vil skal hentes fra serveren. Under detaljhenting så vil EMM prøve å finne denne først. Hvis den ikke finnes, så vil første bilde bli brukt. + Hvis påslått, eksisterende episodepfankunstfiler vil bli overskrevet hvis nye er valgt. Hvis avslått, ny fankunst vil kun bli lagret hvis ingen allerede eksisterer. + Slå på detaljhenting av seriens vurdering. + Slå på detaljhenting av seriens skuespillere. + Slå på detaljhenting av seriens studio. + Slå på detaljhenting av seriens premieredato. + Slå på detaljhenting av seriens episodeguide-URL. + Slå på detaljhenting av seriens MPAA-markering. + Slå på detaljhenting av seriens historie. + Slå på detaljhenting av seriens sjanger. + Slå på detaljhenting av seriens tittel. + Slå på detaljhenting av episodens skuespillere + Slå på detaljhenting av episodensakreditter. + Slå på detaljhenting av episodens regissører. + Slå på detaljhenting av episodens historie. + Slå på detaljhenting av episodens vurdering. + Slå på detaljhenting av episodens + Slå på detaljhenting av episodens tittel. + Slå på detaljhenting av episodens nummer. + Slå på detaljhenting av sesongens nummer. + Hvis påslått, episodetittelen vil kun bli detaljhentet hvis en ikke allerede eksisterer. + Hvis påslått, episodevurdering vil kun bli detaljhentet hvis en ikke allerede eksisterer. + Hvis påslått, episodehistorien vil kun bli detaljhentet hvis en ikke allerede eksisterer. + Hvis påslått, seriehistorien vil kun bli detaljhentet hvis en ikke allerede eksisterer. + Hvis påslått, seriesjanger vil kun bli detaljhentet hvis en ikke allerede eksisterer. + Hvis påslått, seriestudio vil kun bli detaljhentet hvis en ikke allerede eksisterer. + Hvis påslått, serievurdering vil kun bli detaljhentet hvis en ikke allerede eksisterer. + Hvis påslått, serietittelen vil kun bli detaljhentet hvis en ikke allerede eksisterer. + Liste over filtyper som har standard metadatafelt. + Før inn en filtype for å lage et standard metadatafelt. + Fjern standard metadata fra valgt filtype i listen over standard metadata. + Endre standard metadata fra valgt filtype i listen over standard metadata. + Lag standard metadata for valgt filtype og legg den til i listen over standard metadata. + Hvis valgt språk blir funnet i episoden, så vil et spesielt ikon bli lagt over lydmetadataikonen. + Hvis påslått, EMM vil skanne episodefiler for metadata. + Velg ventetid mellom oppdateringer av TV-info-mellomlager. + Skriv inn TVDB API-nøkkelen til mediacenteret/spilleren din. Dette er ikke nødvendig for at EMM skal fungere. Den vil kun bli brukt når episodeguide-URLer blir lagret. + Før inn speilserver til theTVDB. + Klikk her for å laste ned tilgjengelige språk fra theTVDB. + Velg det foretrukne språket å bruke når du laster ned serieinformasjon og bilder. + Slå på detaljhenting av aldersgrense. + Slå på detaljhenting av IMDB Top 250-plassering. + Slå på detaljhenting av filmens produksjonsland. + Begrens antall detaljhentede sjangre til den innførte verdien. + Begrens antall skuespillere til den innførte verdien. + Begrens detaljhenting av andre crew. (Detaljhenting av fullt crew må være påslått) + Begrens detaljhenting av musikere. (Detaljhenting av fullt crew må være påslått) + Begrens detaljhenting av filmprodusenter. (Detaljhenting av full crew må være påslått) + Slå på detaljhenting av manusforfattere. + Slå på detaljhenting av studio. + Slå på detaljhenting av filmlengde. + Slå på detaljhenting av filmens historie. + Slå på detaljhenting av filmens beskrivelse. + Slå på detaljhenting av filmens sjanger. + Slå på detaljhetning av filmens regissør. + Slå på detaljhetning av filmens undertittel. + Slå på detaljhetning av filmens skuespillerbeholdning. + Slå på detaljhetning av filmens poeng. + Slå på detaljhetning av filmens trailer-URL. + Slå på detaljhetning av filmens vurdering. + Slå på detaljhetning av filmens premieredato. + Slå på detaljhetning av filmens MPAA-markering. + Slå på detaljhetning av filmens år. + Slå på detaljhetning av filmens tittel. + Liste over filtyper som har standard metadatafelt. + Før inn en filtype for å lage et standard metadatafelt. + Fjern standard metadata fra valgt filtype i listen over standard metadata. + Endre standard metadata fra valgt filtype i listen over standard metadata. + Lag standard metadata for valgt filtype og legg den til i listen over standard metadata. + Hvis påslått, så vil EMM skanne .IFO-filer for metadata. + Hvis valgt språk blir funnet i filmen, så vil et spesielt ikon bli lagt over lydmetadataikonen. + Før inn formatet du vil bruke for filmens varighet, hentet fra metadata. Merk at du kan bruke <0m> for 0 bufferminutter. + Hvis påslått, EMM vil skanne filmfiler for metadata. + Bruk varighetslengde hentet fra metadata som filmens varighet. + Hvis påslått, filmbeskrivelse vil kun bli detaljhentet hvis en ikke allerede eksisterer. + Hvis påslått, filmhistorien vil kun bli detaljhentet hvis en ikke allerede eksisterer. + Hvis påslått, filmtrailer vil kun bli detaljhentet hvis en ikke allerede eksisterer. + Hvis påslått, filmsjanger vil kun bli detaljhentet hvis en ikke allerede eksisterer. + Hvis påslått, filmstudio vil kun bli detaljhentet hvis en ikke allerede eksisterer. + Hvis påslått, vurdering vil kun bli detaljhentet hvis en ikke allerede eksisterer. + Hvis påslått, undertittel vil kun bli detaljhentet hvis en ikke allerede eksisterer. + Hvis påslått, filmtittel vil kun bli detaljhentet hvis en ikke allerede eksisterer. + Velg regiontittel du vil at EMM skal se etter. + Hvis påslått, så vil EMM sjekke for alternative titler på det valgte språket. Dette er gunstig for å finne titler i ditt språk. + Hvis påslått, så vil EMM bruke filmbeskrivelse hvis filmhistorien er tom. + Hvis påslått, så vil EMM kun detaljhente skuespillere som har riktig type bilder. + Hvis påslått, så vil EMM bruke aldersgrensen i valgt region istedet for MPAAsertifisering. + Hvis påslått, så vil alle skuespillere bli detaljhentet, istedet for kun hovedrolleinnehavere. + Hvis påslått, så vil alle crewmedlemmer bli detaljhentet. (Hvis individuelt påslått) + Velg regionen for aldersgrenser. + Detaljhent kun aldersgrense for valgt region. + Hvis påslått, så vil nye serier bli "markert" i filmlisten. Hvis avslått, så vil nye serier bli vist med tykk, grønn farge til serien er oppdatert eller til neste EMM-sesjon. + Hvis påslått, så vil nye episoder bli "markert" i filmlisten. Hvis avslått, så vil nye episoder bli vist med tykk, grønn farge til episoden er oppdatert eller til neste EMM-sesjon. + Velg standard rekkefølge EMM vil bruke under detaljhenting av serieinformasjon. + Hvis påslått, så vil EMM kun lagre verdien av aldergrensen. (Eksempel: "Norge: 18" blir "18") + Hvis påslått, så vil EMM laste ned et bannerbilde (bredt bilde) av valgt type som standard TVserie-plakat. + Hvis påslått, så vil EMM prøveå laste ned plakater av valgt type som standard TVserie-plakat. + Dette vil resette seriefiltere til standardliste. ADVARSEL: Dette vil slette alle selvvalgte filtere du har lagt inn. + Dette vil resette episodefiltere til standardliste. ADVARSEL: Dette vil slette alle selvvalgte filtere du har lagt inn. + Dette vil resette filmfiltere til standardliste. ADVARSEL: Dette vil slette alle selvvalgte filtere du har lagt inn. + Dette vil resette godkjente filtyper til standardliste. ADVARSEL: Dette vil slette alle selvvalgte filtere du har lagt inn. + Dette vil resette serieRegex til standardliste. ADVARSEL: Dette vil slette alle selvvalgte filtere du har lagt inn. + Slå på Klikkdetaljhenting på hovedbildemarkeringer. + Hvis påslått, så vil EMM respektere fildatoen i videofilen istedet for å bruke dagens dato når videoen importeres til databasen. Dette resulterer mer stabile søk når nye filmer sorteres. + Hvis påslått, så vil språk (videometadata) ikke bli oppdatert. + Hvis påslått, så vil språk (lydmetadata) ikke bli oppdatert. + Hvis påslått, så vil MPAA/aldersgrense ikke bli oppdatert. + Hvis påslått, så vil MPAA-verdier bli konvertert til FSK hvis ingen FSK-verdier ble funnet. Prioritet: FSK -> MPAA + Gjem sett-seksjonen fra filmlisten. + diff --git a/Ember Media Manager/Langs/Norwegian_(no_NO).xml b/Ember Media Manager/Langs/Norwegian_(no_NO).xml new file mode 100644 index 0000000..22de7d4 --- /dev/null +++ b/Ember Media Manager/Langs/Norwegian_(no_NO).xml @@ -0,0 +1,892 @@ + + &Fil + &Avslutt + &Endre + &Innstillinger... + &Hjelp + &Om... + Laster media: + &Verktøy + &Rens Filer + &Sortér filer i mapper + Kopiér eksisterende fankunst til &bakgrunnmappe + Tilbakestill studio&merke-metadata + Mappenavn + S&amlingmanager + Filnavn + Sesongresultat + Nullstill alle mellomlagre + Omlast alle filmer + Lukk + Sjangere + Tittel + Omlast + Merk + Lås + Endre filmdetaljer + Detaljer + >> Velg sjanger << + Legg til + Samling + Fjern + Detaljhent valgte filmer (på nytt) + Forandre film + Åpne tilhørende mappe + Slett film + Merk alle + Filmer + Nullstill filtere + Generelt + Ute av toleranse + Manglende objekter + Duplikater + Spesifikt + Låst + Forandrer + Og + Eller + Ny + Merket + År: + Kilde: + Sjanger: + Filtre + Avbryter Detaljhenter... + Avbryt Detaljhenter + Ingen informasjon tilgjengelig for denne filmen + Sertifisering(er) + Slippdato + Oppdatér + Metadata + Filbane + IMDB ID + Direktør + Rollebesetning + Beskrivelse + Handling + Informasjon + Detaljhent media + Alle filmer + Automatisk (Tving beste treff) + Alle objekter + Kun Nfo + Kun Plakat + Kun Fankunst + Kun Ekstrakunst + Kun trailer + Kun metadata + Spør (Krev innspill hvis ingen eksakte treff) + Manglende filmobjekter + Nye filmer + Markerte filmer + Selvvalgt Detaljhenter... + Oppdatér bibliotek + Mediacentere + Detaljhent/last ned data fra internettet for flere filmer. + Skanner kilder for nytt innhold, og renser databasen. + Sender en kommando til XBMC for å starte dens interne "Oppdater Bibliotek"-prosess. + Markér eller avmarkér alle filmene i listen. + Søk i filmtitlene ved å skrive her. + Spill av filmfilen i systemets standardavspiller. + Skan på nytt og lagre metadataen for den valgte filmen. + Vis kun filmer som har IMDB ID-duplikater. + Vis kun filmer hvor dens tittelmatch er ute av toleranse. + Vis kun filmer som har manglende objekter + Vis kun nye filmer. + Vis kun markerte filmer. + Vis kun låste filmer. + Vis kun filmer fra valgte kilde. + Velg sjanger... + Avbryter alle prosesser... + Skuespiller + Er du sikker på at du vil fortsette? + ADVARSEL: Hvis du fortsetter, så vil alle ikke-hvitlistefiletyper bli slettet! + ADVARSEL: Hvis du fortsetter, så vil alle følgende typer bli permanent slettet: + Er du sikker? + Fjern all merking + >> Flere << + Umarkert + Lås opp + ADVARSEL: DETTE VIL PERMANENT SLETTE MERKEDE FILMER PERMANENT FRA HARDDISKEN + Oppdatér media: + Kunne ikke laste mapper. Vennligst sjekk innstillingene. + Spilletid: {0} + Velg språket du vil at Ember skal bruke når detaljer for TV-serier hentes. + * Dette MÅ være påslått for å bruke ekstrafankunst og filnavn-valg som movie.tbn, fanart.jpg og videre. + Legg til Regex + Utfører føroppgaver (Henter data)... + Ukjent film ({0}) + {0} Stemmer + Avbryter filrenser + Avbryt filrenser + Avbryter bakgrunnkopi + Avbryt kopiér + Nullstill + Oppdatér Regex + Avbryter Detaljhenter... + Avbryt Detaljhenter + Detaljhenter media (Alle filmer - Spør): + Detaljhenter media (Alle Filmer - Automatisk): + Renser filer: + Kopierer fankunst til bakgrunnsmappe: + {0} som {1} + Detaljhenter media (Manglende filmobjekter - Automatisk): + Detaljhenter media (Manglende filmobjekter - Spør): + Detaljhenter media (Nye filmer - Spør): + Detaljhenter media (Nye filmer - Automatisk): + Detaljhenter media (Markerte filmer - Spør): + Detaljhenter media (Markerte filmer - Automatisk): + Detaljhenter {0} på nytt + Detaljhenter: + Skanner metadata + Kan ikke hente filmdetaljer fra internett. Vennligst sjekk tilkoblingen, og prøv på nytt + Kunne ikke hente detaljer + Oppdatér kun {0} + Oppdatér + Kun + Detaljhent sesong (på nytt) + Detaljhent episode (på nytt) + Plakat + Fankunst + Nfo + Trailer + Undertekst + Ekstrakunst + Skuespillernavn: + Skuespillerrolle: + Skuespillerbilde (URL): + Ny skuespiller + Endre skuespiller + Valgt URL er ikke gyldig. + Ugyldig URL + Vennligst skriv inn en URL for å verifisere + Ingen hodebilde-URL spesifisert + Detaljhent film (på nytt) + Detaljhent valgte filmer (på nytt) + Lager filmliste... + Avbryter listelaging + Avbryt + Detaljhent-rekkefølge + Lås alt + Lås opp alt + Navn: + Beskrivelse: + Utvidelseversjon: + Mappe + Filnavn + Ny mappe + Nytt filnavn + Min. EMM-versjon: + OK + Sniktitt + Skriv inn URL til bilde: + Manuell fankunst + Manuell plakat + Bildeviser + Pass til + Full størrelse + &Format / Innrykk + &Les + &Lagre + Manuell Nfo-skriver + Dette er ikke et skikkelig XML-dokument. + Filen er ikke gyldig. + Filen er gyldig. + Ugyldig + Gyldig + Vil du lagre forandringene? + Lagre? + Filmkilde + Kildenavn: + Kildebane: + Kildevalg: + Kun én film i hver mappe* + Bruk mappenavn for førstegangs listevisning + Søk rekursivt + Velg hovedmappe for filmmapper/filer + Samlingnavn + Forandre samling + Legg til ny samling + En ny versjon er tilgjengelig + Kunne ikke laste oppdatér-applikasjon + Klikk her + for å besøke embermm.com + Sortér filer i mapper + + Status + Skriv inn bane og trykk "Gå" for å begynne + Bane å sortere + Velg mappen som inneholder filene du vil sortere + Flytter + ADVARSEL: Hvis du fortsetter, så vil alle filer bli sortert inn i egne mapper + Mappen du valgte eksisterer ikke. Vennligst velg en gyldig bane. + Mappe ikke funnet + Velg studio + Forandre detaljene til valgt film. + Lokal trailer funnet + Studio: + Trailer URL: + Kreditter: + MPAA Aldersgrensegrunn: + Manuell forandring + Skuespillere: + Navn + Rolle + Hodebilde + MPAA Aldersgrense: + Premiere/slippdato + Sertifisering(er): + Spilletid: + Direktør: + Topp 250: + Handling: + Handling i et nøtteskall: + Undertittel: + Stemmer: + Rangering: + Tittel: + Fjern plakat + Bytt plakat (Detaljhent) + Bytt plakat (lokal) + Fjern fankunst + Bytt fankunst (Detaljhent) + Bytt fankunst (lokal) + Du har ekstrakunst i kø for å bli overført til filmmappen. + Overfør nå + Sett som fankunst + Bildeekstrakt + Max. EMM-versjon + Kategori + Bane til nytt skjermdumpbilde: + Nåværende skjermdump + Skjermdumpbildet må være JPG, 150 KB eller mindre i størrelse, og 133x95 piksler i dimensjon. + Versjon: + Installert: + Rens mellomlager + Bytt plakat (Last ned) + Bytt fankunst (Last ned) + En eller flere resurser i mellomlageret er i bruk, og kan ikke slettes. + Kan ikke rense mellomlager + Størrelse: {0}x{1} + Kunne ikke spille av traileren. Dette kan være grunnet ugyldig URL eller at du ikke har riktig avspiller. + Kunne spille av trailer. + Utvidelsesfil + Lagre + Nullstill + Filter + Påfør + Ny utvidelse + År + Forandre utvidelse + Utvidelsesfiler + Video + Lyd + Ukjent + Kansellert + Utvidelser + Innlogging + Innlogging til utvidelsesserver + Henter "{0}" utvidelser + Logger inn... + Oversettelser + Templater + Ugyldig innførsel + Andre + Lag ny + Slett utvidelse + For å fortsette med sletting, må du bekrefte at du er eieren av utvidelsen. + Bekreft eierskap + Start EMM på nytt? + Nye endringer krever en omstart av EMM for å bli ferdig.\n\nVil du starte EMM på nytt nå? + Ja + Land + Original Tittel + + + + + + + + + + + + + + + + + + + + X-Stor + Stor + Medium + Liten + + + + + + + + + + + + + + + + + + + + + + + + + DVD + Ugyldig + + + + Eksisterer + + + + + + Ferdig + Ferdig + + + Samlingmanager + Samlinger + Filmer i samling + Ingen valgt + Laster film og samlinger... + Avbryter lasting... + Legg til og konfigurer filmsamlinger. + + Last ned + + + + + + + + + + + Selvvalgt Detjalhenter + Lag en ny selvvalgt Detaljhenter + Valgfilter + Oppdatér modus + Modifiseringer + Start + Valg + Andre crew + Musikk av + Produsenter + Forfattere + Studio + Spilletid + Undertittel + Rollebesetning + Stemmer + Rangering + MPAA + Ember Oppstarthjelper + < Tilbake + Neste > + Velkommen til Ember Media Manager + TIPS: Valg som inneholder teksten <film> betyr at EMM vil bruke filnavnet til filmen. + Legg til kilde + Det var vel ikke så vanskelig? Som nevnt tidligere, så kan du forandre disse valgene på et senere tidspunkt i Innstillingene. + Det var dét!{0}Ember Media Manager er klar! + Bane + Rekursivt + Bruk mappenavn + Kun én video + Først, la oss fortelle EMM hvor det kan finne filmene dine. Du kan legge til så mange kilder du vil. + Dette er enten den første gangen du kjører EMM, eller så ha du oppgradert til en nyere versjon. Det er noen ting EMM trenger for å fungere skikkelig. Denne hjelperen vil hjelpe deg konfigurere EMM.{0}{0}Bare en håndfull valg vil bli vist i denne hjelperen. Du kan forandre disse, eller andre valg, når du vil i Innstillingene, som du finner i Edit-menyen. + Nå som EMM vet HVOR det kan finne filene, må vi fortelle det HVILKE filer det må søke etter. Velg de filene du vil at EMM skal bruke. Du kan velge flere typer i hver seksjon, hvis du ønsker. + Noen valg du kan være interessert i: {0}{0}Selvvalgte filtre - Hvis filnavnene inneholder ting som "DVDRip", "BluRay", "x264", eller lignende, og du ønsker å filtrere ut disse i medialisten, så kan du bruke Selvvalgte filtre-valget. Selvvalgte filtre-funksjonen støtter Regex.{0}{0}Bilder- Den seksjonen tillater deg å velge hvilke nettsider EMM skal "detaljhente" bilder fra, og hvilke størrelser du ønsker.{0}{0}Låser - Denne seksjonen tillater deg å "låse" visse detaljer, sånn at de ikke blir forandrer hvis du detaljhenter på nytt. Dette er nyttig hvis du manuelt oppdaterer tittel, handling eller lignende, og ikke ønsker at dette forsvinner. + Er du sikker på at du vil fjerne valgte kilder? Dette vil også fjerne filmene i disse mappene fra EMM-databasen. + Metadata er ikke tilgjengelig for denne filmen. Prøv å skanne på nytt. + Innstillinger + Tilkobling + + + + Brukernavn: + Passord: + + + Diverse + Grensesnittspråk + Slå på Panelanimasjon + Se etter oppdateringer + Skriv over ikke-standard Nfofiler + (Hvis umarkert, ikke-standard Nfofiler vil bli omdøt til <filnavn>.info) + Lagre feilmeldinger til fil + Vis Overlay hvis video inneholder en lydstrøm med følgende språk: + Rens filer + Standard + Ekspert + Tillatte videofiltyper + Tillatte filtyper: + ADVARSEL: Ekspertmodus-renser kan potensielt slette ønskede filer. Vis varsomhet når du bruker dette verktøyet. + Last ned programutvidelser... + Fil + + + Laster ned filer... + + + + Mappe/fil-filtre + Konverter navn til riktig forbokstav + Alltid vis sjangertekst + Sjangerspråkfilter + Ikke vis fankunst + Ikke vis plakat + Vis bildedimensjoner + Hjelp + Markér nye filmer + Medialistevalg + Ikkematch-toleranse: + Sjekk tittelmatch-konfidens + Sortér tokens til ignoranse + Vis år i listetittel + Gjem ekstrakunstseksjon + Gjem undertekstseksjon + Gjem trailerseksjon + Gjem informasjonseksjon + Gjem fankunstseksjon + Gjem plakatseksjon + Filnavn + bruk <film> kun for mapper med flere filmer + YAMJ-kompatibel VIDEO-TS filplassering/navn + Frodo kompatibel VIDEO_TS filplassering/navn + + + + Kvalitet: + Max bredde: + Max høyde: + Automatisk forandre størrelse: + Foretrukker størrelse: + Overskriv eksisterende + Laster innstillinger... + + + + Globale låser + Lås trailer + Lås sjanger + Lås studio + Lås rangering + Lås undertittle + Lås tittel + Lås beskrivelse + Lås handling + Bilder + Ikke skriv URLer i Nfo + Hent ved singel Detaljhent + MoviePosterDB.com + TheMovieDB.org + IMPAwards.com + Bruk hvis man ikke finner fankunst + Metadata er ikke tilgjengelig for denne episoden. Prøv å skanne på nytt + Ingen handlingdetaljer (spoilers) + Antall å lage: + Ekstrakt under Detaljhent + Bruk beskrivelse hvis handling er tom + + Detaljhent kun skuespillere med bilder + Bruk MPAA-sertifisering + Detaljhent full rollebesetning + Detaljhent fullt crew + Bruk følgende sertifiseringsspråk: + Oppgitt spilletidformat + Bruk oppgitt spilletid for spilletid + Skan metadata + Konfigurer EMMs utseende og operasjon + Fjerne valgte + Bakgrunnsmappe + Automatisk lagre fankunst til bakgrunnsmappe + Slett all eksisterende + + Hent kun URLer under Detaljhenting + Hent under singel Detaljhenting + + Hent under automatisk Detaljhenting + + Slå på trailere + No Stack-utvidelser + + + + Gyldig videofiltyper + Forandre kilde + Andre valg + Gjenkjenn VIDEO_TS-mapper + Hopp over størrelsesjekk for stablede filer + MB + Hopp over filer mindre enn: + Størrelser (Ekstraktede bilder) + Polstring + Bredde: + Høyde: + Bruk selvvalgt størrelse + Bruk original oppløsning + Mellomlagrer + Bruk under automatisk Detaljhenting + Markér nye serier + Vedvarende mellomlagring for bilder + Bruk mellomlager for bilder + Velg mappen hvor du ønsker å lagre bakgrunner + Filsystem + + Filer og kilder + Detaljhent - Data + Detaljhentere - Bilder og trailere + Bred + + + + + + + + + + Genererer skuespillermellomlager: + Alle + [ingen] + [Avslått] + Henter plakater: + Henter fankunst: + Henter trailere: + Generer ekstrakunst + Verifiserer filmdetaljer + Detaljområder - Globalt + Grense: + Filkilde: + Vis kun filmer fra valgte kilde. + Manglende objekt-filter + Se etter plakat + Se etter fankunst + Se etter Nfo + Se etter trailer + Se etter undertekst + Se etter ekstrakunst + + + + Topp 250 + + + Metadata-endrer + Videostrømmer + Lydstrømmer + Undertekststrømmer + Strømtype + Last ned alle fankunstbilder med følgende størrelse som ekstrakunst: + Ekstra sortering + Dato lagt til + Kilder + Endre metadata + Kodek + Skantype + Bredde + Høyde + Aspekt + Lengde + Språk + Kanaler + Foretrukne + Strøm-forandrer + Aspektforhold + Flettet + Progressivt + Videostrøm + Lydstrøm + Undertekststrøm + Filmtema + Markér nye episoder + Detaljhenter media (Nåværende filter - Spør): + Detaljhenter media (Nåværende filter - Automatisk): + Nåværende filter + Standarder ved filtyper + Filtyper + Valgte objekter: {0} + Slå på IFO-lesing + Temaer + + + + + + Du har valgt {0} mapper å åpne. Er du sikker på at du vil gjøre dette? + + + + + + + Sortér tittel + Lagrer YAMJ-kompatible samlinger + Renser databasen... + Sluppet: {0} + Fjern fra databasen + Spilledato: {0} + Sesong: {0}, episode: {0} + Oppdatér alt + Sesong + Ingen informasjon tilgjengelig for denne serien + Ingen informasjon tilgjengelig for denne episoden + Tvserier + Sesong + Sesongspesialer + Endre episodedetaljer + Endre detaljer for valgte episoder + På luften: + Sesong: + Episode: + Last episode + Lagre som plakat + Endre detaljer + Endre detaljene for valgt serie. + Første gang på lufta: + TVserietema + Episodetema + Rens databasen etter bibliotekoppdatering + Ignorér siste skantid ved oppdatering av bibliotek + Serie mappe/filnavn-filtre + Episode mappe/filnavn-filtre + Proxy + Slå på proxy + Proxy-URL: + Proxy-port: + Legitimasjon + Slå på legitimasjon + Domene + TV-aldersgrenseregion + Serier + Sesonger + Episoder + Vis plakater + Vis fankunst + Sesongplakater + Sesongfankunst + Episodeplakater + Episodefankunst + [MANGLER] + Endre Regex + Seriematchende Regex + Sesongmatchende Regex + Episodematchende Regex + Anvend på + Endre Regex + Serie-regex + Episode-regex + Tvserier + Regex + Tvserie + Episode + + + + TV-kilde + Velg hovedmappen for TV-serier + + Donér + Rens databasen + Tving tittelspråk: + Inkludér mappenavn i kildetypesjekk + Sortér filer i mapper før hver bibliotekoppdatering + Lokal trailer: + Bekreft objekter som skal slettes + Velg alle filer + Detaljhent på nytt + Forbereder for oppdatering... + Vi er nå klare til å oppdatere. EMM vil nå lukkes sånn at oppdateringen kan starte.\n\nVil du fortsette? + Ja + Nei + Oppdater + Sertifisering + EpisodeGuideURL + Sluppet + Skuespillere + Sesong {0} + Episode + På lufta + Kreditteringer + Foretrukket type: + Oppdaterer serie: + <h>=Timer. <m>Minutter. <s>Sekunder + Hvis manglende episoder + Bygg episodetittel istedenfor filtrering + Alle sesonger-plakat + Hent bilder kun i det foretrukne språket + Og hent engelske bilder + API-nøkkel: + Episoderekkefølge: + Hent serieinformasjon på nytt hver: + Foretrukket språk: + Hent tilgjengelige språk: + Serie + TVsesong + Ingen + Blank + Grafisk + Tekst + Uke + Annenhver uke + Måned + Aldri + Alltid + Modulinnstillinger + Episode# + Laster alle episoder: + Lagrer alle bilder: + Søker theTVDB + Velg bilder: + Laster ned SerieZIP: + Verifiserer TVserie: + Verifiserer episode: + Er du sikker på at du vil slette valgte TVserie og påfølgende episoder? + Er du sikker på at du vil slette valgte episode? + Er du sikker på at du vil slette valgte sesong, og dens episoder? + Detaljhent serie (på nytt) + Forandre serie + Slett TVserie + Endre sesongdetaljer + Bytt bilder + Slett sesong + Forandre episode + Slett episode + Påslått + Avslått + + Forfatter + + + + + + Handling + + + Alle sesonger-plakat + + + + + + Donér + &Versjoner + &Modulinnstillinger + Grensesnitt + Skan etter siste skrivetid + Standard episoderekkefølge + + Detaljhenter - Trailer + Foretrukket kvalitet + TVDB-speilserver + Moduler + Nå, la oss fortelle EMM hvor det kan finne alle TVseriene dine. Du kan legge til så mange kilder du vil. + Og til slutt, la oss fortelle EMM hvilke TVserie-filer det skal se etter. Velg de filene du vil ha. Du kan velge flere i samme seksjon. + Send til PasteBin.com + Kopier til utklippstavle + Noe skjedde under sendingen til PasteBin.com + Feilmeldingleser + Før du sender feilmeldingsskjema, vennligst verifiser at feilmeldingen ikke allerede har blitt sendt. Du kan se alle kjente feil her: + http://www.embermm.com/projects/embermm/issues + PasteBin URL: + Gammel tittel: {0} | Ny tittel: {1} + Film detaljhentet + La til episode: + La til film: + En feil har skjedd + Ny film lagt til + Ny episode lagt til + TV RegEx-profiler + RegEx-profiler + Beskrivelse + Diverse + Lyd- og videokodekkobling + Videokilde: + Nedlastinger: + + + Slå på skuespillerbilder + Se etter "Dump"mappe + Endre detaljer for valgte sesonger. + + Vis "alle sesonger"-plakater + Disse er Detaljhenterspesifikke innstillinger og fungerer som et filter.\nDu kan også bruke EMM globale innstillinger + * I hver sesongmappe + Skriv kun verdien til Nfo + + Detaljhenter - Bilder + Banner + Absolutt + Er du sikker på at du vil nullstille til standard liste for seriefilter? + Er du sikker på at du vil nullstille til standard liste for episodefilter? + Er du sikker på at du vil nullstille til standard liste for filmfilter? + Er du sikker på at du vil nullstille til standard liste for gyldige videofiltyper? + Er du sikker på at du vil nullstille til standard liste for serieregex? + >> Intet objekt valgt << + + + + Slå på klikk-detaljhent + &Sjekk for oppdateringer + Ingen oppdateringer nå + Spør ved klikk-detaljhent + Detaljhenter media (Alle filmer - Hopp over) + Grunnleggende oppsettvalg. + Lager standardvalg. + Laster moduler... + Lager brukergrensesnitt. + Laster database... + Kjører modul... + Laster media... + Kommandolinje-detaljhenting... + Laster oversettelser... + Posisjonkontroll... + Lager menyer... + Versjon {0}.{1}.{2}.{3} + Metadata. + XBMC Frodo + Topp 250 + EmberMM.com &Wiki... + + + + + Bruk fildatoen fra videofilen + + + + + Lås språk (video) + Lås Språk (lyd) + Lås MPAA/Aldersgrense + Bruk MPAA som reserve for FSK gradering + Sett + Gjem sett-seksjon + Lås undertekst + Prøv på nytt + Avbryt + Database-kompatibilitet + Databasen er ikke kompatibel! + Databasen din er ikke kompatibel med denne versjonen av EMM!\n\nDin eksisterende database vil bli lagret som "Media.emm_old", og en ny database vil bli laget.\n\nFølg denne henvisningen. + diff --git "a/Ember Media Manager/Langs/Portugu\303\252s_(pt_BR)-Help.xml" "b/Ember Media Manager/Langs/Portugu\303\252s_(pt_BR)-Help.xml" deleted file mode 100644 index 58e328f..0000000 --- "a/Ember Media Manager/Langs/Portugu\303\252s_(pt_BR)-Help.xml" +++ /dev/null @@ -1,362 +0,0 @@ - - If enabled, the value of the genre images will always be displayed. If disabled, the text will only be visible when you hover your mouse over one of the genre images. - If enabled, Ember will check the folder name for source types. If disabled, Ember will only check the file name. - If enabled, fanart will not be displayed in the main window. This is helpful to speed up the interface on slow computers. - If enabled, posters will not be displayed in the main window. This is helpful to speed up the interface on slow computers. - If enabled, the dimensions of the images (posters and fanart) will be overlayed on top of the images. - If enabled, Ember will check for a new version at each start up. - Marcada faz com que os arquivos NFOs fora do padrão sejam sobrescritos quando o Ember buscar as informações dos filmes. Desmarcada faz com que os arquivos NFOs não sejam sobrescritos e um novo arquivo, com a extensão .INFO, seja criado. - If enabled, all errors will be logged to a file located in <Ember Installation Directory>\Log\errlog.txt. - Select the theme to apply for the episode layout. - Select the theme to apply for the TV Show and Season layout. - Select the theme to apply for the movie layout. - Download addons for Ember, including modules, themes, translations to other languages, and export templates. - Select the language to use for Ember's interface. (You must restart Ember for changes to take effect) - Clean all files named "folder.jpg". - Clean all "extrathumbs" folders. - Clean all files named "movie.tbn". - Clean all files named <movie>.jpg. - Clean all files named <movie>.tbn. - Clean all files named "movie.jpg". - Clean all files named "fanart.jpg". - Clean all files named "poster.jpg". - Clean all files named <movie>-fanart.jpg. - Clean all files named "poster.tbn". - Clean all files named "movie.nfo". - Clean all files named <movie>.fanart.jpg. - Clean all files named <movie>.nfo. - Automatically whitelist all files which have an extension in the "Valid Video Extensions" list. - Remove the selected extension from the whitelist. - Add the entered extension to the whitelist. - Enter an extension to add to the whitelist. - This list contains all the current extensions that will be skipped during cleaning. - If enabled, Ember will save sets information in a format that is compatible with YAMJ. If disabled, Ember will save sets information in a format that is compatible with XBMC. - If enabled, when clicking on a checkbox in the movies list a non-automatic will be used. If disabled, an automatic scrape will be used. - If enabled, new movies will be "marked". If disabled, new movies will still be colored green until updated or the next Ember session. - Select the language(s) of the genres you would like Ember to display. - Enter the tolerance level you would like Ember to use when title matching. The higher the number, the more lenient the algorithm is. 0 = disabled - Enable this to have Ember check the differences between the title of the movie and it's file name. This is useful to make sure that the scraped data is actually for the selected movie file. - Remove the selected sort token from the list. - Add the entered sort token to the list. - Enter in a sort token to add to the list. - A list of all current sort tokens. (If the movie title begins with a sort token, then the sort token will be moved to the end. For example: Sort Token = "The", Title = "The Dark Knight", Result = "Dark Knight, The") - If enabled, Ember will display the year of the movie in the main movie list. - Hide the Extrathumbs column from the main movie list. - Hide the Subtitles column from the main movie list. - Hide the Trailers column from the main movie list. - Hide the Info column from the main movie list. - Hide the Fanart column from the main movie list. - Hide the Poster column from the main movie list. - If enabled, "<movie>.ext" items will only be utilized in folders that have multiple movies. This is useful when you have a mixture of multiple movie and single movie folders and you wish to reduce the number of extra files. - Save trailer files as "<movie>[trailer].ext". - Save trailer files as "<movie>-trailer.ext". - If enabled, Ember will save the meta files in the parent directory (YAMJ compatible). If disabled, Ember will save the meta files directly to the VIDEO_TS folder (XBMC compatible). This setting applies to BDMV folders, as well. - Save nfo files as "<movie>.nfo". - Save nfo files as "movie.nfo". - Save fanart files as "<movie>.fanart.jpg". - Save fanart files as "<movie>-fanart.jpg". - Save fanart files as "fanart.jpg" - Save poster files as "folder.jpg" - Save poster files as "poster.jpg" - Save poster files as "poster.tbn" - Save poster files as "<movie>.jpg" - Save poster files as "movie.jpg" - Save poster files as "<movie>.tbn" - Save poster files as "movie.tbn" - The list of all current movie sources. (Paths that will be scanned for movie files) - The list of all current movie sources. (Paths that will be scanned for movie files) - The list of all current movie sources. (Paths that will be scanned for movie files) - The list of all current movie sources. (Paths that will be scanned for movie files) - The list of all current movie sources. (Paths that will be scanned for movie files) - The list of all current movie sources. (Paths that will be scanned for movie files) - The list of all current movie sources. (Paths that will be scanned for movie files) - Remove the selected source(s) from the sources list. - Add a new folder to the sources list. - Resize poster files to the entered width. - Resize poster files to the entered height. - Adjust the quality of the poster files. (0 = original quality) - Resize poster files before saving. - Select the preferred poster size you would like to retreive from the image servers. During automatic scrapers, Ember will attempt to find a poster of this size first. If a poster of the selected size cannot be found, the first available image will be used instead. - If enabled, existing poster files will be overwritten if new ones are selected. If disabled, poster files will only be saved if a current one does not already exist. - Resize fanart files to the entered width. - Resize fanart files to the entered height. - If enabled, Ember will only retrieve fanart of the selected size. (NOTE: If there are no fanart images of the selected size available, no fanart images will be retrieved) - Adjust the quality of the fanart files. (0 = original quality) - Resize fanart files before saving. - Select the preferred fanart size you would like to retrieve from the image servers. Durint automatic scrapers, Ember will attempt to find a fanart image of this size first. If a fanart image of the selected size cannot be found, the first available image will be used instead. - If enabled, existing fanart files will be overwritten if new ones are selected. If disabled, fanart files will only be saved if a current one does not already exist. - If enabled, Ember will not save URLs to the poster and fanart images in the nfo files. (Recommended for YAMJ compatibility) - Select images while scraping a single movie file. - Save images to the image cache when scraping multiple movie files. - If enabled, Ember will not clear the image cache between sessions. - Enable Ember's image cache. - If enabled and no fanart is available for the selected movie, Ember will use one of the extracted thumbnails as the fanart image. - If enabled, extrathumbs will only be extracted from the first half of the movie in order to avoid "spoilers". - Enter the number of extrathumbs you would like to automatically generate. - If enabled, Ember will automatically extract the entered number of extrathumbs during scraping. - Enter the domain for your proxy. (Optional - not necessary for most proxies) - Enter the password needed to access your proxy. - Enter the username needed to access your proxy. - Enable if your proxy requires authentication. - Enter the port needed to access your proxy. - Enter the IP or URL needed to access your proxy. - If enabled, Ember will use the entered proxy for all internet communications. - Move the selected filter up in the list. (Filters are processed in order from top to bottom) - Move the selected filter down in the list. (Filters are processed in order from top to bottom) - Automatically apply proper casing to movie titles. (Example: "the dark knight" becomes "The Dark Knight") - Remove the selected filter from the list. - Add the entered filter to the list. - Enter text or regex to use as a filter. Special: "a[->]b" = replace all occurrances of "a" with "b" (Example: ".[->]_" will replace all periods in the title with underscores.) - The list of all current filters that will be used when generating titles for movies. - If enabled, Ember will display movies missing extrathumbs when utilizing the Missing Items Filter. - If enabled, Ember will display movies missing subtitle files when utilizing the Missing Items Filter. - If enabled, Ember will display movies missing trailers when utilizing the Missing Items Filter. - If enabled, Ember will display movies missing nfo files when utilizing the Missing Items Filter. - If enabled, Ember will display movies missing fanart when utilizing the Missing Items Filter. - If enabled, Ember will display movies missing posters when utilizing the Missing Items Filter. - If enabled, Ember will automatically save new fanart images to the entered backdrops folder. - Open a folder browser to select a backdrops folder. - The path to the backdrops folder. - Remove the selected extension from the No Stack Extensions list. - Add the entered extension to the No Stack Extensions list. - Enter an extension to add to the No Stack Extensions list. - The list of extensions Ember will not stack into single files when adding them to the library. - Remove the selected extension from the Valid Video Extensions list. - Add the entered extension to the Valid Video Extensions list. - Enter an extension to add to the Valid Video Extensions list. - The list of extensions Ember will look for when updating the library. - Edit the selected source. - If enabled, Ember will add new files in order of there last modified time. If disabled, Ember will add new files to the library in alphabetical order. - If enabled, Ember will sort all single files in the top directory of the source into their own folders. - If enabled, Ember will scan all folders/files regardless of the last scan time. If disabled, Ember will only scan files/folders added after the last time files were scanned. - If enabled, Ember will clean the movie database after each scan. (Remove entries for files that no longer exist or no longer match selected setting values) - If enabled, Ember will attempt to recognize VIDEO_TS folders even if the folder is not named "VIDEO_TS". If disabled, Ember will still handle VIDEO_TS folders if the folder is named "VIDEO_TS". This setting also applies to BDMV folders. - If enabled, Ember will not skip files smaller than the entered "Skip Files Smaller Than" size if they contain stacking markers (such as "CD1" or "DVD2"). - Ember will use the entered size as the minimum size for movie files. Any files smaller than this will be skipped when updating the library. - Ember will use the entered size as the minimum size for episode files. Any files smaller than this will be skipped when updating the library. - Select the preferred quality of the downloaded trailers. - If enabled, Ember will delete all existing trailers for the movie before saving the new one. - If enabled, existing trailer files will be overwritten when saving new ones. If disabled, new trailer files will only be saved if one does not already exist. - If enabled, trailer files will not be downloaded. Instead, the trailer url will be saved to the nfo. - If enabled, trailers will be downloaded while scraping a single movie. - If enabled, trailers will be downloaded during "All Items" scrapers. - Enable Ember's trailer support. - Select the size of the fanart you would like to download as extrathumbs. - If enabled, Ember will automatically download all fanart of the selected size as extrathumbs. - Resize extrathumbs to the entered width. - Resize extrathumbs to the entered height. - If enabled, Ember will add "black bars" to the edges of the extrathumbs if they are smaller than the entered size. - Resize extrathumbs to the entered size, regardless of the native resolution. - Save extrathumbs using the same resolution as the video. - The list of all current TV Show sources. (Paths that will be scanned for TV Show files) - The list of all current TV Show sources. (Paths that will be scanned for TV Show files) - The list of all current TV Show sources. (Paths that will be scanned for TV Show files) - The list of all current TV Show sources. (Paths that will be scanned for TV Show files) - If enabled, Ember will add new files in order of there last modified time. If disabled, Ember will add new files to the library in alphabetical order. - If enabled, Ember will scan all folders/files regardless of the last scan time. If disabled, Ember will only scan files/folders added after the last time files were scanned. - If enabled, Ember will clean the TV Show database after each scan. (Remove entries for files that no longer exist or no longer match selected setting values) - Add a new folder to the sources list. - Edit the selected source. - Remove the selected source(s) from the sources list. - Save All Seasons poster files as "season-all.jpg". - Save All Seasons poster files as "season-all.tbn". - Save episode fanart files as "<episode>.fanart.jpg". - Save episode fanart files as "<episode>-fanart.jpg". - Save episode poster files as "<episode>.jpg". - Save episode poster files as "<episode>.tbn". - Save season fanart files as "<season>.fanart.jpg". (Will only save inside the season directory, if it exists) - Save season fanart files as "<season>-fanart.jpg". (Will only save inside the season directory, if it exists) - Save season fanart files as "fanart.jpg". (Will only save inside the season directory, if it exists) - Save season fanart files as "folder.jpg". (Will only save inside the season directory, if it exists) - Save season poster files as "<season>.jpg". (Will only save inside the season directory, if it exists) - Save season poster files as "<season>.tbn". (Will only save inside the season directory, if it exists) - Save season poster files as "poster.jpg". (Will only save inside the season directory, if it exists) - Save season poster files as "poster.tbn". (Will only save inside the season directory, if it exists) - Save season poster files as "seasonX.tbn". (Example: season2.tbn) - Save season poster files as "seasonXX.tbn". (Example: season02.tbn) - Save show fanart files as "<show>.fanart.jpg". - Save show fanart files as "<show>-fanart.jpg". - Save show fanart files as "fanart.jpg". - Save show poster files as "<show>.jpg". - Save show poster files as "<show>.tbn". - Save show poster files as "poster.jpg". - Save show poster files as "poster.tbn". - Save show poster files as "folder.jpg". - Add the entered regex to the TV Show Regex list. - Enter the regex to use to detect the season number. - Choose if you would like to process the season regex against the directory name or the episode file name. - Enter the regex to use to detect the episode number. - Choose if you would like to process the episode regex against the directory name, the episode file name, or the results of the season regex. - Edit the selected TV Show regex. - Remove the selected TV Show regex from the list. - The list of current TV Show regex. - The list of current TV Show regex. - The list of current TV Show regex. - The list of current TV Show regex. - The list of current TV Show regex. - The list of current TV Show regex. - If enabled, episodes that are missing from your collection will be displayed in the episode list, but will be colored a light gray. - Hide the Info column from the episode list. - Hide the Fanart column from the episode list. - Hide the Poster column from the episode list. - Hide the Fanart column from the season list. - Hide the Poster column from the poster list. - Hide the Info column from the show list. - Hide the Fanart column from the show list. - Hide the Poster column from the show list. - If enabled, if an All Season poster exists for the selected show, it will be displayed on the right of the interface. - Select the region of the ratings you would like to display in the interface. - If enabled, Ember will not attempt to filter episode file names for titles and instead will build them from the show name, season, and episode until a proper title has been fetched. - Move the selected filter up in the list. (Filters are processed in order from top to bottom) - Move the selected filter down in the list. (Filters are processed in order from top to bottom) - Automatically apply proper casing to episode titles. (Example: "stole beer from golfer" becomes "Stole Beer From Golfer") - Remove the selected filter from the filter list. - Add the entered filter to the filter list. - Enter a filter to add to the filter list. - The list of all current filters that will be used when generating titles for episodes. - Move the selected filter up in the list. (Filters are processed in order from top to bottom) - Move the selected filter down in the list. (Filters are processed in order from top to bottom) - Automatically apply proper casing to episode titles. (Example: "my name is earl" becomes "My Name is Earl") - Remove the selected filter from the filter list. - Add the entered filter to the filter list. - Enter a filter to add to the filter list. - The list of all current filters that will be used when generating titles for shows. - If enabled, all English images will be retrieved, regardless of the selected language. - If enabled, only images for the preferred language will be retrieved. - Resize show poster files to the entered width. - Resize show poster files to the entered height. - Adjust the quality of the show poster files. (0 = original quality) - Resize show poster files before saving. - Select the preferred show poster type you would like to retreive from the image servers. During the show scraper, Ember will attempt to find a poster of this type first. If a poster of the selected size cannot be found, the first available image will be used instead. - If enabled, existing show poster files will be overwritten if new ones are selected. If disabled, show poster files will only be saved if a current one does not already exist. - Resize show fanart files to the entered width. - Resize show fanart files to the entered height. - Adjust the quality of the show fanart files. (0 = original quality) - Resize show fanart files before saving. - Select the preferred fanart size you would like to retreive from the image servers. During the show scraper, Ember will attempt to find a fanart image of this size first. If a fanart image of the selected size cannot be found, the first available image will be used instead. - If enabled, existing show fanart files will be overwritten if new ones are selected. If disabled, show fanart files will only be saved if a current one does not already exist. - Resize season poster files to the entered width. - Resize season poster files to the entered height. - Adjust the quality of the season poster files. (0 = original quality) - Resize season poster files before saving. - Select the preferred season poster type you would like to retreive from the image servers. During the show scraper, Ember will attempt to find a poster of this type first. If a poster of the selected size cannot be found, the first available image will be used instead. - If enabled, existing season poster files will be overwritten if new ones are selected. If disabled, season poster files will only be saved if a current one does not already exist. - Resize season fanart files to the entered width. - Resize season fanart files to the entered height. - Adjust the quality of the season fanart files. (0 = original quality) - Resize season fanart files before saving. - Select the preferred fanart size you would like to retreive from the image servers. During the show scraper, Ember will attempt to find a fanart image of this size first. If a fanart image of the selected size cannot be found, the first available image will be used instead. - If enabled, existing season fanart files will be overwritten if new ones are selected. If disabled, season fanart files will only be saved if a current one does not already exist. - Resize episode poster files to the entered width. - Resize episode poster files to the entered height. - Adjust the quality of the episode poster files. (0 = original quality) - Resize episode poster files before saving. - If enabled, existing episode poster files will be overwritten if new ones are selected. If disabled, episode poster files will only be saved if a current one does not already exist. - Resize episode fanart files to the entered width. - Resize episode fanart files to the entered height. - Adjust the quality of the episode fanart files. (0 = original quality) - Resize episode fanart files before saving. - Select the preferred fanart size you would like to retreive from the image servers. During the show scraper, Ember will attempt to find a fanart image of this size first. If a fanart image of the selected size cannot be found, the first available image will be used instead. - If enabled, existing episode fanart files will be overwritten if new ones are selected. If disabled, episode fanart files will only be saved if a current one does not already exist. - Enable scraping show rating. - Enable scraping show actors. - Enable scraping show studios. - Enable scraping show premiered date. - Enable scraping the Episode Guide URL. - Enable scraping show MPAA. - Enable scraping show plot. - Enable scraping show genre. - Enable scraping show title. - Enable scraping episode actors. - Enable scraping episode credits. - Enable scraping episode directors. - Enable scraping episode plot. - Enable scraping episode rating. - Enable scraping episode aired date. - Enable scraping episode title. - Enable scraping episode number. - Enable scraping season number. - If enabled, the episode title will only be scraped if a current one does not exist. - If enabled, the episode rating will only be scraped if a current one does not exist. - If enabled, the episode plot will only be scraped if a current one does not exist. - If enabled, the show plot will only be scraped if a current one does not exist. - If enabled, the show genre will only be scraped if a current one does not exist. - If enabled, the show studio will only be scraped if a current one does not exist. - If enabled, the show rating will only be scraped if a current one does not exist. - If enabled, the show title will only be scraped if a current one does not exist. - The list of extensions that have default meta data entries. - Enter an extension to create a default meta data entry. - Remove the default meta data for the selected extension from the default meta data list. - Edit the default meta data for the selected extension in the default meta data list. - Create default meta data for the entered extension and add the to the default meta data list. - If the selected language is found in the episode, a special icon indicator will be overlayed on the meta data audio icon. - If enabled, Ember will scan episode files for meta data. - Select the time to wait between updating cached TV information files. - Enter the TVDB API Key of the media center/player you use. This is not necessary for Ember to function. It is only used when saving the Episode Guide URL to the nfo. - Enter the mirror to use when retrieving information from theTVDB. - Click to download all available languages from theTVDB. - Select the preferred language to use when downloading show information and images. - Enable scraping movie certification. - Enable scraping movie Top 250 ranking. - Enable scraping movie production country. - Limit the number of scraped genres to the entered value. - Limit the number of scraped actors to the entered value. - Enable scraping movie other crew. (Scrape Full Crew must be enabled) - Enable scraping movie musicians. (Scrape Full Crew must be enabled) - Enable scraping movie producers. (Scrape Full Crew must be enabled) - Enable scraping movie writers. - Enable scraping movie studio. - Enable scraping movie runtime. - Enable scraping movie plot. - Enable scraping movie outline. - Enable scraping movie genre. - Enable scraping movie director. - Enable scraping movie tagline. - Enable scraping movie cast. - Enable scraping movie votes. - Enable scraping movie trailer url. - Enable scraping movie rating. - Enable scraping movie release date. - Enable scraping movie MPAA. - Enable scraping movie year. - Enable scraping movie title. - The list of extensions that have default meta data entries. - Enter an extension to create a default meta data entry. - Remove the default meta data for the selected extension from the default meta data list. - Edit the default meta data for the selected extension in the default meta data list. - Create default meta data for the entered extension and add the to the default meta data list. - If enabled, Ember will process *.ifo files for meta data information. - If the selected language is found in the movie, a special icon indicator will be overlayed on the meta data audio icon. - Enter the format you wish to use for the movie duration retrieved from scanning meta data. Note you can also use <0m> for 0 padding minutes - If enabled, Ember will scan movie files for meta data. - Use the movie duration retrieved from scanning meta data as the runtime of the movie. - If enabled, the movie outline will only be scraped if a current one does not exist. - If enabled, the movie plot will only be scraped if a current one does not exist. - If enabled, the URL movie trailer will only be scraped if a current one does not exist. - If enabled, the movie genre will only be scraped if a current one does not exist. - If enabled, the movie studio will only be scraped if a current one does not exist. - If enabled, the movie rating will only be scraped if a current one does not exist. - If enabled, the movie tagline will only be scraped if a current one does not exist. - If enabled, the movie title will only be scraped if a current one does not exist. - Select the region of the title you would like Ember to look for. - If enabled, Ember will check for alternative titles in the selected language. This is useful for fetching titles in your native language when scraping foreign films. - If enabled, Ember will use the outline for the plot if the plot is empty. - If enabled, Ember will only scrape cast entries that have valid images. - If enabled, Ember will use the certifcation of the selected region in place of the MPAA rating. - If enabled, all cast members will be scraped instead of only top billed. - If enabled, all crew members will be scraped (if individually enabled). - Select the region to filter certification ratings. - Only scrape the certificaton rating for the selected region. - If enabled, new shows will be "marked". If disabled, new shows will still be colored green until updated or the next Ember session. - If enabled, new episodes will be "marked". If disabled, new episodes will still be colored green until updated or the next Ember session. - Select the default ordering Ember will use when scraping information for a show. - If enabled, Ember will only save the value of the certification to the MPAA field. (Example: "Germany:18" will save as "18") - If enabled, Ember will attempt to download a banner (wide) image of the selected type as the default show poster. - If enabled, Ember will attempt to download a poster image of the selected type as the default show poster. - This will reset the show filters to the default list. WARNING: This WILL delete any custom filters you have entered. - This will reset the episode filters to the default list. WARNING: This WILL delete any custom filters you have entered. - This will reset the movie filters to the default list. WARNING: This WILL delete any custom filters you have entered. - This will reset the valid extensions to the default list. WARNING: This WILL delete any custom extensions you have entered. - This will reset the show regex to the default list. WARNING: This WILL delete any custom regex you have entered. - Enable Click Scrape on main screen column marks. - \ No newline at end of file diff --git "a/Ember Media Manager/Langs/Portugu\303\252s_(pt_BR).xml" "b/Ember Media Manager/Langs/Portugu\303\252s_(pt_BR).xml" deleted file mode 100644 index 387f3e7..0000000 --- "a/Ember Media Manager/Langs/Portugu\303\252s_(pt_BR).xml" +++ /dev/null @@ -1,856 +0,0 @@ - - - &Arquivo - S&air - &Editar - &Configurações - &Ajuda - &Sobre... - Carregando Mídia: - &Ferramentas - &Limpar Arquivos - &Ordenar Arquivos Dentro das Pastas - Copiar Fanart Existente para &Pasta Backdrops - Reverter as informações do Estúdio - Nome da Pasta - Criar &Coletânea - Nome do Arquivo - Resultado - Limpar &Toda a Memória - Re&carregar Todos os Filmes - Fechar - Gêneros - Título - Recarregar - Marcar - Travar - Editar o Filme - Detalhes - >> Selecione Gênero << - Adicionar - Definir - Remover - Procurar Filmes Selecionados - Alterar Filme - Abrir a Pasta do Filme - Deletar o Filme - Marcar Todos - Filmes - Limpar Filtros - Geral - Fora da Tolerância - Faltando Itens - Duplicados - Específico - Travados - - e - ou - Novos - Marcados - Ano: - Fonte: - Gênero: - Filtros - Cancelando a Busca... - Cancelar a Busca - Não Existe Informação Disponível Para Este Filme - Certificação - Lançamento - Atualizar - Metadados do Arquivo - Caminho Completo Para o Arquivo - IMDB ID - Diretor - Elenco - Resumo - Sinopse - Informações - Buscar Mídia - Todos os Filmes - Automático (Forçar o Melhor Resultado) - Todos os Itens - Somente NFO - Somente Poster - Somente Fanart - Somente Extrathumbs - Somente Trailer (URL) - Somente Metadados do Arquivo - Perguntar (Caso Não Ache o Melhor Resultado) - Filmes Faltando Itens - Novos Filmes - Filmes Marcados - Busca Personalizada... - Atualizar Biblioteca - Programas - Buscar/Baixar os dados dos filmes usando o modo automático. - Adicionar novos conteúdos e ou atualizar o banco de dados. - Enviar um comando para o XBMC para iniciar processo de atualização da biblioteca. - Marcar ou desmarcar todos os filmes da lista. - Digite neste campo o que deseja pesquisar. - Reproduzir o arquivo do filme com o media play padrão do sistema. - Reescaneia e salva os metadados do filme selecionado. - Mostra os filmes com as IDs do IMDb duplicadas. - Mostra só os filmes cujo título correspondente está fora da tolerância. - Mostra filmes faltando itens - Mostra os filmes atualizados nesta sessão. - Mostra os filmes marcados - Mostra os filmes travados - Mostra os filmes da fonte escolhida - Selecionar Gênero... - Cancelando Todos os Processos... - Ator - Você tem certeza que quer continuar? - AVISO: Se você continuar, todos os tipos de arquivo protegidos não serão excluídos. - AVISO: Se você continuar, todos os arquivos dos seguintes tipos serão excluídos permanentemente: - Você tem certeza? - Desmarcar todas - >> Multiplos << - Desmarcar - Destravar - AVISO: Isso vai apagar o filme selecionado do disco rígido - Atualizando mídia: - Não é possível carregar os diretórios. Verifique as configurações. - Tempo Total: {0} - Agora, selecione o idioma padrão que você gostaria de Ember para procurar quando buscando por Seriados. - * Isso deve ser habilitado para usar extrathumbs e arquivo de opções de nomes como movie.tbn, fanart.jpg, etc. - Adicione um Regex - Executar tarefas preliminares (Coleta de Dados)... - Filme desconhecido ({0}) - {0} Votos - Cancelando limpeza arquivos... - Cancelar Limpeza - Cancelando cópida do Backdrop.. - Cancelar Cópia - Limpar - Atualize o Regex - Cancelando a Busca... - Cancelar a Busca - Buscando Mídia (Todos os Filmes - Perguntar): - Buscando Mídia (Todos os Filmes - Auto): - Limpando arquivos: - Copiando Fanart para diretório Backdrops: - {0} como {1} - Buscando Mídia (Filmes faltando itens - Auto): - Buscando Mídia (Filmes faltando itens - Perguntar): - Buscando Mídia (Novos Filmes - Perguntar): - Buscando Mídia (Novos Filmes - Auto): - Buscando Mídia (Filmes Marcados - Perguntar): - Buscando Mídia (Filmes Marcados - Auto): - Buscando Novamente {0} - Buscando: - Buscando Dados dos Arquivos: - Não é possível recuperar detalhes do filme a partir da Internet. Verifique sua conexão e tente novamente. - Erro Recuperando Detalhes - Atualizar somente os Filmes - Atualizar - - Buscar Temporada - Buscar Episódio - Poster - Fanart - NFO - Trailer - Legendas - Extrathumbs - Nome do Ator: - Personagem: - Imagem do Ator (URL): - Novo Ator - Editar Ator - URL especificada não é válida. - URL inválida - Por favor entre uma URL para verificar. - Nenhuma URL Thumb específicada - Buscar Informações do Filme - Buscar Filmes Selecionados - Compilando Lista de Filmes... - Cancelando Compilação... - Cancelar - Ordem do Buscador - Travar todos - Destravar todos - Nome: - Descrição: - Addon Versão: - Pasta - Nome do arquivo - Nova Pasta - Novo Filename - Min. Ember Versão: - OK - Prévia - Endereço da Imagem: - Adicionar Manualmente um Fanart - Adicionar Manualmente um Poster - Visualizador de Imagens - Ajustado - Tamanho Real - &Formatar - &Validar o Arquivo - &Salvar - Editor Manual de NFO | - Este não é um documento XML apropriado - Arquivo não é válido. - Arquivo é válido. - Não é Válido - Válido - Você quer salvar as mudanças? - Gravar? - Fonte do Filme - Nome da Fonte: - Pasta da Fonte: - Opções da Fonte: - Apenas detectar um filme por pasta* - Usar nome da pasta para listagem inicial - Buscar Recursivamente - Selecione a pasta superior para suas pastas de filmes / arquivos. - Nome da Coletânea: - Editar a Coletânea - Adicionar Nova Coletânea - Uma nova versão está disponível - Falhou em carregar atualização do aplicativo - Clique aqui - para visitar embermm.com - Ordenar arquivos dentro do diretório - Ir - Status - Coloque o caminho e pressione "Ir" para iniciar. - Pasta para ordenar: - Selecione a pasta que contém os arquivos que você deseja ordenar. - Movendo - ATENÇÃO: Se você continuar, todos os arquivos serão ordenados em pastas separadas. - A pasta que você digitou não existe. Por favor, digite um caminho válido. - Pasta não encontrada - Selecionar o Estúdio - Edita os detalhes do filme selecionado. - Trailer Local Encontrado - Estúdio: - URL do Trailer: - Créditos: - Descrição da Classificação Indicativa: - Edição Manual - Atores: - Nome - Personagem - Thumb - Classif. Indicat.: - Lançamento: - Certificação: - Duração: - Diretor: - Top 250: - Sinopse: - Resumo: - Tagline: - Votos: - Avaliação: - Título: - Remover Poster - Alterar Poster (Buscador) - Alterar Poster (Procura Local) - Remover Fanart - Alterar Fanart (Buscador) - Alterar Fanart (Procura Local) - Você tem arquivos extrathumbs para serem transferidos para a pasta do filme. - Transferir Agora - Definir como Fanart - Extrair Imagem - Max. Ember Version: - Categoria: - Pasta para a nova imagem: - Atual Screen Shot: - Imagem Screen Shot deve ser no formato JPEG, igual ou menor que 150 KB em tamanho, e igual ou menor que 133x95 na dimensão. - Versão: - Instalado: - Limpar Cache - Alterar Poster (Baixar) - Alterar Fanart (Baixar) - Master.eLang.GetString(148, "Um ou mais recursos de cache está atualmente em uso e não pode ser excluída no momento. - Não posso limpar cache - Tamanho: {0}x{1} - O trailer não pôde ser reproduzido. Isto pode ser devido a um URL inválido ou você não tem o codec ou o player apropriado para reproduzir o arquivo. - Erro ao rodar o Trailer - Arquivo Addon - Salvar - Renovar - Filtro - Aplicar - Novo Addon - Ano - Editar Addon - - Addon Arquivos - Video - Audio - Desconhecido - Cancelado - Addons - Login - Login para o servidor - Buscando "{0}" Addons... - Logando em... - Traduções - Modelos - Entrada Inválida - Outro - Criar Novo - Deletar Addon - Para continuar com a exclusão, você precisa confirmar que você é o proprietário do Addon. - Confirme Propriedade - Restarte Administrador do Media Manager? - Recente alterações requerem um reinício do Ember Media Manager para completar.\n\nVocê gostaria de reiniciar o Ember Media Manager agora? - Sim - País - Título Original - - - - - - - - - - - - - - - - - - - - Extra Grande - Grande - Médio - Pequeno - - - - - - - - - - - - - - - - - - - - - - - - - DVD - Invalido - - - - Existe - - - - - - Finalizado - Pronto - - - Criar Coletânea - Coletâneas - Filmes na Coletânea - Nenhum Selecionado - Carregando filmes e conjuntos... - Cancelado Carregamento... - Adicione e configure filmes em coletâneas. - - Baixar - - - - - - - - - - - Personalizar a Busca - Cria uma Busca Personalizada - Seleção de Filtro - Modo de Atualizar - Modificadores - Início - Opções - Outros - Músicos - Produtores - Escritores - Estúdio - Duração - Tagline - Elenco - Votos - Avaliação - Classif. Indicat. - Assistente de Inicialização - < Voltar - Próximo > - Bem-vindo ao Ember Media Manager - DICA: Seleções contendo o texto <filme> significa que o Ember Media Manager irá usar o nome do arquivo para o filme. - Adicionar Fonte - Não foi difícil, foi? Como mencionado anteriormente, você pode alterar essas ou quaisquer outras opções na caixa de diálogo Configurações. - É isso!{0}Ember Media Manager está pronto! - Pasta - Recursivo - Usar Nome da Pasta - Apenas um Vídeo - Primeiro, vamos dizer Ember Media Manager onde localizar todos os seus filmes. Você pode adicionar tantas como fontes como você deseja. - Esta é a primeira vez que abriu o Ember Media Manager ou atualizou para uma versão mais recente. Existem algumas coisas que Ember Media Manager precisa saber para funcionar corretamente. Este assistente o guiará através da configuração do Ember Media Manager. {0} {0} Apenas um punhado de configurações serão abordadas neste assistente. Você pode alterar estes ou qualquer outra definição a qualquer momento, selecionando "Configurações ..." a partir do menu "Editar. - Agora que Ember Media Manager sabe onde procurar os arquivos, é preciso dizer-lhe que os arquivos a procurar. Basta selecionar qualquer combinação de tipo de arquivos que você deseja Ember Media Manager para carregar e de guardar. Você pode selecionar mais de um de cada seção, se desejar. - Algumas opções que você pode estar interessado em:{0}{0}Filtros Personalizados - Se os arquivos do seu filme tem coisas como "DVDRip", "Blu-Ray", "x264", etc em sua pasta ou nome do arquivo e você deseja filtrar os nomes de ao carregar na lista de mídia, você pode utilizar a opção Custom Filter. O filtro personalizado é RegEx compatível para o máximo de usabilidade {0} {0} Imagens -.. Esta seção permite selecionar os sites que a "raspar" a partir de imagens, bem como seleccionar o tamanho preferido para as imagens Ember Media Manager seleciona {0} {0} Bloqueios - Esta seção lhe permite "bloquear" determinadas informações que ele não é atualizado, mesmo se você raspar novamente o filme. Isso é útil se você editar manualmente o título, esboço, ou parcela de um filme e deseja manter as alterações - Tem certeza que deseja remover as fontes selecionadas? Isto irá remover os filmes a partir destas fontes do banco de dados Ember. - Os metadados ainda não estão disponíveis para este filme. Clique no botão Atualizar desta janela para reescanear e salvar os metadados do filme selecionado. - Configurações - Conexão - - - - Usuário: - Senha: - - - Diversos - Idioma da Interface: - Ativar animação do painel - Procurar por atualizações - Sobrescrever NFOs fora do padrão - (Leia as explicações abaixo) - Criar relatório de erros nos arquivos - Mostrar ícone se o filme possuir o idioma: - Limpar Arquivos - Padrão - Avançado - Proteger Extensões - Extensões Protegidas: - Aviso: usando a limpeza no modo avançado poderá apagar arquivos desejados. Tome cuidado ao usar esta ferramenta. - Baixar Complementos - Arquivo - - - Baixando os Arquivos... - - - - Filtros de Nome de Arquivo e Pasta - Colocar as Primeiras Letras dos Títulos em Maiúsculas - Mostrar o texto do gênero no logo - Filtro de Idioma - Não mostrar fanart - Não mostrar poster - Mostrar dimensões da imagem - Explicações - Marcar Novos Filmes - Opções Para a Listagem dos Títulos - Tolerância de Erros: - Conferir Acerto do Título - Artigos Para Serem Ignorados - Mostrar Ano na Lista de Títulos - Ocultar Coluna de Extrathumbs - Ocultar Coluna de Legendas - Ocultar Coluna de Trailer - Ocultar Coluna de NFO - Ocultar Coluna de Fanart - Ocultar Coluna de Poster - Nome dos Arquivos - Usar <filme> para pastas com múltiplos filmes - YAMJ Compatible VIDEO_TS File Placement/Naming - - - - - Qualidade: - Largura: - Altura: - Redimensionar Automaticamente: - Tamanho Preferido: - Sobrescrever Existentes - Carregando as Configurações - - - - Trava Global - Travar Trailer - Travar Gênero - Travar Estúdio - Travar Avaliaçã - Travar Tagline - Travar Título - Travar Resumo - Travar Sinopse - Imagens - Não Gravar URLs no NFO - Selecionar Manualmente - MoviePosterDB.com - TheMovideDB.org - IMPAwards.com - Usar a Imagem Extraída - Meta Data não esta disponível para este episódio. Tente rescanear. - Evitar Spoilers - Quantidade: - Extrair do Filme ao Buscar - Usar o Resumo na Sinopse Se Ela Estiver Em Branco - - Buscar Somente Atores Com Imagens - Usar Classificação Indicativa - Buscar Todo o Elenco - Buscar Toda a Equipe - Usar a Certificação do: - Formato Duração - Usar Duração do Metadados - Buscar Metadados nos Arquivos de Video - Configura a aparência e modo de operação do Ember. - Remover Selecionado - Pasta Backdrops - Gravar Fanart automaticamente na pasta Backdrops - Deletar Existentes - - Salvar só as URLs - Selecionar Manualmente - - Em Buscas no Modo Aut. - - Ativar Suporte a Trailers - Extensões Não Empilhadas - - - - Extensões de Vídeo Válidos - Editar Fonte - Opções Diversas - Reconhecer pastas VIDEO_TS - Ignorar arquivos agrupados - MB - Ignorar arquivos menores que: - Redimensionar (Só o Extraído) - Preencher - Largura: - Altura: - Usar Tamanho Personalizado - Usar Resolução Nativa - Cache de Imagens - Em Buscas no Modo Aut. - Marcar Novas Séries - Manter o Cache de Imagens - Ativar Cache de Imagens - Selecione a pasta onde você deseja armazenar seus backdrops. - Sistema de Arquivos - - Arquivos e Fontes - Buscador - Dados - Buscador - Imagens e Trailers - Esticado - - - - - - - - - - Gerando Imagem dos Atores: - Todos - [none] - [Desativado] - Buscando por Posters: - Buscando por Fanart: - Buscando por Trailers: - Gerando Extrathumbs: - Verificando Detalhes do Filme: - Campos do Buscador - Global - Limite: - Mídia: - Mostra os filmes do arquivo selecionado. - Opções do Faltando Itens - Títulos Faltando Pôsteres - Títulos Faltando Fanart - Títulos Faltando o NFO - Títulos Faltando Trailers - Títulos Faltando Legendas - Títulos Faltando Extrathumbs - - - - Top 250 - - - Editora Metadata - Video - Audio - Legenda - Tipo - Baixar os Extrathumbs Como Especificado Abaixo: - Ordenar Filmes Por - Data da Inclusão - Fonte - Editar os Metadados do Arquivo - Codec - Varredura - Largura - Altura - Aspecto - Duração - Idioma - Canais - Preferido - Editor do Metadados do Arquivo - Aspecto - Interlaced - Progressive - Video - Audio - Legenda - Filme - Marcar Novos Episódios - Buscando Mídia (Filtro Atual - Perguntar): - Buscando Mídia (Filtro Atual - Auto): - Filtro Atual - Tipo de Arquivo Padrão - Extensão - Itens Selecionados: {0} - Buscar Metadados nos NFO Existentes - Temas - - - - - - Você selecionou {0} diretórios para abrir. Você tem certeza que quer fazer isto? - - - - - - - Título na Coletânea - YAMJ Compatible Sets Saving - Limpando base de dados... - Estreou: {0} - Remover do Banco de Dados - Estreou: {0} - Temporada: {0}, Episódio: {1} - Atualizar tudo - Temporada - Não Existe Informação Disponível Para Este Seriado - Não Existe Informação Disponível Para Este Episódio - Seriados - Temporada - Temporada Especiais - Editar o Episódio - Editar os detalhes para o Episódio selecionado. - Estreou: - Temporada: - Episódio: - Carregando Episódio - Gravar Como Poster - Editar a Série - Editar os detalhes para o Seriado selecionado. - Estreou: - Seriado - Episódio - Limpar o BD após atualizar a biblioteca - Ignorar última busca ao atualizar a bib. - Filtro de Série - Pasta/Arquivo - Filtro de Episódio - Pasta/Arquivo - Proxy - Ativar Proxy - Proxy URL: - Porta: - Credenciais - Ativar Credenciais - Domínio: - País da Classificação Etária - Seriados - Temporadas - Episódios - Poster da Série - Fanart da Série - Poster da Temporada - Fanart da Temporada - Poster do Episódio - Fanart do Episódio - [MISSING] - Editar o Regex - Regex de Série Correspondente - Regex de Temporada Correspondente: - Regex de Episódio Correspondente: - Aplicar para - Editar o Regex - Regex da Série - Regex do Episódio - Seriados - Regex - Seriado - Episódio - - - - Fonte de Séries - Selecionar a pasta pai para seu seriados. - - Doar - Limpar Base de Dados - Forçar Título: - Incluir nome da pasta na verificação do tipo da fonte - Colocar todos os arquivos em novas pastas após atualizar a biblioteca - Trailer Local: - Confirme os itens para serem apagados - Alternar Todos - Buscar - Preparando para atualização ... - Agora estamos prontos para atualizar. Ember será fechado para que a atualização pode começar.\n\nVocê tem certeza que quer continuar? - SIM - NAO - Upgrade - Certificação - URL - Estreou - Atores - Temporada {0} - Episódio - Estreou - Créditos - Tipo Preferido: - Atualizando a Série: - <h> = Horas, <m> = Minutos - Mostrar Episódios Faltantes - Construir título do episódio em vez de filtrar - Poster de Todas as Temporadas - Somente pegar imagens para o idioma selecionada - Também baixar imagens em Inglês - Chave API: - Ordem dos Episódios: - Buscar por informações da Série a cada: - Idioma Preferido: - Idiomas disponíveis localizados - Seriado - Temporada - Nenhum - Em Branco - Imagem - Texto - Semana - Bi-Semanal - Mês - Nunca - Sempre - Ajuste Modulo - Episódio # - Carregando todos os episódios: - Salvando todas as imagens: - Procurando no theTVDB: - Selecione as Imagens: - Baixando ZIP da Série: - Verificando os Seriados: - Verificando ps Episódios: - Você tem certeza que deseja apagar o Seriado selecionado e todos os episódios? - Você tem certeza que deseja apagar o Episoódio selecionado? - Você tem certeza que deseja apagar a Temporada selecionada e todos os episódios? - Buscar Seriado - Alterar Seriado - Apagar Seriado - Editar Temporada - Alterar Imagens - Apagar Temporada - Alterar Episódio - Apagar Episódio - Habilitado - Desabilitado - - Escritor - - - - - - Sinopse: - - - Poster Todas as Temporadas - - - - - - Doar - &Versões... - &Configuração dos Módulos... - Interface - Ao atualizar a biblioteca ordenar os títulos na ordem da criação dos arquivos - Ordem padrão dos episódios: - - Buscador - Trailers - Qualidade Preferida: - Página do TVDB - Módulos - Em seguida, vamos dizer ao Ember Media Manager onde localizar todos os seus seriados. Você pode adicionar quantas fontes desejar. - E, finalmente, vamos dizer ao Ember Media Manager quais arquivos de seriado procurar. Basta selecionar qualquer combinação de tipo de arquivos que você deseja que o Ember Media Manager carregue e grave. Você pode selecionar mais de um de por cada seção, se desejar. - Envie para PasteBin.com - Copiar para Clipboard - Um erro ocorreu quando tentou enviar dados para o Pastebin.com - Visualizador do Log de Erros - Antes de submeter relatórios de bugs, por favor, verifique se o erro já não foi relatado. Você pode ver uma lista de todos os bugs conhecidos aqui: - http://www.embermm.com/projects/embermm/issues - PasteBin URL: - Título Anterior: {0} | Novo Título: {1} - Dados Coletados - Episódios Adicionados: - Filmes Adicionados: - Um Erro Ocorreu - Novo filme adicionado - Novo episódio adicionado - Perfis RegEx de Seriados - Perfil do RegEx - Descrição - Miscelânea - Audio & Video Codec Mapping - Fonte do Video: - Downloads: - - - Ativar Cache dos Atores - Watch for ""Dump"" Folder - Editar os detalhes para a Temporada selecionada. - - Poster de Todas as Temporadas - These are Scraper specific settings and act as a filter.\nYou should also Checar Ember Global Settings. - * Inside Temporada Folder - Salvar Só a Informação Numérica no NFO - - Buscador - Imagens - Baner - Absoluto - Você tem certeza que deseja retornar para o padrão os filtros da lista da Série? - Você tem certeza que deseja retornar para o padrão os filtros da lista de Episódio? - Você tem certeza que deseja retornar para o padrão os filtros da lista de Filmes? - Você tem certeza que deseja retornar para o padrão a lista de Extensões de Vídeo Válidos? - Você tem certeza que deseja voltar a lista regex de Séries para o padrão? - >> Nenhum Item Selecionado << - - - - Buscar ao Selecionar o Filme - &Procurar por Atualizações - Nenhuma atualização neste momento - Perguntar ao Buscar o Filme - Atualizar Somente os Seriados - \ No newline at end of file diff --git a/Ember Media Manager/Langs/Spanish_(es_ES)-Help.xml b/Ember Media Manager/Langs/Spanish_(es_ES)-Help.xml new file mode 100644 index 0000000..66f7977 --- /dev/null +++ b/Ember Media Manager/Langs/Spanish_(es_ES)-Help.xml @@ -0,0 +1,368 @@ + + Si habilitado, el valor de las imágenes de género se mostrarán siempre. Si deshabilitado, el texto sólo será visible si pasas el mouse por encima de la imagen. + Si habilitado, Ember comprobará los nombres de carpeta para los tipos de fuentes. Si deshabilitado, Ember sólo comprobará el nombre de archivo. + Si habilitado, el fanart no se mostrará en la ventana principal. Esto el útil para accelerar el interfaz en ordenadores lentos. + Si habilitado, los poster no se mostrarán en la ventana principal. Esto es útil para accelerar el interfaz en ordenadores lentos. + Si habilitado, la dimensión de las imagenes (posters y fanart) se sobreimpresionarán encima de las imágenes. + Si habilitado, Ember buscará una nueva versión en cada arranque. + Si habilitado, los ficheros NFO se sobreescribirán al guardar. Si deshabilitado, se renombrarán a *.info + Si habilitado, todos los errores se registrarán en un fichero ubicado en <Directorio de Instalación de Ember>\Log\errlog.txt. + Selecciona el tema a aplicar para la disposición del episodio. + Selecciona el tema a aplicar para la disposición de la Serie de TV y la Temporada. + Selecciona el tema a aplicar para la disposición de película. + Descarga de addons para Ember, incluyendo módulos, temas, traducciones a otros idiomas, y exportación de plantillas. + Selecciona el idioma a usar por el interfaz de Ember. (Tienes que reiniciar Ember para que los cambios surjan efecto). + Limpiar todos los ficheros llamados "folder.jpg". + Limpiar todos los directorios "extrathumbs". + Limpiar todos los ficheros llamados "movies.tbn". + Limpiar todos los ficheros llamados <movie>.jpg. + Limpiar todos los ficheros llamados <movie>.tbn + Limpiar todos los ficheros llamados "movie.jpg". + Limpiar todos los ficheros llamados "fanart.jpg". + Limpiar todos los ficheros llamados "poster.jpg". + Limpiar todos los ficheros llamados <movie>-fanart.jpg. + Limpiar todos los ficheros llamados "poster.tbn". + Limpiar todos los ficheros llamados "movie.nfo". + Limpiar todos los ficheros llamados <movie>.fanart.jpg. + Limpiar todos los ficheros llamados <movie>.nfo. + Añadir automáticamente a la lista blanca todos los ficheros que tengan una extensión que esté en la lista de "Extensiones Válidas de Video" + Borrar la extensión seleccionada de la lista blanca. + Añadir la extensión introducida a la lista blanca. + Introduce una extensión para añadirla a la lista blanca. + Esta lista contiene todas las extensiones que serán excluidas durante la limpieza. + Si activado, Ember guardará la información de las colecciones en un formato compatible con YAMJ. Si desactivado, Ember guardará la información de las colecciones en un formato que es compatible con XBMC. + Si activado, cuando se haga click en un checkbox de la lista de películas, se usará un scrape no automático. Si activado, se usará un scrape automático. + Si activado, la películas nuevas serán "marcadas". Si desactivado, las películas nuevas se seguirán coloreando en verde hasta la siguiente actualización o hasta la siguiente sesión de Ember. + Selecciona el/los idioma/s de los géneros que quieres que Ember muestre. + Introduce el nivel de tolerancia que quieres que Ember use cuando compruebe el título. Cuanto más alto es el número, más permisivo es el algoritmo. 0 = desactivado + Activa esto para que Ember compruebe las diferencias entre el título de la película y el nombre de su fichero. Esto es útil para asegurarse de que la información scrapeada corresponde, en efecto, con el fichero de película seleccionado. + Borrar el token de ordenación seleccionado de la lista. + Añade el token de ordenación introducido a la lista. + Introduce un token de ordenación para añadir a la lista. + Una lista de todos los tokens de ordenación actuales. (Si el título de la película empieza con un token de ordenación, entonces el token de ordenación se moverá al final. Por ejemplo: Token de Ordenación = "El", Titulo = "El Caballero Oscuro", Resultado = "Caballero Oscuro, El") + Si activado, Ember mostrará el año de la película en la lista principal de películas. + Ocultar la columna de Extrathumbs en la lista principal de películas. + Ocultar la columna de subtítulos en la lista principal de películas. + Ocultar la columna Trailers en la lista principal de películas. + Ocultar la columna de Info en la lista principal de películas. + Ocultar la columna de Fanart en la lista principal de películas. + Ocultar la columna de Poster en la lista principal de películas. + Si activado, los items "<movie>.ext" sólo serán utilizados en directorios que tengan múltiples películas. Esto es útil cuando tienes una mezcla de películas con múltiples y únicos directorios y quieres reducir el número de ficheros extra. + Guardar el fichero de trailer como "<movie>[trailer].ext". + Guardar el fichero de trailer como "<movie>-trailer.ext". + Si activado, Ember guardará los meta ficheros en el directorio padre (compatible con YAMJ). Si desactivado, Ember guardará los meta ficheros directamente en el directorio VIDEO_TS (XBMC compatible). Esta configuración también afecta a los directorios BDMV. + Guardar ficheros nfo como "<movie>.nfo". + Guardar ficheros nfo como "movie.nfo". + Guardar ficheros fanart como "<movie>.fanart.jpg". + Guardar ficheros fanart como "<movie>-fanart.jpg". + Guardar ficheros fanart como "fanart.jpg" + Guardar ficheros poster como "folder.jpg" + Guardar ficheros poster como "poster.jpg" + Guardar ficheros poster como "poster.tbn" + Guardar ficheros poster como "<movie>.jpg" + Guardar ficheros poster como "movie.jpg" + Guardar ficheros poster como "<movie>.tbn" + Guardar ficheros poster como "movie.tbn" + Esta es la lista de las fuentes de video actuales. (Rutas que serán escaneadas en busca de ficheros de películas) + Esta es la lista de las fuentes de video actuales. (Rutas que serán escaneadas en busca de ficheros de películas) + Esta es la lista de las fuentes de video actuales. (Rutas que serán escaneadas en busca de ficheros de películas) + Esta es la lista de las fuentes de video actuales. (Rutas que serán escaneadas en busca de ficheros de películas) + Esta es la lista de las fuentes de video actuales. (Rutas que serán escaneadas en busca de ficheros de películas) + Esta es la lista de las fuentes de video actuales. (Rutas que serán escaneadas en busca de ficheros de películas) + Esta es la lista de las fuentes de video actuales. (Rutas que serán escaneadas en busca de ficheros de películas) + Borra la(s) fuente(s) seleccioandas de la lista de fuentes. + Añade un nuevo directorio a la lista de fuentes. + Redimensiona los ficheros de poster a la anchura introducida. + Redimensiona los ficheros de poster a la altura introducida. + Ajusta la calidad de los ficheros de poster. (0 = calidad original) + Redimensiona los ficheros de poster antes de guardarlos. + Selecciona el tamaño preferido de poster que quieres que se obtenga de los servidores de imágenes. Durante los escrapeos automáticos, Ember intentará encontrar, primero, un poster de ese tamaño. Si no se puede encontrar un poster del tamaño seleccionado, se usará en su lugar la primera imagen disponible. + Si activado, los ficheros de poster existentes serán sobrescritos si se han seleccionado nuevos. Si desactivado, los ficheros de poster solo se guardarán si todavía no existe uno. + Redimensionar los ficheros de fanart con la anchura introducida. + Redimensionar los ficheros de fanart con la altura introducida. + Si activado, Ember solo obtendrá el fanart del tamaño seleccionado. (NOTA: si no hay imágenes de fanart del tamaño seleccionado, no se obtendrán imágenes). + Ajustar la calidad de los ficheros de fanart. (0 = calidad original). + Redimensionar los ficheros de fanart antes de guardar. + Selecciona el tamaño preferido, de los fanart, que quieres que se obtenga de los servidores de imágenes. Durante los scrapeos automáticos, Ember intentará encontrar una imagen de fanart de ese tamaño primero. Si la imagen de fanart del tamaño seleccionado no se puede encontrar, se usará la primera imagen disponible en su lugar. + Si activado, los ficheros de fanart existentes se sobrescribirán sii hay nuevos seleccionados. Si desactivado, los ficheros de fanart sólo se guardarán si todavía no existe uno. + Si activado, Ember no guardará las URLs de las imágenes de poster y de fanart en los ficheros nfo. (Recomendado para compatibilidad con YAMJ) + Seleccionar imágenes mientras se escrapea fichero de una sola película. + Guardar imágenes en la cache de imágenes cuando se escrapean múltiples ficheros de películas. + Si activado, Ember no limpiará la cache de imagen entre sesiones. + Activar la cache de imagen de Ember. + Si activado y no hay disponible un fanart para la película seleccionada, Ember usará como imagen de fanart uno de los thumbnails extraídos. + Si activado, solo se extraerán extrathumbs de la primera mitad de la película para evitar "spoilers". + Introduce el número de extrathumbs que quieres que se genere automáticamente. + Si activado, Ember automáticamente extraerá el número introducido de extrathumbs, durante el escrapeo. + Introduce el dominio de tu proxy. (Opcional - no es necesario para la mayoría de proxies) + Introduce el password necesario para acceder a tu proxy. + Introudce el nombre de usuario necesario para acceder a tu proxy. + Activar si tu proxy requiere autenticación. + Introduce el puerto necesario para acceder a tu proxy. + Introduce la IP o la URL necesaria para acceder a tu proxy. + Si activado, Ember usará el proxy introducido para todas las comunicaciones de internet. + Mueve el filtro seleccionado arriba en la lista. (Los filtros se procesan en orden de arriba a abajo). + Mueve el filtro seleccionado abajo en la lista. (Los Filtros se procesan en orden de arriba a abajo). + Aplicar automáticamente las mayúsculas adecuadas en los títulos de las películas. (Ejemplo: "el caballero oscuro" se convierte en "EL Caballero Oscuro") + Borrar de la lista el filtro seleccionado. + Añadir el filtro introducido a la lista. + Introducir texto o regex para usar como filtro. Especial: "a[->]b" = reemplazar todas las ocurrencias de "a" con las de "b" (Ejemplo: ".[->]_" reemplazará todos los puntos en el título con guiones bajos.) + La lista de filtros actual que se usará al generar títulos para películas + Si activado, Ember mostrará películas a las que les falten extrathumbs cuando se utilice el Filtro de Faltan Items. + Si activado, Ember mostrará películas a las que les falten ficheros de subtítulos cuando se use el Filtro de Faltan Items. + Si activado, Ember mostrará las películas a las que les faltan trailers cuando se utilice el Filtro de Faltan Items. + Si activado, Ember mostrará las películas a las que les faltan ficheros de nfo cuando se utilice el Filtro de Faltan Items. + Si activado, Ember mostrará las películas a las que les faltan fanarts cuando se utilice el Filtro de Faltan Items. + Si activado, Ember mostrará las películas a las que les faltan posters cuando se utilice el Filtro de Faltan Items. + Si activado, Ember guardará automáticamente las nuevas imágenes de fanart en la carpeta de backdrops introducida. + Abrir un explorador de carpetas para seleccionar un directorio de backdrops. + La ruta del directorio de backdrops. + Borrar la extensión seleccionada de la lista de Extensiones Sin Apilar. + Añadir la extensión introducida a la lista de Extensiones Sin Apilar + Introduce una extensión para añadir a la lista de Extensiones Sin Apilar. + La lista de extensiones que Ember no apilará como ficheros únicos cuando se añadan a la biblioteca. + Borrar la extensión seleccionada de la lista de Extensiones de Video Válidas. + Añadir la extensión introducida a la lista de Extensiones de Video Válidas. + Introducir una extensión para añadirla a la lista de Extensiones de Video Válidas. + La lista de extensiones que Ember buscará cuando se actualice la biblioteca. + Editar la fuente seleccionada. + Si activado, Ember añadirá los nuevos ficheros por orden de fecha de modificación. Si desactivado, ember añadirá los nuevos ficheros a la biblioteca en orden alfabético. + Si activado, Ember ordenará todos los ficheros individuales en el directorio superior de la fuente dentro de su propia carpeta. + Si activado, Ember escaneará todos los directorios/ficheros independientemente de la última fecha de escaneo. Si desactivado, Ember sólo escaneará ficheros/directorios añadidos después de la última vez que se escanearon los ficheros. + Si activado, Ember limpiará la base de datos de películas después de cada escaneo. (Borra las entradas de ficheros que ya no existen o ya no coinciden con los valores de configuración) + If enabled, Ember will attempt to recognize VIDEO_TS folders even if the folder is not named "VIDEO_TS". If disabled, Ember will still handle VIDEO_TS folders if the folder is named "VIDEO_TS". This setting also applies to BDMV folders. + If enabled, Ember will not skip files smaller than the entered "Skip Files Smaller Than" size if they contain stacking markers (such as "CD1" or "DVD2"). + Ember will use the entered size as the minimum size for movie files. Any files smaller than this will be skipped when updating the library. + Ember will use the entered size as the minimum size for episode files. Any files smaller than this will be skipped when updating the library. + Select the preferred quality of the downloaded trailers. + If enabled, Ember will delete all existing trailers for the movie before saving the new one. + If enabled, existing trailer files will be overwritten when saving new ones. If disabled, new trailer files will only be saved if one does not already exist. + If enabled, trailer files will not be downloaded. Instead, the trailer url will be saved to the nfo. + If enabled, trailers will be downloaded while scraping a single movie. + If enabled, trailers will be downloaded during "All Items" scrapers. + Enable Ember's trailer support. + Select the size of the fanart you would like to download as extrathumbs. + If enabled, Ember will automatically download all fanart of the selected size as extrathumbs. + Resize extrathumbs to the entered width. + Resize extrathumbs to the entered height. + If enabled, Ember will add "black bars" to the edges of the extrathumbs if they are smaller than the entered size. + Resize extrathumbs to the entered size, regardless of the native resolution. + Save extrathumbs using the same resolution as the video. + The list of all current TV Show sources. (Paths that will be scanned for TV Show files) + The list of all current TV Show sources. (Paths that will be scanned for TV Show files) + The list of all current TV Show sources. (Paths that will be scanned for TV Show files) + The list of all current TV Show sources. (Paths that will be scanned for TV Show files) + Si activado, Ember añadirá los nuevos ficheros por orden de fecha de modificación. Si desactivado, ember añadirá los nuevos ficheros a la biblioteca en orden alfabético. + Si activado, Ember escaneará todos los directorios/ficheros independientemente de la última fecha de escaneo. Si desactivado, Ember sólo escaneará ficheros/directorios añadidos después de la última vez que se escanearon los ficheros. + If enabled, Ember will clean the TV Show database after each scan. (Remove entries for files that no longer exist or no longer match selected setting values) + Añade un nuevo directorio a la lista de fuentes. + Editar la fuente seleccionada. + Borra la(s) fuente(s) seleccioandas de la lista de fuentes. + Save All Seasons poster files as "season-all.jpg". + Save All Seasons poster files as "season-all.tbn". + Save episode fanart files as "<episode>.fanart.jpg". + Save episode fanart files as "<episode>-fanart.jpg". + Save episode poster files as "<episode>.jpg". + Save episode poster files as "<episode>.tbn". + Save season fanart files as "<season>.fanart.jpg". (Will only save inside the season directory, if it exists) + Save season fanart files as "<season>-fanart.jpg". (Will only save inside the season directory, if it exists) + Save season fanart files as "fanart.jpg". (Will only save inside the season directory, if it exists) + Save season fanart files as "folder.jpg". (Will only save inside the season directory, if it exists) + Save season poster files as "<season>.jpg". (Will only save inside the season directory, if it exists) + Save season poster files as "<season>.tbn". (Will only save inside the season directory, if it exists) + Save season poster files as "poster.jpg". (Will only save inside the season directory, if it exists) + Save season poster files as "poster.tbn". (Will only save inside the season directory, if it exists) + Save season poster files as "seasonX.tbn". (Example: season2.tbn) + Save season poster files as "seasonXX.tbn". (Example: season02.tbn) + Save show fanart files as "<show>.fanart.jpg". + Save show fanart files as "<show>-fanart.jpg". + Save show fanart files as "fanart.jpg". + Save show poster files as "<show>.jpg". + Save show poster files as "<show>.tbn". + Save show poster files as "poster.jpg". + Save show poster files as "poster.tbn". + Save show poster files as "folder.jpg". + Add the entered regex to the TV Show Regex list. + Enter the regex to use to detect the season number. + Choose if you would like to process the season regex against the directory name or the episode file name. + Enter the regex to use to detect the episode number. + Choose if you would like to process the episode regex against the directory name, the episode file name, or the results of the season regex. + Edit the selected TV Show regex. + Remove the selected TV Show regex from the list. + The list of current TV Show regex. + The list of current TV Show regex. + The list of current TV Show regex. + The list of current TV Show regex. + The list of current TV Show regex. + The list of current TV Show regex. + If enabled, episodes that are missing from your collection will be displayed in the episode list, but will be colored a light gray. + Hide the Info column from the episode list. + Hide the Fanart column from the episode list. + Hide the Poster column from the episode list. + Hide the Fanart column from the season list. + Hide the Poster column from the poster list. + Hide the Info column from the show list. + Hide the Fanart column from the show list. + Hide the Poster column from the show list. + If enabled, if an All Season poster exists for the selected show, it will be displayed on the right of the interface. + Select the region of the ratings you would like to display in the interface. + If enabled, Ember will not attempt to filter episode file names for titles and instead will build them from the show name, season, and episode until a proper title has been fetched. + Mueve el filtro seleccionado arriba en la lista. (Los filtros se procesan en orden de arriba a abajo). + Mueve el filtro seleccionado abajo en la lista. (Los Filtros se procesan en orden de arriba a abajo). + Automatically apply proper casing to episode titles. (Example: "stole beer from golfer" becomes "Stole Beer From Golfer") + Remove the selected filter from the filter list. + Add the entered filter to the filter list. + Enter a filter to add to the filter list. + The list of all current filters that will be used when generating titles for episodes. + Mueve el filtro seleccionado arriba en la lista. (Los filtros se procesan en orden de arriba a abajo). + Mueve el filtro seleccionado abajo en la lista. (Los Filtros se procesan en orden de arriba a abajo). + Automatically apply proper casing to episode titles. (Example: "my name is earl" becomes "My Name is Earl") + Remove the selected filter from the filter list. + Add the entered filter to the filter list. + Enter a filter to add to the filter list. + The list of all current filters that will be used when generating titles for shows. + If enabled, all English images will be retrieved, regardless of the selected language. + If enabled, only images for the preferred language will be retrieved. + Resize show poster files to the entered width. + Resize show poster files to the entered height. + Adjust the quality of the show poster files. (0 = original quality) + Resize show poster files before saving. + Select the preferred show poster type you would like to retreive from the image servers. During the show scraper, Ember will attempt to find a poster of this type first. If a poster of the selected size cannot be found, the first available image will be used instead. + If enabled, existing show poster files will be overwritten if new ones are selected. If disabled, show poster files will only be saved if a current one does not already exist. + Resize show fanart files to the entered width. + Resize show fanart files to the entered height. + Adjust the quality of the show fanart files. (0 = original quality) + Resize show fanart files before saving. + Select the preferred fanart size you would like to retreive from the image servers. During the show scraper, Ember will attempt to find a fanart image of this size first. If a fanart image of the selected size cannot be found, the first available image will be used instead. + If enabled, existing show fanart files will be overwritten if new ones are selected. If disabled, show fanart files will only be saved if a current one does not already exist. + Resize season poster files to the entered width. + Resize season poster files to the entered height. + Adjust the quality of the season poster files. (0 = original quality) + Resize season poster files before saving. + Select the preferred season poster type you would like to retreive from the image servers. During the show scraper, Ember will attempt to find a poster of this type first. If a poster of the selected size cannot be found, the first available image will be used instead. + If enabled, existing season poster files will be overwritten if new ones are selected. If disabled, season poster files will only be saved if a current one does not already exist. + Resize season fanart files to the entered width. + Resize season fanart files to the entered height. + Adjust the quality of the season fanart files. (0 = original quality) + Resize season fanart files before saving. + Select the preferred fanart size you would like to retreive from the image servers. During the show scraper, Ember will attempt to find a fanart image of this size first. If a fanart image of the selected size cannot be found, the first available image will be used instead. + If enabled, existing season fanart files will be overwritten if new ones are selected. If disabled, season fanart files will only be saved if a current one does not already exist. + Resize episode poster files to the entered width. + Resize episode poster files to the entered height. + Adjust the quality of the episode poster files. (0 = original quality) + Resize episode poster files before saving. + If enabled, existing episode poster files will be overwritten if new ones are selected. If disabled, episode poster files will only be saved if a current one does not already exist. + Resize episode fanart files to the entered width. + Resize episode fanart files to the entered height. + Adjust the quality of the episode fanart files. (0 = original quality) + Resize episode fanart files before saving. + Select the preferred fanart size you would like to retreive from the image servers. During the show scraper, Ember will attempt to find a fanart image of this size first. If a fanart image of the selected size cannot be found, the first available image will be used instead. + If enabled, existing episode fanart files will be overwritten if new ones are selected. If disabled, episode fanart files will only be saved if a current one does not already exist. + Enable scraping show rating. + Enable scraping show actors. + Enable scraping show studios. + Enable scraping show premiered date. + Enable scraping the Episode Guide URL. + Enable scraping show MPAA. + Enable scraping show plot. + Enable scraping show genre. + Enable scraping show title. + Enable scraping episode actors. + Enable scraping episode credits. + Enable scraping episode directors. + Enable scraping episode plot. + Enable scraping episode rating. + Enable scraping episode aired date. + Enable scraping episode title. + Enable scraping episode number. + Enable scraping season number. + If enabled, the episode title will only be scraped if a current one does not exist. + If enabled, the episode rating will only be scraped if a current one does not exist. + If enabled, the episode plot will only be scraped if a current one does not exist. + If enabled, the show plot will only be scraped if a current one does not exist. + If enabled, the show genre will only be scraped if a current one does not exist. + If enabled, the show studio will only be scraped if a current one does not exist. + If enabled, the show rating will only be scraped if a current one does not exist. + If enabled, the show title will only be scraped if a current one does not exist. + The list of extensions that have default meta data entries. + Enter an extension to create a default meta data entry. + Remove the default meta data for the selected extension from the default meta data list. + Edit the default meta data for the selected extension in the default meta data list. + Create default meta data for the entered extension and add the to the default meta data list. + If the selected language is found in the episode, a special icon indicator will be overlayed on the meta data audio icon. + If enabled, Ember will scan episode files for meta data. + Select the time to wait between updating cached TV information files. + Enter the TVDB API Key of the media center/player you use. This is not necessary for Ember to function. It is only used when saving the Episode Guide URL to the nfo. + Enter the mirror to use when retrieving information from theTVDB. + Click to download all available languages from theTVDB. + Select the preferred language to use when downloading show information and images. + Enable scraping movie certification. + Enable scraping movie Top 250 ranking. + Enable scraping movie production country. + Limit the number of scraped genres to the entered value. + Limit the number of scraped actors to the entered value. + Enable scraping movie other crew. (Scrape Full Crew must be enabled) + Enable scraping movie musicians. (Scrape Full Crew must be enabled) + Enable scraping movie producers. (Scrape Full Crew must be enabled) + Enable scraping movie writers. + Enable scraping movie studio. + Enable scraping movie runtime. + Enable scraping movie plot. + Enable scraping movie outline. + Enable scraping movie genre. + Enable scraping movie director. + Enable scraping movie tagline. + Enable scraping movie cast. + Enable scraping movie votes. + Enable scraping movie trailer url. + Enable scraping movie rating. + Enable scraping movie release date. + Enable scraping movie MPAA. + Enable scraping movie year. + Enable scraping movie title. + The list of extensions that have default meta data entries. + Enter an extension to create a default meta data entry. + Remove the default meta data for the selected extension from the default meta data list. + Edit the default meta data for the selected extension in the default meta data list. + Create default meta data for the entered extension and add the to the default meta data list. + If enabled, Ember will process *.ifo files for meta data information. + If the selected language is found in the movie, a special icon indicator will be overlayed on the meta data audio icon. + Enter the format you wish to use for the movie duration retrieved from scanning meta data. Note you can also use <0m> for 0 padding minutes + If enabled, Ember will scan movie files for meta data. + Use the movie duration retrieved from scanning meta data as the runtime of the movie. + If enabled, the movie outline will only be scraped if a current one does not exist. + If enabled, the movie plot will only be scraped if a current one does not exist. + If enabled, the movie trailer will only be scraped if a current one does not exist. + If enabled, the movie genre will only be scraped if a current one does not exist. + If enabled, the movie studio will only be scraped if a current one does not exist. + If enabled, the movie rating will only be scraped if a current one does not exist. + If enabled, the movie tagline will only be scraped if a current one does not exist. + If enabled, the movie title will only be scraped if a current one does not exist. + Select the region of the title you would like Ember to look for. + If enabled, Ember will check for alternative titles in the selected language. This is useful for fetching titles in your native language when scraping foreign films. + If enabled, Ember will use the outline for the plot if the plot is empty. + If enabled, Ember will only scrape cast entries that have valid images. + If enabled, Ember will use the certifcation of the selected region in place of the MPAA rating. + If enabled, all cast members will be scraped instead of only top billed. + If enabled, all crew members will be scraped (if individually enabled). + Select the region to filter certification ratings. + Only scrape the certificaton rating for the selected region. + If enabled, new shows will be "marked". If disabled, new shows will still be colored green until updated or the next Ember session. + If enabled, new episodes will be "marked". If disabled, new episodes will still be colored green until updated or the next Ember session. + Select the default ordering Ember will use when scraping information for a show. + If enabled, Ember will only save the value of the certification to the MPAA field. (Example: "Germany:18" will save as "18") + If enabled, Ember will attempt to download a banner (wide) image of the selected type as the default show poster. + If enabled, Ember will attempt to download a poster image of the selected type as the default show poster. + This will reset the show filters to the default list. WARNING: This WILL delete any custom filters you have entered. + This will reset the episode filters to the default list. WARNING: This WILL delete any custom filters you have entered. + This will reset the movie filters to the default list. WARNING: This WILL delete any custom filters you have entered. + This will reset the valid extensions to the default list. WARNING: This WILL delete any custom extensions you have entered. + This will reset the show regex to the default list. WARNING: This WILL delete any custom regex you have entered. + Enable Click Scrape on main screen column marks. + If enabled Ember will respect the FileBuilt-Date of videofile instead of using the current date when importing new movies into the database. That results in more stable searches when filtering for newest movies! + If enabled, the language field (video metadata) will not be updated. + If enabled, the language field (audio metadata) will not be updated. + If enabled, the certification/MPAA field will not be updated. + If enabled, MPAA values will be converted to FSK if no FSK values are found. Priority: FSK -> MPAA + Hide the Watched column from the main movie list. + diff --git a/Ember Media Manager/Langs/Spanish_(es_ES).xml b/Ember Media Manager/Langs/Spanish_(es_ES).xml new file mode 100644 index 0000000..81229e2 --- /dev/null +++ b/Ember Media Manager/Langs/Spanish_(es_ES).xml @@ -0,0 +1,892 @@ + + &Archivo + Salir + &Editar + & Configuración... + & Ayuda + & Acerca de... + Cargando Media: + &Herramientas + &Borrar Archivos + &Ordenar Archivos en Carpetas + Copia los fanart Existentes a la Carpeta de Backdrops + Deshacer metadata de Studios y Etiquetas + Nombre de la carpeta + Gestor de Colecciones. + Nombre de Archivo + Resultados de Temporada + Limpiar Todas las Caches + Recargar Todas las Películas + Cerrar + Géneros + Título + Recargar + Marca + Bloquea + Edita la Película + Detalles + >>Seleccionar Género<< + Añadir + Colección + Quita + (Re) Scrape Películas Seleccionadas + Cambia la Película + Abrir Carpeta Contenedora + Borrar la Película + Marcar Todo + Películas + Limpiar Filtros + General + Fuera de criterio + Elementos no encontrados + Duplicados + Específico + Bloqueado + Modificador + Y + O + Nuevo + Marcado + Año: + Fuente. + Género: + Filtros + Cancelando Scraper... + Cancelar Scraper + No Hay Información Disponible para esta Película + Certificación(es) + Fecha de Publicación + Refrescar + Meta Data + Ruta del Archivo + IMDB ID + Director + Reparto + Sinopsis + Argumento + Info + Scrape Media + Todas las Películas + Automático (Fuerza el Mejor Resultado) + Todos los Elementos + NFO Sólo + Póster Sólo + Fanart Sólo + Extrathumbs Sólo + Trailer Sólo + Meta Data Sólo + Preguntar (Escribir si no hay concordancia) + Películas Missing Items + Nuevas Películas + Películas Marcadas + Scraper a medida + Actualizar Biblioteca + Media Centers + Scrape/Descarga Data de Internet para múltiples películas + Escanea fuentes con nuevo contenido y limpia la biblioteca. + Envia un cmd a XBMC para actualizarle su biblioteca interna. + Marcar o Desmarcar todas las películas de la lista. + Busca los títulos tecleando aquí. + Ejecuta la película con el reproductor por defecto. + Reescanea y graba los meta data. + Muestra películas con IMDB IDs duplicados. + Muestra películas sólo con títulos fuera de tolerancia. + Muestra películas sólo con elementos missing. + Muestra sólo nuevas películas. + Muestra sólo películas marcadas. + Muestra sólo películas bloqueadas. + Muestra sólo películas del recurso seleccionado. + Selecciona Género... + Cancellando Todos los Procesos... + Actor + ¿Seguro que quieres continuar? + ADVERTENCIA: si continuas, los elementos NO de la lista-blanca serán borrados! + ADVERTENCIA: si continuas, todos los archivos siguientes serán borrados definitivamente: + ¿Estás seguro? + Desmarcar Todo + >>Múltiple<< + Desmarcar + Desbloquear + ADVERTENCIA: ESTO BORRARÁ DEFINITIVAMENTE LA PELÍCULA(S) DEL DISCO DURO + Actualizando Media: + Imposible al cargar directorios. Por favor revisa la configuración. + Duración {0} + Ahora seleccione el Idioma que quiera usar para que Ember scrape las series de TV. + Esto DEBE estar seleccionado para usar extrathumbs y las opciones de renombrado de movie.tbn, fanart.jpg... + Añadir Regex + Ejecutando tareas preliminares (Obteniendo Data) + Película desconocida ({0}) + {0} Votos + Cancelando limpieza de archivos. + Cancelar Limpiador + Cancelando copiado de backdrops + Cancelar Copia + Resetear + Actualizar Regex + Cancelando Scraper... + Cancelar Scraper + Scraping Media (Todas las películas - Preguntar): + Scraping Media (Todas las películas - Auto): + Limpiando Archivos: + Copiando Fanart a la carpeta Backdrops: + {0} como {1} + Scraping Media (Películas con elementos faltantes - Auto): + Scraping Media (Películas con elementos faltantes - Preguntar): + Scraping Media (Nuevas películas - Preguntar): + Scarping Media (Nuevas películas - Auto): + Scraping Media (Películas Marcadas - Preguntar): + Scraping Media (Películas Marcadas - Auto): + Re-scraping {0} + Scraping: + Escanendo Meta Data + Imposible el obtener detalles de la película. Por favor, comprueba tu conexión y prueba de nuevo. + Error al obtener detalles. + Actualizar {0} Solo + Actualizar + Solo + (Re) Scrape Temporada + (Re) Scrape Episodio + Poster + Fanart + Nfo + Trailer + Subtítulos + Extrathumbs + Nombre del Actor: + Personaje: + Miniatura del Actor (URL) + Nuevo Actor + Editar Actor + URL especificada no es válida. + URL Inválida + Introduce una URL para verificar: + Miniatura URL no especificada + (Re) Scrape Película + (Re) Scrape Películas Seleccionadas + Compilando lista de películas... + Cancelando Compilación... + Cancelar + Scrape Orden + Bloquear Todo + Desbloquear Todo + Nombre: + Descripción: + Versión del complemento. + Carpeta + Nombre de archivo + Nueva Carpeta + Nuevo Nombre de archivo + Versión Min. Ember: + OK + Previsualización + Introduce URL a Imagen: + Entrada Manual de Fanart + Entrada Manual de Poster + Visor de Imagen + Escalar + Tamaño Completo + &Formato / Sangría + &Parse + &Salvar + Editor Manual NFO | + Este no es un documento XML adecuado + El Archivo no es válido. + El Archivo es válido. + No es Válido + Válido + ¿Quieres guardar los cambios? + ¿Guardar? + Fuente de la Película + Fuente del Nombre + Fuente de la Ruta + Opciones de la Fuente + Detectar Sólo Una Película De Cada Carpeta* + Usar Nombre de Carpeta para el Listado Inicial + Escanea Recursivamente + Selecciona el directorio raíz para las carpetas de películas/archivos. + Establece Nombre: + Edita Set + Añade Nuevo Set + Hay una Nueva Versión Disponible + Falló al Cargar la Actualización + Clica Aquí + para visitar embermm.com + Ordena Archivos en Carpetas + Go + Estado + Introduce Ruta y clica "Go" para Empezar. + Ruta para ordenar: + Selecciona la carpeta con los archivos a ordenar. + Moviendo + ADVERTENCIA: Si continuas, todos los archivos se ordenarán en carpetas. + La carpeta seleccionada no existe. Por favor, introduce una ruta válida. + Carpeta no encontrada + Selecciona Estudio + Editar los detalles para la película seleccionada. + Trailer local no encontrado + Estudio: + URL del Trailer: + Créditos: + Descripción del MPAA rating: + Editado Manual + Actores: + Nombre + Personaje + Miniatura + MPAA Rating: + Fecha de publicación: + Certificaciones (s): + Duración: + Director: + Top 250: + Argumento: + Sinopsis. + Eslogan + Votos + Rating. + Título: + Quitar Poster + Cambiar Poster (Scrape) + Cambiar Poster (Local) + Quitar Fanart + Cambiar Fanart (Scrape) + Cambiar Fanart (Local) + Tienes extrathumbs en la cola para copiar a la carpeta de la película. + Transferir Ahora + Establece como Fanart + Extracción de Fotograma + Max. Ember Version: + Categoría: + Ruta para el nuevo pantallazo: + Pantallazo Actual: + El pantallazo tiene que ser un JPEG, igual o menor que 150 KB en tamaño, e igual o menor que 133x95 en dimensiones. + Versión: + Instalado: + Limpiar la cache + Cambiar Poster (Descargar) + Cambiar Fanart (Descargar) + Uno o mas recursos de cache se están usando y no se pueden borrar, en este momento. + No se puede limpiar la Cache + Tamaño: {0}x{1} + El trailer no se puede reproducir. Puede ser debido a una URL inválida o que no tienes el reproductor adecuado para el tipo de trailer. + Error al reproducir el trailer + Archivo Addon + Guardar + Reset + Filtro + Aplicar + Nuevo Addon + Año + Editar Addon - + Archivos Addon + Video + Audio + Desconocido + Cancelado + Addons + Login + Login al servidor de Addons + Obteniendo "{0}" Addons... + Logueando en... + Traducciones + Plantillas + Entrada inválida + Otro + Crea Nuevo + Borrar Addon + Para continuar con el borrado, necesitas confirmar que eres el propietario del addon. + Confirm Ownership + ¿Restart Ember Media Manager? + Cambios recientes requieren un restart de Ember Media Manager para completar. ¿Quieres hacer un restart de Ember Media Manager ahora? + Si + País + Título Original + + + + + + + + + + + + + + + + + + + + X-Largo + Largo + Medio + Pequeño + + + + + + + + + + + + + + + + + + + + + + + + + DVD + Inválido + + + + Existe + + + + + + Terminado + Hecho + + + Gestor de colecciones + Colecciones + Películas en el Set + Ninguno Seleccionado + Cargando Películas y Colecciones + Cancelando... + Añade y configura Movie Boxed Sets. + + Descarga + + + + + + + + + + + Scraper a medida + Crea un scraper a medida + Selección de filtros + Modo update + Modificadores + Empezar + Opciones + Otro miembros + Música Por + Productores + Guionistas + Estudio + Duración + Eslogan + Reparto + Votos + Puntuación + MPAA + Asistente de Inicio + < Retroceder + Avanzar > + Bienvenido a Ember Media Manager + CONSEJO: Las selecciones que contienen el texto <movie> significa que Ember Media Manager usará el nombre de archivo de la película. + Añadir Fuente + ¿A que no era tan difícil?. Cómo comentaba antes, puedes cambiar esa o cualquier otra opción en el diálogo Ajustes. + ¡Eso es!{0} ¡Ember Media Manager esta Listo! + Ruta + Recursivo + Usar nombre de Carpeta + Video Único + Primero, díle a Ember Media Manager dónde tienes localizadas tus películas. Puedes añadir tantas fuentes como quieras. + Es tu primera vez ejecutando Ember Media Manager o has actualizado a una nueva versión. Hay algunas cosas que Ember Media Manager necesita ajustar para funcionar correctamente. Este asistente te guiará para configurar Ember Media Manager para funcionar en tus selecciones.{0}{0}Sólo unas cuantas son contempladas en este asistente. Puedes cambiar éstas o cualquier otra cuando quieras en "Ajustes" del menú "Editar". + Ahora que Ember Media Manager sabe DÓNDE buscar los ficheros, necesitamos decirle QUÉ ficheros tiene que buscar. Simplemente, selecciona cualquier combinación de tipos de fichero de los que quieres que Ember Media Manager cargue. Puedes seleccionar más de uno en cada sección, si así lo deseas. + Algunas opciones en las que puedes estar interesado:{0}-{0}Filtros Personalizados - Si en tus ficheros de películas tienes cosas como "DVDRip", "BlueRay", "x264", etc. en su directorio o nombre y quieres filtrar los nombres cuando los cargues en la lista multimedia, puedes utilizar la opción Filtros Personalizados. El filtro personalizado es compatible con RegEx para máxima usabilidad.{0}{0}imágenes - Esta sección te permite seleccionar de qué sitios web "escrapear" las imágenes así como seleccionar un tamaño preferido para las imágenes que Ember Media Manager elige.{0}{0}Bloqueos - Esta sección te permite "bloquear" cierta información para que así no sea actualizada incluso si re-escrapeas una película. Esto es útil si manualmente editas el título, el resumen, o el argumento de una película y deseas mantener tus cambios. + Estas seguro que quieres quitar las rutas seleccionadas? Esto quitará de de la base de datos de Ember las películas. + Meta Data no está disponible para esta película. Prueba en re-escanear. + Ajustes + Conexión + + + + Nombre de usuario: + Contraseña: + + + Miscelánea + Idioma de la interfaz: + Habilita Animación del Panel + Comprueba las Actualizaciones + Sobre-escribe los *.nfos no conforme + (sin chequear, los *.nfo no conforme se renombrarán en <filename>.info) + Log Errors a Archivos + Muestra un "Overlay" si el video contiene alguna cadena de video con los siguientes Idiomas: + Borrar Archivos + Standard + Experto + Lista blanca de extensiones de video + Extensiones de la lista blanca: + PRECAUCIÓN: Usar el limpiador en modo experto puede borrar archivos requeridos. Usar con precaución la herramienta. + Descargar Addons... + Archivo + + + Descargando Archivos... + + + + Filtros de Carpeta / Archivo + Convertir nombres a Proper Case + Muestra Siempre el texto del Género + Filtro de Idioma de Género + No mostrar Fanart + No mostrar Póster + Mostrar las dimensiones de la imagen + Ayuda + Marcar Nuevas Películas + Opciones de Media List + Tolerancia a coincidencias: + Comprueba Títulos sugeridos + Ordena Tokens a ignorar + Muestra Año en la lista de Películas + Oculta la columna Extrathumb + Oculta la columna Subtítulos + Oculta la columna Trailer + Oculta la columna Info + Oculta la columna Fanart + Oculta la columna Póster + Nombrado de Archivos + Usa <movie> sólo para carpetas con varias películas + Compatibilidad con el nombrado y ubicación de YAMJ VIDEO_TS + Compatible con ls Nomenclatura/Posición de ficheros de VIDEO_TS de Frodo + + + + Calidad: + Anchura Máxima: + Altura Máxima: + Redimensiona automáticamente: + Tamaño preferido: + Sobrescribe Existente + Cargando Ajustes... + + + + Bloqueos Globales + Bloquea Trailer + Bloquea Género + Bloquea Estudio + Bloquea Puntuación + Bloquea Eslogan + Bloquear Titúlo + Bloquear Resumen + Bloquear Argumento + Imágenes + No Guardar URLs en Nfo + Obtener en Scrape Único + MoviePosterDB.com + TheMovideDB.org + IMPAwards.com + Usar si no se encuentra Fanart + Meta Data no está disponible para este episodio. Intenta reescanear. + Sin Spoilers + Número a Crear: + Extraer Durante Scrapers + Usar Resumen como Argumento si el Argumento está vacío + + Scrapear Sólo Actores Con Imágenes + Usar Certificación para MPAA + Escrapear el Reparto Completo + Scrapear el Elenco Completo + Usar el Idioma de Certificación: + Formato de Duración + Usa Duración para Tiempo total + Escanear Meta Datos + Configura la apariencia y uso de Ember. + Quita los seleccionados + Carpeta de Backdrops + Guarda los Fanart en la carpeta Backdrops automáticamente + Borra Todos los existentes + + Obtén solo URLs al Scrapear + Obtén durante Scrape único + + Obtén durante Scrape automatizado + + Activa soporte para Trailers + No Stack Extensiones + + + + Extensiones de Video Válidas + Edita Fuente + Opciones variadas + Reconoce las carpetas VIDEO_TS + Omite el chequeo del tamaño de los archivos Stacked + MB + Omite archivos más pequeños que: + Redimensionado (Fotogramas Extraídos) + Justificación + Anchura + Altura + Usa tamaño personalizado + Usa Resolución Nativa + Caching + Usa Durante Scrapers Automatizados + Marca Nuevas Series + Caché de Imágenes Persistente + Usa la Caché de Imagen + Selecciona la carpeta dónde quieres almacenar tus backdrops. + Archivos de Sistema + + Archivos y Fuentes + Scrapers-Data + Scrapers - Imágenes & Trailers + Ancho + + + + + + + + + + Generando Caché de Actores + Todo + [ninguno] + [Desabilitado] + Scraping Pósters: + Scraping Fanart: + Scraping Trailers: + Generando Extrathumbs: + Verificando Detalles de Película + Scraper Fields - Global + Límite: + Fuente de Archivo: + Muestra películas sólo de la fuente seleccionada. + Filtro de Elementos Faltantes + Marcar para Poster + Marcar para Fanart + Marcar para NFO + Marcar para Trailer + Marcar para Subtítulos + Marcar para Extrathumbs + + + + Top 250 + + + Editor de Meta Datos + Streams de Video + Streams de Audio + Streams de Subtítulos + Tipo de Stream + Descargar todos las imágenes Fanart del siguiente tamaño como Extrathumbs: + Ordenación Extra + Fecha Añadida + Fuentes + Editar Meta Datos + Codec + Tipo de Escaneo + Anchura + Altura + Aspecto + Duración + Idioma + Canales + Preferidos + Editor de Stream + Ratio de Aspecto + Entrelazado + Progresivo + Stream de Video + Stream de Audio + Stream de Subtítulo + Tema de Película + Marcar nuevos episodios + Scraping Media (Filtro actual - Preguntar): + Scraping Media (Filtro Actual - Automático): + Filtro Actual + Por defecto por Tipo de Fichero + Tipo de Fichero + Items seleccionados: {0} + Activar Parseo IFO + Temas + + + + + + Has seleccionado {0} directorios para abrir. ¿Estás seguro qué quieres hacer esto? + + + + + + + Ordenar Título + Guardado de Colecciones compatible con YAMJ + Limpiando Base de Datos... + Estrenado: {0} + Borrado de la Base de datos + Emitido: {0} + Temporada: {0}, Episodio: {1} + Actualizar Todo + Temporada + No hay información disponible para Esta Serie + No hay información Disponible para Este Episodio + Series de TV + Temporada + Especiales de Temporada + Editar Episodio + Editar los detalles del episodio seleccionado. + Emitido: + Temporada: + Episodio: + Cargar Episodio + Guardar como Poster + Editar Serie + Editar los detalles de la Serie seleccionada. + Estreando: + Tema de Serie de TV + Tema de Episodio + Limpiar la base de datos después de actualizar la biblioteca + Ignorar la última fecha de escaneo cuando se actualice la biblioteca + Directorio de Serie/Filtros de Nombre de Fichero + Directorio de Episodio/Filtros de Nombre de Fichero + Proxy + Activar Proxy + URL del proxy: + Puerto del Proxy: + Credenciales + Activar Credenciales + Dominio: + Región del Rating de TV + Series + Temporadas + Episodios + Mostrar Posters + Mostrar Fanart + Posters de Temporada + Fanart de Temporada + Posters de Episodios + Fanart de Episodio + [AUSENTE] + Editar Regex + Regex Match para Serie + Regex Match para Temporada + Regex Match para Episodio: + Aplicar A + Editar Regex + Regex para Serie + Regex para Episodio + Series de TV + Regex + Serie de TV + Episodio de TV + + + + Fuente de TV + Selecciona el directorio padre de tus directorios/ficheros de Series de TV. + + Donar + Limpiar Base de Datos + Forzar Idioma del Título: + Incluir el Nombre del Directorio en la Comprobación del Tipo de Fuente + Ordenar ficheros en directorios antes de cada actualización de la biblioteca + Trailer Local: + Confirmar Items Para Ser Eliminados + Conmutar Todos los Ficheros + Re-Scrape + Preparando para actualizar... + Ahora estamos preparados para actualizar. Ember se cerrará para la Actualización pueda comenzar.\n\n¿Quieres continuar? + SI + NO + Actualizar + Certificación + URLGuíaDeEpisodios + Estrenado + Actores + Temporada {0} + Episodio + Emitido + Creditos + Tipo Preferido: + Refrescando Serie: + <h>=Horas <m>=Minutos <s>=Segundos + Mostrar Episodios Ausentes + Construir el Título del Episodio en lugar de Filtrarlo + Todos los Posters de la Temporada + Sólo obtener las imágenes del Idioma Seleccionado + También obtener las imágenes en Inglés + API Key: + Ordenación de Episodio: + Re-Descargar Información de la Serie Cada: + Idioma preferido: + Traer los Idiomas Disponibles + Serie + Temporada de TV + Ninguno + Vacío + Gráfico + Texto + Semana + Bi-Semanal + Mes + Nunca + Siempre + Configuración de Módulos + Episodio # + Cargando Todos los Episodios: + Salvando Todas las Imágenes: + Buscando en theTVDB: + Seleccionar Imágenes: + Downloading Show Zip: + Verificando Serie TV: + Verificando Episodio TV: + ¿Estás seguro que quieres borrar la serie(s) de TV seleccionada y todos sus episodios? + ¿Estás seguro que quieres borrar el Episodio seleccionado? + ¿Estás seguro que quieres borrar la temporada seleccionada y todos sus episodios? + (Re)Scrape Serie TV + Cambiar Serie TV + Borrar Serie TV + Editar Temporada + Cambia Imágenes + Borrar Temporada + Cambia Episodio + Borra Episodio + Habilitado + Deshabilitado + + Guionista + + + + + + Sumario del Argumento + + + Poster de Todas las Temporadas + + + + + + Donar + &Versiones... + &Módulo Ajustes + Interfaz + Escanea acorde a lo escrito la última vez + Orden de Episodios por Defecto + + Scraper - Trailers + Calidad Preferida + TVDB Mirror + Módulos + Siguiente, indiquemos a Ember Media Manager donde poner todas tus Series de TV. Puedes añadir tantas fuentes como quieras. + Y por último, indiquemos a Ember Media Manager qué ficheros de Series de TV tiene que buscar. Simplemente selecciona cualquier combinación de tipos de ficheros que quieras que Ember Media Manager cargue y grabe. Puedes seleccionar más de uno para cada sección si quieres. + Enviar a PasteBin.com + Copiar al Portapapeles + Ocurrió un error al intentar enviar datos a Pastebin.com + Visor de Registro de Errores + Antes de enviar registros de errores, por favor, verifica que el bug no se haya denunciado ya. Puedes ver la lista de todos los bugs conocidos aquí: + http://www.embermm.com/projects/embermm/issues + URL de PasteBin: + Antiguo Título: {0} | Nuevo Título: {1} + Película Scrapeada + Episodio Añadido: + Película Añadida: + Ha habido un error + Nueva Película Añadida + Nuevo Episodio Añadido + Perfiles RegEx de TV + Perfil RegEx + Descripción + Miscelánea + Mapeo de Codecs de Audio y Video + Fuente de Video: + Descargas: + + + Activar Miniaturas de Actor + Vigilar un Directorio ""Dump"" + Editar los detalles de la temporada seleccionada. + + Mostrar Poster de Todas las Temporadas + Estos son configuraciones específicas del Scraper que funcionan como un filtro.\n Tienes que comprobar también los Ajustes Globales de Ember. + * Dentro del Directorio de Temporada + Sólo guardar el valor en NFO + + Scrapers - Imágenes + Banner + Absoluta + ¿Estás seguro de que quieres volver a la lista por defecto de los filtros de series? + ¿Estás seguro de que quieres volver a la lista por defecto de los filtros de episodios? + ¿Estás seguro de que quieres volver a la lista por defecto de los filtros de películas? + ¿Estás seguro de que quieres volver a la lista por defecto de las extensiones de video válidas? + ¿Estás seguro de que quieres volver a la lista por defecto de los regex de series? + >> Item No Seleccionado << + + + + Habilitar Scrape con Click + &Comprobar Actualizaciones + No hay Actualizaciones de momento + Preguntar a Scrapear con Click + Scraping Media (Todas las Películas - Skip): + Configuración Básica + Creando opciones por defecto... + Cargando módulos... + Creando GUI... + Cargando base de datos... + Ejecutando Módulo... + Cargando Media... + Línea de Comandos Scrapeando... + Cargando traducciones... + Posicionando controles... + Configurando menus... + Versión {0}.{1}.{2}.{3} + Meta Datos + XBMC Frodo + Top 250 + EmberMM.com &Wiki + + + + + Usar fecha de creación del archivo de video + + + + + Bloquear Idioma (video) + Bloquear Idioma (audio) + Bloquear MPAA/Certificación + Usar MPAA como Alternativa para el Rating FSK + Visto + Oculta la Columna Visto + Bloquear Subtítulo + Reintentar + Abortar + Compatibilidad con Base de Datos + ¡La Base de Datos no es compatible! + ¡Tu base de datos no es compatible con esta versión de Ember!\n\nTu base de datos se guardará como "Media.emm_old" y se creará una base de datos vacía.\n\nPara adaptar tu base antigua sigue este tutorial. + diff --git a/Ember Media Manager/Langs/html/English_(en_US).html b/Ember Media Manager/Langs/html/English_(en_US).html new file mode 100644 index 0000000..ceb9434 --- /dev/null +++ b/Ember Media Manager/Langs/html/English_(en_US).html @@ -0,0 +1,292 @@ +<$NEED_POSTERS> +<$NEED_FANART> +<$NEED_FLAGS> + + + + + +:.My Movie Collection.: + + + + + + + + + +<$MOVIE> +
+
+
+ +
+

<$MOVIENAME> (<$YEAR>)

+

<$TAGLINE>

+
+

Rating:  <$RATING>  (<$VOTES> Votes)

+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

Director:

<$DIRECTOR>

Genre:

<$GENRES>

Runtime:

<$RUNTIME>

VideoBitrate:

<$VIDEOBITRATE>

AudioBitrate:

<$AUDIOBITRATE>

FSK:

<$MPAA> years

+
+ +
+ +
+ +
+

Links: +Show IMDB Info +Show Trailer +Film-Ordner öffnen +


+

<$PLOT>

+
+ + + + + +
+ + + + +
+ +<$/MOVIE> + + + + + + + + + + + + + + + + + + + + diff --git a/Ember Media Manager/Langs/html/German_(de_DE).html b/Ember Media Manager/Langs/html/German_(de_DE).html new file mode 100644 index 0000000..59f0f3f --- /dev/null +++ b/Ember Media Manager/Langs/html/German_(de_DE).html @@ -0,0 +1,294 @@ +<$NEED_POSTERS> +<$NEED_FANART> +<$NEED_FLAGS> + + + + + +:.My Movie Collection.: + + + + + + + + + +<$MOVIE> +
+
+
+ +
+

<$MOVIENAME> (<$YEAR>)

+

<$TAGLINE>

+
+

Wertung:  <$RATING>  (<$VOTES> Stimmen)

+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

Regisseur:

<$DIRECTOR>

Genre:

<$GENRES>

Länge:

<$RUNTIME>

VideoBitrate:

<$VIDEOBITRATE>

AudioBitrate:

<$AUDIOBITRATE>

FSK:

<$MPAA> Jahre

+
+ +
+ +
+ +
+

Links: +IMDB-Eintrag anzeigen +Trailer anzeigen +Film öffnen +


+

<$PLOT>

+
+ + + + + +
+ + + + +
+ +<$/MOVIE> + + + + + + + + + + + + + + + + + + + + diff --git a/Ember Media Manager/Langs/html/function.js b/Ember Media Manager/Langs/html/function.js new file mode 100644 index 0000000..7f7d4ac --- /dev/null +++ b/Ember Media Manager/Langs/html/function.js @@ -0,0 +1,778 @@ +"use strict"; + +//Area of global Array Declaration - used to save the EMBER Variables from HTML-Template to Javascript global arrays +var version = "version 1.70"; +var iCount; +var DataSource = []; +var DataURL = []; +var DataFilename = []; +var DataBild = []; +var DataName = []; +var DataGenre = []; +var DataDate = []; +var DataFanart = []; +var DataYear = []; +var DataRating = []; +var DataActors = []; + +var DataVidBitrate = []; +var DataAudBitrate = []; +var DataWatched = []; +var DataThreed = []; +var DataPlot = []; +var DataNow; + +//Here are string fragments which will be fused together with function-variables to build the whole site navigation dynamically +var navilinks_full, navilinks, moviewall, moviewall_full; +var string_navigation_1 = '
  • '; +Control1 = document.getElementById("movie" + selectedmovie); +Control1.style.display = 'block'; +} + +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +//---- Function for displaying last modified date on template header ----- Erweiterung von User cimex Vielen Dank!! +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +function func_DisplayLastModified() +{ +var T; +T = document.getElementById("div_displaylastmodified"); +T.innerHTML = '

    Update: ' + DataNow + '

    '; +} + +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +//---- Function for building left and right navigation of site----- +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +function func_BuildNavigation(selectedmovie) +{ +var y, Control1, Control2, Control3, i, arr2str, result1, result2,result3,result4; +Control1 = document.getElementById("navigation"); +Control2 = document.getElementById("div_moviewall"); +Control3 = document.getElementById("div_moviecounter"); +var myregexp1 = new RegExp('1080'); +var myregexp2 = new RegExp('720'); +var myregexp3 = new RegExp('576'); +var myregexp4 = new RegExp('default'); +var myregexp5 = new RegExp('1'); +var bluraycounter = 0; +var dvdcounter = 0; +var othercounter = 0; +var moviecounter = 0; +var watchedcounter = 0; +var threedcounter = 0; + +//execute only for buildung up navigation for ALL movies (PageLoad, Reset-Button)! +if (selectedmovie === 0) { +navilinks_full = ""; // deletes all entries of left sidebar +moviewall_full = ""; // deletes all entries of right sidebar +y = iCount; // this will make sure to add navigation of ALL movies! +func_ShowDetails(1); +} +else // only navigation elements of one specific movie will be added! +{ +y = selectedmovie; +} +//Navigation builder for left and right sidebar +for (i = selectedmovie;i <= y; i++) +{ +if (i === 0) { +i = 1; } +arr2str = DataSource[i].toString(); +result1 = arr2str.search(myregexp1); +result2 = arr2str.search(myregexp2); +result3 = arr2str.search(myregexp3); +result4 = arr2str.search(myregexp4); + + if (DataThreed [i].toString() !== "") // Returns true if not empty("") or zero (0) -> MULTIVIEW<>"" or MULTIVIEW<>"0" --> Found: 3D Movie! + { + threedcounter = threedcounter + 1 + } + +if (result1 !== -1 || result2 !== -1) // Found something! Bluray +{ + if (DataWatched[i].toString() !== "") // Returns true if not empty("") or zero (0) -> PLAYCOUNT<>"" or PLAYCOUNT<>"0" --> Found: Watched Movie! + { + //Navigation Build: Include Watched Movie/HD Icon! + navilinks = string_navigation_1HD1 + i + string_navigation_2 + string_tabindexstart + i + string_tabindexend + DataName[i] + string_navigation_3 + string_navigation_3HD2 + string_watched3 + string_navigation_4; + watchedcounter = watchedcounter + 1; + } + + else + { + //Navigation Build: Include HD Icon! + navilinks = string_navigation_1HD1 + i + string_navigation_2 + string_tabindexstart + i + string_tabindexend + DataName[i] + string_navigation_3 + string_navigation_3HD2 + string_navigation_4; + } +bluraycounter = bluraycounter + 1; +} +else if(result3 !== -1 || result4 !== -1) // Found something! DVD + { + + if (DataWatched[i].toString() !== "") // Returns true if not empty("") or zero (0) -> PLAYCOUNT<>"" or PLAYCOUNT<>"0" --> Found: Watched Movie! + { + //Navigation Build: Include Watched Movie/DVD Icon! + navilinks = string_navigation_1DVD1 + i + string_navigation_2 + string_tabindexstart + i + string_tabindexend + DataName[i] + string_navigation_3 + string_navigation_3DVD2 + string_watched3 + string_navigation_4; + watchedcounter = watchedcounter + 1; + } + else + { + //Navigation Build: Include DVD Icon! + navilinks = string_navigation_1DVD1 + i + string_navigation_2 + string_tabindexstart + i + string_tabindexend + DataName[i] + string_navigation_3 + string_navigation_3DVD2 + string_navigation_4; + } +dvdcounter = dvdcounter + 1; +} + +else +{ + + if (DataWatched[i].toString() !== "") // Returns true if not empty("") or zero (0) -> PLAYCOUNT<>"" or PLAYCOUNT<>"0" --> Found: Watched Movie! + { + navilinks = string_navigation_1 + i + string_navigation_2 + string_tabindexstart + i + string_tabindexend + DataName[i] + string_navigation_3 + string_navigation_3 + string_watched3 + string_navigation_4; + watchedcounter = watchedcounter + 1; + } + else + { + //Navigation Build: Movie is not DVD, not Bluray and also not watched --> no icons, basic string + navilinks = string_navigation_1 + i + string_navigation_2 + string_tabindexstart + i + string_tabindexend + DataName[i] + string_navigation_3 + string_navigation_3 + string_navigation_4; + } + +othercounter = othercounter + 1; +} +//Navigation builder to build whole page dynamically +navilinks_full = navilinks_full + navilinks; +moviewall = string_moviewalllink_1 + i + string_moviewalllink_2 + i + string_moviewalllink_3 + string_moviewallpic_1 + DataBild[i] + string_moviewallpic_2 + DataName[i] + string_moviewallpic_3 + DataName[i] + string_moviewallpic_4; +moviewall_full = moviewall_full + moviewall; +} +if (selectedmovie === 0) { // only needed when function not called from another function +selectedmovie = 1; +moviecounter = dvdcounter + bluraycounter + othercounter; +Control1.innerHTML = '
      ' + navilinks_full + '

    ' + version + '

    '; +Control2.innerHTML = moviewall_full; +Control3.innerHTML = '

    Total: ' + moviecounter + '   Blurays: ' + bluraycounter + '  DVD: ' + dvdcounter + '  3D: ' + threedcounter + '  Rest: ' + othercounter + '  Watched: ' + watchedcounter + '

    '; +} +} + + +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +//---- Function: Custom Search [Date]----- +// Displays latest added movies - result also considers watched/unwatched state of checkboxes! +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +function func_SearchDate() { +var todaydate = new Date(); //Date Object +var tt = todaydate.getDate(); //today: day +var mm = todaydate.getMonth() + 1; //today: month +var jjjj = todaydate.getFullYear(); //today: year +var timestamp_now = Date.UTC(jjjj, mm, tt); // today: timestamp +var timestamp_movie = new Array(iCount); +timestamp_movie[0] = new Array(2); +var doOnce = 0; +var Control1 = document.getElementById("navigation"); +var Control2 = document.getElementById("div_moviewall"); +var i; +navilinks_full = ""; // deletes all entries of left sidebar +moviewall_full = ""; // deletes all entries of right sidebar + +// Loop through all entries and search for dates lower than "selectedday" +for (i = 1;i <= iCount; i++){ +var moviedate = DataDate[i].split("."); // i.e. moviedate[0]=24; moviedate[1]=12; moviedate[2]=2003; +timestamp_movie[i-1] = [i,Date.UTC(moviedate[2], moviedate[1], moviedate[0])]; // Timestamp in ms +} + +// Array sorted with Quicksort function/ ascending --> Newest Movies first! +timestamp_movie.quicksortCol(0, (timestamp_movie.length-1), 1); + +//Loop through all movies and build navigation with new sorted moviearray! +for (i = iCount;i > 0; i--){ + + var z = timestamp_movie[i-1][0]; +// Also consider watched/unwatched state of checkboxes and display accordingly ! + // if watched checkbox is checked -> show watched movies + if(document.getElementById('unwatched').checked == false && document.getElementById('watched').checked == true) + { + if (DataWatched[z].toString() !== "") // Returns true if not empty("") or zero (0) -> PLAYCOUNT<>"" or PLAYCOUNT<>"0" + { + func_BuildNavigation(z); // Calls LoadPage Function and add match to left and right navigation string variable! + } + } + // if unwatched checkbox is checked -> show unwatched movies + else if(document.getElementById('unwatched').checked == true && document.getElementById('watched').checked == false) + { + if (DataWatched[z].toString() == "") // Returns true if empty("") and zero (0) -> PLAYCOUNT="" or PLAYCOUNT="0" + { + func_BuildNavigation(z); // Calls LoadPage Function and add match to left and right navigation string variable! + } + } + // in other case if both checkboxes unchecked/checked show all movies unfiltered... + else + { + func_BuildNavigation(z); // Calls LoadPage Function and add match to left and right navigation string variable! + } +} + +Control1.innerHTML = '
      ' + navilinks_full + '
    '; +Control2.innerHTML = moviewall_full; +} + +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +//---- Function: Custom Search [Year]----- +// Displays all movies sorted, beginning with newest - result also considers watched/unwatched state of checkboxes! +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +function func_SearchYear() { +var doOnce = 0; +var Control1 = document.getElementById("navigation"); +var Control2 = document.getElementById("div_moviewall"); +var i; +var year_movie = new Array(iCount); +year_movie[0] = new Array(2); +navilinks_full = ""; // deletes all entries of left sidebar +moviewall_full = ""; // deletes all entries of right sidebar + + +// Populate array with timestamps of all movies +for (i = 1;i <= iCount; i++){ +year_movie[i-1] = [i,DataYear[i]]; // Timestamp in ms +} + +// Array sorted with Quicksort function/ ascending +year_movie.quicksortCol(0, (year_movie.length-1), 1); + +//Loop through all movies and build navigation with new sorted moviearray! +for (i = iCount;i > 0; i--){ + + var z = year_movie[i-1][0]; + + // Also consider watched/unwatched state of checkboxes and display accordingly ! + // if watched checkbox is checked -> show watched movies + if(document.getElementById('unwatched').checked == false && document.getElementById('watched').checked == true) + { + if (DataWatched[z].toString() !== "") // Returns true if not empty("") or zero (0) -> PLAYCOUNT<>"" or PLAYCOUNT<>"0" + { + func_BuildNavigation(z); // Calls LoadPage Function and add match to left and right navigation string variable! + } + } + // if unwatched checkbox is checked -> show unwatched movies + else if(document.getElementById('unwatched').checked == true && document.getElementById('watched').checked == false) + { + if (DataWatched[z].toString() == "") // Returns true if empty("") and zero (0) -> PLAYCOUNT="" or PLAYCOUNT="0" + { + func_BuildNavigation(z); // Calls LoadPage Function and add match to left and right navigation string variable! + } + } + // in other case if both checkboxes unchecked/checked show all movies unfiltered... + else + { + func_BuildNavigation(z); // Calls LoadPage Function and add match to left and right navigation string variable! + } +} + +Control1.innerHTML = '
      ' + navilinks_full + '
    '; +Control2.innerHTML = moviewall_full; +} + +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +//---- Function: Custom Search [Genre]----- +// Displays all movies containing the selected genre - result also considers watched/unwatched state of checkboxes! +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +function func_SearchGenre(selectedgenre) { + +var myregexp = new RegExp(selectedgenre); // NEW RegeExp Object +var doOnce = 0; +var Control1 = document.getElementById("navigation"); +var Control2 = document.getElementById("div_moviewall"); +var i; +navilinks_full = ""; // deletes all entries of left sidebar +moviewall_full = ""; // deletes all entries of right sidebar + +// Loop through all entries and check if criteria matches +for (i = 1;i <= iCount; i++) +{ +var arr2str = DataGenre[i].toString(); +var result = arr2str.search(myregexp); + +// in case of ALL display all movies by setting result = 1 +if(selectedgenre == 'ALLE') +{ + result = 1; +} + +if (result !== -1) // Match! +{ +// Also consider watched/unwatched state of checkboxes and display accordingly ! + // if watched checkbox is checked -> show watched movies + if(document.getElementById('unwatched').checked == false && document.getElementById('watched').checked == true) + { + if (DataWatched[i].toString() !== "") // Returns true if not empty("") or zero (0) -> PLAYCOUNT<>"" or PLAYCOUNT<>"0" + { + func_BuildNavigation(i); // Calls LoadPage Function and add match to left and right navigation string variable! + } + } + // if unwatched checkbox is checked -> show unwatched movies + else if(document.getElementById('unwatched').checked == true && document.getElementById('watched').checked == false) + { + if (DataWatched[i].toString() == "") // Returns true if empty("") and zero (0) -> PLAYCOUNT="" or PLAYCOUNT="0" + { + func_BuildNavigation(i); // Calls LoadPage Function and add match to left and right navigation string variable! + } + } + // in other case if both checkboxes unchecked/checked show all movies unfiltered... + else + { + func_BuildNavigation(i); // Calls LoadPage Function and add match to left and right navigation string variable! + } +} +} + +Control1.innerHTML = '
      ' + navilinks_full + '
    '; +Control2.innerHTML = moviewall_full; + +} +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +//---- Function: Custom Search [Titel]----- +// Displays all movies beginning with selected letter - result also considers watched/unwatched state of checkboxes! +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +function func_SearchTitel(selectedLetter) { + +var myregexp = new RegExp(selectedLetter); // NEW RegeExp Object +var doOnce = 0; +var Control1 = document.getElementById("navigation"); +var Control2 = document.getElementById("div_moviewall"); +var i; +navilinks_full = ""; // deletes all entries of left sidebar +moviewall_full = ""; // deletes all entries of right sidebar + +// Loop through all entries and check if movie genre contains "selectedgenre" +for (i = 1;i <= iCount; i++) +{ +var arr2str = DataName[i].toString(); +var result = arr2str.search(myregexp); + +if (result !== -1) // Found movie with selected letter +{ + +// Also consider watched/unwatched state of checkboxes and display accordingly ! + // if watched checkbox is checked -> show watched movies + if(document.getElementById('unwatched').checked == false && document.getElementById('watched').checked == true) + { + if (DataWatched[i].toString() !== "") // Returns true if not empty("") or zero (0) -> PLAYCOUNT<>"" or PLAYCOUNT<>"0" + { + func_BuildNavigation(i); // Calls LoadPage Function and add match to left and right navigation string variable! + } + } + // if unwatched checkbox is checked -> show unwatched movies + else if(document.getElementById('unwatched').checked == true && document.getElementById('watched').checked == false) + { + if (DataWatched[i].toString() == "") // Returns true if empty("") and zero (0) -> PLAYCOUNT="" or PLAYCOUNT="0" + { + func_BuildNavigation(i); // Calls LoadPage Function and add match to left and right navigation string variable! + } + } + // in other case if both checkboxes unchecked/checked show all movies unfiltered... + else + { + func_BuildNavigation(i); // Calls LoadPage Function and add match to left and right navigation string variable! + } +} +} + +Control1.innerHTML = '
      ' + navilinks_full + '
    '; +Control2.innerHTML = moviewall_full; + +} +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +//---- Function: Custom Search [Wertung]----- Erweiterung von User furryhamster Control2ielen Dank!! +// Sorting of movies, beginning with highest rated movies - result also considers watched/unwatched state of checkboxes! +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +function func_SearchWertung() { +var doOnce = 0; +var Control1 = document.getElementById("navigation"); +var Control2 = document.getElementById("div_moviewall"); +var i; +var rating_movie = new Array(iCount); +rating_movie[0] = new Array(2); +navilinks_full = ""; // deletes all entries of left sidebar +moviewall_full = ""; // deletes all entries of right sidebar + +for (i = 1;i <= iCount; i++){ +rating_movie[i-1] = [i,DataRating[i]]; // Timestamp in ms +} + +// Array sorted with Quicksort function/ ascending +rating_movie.quicksortCol(0, (rating_movie.length-1), 1); + +//Loop through all movies and build navigation with new sorted moviearray! +for (i = iCount;i > 0; i--){ +//get one specific movie from sorted array and hand over to Buildnavigation-Function! + var z = rating_movie[i-1][0]; + +// Also consider watched/unwatched state of checkboxes and display accordingly ! + // if watched checkbox is checked -> show watched movies + if(document.getElementById('unwatched').checked == false && document.getElementById('watched').checked == true) + { + if (DataWatched[z].toString() !== "") // Returns true if not empty("") or zero (0) -> PLAYCOUNT<>"" or PLAYCOUNT<>"0" + { + func_BuildNavigation(z); // Calls LoadPage Function and add match to left and right navigation string variable! + } + } + // if unwatched checkbox is checked -> show unwatched movies + else if(document.getElementById('unwatched').checked == true && document.getElementById('watched').checked == false) + { + if (DataWatched[z].toString() == "") // Returns true if empty("") and zero (0) -> PLAYCOUNT="" or PLAYCOUNT="0" + { + func_BuildNavigation(z); // Calls LoadPage Function and add match to left and right navigation string variable! + } + } + // in other case if both checkboxes unchecked/checked show all movies unfiltered... + else + { + func_BuildNavigation(z); // Calls LoadPage Function and add match to left and right navigation string variable! + } + +} + +Control1.innerHTML = '
      ' + navilinks_full + '
    '; +Control2.innerHTML = moviewall_full; +} + +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +//---- Function: [VideoBITRATE-Liste] +// Sorting of movies, beginning with highest Videobitrate movies - result also considers watched/unwatched state of checkboxes! +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +function func_SearchQualiVideo() { +var doOnce = 0; +var Control1 = document.getElementById("navigation"); +var Control2 = document.getElementById("div_moviewall"); +var i; +var vidbitrate_movie = new Array(iCount); +vidbitrate_movie[0] = new Array(2); +navilinks_full = ""; // deletes all entries of left sidebar +moviewall_full = ""; // deletes all entries of right sidebar + +for (i = 1;i <= iCount; i++){ +vidbitrate_movie[i-1] = [i,DataVidBitrate[i]]; // Control2ideoBitrate +} + +// Sort the array (numeric sorting) ascending +vidbitrate_movie.sort(function(x,y){return x[1]-y[1]}); + +//Loop through all movies and build navigation with new sorted moviearray! +for (i = iCount;i > 0; i--){ +//get one specific movie from sorted array and hand over to Buildnavigation-Function! + var z = vidbitrate_movie[i-1][0]; + +// Also consider watched/unwatched state of checkboxes and display accordingly ! + // if watched checkbox is checked -> show watched movies + if(document.getElementById('unwatched').checked == false && document.getElementById('watched').checked == true) + { + if (DataWatched[z].toString() !== "") // Returns true if not empty("") or zero (0) -> PLAYCOUNT<>"" or PLAYCOUNT<>"0" + { + func_BuildNavigation(z); // Calls LoadPage Function and add match to left and right navigation string variable! + } + } + // if unwatched checkbox is checked -> show unwatched movies + else if(document.getElementById('unwatched').checked == true && document.getElementById('watched').checked == false) + { + if (DataWatched[z].toString() == "") // Returns true if empty("") and zero (0) -> PLAYCOUNT="" or PLAYCOUNT="0" + { + func_BuildNavigation(z); // Calls LoadPage Function and add match to left and right navigation string variable! + } + } + // in other case if both checkboxes unchecked/checked show all movies unfiltered... + else + { + func_BuildNavigation(z); // Calls LoadPage Function and add match to left and right navigation string variable! + } + +} + +Control1.innerHTML = '
      ' + navilinks_full + '
    '; +Control2.innerHTML = moviewall_full; +} + +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +//---- Function: [AudioBITRATE-Liste] +// Sorting of movies, beginning with highest Audiobitrate movies - result also considers watched/unwatched state of checkboxes! +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +function func_SearchQualiAudio() { +var doOnce = 0; +var Control1 = document.getElementById("navigation"); +var Control2 = document.getElementById("div_moviewall"); +var i; +var audiobitrate_movie = new Array(iCount); +audiobitrate_movie[0] = new Array(2); +navilinks_full = ""; // deletes all entries of left sidebar +moviewall_full = ""; // deletes all entries of right sidebar + +for (i = 1;i <= iCount; i++){ +audiobitrate_movie[i-1] = [i,DataAudBitrate[i]]; // AudioBitrate +} + +//Sort the array (numeric sorting) ascending +audiobitrate_movie.sort(function(x,y){return x[1]-y[1]}); + +//Loop through all movies and build navigation with new sorted moviearray! +for (i = iCount;i > 0; i--){ +//get one specific movie from sorted array and hand over to Buildnavigation-Function! + var z = audiobitrate_movie[i-1][0]; + +// Also consider watched/unwatched state of checkboxes and display accordingly ! + // if watched checkbox is checked -> show watched movies + if(document.getElementById('unwatched').checked == false && document.getElementById('watched').checked == true) + { + if (DataWatched[z].toString() !== "") // Returns true if not empty("") or zero (0) -> PLAYCOUNT<>"" or PLAYCOUNT<>"0" + { + func_BuildNavigation(z); // Calls LoadPage Function and add match to left and right navigation string variable! + } + } + // if unwatched checkbox is checked -> show unwatched movies + else if(document.getElementById('unwatched').checked == true && document.getElementById('watched').checked == false) + { + if (DataWatched[z].toString() == "") // Returns true if empty("") and zero (0) -> PLAYCOUNT="" or PLAYCOUNT="0" + { + func_BuildNavigation(z); // Calls LoadPage Function and add match to left and right navigation string variable! + } + } + // in other case if both checkboxes unchecked/checked show all movies unfiltered... + else + { + func_BuildNavigation(z); // Calls LoadPage Function and add match to left and right navigation string variable! + } + +} + +Control1.innerHTML = '
      ' + navilinks_full + '
    '; +Control2.innerHTML = moviewall_full; +} + +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +//---- Function: Un/Watched Movies ----- +// Depending on checked/unchecked Checkboxes show only filtered selection of movies +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +function func_WatchedMovies() { + +var Control1 = document.getElementById("navigation"); +var Control2 = document.getElementById("div_moviewall"); +var i; +navilinks_full = ""; // deletes all entries of left sidebar +moviewall_full = ""; // deletes all entries of right sidebar + +// Loop through all entries and check movie PLAYCOUNT(i) (DataWatched[i]) + + // if watched checkbox is checked -> show watched movies + if(document.getElementById('unwatched').checked == false && document.getElementById('watched').checked == true) + { + for (i = 1;i <= iCount; i++) + { + + if (DataWatched[i].toString() !== "") // Returns true if not empty("") or zero (0) -> PLAYCOUNT<>"" or PLAYCOUNT<>"0" + { + func_BuildNavigation(i); // Calls LoadPage Function and add match to left and right navigation string variable! + } + } + } + // if unwatched checkbox is checked -> show unwatched movies + else if(document.getElementById('unwatched').checked == true && document.getElementById('watched').checked == false) + { + for (i = 1;i <= iCount; i++) + { + + if (DataWatched[i].toString() == "") // Returns true if empty("") and zero (0) -> PLAYCOUNT="" or PLAYCOUNT="0" + { + func_BuildNavigation(i); // Calls LoadPage Function and add match to left and right navigation string variable! + } + } + } + // in other case if both checkboxes unchecked/checked show all movies unfiltered... + else + { + for (i = 1;i <= iCount; i++) + { + + func_BuildNavigation(i); // Calls LoadPage Function and add match to left and right navigation string variable! + + } + } + + +Control1.innerHTML = '
      ' + navilinks_full + '
    '; +Control2.innerHTML = moviewall_full; + +} + +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +//---- Function: Custom Search [Schauspieler]----- Erweiterung von User furryhamster Vielen Dank!! +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +function func_SearchActor(actor) { +var myregexp = new RegExp(actor); // NEW RegeExp Object +var doOnce = 0; +var Control1 = document.getElementById("navigation"); +var Control2 = document.getElementById("div_moviewall"); +var i; +navilinks_full = ""; // deletes all entries of left sidebar +moviewall_full = ""; // deletes all entries of right sidebar + +// Loop through all entries and check if movie actors contains "actor" +for (i = 1;i <= iCount; i++) +{ +var arr2str = DataActors[i].toString(); +var result = arr2str.search(myregexp); + +var arr2strLower = arr2str.toLowerCase(); +var result2 = arr2strLower.search(myregexp); + +if (result !== -1 || result2 !== -1) // Found something! +{ +func_BuildNavigation(i); // Calls LoadPage Function and add match to left and right navigation string variable! +} +} + +Control1.innerHTML = '
      ' + navilinks_full + '
    '; +Control2.innerHTML = moviewall_full; +} + + + +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +//---- Function: Custom Search [3D MOVIE]----- +// Displays all movies which have MULTIVIEW Scanned <> zero - result also considers watched/unwatched state of checkboxes! +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +function func_SearchThreeD() { + +var doOnce = 0; +var Control1 = document.getElementById("navigation"); +var Control2 = document.getElementById("div_moviewall"); +var i; +navilinks_full = ""; // deletes all entries of left sidebar +moviewall_full = ""; // deletes all entries of right sidebar + +// Loop through all entries and check if movie genre contains "selectedgenre" +for (i = 1;i <= iCount; i++) +{ + +//Now look if 3Dmovie +if (DataThreed[i].toString() !== "") // Returns true if not empty("") or zero (0) -> MULTIVIEW<>"" or MULTIVIEW<>"0" --> Found: 3D Movie! +{ + +// Also consider watched/unwatched state of checkboxes and display accordingly ! + // if watched checkbox is checked -> show watched movies + if(document.getElementById('unwatched').checked == false && document.getElementById('watched').checked == true) + { + if (DataWatched[i].toString() !== "") // Returns true if not empty("") or zero (0) -> PLAYCOUNT<>"" or PLAYCOUNT<>"0" + { + func_BuildNavigation(i); // Calls LoadPage Function and add match to left and right navigation string variable! + } + } + // if unwatched checkbox is checked -> show unwatched movies + else if(document.getElementById('unwatched').checked == true && document.getElementById('watched').checked == false) + { + if (DataWatched[i].toString() == "") // Returns true if empty("") and zero (0) -> PLAYCOUNT="" or PLAYCOUNT="0" + { + func_BuildNavigation(i); // Calls LoadPage Function and add match to left and right navigation string variable! + } + } + // in other case if both checkboxes unchecked/checked show all movies unfiltered... + else + { + func_BuildNavigation(i); // Calls LoadPage Function and add match to left and right navigation string variable! + } +} +} + +Control1.innerHTML = '
      ' + navilinks_full + '
    '; +Control2.innerHTML = moviewall_full; + +} + +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +//---- Function: Open Movie Folder ----- +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +function func_OpenFolder(Counter) { +var Adresse = window.location.href; +var searchURL = new RegExp('file:'); // NEW RegeExp Object +var result = Adresse.search(searchURL); + +if (result !== -1) // HTML Page is local! +{ +window.open ('file:///' + DataURL[Counter] + '/' + DataFilename[Counter]); +} +else // HTML Page is placed in internet! +{ +alert( 'Kein Zugriff auf Ordner m�glich!' ); +} +} + + + +/* ****************************************************************************** * // CREDIT: Quaese, Quelle: http://www.tutorials.de/javascript-ajax/283260-javascript-zweidimensionales-array-sortieren.html + * Arrayobjekt um Methode erweitern - Array mit Quicksort nach Spalten sortieren + * + * Parameter: intLower - Untergrenze des Teilbereichs (beim Start i.A. 0) + * intUpper - Obergrenze des Teilbereichs (beim Start i.A. Array.length-1) + * intCol - Spalte, nach der sortiert werden soll (beginnend bei 0) + * ****************************************************************************** */ +Array.prototype.quicksortCol = function(intLower, intUpper, intCol){ + var i = intLower, j = intUpper; + var varHelp = new Array(); + // Teilen des Bereiches und Vergleichswert ermitteln + var varX = this[parseInt(Math.floor(intLower+intUpper)/2)][intCol]; + + // Teilbereiche bearbeiten bis: + // - "linker" Bereich enth�lt alle "kleineren" Werte + // - "rechter" Bereich enth�lt alle "gr�sseren" Werte + do{ + // Solange Wert im linken Teil kleiner ist -> Grenzeindex inkrementieren + while(this[i][intCol] < varX) i++; + // Solange Wert im rechten Teil gr�sser ist -> Grenzindex dekrementieren + while(varX < this[j][intCol]) j--; + + // Untergrenze kleiner als Obergrenze -> Tausch notwendig + if(i<=j){ + var varHelp = this[i]; + this[i] = this[j]; + this[j] = varHelp; + i++; + j--; + } + }while(i + + \ No newline at end of file diff --git a/Ember Media Manager/Langs/html/template MovieHomepage/English_(en_US).html b/Ember Media Manager/Langs/html/template MovieHomepage/English_(en_US).html index 7183a3f..e07f8e5 100644 --- a/Ember Media Manager/Langs/html/template MovieHomepage/English_(en_US).html +++ b/Ember Media Manager/Langs/html/template MovieHomepage/English_(en_US).html @@ -49,16 +49,24 @@

    <$MOVIENAME> (<$Y

    Director:

    <$DIRECTOR>

    - +

    Genre:

    <$GENRES>

    - +

    Runtime:

    <$RUNTIME>

    + + +

    VideoBitrate:

    +

    <$VIDEOBITRATE>

    -

    MPAA:

    +

    AudioBitrate:

    +

    <$AUDIOBITRATE>

    + + +

    FSK:

    <$MPAA> years

    @@ -70,9 +78,9 @@

    <$MOVIENAME> (<$Y

    Links: -Show IMDB Info -Show Trailer -Film-Ordner öffnen +Show IMDB Info +Show Trailer +Play movie (Internet Explorer only!)


    <$PLOT>


    @@ -88,6 +96,7 @@

    <$MOVIENAME> (<$Y DataURL[<$COUNT>] = "<$DIRNAME>"; DataYear[<$COUNT>] = "<$YEAR>"; DataBild[<$COUNT>] = "<$POSTER_FILE>"; +DataFilename[<$COUNT>] = "<$FILENAME>"; DataName[<$COUNT>] = "<$MOVIENAME>"; DataGenre[<$COUNT>] = "<$GENRES>"; DataDate[<$COUNT>] = "<$DATEADD>"; @@ -95,6 +104,14 @@

    <$MOVIENAME> (<$Y DataSource[<$COUNT>] = "<$FLAG_VRES>"; DataRating[<$COUNT>] = "<$RATING>"; DataActors[<$COUNT>] = "<$ACTORS>"; +DataWatched[<$COUNT>] = "<$PLAYCOUNT>"; +DataVidBitrate[<$COUNT>] = "<$VIDEOBITRATE>"; +DataAudBitrate[<$COUNT>] = "<$AUDIOBITRATE>"; +DataThreed[<$COUNT>] = "<$VIDEOMULTIVIEW>"; +DataSet[<$COUNT>] = "<$SET>"; +DataNow = "<$NOW>"; +DataMoviesets = "<$MOVIESETS>"; +DataTVShows = "<$TVSHOWS>"; @@ -118,34 +135,122 @@

    <$MOVIENAME> (<$Y + + + + + + + + + +
    +
    + + + + +
    +
    + +
    + + + +
    +

    @@ -154,8 +259,8 @@

    ...and still growing

  • '; -var string_navigation_3 = '
  • '; +var string_navigation_1HD1 = '
  • '; +Control1 = document.getElementById("movie" + selectedmovie); +Control1.style.display = 'block'; } -Z = document.getElementById("backgrounddiv" + selectedmovie); -Z.innerHTML = ''; -Q = document.getElementById("movie" + selectedmovie); -Q.style.display = 'block'; + +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +//---- Function for displaying last modified date on template header ----- Erweiterung von User cimex Vielen Dank!! +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +function func_DisplayLastModified() +{ +var T; +T = document.getElementById("div_displaylastmodified"); +T.innerHTML = '

    Update: ' + DataNow + '

    '; } + //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// //---- Function for building left and right navigation of site----- //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// function func_BuildNavigation(selectedmovie) { -var y, Q, V, i, arr2str, result1, result2; -Q = document.getElementById("navigation"); -V = document.getElementById("div_moviewall"); +var y, Control1, Control2, Control3, i, arr2str, result1, result2,result3,result4; +Control1 = document.getElementById("navigation"); +Control2 = document.getElementById("div_moviewall"); +Control3 = document.getElementById("div_moviecounter"); var myregexp1 = new RegExp('1080'); var myregexp2 = new RegExp('720'); +var myregexp3 = new RegExp('576'); +var myregexp4 = new RegExp('default'); +var myregexp5 = new RegExp('1'); +var bluraycounter = 0; +var dvdcounter = 0; +var othercounter = 0; +var moviecounter = 0; +var watchedcounter = 0; +var threedcounter = 0; //execute only for buildung up navigation for ALL movies (PageLoad, Reset-Button)! if (selectedmovie === 0) { @@ -76,65 +132,81 @@ i = 1; } arr2str = DataSource[i].toString(); result1 = arr2str.search(myregexp1); result2 = arr2str.search(myregexp2); -if (result1 !== -1 || result2 !== -1) // Found something! +result3 = arr2str.search(myregexp3); +result4 = arr2str.search(myregexp4); + + if (DataThreed [i].toString() !== "") // Returns true if not empty("") or zero (0) -> MULTIVIEW<>"" or MULTIVIEW<>"0" --> Found: 3D Movie! + { + threedcounter = threedcounter + 1 + } + +if (result1 !== -1 || result2 !== -1) // Found something! Bluray { -navilinks = string_navigation_1HD + i + string_navigation_2 + DataName[i] + string_navigation_3; + if (DataWatched[i].toString() !== "") // Returns true if not empty("") or zero (0) -> PLAYCOUNT<>"" or PLAYCOUNT<>"0" --> Found: Watched Movie! + { + //Navigation Build: Include Watched Movie/HD Icon! + navilinks = string_navigation_1HD1 + i + string_navigation_2 + string_tabindexstart + i + string_tabindexend + DataName[i] + string_navigation_3 + string_navigation_3HD2 + string_watched3 + string_navigation_4; + watchedcounter = watchedcounter + 1; + } + + else + { + //Navigation Build: Include HD Icon! + navilinks = string_navigation_1HD1 + i + string_navigation_2 + string_tabindexstart + i + string_tabindexend + DataName[i] + string_navigation_3 + string_navigation_3HD2 + string_navigation_4; + } +bluraycounter = bluraycounter + 1; } +else if(result3 !== -1 || result4 !== -1) // Found something! DVD + { + + if (DataWatched[i].toString() !== "") // Returns true if not empty("") or zero (0) -> PLAYCOUNT<>"" or PLAYCOUNT<>"0" --> Found: Watched Movie! + { + //Navigation Build: Include Watched Movie/DVD Icon! + navilinks = string_navigation_1DVD1 + i + string_navigation_2 + string_tabindexstart + i + string_tabindexend + DataName[i] + string_navigation_3 + string_navigation_3DVD2 + string_watched3 + string_navigation_4; + watchedcounter = watchedcounter + 1; + } + else + { + //Navigation Build: Include DVD Icon! + navilinks = string_navigation_1DVD1 + i + string_navigation_2 + string_tabindexstart + i + string_tabindexend + DataName[i] + string_navigation_3 + string_navigation_3DVD2 + string_navigation_4; + } +dvdcounter = dvdcounter + 1; +} + else { -navilinks = string_navigation_1 + i + string_navigation_2 + DataName[i] + string_navigation_3; + + if (DataWatched[i].toString() !== "") // Returns true if not empty("") or zero (0) -> PLAYCOUNT<>"" or PLAYCOUNT<>"0" --> Found: Watched Movie! + { + navilinks = string_navigation_1 + i + string_navigation_2 + string_tabindexstart + i + string_tabindexend + DataName[i] + string_navigation_3 + string_navigation_3 + string_watched3 + string_navigation_4; + watchedcounter = watchedcounter + 1; + } + else + { + //Navigation Build: Movie is not DVD, not Bluray and also not watched --> no icons, basic string + navilinks = string_navigation_1 + i + string_navigation_2 + string_tabindexstart + i + string_tabindexend + DataName[i] + string_navigation_3 + string_navigation_3 + string_navigation_4; + } + +othercounter = othercounter + 1; } +//Navigation builder to build whole page dynamically navilinks_full = navilinks_full + navilinks; moviewall = string_moviewalllink_1 + i + string_moviewalllink_2 + i + string_moviewalllink_3 + string_moviewallpic_1 + DataBild[i] + string_moviewallpic_2 + DataName[i] + string_moviewallpic_3 + DataName[i] + string_moviewallpic_4; moviewall_full = moviewall_full + moviewall; } if (selectedmovie === 0) { // only needed when function not called from another function selectedmovie = 1; -Q.innerHTML = '
      ' + navilinks_full + '

    ' + version + '

    '; -V.innerHTML = moviewall_full; +moviecounter = dvdcounter + bluraycounter + othercounter; +Control1.innerHTML = '
      ' + navilinks_full + '

    ' + version + '

    '; +Control2.innerHTML = moviewall_full; +Control3.innerHTML = '

    Total: ' + moviecounter + '   Blurays: ' + bluraycounter + '  DVD: ' + dvdcounter + '  3D: ' + threedcounter + '  Rest: ' + othercounter + '  Watched: ' + watchedcounter + '

    '; } } -/* ****************************************************************************** * // CREDIT: Quaese, Quelle: http://www.tutorials.de/javascript-ajax/283260-javascript-zweidimensionales-array-sortieren.html - * Arrayobjekt um Methode erweitern - Array mit Quicksort nach Spalten sortieren - * - * Parameter: intLower - Untergrenze des Teilbereichs (beim Start i.A. 0) - * intUpper - Obergrenze des Teilbereichs (beim Start i.A. Array.length-1) - * intCol - Spalte, nach der sortiert werden soll (beginnend bei 0) - * ****************************************************************************** */ -Array.prototype.quicksortCol = function(intLower, intUpper, intCol){ - var i = intLower, j = intUpper; - var varHelp = new Array(); - // Teilen des Bereiches und Vergleichswert ermitteln - var varX = this[parseInt(Math.floor(intLower+intUpper)/2)][intCol]; - - // Teilbereiche bearbeiten bis: - // - "linker" Bereich enth�lt alle "kleineren" Werte - // - "rechter" Bereich enth�lt alle "gr�sseren" Werte - do{ - // Solange Wert im linken Teil kleiner ist -> Grenzeindex inkrementieren - while(this[i][intCol] < varX) i++; - // Solange Wert im rechten Teil gr�sser ist -> Grenzindex dekrementieren - while(varX < this[j][intCol]) j--; - - // Untergrenze kleiner als Obergrenze -> Tausch notwendig - if(i<=j){ - var varHelp = this[i]; - this[i] = this[j]; - this[j] = varHelp; - i++; - j--; - } - }while(i Newest Movies first! timestamp_movie.quicksortCol(0, (timestamp_movie.length-1), 1); +//Loop through all movies and build navigation with new sorted moviearray! for (i = iCount;i > 0; i--){ -var z = timestamp_movie[i-1][0]; -func_BuildNavigation(z); + var z = timestamp_movie[i-1][0]; +// Also consider watched/unwatched state of checkboxes and display accordingly ! + // if watched checkbox is checked -> show watched movies + if(document.getElementById('unwatched').checked == false && document.getElementById('watched').checked == true) + { + if (DataWatched[z].toString() !== "") // Returns true if not empty("") or zero (0) -> PLAYCOUNT<>"" or PLAYCOUNT<>"0" + { + func_BuildNavigation(z); // Calls LoadPage Function and add match to left and right navigation string variable! + } + } + // if unwatched checkbox is checked -> show unwatched movies + else if(document.getElementById('unwatched').checked == true && document.getElementById('watched').checked == false) + { + if (DataWatched[z].toString() == "") // Returns true if empty("") and zero (0) -> PLAYCOUNT="" or PLAYCOUNT="0" + { + func_BuildNavigation(z); // Calls LoadPage Function and add match to left and right navigation string variable! + } + } + // in other case if both checkboxes unchecked/checked show all movies unfiltered... + else + { + func_BuildNavigation(z); // Calls LoadPage Function and add match to left and right navigation string variable! + } } -Q.innerHTML = '
      ' + navilinks_full + '
    '; -V.innerHTML = moviewall_full; +Control1.innerHTML = '
      ' + navilinks_full + '
    '; +Control2.innerHTML = moviewall_full; } //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// //---- Function: Custom Search [Year]----- +// Displays all movies sorted, beginning with newest - result also considers watched/unwatched state of checkboxes! //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// function func_SearchYear() { var doOnce = 0; -var Q = document.getElementById("navigation"); -var V = document.getElementById("div_moviewall"); +var Control1 = document.getElementById("navigation"); +var Control2 = document.getElementById("div_moviewall"); var i; var year_movie = new Array(iCount); year_movie[0] = new Array(2); navilinks_full = ""; // deletes all entries of left sidebar moviewall_full = ""; // deletes all entries of right sidebar + +// Populate array with timestamps of all movies for (i = 1;i <= iCount; i++){ year_movie[i-1] = [i,DataYear[i]]; // Timestamp in ms } @@ -190,53 +287,156 @@ year_movie[i-1] = [i,DataYear[i]]; // Timestamp in ms // Array sorted with Quicksort function/ ascending year_movie.quicksortCol(0, (year_movie.length-1), 1); +//Loop through all movies and build navigation with new sorted moviearray! for (i = iCount;i > 0; i--){ -var z = year_movie[i-1][0]; -func_BuildNavigation(z); + var z = year_movie[i-1][0]; + + // Also consider watched/unwatched state of checkboxes and display accordingly ! + // if watched checkbox is checked -> show watched movies + if(document.getElementById('unwatched').checked == false && document.getElementById('watched').checked == true) + { + if (DataWatched[z].toString() !== "") // Returns true if not empty("") or zero (0) -> PLAYCOUNT<>"" or PLAYCOUNT<>"0" + { + func_BuildNavigation(z); // Calls LoadPage Function and add match to left and right navigation string variable! + } + } + // if unwatched checkbox is checked -> show unwatched movies + else if(document.getElementById('unwatched').checked == true && document.getElementById('watched').checked == false) + { + if (DataWatched[z].toString() == "") // Returns true if empty("") and zero (0) -> PLAYCOUNT="" or PLAYCOUNT="0" + { + func_BuildNavigation(z); // Calls LoadPage Function and add match to left and right navigation string variable! + } + } + // in other case if both checkboxes unchecked/checked show all movies unfiltered... + else + { + func_BuildNavigation(z); // Calls LoadPage Function and add match to left and right navigation string variable! + } } -Q.innerHTML = '
      ' + navilinks_full + '
    '; -V.innerHTML = moviewall_full; +Control1.innerHTML = '
      ' + navilinks_full + '
    '; +Control2.innerHTML = moviewall_full; } //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// //---- Function: Custom Search [Genre]----- +// Displays all movies containing the selected genre - result also considers watched/unwatched state of checkboxes! //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// function func_SearchGenre(selectedgenre) { + var myregexp = new RegExp(selectedgenre); // NEW RegeExp Object var doOnce = 0; -var Q = document.getElementById("navigation"); -var V = document.getElementById("div_moviewall"); +var Control1 = document.getElementById("navigation"); +var Control2 = document.getElementById("div_moviewall"); var i; navilinks_full = ""; // deletes all entries of left sidebar moviewall_full = ""; // deletes all entries of right sidebar -// Circle through all entries and test if movie genre contains "selectedgenre" +// Loop through all entries and check if criteria matches for (i = 1;i <= iCount; i++) { var arr2str = DataGenre[i].toString(); var result = arr2str.search(myregexp); -if (result !== -1) // Found something! +// in case of ALL display all movies by setting result = 1 +if(selectedgenre == 'ALLE') { -doOnce = 1; -func_BuildNavigation(i); // Calls LoadPage Function and add match to left and right navigation string variable! + result = 1; } + +if (result !== -1) // Match! +{ +// Also consider watched/unwatched state of checkboxes and display accordingly ! + // if watched checkbox is checked -> show watched movies + if(document.getElementById('unwatched').checked == false && document.getElementById('watched').checked == true) + { + if (DataWatched[i].toString() !== "") // Returns true if not empty("") or zero (0) -> PLAYCOUNT<>"" or PLAYCOUNT<>"0" + { + func_BuildNavigation(i); // Calls LoadPage Function and add match to left and right navigation string variable! + } + } + // if unwatched checkbox is checked -> show unwatched movies + else if(document.getElementById('unwatched').checked == true && document.getElementById('watched').checked == false) + { + if (DataWatched[i].toString() == "") // Returns true if empty("") and zero (0) -> PLAYCOUNT="" or PLAYCOUNT="0" + { + func_BuildNavigation(i); // Calls LoadPage Function and add match to left and right navigation string variable! + } + } + // in other case if both checkboxes unchecked/checked show all movies unfiltered... + else + { + func_BuildNavigation(i); // Calls LoadPage Function and add match to left and right navigation string variable! + } } -if(doOnce === 1) // only when at least 1 match found refresh and show left and right sidebar +} + +Control1.innerHTML = '
      ' + navilinks_full + '
    '; +Control2.innerHTML = moviewall_full; + +} +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +//---- Function: Custom Search [Titel]----- +// Displays all movies beginning with selected letter - result also considers watched/unwatched state of checkboxes! +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +function func_SearchTitel(selectedLetter) { + +var myregexp = new RegExp(selectedLetter); // NEW RegeExp Object +var doOnce = 0; +var Control1 = document.getElementById("navigation"); +var Control2 = document.getElementById("div_moviewall"); +var i; +navilinks_full = ""; // deletes all entries of left sidebar +moviewall_full = ""; // deletes all entries of right sidebar + +// Loop through all entries and check if movie genre contains "selectedgenre" +for (i = 1;i <= iCount; i++) { -Q.innerHTML = '
      ' + navilinks_full + '
    '; -V.innerHTML = moviewall_full; +var arr2str = DataName[i].toString(); +var result = arr2str.search(myregexp); + +if (result !== -1) // Found movie with selected letter +{ + +// Also consider watched/unwatched state of checkboxes and display accordingly ! + // if watched checkbox is checked -> show watched movies + if(document.getElementById('unwatched').checked == false && document.getElementById('watched').checked == true) + { + if (DataWatched[i].toString() !== "") // Returns true if not empty("") or zero (0) -> PLAYCOUNT<>"" or PLAYCOUNT<>"0" + { + func_BuildNavigation(i); // Calls LoadPage Function and add match to left and right navigation string variable! + } + } + // if unwatched checkbox is checked -> show unwatched movies + else if(document.getElementById('unwatched').checked == true && document.getElementById('watched').checked == false) + { + if (DataWatched[i].toString() == "") // Returns true if empty("") and zero (0) -> PLAYCOUNT="" or PLAYCOUNT="0" + { + func_BuildNavigation(i); // Calls LoadPage Function and add match to left and right navigation string variable! + } + } + // in other case if both checkboxes unchecked/checked show all movies unfiltered... + else + { + func_BuildNavigation(i); // Calls LoadPage Function and add match to left and right navigation string variable! + } } +} + +Control1.innerHTML = '
      ' + navilinks_full + '
    '; +Control2.innerHTML = moviewall_full; + } //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// -//---- Function: Custom Search [Wertung]----- Erweiterung von User furryhamster Vielen Dank!! +//---- Function: Custom Search [Wertung]----- Erweiterung von User furryhamster Control2ielen Dank!! +// Sorting of movies, beginning with highest rated movies - result also considers watched/unwatched state of checkboxes! //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// function func_SearchWertung() { var doOnce = 0; -var Q = document.getElementById("navigation"); -var V = document.getElementById("div_moviewall"); +var Control1 = document.getElementById("navigation"); +var Control2 = document.getElementById("div_moviewall"); var i; var rating_movie = new Array(iCount); rating_movie[0] = new Array(2); @@ -250,14 +450,203 @@ rating_movie[i-1] = [i,DataRating[i]]; // Timestamp in ms // Array sorted with Quicksort function/ ascending rating_movie.quicksortCol(0, (rating_movie.length-1), 1); +//Loop through all movies and build navigation with new sorted moviearray! for (i = iCount;i > 0; i--){ +//get one specific movie from sorted array and hand over to Buildnavigation-Function! + var z = rating_movie[i-1][0]; + +// Also consider watched/unwatched state of checkboxes and display accordingly ! + // if watched checkbox is checked -> show watched movies + if(document.getElementById('unwatched').checked == false && document.getElementById('watched').checked == true) + { + if (DataWatched[z].toString() !== "") // Returns true if not empty("") or zero (0) -> PLAYCOUNT<>"" or PLAYCOUNT<>"0" + { + func_BuildNavigation(z); // Calls LoadPage Function and add match to left and right navigation string variable! + } + } + // if unwatched checkbox is checked -> show unwatched movies + else if(document.getElementById('unwatched').checked == true && document.getElementById('watched').checked == false) + { + if (DataWatched[z].toString() == "") // Returns true if empty("") and zero (0) -> PLAYCOUNT="" or PLAYCOUNT="0" + { + func_BuildNavigation(z); // Calls LoadPage Function and add match to left and right navigation string variable! + } + } + // in other case if both checkboxes unchecked/checked show all movies unfiltered... + else + { + func_BuildNavigation(z); // Calls LoadPage Function and add match to left and right navigation string variable! + } + +} + +Control1.innerHTML = '
      ' + navilinks_full + '
    '; +Control2.innerHTML = moviewall_full; +} + +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +//---- Function: [VideoBITRATE-Liste] +// Sorting of movies, beginning with highest Videobitrate movies - result also considers watched/unwatched state of checkboxes! +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +function func_SearchQualiVideo() { +var doOnce = 0; +var Control1 = document.getElementById("navigation"); +var Control2 = document.getElementById("div_moviewall"); +var i; +var vidbitrate_movie = new Array(iCount); +vidbitrate_movie[0] = new Array(2); +navilinks_full = ""; // deletes all entries of left sidebar +moviewall_full = ""; // deletes all entries of right sidebar -var z = rating_movie[i-1][0]; -func_BuildNavigation(z); +for (i = 1;i <= iCount; i++){ +vidbitrate_movie[i-1] = [i,DataVidBitrate[i]]; // Control2ideoBitrate } -Q.innerHTML = '
      ' + navilinks_full + '
    '; -V.innerHTML = moviewall_full; +// Sort the array (numeric sorting) ascending +vidbitrate_movie.sort(function(x,y){return x[1]-y[1]}); + +//Loop through all movies and build navigation with new sorted moviearray! +for (i = iCount;i > 0; i--){ +//get one specific movie from sorted array and hand over to Buildnavigation-Function! + var z = vidbitrate_movie[i-1][0]; + +// Also consider watched/unwatched state of checkboxes and display accordingly ! + // if watched checkbox is checked -> show watched movies + if(document.getElementById('unwatched').checked == false && document.getElementById('watched').checked == true) + { + if (DataWatched[z].toString() !== "") // Returns true if not empty("") or zero (0) -> PLAYCOUNT<>"" or PLAYCOUNT<>"0" + { + func_BuildNavigation(z); // Calls LoadPage Function and add match to left and right navigation string variable! + } + } + // if unwatched checkbox is checked -> show unwatched movies + else if(document.getElementById('unwatched').checked == true && document.getElementById('watched').checked == false) + { + if (DataWatched[z].toString() == "") // Returns true if empty("") and zero (0) -> PLAYCOUNT="" or PLAYCOUNT="0" + { + func_BuildNavigation(z); // Calls LoadPage Function and add match to left and right navigation string variable! + } + } + // in other case if both checkboxes unchecked/checked show all movies unfiltered... + else + { + func_BuildNavigation(z); // Calls LoadPage Function and add match to left and right navigation string variable! + } + +} + +Control1.innerHTML = '
      ' + navilinks_full + '
    '; +Control2.innerHTML = moviewall_full; +} + +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +//---- Function: [AudioBITRATE-Liste] +// Sorting of movies, beginning with highest Audiobitrate movies - result also considers watched/unwatched state of checkboxes! +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +function func_SearchQualiAudio() { +var doOnce = 0; +var Control1 = document.getElementById("navigation"); +var Control2 = document.getElementById("div_moviewall"); +var i; +var audiobitrate_movie = new Array(iCount); +audiobitrate_movie[0] = new Array(2); +navilinks_full = ""; // deletes all entries of left sidebar +moviewall_full = ""; // deletes all entries of right sidebar + +for (i = 1;i <= iCount; i++){ +audiobitrate_movie[i-1] = [i,DataAudBitrate[i]]; // AudioBitrate +} + +//Sort the array (numeric sorting) ascending +audiobitrate_movie.sort(function(x,y){return x[1]-y[1]}); + +//Loop through all movies and build navigation with new sorted moviearray! +for (i = iCount;i > 0; i--){ +//get one specific movie from sorted array and hand over to Buildnavigation-Function! + var z = audiobitrate_movie[i-1][0]; + +// Also consider watched/unwatched state of checkboxes and display accordingly ! + // if watched checkbox is checked -> show watched movies + if(document.getElementById('unwatched').checked == false && document.getElementById('watched').checked == true) + { + if (DataWatched[z].toString() !== "") // Returns true if not empty("") or zero (0) -> PLAYCOUNT<>"" or PLAYCOUNT<>"0" + { + func_BuildNavigation(z); // Calls LoadPage Function and add match to left and right navigation string variable! + } + } + // if unwatched checkbox is checked -> show unwatched movies + else if(document.getElementById('unwatched').checked == true && document.getElementById('watched').checked == false) + { + if (DataWatched[z].toString() == "") // Returns true if empty("") and zero (0) -> PLAYCOUNT="" or PLAYCOUNT="0" + { + func_BuildNavigation(z); // Calls LoadPage Function and add match to left and right navigation string variable! + } + } + // in other case if both checkboxes unchecked/checked show all movies unfiltered... + else + { + func_BuildNavigation(z); // Calls LoadPage Function and add match to left and right navigation string variable! + } + +} + +Control1.innerHTML = '
      ' + navilinks_full + '
    '; +Control2.innerHTML = moviewall_full; +} + +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +//---- Function: Un/Watched Movies ----- +// Depending on checked/unchecked Checkboxes show only filtered selection of movies +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +function func_WatchedMovies() { + +var Control1 = document.getElementById("navigation"); +var Control2 = document.getElementById("div_moviewall"); +var i; +navilinks_full = ""; // deletes all entries of left sidebar +moviewall_full = ""; // deletes all entries of right sidebar + +// Loop through all entries and check movie PLAYCOUNT(i) (DataWatched[i]) + + // if watched checkbox is checked -> show watched movies + if(document.getElementById('unwatched').checked == false && document.getElementById('watched').checked == true) + { + for (i = 1;i <= iCount; i++) + { + + if (DataWatched[i].toString() !== "") // Returns true if not empty("") or zero (0) -> PLAYCOUNT<>"" or PLAYCOUNT<>"0" + { + func_BuildNavigation(i); // Calls LoadPage Function and add match to left and right navigation string variable! + } + } + } + // if unwatched checkbox is checked -> show unwatched movies + else if(document.getElementById('unwatched').checked == true && document.getElementById('watched').checked == false) + { + for (i = 1;i <= iCount; i++) + { + + if (DataWatched[i].toString() == "") // Returns true if empty("") and zero (0) -> PLAYCOUNT="" or PLAYCOUNT="0" + { + func_BuildNavigation(i); // Calls LoadPage Function and add match to left and right navigation string variable! + } + } + } + // in other case if both checkboxes unchecked/checked show all movies unfiltered... + else + { + for (i = 1;i <= iCount; i++) + { + + func_BuildNavigation(i); // Calls LoadPage Function and add match to left and right navigation string variable! + + } + } + + +Control1.innerHTML = '
      ' + navilinks_full + '
    '; +Control2.innerHTML = moviewall_full; + } //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// @@ -266,13 +655,13 @@ V.innerHTML = moviewall_full; function func_SearchActor(actor) { var myregexp = new RegExp(actor); // NEW RegeExp Object var doOnce = 0; -var Q = document.getElementById("navigation"); -var V = document.getElementById("div_moviewall"); +var Control1 = document.getElementById("navigation"); +var Control2 = document.getElementById("div_moviewall"); var i; navilinks_full = ""; // deletes all entries of left sidebar moviewall_full = ""; // deletes all entries of right sidebar -// Circle through all entries and test if movie actors contains "actor" +// Loop through all entries and check if movie actors contains "actor" for (i = 1;i <= iCount; i++) { var arr2str = DataActors[i].toString(); @@ -283,31 +672,283 @@ var result2 = arr2strLower.search(myregexp); if (result !== -1 || result2 !== -1) // Found something! { -doOnce = 1; func_BuildNavigation(i); // Calls LoadPage Function and add match to left and right navigation string variable! } } -if(doOnce === 1) // only when at least 1 match found refresh and show left and right sidebar + +Control1.innerHTML = '
      ' + navilinks_full + '
    '; +Control2.innerHTML = moviewall_full; +} + +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +//---- Function: Build Moviesetnavigation----- +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +function func_BuildMoviesets() { +var Control1 = document.getElementById("navigation"); +var i; +var arrmoviesets=DataMoviesets.split("|"); +navilinks_full = ""; // deletes all entries of left sidebar +moviewall_full = ""; // deletes all entries of right sidebar + + +// Loop through all entries and check if movie contains "movieset" +//Navigation builder to build whole page dynamically +for (var i=0; i < arrmoviesets.length; i++) { -Q.innerHTML = '
      ' + navilinks_full + '
    '; -V.innerHTML = moviewall_full; +navilinks = string_navigation_1Movieset + i + string_navigation_2 + string_tabindexstart + i + string_tabindexend + arrmoviesets[i] + string_navigation_3 + string_navigation_4; +navilinks_full = navilinks_full + navilinks; } + +Control1.innerHTML = '
      ' + navilinks_full + '
    '; } +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +//---- Function: Show Moviesets----- +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +function func_DisplayMovieset(moviesetindex) { +var arrmoviesets=DataMoviesets.split("|"); +var movieset=arrmoviesets[moviesetindex]; +var myregexp = new RegExp(movieset); // NEW RegeExp Object +var doOnce = 0; +var Control2 = document.getElementById("div_moviewall"); +var i; + +moviewall_full = ""; // deletes all entries of right sidebar + +// Loop through all entries and check if movie contains "movieset" +for (i = 1;i <= iCount; i++) +{ +var arr2str = DataSet[i].toString(); +var result = arr2str.search(myregexp); + +var arr2strLower = arr2str.toLowerCase(); +var result2 = arr2strLower.search(myregexp); +if (result !== -1 || result2 !== -1) // Found something! +{ +func_BuildNavigationMoviesets(i); // Calls LoadPage Function and add match to left and right navigation string variable! +} +} + +Control2.innerHTML = moviewall_full; +} //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// -//---- Function: Open Movie Folder ----- +//---- Function for building left and right navigation of site----- //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// -function func_OpenFolder(Counter) { -var Adresse = window.location.href; -var searchURL = new RegExp('file:'); // NEW RegeExp Object -var result = Adresse.search(searchURL); +function func_BuildNavigationMoviesets(selectedmovie) +{ +var y, Control1, Control2, Control3, i, arr2str, result1, result2,result3,result4; +Control1 = document.getElementById("navigation"); +Control2 = document.getElementById("div_moviewall"); +Control3 = document.getElementById("div_moviecounter"); +var myregexp1 = new RegExp('1080'); +var myregexp2 = new RegExp('720'); +var myregexp3 = new RegExp('576'); +var myregexp4 = new RegExp('default'); +var myregexp5 = new RegExp('1'); +var bluraycounter = 0; +var dvdcounter = 0; +var othercounter = 0; +var moviecounter = 0; +var watchedcounter = 0; +var threedcounter = 0; -if (result !== -1) // Lokal +//execute only for buildung up navigation for ALL movies (PageLoad, Reset-Button)! +if (selectedmovie === 0) { +navilinks_full = ""; // deletes all entries of left sidebar +moviewall_full = ""; // deletes all entries of right sidebar +y = iCount; // this will make sure to add navigation of ALL movies! +func_ShowDetails(1); +} +else // only navigation elements of one specific movie will be added! { -window.open (DataURL[Counter] + '/'); +y = selectedmovie; } -else // Seite ist im Internet +//Navigation builder for left and right sidebar +for (i = selectedmovie;i <= y; i++) { -alert( 'Kein Zugriff auf Ordner m�glich!' ); +if (i === 0) { +i = 1; } +arr2str = DataSource[i].toString(); +result1 = arr2str.search(myregexp1); +result2 = arr2str.search(myregexp2); +result3 = arr2str.search(myregexp3); +result4 = arr2str.search(myregexp4); + + + +//Navigation builder to build whole page dynamically +//navilinks_full = navilinks_full + navilinks; +moviewall = string_moviewalllink_1 + i + string_moviewalllink_2 + i + string_moviewalllink_3 + string_moviewallpic_1 + DataBild[i] + string_moviewallpic_2 + DataName[i] + string_moviewallpic_3 + DataName[i] + string_moviewallpic_4; +moviewall_full = moviewall_full + moviewall; +} +if (selectedmovie === 0) { // only needed when function not called from another function +selectedmovie = 1; +moviecounter = dvdcounter + bluraycounter + othercounter; +Control1.innerHTML = '
      ' + navilinks_full + '

    ' + version + '

    '; +Control2.innerHTML = moviewall_full; +Control3.innerHTML = '

    Total: ' + moviecounter + '   Blurays: ' + bluraycounter + '  DVD: ' + dvdcounter + '  3D: ' + threedcounter + '  Rest: ' + othercounter + '  Watched: ' + watchedcounter + '

    '; } +} + +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +//---- Function: Build TVSHOWnavigation----- +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +function func_BuildTvShows() { +var Control1 = document.getElementById("navigation"); +var i; +var arrtvshowpackage=DataTVShows.split("|"); +navilinks_full = ""; // deletes all entries of left sidebar +moviewall_full = ""; // deletes all entries of right sidebar + + +// Loop through all entries and check if movie contains "movieset" +//Navigation builder to build whole page dynamically +for (var i=0; i < arrtvshowpackage.length; i++) +{ + +var arrtvshow=arrtvshowpackage[i].split("*"); +var seasonposters = ""; + for (var z=2; z < arrtvshow.length; z++) + { + seasonposters = seasonposters + "|" + arrtvshow[z] + } +seasonposters = "'" + seasonposters + "'" +escape(seasonposters) +navilinks = string_navigation_1TvShow + seasonposters + string_navigation_2 + string_tabindexstart + i + string_tabindexend + arrtvshow[1] + string_navigation_3 + string_navigation_4; +navilinks_full = navilinks_full + navilinks; +} + +Control1.innerHTML = '
      ' + navilinks_full + '
    '; +} +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +//---- Function: Show TvSeasonPosters----- +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +function func_DisplayTvSeason(seasonposters) { +var Control2 = document.getElementById("div_moviewall"); +var i; + +var arrseasonposter=seasonposters.split("|"); + +moviewall_full = ""; // deletes all entries of right sidebar + for (var i=1; i < arrseasonposter.length; i++) + { + func_BuildNavigationTVSeason(arrseasonposter[i]); // Calls LoadPage Function and add match to left and right navigation string variable! + } +Control2.innerHTML = moviewall_full; +} +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +//---- Function: Show TVShowInfo----- +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +function func_ShowDetailsTvSeason(tvshowID) { +//---- TODO - NOT USED at moment, maybe later show TV Season Details...----- +} +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +//---- Function for building left and right navigation of site----- +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +function func_BuildNavigationTVSeason(seasonposter) +{ +//Navigation builder to build whole page dynamically +//navilinks_full = navilinks_full + navilinks; +moviewall = string_tvshowwalllink_1 + "0" + string_tvshowwalllink_2 + "0" + string_tvshowwalllink_3 + string_tvshowwallpic_1 + "export/" + seasonposter + ".jpg" + string_tvshowwallpic_2 + "-" + string_tvshowwallpic_3 + "-" + string_tvshowwallpic_4; +moviewall_full = moviewall_full + moviewall; + +} + + +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +//---- Function: Custom Search [3D MOVIE]----- +// Displays all movies which have MULTIVIEW Scanned <> zero - result also considers watched/unwatched state of checkboxes! +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +function func_SearchThreeD() { + +var doOnce = 0; +var Control1 = document.getElementById("navigation"); +var Control2 = document.getElementById("div_moviewall"); +var i; +navilinks_full = ""; // deletes all entries of left sidebar +moviewall_full = ""; // deletes all entries of right sidebar + +// Loop through all entries and check if movie genre contains "selectedgenre" +for (i = 1;i <= iCount; i++) +{ + +//Now look if 3Dmovie +if (DataThreed[i].toString() !== "") // Returns true if not empty("") or zero (0) -> MULTIVIEW<>"" or MULTIVIEW<>"0" --> Found: 3D Movie! +{ + +// Also consider watched/unwatched state of checkboxes and display accordingly ! + // if watched checkbox is checked -> show watched movies + if(document.getElementById('unwatched').checked == false && document.getElementById('watched').checked == true) + { + if (DataWatched[i].toString() !== "") // Returns true if not empty("") or zero (0) -> PLAYCOUNT<>"" or PLAYCOUNT<>"0" + { + func_BuildNavigation(i); // Calls LoadPage Function and add match to left and right navigation string variable! + } + } + // if unwatched checkbox is checked -> show unwatched movies + else if(document.getElementById('unwatched').checked == true && document.getElementById('watched').checked == false) + { + if (DataWatched[i].toString() == "") // Returns true if empty("") and zero (0) -> PLAYCOUNT="" or PLAYCOUNT="0" + { + func_BuildNavigation(i); // Calls LoadPage Function and add match to left and right navigation string variable! + } + } + // in other case if both checkboxes unchecked/checked show all movies unfiltered... + else + { + func_BuildNavigation(i); // Calls LoadPage Function and add match to left and right navigation string variable! + } +} +} + +Control1.innerHTML = '
      ' + navilinks_full + '
    '; +Control2.innerHTML = moviewall_full; + +} + +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +//---- Function: Open Movie Folder ----- +//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// +function func_OpenFolder(Counter) { + +window.open ('file:///' + DataURL[Counter] + '/' + DataFilename[Counter], '_blank'); + +} + + +/* ****************************************************************************** * // CREDIT: Quaese, Quelle: http://www.tutorials.de/javascript-ajax/283260-javascript-zweidimensionales-array-sortieren.html + * Arrayobjekt um Methode erweitern - Array mit Quicksort nach Spalten sortieren + * + * Parameter: intLower - Untergrenze des Teilbereichs (beim Start i.A. 0) + * intUpper - Obergrenze des Teilbereichs (beim Start i.A. Array.length-1) + * intCol - Spalte, nach der sortiert werden soll (beginnend bei 0) + * ****************************************************************************** */ +Array.prototype.quicksortCol = function(intLower, intUpper, intCol){ + var i = intLower, j = intUpper; + var varHelp = new Array(); + // Teilen des Bereiches und Vergleichswert ermitteln + var varX = this[parseInt(Math.floor(intLower+intUpper)/2)][intCol]; + + // Teilbereiche bearbeiten bis: + // - "linker" Bereich enth�lt alle "kleineren" Werte + // - "rechter" Bereich enth�lt alle "gr�sseren" Werte + do{ + // Solange Wert im linken Teil kleiner ist -> Grenzeindex inkrementieren + while(this[i][intCol] < varX) i++; + // Solange Wert im rechten Teil gr�sser ist -> Grenzindex dekrementieren + while(varX < this[j][intCol]) j--; + + // Untergrenze kleiner als Obergrenze -> Tausch notwendig + if(i<=j){ + var varHelp = this[i]; + this[i] = this[j]; + this[j] = varHelp; + i++; + j--; + } + }while(i - + - + @@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices ' by using the '*' as shown below: ' - - + + diff --git a/Ember Media Manager/Resources/haswatched.png b/Ember Media Manager/Resources/haswatched.png new file mode 100644 index 0000000..bc598ec Binary files /dev/null and b/Ember Media Manager/Resources/haswatched.png differ diff --git a/Ember Media Manager/dlgEditEpisode.Designer.vb b/Ember Media Manager/dlgEditEpisode.Designer.vb index 3741e5d..305b7d4 100644 --- a/Ember Media Manager/dlgEditEpisode.Designer.vb +++ b/Ember Media Manager/dlgEditEpisode.Designer.vb @@ -22,727 +22,741 @@ Partial Class dlgEditEpisode 'Do not modify it using the code editor. _ Private Sub InitializeComponent() - Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(dlgEditEpisode)) - Me.pnlTop = New System.Windows.Forms.Panel() - Me.Label2 = New System.Windows.Forms.Label() - Me.Label1 = New System.Windows.Forms.Label() - Me.PictureBox1 = New System.Windows.Forms.PictureBox() - Me.TabControl1 = New System.Windows.Forms.TabControl() - Me.TabPage1 = New System.Windows.Forms.TabPage() - Me.btnActorDown = New System.Windows.Forms.Button() - Me.btnActorUp = New System.Windows.Forms.Button() - Me.txtAired = New System.Windows.Forms.TextBox() - Me.txtEpisode = New System.Windows.Forms.TextBox() - Me.lblEpisode = New System.Windows.Forms.Label() - Me.txtSeason = New System.Windows.Forms.TextBox() - Me.lblSeason = New System.Windows.Forms.Label() - Me.lblCredits = New System.Windows.Forms.Label() - Me.txtCredits = New System.Windows.Forms.TextBox() - Me.btnEditActor = New System.Windows.Forms.Button() - Me.btnAddActor = New System.Windows.Forms.Button() - Me.btnManual = New System.Windows.Forms.Button() - Me.btnRemove = New System.Windows.Forms.Button() - Me.lblActors = New System.Windows.Forms.Label() - Me.lvActors = New System.Windows.Forms.ListView() - Me.colName = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) - Me.colRole = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) - Me.colThumb = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) - Me.lblDirector = New System.Windows.Forms.Label() - Me.txtDirector = New System.Windows.Forms.TextBox() - Me.lblPlot = New System.Windows.Forms.Label() - Me.txtPlot = New System.Windows.Forms.TextBox() - Me.pbStar5 = New System.Windows.Forms.PictureBox() - Me.pbStar4 = New System.Windows.Forms.PictureBox() - Me.pbStar3 = New System.Windows.Forms.PictureBox() - Me.pbStar2 = New System.Windows.Forms.PictureBox() - Me.pbStar1 = New System.Windows.Forms.PictureBox() - Me.lblRating = New System.Windows.Forms.Label() - Me.lblAired = New System.Windows.Forms.Label() - Me.lblTitle = New System.Windows.Forms.Label() - Me.txtTitle = New System.Windows.Forms.TextBox() - Me.TabPage2 = New System.Windows.Forms.TabPage() - Me.btnSetPosterDL = New System.Windows.Forms.Button() - Me.btnRemovePoster = New System.Windows.Forms.Button() - Me.lblPosterSize = New System.Windows.Forms.Label() - Me.btnSetPosterScrape = New System.Windows.Forms.Button() - Me.btnSetPoster = New System.Windows.Forms.Button() - Me.pbPoster = New System.Windows.Forms.PictureBox() - Me.TabPage3 = New System.Windows.Forms.TabPage() - Me.lblFanartSize = New System.Windows.Forms.Label() - Me.btnSetFanartDL = New System.Windows.Forms.Button() - Me.btnRemoveFanart = New System.Windows.Forms.Button() - Me.btnSetFanartScrape = New System.Windows.Forms.Button() - Me.btnSetFanart = New System.Windows.Forms.Button() - Me.pbFanart = New System.Windows.Forms.PictureBox() - Me.TabPage4 = New System.Windows.Forms.TabPage() - Me.pnlFrameExtrator = New System.Windows.Forms.Panel() - Me.TabPage5 = New System.Windows.Forms.TabPage() - Me.pnlFileInfo = New System.Windows.Forms.Panel() - Me.Cancel_Button = New System.Windows.Forms.Button() - Me.OK_Button = New System.Windows.Forms.Button() - Me.ofdImage = New System.Windows.Forms.OpenFileDialog() - Me.pnlTop.SuspendLayout() - CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() - Me.TabControl1.SuspendLayout() - Me.TabPage1.SuspendLayout() - CType(Me.pbStar5, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.pbStar4, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.pbStar3, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.pbStar2, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.pbStar1, System.ComponentModel.ISupportInitialize).BeginInit() - Me.TabPage2.SuspendLayout() - CType(Me.pbPoster, System.ComponentModel.ISupportInitialize).BeginInit() - Me.TabPage3.SuspendLayout() - CType(Me.pbFanart, System.ComponentModel.ISupportInitialize).BeginInit() - Me.TabPage4.SuspendLayout() - Me.TabPage5.SuspendLayout() - Me.SuspendLayout() - ' - 'pnlTop - ' - Me.pnlTop.BackColor = System.Drawing.Color.LightSteelBlue - Me.pnlTop.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.pnlTop.Controls.Add(Me.Label2) - Me.pnlTop.Controls.Add(Me.Label1) - Me.pnlTop.Controls.Add(Me.PictureBox1) - Me.pnlTop.Dock = System.Windows.Forms.DockStyle.Top - Me.pnlTop.Location = New System.Drawing.Point(0, 0) - Me.pnlTop.Name = "pnlTop" - Me.pnlTop.Size = New System.Drawing.Size(854, 64) - Me.pnlTop.TabIndex = 2 - ' - 'Label2 - ' - Me.Label2.AutoSize = True - Me.Label2.BackColor = System.Drawing.Color.Transparent - Me.Label2.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.Label2.ForeColor = System.Drawing.Color.White - Me.Label2.Location = New System.Drawing.Point(61, 38) - Me.Label2.Name = "Label2" - Me.Label2.Size = New System.Drawing.Size(214, 13) - Me.Label2.TabIndex = 1 - Me.Label2.Text = "Edit the details for the selected episode." - ' - 'Label1 - ' - Me.Label1.AutoSize = True - Me.Label1.BackColor = System.Drawing.Color.Transparent - Me.Label1.Font = New System.Drawing.Font("Segoe UI", 18.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.Label1.ForeColor = System.Drawing.Color.White - Me.Label1.Location = New System.Drawing.Point(58, 3) - Me.Label1.Name = "Label1" - Me.Label1.Size = New System.Drawing.Size(155, 32) - Me.Label1.TabIndex = 0 - Me.Label1.Text = "Edit Episode" - ' - 'PictureBox1 - ' - Me.PictureBox1.BackColor = System.Drawing.Color.Transparent - Me.PictureBox1.ErrorImage = Nothing - Me.PictureBox1.Image = CType(resources.GetObject("PictureBox1.Image"), System.Drawing.Image) - Me.PictureBox1.InitialImage = Nothing - Me.PictureBox1.Location = New System.Drawing.Point(7, 8) - Me.PictureBox1.Name = "PictureBox1" - Me.PictureBox1.Size = New System.Drawing.Size(48, 48) - Me.PictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize - Me.PictureBox1.TabIndex = 0 - Me.PictureBox1.TabStop = False - ' - 'TabControl1 - ' - Me.TabControl1.Controls.Add(Me.TabPage1) - Me.TabControl1.Controls.Add(Me.TabPage2) - Me.TabControl1.Controls.Add(Me.TabPage3) - Me.TabControl1.Controls.Add(Me.TabPage4) - Me.TabControl1.Controls.Add(Me.TabPage5) - Me.TabControl1.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.TabControl1.Location = New System.Drawing.Point(4, 70) - Me.TabControl1.Name = "TabControl1" - Me.TabControl1.SelectedIndex = 0 - Me.TabControl1.Size = New System.Drawing.Size(844, 478) - Me.TabControl1.TabIndex = 3 - ' - 'TabPage1 - ' - Me.TabPage1.Controls.Add(Me.btnActorDown) - Me.TabPage1.Controls.Add(Me.btnActorUp) - Me.TabPage1.Controls.Add(Me.txtAired) - Me.TabPage1.Controls.Add(Me.txtEpisode) - Me.TabPage1.Controls.Add(Me.lblEpisode) - Me.TabPage1.Controls.Add(Me.txtSeason) - Me.TabPage1.Controls.Add(Me.lblSeason) - Me.TabPage1.Controls.Add(Me.lblCredits) - Me.TabPage1.Controls.Add(Me.txtCredits) - Me.TabPage1.Controls.Add(Me.btnEditActor) - Me.TabPage1.Controls.Add(Me.btnAddActor) - Me.TabPage1.Controls.Add(Me.btnManual) - Me.TabPage1.Controls.Add(Me.btnRemove) - Me.TabPage1.Controls.Add(Me.lblActors) - Me.TabPage1.Controls.Add(Me.lvActors) - Me.TabPage1.Controls.Add(Me.lblDirector) - Me.TabPage1.Controls.Add(Me.txtDirector) - Me.TabPage1.Controls.Add(Me.lblPlot) - Me.TabPage1.Controls.Add(Me.txtPlot) - Me.TabPage1.Controls.Add(Me.pbStar5) - Me.TabPage1.Controls.Add(Me.pbStar4) - Me.TabPage1.Controls.Add(Me.pbStar3) - Me.TabPage1.Controls.Add(Me.pbStar2) - Me.TabPage1.Controls.Add(Me.pbStar1) - Me.TabPage1.Controls.Add(Me.lblRating) - Me.TabPage1.Controls.Add(Me.lblAired) - Me.TabPage1.Controls.Add(Me.lblTitle) - Me.TabPage1.Controls.Add(Me.txtTitle) - Me.TabPage1.Location = New System.Drawing.Point(4, 22) - Me.TabPage1.Name = "TabPage1" - Me.TabPage1.Padding = New System.Windows.Forms.Padding(3) - Me.TabPage1.Size = New System.Drawing.Size(836, 452) - Me.TabPage1.TabIndex = 0 - Me.TabPage1.Text = "Details" - Me.TabPage1.UseVisualStyleBackColor = True - ' - 'btnActorDown - ' - Me.btnActorDown.Image = CType(resources.GetObject("btnActorDown.Image"), System.Drawing.Image) - Me.btnActorDown.Location = New System.Drawing.Point(328, 423) - Me.btnActorDown.Name = "btnActorDown" - Me.btnActorDown.Size = New System.Drawing.Size(23, 23) - Me.btnActorDown.TabIndex = 20 - Me.btnActorDown.UseVisualStyleBackColor = True - ' - 'btnActorUp - ' - Me.btnActorUp.Image = CType(resources.GetObject("btnActorUp.Image"), System.Drawing.Image) - Me.btnActorUp.Location = New System.Drawing.Point(304, 423) - Me.btnActorUp.Name = "btnActorUp" - Me.btnActorUp.Size = New System.Drawing.Size(23, 23) - Me.btnActorUp.TabIndex = 19 - Me.btnActorUp.UseVisualStyleBackColor = True - ' - 'txtAired - ' - Me.txtAired.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtAired.Location = New System.Drawing.Point(111, 67) - Me.txtAired.Name = "txtAired" - Me.txtAired.Size = New System.Drawing.Size(88, 22) - Me.txtAired.TabIndex = 9 - ' - 'txtEpisode - ' - Me.txtEpisode.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtEpisode.Location = New System.Drawing.Point(59, 67) - Me.txtEpisode.Name = "txtEpisode" - Me.txtEpisode.Size = New System.Drawing.Size(46, 22) - Me.txtEpisode.TabIndex = 7 - ' - 'lblEpisode - ' - Me.lblEpisode.AutoSize = True - Me.lblEpisode.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblEpisode.Location = New System.Drawing.Point(59, 51) - Me.lblEpisode.Name = "lblEpisode" - Me.lblEpisode.Size = New System.Drawing.Size(51, 13) - Me.lblEpisode.TabIndex = 6 - Me.lblEpisode.Text = "Episode:" - ' - 'txtSeason - ' - Me.txtSeason.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtSeason.Location = New System.Drawing.Point(7, 67) - Me.txtSeason.Name = "txtSeason" - Me.txtSeason.Size = New System.Drawing.Size(46, 22) - Me.txtSeason.TabIndex = 5 - ' - 'lblSeason - ' - Me.lblSeason.AutoSize = True - Me.lblSeason.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblSeason.Location = New System.Drawing.Point(7, 51) - Me.lblSeason.Name = "lblSeason" - Me.lblSeason.Size = New System.Drawing.Size(47, 13) - Me.lblSeason.TabIndex = 4 - Me.lblSeason.Text = "Season:" - ' - 'lblCredits - ' - Me.lblCredits.AutoSize = True - Me.lblCredits.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblCredits.Location = New System.Drawing.Point(217, 139) - Me.lblCredits.Name = "lblCredits" - Me.lblCredits.Size = New System.Drawing.Size(46, 13) - Me.lblCredits.TabIndex = 13 - Me.lblCredits.Text = "Credits:" - ' - 'txtCredits - ' - Me.txtCredits.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtCredits.Location = New System.Drawing.Point(217, 155) - Me.txtCredits.Name = "txtCredits" - Me.txtCredits.Size = New System.Drawing.Size(408, 22) - Me.txtCredits.TabIndex = 14 - ' - 'btnEditActor - ' - Me.btnEditActor.Image = CType(resources.GetObject("btnEditActor.Image"), System.Drawing.Image) - Me.btnEditActor.Location = New System.Drawing.Point(35, 423) - Me.btnEditActor.Name = "btnEditActor" - Me.btnEditActor.Size = New System.Drawing.Size(23, 23) - Me.btnEditActor.TabIndex = 18 - Me.btnEditActor.UseVisualStyleBackColor = True - ' - 'btnAddActor - ' - Me.btnAddActor.Image = CType(resources.GetObject("btnAddActor.Image"), System.Drawing.Image) - Me.btnAddActor.Location = New System.Drawing.Point(6, 423) - Me.btnAddActor.Name = "btnAddActor" - Me.btnAddActor.Size = New System.Drawing.Size(23, 23) - Me.btnAddActor.TabIndex = 17 - Me.btnAddActor.UseVisualStyleBackColor = True - ' - 'btnManual - ' - Me.btnManual.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.btnManual.Location = New System.Drawing.Point(738, 423) - Me.btnManual.Name = "btnManual" - Me.btnManual.Size = New System.Drawing.Size(92, 23) - Me.btnManual.TabIndex = 22 - Me.btnManual.Text = "Manual Edit" - Me.btnManual.UseVisualStyleBackColor = True - ' - 'btnRemove - ' - Me.btnRemove.Image = CType(resources.GetObject("btnRemove.Image"), System.Drawing.Image) - Me.btnRemove.Location = New System.Drawing.Point(602, 423) - Me.btnRemove.Name = "btnRemove" - Me.btnRemove.Size = New System.Drawing.Size(23, 23) - Me.btnRemove.TabIndex = 21 - Me.btnRemove.UseVisualStyleBackColor = True - ' - 'lblActors - ' - Me.lblActors.AutoSize = True - Me.lblActors.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblActors.Location = New System.Drawing.Point(7, 188) - Me.lblActors.Name = "lblActors" - Me.lblActors.Size = New System.Drawing.Size(43, 13) - Me.lblActors.TabIndex = 15 - Me.lblActors.Text = "Actors:" - ' - 'lvActors - ' - Me.lvActors.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.colName, Me.colRole, Me.colThumb}) - Me.lvActors.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lvActors.FullRowSelect = True - Me.lvActors.Location = New System.Drawing.Point(7, 204) - Me.lvActors.Name = "lvActors" - Me.lvActors.Size = New System.Drawing.Size(618, 213) - Me.lvActors.TabIndex = 16 - Me.lvActors.UseCompatibleStateImageBehavior = False - Me.lvActors.View = System.Windows.Forms.View.Details - ' - 'colName - ' - Me.colName.Text = "Name" - Me.colName.Width = 110 - ' - 'colRole - ' - Me.colRole.Text = "Role" - Me.colRole.Width = 100 - ' - 'colThumb - ' - Me.colThumb.Text = "Thumb" - Me.colThumb.Width = 387 - ' - 'lblDirector - ' - Me.lblDirector.AutoSize = True - Me.lblDirector.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblDirector.Location = New System.Drawing.Point(7, 139) - Me.lblDirector.Name = "lblDirector" - Me.lblDirector.Size = New System.Drawing.Size(51, 13) - Me.lblDirector.TabIndex = 11 - Me.lblDirector.Text = "Director:" - ' - 'txtDirector - ' - Me.txtDirector.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtDirector.Location = New System.Drawing.Point(7, 155) - Me.txtDirector.Name = "txtDirector" - Me.txtDirector.Size = New System.Drawing.Size(192, 22) - Me.txtDirector.TabIndex = 12 - ' - 'lblPlot - ' - Me.lblPlot.AutoSize = True - Me.lblPlot.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblPlot.Location = New System.Drawing.Point(217, 7) - Me.lblPlot.Name = "lblPlot" - Me.lblPlot.Size = New System.Drawing.Size(31, 13) - Me.lblPlot.TabIndex = 2 - Me.lblPlot.Text = "Plot:" - ' - 'txtPlot - ' - Me.txtPlot.AcceptsReturn = True - Me.txtPlot.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtPlot.Location = New System.Drawing.Point(217, 26) - Me.txtPlot.Multiline = True - Me.txtPlot.Name = "txtPlot" - Me.txtPlot.Size = New System.Drawing.Size(611, 108) - Me.txtPlot.TabIndex = 3 - ' - 'pbStar5 - ' - Me.pbStar5.Location = New System.Drawing.Point(104, 110) - Me.pbStar5.Name = "pbStar5" - Me.pbStar5.Size = New System.Drawing.Size(24, 24) - Me.pbStar5.TabIndex = 67 - Me.pbStar5.TabStop = False - ' - 'pbStar4 - ' - Me.pbStar4.Location = New System.Drawing.Point(80, 110) - Me.pbStar4.Name = "pbStar4" - Me.pbStar4.Size = New System.Drawing.Size(24, 24) - Me.pbStar4.TabIndex = 66 - Me.pbStar4.TabStop = False - ' - 'pbStar3 - ' - Me.pbStar3.Location = New System.Drawing.Point(56, 110) - Me.pbStar3.Name = "pbStar3" - Me.pbStar3.Size = New System.Drawing.Size(24, 24) - Me.pbStar3.TabIndex = 65 - Me.pbStar3.TabStop = False - ' - 'pbStar2 - ' - Me.pbStar2.Location = New System.Drawing.Point(32, 110) - Me.pbStar2.Name = "pbStar2" - Me.pbStar2.Size = New System.Drawing.Size(24, 24) - Me.pbStar2.TabIndex = 64 - Me.pbStar2.TabStop = False - ' - 'pbStar1 - ' - Me.pbStar1.Location = New System.Drawing.Point(8, 110) - Me.pbStar1.Name = "pbStar1" - Me.pbStar1.Size = New System.Drawing.Size(24, 24) - Me.pbStar1.TabIndex = 63 - Me.pbStar1.TabStop = False - ' - 'lblRating - ' - Me.lblRating.AutoSize = True - Me.lblRating.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblRating.Location = New System.Drawing.Point(7, 94) - Me.lblRating.Name = "lblRating" - Me.lblRating.Size = New System.Drawing.Size(44, 13) - Me.lblRating.TabIndex = 10 - Me.lblRating.Text = "Rating:" - ' - 'lblAired - ' - Me.lblAired.AutoSize = True - Me.lblAired.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblAired.Location = New System.Drawing.Point(111, 51) - Me.lblAired.Name = "lblAired" - Me.lblAired.Size = New System.Drawing.Size(38, 13) - Me.lblAired.TabIndex = 8 - Me.lblAired.Text = "Aired:" - ' - 'lblTitle - ' - Me.lblTitle.AutoSize = True - Me.lblTitle.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblTitle.Location = New System.Drawing.Point(7, 7) - Me.lblTitle.Name = "lblTitle" - Me.lblTitle.Size = New System.Drawing.Size(32, 13) - Me.lblTitle.TabIndex = 0 - Me.lblTitle.Text = "Title:" - ' - 'txtTitle - ' - Me.txtTitle.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtTitle.Location = New System.Drawing.Point(7, 26) - Me.txtTitle.Name = "txtTitle" - Me.txtTitle.Size = New System.Drawing.Size(192, 22) - Me.txtTitle.TabIndex = 1 - ' - 'TabPage2 - ' - Me.TabPage2.Controls.Add(Me.btnSetPosterDL) - Me.TabPage2.Controls.Add(Me.btnRemovePoster) - Me.TabPage2.Controls.Add(Me.lblPosterSize) - Me.TabPage2.Controls.Add(Me.btnSetPosterScrape) - Me.TabPage2.Controls.Add(Me.btnSetPoster) - Me.TabPage2.Controls.Add(Me.pbPoster) - Me.TabPage2.Location = New System.Drawing.Point(4, 22) - Me.TabPage2.Name = "TabPage2" - Me.TabPage2.Padding = New System.Windows.Forms.Padding(3) - Me.TabPage2.Size = New System.Drawing.Size(836, 452) - Me.TabPage2.TabIndex = 1 - Me.TabPage2.Text = "Poster" - Me.TabPage2.UseVisualStyleBackColor = True - ' - 'btnSetPosterDL - ' - Me.btnSetPosterDL.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.btnSetPosterDL.Image = CType(resources.GetObject("btnSetPosterDL.Image"), System.Drawing.Image) - Me.btnSetPosterDL.ImageAlign = System.Drawing.ContentAlignment.TopCenter - Me.btnSetPosterDL.Location = New System.Drawing.Point(735, 180) - Me.btnSetPosterDL.Name = "btnSetPosterDL" - Me.btnSetPosterDL.Size = New System.Drawing.Size(96, 83) - Me.btnSetPosterDL.TabIndex = 3 - Me.btnSetPosterDL.Text = "Change Poster (Download)" - Me.btnSetPosterDL.TextAlign = System.Drawing.ContentAlignment.BottomCenter - Me.btnSetPosterDL.UseVisualStyleBackColor = True - ' - 'btnRemovePoster - ' - Me.btnRemovePoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.btnRemovePoster.Image = CType(resources.GetObject("btnRemovePoster.Image"), System.Drawing.Image) - Me.btnRemovePoster.ImageAlign = System.Drawing.ContentAlignment.TopCenter - Me.btnRemovePoster.Location = New System.Drawing.Point(735, 363) - Me.btnRemovePoster.Name = "btnRemovePoster" - Me.btnRemovePoster.Size = New System.Drawing.Size(96, 83) - Me.btnRemovePoster.TabIndex = 4 - Me.btnRemovePoster.Text = "Remove Poster" - Me.btnRemovePoster.TextAlign = System.Drawing.ContentAlignment.BottomCenter - Me.btnRemovePoster.UseVisualStyleBackColor = True - ' - 'lblPosterSize - ' - Me.lblPosterSize.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.lblPosterSize.Location = New System.Drawing.Point(8, 8) - Me.lblPosterSize.Name = "lblPosterSize" - Me.lblPosterSize.Size = New System.Drawing.Size(104, 23) - Me.lblPosterSize.TabIndex = 0 - Me.lblPosterSize.Text = "Size: (XXXXxXXXX)" - Me.lblPosterSize.TextAlign = System.Drawing.ContentAlignment.MiddleCenter - Me.lblPosterSize.Visible = False - ' - 'btnSetPosterScrape - ' - Me.btnSetPosterScrape.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.btnSetPosterScrape.Image = CType(resources.GetObject("btnSetPosterScrape.Image"), System.Drawing.Image) - Me.btnSetPosterScrape.ImageAlign = System.Drawing.ContentAlignment.TopCenter - Me.btnSetPosterScrape.Location = New System.Drawing.Point(735, 93) - Me.btnSetPosterScrape.Name = "btnSetPosterScrape" - Me.btnSetPosterScrape.Size = New System.Drawing.Size(96, 83) - Me.btnSetPosterScrape.TabIndex = 2 - Me.btnSetPosterScrape.Text = "Change Poster (Scrape)" - Me.btnSetPosterScrape.TextAlign = System.Drawing.ContentAlignment.BottomCenter - Me.btnSetPosterScrape.UseVisualStyleBackColor = True - ' - 'btnSetPoster - ' - Me.btnSetPoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.btnSetPoster.Image = CType(resources.GetObject("btnSetPoster.Image"), System.Drawing.Image) - Me.btnSetPoster.ImageAlign = System.Drawing.ContentAlignment.TopCenter - Me.btnSetPoster.Location = New System.Drawing.Point(735, 6) - Me.btnSetPoster.Name = "btnSetPoster" - Me.btnSetPoster.Size = New System.Drawing.Size(96, 83) - Me.btnSetPoster.TabIndex = 1 - Me.btnSetPoster.Text = "Change Poster (Local)" - Me.btnSetPoster.TextAlign = System.Drawing.ContentAlignment.BottomCenter - Me.btnSetPoster.UseVisualStyleBackColor = True - ' - 'pbPoster - ' - Me.pbPoster.BackColor = System.Drawing.Color.DimGray - Me.pbPoster.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.pbPoster.Location = New System.Drawing.Point(6, 6) - Me.pbPoster.Name = "pbPoster" - Me.pbPoster.Size = New System.Drawing.Size(724, 440) - Me.pbPoster.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom - Me.pbPoster.TabIndex = 0 - Me.pbPoster.TabStop = False - ' - 'TabPage3 - ' - Me.TabPage3.Controls.Add(Me.lblFanartSize) - Me.TabPage3.Controls.Add(Me.btnSetFanartDL) - Me.TabPage3.Controls.Add(Me.btnRemoveFanart) - Me.TabPage3.Controls.Add(Me.btnSetFanartScrape) - Me.TabPage3.Controls.Add(Me.btnSetFanart) - Me.TabPage3.Controls.Add(Me.pbFanart) - Me.TabPage3.Location = New System.Drawing.Point(4, 22) - Me.TabPage3.Name = "TabPage3" - Me.TabPage3.Padding = New System.Windows.Forms.Padding(3) - Me.TabPage3.Size = New System.Drawing.Size(836, 452) - Me.TabPage3.TabIndex = 6 - Me.TabPage3.Text = "Fanart" - Me.TabPage3.UseVisualStyleBackColor = True - ' - 'lblFanartSize - ' - Me.lblFanartSize.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.lblFanartSize.Location = New System.Drawing.Point(8, 8) - Me.lblFanartSize.Name = "lblFanartSize" - Me.lblFanartSize.Size = New System.Drawing.Size(104, 23) - Me.lblFanartSize.TabIndex = 0 - Me.lblFanartSize.Text = "Size: (XXXXxXXXX)" - Me.lblFanartSize.TextAlign = System.Drawing.ContentAlignment.MiddleCenter - Me.lblFanartSize.Visible = False - ' - 'btnSetFanartDL - ' - Me.btnSetFanartDL.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.btnSetFanartDL.Image = CType(resources.GetObject("btnSetFanartDL.Image"), System.Drawing.Image) - Me.btnSetFanartDL.ImageAlign = System.Drawing.ContentAlignment.TopCenter - Me.btnSetFanartDL.Location = New System.Drawing.Point(735, 180) - Me.btnSetFanartDL.Name = "btnSetFanartDL" - Me.btnSetFanartDL.Size = New System.Drawing.Size(96, 83) - Me.btnSetFanartDL.TabIndex = 3 - Me.btnSetFanartDL.Text = "Change Fanart (Download)" - Me.btnSetFanartDL.TextAlign = System.Drawing.ContentAlignment.BottomCenter - Me.btnSetFanartDL.UseVisualStyleBackColor = True - ' - 'btnRemoveFanart - ' - Me.btnRemoveFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.btnRemoveFanart.Image = CType(resources.GetObject("btnRemoveFanart.Image"), System.Drawing.Image) - Me.btnRemoveFanart.ImageAlign = System.Drawing.ContentAlignment.TopCenter - Me.btnRemoveFanart.Location = New System.Drawing.Point(735, 363) - Me.btnRemoveFanart.Name = "btnRemoveFanart" - Me.btnRemoveFanart.Size = New System.Drawing.Size(96, 83) - Me.btnRemoveFanart.TabIndex = 4 - Me.btnRemoveFanart.Text = "Remove Fanart" - Me.btnRemoveFanart.TextAlign = System.Drawing.ContentAlignment.BottomCenter - Me.btnRemoveFanart.UseVisualStyleBackColor = True - ' - 'btnSetFanartScrape - ' - Me.btnSetFanartScrape.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.btnSetFanartScrape.Image = CType(resources.GetObject("btnSetFanartScrape.Image"), System.Drawing.Image) - Me.btnSetFanartScrape.ImageAlign = System.Drawing.ContentAlignment.TopCenter - Me.btnSetFanartScrape.Location = New System.Drawing.Point(735, 93) - Me.btnSetFanartScrape.Name = "btnSetFanartScrape" - Me.btnSetFanartScrape.Size = New System.Drawing.Size(96, 83) - Me.btnSetFanartScrape.TabIndex = 2 - Me.btnSetFanartScrape.Text = "Change Fanart (Scrape)" - Me.btnSetFanartScrape.TextAlign = System.Drawing.ContentAlignment.BottomCenter - Me.btnSetFanartScrape.UseVisualStyleBackColor = True - ' - 'btnSetFanart - ' - Me.btnSetFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.btnSetFanart.Image = CType(resources.GetObject("btnSetFanart.Image"), System.Drawing.Image) - Me.btnSetFanart.ImageAlign = System.Drawing.ContentAlignment.TopCenter - Me.btnSetFanart.Location = New System.Drawing.Point(735, 6) - Me.btnSetFanart.Name = "btnSetFanart" - Me.btnSetFanart.Size = New System.Drawing.Size(96, 83) - Me.btnSetFanart.TabIndex = 1 - Me.btnSetFanart.Text = "Change Fanart (Local)" - Me.btnSetFanart.TextAlign = System.Drawing.ContentAlignment.BottomCenter - Me.btnSetFanart.UseVisualStyleBackColor = True - ' - 'pbFanart - ' - Me.pbFanart.BackColor = System.Drawing.Color.DimGray - Me.pbFanart.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.pbFanart.Location = New System.Drawing.Point(6, 6) - Me.pbFanart.Name = "pbFanart" - Me.pbFanart.Size = New System.Drawing.Size(724, 440) - Me.pbFanart.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom - Me.pbFanart.TabIndex = 30 - Me.pbFanart.TabStop = False - ' - 'TabPage4 - ' - Me.TabPage4.Controls.Add(Me.pnlFrameExtrator) - Me.TabPage4.Location = New System.Drawing.Point(4, 22) - Me.TabPage4.Name = "TabPage4" - Me.TabPage4.Padding = New System.Windows.Forms.Padding(3) - Me.TabPage4.Size = New System.Drawing.Size(836, 452) - Me.TabPage4.TabIndex = 3 - Me.TabPage4.Text = "Frame Extraction" - Me.TabPage4.UseVisualStyleBackColor = True - ' - 'pnlFrameExtrator - ' - Me.pnlFrameExtrator.Location = New System.Drawing.Point(1, 0) - Me.pnlFrameExtrator.Name = "pnlFrameExtrator" - Me.pnlFrameExtrator.Size = New System.Drawing.Size(834, 452) - Me.pnlFrameExtrator.TabIndex = 0 - ' - 'TabPage5 - ' - Me.TabPage5.Controls.Add(Me.pnlFileInfo) - Me.TabPage5.Location = New System.Drawing.Point(4, 22) - Me.TabPage5.Name = "TabPage5" - Me.TabPage5.Padding = New System.Windows.Forms.Padding(3) - Me.TabPage5.Size = New System.Drawing.Size(836, 452) - Me.TabPage5.TabIndex = 5 - Me.TabPage5.Text = "Meta Data" - Me.TabPage5.UseVisualStyleBackColor = True - ' - 'pnlFileInfo - ' - Me.pnlFileInfo.Location = New System.Drawing.Point(-4, 0) - Me.pnlFileInfo.Name = "pnlFileInfo" - Me.pnlFileInfo.Size = New System.Drawing.Size(844, 452) - Me.pnlFileInfo.TabIndex = 0 - ' - 'Cancel_Button - ' - Me.Cancel_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel - Me.Cancel_Button.Location = New System.Drawing.Point(781, 553) - Me.Cancel_Button.Name = "Cancel_Button" - Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) - Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" - ' - 'OK_Button - ' - Me.OK_Button.Location = New System.Drawing.Point(708, 553) - Me.OK_Button.Name = "OK_Button" - Me.OK_Button.Size = New System.Drawing.Size(67, 23) - Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" - ' - 'dlgEditEpisode - ' - Me.AcceptButton = Me.OK_Button - Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi - Me.CancelButton = Me.Cancel_Button - Me.ClientSize = New System.Drawing.Size(854, 582) - Me.Controls.Add(Me.TabControl1) - Me.Controls.Add(Me.Cancel_Button) - Me.Controls.Add(Me.OK_Button) - Me.Controls.Add(Me.pnlTop) - Me.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog - Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) - Me.MaximizeBox = False - Me.MinimizeBox = False - Me.Name = "dlgEditEpisode" - Me.ShowInTaskbar = False - Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Edit Episode" - Me.pnlTop.ResumeLayout(False) - Me.pnlTop.PerformLayout() - CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() - Me.TabControl1.ResumeLayout(False) - Me.TabPage1.ResumeLayout(False) - Me.TabPage1.PerformLayout() - CType(Me.pbStar5, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.pbStar4, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.pbStar3, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.pbStar2, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.pbStar1, System.ComponentModel.ISupportInitialize).EndInit() - Me.TabPage2.ResumeLayout(False) - CType(Me.pbPoster, System.ComponentModel.ISupportInitialize).EndInit() - Me.TabPage3.ResumeLayout(False) - CType(Me.pbFanart, System.ComponentModel.ISupportInitialize).EndInit() - Me.TabPage4.ResumeLayout(False) - Me.TabPage5.ResumeLayout(False) - Me.ResumeLayout(False) + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(dlgEditEpisode)) + Me.pnlTop = New System.Windows.Forms.Panel() + Me.Label2 = New System.Windows.Forms.Label() + Me.Label1 = New System.Windows.Forms.Label() + Me.PictureBox1 = New System.Windows.Forms.PictureBox() + Me.TabControl1 = New System.Windows.Forms.TabControl() + Me.TabPage1 = New System.Windows.Forms.TabPage() + Me.btnActorDown = New System.Windows.Forms.Button() + Me.btnActorUp = New System.Windows.Forms.Button() + Me.txtAired = New System.Windows.Forms.TextBox() + Me.txtEpisode = New System.Windows.Forms.TextBox() + Me.lblEpisode = New System.Windows.Forms.Label() + Me.txtSeason = New System.Windows.Forms.TextBox() + Me.lblSeason = New System.Windows.Forms.Label() + Me.lblCredits = New System.Windows.Forms.Label() + Me.txtCredits = New System.Windows.Forms.TextBox() + Me.btnEditActor = New System.Windows.Forms.Button() + Me.btnAddActor = New System.Windows.Forms.Button() + Me.btnManual = New System.Windows.Forms.Button() + Me.btnRemove = New System.Windows.Forms.Button() + Me.lblActors = New System.Windows.Forms.Label() + Me.lvActors = New System.Windows.Forms.ListView() + Me.colName = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.colRole = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.colThumb = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.lblDirector = New System.Windows.Forms.Label() + Me.txtDirector = New System.Windows.Forms.TextBox() + Me.lblPlot = New System.Windows.Forms.Label() + Me.txtPlot = New System.Windows.Forms.TextBox() + Me.pbStar5 = New System.Windows.Forms.PictureBox() + Me.pbStar4 = New System.Windows.Forms.PictureBox() + Me.pbStar3 = New System.Windows.Forms.PictureBox() + Me.pbStar2 = New System.Windows.Forms.PictureBox() + Me.pbStar1 = New System.Windows.Forms.PictureBox() + Me.lblRating = New System.Windows.Forms.Label() + Me.lblAired = New System.Windows.Forms.Label() + Me.lblTitle = New System.Windows.Forms.Label() + Me.txtTitle = New System.Windows.Forms.TextBox() + Me.TabPage2 = New System.Windows.Forms.TabPage() + Me.btnSetPosterDL = New System.Windows.Forms.Button() + Me.btnRemovePoster = New System.Windows.Forms.Button() + Me.lblPosterSize = New System.Windows.Forms.Label() + Me.btnSetPosterScrape = New System.Windows.Forms.Button() + Me.btnSetPoster = New System.Windows.Forms.Button() + Me.pbPoster = New System.Windows.Forms.PictureBox() + Me.TabPage3 = New System.Windows.Forms.TabPage() + Me.lblFanartSize = New System.Windows.Forms.Label() + Me.btnSetFanartDL = New System.Windows.Forms.Button() + Me.btnRemoveFanart = New System.Windows.Forms.Button() + Me.btnSetFanartScrape = New System.Windows.Forms.Button() + Me.btnSetFanart = New System.Windows.Forms.Button() + Me.pbFanart = New System.Windows.Forms.PictureBox() + Me.TabPage4 = New System.Windows.Forms.TabPage() + Me.pnlFrameExtrator = New System.Windows.Forms.Panel() + Me.TabPage5 = New System.Windows.Forms.TabPage() + Me.pnlFileInfo = New System.Windows.Forms.Panel() + Me.Cancel_Button = New System.Windows.Forms.Button() + Me.OK_Button = New System.Windows.Forms.Button() + Me.ofdImage = New System.Windows.Forms.OpenFileDialog() + Me.chkWatched = New System.Windows.Forms.CheckBox() + Me.pnlTop.SuspendLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.TabControl1.SuspendLayout() + Me.TabPage1.SuspendLayout() + CType(Me.pbStar5, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.pbStar4, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.pbStar3, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.pbStar2, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.pbStar1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.TabPage2.SuspendLayout() + CType(Me.pbPoster, System.ComponentModel.ISupportInitialize).BeginInit() + Me.TabPage3.SuspendLayout() + CType(Me.pbFanart, System.ComponentModel.ISupportInitialize).BeginInit() + Me.TabPage4.SuspendLayout() + Me.TabPage5.SuspendLayout() + Me.SuspendLayout() + ' + 'pnlTop + ' + Me.pnlTop.BackColor = System.Drawing.Color.LightSteelBlue + Me.pnlTop.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.pnlTop.Controls.Add(Me.Label2) + Me.pnlTop.Controls.Add(Me.Label1) + Me.pnlTop.Controls.Add(Me.PictureBox1) + Me.pnlTop.Dock = System.Windows.Forms.DockStyle.Top + Me.pnlTop.Location = New System.Drawing.Point(0, 0) + Me.pnlTop.Name = "pnlTop" + Me.pnlTop.Size = New System.Drawing.Size(854, 64) + Me.pnlTop.TabIndex = 2 + ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.BackColor = System.Drawing.Color.Transparent + Me.Label2.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Label2.ForeColor = System.Drawing.Color.White + Me.Label2.Location = New System.Drawing.Point(61, 38) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(214, 13) + Me.Label2.TabIndex = 1 + Me.Label2.Text = "Edit the details for the selected episode." + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.BackColor = System.Drawing.Color.Transparent + Me.Label1.Font = New System.Drawing.Font("Segoe UI", 18.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Label1.ForeColor = System.Drawing.Color.White + Me.Label1.Location = New System.Drawing.Point(58, 3) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(155, 32) + Me.Label1.TabIndex = 0 + Me.Label1.Text = "Edit Episode" + ' + 'PictureBox1 + ' + Me.PictureBox1.BackColor = System.Drawing.Color.Transparent + Me.PictureBox1.ErrorImage = Nothing + Me.PictureBox1.Image = CType(resources.GetObject("PictureBox1.Image"), System.Drawing.Image) + Me.PictureBox1.InitialImage = Nothing + Me.PictureBox1.Location = New System.Drawing.Point(7, 8) + Me.PictureBox1.Name = "PictureBox1" + Me.PictureBox1.Size = New System.Drawing.Size(48, 48) + Me.PictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize + Me.PictureBox1.TabIndex = 0 + Me.PictureBox1.TabStop = False + ' + 'TabControl1 + ' + Me.TabControl1.Controls.Add(Me.TabPage1) + Me.TabControl1.Controls.Add(Me.TabPage2) + Me.TabControl1.Controls.Add(Me.TabPage3) + Me.TabControl1.Controls.Add(Me.TabPage4) + Me.TabControl1.Controls.Add(Me.TabPage5) + Me.TabControl1.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.TabControl1.Location = New System.Drawing.Point(4, 70) + Me.TabControl1.Name = "TabControl1" + Me.TabControl1.SelectedIndex = 0 + Me.TabControl1.Size = New System.Drawing.Size(844, 478) + Me.TabControl1.TabIndex = 3 + ' + 'TabPage1 + ' + Me.TabPage1.Controls.Add(Me.btnActorDown) + Me.TabPage1.Controls.Add(Me.btnActorUp) + Me.TabPage1.Controls.Add(Me.txtAired) + Me.TabPage1.Controls.Add(Me.txtEpisode) + Me.TabPage1.Controls.Add(Me.lblEpisode) + Me.TabPage1.Controls.Add(Me.txtSeason) + Me.TabPage1.Controls.Add(Me.lblSeason) + Me.TabPage1.Controls.Add(Me.lblCredits) + Me.TabPage1.Controls.Add(Me.txtCredits) + Me.TabPage1.Controls.Add(Me.btnEditActor) + Me.TabPage1.Controls.Add(Me.btnAddActor) + Me.TabPage1.Controls.Add(Me.btnManual) + Me.TabPage1.Controls.Add(Me.btnRemove) + Me.TabPage1.Controls.Add(Me.lblActors) + Me.TabPage1.Controls.Add(Me.lvActors) + Me.TabPage1.Controls.Add(Me.lblDirector) + Me.TabPage1.Controls.Add(Me.txtDirector) + Me.TabPage1.Controls.Add(Me.lblPlot) + Me.TabPage1.Controls.Add(Me.txtPlot) + Me.TabPage1.Controls.Add(Me.pbStar5) + Me.TabPage1.Controls.Add(Me.pbStar4) + Me.TabPage1.Controls.Add(Me.pbStar3) + Me.TabPage1.Controls.Add(Me.pbStar2) + Me.TabPage1.Controls.Add(Me.pbStar1) + Me.TabPage1.Controls.Add(Me.lblRating) + Me.TabPage1.Controls.Add(Me.lblAired) + Me.TabPage1.Controls.Add(Me.lblTitle) + Me.TabPage1.Controls.Add(Me.txtTitle) + Me.TabPage1.Location = New System.Drawing.Point(4, 22) + Me.TabPage1.Name = "TabPage1" + Me.TabPage1.Padding = New System.Windows.Forms.Padding(3) + Me.TabPage1.Size = New System.Drawing.Size(836, 452) + Me.TabPage1.TabIndex = 0 + Me.TabPage1.Text = "Details" + Me.TabPage1.UseVisualStyleBackColor = True + ' + 'btnActorDown + ' + Me.btnActorDown.Image = CType(resources.GetObject("btnActorDown.Image"), System.Drawing.Image) + Me.btnActorDown.Location = New System.Drawing.Point(328, 423) + Me.btnActorDown.Name = "btnActorDown" + Me.btnActorDown.Size = New System.Drawing.Size(23, 23) + Me.btnActorDown.TabIndex = 20 + Me.btnActorDown.UseVisualStyleBackColor = True + ' + 'btnActorUp + ' + Me.btnActorUp.Image = CType(resources.GetObject("btnActorUp.Image"), System.Drawing.Image) + Me.btnActorUp.Location = New System.Drawing.Point(304, 423) + Me.btnActorUp.Name = "btnActorUp" + Me.btnActorUp.Size = New System.Drawing.Size(23, 23) + Me.btnActorUp.TabIndex = 19 + Me.btnActorUp.UseVisualStyleBackColor = True + ' + 'txtAired + ' + Me.txtAired.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtAired.Location = New System.Drawing.Point(111, 67) + Me.txtAired.Name = "txtAired" + Me.txtAired.Size = New System.Drawing.Size(88, 22) + Me.txtAired.TabIndex = 9 + ' + 'txtEpisode + ' + Me.txtEpisode.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtEpisode.Location = New System.Drawing.Point(59, 67) + Me.txtEpisode.Name = "txtEpisode" + Me.txtEpisode.Size = New System.Drawing.Size(46, 22) + Me.txtEpisode.TabIndex = 7 + ' + 'lblEpisode + ' + Me.lblEpisode.AutoSize = True + Me.lblEpisode.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblEpisode.Location = New System.Drawing.Point(59, 51) + Me.lblEpisode.Name = "lblEpisode" + Me.lblEpisode.Size = New System.Drawing.Size(51, 13) + Me.lblEpisode.TabIndex = 6 + Me.lblEpisode.Text = "Episode:" + ' + 'txtSeason + ' + Me.txtSeason.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtSeason.Location = New System.Drawing.Point(7, 67) + Me.txtSeason.Name = "txtSeason" + Me.txtSeason.Size = New System.Drawing.Size(46, 22) + Me.txtSeason.TabIndex = 5 + ' + 'lblSeason + ' + Me.lblSeason.AutoSize = True + Me.lblSeason.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblSeason.Location = New System.Drawing.Point(7, 51) + Me.lblSeason.Name = "lblSeason" + Me.lblSeason.Size = New System.Drawing.Size(47, 13) + Me.lblSeason.TabIndex = 4 + Me.lblSeason.Text = "Season:" + ' + 'lblCredits + ' + Me.lblCredits.AutoSize = True + Me.lblCredits.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblCredits.Location = New System.Drawing.Point(217, 139) + Me.lblCredits.Name = "lblCredits" + Me.lblCredits.Size = New System.Drawing.Size(46, 13) + Me.lblCredits.TabIndex = 13 + Me.lblCredits.Text = "Credits:" + ' + 'txtCredits + ' + Me.txtCredits.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtCredits.Location = New System.Drawing.Point(217, 155) + Me.txtCredits.Name = "txtCredits" + Me.txtCredits.Size = New System.Drawing.Size(408, 22) + Me.txtCredits.TabIndex = 14 + ' + 'btnEditActor + ' + Me.btnEditActor.Image = CType(resources.GetObject("btnEditActor.Image"), System.Drawing.Image) + Me.btnEditActor.Location = New System.Drawing.Point(35, 423) + Me.btnEditActor.Name = "btnEditActor" + Me.btnEditActor.Size = New System.Drawing.Size(23, 23) + Me.btnEditActor.TabIndex = 18 + Me.btnEditActor.UseVisualStyleBackColor = True + ' + 'btnAddActor + ' + Me.btnAddActor.Image = CType(resources.GetObject("btnAddActor.Image"), System.Drawing.Image) + Me.btnAddActor.Location = New System.Drawing.Point(6, 423) + Me.btnAddActor.Name = "btnAddActor" + Me.btnAddActor.Size = New System.Drawing.Size(23, 23) + Me.btnAddActor.TabIndex = 17 + Me.btnAddActor.UseVisualStyleBackColor = True + ' + 'btnManual + ' + Me.btnManual.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.btnManual.Location = New System.Drawing.Point(738, 423) + Me.btnManual.Name = "btnManual" + Me.btnManual.Size = New System.Drawing.Size(92, 23) + Me.btnManual.TabIndex = 22 + Me.btnManual.Text = "Manual Edit" + Me.btnManual.UseVisualStyleBackColor = True + ' + 'btnRemove + ' + Me.btnRemove.Image = CType(resources.GetObject("btnRemove.Image"), System.Drawing.Image) + Me.btnRemove.Location = New System.Drawing.Point(602, 423) + Me.btnRemove.Name = "btnRemove" + Me.btnRemove.Size = New System.Drawing.Size(23, 23) + Me.btnRemove.TabIndex = 21 + Me.btnRemove.UseVisualStyleBackColor = True + ' + 'lblActors + ' + Me.lblActors.AutoSize = True + Me.lblActors.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblActors.Location = New System.Drawing.Point(7, 188) + Me.lblActors.Name = "lblActors" + Me.lblActors.Size = New System.Drawing.Size(43, 13) + Me.lblActors.TabIndex = 15 + Me.lblActors.Text = "Actors:" + ' + 'lvActors + ' + Me.lvActors.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.colName, Me.colRole, Me.colThumb}) + Me.lvActors.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lvActors.FullRowSelect = True + Me.lvActors.Location = New System.Drawing.Point(7, 204) + Me.lvActors.Name = "lvActors" + Me.lvActors.Size = New System.Drawing.Size(618, 213) + Me.lvActors.TabIndex = 16 + Me.lvActors.UseCompatibleStateImageBehavior = False + Me.lvActors.View = System.Windows.Forms.View.Details + ' + 'colName + ' + Me.colName.Text = "Name" + Me.colName.Width = 110 + ' + 'colRole + ' + Me.colRole.Text = "Role" + Me.colRole.Width = 100 + ' + 'colThumb + ' + Me.colThumb.Text = "Thumb" + Me.colThumb.Width = 387 + ' + 'lblDirector + ' + Me.lblDirector.AutoSize = True + Me.lblDirector.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblDirector.Location = New System.Drawing.Point(7, 139) + Me.lblDirector.Name = "lblDirector" + Me.lblDirector.Size = New System.Drawing.Size(51, 13) + Me.lblDirector.TabIndex = 11 + Me.lblDirector.Text = "Director:" + ' + 'txtDirector + ' + Me.txtDirector.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtDirector.Location = New System.Drawing.Point(7, 155) + Me.txtDirector.Name = "txtDirector" + Me.txtDirector.Size = New System.Drawing.Size(192, 22) + Me.txtDirector.TabIndex = 12 + ' + 'lblPlot + ' + Me.lblPlot.AutoSize = True + Me.lblPlot.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblPlot.Location = New System.Drawing.Point(217, 7) + Me.lblPlot.Name = "lblPlot" + Me.lblPlot.Size = New System.Drawing.Size(31, 13) + Me.lblPlot.TabIndex = 2 + Me.lblPlot.Text = "Plot:" + ' + 'txtPlot + ' + Me.txtPlot.AcceptsReturn = True + Me.txtPlot.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtPlot.Location = New System.Drawing.Point(217, 26) + Me.txtPlot.Multiline = True + Me.txtPlot.Name = "txtPlot" + Me.txtPlot.Size = New System.Drawing.Size(611, 108) + Me.txtPlot.TabIndex = 3 + ' + 'pbStar5 + ' + Me.pbStar5.Location = New System.Drawing.Point(104, 110) + Me.pbStar5.Name = "pbStar5" + Me.pbStar5.Size = New System.Drawing.Size(24, 24) + Me.pbStar5.TabIndex = 67 + Me.pbStar5.TabStop = False + ' + 'pbStar4 + ' + Me.pbStar4.Location = New System.Drawing.Point(80, 110) + Me.pbStar4.Name = "pbStar4" + Me.pbStar4.Size = New System.Drawing.Size(24, 24) + Me.pbStar4.TabIndex = 66 + Me.pbStar4.TabStop = False + ' + 'pbStar3 + ' + Me.pbStar3.Location = New System.Drawing.Point(56, 110) + Me.pbStar3.Name = "pbStar3" + Me.pbStar3.Size = New System.Drawing.Size(24, 24) + Me.pbStar3.TabIndex = 65 + Me.pbStar3.TabStop = False + ' + 'pbStar2 + ' + Me.pbStar2.Location = New System.Drawing.Point(32, 110) + Me.pbStar2.Name = "pbStar2" + Me.pbStar2.Size = New System.Drawing.Size(24, 24) + Me.pbStar2.TabIndex = 64 + Me.pbStar2.TabStop = False + ' + 'pbStar1 + ' + Me.pbStar1.Location = New System.Drawing.Point(8, 110) + Me.pbStar1.Name = "pbStar1" + Me.pbStar1.Size = New System.Drawing.Size(24, 24) + Me.pbStar1.TabIndex = 63 + Me.pbStar1.TabStop = False + ' + 'lblRating + ' + Me.lblRating.AutoSize = True + Me.lblRating.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblRating.Location = New System.Drawing.Point(7, 94) + Me.lblRating.Name = "lblRating" + Me.lblRating.Size = New System.Drawing.Size(44, 13) + Me.lblRating.TabIndex = 10 + Me.lblRating.Text = "Rating:" + ' + 'lblAired + ' + Me.lblAired.AutoSize = True + Me.lblAired.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblAired.Location = New System.Drawing.Point(111, 51) + Me.lblAired.Name = "lblAired" + Me.lblAired.Size = New System.Drawing.Size(38, 13) + Me.lblAired.TabIndex = 8 + Me.lblAired.Text = "Aired:" + ' + 'lblTitle + ' + Me.lblTitle.AutoSize = True + Me.lblTitle.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblTitle.Location = New System.Drawing.Point(7, 7) + Me.lblTitle.Name = "lblTitle" + Me.lblTitle.Size = New System.Drawing.Size(32, 13) + Me.lblTitle.TabIndex = 0 + Me.lblTitle.Text = "Title:" + ' + 'txtTitle + ' + Me.txtTitle.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtTitle.Location = New System.Drawing.Point(7, 26) + Me.txtTitle.Name = "txtTitle" + Me.txtTitle.Size = New System.Drawing.Size(192, 22) + Me.txtTitle.TabIndex = 1 + ' + 'TabPage2 + ' + Me.TabPage2.Controls.Add(Me.btnSetPosterDL) + Me.TabPage2.Controls.Add(Me.btnRemovePoster) + Me.TabPage2.Controls.Add(Me.lblPosterSize) + Me.TabPage2.Controls.Add(Me.btnSetPosterScrape) + Me.TabPage2.Controls.Add(Me.btnSetPoster) + Me.TabPage2.Controls.Add(Me.pbPoster) + Me.TabPage2.Location = New System.Drawing.Point(4, 22) + Me.TabPage2.Name = "TabPage2" + Me.TabPage2.Padding = New System.Windows.Forms.Padding(3) + Me.TabPage2.Size = New System.Drawing.Size(836, 452) + Me.TabPage2.TabIndex = 1 + Me.TabPage2.Text = "Poster" + Me.TabPage2.UseVisualStyleBackColor = True + ' + 'btnSetPosterDL + ' + Me.btnSetPosterDL.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.btnSetPosterDL.Image = CType(resources.GetObject("btnSetPosterDL.Image"), System.Drawing.Image) + Me.btnSetPosterDL.ImageAlign = System.Drawing.ContentAlignment.TopCenter + Me.btnSetPosterDL.Location = New System.Drawing.Point(735, 180) + Me.btnSetPosterDL.Name = "btnSetPosterDL" + Me.btnSetPosterDL.Size = New System.Drawing.Size(96, 83) + Me.btnSetPosterDL.TabIndex = 3 + Me.btnSetPosterDL.Text = "Change Poster (Download)" + Me.btnSetPosterDL.TextAlign = System.Drawing.ContentAlignment.BottomCenter + Me.btnSetPosterDL.UseVisualStyleBackColor = True + ' + 'btnRemovePoster + ' + Me.btnRemovePoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.btnRemovePoster.Image = CType(resources.GetObject("btnRemovePoster.Image"), System.Drawing.Image) + Me.btnRemovePoster.ImageAlign = System.Drawing.ContentAlignment.TopCenter + Me.btnRemovePoster.Location = New System.Drawing.Point(735, 363) + Me.btnRemovePoster.Name = "btnRemovePoster" + Me.btnRemovePoster.Size = New System.Drawing.Size(96, 83) + Me.btnRemovePoster.TabIndex = 4 + Me.btnRemovePoster.Text = "Remove Poster" + Me.btnRemovePoster.TextAlign = System.Drawing.ContentAlignment.BottomCenter + Me.btnRemovePoster.UseVisualStyleBackColor = True + ' + 'lblPosterSize + ' + Me.lblPosterSize.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.lblPosterSize.Location = New System.Drawing.Point(8, 8) + Me.lblPosterSize.Name = "lblPosterSize" + Me.lblPosterSize.Size = New System.Drawing.Size(104, 23) + Me.lblPosterSize.TabIndex = 0 + Me.lblPosterSize.Text = "Size: (XXXXxXXXX)" + Me.lblPosterSize.TextAlign = System.Drawing.ContentAlignment.MiddleCenter + Me.lblPosterSize.Visible = False + ' + 'btnSetPosterScrape + ' + Me.btnSetPosterScrape.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.btnSetPosterScrape.Image = CType(resources.GetObject("btnSetPosterScrape.Image"), System.Drawing.Image) + Me.btnSetPosterScrape.ImageAlign = System.Drawing.ContentAlignment.TopCenter + Me.btnSetPosterScrape.Location = New System.Drawing.Point(735, 93) + Me.btnSetPosterScrape.Name = "btnSetPosterScrape" + Me.btnSetPosterScrape.Size = New System.Drawing.Size(96, 83) + Me.btnSetPosterScrape.TabIndex = 2 + Me.btnSetPosterScrape.Text = "Change Poster (Scrape)" + Me.btnSetPosterScrape.TextAlign = System.Drawing.ContentAlignment.BottomCenter + Me.btnSetPosterScrape.UseVisualStyleBackColor = True + ' + 'btnSetPoster + ' + Me.btnSetPoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.btnSetPoster.Image = CType(resources.GetObject("btnSetPoster.Image"), System.Drawing.Image) + Me.btnSetPoster.ImageAlign = System.Drawing.ContentAlignment.TopCenter + Me.btnSetPoster.Location = New System.Drawing.Point(735, 6) + Me.btnSetPoster.Name = "btnSetPoster" + Me.btnSetPoster.Size = New System.Drawing.Size(96, 83) + Me.btnSetPoster.TabIndex = 1 + Me.btnSetPoster.Text = "Change Poster (Local)" + Me.btnSetPoster.TextAlign = System.Drawing.ContentAlignment.BottomCenter + Me.btnSetPoster.UseVisualStyleBackColor = True + ' + 'pbPoster + ' + Me.pbPoster.BackColor = System.Drawing.Color.DimGray + Me.pbPoster.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.pbPoster.Location = New System.Drawing.Point(6, 6) + Me.pbPoster.Name = "pbPoster" + Me.pbPoster.Size = New System.Drawing.Size(724, 440) + Me.pbPoster.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom + Me.pbPoster.TabIndex = 0 + Me.pbPoster.TabStop = False + ' + 'TabPage3 + ' + Me.TabPage3.Controls.Add(Me.lblFanartSize) + Me.TabPage3.Controls.Add(Me.btnSetFanartDL) + Me.TabPage3.Controls.Add(Me.btnRemoveFanart) + Me.TabPage3.Controls.Add(Me.btnSetFanartScrape) + Me.TabPage3.Controls.Add(Me.btnSetFanart) + Me.TabPage3.Controls.Add(Me.pbFanart) + Me.TabPage3.Location = New System.Drawing.Point(4, 22) + Me.TabPage3.Name = "TabPage3" + Me.TabPage3.Padding = New System.Windows.Forms.Padding(3) + Me.TabPage3.Size = New System.Drawing.Size(836, 452) + Me.TabPage3.TabIndex = 6 + Me.TabPage3.Text = "Fanart" + Me.TabPage3.UseVisualStyleBackColor = True + ' + 'lblFanartSize + ' + Me.lblFanartSize.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.lblFanartSize.Location = New System.Drawing.Point(8, 8) + Me.lblFanartSize.Name = "lblFanartSize" + Me.lblFanartSize.Size = New System.Drawing.Size(104, 23) + Me.lblFanartSize.TabIndex = 0 + Me.lblFanartSize.Text = "Size: (XXXXxXXXX)" + Me.lblFanartSize.TextAlign = System.Drawing.ContentAlignment.MiddleCenter + Me.lblFanartSize.Visible = False + ' + 'btnSetFanartDL + ' + Me.btnSetFanartDL.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.btnSetFanartDL.Image = CType(resources.GetObject("btnSetFanartDL.Image"), System.Drawing.Image) + Me.btnSetFanartDL.ImageAlign = System.Drawing.ContentAlignment.TopCenter + Me.btnSetFanartDL.Location = New System.Drawing.Point(735, 180) + Me.btnSetFanartDL.Name = "btnSetFanartDL" + Me.btnSetFanartDL.Size = New System.Drawing.Size(96, 83) + Me.btnSetFanartDL.TabIndex = 3 + Me.btnSetFanartDL.Text = "Change Fanart (Download)" + Me.btnSetFanartDL.TextAlign = System.Drawing.ContentAlignment.BottomCenter + Me.btnSetFanartDL.UseVisualStyleBackColor = True + ' + 'btnRemoveFanart + ' + Me.btnRemoveFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.btnRemoveFanart.Image = CType(resources.GetObject("btnRemoveFanart.Image"), System.Drawing.Image) + Me.btnRemoveFanart.ImageAlign = System.Drawing.ContentAlignment.TopCenter + Me.btnRemoveFanart.Location = New System.Drawing.Point(735, 363) + Me.btnRemoveFanart.Name = "btnRemoveFanart" + Me.btnRemoveFanart.Size = New System.Drawing.Size(96, 83) + Me.btnRemoveFanart.TabIndex = 4 + Me.btnRemoveFanart.Text = "Remove Fanart" + Me.btnRemoveFanart.TextAlign = System.Drawing.ContentAlignment.BottomCenter + Me.btnRemoveFanart.UseVisualStyleBackColor = True + ' + 'btnSetFanartScrape + ' + Me.btnSetFanartScrape.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.btnSetFanartScrape.Image = CType(resources.GetObject("btnSetFanartScrape.Image"), System.Drawing.Image) + Me.btnSetFanartScrape.ImageAlign = System.Drawing.ContentAlignment.TopCenter + Me.btnSetFanartScrape.Location = New System.Drawing.Point(735, 93) + Me.btnSetFanartScrape.Name = "btnSetFanartScrape" + Me.btnSetFanartScrape.Size = New System.Drawing.Size(96, 83) + Me.btnSetFanartScrape.TabIndex = 2 + Me.btnSetFanartScrape.Text = "Change Fanart (Scrape)" + Me.btnSetFanartScrape.TextAlign = System.Drawing.ContentAlignment.BottomCenter + Me.btnSetFanartScrape.UseVisualStyleBackColor = True + ' + 'btnSetFanart + ' + Me.btnSetFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.btnSetFanart.Image = CType(resources.GetObject("btnSetFanart.Image"), System.Drawing.Image) + Me.btnSetFanart.ImageAlign = System.Drawing.ContentAlignment.TopCenter + Me.btnSetFanart.Location = New System.Drawing.Point(735, 6) + Me.btnSetFanart.Name = "btnSetFanart" + Me.btnSetFanart.Size = New System.Drawing.Size(96, 83) + Me.btnSetFanart.TabIndex = 1 + Me.btnSetFanart.Text = "Change Fanart (Local)" + Me.btnSetFanart.TextAlign = System.Drawing.ContentAlignment.BottomCenter + Me.btnSetFanart.UseVisualStyleBackColor = True + ' + 'pbFanart + ' + Me.pbFanart.BackColor = System.Drawing.Color.DimGray + Me.pbFanart.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.pbFanart.Location = New System.Drawing.Point(6, 6) + Me.pbFanart.Name = "pbFanart" + Me.pbFanart.Size = New System.Drawing.Size(724, 440) + Me.pbFanart.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom + Me.pbFanart.TabIndex = 30 + Me.pbFanart.TabStop = False + ' + 'TabPage4 + ' + Me.TabPage4.Controls.Add(Me.pnlFrameExtrator) + Me.TabPage4.Location = New System.Drawing.Point(4, 22) + Me.TabPage4.Name = "TabPage4" + Me.TabPage4.Padding = New System.Windows.Forms.Padding(3) + Me.TabPage4.Size = New System.Drawing.Size(836, 452) + Me.TabPage4.TabIndex = 3 + Me.TabPage4.Text = "Frame Extraction" + Me.TabPage4.UseVisualStyleBackColor = True + ' + 'pnlFrameExtrator + ' + Me.pnlFrameExtrator.Location = New System.Drawing.Point(1, 0) + Me.pnlFrameExtrator.Name = "pnlFrameExtrator" + Me.pnlFrameExtrator.Size = New System.Drawing.Size(834, 452) + Me.pnlFrameExtrator.TabIndex = 0 + ' + 'TabPage5 + ' + Me.TabPage5.Controls.Add(Me.pnlFileInfo) + Me.TabPage5.Location = New System.Drawing.Point(4, 22) + Me.TabPage5.Name = "TabPage5" + Me.TabPage5.Padding = New System.Windows.Forms.Padding(3) + Me.TabPage5.Size = New System.Drawing.Size(836, 452) + Me.TabPage5.TabIndex = 5 + Me.TabPage5.Text = "Meta Data" + Me.TabPage5.UseVisualStyleBackColor = True + ' + 'pnlFileInfo + ' + Me.pnlFileInfo.Location = New System.Drawing.Point(-4, 0) + Me.pnlFileInfo.Name = "pnlFileInfo" + Me.pnlFileInfo.Size = New System.Drawing.Size(844, 452) + Me.pnlFileInfo.TabIndex = 0 + ' + 'Cancel_Button + ' + Me.Cancel_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.Cancel_Button.Location = New System.Drawing.Point(781, 553) + Me.Cancel_Button.Name = "Cancel_Button" + Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) + Me.Cancel_Button.TabIndex = 1 + Me.Cancel_Button.Text = "Cancel" + ' + 'OK_Button + ' + Me.OK_Button.Location = New System.Drawing.Point(708, 553) + Me.OK_Button.Name = "OK_Button" + Me.OK_Button.Size = New System.Drawing.Size(67, 23) + Me.OK_Button.TabIndex = 0 + Me.OK_Button.Text = "OK" + ' + 'chkWatched + ' + Me.chkWatched.AutoSize = True + Me.chkWatched.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkWatched.Location = New System.Drawing.Point(4, 557) + Me.chkWatched.Name = "chkWatched" + Me.chkWatched.Size = New System.Drawing.Size(72, 17) + Me.chkWatched.TabIndex = 7 + Me.chkWatched.Text = "Watched" + Me.chkWatched.UseVisualStyleBackColor = True + ' + 'dlgEditEpisode + ' + Me.AcceptButton = Me.OK_Button + Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi + Me.CancelButton = Me.Cancel_Button + Me.ClientSize = New System.Drawing.Size(854, 582) + Me.Controls.Add(Me.chkWatched) + Me.Controls.Add(Me.TabControl1) + Me.Controls.Add(Me.Cancel_Button) + Me.Controls.Add(Me.OK_Button) + Me.Controls.Add(Me.pnlTop) + Me.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "dlgEditEpisode" + Me.ShowInTaskbar = False + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "Edit Episode" + Me.pnlTop.ResumeLayout(False) + Me.pnlTop.PerformLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() + Me.TabControl1.ResumeLayout(False) + Me.TabPage1.ResumeLayout(False) + Me.TabPage1.PerformLayout() + CType(Me.pbStar5, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.pbStar4, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.pbStar3, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.pbStar2, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.pbStar1, System.ComponentModel.ISupportInitialize).EndInit() + Me.TabPage2.ResumeLayout(False) + CType(Me.pbPoster, System.ComponentModel.ISupportInitialize).EndInit() + Me.TabPage3.ResumeLayout(False) + CType(Me.pbFanart, System.ComponentModel.ISupportInitialize).EndInit() + Me.TabPage4.ResumeLayout(False) + Me.TabPage5.ResumeLayout(False) + Me.ResumeLayout(False) + Me.PerformLayout() - End Sub + End Sub Friend WithEvents pnlTop As System.Windows.Forms.Panel Friend WithEvents Label2 As System.Windows.Forms.Label Friend WithEvents Label1 As System.Windows.Forms.Label @@ -801,5 +815,6 @@ Partial Class dlgEditEpisode Friend WithEvents btnActorUp As System.Windows.Forms.Button Friend WithEvents pnlFrameExtrator As System.Windows.Forms.Panel Friend WithEvents ofdImage As System.Windows.Forms.OpenFileDialog + Friend WithEvents chkWatched As System.Windows.Forms.CheckBox End Class diff --git a/Ember Media Manager/dlgEditEpisode.resx b/Ember Media Manager/dlgEditEpisode.resx index 7ef0fdf..971bba2 100644 --- a/Ember Media Manager/dlgEditEpisode.resx +++ b/Ember Media Manager/dlgEditEpisode.resx @@ -161,581 +161,577 @@ - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK8gAA - CvIBPVL3EQAAApRJREFUOE+l0GtIU2EYB/DHC0Ve2lDsIppZ2TQ9UwPJsCAJirDsQ/lhlHT5YFCWXbDm - Xam0vMGm4mVeppApXiDSckynNc2pa5jTbOmWqSEtA6WUwuTpOSeS5PitAz94zvs+7/+9ACLC/1hZbF3Q - A+vrohEGZ+Rh5XqvikqDj4JVpveo7J/OjFpa/gaLS1bO301XihFrFbBMs7XQaoqmRSKseB3AUeh9sWkk - QmeafQyj1hoOL6B3KhNY/Z9y4dGbg02yXiEW6Nw48l4XNmRE8+EWdFiuc3gBPZM5wNJNy6Bm8HBDbs9m - zH/lwcnr2YrFA2JjhyUJ2s1SDi9AO5ED2olcOoUcqgxHGrK07pjd7cV5qPXEgr5go9qcAqrxRHg+dnuN - K0yWw8sJOXR/LIJS/bGGjK5teO/FTs7dLm86SYixbSwNnr1Ppk0U/ICp+VHoMJdAu0UGxQOR9SmaHZje - KeKkaXzoJPuHWkzp8GT0Pnz/OccPmJ57a9dqyvOsNlwNzNYeVce37Uapyo9zRyXCDE3omNIQG1g3JPWd - //HFhvcGzcMPLqaqw5cTVGF4szUI4576r3KjRYyJqgMobQvF5uEsMS/g84JFUK1PSoiu3Y4xjQF4qZFZ - JYb+z9ftwnT1ybK5XzP2vIDBdzrQjjeDwpAUH1UlQokyACXVzB9KBqOUfpjReaaksi8ZWjRN/DcA+ty2 - COFCrARS6y/HRZYHYkQRgxGFDJ5QiPFKzalCybXjsMldyLbyA+wAbGjcnjg4OzjZ7pMwqYfygzBcFowh - 5/aUCgQb2TlHsp7t5V2BBu2IK/GjpGBq9HXxEJx29RaepdqfxvbSHEO82N61AoAm7MkG4mRLaCGVYEu1 - IxXOxIGs+/cEvwG4WS+MPfOKlQAAAABJRU5ErkJggg== + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAryAAAK8gE9UvcRAAAChklE + QVQ4T6XOaUjTcRjA8ceDIo82FDtEMyubppsaSIYFSVCEHS/KF6Ok44VBWXZgzVuptLxgU/GYxxQyxQMi + Lcd0WtM2dQ1zmi11mRrSMlBKKUyenv0MQ/6+6w8fePgd3/8PEPG/rAyWeT3zbcEI/dOysDK9V3mFwUdu + Var3qOidyohcXPoOC4sWhhMYslQyppkaaDFF0SUBlr8JYOR6X2wcitCZZp7AsKWa4QS0kxlM7+ccePz2 + YKNUy8d8nRsj07pYI0Pqj7eh3XyD4QS6J7IZ3ZQUqvsP1+d0b8a81x5MbvdWLOoTGdvNidA2JmE4Ac14 + NsmhV8ig0nCkPlPjjlldXswjjSfm9wQbVWPJoBxNgBcjd7gB7UQZvBqXQdenQijRH6tP79yG91/uZO51 + etNLQoytI6nw/EMS/UTODUzODUP7WDG0maVQ1HeyLlm9A9M6BEyq2odesn+g2ZQGT4cfwI9fs9zA1Ow7 + uxZTrmeV4VpgluaoKq51N0qUfsxdpQDT1aEjCkNMYO2AxHfu51cbTqBp8OGlFFX4UrwyDG+1BGHsM/9V + bjaLMEF5ACWtodg0mCniBL7Mm3lV+sT4qJrtGN0QgJcbhKtEkwu1uzBNdap09ve0PSfQ/14HmtEmkBsS + 4yIrBShWBKC4SrhMIcRIhR+md5wtruhJgmZ148q9fwN9blv4cDFGDCl1V2JPlgViRKEQIwqEeEIuwqvV + pwvE14/DJnc+O8sJ2AHY0Lo9cXB2cLLdJxamHMoLwnBpMIac31PC42207jmS9dazawXsiCvxo1IwHfR1 + 8eCdcfXmn6PZn9b20p6QeFnPrhWwsicbiJMtWV4CW5odaXAmDmQd+fsChD+4WS+MAxa1eQAAAABJRU5E + rkJggg== - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK8gAA - CvIBPVL3EQAAAo1JREFUOE+lkW1IU1EYx5+lbi0jKk2EDKlMJ5eZEFlRyKBUwg/lB3sBSYllRC218K3A - ptvSSpfMtKRIU0vzSviCuU0xnXozKVNn06lzTklJ+yDCwA+yp7ObDeUaBB34cd7+53cezgFEhP/BdXje - PgqfZ19C3/diMM2/hqlFLbSMx117Z4rK+PbjBb/blgXvx2XQbcsHx5pLNxSYf9LQO3M/rvzrMXtZ/2FH - m0WWzszk/Jugf/Y5dE7J4572Uajp9SZ4YUmfCBtHE+S6iaS/V7BgH4OBuUrQjafFF30KwYIeX1QzfiwF - jC8RUVhtjM1hph+vezPXZMFu3tw2qZKqmYOY1+WHD7v91/GArOX3UNgwmqR0OFZ4fx7eJWi1qC7n94Sh - /MNuVHTuRVXnflSu8nu8D7M79qDKIEL9hCKEI5he/CJsMt8JrRxMiFR/lBiy2gOILIjlXvsBzO06ZK0Y - uBRJm26GLy7PenAEc0tD0G5VQ6tFA4XM2ZrUlgDM0AWzpGuDUNFxfLBhJBv0ljxYXllyVe4aGKxVoDUX - g36sFPI6ztA3GgIxqYlikTUG413dCSNtVABtzAHGVssVaCefQfNYCTSbSiFbH0NLa0V4tU7McoWm8HZT - uPFNvwqqh5TwdkTJFUgzz0EBnQlaSwWk1sfQsWUivPhKzHK+nMLEGiIYegS5dclwJELMFQBpAgEf0tTX - IaX+Ql2URoTRxWKW00UUxledHE59kgjCLQJnlCtwA+DxANw3Ac/jVObRWklRKEoKV9GEYoQqbJjv5i4g - GYEzy/kFsuhG8CKBQOFWvsQnZGeyN7XdSYqPeMetbbs8o8leMMn4O7MbCYBsuBOEJOhBqiTdOpwXeBL4 - ayv4Ba5+NdG8cgGAAAAAAElFTkSuQmCC + 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 - bf5cAAAAAElFTkSuQmCC + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAryAAAK8gE9UvcRAAACf0lE + QVQ4T6WPW0jTURzHf6lvtcQwc+aFRTm6ECYRJpbSQ/rgQ/gQhkYICgVq6sMisBCEIoUyCwokwpcoSYjw + IcIuoJWWOufcppvOXTDnnFu6Tf3f9u38TbeR9VIHPufy4/f9nHMIwH+xPkkB+1+wEUJemu9pVusvqzQL + 3XVKb+9tWh7uJP/Y8yhB0PlHQryHAub+pNHKTIOxIgH26+pv7q6rhwPjXRQ0dUcEIf7HVoQAW7/Hantf + vB2sLcBkhQIz1YkYr9rrczytyXW9bo4IILh+w00QvSSaS1sXjVdgs07AfLcSulIFBksS8KVMXT9cnRsl + WLVEMUXg50i0aap4Qx5ESyF4UxHcczoMtN3Ap0vHTEGHNjkkLEYJOEcE0UfSbFs+N5bNCdZycCMHIEyc + g+CshVn/zDc7qT0kBF20tuSMEkj+X0CkkH8whdMdtwrWi+C0avCGQgj2GojzjUDwwwVhbZn44AJJq94o + QdBEWLFQaHlIwetP9wnT58FeAF6fD8FSBmGmHNJSNzNwrF8GtLriiQgkj4mkRQvx9r5iztTEbj0BbjSb + Pb0EnC4LovPaS3b9eq/H7aCmmxpKS1VGBFhxkehjf3IONPGWj+Cn2sEbi7H2eQckwykd4Enw+33U2nKL + lMl7aHOEBU8etdOUcZTevep8E7S8B3yzwFI/YCtyB9w9B++03CNVRtpGjCh2g7AgJiaGGjUN2xvq6+Y6 + Ox7Cax1yj3wdeNDR8Xhf1tEj6yF5bAa3COTzrvideWfPFEzn5uTcT09NPclqSoaKoWbNmYz9DBUjjZHI + iAsL5INcjNtGu1lAIYdjiNJZLWMDeS8HUxhJjHhGbFjw74B+AsJFYFrRskcjAAAAAElFTkSuQmCC - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK6QAA - CukB/XXO0wAAAZlJREFUOE9j+P//PwMlGKfmJRcdPRec1+9ecF6ve+lFJx9cluA0YO5Zg8fTT4n9n35K - 9P+cs/ovSTZg2intmxOOi/8HYSD7PskGTDphcK37qPR/EJ50Qv8uQQOmnnIynnbKLWDqKVf/aac9/fuP - mz5pOyT3H4T7jpm8mH7Ky3/qKTcgdg+YftrdFGYgOAw6jxhJtB7SBCrWgWLd/y0HNf43HVABYxC77ZAu - XL71kNb/9sM6UiC9YAPq9uoo1+xV/4+JNYBiMIwqX71HTQVuQPUuU5nibdr/i7ZqwXHxNq3/yBhFbqv2 - //Id+rJwA0CMgk1Gwbkb9UqBuASEs9frvspar/MfhIHst7kbgOIgvFG3FKg2dOmpuWDX40wHicv0riUs - 0/0PwXp3CMYCuoLgWXo3g2bp/odgPdLTgUu//gPnft3/IOzSr/cUpwuYGRgYgFgAiBWBWAOIdRkZGNS1 - EpU6jMo1T4CwdpJSJ0gMJAdVA1IrAA8DIIcZiNmBmBOIuYGYF2guIyKxMDCCxKByIDUgtcx4A5HYLA4A - MV5njhcGgLEAAAAASUVORK5CYII= + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAArpAAAK6QH9dc7TAAABnElE + QVQ4T6XSS0sCYRQG4BEXERG46UI3yCRNnZmw/AGZFUagJO2rZSFEJi6MFtFNhAxBBSlokW7NQIlIKLvJ + FyJtBKEoqKCCfsPpO2pD1repFs9wfM87x81wAPAvzBDt3QxYdvOibzcv+KI3pjFWBzFDtJPrfQyTRgiT + BtjOia+sDmKGKER0xa2rJkB0vmd1EDNEgWxvwXfRCiiQFe9YHSQNQWLqC5FhW5AMWUPXFqv/yvi0lukA + tHnZ/xImo9YgGaZGbOHrEWPVAe+5oXk100PL+goeVk41sHyiKsEZs8/9akYL62f6FunAUlrftZhWw0+a + L6p3nuNulXTAc2Rsc6Z0MJ/USpypalW7pA7ch2K7dADNHRjsjoTgohbQbJx/m4nrAdH53bFPc5TgXbQ7 + ESU7pfekA99NxYTCZIyHMuGW1UHMENkjQnE8wkOZ8PvvwOwXHwb9PCCzX3hmdRAn50oUVCeloXgZx6m1 + U8oNg7sni3TTSi9muKt0sKsoHcAH/SGnaqhaqo6qp3dl0r8AJ8OsssMOduXSgb8D7gMxXmeO6KXG2gAA + AABJRU5ErkJggg== - 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 - 4AAAAABJRU5ErkJggg== + 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 + l+AV3x3A/g9kt3I5oWO4VQAAAABJRU5ErkJggg== - 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 - 7PDNqBYAAAAASUVORK5CYII= + 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 - 4AAAAABJRU5ErkJggg== + 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 + l+AV3x3A/g9kt3I5oWO4VQAAAABJRU5ErkJggg== - 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 - 7PDNqBYAAAAASUVORK5CYII= + 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 diff --git a/Ember Media Manager/dlgEditEpisode.vb b/Ember Media Manager/dlgEditEpisode.vb index ac6ec74..a780e6b 100644 --- a/Ember Media Manager/dlgEditEpisode.vb +++ b/Ember Media Manager/dlgEditEpisode.vb @@ -93,13 +93,15 @@ Public Class dlgEditEpisode End Sub Private Sub btnRemoveFanart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRemoveFanart.Click - Me.pbFanart.Image = Nothing - Me.Fanart.Image = Nothing + Me.pbFanart.Image = Nothing + Me.pbFanart.Tag = Nothing + Me.Fanart.Dispose() 'I need the object to call Delete... :) so I dispose the memory structures End Sub Private Sub btnRemovePoster_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRemovePoster.Click - Me.pbPoster.Image = Nothing - Me.Poster.Image = Nothing + Me.pbPoster.Image = Nothing + Me.pbPoster.Tag = Nothing + Me.Poster.Dispose() 'I need the object to call Delete... :) so I dispose the memory structures End Sub Private Sub btnRemove_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRemove.Click @@ -107,11 +109,12 @@ Public Class dlgEditEpisode End Sub Private Sub btnSetFanartScrape_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetFanartScrape.Click - Dim tImage As Image = ModulesManager.Instance.TVSingleImageOnly(Master.currShow.TVShow.Title, Convert.ToInt32(Master.currShow.ShowID), Master.currShow.TVShow.ID, Enums.TVImageType.EpisodeFanart, 0, 0, Master.currShow.ShowLanguage, Master.currShow.Ordering, Me.pbFanart.Image) + Dim tImage As Images = ModulesManager.Instance.TVSingleImageOnly(Master.currShow.TVShow.Title, Convert.ToInt32(Master.currShow.ShowID), Master.currShow.TVShow.ID, Enums.TVImageType.EpisodeFanart, 0, 0, Master.currShow.ShowLanguage, Master.currShow.Ordering, CType(Fanart, Images)) - If Not IsNothing(tImage) Then - Me.Fanart.Image = New Bitmap(tImage) - Me.pbFanart.Image = tImage + If Not IsNothing(tImage) AndAlso Not IsNothing(tImage.Image) Then + Me.Fanart = tImage + Me.pbFanart.Image = tImage.Image + Me.pbFanart.Tag = tImage Me.lblFanartSize.Text = String.Format(Master.eLang.GetString(269, "Size: {0}x{1}"), Me.pbFanart.Image.Width, Me.pbFanart.Image.Height) Me.lblFanartSize.Visible = True @@ -119,11 +122,12 @@ Public Class dlgEditEpisode End Sub Private Sub btnSetPosterScrape_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetPosterScrape.Click - Dim tImage As Image = ModulesManager.Instance.TVSingleImageOnly(Master.currShow.TVShow.Title, Convert.ToInt32(Master.currShow.ShowID), Master.currShow.TVShow.ID, Enums.TVImageType.EpisodePoster, Master.currShow.TVEp.Season, Master.currShow.TVEp.Episode, Master.currShow.ShowLanguage, Master.currShow.Ordering, Me.pbFanart.Image) + Dim tImage As Images = ModulesManager.Instance.TVSingleImageOnly(Master.currShow.TVShow.Title, Convert.ToInt32(Master.currShow.ShowID), Master.currShow.TVShow.ID, Enums.TVImageType.EpisodePoster, Master.currShow.TVEp.Season, Master.currShow.TVEp.Episode, Master.currShow.ShowLanguage, Master.currShow.Ordering, CType(Poster, Images)) - If Not IsNothing(tImage) Then - Me.Poster.Image = New Bitmap(tImage) - Me.pbPoster.Image = tImage + If Not IsNothing(tImage) AndAlso Not IsNothing(tImage.Image) Then + Poster = tImage + Me.pbPoster.Image = tImage.Image + Me.pbPoster.Tag = tImage Me.lblPosterSize.Text = String.Format(Master.eLang.GetString(269, "Size: {0}x{1}"), Me.pbPoster.Image.Width, Me.pbPoster.Image.Height) Me.lblPosterSize.Visible = True @@ -291,6 +295,13 @@ Public Class dlgEditEpisode If Not String.IsNullOrEmpty(Master.currShow.TVEp.Season.ToString) Then .txtSeason.Text = Master.currShow.TVEp.Season.ToString If Not String.IsNullOrEmpty(Master.currShow.TVEp.Episode.ToString) Then .txtEpisode.Text = Master.currShow.TVEp.Episode.ToString + If Master.currShow.TVEp.Playcount = "" Or Master.currShow.TVEp.Playcount = "0" Then + Me.chkWatched.Checked = False + Else + 'Playcount <> Empty and not 0 -> Tag filled -> Checked! + Me.chkWatched.Checked = True + End If + Dim lvItem As ListViewItem .lvActors.Items.Clear() For Each imdbAct As MediaContainers.Person In Master.currShow.TVEp.Actors @@ -311,7 +322,8 @@ Public Class dlgEditEpisode If TabControl1.TabPages.Contains(TabPage3) Then Fanart.FromFile(Master.currShow.EpFanartPath) If Not IsNothing(Fanart.Image) Then - .pbFanart.Image = Fanart.Image + .pbFanart.Image = Fanart.Image + .pbFanart.Tag = Fanart .lblFanartSize.Text = String.Format(Master.eLang.GetString(269, "Size: {0}x{1}"), .pbFanart.Image.Width, .pbFanart.Image.Height) .lblFanartSize.Visible = True @@ -320,7 +332,8 @@ Public Class dlgEditEpisode Poster.FromFile(Master.currShow.EpPosterPath) If Not IsNothing(Poster.Image) Then - .pbPoster.Image = Poster.Image + .pbPoster.Image = Poster.Image + .pbPoster.Tag = Poster .lblPosterSize.Text = String.Format(Master.eLang.GetString(269, "Size: {0}x{1}"), .pbPoster.Image.Width, .pbPoster.Image.Height) .lblPosterSize.Visible = True @@ -527,6 +540,18 @@ Public Class dlgEditEpisode Master.currShow.TVEp.Actors.Clear() + If chkWatched.Checked Then + 'Only set to 1 if field was empty before (otherwise it would overwrite Playcount everytime which is not desirable) + If String.IsNullOrEmpty(Master.currShow.TVEp.Playcount) Or Master.currShow.TVEp.Playcount = "0" Then + Master.currShow.TVEp.Playcount = "1" + End If + Else + 'Unchecked Watched State -> Set Playcount back to 0, but only if it was filled before (check could save time) + If IsNumeric(Master.currShow.TVEp.Playcount) AndAlso CInt(Master.currShow.TVEp.Playcount) > 0 Then + Master.currShow.TVEp.Playcount = "" + End If + End If + If .lvActors.Items.Count > 0 Then For Each lviActor As ListViewItem In .lvActors.Items Dim addActor As New MediaContainers.Person @@ -591,8 +616,8 @@ Public Class dlgEditEpisode Me.lblDirector.Text = Master.eLang.GetString(239, "Director:") Me.lblCredits.Text = Master.eLang.GetString(228, "Credits:") Me.TabPage4.Text = Master.eLang.GetString(256, "Frame Extraction") - Me.TabPage5.Text = Master.eLang.GetString(59, "Meta Data") + Me.chkWatched.Text = Master.eLang.GetString(883, "Watched") End Sub Private Sub txtEpisode_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtEpisode.KeyPress @@ -604,10 +629,18 @@ Public Class dlgEditEpisode End Sub Sub GenericRunCallBack(ByVal mType As Enums.ModuleEventType, ByRef _params As List(Of Object)) - If mType = Enums.ModuleEventType.TVFrameExtrator Then - Me.Poster.Image = DirectCast(_params(0), Bitmap) 'New Bitmap(pbFrame.Image) - Me.pbPoster.Image = DirectCast(_params(1), Image) 'pbFrame.Image - End If + If mType = Enums.ModuleEventType.TVFrameExtrator Then + Poster.FromFile(Path.Combine(Master.TempPath, "frame.jpg")) + If Not IsNothing(Poster.Image) Then + Me.pbPoster.Image = Poster.Image + Me.pbPoster.Tag = Poster + + Me.lblPosterSize.Text = String.Format(Master.eLang.GetString(269, "Size: {0}x{1}"), Me.pbPoster.Image.Width, Me.pbPoster.Image.Height) + Me.lblPosterSize.Visible = True + End If + 'Me.Poster.Image = DirectCast(_params(0), Bitmap) 'New Bitmap(pbFrame.Image) + ' Me.pbPoster.Image = DirectCast(_params(1), Image) 'pbFrame.Image + End If End Sub @@ -621,11 +654,14 @@ Public Class dlgEditEpisode If ofdImage.ShowDialog() = DialogResult.OK Then Poster.FromFile(ofdImage.FileName) - pbPoster.Image = Poster.Image - - Me.lblPosterSize.Text = String.Format(Master.eLang.GetString(269, "Size: {0}x{1}"), Me.pbPoster.Image.Width, Me.pbPoster.Image.Height) - Me.lblPosterSize.Visible = True - End If + If Not IsNothing(Poster.Image) Then + Me.pbPoster.Image = Poster.Image + Me.pbPoster.Tag = Poster + + Me.lblPosterSize.Text = String.Format(Master.eLang.GetString(269, "Size: {0}x{1}"), Me.pbPoster.Image.Width, Me.pbPoster.Image.Height) + Me.lblPosterSize.Visible = True + End If + End If Catch ex As Exception Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") End Try @@ -634,14 +670,16 @@ Public Class dlgEditEpisode Private Sub btnSetPosterDL_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetPosterDL.Click Try Using dImgManual As New dlgImgManual - If dImgManual.ShowDialog(Enums.ImageType.Posters) = DialogResult.OK Then - Poster.FromFile(Path.Combine(Master.TempPath, "poster.jpg")) - pbPoster.Image = Poster.Image + Dim tImage As Images = dImgManual.ShowDialog(Enums.ImageType.Posters) + If Not IsNothing(tImage.Image) Then + Poster = tImage + Me.pbPoster.Image = Poster.Image + Me.pbPoster.Tag = Poster Me.lblPosterSize.Text = String.Format(Master.eLang.GetString(269, "Size: {0}x{1}"), Me.pbPoster.Image.Width, Me.pbPoster.Image.Height) Me.lblPosterSize.Visible = True End If - End Using + End Using Catch ex As Exception Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") End Try @@ -657,11 +695,14 @@ Public Class dlgEditEpisode If ofdImage.ShowDialog() = DialogResult.OK Then Fanart.FromFile(ofdImage.FileName) - pbFanart.Image = Fanart.Image - - Me.lblFanartSize.Text = String.Format(Master.eLang.GetString(269, "Size: {0}x{1}"), Me.pbFanart.Image.Width, Me.pbFanart.Image.Height) - Me.lblFanartSize.Visible = True - End If + If Not IsNothing(Fanart.Image) Then + Me.pbFanart.Image = Fanart.Image + Me.pbFanart.Tag = Fanart + + Me.lblFanartSize.Text = String.Format(Master.eLang.GetString(269, "Size: {0}x{1}"), Me.pbFanart.Image.Width, Me.pbFanart.Image.Height) + Me.lblFanartSize.Visible = True + End If + End If Catch ex As Exception Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") End Try @@ -669,20 +710,28 @@ Public Class dlgEditEpisode Private Sub btnSetFanartDL_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetFanartDL.Click Try - Using dImgManual As New dlgImgManual - If dImgManual.ShowDialog(Enums.ImageType.Fanart) = DialogResult.OK Then - Fanart.FromFile(Path.Combine(Master.TempPath, "fanart.jpg")) - pbFanart.Image = Fanart.Image + Using dImgManual As New dlgImgManual + Dim tImage As Images = dImgManual.ShowDialog(Enums.ImageType.Fanart) + If Not IsNothing(tImage.Image) Then + Fanart = tImage + Me.pbFanart.Image = Fanart.Image + Me.pbFanart.Tag = Fanart Me.lblFanartSize.Text = String.Format(Master.eLang.GetString(269, "Size: {0}x{1}"), Me.pbFanart.Image.Width, Me.pbFanart.Image.Height) Me.lblFanartSize.Visible = True End If - End Using + End Using Catch ex As Exception Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") End Try End Sub + Private Sub txtPlot_KeyDown(ByVal sender As Object, e As KeyEventArgs) Handles txtPlot.KeyDown + If e.KeyData = (Keys.Control Or Keys.A) Then + Me.txtPlot.SelectAll() + End If + End Sub + #End Region 'Methods End Class \ No newline at end of file diff --git a/Ember Media Manager/dlgEditMovie.Designer.vb b/Ember Media Manager/dlgEditMovie.Designer.vb index d5a5d47..3b0993c 100644 --- a/Ember Media Manager/dlgEditMovie.Designer.vb +++ b/Ember Media Manager/dlgEditMovie.Designer.vb @@ -22,1349 +22,1364 @@ Partial Class dlgEditMovie 'Do not modify it using the code editor. _ Private Sub InitializeComponent() - Me.components = New System.ComponentModel.Container() - Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(dlgEditMovie)) - Me.OK_Button = New System.Windows.Forms.Button() - Me.Cancel_Button = New System.Windows.Forms.Button() - Me.pnlTop = New System.Windows.Forms.Panel() - Me.Label2 = New System.Windows.Forms.Label() - Me.Label1 = New System.Windows.Forms.Label() - Me.PictureBox1 = New System.Windows.Forms.PictureBox() - Me.TabControl1 = New System.Windows.Forms.TabControl() - Me.TabPage1 = New System.Windows.Forms.TabPage() - Me.txtOriginalTitle = New System.Windows.Forms.TextBox() - Me.lblOriginalTitle = New System.Windows.Forms.Label() - Me.txtCountry = New System.Windows.Forms.TextBox() - Me.lblCountry = New System.Windows.Forms.Label() - Me.txtFileSource = New System.Windows.Forms.TextBox() - Me.lblFileSource = New System.Windows.Forms.Label() - Me.btnActorDown = New System.Windows.Forms.Button() - Me.btnActorUp = New System.Windows.Forms.Button() - Me.Label6 = New System.Windows.Forms.Label() - Me.txtSortTitle = New System.Windows.Forms.TextBox() - Me.lblLocalTrailer = New System.Windows.Forms.Label() - Me.btnPlayTrailer = New System.Windows.Forms.Button() - Me.btnDLTrailer = New System.Windows.Forms.Button() - Me.lbGenre = New System.Windows.Forms.CheckedListBox() - Me.btnStudio = New System.Windows.Forms.Button() - Me.lblStudio = New System.Windows.Forms.Label() - Me.txtStudio = New System.Windows.Forms.TextBox() - Me.lblTrailer = New System.Windows.Forms.Label() - Me.txtTrailer = New System.Windows.Forms.TextBox() - Me.txtReleaseDate = New System.Windows.Forms.TextBox() - Me.lblReleaseDate = New System.Windows.Forms.Label() - Me.lblCredits = New System.Windows.Forms.Label() - Me.txtCredits = New System.Windows.Forms.TextBox() - Me.lblCerts = New System.Windows.Forms.Label() - Me.txtCerts = New System.Windows.Forms.TextBox() - Me.lblRuntime = New System.Windows.Forms.Label() - Me.txtRuntime = New System.Windows.Forms.TextBox() - Me.lblMPAADesc = New System.Windows.Forms.Label() - Me.txtMPAADesc = New System.Windows.Forms.TextBox() - Me.btnEditActor = New System.Windows.Forms.Button() - Me.btnAddActor = New System.Windows.Forms.Button() - Me.btnManual = New System.Windows.Forms.Button() - Me.btnRemove = New System.Windows.Forms.Button() - Me.lblActors = New System.Windows.Forms.Label() - Me.lvActors = New System.Windows.Forms.ListView() - Me.colName = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) - Me.colRole = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) - Me.colThumb = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) - Me.lbMPAA = New System.Windows.Forms.ListBox() - Me.lblGenre = New System.Windows.Forms.Label() - Me.lblMPAA = New System.Windows.Forms.Label() - Me.lblDirector = New System.Windows.Forms.Label() - Me.txtDirector = New System.Windows.Forms.TextBox() - Me.txtTop250 = New System.Windows.Forms.TextBox() - Me.lblTop250 = New System.Windows.Forms.Label() - Me.lblPlot = New System.Windows.Forms.Label() - Me.txtPlot = New System.Windows.Forms.TextBox() - Me.lblOutline = New System.Windows.Forms.Label() - Me.txtOutline = New System.Windows.Forms.TextBox() - Me.lblTagline = New System.Windows.Forms.Label() - Me.txtTagline = New System.Windows.Forms.TextBox() - Me.pbStar5 = New System.Windows.Forms.PictureBox() - Me.pbStar4 = New System.Windows.Forms.PictureBox() - Me.pbStar3 = New System.Windows.Forms.PictureBox() - Me.pbStar2 = New System.Windows.Forms.PictureBox() - Me.pbStar1 = New System.Windows.Forms.PictureBox() - Me.txtVotes = New System.Windows.Forms.TextBox() - Me.lblVotes = New System.Windows.Forms.Label() - Me.lblRating = New System.Windows.Forms.Label() - Me.mtxtYear = New System.Windows.Forms.MaskedTextBox() - Me.lblYear = New System.Windows.Forms.Label() - Me.lblTitle = New System.Windows.Forms.Label() - Me.txtTitle = New System.Windows.Forms.TextBox() - Me.TabPage2 = New System.Windows.Forms.TabPage() - Me.btnSetPosterDL = New System.Windows.Forms.Button() - Me.btnRemovePoster = New System.Windows.Forms.Button() - Me.lblPosterSize = New System.Windows.Forms.Label() - Me.btnSetPosterScrape = New System.Windows.Forms.Button() - Me.btnSetPoster = New System.Windows.Forms.Button() - Me.pbPoster = New System.Windows.Forms.PictureBox() - Me.TabPage3 = New System.Windows.Forms.TabPage() - Me.btnSetFanartDL = New System.Windows.Forms.Button() - Me.btnRemoveFanart = New System.Windows.Forms.Button() - Me.lblFanartSize = New System.Windows.Forms.Label() - Me.btnSetFanartScrape = New System.Windows.Forms.Button() - Me.btnSetFanart = New System.Windows.Forms.Button() - Me.pbFanart = New System.Windows.Forms.PictureBox() - Me.TabPage5 = New System.Windows.Forms.TabPage() - Me.pnlETQueue = New System.Windows.Forms.Panel() - Me.Label4 = New System.Windows.Forms.Label() - Me.btnTransferNow = New System.Windows.Forms.Button() - Me.Panel1 = New System.Windows.Forms.Panel() - Me.btnSetAsFanart = New System.Windows.Forms.Button() - Me.btnThumbsRefresh = New System.Windows.Forms.Button() - Me.btnRemoveThumb = New System.Windows.Forms.Button() - Me.btnDown = New System.Windows.Forms.Button() - Me.btnUp = New System.Windows.Forms.Button() - Me.lvThumbs = New System.Windows.Forms.ListView() - Me.ilThumbs = New System.Windows.Forms.ImageList(Me.components) - Me.pbExtraThumbs = New System.Windows.Forms.PictureBox() - Me.TabPage4 = New System.Windows.Forms.TabPage() - Me.pnlFrameExtrator = New System.Windows.Forms.Panel() - Me.TabPage6 = New System.Windows.Forms.TabPage() - Me.pnlFileInfo = New System.Windows.Forms.Panel() - Me.ofdImage = New System.Windows.Forms.OpenFileDialog() - Me.chkMark = New System.Windows.Forms.CheckBox() - Me.btnRescrape = New System.Windows.Forms.Button() - Me.btnChangeMovie = New System.Windows.Forms.Button() - Me.btnClearCache = New System.Windows.Forms.Button() - Me.DelayTimer = New System.Windows.Forms.Timer(Me.components) - Me.pnlTop.SuspendLayout() - CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() - Me.TabControl1.SuspendLayout() - Me.TabPage1.SuspendLayout() - CType(Me.pbStar5, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.pbStar4, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.pbStar3, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.pbStar2, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.pbStar1, System.ComponentModel.ISupportInitialize).BeginInit() - Me.TabPage2.SuspendLayout() - CType(Me.pbPoster, System.ComponentModel.ISupportInitialize).BeginInit() - Me.TabPage3.SuspendLayout() - CType(Me.pbFanart, System.ComponentModel.ISupportInitialize).BeginInit() - Me.TabPage5.SuspendLayout() - Me.pnlETQueue.SuspendLayout() - Me.Panel1.SuspendLayout() - CType(Me.pbExtraThumbs, System.ComponentModel.ISupportInitialize).BeginInit() - Me.TabPage4.SuspendLayout() - Me.TabPage6.SuspendLayout() - Me.SuspendLayout() - ' - 'OK_Button - ' - Me.OK_Button.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.OK_Button.Location = New System.Drawing.Point(708, 553) - Me.OK_Button.Name = "OK_Button" - Me.OK_Button.Size = New System.Drawing.Size(67, 23) - Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" - ' - 'Cancel_Button - ' - Me.Cancel_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel - Me.Cancel_Button.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.Cancel_Button.Location = New System.Drawing.Point(781, 553) - Me.Cancel_Button.Name = "Cancel_Button" - Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) - Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" - ' - 'pnlTop - ' - Me.pnlTop.BackColor = System.Drawing.Color.LightSteelBlue - Me.pnlTop.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.pnlTop.Controls.Add(Me.Label2) - Me.pnlTop.Controls.Add(Me.Label1) - Me.pnlTop.Controls.Add(Me.PictureBox1) - Me.pnlTop.Dock = System.Windows.Forms.DockStyle.Top - Me.pnlTop.Location = New System.Drawing.Point(0, 0) - Me.pnlTop.Name = "pnlTop" - Me.pnlTop.Size = New System.Drawing.Size(854, 64) - Me.pnlTop.TabIndex = 2 - ' - 'Label2 - ' - Me.Label2.AutoSize = True - Me.Label2.BackColor = System.Drawing.Color.Transparent - Me.Label2.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.Label2.ForeColor = System.Drawing.Color.White - Me.Label2.Location = New System.Drawing.Point(61, 38) - Me.Label2.Name = "Label2" - Me.Label2.Size = New System.Drawing.Size(205, 13) - Me.Label2.TabIndex = 1 - Me.Label2.Text = "Edit the details for the selected movie." - ' - 'Label1 - ' - Me.Label1.AutoSize = True - Me.Label1.BackColor = System.Drawing.Color.Transparent - Me.Label1.Font = New System.Drawing.Font("Segoe UI", 18.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.Label1.ForeColor = System.Drawing.Color.White - Me.Label1.Location = New System.Drawing.Point(58, 3) - Me.Label1.Name = "Label1" - Me.Label1.Size = New System.Drawing.Size(137, 32) - Me.Label1.TabIndex = 0 - Me.Label1.Text = "Edit Movie" - ' - 'PictureBox1 - ' - Me.PictureBox1.BackColor = System.Drawing.Color.Transparent - Me.PictureBox1.Image = CType(resources.GetObject("PictureBox1.Image"), System.Drawing.Image) - Me.PictureBox1.Location = New System.Drawing.Point(7, 8) - Me.PictureBox1.Name = "PictureBox1" - Me.PictureBox1.Size = New System.Drawing.Size(48, 48) - Me.PictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize - Me.PictureBox1.TabIndex = 0 - Me.PictureBox1.TabStop = False - ' - 'TabControl1 - ' - Me.TabControl1.Controls.Add(Me.TabPage1) - Me.TabControl1.Controls.Add(Me.TabPage2) - Me.TabControl1.Controls.Add(Me.TabPage3) - Me.TabControl1.Controls.Add(Me.TabPage5) - Me.TabControl1.Controls.Add(Me.TabPage4) - Me.TabControl1.Controls.Add(Me.TabPage6) - Me.TabControl1.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.TabControl1.Location = New System.Drawing.Point(4, 70) - Me.TabControl1.Name = "TabControl1" - Me.TabControl1.SelectedIndex = 0 - Me.TabControl1.Size = New System.Drawing.Size(844, 478) - Me.TabControl1.TabIndex = 3 - ' - 'TabPage1 - ' - Me.TabPage1.Controls.Add(Me.txtOriginalTitle) - Me.TabPage1.Controls.Add(Me.lblOriginalTitle) - Me.TabPage1.Controls.Add(Me.txtCountry) - Me.TabPage1.Controls.Add(Me.lblCountry) - Me.TabPage1.Controls.Add(Me.txtFileSource) - Me.TabPage1.Controls.Add(Me.lblFileSource) - Me.TabPage1.Controls.Add(Me.btnActorDown) - Me.TabPage1.Controls.Add(Me.btnActorUp) - Me.TabPage1.Controls.Add(Me.Label6) - Me.TabPage1.Controls.Add(Me.txtSortTitle) - Me.TabPage1.Controls.Add(Me.lblLocalTrailer) - Me.TabPage1.Controls.Add(Me.btnPlayTrailer) - Me.TabPage1.Controls.Add(Me.btnDLTrailer) - Me.TabPage1.Controls.Add(Me.lbGenre) - Me.TabPage1.Controls.Add(Me.btnStudio) - Me.TabPage1.Controls.Add(Me.lblStudio) - Me.TabPage1.Controls.Add(Me.txtStudio) - Me.TabPage1.Controls.Add(Me.lblTrailer) - Me.TabPage1.Controls.Add(Me.txtTrailer) - Me.TabPage1.Controls.Add(Me.txtReleaseDate) - Me.TabPage1.Controls.Add(Me.lblReleaseDate) - Me.TabPage1.Controls.Add(Me.lblCredits) - Me.TabPage1.Controls.Add(Me.txtCredits) - Me.TabPage1.Controls.Add(Me.lblCerts) - Me.TabPage1.Controls.Add(Me.txtCerts) - Me.TabPage1.Controls.Add(Me.lblRuntime) - Me.TabPage1.Controls.Add(Me.txtRuntime) - Me.TabPage1.Controls.Add(Me.lblMPAADesc) - Me.TabPage1.Controls.Add(Me.txtMPAADesc) - Me.TabPage1.Controls.Add(Me.btnEditActor) - Me.TabPage1.Controls.Add(Me.btnAddActor) - Me.TabPage1.Controls.Add(Me.btnManual) - Me.TabPage1.Controls.Add(Me.btnRemove) - Me.TabPage1.Controls.Add(Me.lblActors) - Me.TabPage1.Controls.Add(Me.lvActors) - Me.TabPage1.Controls.Add(Me.lbMPAA) - Me.TabPage1.Controls.Add(Me.lblGenre) - Me.TabPage1.Controls.Add(Me.lblMPAA) - Me.TabPage1.Controls.Add(Me.lblDirector) - Me.TabPage1.Controls.Add(Me.txtDirector) - Me.TabPage1.Controls.Add(Me.txtTop250) - Me.TabPage1.Controls.Add(Me.lblTop250) - Me.TabPage1.Controls.Add(Me.lblPlot) - Me.TabPage1.Controls.Add(Me.txtPlot) - Me.TabPage1.Controls.Add(Me.lblOutline) - Me.TabPage1.Controls.Add(Me.txtOutline) - Me.TabPage1.Controls.Add(Me.lblTagline) - Me.TabPage1.Controls.Add(Me.txtTagline) - Me.TabPage1.Controls.Add(Me.pbStar5) - Me.TabPage1.Controls.Add(Me.pbStar4) - Me.TabPage1.Controls.Add(Me.pbStar3) - Me.TabPage1.Controls.Add(Me.pbStar2) - Me.TabPage1.Controls.Add(Me.pbStar1) - Me.TabPage1.Controls.Add(Me.txtVotes) - Me.TabPage1.Controls.Add(Me.lblVotes) - Me.TabPage1.Controls.Add(Me.lblRating) - Me.TabPage1.Controls.Add(Me.mtxtYear) - Me.TabPage1.Controls.Add(Me.lblYear) - Me.TabPage1.Controls.Add(Me.lblTitle) - Me.TabPage1.Controls.Add(Me.txtTitle) - Me.TabPage1.Location = New System.Drawing.Point(4, 22) - Me.TabPage1.Name = "TabPage1" - Me.TabPage1.Padding = New System.Windows.Forms.Padding(3) - Me.TabPage1.Size = New System.Drawing.Size(836, 452) - Me.TabPage1.TabIndex = 0 - Me.TabPage1.Text = "Details" - Me.TabPage1.UseVisualStyleBackColor = True - ' - 'txtOriginalTitle - ' - Me.txtOriginalTitle.BackColor = System.Drawing.SystemColors.Window - Me.txtOriginalTitle.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.txtOriginalTitle.Location = New System.Drawing.Point(7, 63) - Me.txtOriginalTitle.Name = "txtOriginalTitle" - Me.txtOriginalTitle.Size = New System.Drawing.Size(192, 22) - Me.txtOriginalTitle.TabIndex = 3 - ' - 'lblOriginalTitle - ' - Me.lblOriginalTitle.AutoSize = True - Me.lblOriginalTitle.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblOriginalTitle.Location = New System.Drawing.Point(5, 47) - Me.lblOriginalTitle.Name = "lblOriginalTitle" - Me.lblOriginalTitle.Size = New System.Drawing.Size(76, 13) - Me.lblOriginalTitle.TabIndex = 2 - Me.lblOriginalTitle.Text = "Original Title:" - ' - 'txtCountry - ' - Me.txtCountry.BackColor = System.Drawing.SystemColors.Window - Me.txtCountry.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.txtCountry.Location = New System.Drawing.Point(8, 224) - Me.txtCountry.Name = "txtCountry" - Me.txtCountry.Size = New System.Drawing.Size(89, 22) - Me.txtCountry.TabIndex = 12 - ' - 'lblCountry - ' - Me.lblCountry.AutoSize = True - Me.lblCountry.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblCountry.Location = New System.Drawing.Point(5, 209) - Me.lblCountry.Name = "lblCountry" - Me.lblCountry.Size = New System.Drawing.Size(52, 13) - Me.lblCountry.TabIndex = 11 - Me.lblCountry.Text = "Country:" - ' - 'txtFileSource - ' - Me.txtFileSource.BackColor = System.Drawing.SystemColors.Window - Me.txtFileSource.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.txtFileSource.Location = New System.Drawing.Point(636, 385) - Me.txtFileSource.Name = "txtFileSource" - Me.txtFileSource.Size = New System.Drawing.Size(167, 22) - Me.txtFileSource.TabIndex = 48 - ' - 'lblFileSource - ' - Me.lblFileSource.AutoSize = True - Me.lblFileSource.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblFileSource.Location = New System.Drawing.Point(633, 370) - Me.lblFileSource.Name = "lblFileSource" - Me.lblFileSource.Size = New System.Drawing.Size(78, 13) - Me.lblFileSource.TabIndex = 47 - Me.lblFileSource.Text = "Video Source:" - ' - 'btnActorDown - ' - Me.btnActorDown.Image = CType(resources.GetObject("btnActorDown.Image"), System.Drawing.Image) - Me.btnActorDown.Location = New System.Drawing.Point(430, 304) - Me.btnActorDown.Name = "btnActorDown" - Me.btnActorDown.Size = New System.Drawing.Size(23, 23) - Me.btnActorDown.TabIndex = 34 - Me.btnActorDown.UseVisualStyleBackColor = True - ' - 'btnActorUp - ' - Me.btnActorUp.Image = CType(resources.GetObject("btnActorUp.Image"), System.Drawing.Image) - Me.btnActorUp.Location = New System.Drawing.Point(406, 304) - Me.btnActorUp.Name = "btnActorUp" - Me.btnActorUp.Size = New System.Drawing.Size(23, 23) - Me.btnActorUp.TabIndex = 33 - Me.btnActorUp.UseVisualStyleBackColor = True - ' - 'Label6 - ' - Me.Label6.AutoSize = True - Me.Label6.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.Label6.Location = New System.Drawing.Point(5, 87) - Me.Label6.Name = "Label6" - Me.Label6.Size = New System.Drawing.Size(56, 13) - Me.Label6.TabIndex = 4 - Me.Label6.Text = "Sort Title:" - ' - 'txtSortTitle - ' - Me.txtSortTitle.BackColor = System.Drawing.SystemColors.Window - Me.txtSortTitle.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.txtSortTitle.Location = New System.Drawing.Point(7, 102) - Me.txtSortTitle.Name = "txtSortTitle" - Me.txtSortTitle.Size = New System.Drawing.Size(192, 22) - Me.txtSortTitle.TabIndex = 5 - ' - 'lblLocalTrailer - ' - Me.lblLocalTrailer.AutoSize = True - Me.lblLocalTrailer.Font = New System.Drawing.Font("Microsoft Sans Serif", 6.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblLocalTrailer.ForeColor = System.Drawing.Color.Green - Me.lblLocalTrailer.Location = New System.Drawing.Point(487, 414) - Me.lblLocalTrailer.Name = "lblLocalTrailer" - Me.lblLocalTrailer.Size = New System.Drawing.Size(90, 9) - Me.lblLocalTrailer.TabIndex = 51 - Me.lblLocalTrailer.Text = "Local Trailer Found" - Me.lblLocalTrailer.Visible = False - ' - 'btnPlayTrailer - ' - Me.btnPlayTrailer.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.btnPlayTrailer.Image = Global.Ember_Media_Manager.My.Resources.Resources.Play_Icon - Me.btnPlayTrailer.Location = New System.Drawing.Point(579, 423) - Me.btnPlayTrailer.Name = "btnPlayTrailer" - Me.btnPlayTrailer.Size = New System.Drawing.Size(23, 23) - Me.btnPlayTrailer.TabIndex = 52 - Me.btnPlayTrailer.UseVisualStyleBackColor = True - ' - 'btnDLTrailer - ' - Me.btnDLTrailer.Image = CType(resources.GetObject("btnDLTrailer.Image"), System.Drawing.Image) - Me.btnDLTrailer.Location = New System.Drawing.Point(602, 423) - Me.btnDLTrailer.Name = "btnDLTrailer" - Me.btnDLTrailer.Size = New System.Drawing.Size(23, 23) - Me.btnDLTrailer.TabIndex = 53 - Me.btnDLTrailer.UseVisualStyleBackColor = True - ' - 'lbGenre - ' - Me.lbGenre.BackColor = System.Drawing.SystemColors.Window - Me.lbGenre.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.lbGenre.CheckOnClick = True - Me.lbGenre.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lbGenre.FormattingEnabled = True - Me.lbGenre.IntegralHeight = False - Me.lbGenre.Location = New System.Drawing.Point(8, 345) - Me.lbGenre.Name = "lbGenre" - Me.lbGenre.Size = New System.Drawing.Size(192, 100) - Me.lbGenre.Sorted = True - Me.lbGenre.TabIndex = 24 - ' - 'btnStudio - ' - Me.btnStudio.Image = CType(resources.GetObject("btnStudio.Image"), System.Drawing.Image) - Me.btnStudio.Location = New System.Drawing.Point(805, 343) - Me.btnStudio.Name = "btnStudio" - Me.btnStudio.Size = New System.Drawing.Size(23, 23) - Me.btnStudio.TabIndex = 44 - Me.btnStudio.UseVisualStyleBackColor = True - ' - 'lblStudio - ' - Me.lblStudio.AutoSize = True - Me.lblStudio.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblStudio.Location = New System.Drawing.Point(633, 330) - Me.lblStudio.Name = "lblStudio" - Me.lblStudio.Size = New System.Drawing.Size(44, 13) - Me.lblStudio.TabIndex = 42 - Me.lblStudio.Text = "Studio:" - ' - 'txtStudio - ' - Me.txtStudio.BackColor = System.Drawing.SystemColors.Window - Me.txtStudio.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.txtStudio.Location = New System.Drawing.Point(635, 345) - Me.txtStudio.Name = "txtStudio" - Me.txtStudio.Size = New System.Drawing.Size(167, 22) - Me.txtStudio.TabIndex = 43 - ' - 'lblTrailer - ' - Me.lblTrailer.AutoSize = True - Me.lblTrailer.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblTrailer.Location = New System.Drawing.Point(215, 410) - Me.lblTrailer.Name = "lblTrailer" - Me.lblTrailer.Size = New System.Drawing.Size(66, 13) - Me.lblTrailer.TabIndex = 49 - Me.lblTrailer.Text = "Trailer URL:" - ' - 'txtTrailer - ' - Me.txtTrailer.BackColor = System.Drawing.SystemColors.Window - Me.txtTrailer.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.txtTrailer.Location = New System.Drawing.Point(217, 425) - Me.txtTrailer.Name = "txtTrailer" - Me.txtTrailer.Size = New System.Drawing.Size(360, 22) - Me.txtTrailer.TabIndex = 50 - ' - 'txtReleaseDate - ' - Me.txtReleaseDate.BackColor = System.Drawing.SystemColors.Window - Me.txtReleaseDate.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.txtReleaseDate.Location = New System.Drawing.Point(103, 224) - Me.txtReleaseDate.Name = "txtReleaseDate" - Me.txtReleaseDate.Size = New System.Drawing.Size(96, 22) - Me.txtReleaseDate.TabIndex = 14 - ' - 'lblReleaseDate - ' - Me.lblReleaseDate.AutoSize = True - Me.lblReleaseDate.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblReleaseDate.Location = New System.Drawing.Point(100, 209) - Me.lblReleaseDate.Name = "lblReleaseDate" - Me.lblReleaseDate.Size = New System.Drawing.Size(76, 13) - Me.lblReleaseDate.TabIndex = 13 - Me.lblReleaseDate.Text = "Release Date:" - ' - 'lblCredits - ' - Me.lblCredits.AutoSize = True - Me.lblCredits.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblCredits.Location = New System.Drawing.Point(215, 330) - Me.lblCredits.Name = "lblCredits" - Me.lblCredits.Size = New System.Drawing.Size(46, 13) - Me.lblCredits.TabIndex = 40 - Me.lblCredits.Text = "Credits:" - ' - 'txtCredits - ' - Me.txtCredits.BackColor = System.Drawing.SystemColors.Window - Me.txtCredits.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.txtCredits.Location = New System.Drawing.Point(217, 345) - Me.txtCredits.Name = "txtCredits" - Me.txtCredits.Size = New System.Drawing.Size(408, 22) - Me.txtCredits.TabIndex = 41 - ' - 'lblCerts - ' - Me.lblCerts.AutoSize = True - Me.lblCerts.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblCerts.Location = New System.Drawing.Point(215, 370) - Me.lblCerts.Name = "lblCerts" - Me.lblCerts.Size = New System.Drawing.Size(86, 13) - Me.lblCerts.TabIndex = 45 - Me.lblCerts.Text = "Certification(s):" - ' - 'txtCerts - ' - Me.txtCerts.BackColor = System.Drawing.SystemColors.Window - Me.txtCerts.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.txtCerts.Location = New System.Drawing.Point(217, 385) - Me.txtCerts.Name = "txtCerts" - Me.txtCerts.Size = New System.Drawing.Size(408, 22) - Me.txtCerts.TabIndex = 46 - ' - 'lblRuntime - ' - Me.lblRuntime.AutoSize = True - Me.lblRuntime.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblRuntime.Location = New System.Drawing.Point(5, 249) - Me.lblRuntime.Name = "lblRuntime" - Me.lblRuntime.Size = New System.Drawing.Size(54, 13) - Me.lblRuntime.TabIndex = 15 - Me.lblRuntime.Text = "Runtime:" - ' - 'txtRuntime - ' - Me.txtRuntime.BackColor = System.Drawing.SystemColors.Window - Me.txtRuntime.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.txtRuntime.Location = New System.Drawing.Point(7, 264) - Me.txtRuntime.Name = "txtRuntime" - Me.txtRuntime.Size = New System.Drawing.Size(66, 22) - Me.txtRuntime.TabIndex = 16 - ' - 'lblMPAADesc - ' - Me.lblMPAADesc.AutoSize = True - Me.lblMPAADesc.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblMPAADesc.Location = New System.Drawing.Point(633, 245) - Me.lblMPAADesc.Name = "lblMPAADesc" - Me.lblMPAADesc.Size = New System.Drawing.Size(143, 13) - Me.lblMPAADesc.TabIndex = 38 - Me.lblMPAADesc.Text = "MPAA Rating Description:" - ' - 'txtMPAADesc - ' - Me.txtMPAADesc.BackColor = System.Drawing.SystemColors.Window - Me.txtMPAADesc.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.txtMPAADesc.Location = New System.Drawing.Point(635, 260) - Me.txtMPAADesc.Multiline = True - Me.txtMPAADesc.Name = "txtMPAADesc" - Me.txtMPAADesc.Size = New System.Drawing.Size(193, 64) - Me.txtMPAADesc.TabIndex = 39 - ' - 'btnEditActor - ' - Me.btnEditActor.Image = CType(resources.GetObject("btnEditActor.Image"), System.Drawing.Image) - Me.btnEditActor.Location = New System.Drawing.Point(246, 303) - Me.btnEditActor.Name = "btnEditActor" - Me.btnEditActor.Size = New System.Drawing.Size(23, 23) - Me.btnEditActor.TabIndex = 32 - Me.btnEditActor.UseVisualStyleBackColor = True - ' - 'btnAddActor - ' - Me.btnAddActor.Image = CType(resources.GetObject("btnAddActor.Image"), System.Drawing.Image) - Me.btnAddActor.Location = New System.Drawing.Point(217, 303) - Me.btnAddActor.Name = "btnAddActor" - Me.btnAddActor.Size = New System.Drawing.Size(23, 23) - Me.btnAddActor.TabIndex = 31 - Me.btnAddActor.UseVisualStyleBackColor = True - ' - 'btnManual - ' - Me.btnManual.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.btnManual.Location = New System.Drawing.Point(738, 423) - Me.btnManual.Name = "btnManual" - Me.btnManual.Size = New System.Drawing.Size(92, 23) - Me.btnManual.TabIndex = 54 - Me.btnManual.Text = "Manual Edit" - Me.btnManual.UseVisualStyleBackColor = True - ' - 'btnRemove - ' - Me.btnRemove.Image = CType(resources.GetObject("btnRemove.Image"), System.Drawing.Image) - Me.btnRemove.Location = New System.Drawing.Point(602, 303) - Me.btnRemove.Name = "btnRemove" - Me.btnRemove.Size = New System.Drawing.Size(23, 23) - Me.btnRemove.TabIndex = 35 - Me.btnRemove.UseVisualStyleBackColor = True - ' - 'lblActors - ' - Me.lblActors.AutoSize = True - Me.lblActors.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblActors.Location = New System.Drawing.Point(215, 141) - Me.lblActors.Name = "lblActors" - Me.lblActors.Size = New System.Drawing.Size(43, 13) - Me.lblActors.TabIndex = 29 - Me.lblActors.Text = "Actors:" - ' - 'lvActors - ' - Me.lvActors.BackColor = System.Drawing.SystemColors.Window - Me.lvActors.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.lvActors.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.colName, Me.colRole, Me.colThumb}) - Me.lvActors.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lvActors.FullRowSelect = True - Me.lvActors.Location = New System.Drawing.Point(217, 155) - Me.lvActors.Name = "lvActors" - Me.lvActors.Size = New System.Drawing.Size(408, 147) - Me.lvActors.TabIndex = 30 - Me.lvActors.UseCompatibleStateImageBehavior = False - Me.lvActors.View = System.Windows.Forms.View.Details - ' - 'colName - ' - Me.colName.Text = "Name" - Me.colName.Width = 110 - ' - 'colRole - ' - Me.colRole.Text = "Role" - Me.colRole.Width = 100 - ' - 'colThumb - ' - Me.colThumb.Text = "Thumb" - Me.colThumb.Width = 174 - ' - 'lbMPAA - ' - Me.lbMPAA.BackColor = System.Drawing.SystemColors.Window - Me.lbMPAA.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.lbMPAA.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lbMPAA.FormattingEnabled = True - Me.lbMPAA.Location = New System.Drawing.Point(635, 155) - Me.lbMPAA.Name = "lbMPAA" - Me.lbMPAA.Size = New System.Drawing.Size(193, 80) - Me.lbMPAA.TabIndex = 37 - ' - 'lblGenre - ' - Me.lblGenre.AutoSize = True - Me.lblGenre.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblGenre.Location = New System.Drawing.Point(5, 330) - Me.lblGenre.Name = "lblGenre" - Me.lblGenre.Size = New System.Drawing.Size(41, 13) - Me.lblGenre.TabIndex = 23 - Me.lblGenre.Text = "Genre:" - ' - 'lblMPAA - ' - Me.lblMPAA.AutoSize = True - Me.lblMPAA.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblMPAA.Location = New System.Drawing.Point(633, 141) - Me.lblMPAA.Name = "lblMPAA" - Me.lblMPAA.Size = New System.Drawing.Size(81, 13) - Me.lblMPAA.TabIndex = 36 - Me.lblMPAA.Text = "MPAA Rating:" - ' - 'lblDirector - ' - Me.lblDirector.AutoSize = True - Me.lblDirector.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblDirector.Location = New System.Drawing.Point(5, 289) - Me.lblDirector.Name = "lblDirector" - Me.lblDirector.Size = New System.Drawing.Size(51, 13) - Me.lblDirector.TabIndex = 21 - Me.lblDirector.Text = "Director:" - ' - 'txtDirector - ' - Me.txtDirector.BackColor = System.Drawing.SystemColors.Window - Me.txtDirector.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.txtDirector.Location = New System.Drawing.Point(7, 304) - Me.txtDirector.Name = "txtDirector" - Me.txtDirector.Size = New System.Drawing.Size(192, 22) - Me.txtDirector.TabIndex = 22 - ' - 'txtTop250 - ' - Me.txtTop250.BackColor = System.Drawing.SystemColors.Window - Me.txtTop250.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.txtTop250.Location = New System.Drawing.Point(156, 264) - Me.txtTop250.Name = "txtTop250" - Me.txtTop250.Size = New System.Drawing.Size(43, 22) - Me.txtTop250.TabIndex = 20 - ' - 'lblTop250 - ' - Me.lblTop250.AutoSize = True - Me.lblTop250.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblTop250.Location = New System.Drawing.Point(153, 249) - Me.lblTop250.Name = "lblTop250" - Me.lblTop250.Size = New System.Drawing.Size(51, 13) - Me.lblTop250.TabIndex = 19 - Me.lblTop250.Text = "Top 250:" - ' - 'lblPlot - ' - Me.lblPlot.AutoSize = True - Me.lblPlot.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblPlot.Location = New System.Drawing.Point(441, 7) - Me.lblPlot.Name = "lblPlot" - Me.lblPlot.Size = New System.Drawing.Size(31, 13) - Me.lblPlot.TabIndex = 27 - Me.lblPlot.Text = "Plot:" - ' - 'txtPlot - ' - Me.txtPlot.AcceptsReturn = True - Me.txtPlot.BackColor = System.Drawing.SystemColors.Window - Me.txtPlot.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.txtPlot.Location = New System.Drawing.Point(443, 22) - Me.txtPlot.Multiline = True - Me.txtPlot.Name = "txtPlot" - Me.txtPlot.Size = New System.Drawing.Size(385, 112) - Me.txtPlot.TabIndex = 28 - ' - 'lblOutline - ' - Me.lblOutline.AutoSize = True - Me.lblOutline.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblOutline.Location = New System.Drawing.Point(215, 7) - Me.lblOutline.Name = "lblOutline" - Me.lblOutline.Size = New System.Drawing.Size(48, 13) - Me.lblOutline.TabIndex = 25 - Me.lblOutline.Text = "Outline:" - ' - 'txtOutline - ' - Me.txtOutline.AcceptsReturn = True - Me.txtOutline.BackColor = System.Drawing.SystemColors.Window - Me.txtOutline.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.txtOutline.Location = New System.Drawing.Point(217, 22) - Me.txtOutline.Multiline = True - Me.txtOutline.Name = "txtOutline" - Me.txtOutline.Size = New System.Drawing.Size(220, 112) - Me.txtOutline.TabIndex = 26 - ' - 'lblTagline - ' - Me.lblTagline.AutoSize = True - Me.lblTagline.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblTagline.Location = New System.Drawing.Point(5, 127) - Me.lblTagline.Name = "lblTagline" - Me.lblTagline.Size = New System.Drawing.Size(48, 13) - Me.lblTagline.TabIndex = 6 - Me.lblTagline.Text = "Tagline:" - ' - 'txtTagline - ' - Me.txtTagline.BackColor = System.Drawing.SystemColors.Window - Me.txtTagline.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.txtTagline.Location = New System.Drawing.Point(7, 142) - Me.txtTagline.Name = "txtTagline" - Me.txtTagline.Size = New System.Drawing.Size(192, 22) - Me.txtTagline.TabIndex = 7 - ' - 'pbStar5 - ' - Me.pbStar5.Location = New System.Drawing.Point(175, 180) - Me.pbStar5.Name = "pbStar5" - Me.pbStar5.Size = New System.Drawing.Size(24, 24) - Me.pbStar5.TabIndex = 67 - Me.pbStar5.TabStop = False - ' - 'pbStar4 - ' - Me.pbStar4.Location = New System.Drawing.Point(151, 180) - Me.pbStar4.Name = "pbStar4" - Me.pbStar4.Size = New System.Drawing.Size(24, 24) - Me.pbStar4.TabIndex = 66 - Me.pbStar4.TabStop = False - ' - 'pbStar3 - ' - Me.pbStar3.Location = New System.Drawing.Point(127, 180) - Me.pbStar3.Name = "pbStar3" - Me.pbStar3.Size = New System.Drawing.Size(24, 24) - Me.pbStar3.TabIndex = 65 - Me.pbStar3.TabStop = False - ' - 'pbStar2 - ' - Me.pbStar2.Location = New System.Drawing.Point(103, 180) - Me.pbStar2.Name = "pbStar2" - Me.pbStar2.Size = New System.Drawing.Size(24, 24) - Me.pbStar2.TabIndex = 64 - Me.pbStar2.TabStop = False - ' - 'pbStar1 - ' - Me.pbStar1.Location = New System.Drawing.Point(79, 180) - Me.pbStar1.Name = "pbStar1" - Me.pbStar1.Size = New System.Drawing.Size(24, 24) - Me.pbStar1.TabIndex = 63 - Me.pbStar1.TabStop = False - ' - 'txtVotes - ' - Me.txtVotes.BackColor = System.Drawing.SystemColors.Window - Me.txtVotes.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.txtVotes.Location = New System.Drawing.Point(81, 264) - Me.txtVotes.Name = "txtVotes" - Me.txtVotes.Size = New System.Drawing.Size(66, 22) - Me.txtVotes.TabIndex = 18 - ' - 'lblVotes - ' - Me.lblVotes.AutoSize = True - Me.lblVotes.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblVotes.Location = New System.Drawing.Point(78, 249) - Me.lblVotes.Name = "lblVotes" - Me.lblVotes.Size = New System.Drawing.Size(39, 13) - Me.lblVotes.TabIndex = 17 - Me.lblVotes.Text = "Votes:" - ' - 'lblRating - ' - Me.lblRating.AutoSize = True - Me.lblRating.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblRating.Location = New System.Drawing.Point(77, 167) - Me.lblRating.Name = "lblRating" - Me.lblRating.Size = New System.Drawing.Size(44, 13) - Me.lblRating.TabIndex = 10 - Me.lblRating.Text = "Rating:" - ' - 'mtxtYear - ' - Me.mtxtYear.BackColor = System.Drawing.SystemColors.Window - Me.mtxtYear.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.mtxtYear.Location = New System.Drawing.Point(7, 182) - Me.mtxtYear.Mask = "####" - Me.mtxtYear.Name = "mtxtYear" - Me.mtxtYear.PromptChar = Global.Microsoft.VisualBasic.ChrW(32) - Me.mtxtYear.Size = New System.Drawing.Size(50, 22) - Me.mtxtYear.TabIndex = 9 - ' - 'lblYear - ' - Me.lblYear.AutoSize = True - Me.lblYear.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblYear.Location = New System.Drawing.Point(5, 167) - Me.lblYear.Name = "lblYear" - Me.lblYear.Size = New System.Drawing.Size(33, 13) - Me.lblYear.TabIndex = 8 - Me.lblYear.Text = "Year:" - ' - 'lblTitle - ' - Me.lblTitle.AutoSize = True - Me.lblTitle.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblTitle.Location = New System.Drawing.Point(5, 7) - Me.lblTitle.Name = "lblTitle" - Me.lblTitle.Size = New System.Drawing.Size(32, 13) - Me.lblTitle.TabIndex = 0 - Me.lblTitle.Text = "Title:" - ' - 'txtTitle - ' - Me.txtTitle.BackColor = System.Drawing.SystemColors.Window - Me.txtTitle.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.txtTitle.Location = New System.Drawing.Point(7, 22) - Me.txtTitle.Name = "txtTitle" - Me.txtTitle.Size = New System.Drawing.Size(192, 22) - Me.txtTitle.TabIndex = 1 - ' - 'TabPage2 - ' - Me.TabPage2.Controls.Add(Me.btnSetPosterDL) - Me.TabPage2.Controls.Add(Me.btnRemovePoster) - Me.TabPage2.Controls.Add(Me.lblPosterSize) - Me.TabPage2.Controls.Add(Me.btnSetPosterScrape) - Me.TabPage2.Controls.Add(Me.btnSetPoster) - Me.TabPage2.Controls.Add(Me.pbPoster) - Me.TabPage2.Location = New System.Drawing.Point(4, 22) - Me.TabPage2.Name = "TabPage2" - Me.TabPage2.Padding = New System.Windows.Forms.Padding(3) - Me.TabPage2.Size = New System.Drawing.Size(836, 452) - Me.TabPage2.TabIndex = 1 - Me.TabPage2.Text = "Poster" - Me.TabPage2.UseVisualStyleBackColor = True - ' - 'btnSetPosterDL - ' - Me.btnSetPosterDL.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.btnSetPosterDL.Image = CType(resources.GetObject("btnSetPosterDL.Image"), System.Drawing.Image) - Me.btnSetPosterDL.ImageAlign = System.Drawing.ContentAlignment.TopCenter - Me.btnSetPosterDL.Location = New System.Drawing.Point(735, 180) - Me.btnSetPosterDL.Name = "btnSetPosterDL" - Me.btnSetPosterDL.Size = New System.Drawing.Size(96, 83) - Me.btnSetPosterDL.TabIndex = 3 - Me.btnSetPosterDL.Text = "Change Poster (Download)" - Me.btnSetPosterDL.TextAlign = System.Drawing.ContentAlignment.BottomCenter - Me.btnSetPosterDL.UseVisualStyleBackColor = True - ' - 'btnRemovePoster - ' - Me.btnRemovePoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.btnRemovePoster.Image = CType(resources.GetObject("btnRemovePoster.Image"), System.Drawing.Image) - Me.btnRemovePoster.ImageAlign = System.Drawing.ContentAlignment.TopCenter - Me.btnRemovePoster.Location = New System.Drawing.Point(735, 363) - Me.btnRemovePoster.Name = "btnRemovePoster" - Me.btnRemovePoster.Size = New System.Drawing.Size(96, 83) - Me.btnRemovePoster.TabIndex = 4 - Me.btnRemovePoster.Text = "Remove Poster" - Me.btnRemovePoster.TextAlign = System.Drawing.ContentAlignment.BottomCenter - Me.btnRemovePoster.UseVisualStyleBackColor = True - ' - 'lblPosterSize - ' - Me.lblPosterSize.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.lblPosterSize.Location = New System.Drawing.Point(8, 8) - Me.lblPosterSize.Name = "lblPosterSize" - Me.lblPosterSize.Size = New System.Drawing.Size(105, 23) - Me.lblPosterSize.TabIndex = 0 - Me.lblPosterSize.Text = "Size: (XXXXxXXXX)" - Me.lblPosterSize.TextAlign = System.Drawing.ContentAlignment.MiddleCenter - Me.lblPosterSize.Visible = False - ' - 'btnSetPosterScrape - ' - Me.btnSetPosterScrape.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.btnSetPosterScrape.Image = CType(resources.GetObject("btnSetPosterScrape.Image"), System.Drawing.Image) - Me.btnSetPosterScrape.ImageAlign = System.Drawing.ContentAlignment.TopCenter - Me.btnSetPosterScrape.Location = New System.Drawing.Point(735, 93) - Me.btnSetPosterScrape.Name = "btnSetPosterScrape" - Me.btnSetPosterScrape.Size = New System.Drawing.Size(96, 83) - Me.btnSetPosterScrape.TabIndex = 2 - Me.btnSetPosterScrape.Text = "Change Poster (Scrape)" - Me.btnSetPosterScrape.TextAlign = System.Drawing.ContentAlignment.BottomCenter - Me.btnSetPosterScrape.UseVisualStyleBackColor = True - ' - 'btnSetPoster - ' - Me.btnSetPoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.btnSetPoster.Image = CType(resources.GetObject("btnSetPoster.Image"), System.Drawing.Image) - Me.btnSetPoster.ImageAlign = System.Drawing.ContentAlignment.TopCenter - Me.btnSetPoster.Location = New System.Drawing.Point(735, 6) - Me.btnSetPoster.Name = "btnSetPoster" - Me.btnSetPoster.Size = New System.Drawing.Size(96, 83) - Me.btnSetPoster.TabIndex = 1 - Me.btnSetPoster.Text = "Change Poster (Local Browse)" - Me.btnSetPoster.TextAlign = System.Drawing.ContentAlignment.BottomCenter - Me.btnSetPoster.UseVisualStyleBackColor = True - ' - 'pbPoster - ' - Me.pbPoster.BackColor = System.Drawing.Color.DimGray - Me.pbPoster.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.pbPoster.Location = New System.Drawing.Point(6, 6) - Me.pbPoster.Name = "pbPoster" - Me.pbPoster.Size = New System.Drawing.Size(724, 440) - Me.pbPoster.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom - Me.pbPoster.TabIndex = 0 - Me.pbPoster.TabStop = False - ' - 'TabPage3 - ' - Me.TabPage3.Controls.Add(Me.btnSetFanartDL) - Me.TabPage3.Controls.Add(Me.btnRemoveFanart) - Me.TabPage3.Controls.Add(Me.lblFanartSize) - Me.TabPage3.Controls.Add(Me.btnSetFanartScrape) - Me.TabPage3.Controls.Add(Me.btnSetFanart) - Me.TabPage3.Controls.Add(Me.pbFanart) - Me.TabPage3.Location = New System.Drawing.Point(4, 22) - Me.TabPage3.Name = "TabPage3" - Me.TabPage3.Size = New System.Drawing.Size(836, 452) - Me.TabPage3.TabIndex = 2 - Me.TabPage3.Text = "Fanart" - Me.TabPage3.UseVisualStyleBackColor = True - ' - 'btnSetFanartDL - ' - Me.btnSetFanartDL.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.btnSetFanartDL.Image = CType(resources.GetObject("btnSetFanartDL.Image"), System.Drawing.Image) - Me.btnSetFanartDL.ImageAlign = System.Drawing.ContentAlignment.TopCenter - Me.btnSetFanartDL.Location = New System.Drawing.Point(735, 180) - Me.btnSetFanartDL.Name = "btnSetFanartDL" - Me.btnSetFanartDL.Size = New System.Drawing.Size(96, 83) - Me.btnSetFanartDL.TabIndex = 3 - Me.btnSetFanartDL.Text = "Change Fanart (Download)" - Me.btnSetFanartDL.TextAlign = System.Drawing.ContentAlignment.BottomCenter - Me.btnSetFanartDL.UseVisualStyleBackColor = True - ' - 'btnRemoveFanart - ' - Me.btnRemoveFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.btnRemoveFanart.Image = CType(resources.GetObject("btnRemoveFanart.Image"), System.Drawing.Image) - Me.btnRemoveFanart.ImageAlign = System.Drawing.ContentAlignment.TopCenter - Me.btnRemoveFanart.Location = New System.Drawing.Point(735, 363) - Me.btnRemoveFanart.Name = "btnRemoveFanart" - Me.btnRemoveFanart.Size = New System.Drawing.Size(96, 83) - Me.btnRemoveFanart.TabIndex = 4 - Me.btnRemoveFanart.Text = "Remove Fanart" - Me.btnRemoveFanart.TextAlign = System.Drawing.ContentAlignment.BottomCenter - Me.btnRemoveFanart.UseVisualStyleBackColor = True - ' - 'lblFanartSize - ' - Me.lblFanartSize.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.lblFanartSize.Location = New System.Drawing.Point(8, 8) - Me.lblFanartSize.Name = "lblFanartSize" - Me.lblFanartSize.Size = New System.Drawing.Size(105, 23) - Me.lblFanartSize.TabIndex = 0 - Me.lblFanartSize.Text = "Size: (XXXXxXXXX)" - Me.lblFanartSize.TextAlign = System.Drawing.ContentAlignment.MiddleCenter - Me.lblFanartSize.Visible = False - ' - 'btnSetFanartScrape - ' - Me.btnSetFanartScrape.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.btnSetFanartScrape.Image = CType(resources.GetObject("btnSetFanartScrape.Image"), System.Drawing.Image) - Me.btnSetFanartScrape.ImageAlign = System.Drawing.ContentAlignment.TopCenter - Me.btnSetFanartScrape.Location = New System.Drawing.Point(735, 93) - Me.btnSetFanartScrape.Name = "btnSetFanartScrape" - Me.btnSetFanartScrape.Size = New System.Drawing.Size(96, 83) - Me.btnSetFanartScrape.TabIndex = 2 - Me.btnSetFanartScrape.Text = "Change Fanart (Scrape)" - Me.btnSetFanartScrape.TextAlign = System.Drawing.ContentAlignment.BottomCenter - Me.btnSetFanartScrape.UseVisualStyleBackColor = True - ' - 'btnSetFanart - ' - Me.btnSetFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.btnSetFanart.Image = CType(resources.GetObject("btnSetFanart.Image"), System.Drawing.Image) - Me.btnSetFanart.ImageAlign = System.Drawing.ContentAlignment.TopCenter - Me.btnSetFanart.Location = New System.Drawing.Point(735, 6) - Me.btnSetFanart.Name = "btnSetFanart" - Me.btnSetFanart.Size = New System.Drawing.Size(96, 83) - Me.btnSetFanart.TabIndex = 1 - Me.btnSetFanart.Text = "Change Fanart (Local Browse)" - Me.btnSetFanart.TextAlign = System.Drawing.ContentAlignment.BottomCenter - Me.btnSetFanart.UseVisualStyleBackColor = True - ' - 'pbFanart - ' - Me.pbFanart.BackColor = System.Drawing.Color.DimGray - Me.pbFanart.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.pbFanart.Location = New System.Drawing.Point(6, 6) - Me.pbFanart.Name = "pbFanart" - Me.pbFanart.Size = New System.Drawing.Size(724, 440) - Me.pbFanart.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom - Me.pbFanart.TabIndex = 1 - Me.pbFanart.TabStop = False - ' - 'TabPage5 - ' - Me.TabPage5.Controls.Add(Me.pnlETQueue) - Me.TabPage5.Controls.Add(Me.Panel1) - Me.TabPage5.Controls.Add(Me.btnThumbsRefresh) - Me.TabPage5.Controls.Add(Me.btnRemoveThumb) - Me.TabPage5.Controls.Add(Me.btnDown) - Me.TabPage5.Controls.Add(Me.btnUp) - Me.TabPage5.Controls.Add(Me.lvThumbs) - Me.TabPage5.Controls.Add(Me.pbExtraThumbs) - Me.TabPage5.Location = New System.Drawing.Point(4, 22) - Me.TabPage5.Name = "TabPage5" - Me.TabPage5.Size = New System.Drawing.Size(836, 452) - Me.TabPage5.TabIndex = 4 - Me.TabPage5.Text = "Extrathumbs" - Me.TabPage5.UseVisualStyleBackColor = True - ' - 'pnlETQueue - ' - Me.pnlETQueue.BackColor = System.Drawing.Color.LightGray - Me.pnlETQueue.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.pnlETQueue.Controls.Add(Me.Label4) - Me.pnlETQueue.Controls.Add(Me.btnTransferNow) - Me.pnlETQueue.Location = New System.Drawing.Point(626, 11) - Me.pnlETQueue.Name = "pnlETQueue" - Me.pnlETQueue.Size = New System.Drawing.Size(201, 69) - Me.pnlETQueue.TabIndex = 1 - Me.pnlETQueue.Visible = False - ' - 'Label4 - ' - Me.Label4.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.Label4.Location = New System.Drawing.Point(3, 3) - Me.Label4.Name = "Label4" - Me.Label4.Size = New System.Drawing.Size(193, 26) - Me.Label4.TabIndex = 0 - Me.Label4.Text = "You have extrathumbs queued to be transferred to the movie directory." - Me.Label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter - ' - 'btnTransferNow - ' - Me.btnTransferNow.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.btnTransferNow.Image = CType(resources.GetObject("btnTransferNow.Image"), System.Drawing.Image) - Me.btnTransferNow.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnTransferNow.Location = New System.Drawing.Point(53, 32) - Me.btnTransferNow.Name = "btnTransferNow" - Me.btnTransferNow.Size = New System.Drawing.Size(103, 32) - Me.btnTransferNow.TabIndex = 1 - Me.btnTransferNow.Text = "Transfer Now" - Me.btnTransferNow.TextAlign = System.Drawing.ContentAlignment.MiddleRight - Me.btnTransferNow.UseVisualStyleBackColor = True - ' - 'Panel1 - ' - Me.Panel1.BackColor = System.Drawing.Color.LightGray - Me.Panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.Panel1.Controls.Add(Me.btnSetAsFanart) - Me.Panel1.Location = New System.Drawing.Point(718, 403) - Me.Panel1.Name = "Panel1" - Me.Panel1.Size = New System.Drawing.Size(109, 39) - Me.Panel1.TabIndex = 6 - ' - 'btnSetAsFanart - ' - Me.btnSetAsFanart.Enabled = False - Me.btnSetAsFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.btnSetAsFanart.Image = CType(resources.GetObject("btnSetAsFanart.Image"), System.Drawing.Image) - Me.btnSetAsFanart.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnSetAsFanart.Location = New System.Drawing.Point(2, 3) - Me.btnSetAsFanart.Name = "btnSetAsFanart" - Me.btnSetAsFanart.Size = New System.Drawing.Size(103, 32) - Me.btnSetAsFanart.TabIndex = 0 - Me.btnSetAsFanart.Text = "Set As Fanart" - Me.btnSetAsFanart.TextAlign = System.Drawing.ContentAlignment.MiddleRight - Me.btnSetAsFanart.UseVisualStyleBackColor = True - ' - 'btnThumbsRefresh - ' - Me.btnThumbsRefresh.Image = CType(resources.GetObject("btnThumbsRefresh.Image"), System.Drawing.Image) - Me.btnThumbsRefresh.Location = New System.Drawing.Point(87, 422) - Me.btnThumbsRefresh.Name = "btnThumbsRefresh" - Me.btnThumbsRefresh.Size = New System.Drawing.Size(23, 23) - Me.btnThumbsRefresh.TabIndex = 4 - Me.btnThumbsRefresh.UseVisualStyleBackColor = True - ' - 'btnRemoveThumb - ' - Me.btnRemoveThumb.Image = CType(resources.GetObject("btnRemoveThumb.Image"), System.Drawing.Image) - Me.btnRemoveThumb.Location = New System.Drawing.Point(147, 422) - Me.btnRemoveThumb.Name = "btnRemoveThumb" - Me.btnRemoveThumb.Size = New System.Drawing.Size(23, 23) - Me.btnRemoveThumb.TabIndex = 5 - Me.btnRemoveThumb.UseVisualStyleBackColor = True - ' - 'btnDown - ' - Me.btnDown.Image = CType(resources.GetObject("btnDown.Image"), System.Drawing.Image) - Me.btnDown.Location = New System.Drawing.Point(28, 422) - Me.btnDown.Name = "btnDown" - Me.btnDown.Size = New System.Drawing.Size(23, 23) - Me.btnDown.TabIndex = 3 - Me.btnDown.UseVisualStyleBackColor = True - ' - 'btnUp - ' - Me.btnUp.Image = CType(resources.GetObject("btnUp.Image"), System.Drawing.Image) - Me.btnUp.Location = New System.Drawing.Point(4, 422) - Me.btnUp.Name = "btnUp" - Me.btnUp.Size = New System.Drawing.Size(23, 23) - Me.btnUp.TabIndex = 2 - Me.btnUp.UseVisualStyleBackColor = True - ' - 'lvThumbs - ' - Me.lvThumbs.AutoArrange = False - Me.lvThumbs.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.lvThumbs.Font = New System.Drawing.Font("Segoe UI", 14.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lvThumbs.FullRowSelect = True - Me.lvThumbs.HideSelection = False - Me.lvThumbs.Location = New System.Drawing.Point(5, 8) - Me.lvThumbs.Name = "lvThumbs" - Me.lvThumbs.Size = New System.Drawing.Size(165, 408) - Me.lvThumbs.SmallImageList = Me.ilThumbs - Me.lvThumbs.Sorting = System.Windows.Forms.SortOrder.Ascending - Me.lvThumbs.TabIndex = 0 - Me.lvThumbs.UseCompatibleStateImageBehavior = False - Me.lvThumbs.View = System.Windows.Forms.View.SmallIcon - ' - 'ilThumbs - ' - Me.ilThumbs.ColorDepth = System.Windows.Forms.ColorDepth.Depth32Bit - Me.ilThumbs.ImageSize = New System.Drawing.Size(96, 54) - Me.ilThumbs.TransparentColor = System.Drawing.Color.Transparent - ' - 'pbExtraThumbs - ' - Me.pbExtraThumbs.BackColor = System.Drawing.Color.DimGray - Me.pbExtraThumbs.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.pbExtraThumbs.Location = New System.Drawing.Point(176, 8) - Me.pbExtraThumbs.Name = "pbExtraThumbs" - Me.pbExtraThumbs.Size = New System.Drawing.Size(653, 437) - Me.pbExtraThumbs.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom - Me.pbExtraThumbs.TabIndex = 2 - Me.pbExtraThumbs.TabStop = False - ' - 'TabPage4 - ' - Me.TabPage4.Controls.Add(Me.pnlFrameExtrator) - Me.TabPage4.Location = New System.Drawing.Point(4, 22) - Me.TabPage4.Name = "TabPage4" - Me.TabPage4.Padding = New System.Windows.Forms.Padding(3) - Me.TabPage4.Size = New System.Drawing.Size(836, 452) - Me.TabPage4.TabIndex = 3 - Me.TabPage4.Text = "Frame Extraction" - Me.TabPage4.UseVisualStyleBackColor = True - ' - 'pnlFrameExtrator - ' - Me.pnlFrameExtrator.Location = New System.Drawing.Point(0, 0) - Me.pnlFrameExtrator.Name = "pnlFrameExtrator" - Me.pnlFrameExtrator.Size = New System.Drawing.Size(834, 452) - Me.pnlFrameExtrator.TabIndex = 0 - ' - 'TabPage6 - ' - Me.TabPage6.Controls.Add(Me.pnlFileInfo) - Me.TabPage6.Location = New System.Drawing.Point(4, 22) - Me.TabPage6.Name = "TabPage6" - Me.TabPage6.Padding = New System.Windows.Forms.Padding(3) - Me.TabPage6.Size = New System.Drawing.Size(836, 452) - Me.TabPage6.TabIndex = 5 - Me.TabPage6.Text = "Meta Data" - Me.TabPage6.UseVisualStyleBackColor = True - ' - 'pnlFileInfo - ' - Me.pnlFileInfo.Location = New System.Drawing.Point(-4, 0) - Me.pnlFileInfo.Name = "pnlFileInfo" - Me.pnlFileInfo.Size = New System.Drawing.Size(844, 452) - Me.pnlFileInfo.TabIndex = 0 - ' - 'chkMark - ' - Me.chkMark.AutoSize = True - Me.chkMark.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkMark.Location = New System.Drawing.Point(4, 559) - Me.chkMark.Name = "chkMark" - Me.chkMark.Size = New System.Drawing.Size(86, 17) - Me.chkMark.TabIndex = 5 - Me.chkMark.Text = "Mark Movie" - Me.chkMark.UseVisualStyleBackColor = True - ' - 'btnRescrape - ' - Me.btnRescrape.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.btnRescrape.Image = CType(resources.GetObject("btnRescrape.Image"), System.Drawing.Image) - Me.btnRescrape.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnRescrape.Location = New System.Drawing.Point(310, 554) - Me.btnRescrape.Name = "btnRescrape" - Me.btnRescrape.Size = New System.Drawing.Size(98, 23) - Me.btnRescrape.TabIndex = 6 - Me.btnRescrape.Text = "Re-scrape" - Me.btnRescrape.TextAlign = System.Drawing.ContentAlignment.MiddleRight - Me.btnRescrape.UseVisualStyleBackColor = True - ' - 'btnChangeMovie - ' - Me.btnChangeMovie.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.btnChangeMovie.Image = CType(resources.GetObject("btnChangeMovie.Image"), System.Drawing.Image) - Me.btnChangeMovie.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnChangeMovie.Location = New System.Drawing.Point(429, 554) - Me.btnChangeMovie.Name = "btnChangeMovie" - Me.btnChangeMovie.Size = New System.Drawing.Size(107, 23) - Me.btnChangeMovie.TabIndex = 7 - Me.btnChangeMovie.Text = "Change Movie" - Me.btnChangeMovie.TextAlign = System.Drawing.ContentAlignment.MiddleRight - Me.btnChangeMovie.UseVisualStyleBackColor = True - ' - 'btnClearCache - ' - Me.btnClearCache.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.btnClearCache.Image = CType(resources.GetObject("btnClearCache.Image"), System.Drawing.Image) - Me.btnClearCache.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnClearCache.Location = New System.Drawing.Point(751, 66) - Me.btnClearCache.Name = "btnClearCache" - Me.btnClearCache.Size = New System.Drawing.Size(96, 23) - Me.btnClearCache.TabIndex = 4 - Me.btnClearCache.Text = "Clear Cache" - Me.btnClearCache.TextAlign = System.Drawing.ContentAlignment.MiddleRight - Me.btnClearCache.UseVisualStyleBackColor = True - Me.btnClearCache.Visible = False - ' - 'DelayTimer - ' - Me.DelayTimer.Interval = 250 - ' - 'dlgEditMovie - ' - Me.AcceptButton = Me.OK_Button - Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi - Me.CancelButton = Me.Cancel_Button - Me.ClientSize = New System.Drawing.Size(854, 582) - Me.Controls.Add(Me.btnClearCache) - Me.Controls.Add(Me.btnChangeMovie) - Me.Controls.Add(Me.btnRescrape) - Me.Controls.Add(Me.chkMark) - Me.Controls.Add(Me.Cancel_Button) - Me.Controls.Add(Me.OK_Button) - Me.Controls.Add(Me.pnlTop) - Me.Controls.Add(Me.TabControl1) - Me.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog - Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) - Me.MaximizeBox = False - Me.MinimizeBox = False - Me.Name = "dlgEditMovie" - Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Edit Movie" - Me.pnlTop.ResumeLayout(False) - Me.pnlTop.PerformLayout() - CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() - Me.TabControl1.ResumeLayout(False) - Me.TabPage1.ResumeLayout(False) - Me.TabPage1.PerformLayout() - CType(Me.pbStar5, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.pbStar4, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.pbStar3, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.pbStar2, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.pbStar1, System.ComponentModel.ISupportInitialize).EndInit() - Me.TabPage2.ResumeLayout(False) - CType(Me.pbPoster, System.ComponentModel.ISupportInitialize).EndInit() - Me.TabPage3.ResumeLayout(False) - CType(Me.pbFanart, System.ComponentModel.ISupportInitialize).EndInit() - Me.TabPage5.ResumeLayout(False) - Me.pnlETQueue.ResumeLayout(False) - Me.Panel1.ResumeLayout(False) - CType(Me.pbExtraThumbs, System.ComponentModel.ISupportInitialize).EndInit() - Me.TabPage4.ResumeLayout(False) - Me.TabPage6.ResumeLayout(False) - Me.ResumeLayout(False) - Me.PerformLayout() + Me.components = New System.ComponentModel.Container() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(dlgEditMovie)) + Me.OK_Button = New System.Windows.Forms.Button() + Me.Cancel_Button = New System.Windows.Forms.Button() + Me.pnlTop = New System.Windows.Forms.Panel() + Me.Label2 = New System.Windows.Forms.Label() + Me.Label1 = New System.Windows.Forms.Label() + Me.PictureBox1 = New System.Windows.Forms.PictureBox() + Me.TabControl1 = New System.Windows.Forms.TabControl() + Me.TabPage1 = New System.Windows.Forms.TabPage() + Me.txtOriginalTitle = New System.Windows.Forms.TextBox() + Me.lblOriginalTitle = New System.Windows.Forms.Label() + Me.txtCountry = New System.Windows.Forms.TextBox() + Me.lblCountry = New System.Windows.Forms.Label() + Me.txtFileSource = New System.Windows.Forms.TextBox() + Me.lblFileSource = New System.Windows.Forms.Label() + Me.btnActorDown = New System.Windows.Forms.Button() + Me.btnActorUp = New System.Windows.Forms.Button() + Me.Label6 = New System.Windows.Forms.Label() + Me.txtSortTitle = New System.Windows.Forms.TextBox() + Me.lblLocalTrailer = New System.Windows.Forms.Label() + Me.btnPlayTrailer = New System.Windows.Forms.Button() + Me.btnDLTrailer = New System.Windows.Forms.Button() + Me.lbGenre = New System.Windows.Forms.CheckedListBox() + Me.btnStudio = New System.Windows.Forms.Button() + Me.lblStudio = New System.Windows.Forms.Label() + Me.txtStudio = New System.Windows.Forms.TextBox() + Me.lblTrailer = New System.Windows.Forms.Label() + Me.txtTrailer = New System.Windows.Forms.TextBox() + Me.txtReleaseDate = New System.Windows.Forms.TextBox() + Me.lblReleaseDate = New System.Windows.Forms.Label() + Me.lblCredits = New System.Windows.Forms.Label() + Me.txtCredits = New System.Windows.Forms.TextBox() + Me.lblCerts = New System.Windows.Forms.Label() + Me.txtCerts = New System.Windows.Forms.TextBox() + Me.lblRuntime = New System.Windows.Forms.Label() + Me.txtRuntime = New System.Windows.Forms.TextBox() + Me.lblMPAADesc = New System.Windows.Forms.Label() + Me.txtMPAADesc = New System.Windows.Forms.TextBox() + Me.btnEditActor = New System.Windows.Forms.Button() + Me.btnAddActor = New System.Windows.Forms.Button() + Me.btnManual = New System.Windows.Forms.Button() + Me.btnRemove = New System.Windows.Forms.Button() + Me.lblActors = New System.Windows.Forms.Label() + Me.lvActors = New System.Windows.Forms.ListView() + Me.colName = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.colRole = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.colThumb = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.lbMPAA = New System.Windows.Forms.ListBox() + Me.lblGenre = New System.Windows.Forms.Label() + Me.lblMPAA = New System.Windows.Forms.Label() + Me.lblDirector = New System.Windows.Forms.Label() + Me.txtDirector = New System.Windows.Forms.TextBox() + Me.txtTop250 = New System.Windows.Forms.TextBox() + Me.lblTop250 = New System.Windows.Forms.Label() + Me.lblPlot = New System.Windows.Forms.Label() + Me.txtPlot = New System.Windows.Forms.TextBox() + Me.lblOutline = New System.Windows.Forms.Label() + Me.txtOutline = New System.Windows.Forms.TextBox() + Me.lblTagline = New System.Windows.Forms.Label() + Me.txtTagline = New System.Windows.Forms.TextBox() + Me.pbStar5 = New System.Windows.Forms.PictureBox() + Me.pbStar4 = New System.Windows.Forms.PictureBox() + Me.pbStar3 = New System.Windows.Forms.PictureBox() + Me.pbStar2 = New System.Windows.Forms.PictureBox() + Me.pbStar1 = New System.Windows.Forms.PictureBox() + Me.txtVotes = New System.Windows.Forms.TextBox() + Me.lblVotes = New System.Windows.Forms.Label() + Me.lblRating = New System.Windows.Forms.Label() + Me.mtxtYear = New System.Windows.Forms.MaskedTextBox() + Me.lblYear = New System.Windows.Forms.Label() + Me.lblTitle = New System.Windows.Forms.Label() + Me.txtTitle = New System.Windows.Forms.TextBox() + Me.TabPage2 = New System.Windows.Forms.TabPage() + Me.btnSetPosterDL = New System.Windows.Forms.Button() + Me.btnRemovePoster = New System.Windows.Forms.Button() + Me.lblPosterSize = New System.Windows.Forms.Label() + Me.btnSetPosterScrape = New System.Windows.Forms.Button() + Me.btnSetPoster = New System.Windows.Forms.Button() + Me.pbPoster = New System.Windows.Forms.PictureBox() + Me.TabPage3 = New System.Windows.Forms.TabPage() + Me.btnSetFanartDL = New System.Windows.Forms.Button() + Me.btnRemoveFanart = New System.Windows.Forms.Button() + Me.lblFanartSize = New System.Windows.Forms.Label() + Me.btnSetFanartScrape = New System.Windows.Forms.Button() + Me.btnSetFanart = New System.Windows.Forms.Button() + Me.pbFanart = New System.Windows.Forms.PictureBox() + Me.TabPage5 = New System.Windows.Forms.TabPage() + Me.pnlETQueue = New System.Windows.Forms.Panel() + Me.Label4 = New System.Windows.Forms.Label() + Me.btnTransferNow = New System.Windows.Forms.Button() + Me.Panel1 = New System.Windows.Forms.Panel() + Me.btnSetAsFanart = New System.Windows.Forms.Button() + Me.btnThumbsRefresh = New System.Windows.Forms.Button() + Me.btnRemoveThumb = New System.Windows.Forms.Button() + Me.btnDown = New System.Windows.Forms.Button() + Me.btnUp = New System.Windows.Forms.Button() + Me.lvThumbs = New System.Windows.Forms.ListView() + Me.ilThumbs = New System.Windows.Forms.ImageList(Me.components) + Me.pbExtraThumbs = New System.Windows.Forms.PictureBox() + Me.TabPage4 = New System.Windows.Forms.TabPage() + Me.pnlFrameExtrator = New System.Windows.Forms.Panel() + Me.TabPage6 = New System.Windows.Forms.TabPage() + Me.pnlFileInfo = New System.Windows.Forms.Panel() + Me.ofdImage = New System.Windows.Forms.OpenFileDialog() + Me.chkMark = New System.Windows.Forms.CheckBox() + Me.btnRescrape = New System.Windows.Forms.Button() + Me.btnChangeMovie = New System.Windows.Forms.Button() + Me.btnClearCache = New System.Windows.Forms.Button() + Me.DelayTimer = New System.Windows.Forms.Timer(Me.components) + Me.chkWatched = New System.Windows.Forms.CheckBox() + Me.pnlTop.SuspendLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.TabControl1.SuspendLayout() + Me.TabPage1.SuspendLayout() + CType(Me.pbStar5, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.pbStar4, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.pbStar3, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.pbStar2, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.pbStar1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.TabPage2.SuspendLayout() + CType(Me.pbPoster, System.ComponentModel.ISupportInitialize).BeginInit() + Me.TabPage3.SuspendLayout() + CType(Me.pbFanart, System.ComponentModel.ISupportInitialize).BeginInit() + Me.TabPage5.SuspendLayout() + Me.pnlETQueue.SuspendLayout() + Me.Panel1.SuspendLayout() + CType(Me.pbExtraThumbs, System.ComponentModel.ISupportInitialize).BeginInit() + Me.TabPage4.SuspendLayout() + Me.TabPage6.SuspendLayout() + Me.SuspendLayout() + ' + 'OK_Button + ' + Me.OK_Button.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.OK_Button.Location = New System.Drawing.Point(708, 553) + Me.OK_Button.Name = "OK_Button" + Me.OK_Button.Size = New System.Drawing.Size(67, 23) + Me.OK_Button.TabIndex = 0 + Me.OK_Button.Text = "OK" + ' + 'Cancel_Button + ' + Me.Cancel_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.Cancel_Button.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Cancel_Button.Location = New System.Drawing.Point(781, 553) + Me.Cancel_Button.Name = "Cancel_Button" + Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) + Me.Cancel_Button.TabIndex = 1 + Me.Cancel_Button.Text = "Cancel" + ' + 'pnlTop + ' + Me.pnlTop.BackColor = System.Drawing.Color.LightSteelBlue + Me.pnlTop.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.pnlTop.Controls.Add(Me.Label2) + Me.pnlTop.Controls.Add(Me.Label1) + Me.pnlTop.Controls.Add(Me.PictureBox1) + Me.pnlTop.Dock = System.Windows.Forms.DockStyle.Top + Me.pnlTop.Location = New System.Drawing.Point(0, 0) + Me.pnlTop.Name = "pnlTop" + Me.pnlTop.Size = New System.Drawing.Size(854, 64) + Me.pnlTop.TabIndex = 2 + ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.BackColor = System.Drawing.Color.Transparent + Me.Label2.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Label2.ForeColor = System.Drawing.Color.White + Me.Label2.Location = New System.Drawing.Point(61, 38) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(205, 13) + Me.Label2.TabIndex = 1 + Me.Label2.Text = "Edit the details for the selected movie." + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.BackColor = System.Drawing.Color.Transparent + Me.Label1.Font = New System.Drawing.Font("Segoe UI", 18.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Label1.ForeColor = System.Drawing.Color.White + Me.Label1.Location = New System.Drawing.Point(58, 3) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(137, 32) + Me.Label1.TabIndex = 0 + Me.Label1.Text = "Edit Movie" + ' + 'PictureBox1 + ' + Me.PictureBox1.BackColor = System.Drawing.Color.Transparent + Me.PictureBox1.Image = CType(resources.GetObject("PictureBox1.Image"), System.Drawing.Image) + Me.PictureBox1.Location = New System.Drawing.Point(7, 8) + Me.PictureBox1.Name = "PictureBox1" + Me.PictureBox1.Size = New System.Drawing.Size(48, 48) + Me.PictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize + Me.PictureBox1.TabIndex = 0 + Me.PictureBox1.TabStop = False + ' + 'TabControl1 + ' + Me.TabControl1.Controls.Add(Me.TabPage1) + Me.TabControl1.Controls.Add(Me.TabPage2) + Me.TabControl1.Controls.Add(Me.TabPage3) + Me.TabControl1.Controls.Add(Me.TabPage5) + Me.TabControl1.Controls.Add(Me.TabPage4) + Me.TabControl1.Controls.Add(Me.TabPage6) + Me.TabControl1.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.TabControl1.Location = New System.Drawing.Point(4, 70) + Me.TabControl1.Name = "TabControl1" + Me.TabControl1.SelectedIndex = 0 + Me.TabControl1.Size = New System.Drawing.Size(844, 478) + Me.TabControl1.TabIndex = 3 + ' + 'TabPage1 + ' + Me.TabPage1.Controls.Add(Me.txtOriginalTitle) + Me.TabPage1.Controls.Add(Me.lblOriginalTitle) + Me.TabPage1.Controls.Add(Me.txtCountry) + Me.TabPage1.Controls.Add(Me.lblCountry) + Me.TabPage1.Controls.Add(Me.txtFileSource) + Me.TabPage1.Controls.Add(Me.lblFileSource) + Me.TabPage1.Controls.Add(Me.btnActorDown) + Me.TabPage1.Controls.Add(Me.btnActorUp) + Me.TabPage1.Controls.Add(Me.Label6) + Me.TabPage1.Controls.Add(Me.txtSortTitle) + Me.TabPage1.Controls.Add(Me.lblLocalTrailer) + Me.TabPage1.Controls.Add(Me.btnPlayTrailer) + Me.TabPage1.Controls.Add(Me.btnDLTrailer) + Me.TabPage1.Controls.Add(Me.lbGenre) + Me.TabPage1.Controls.Add(Me.btnStudio) + Me.TabPage1.Controls.Add(Me.lblStudio) + Me.TabPage1.Controls.Add(Me.txtStudio) + Me.TabPage1.Controls.Add(Me.lblTrailer) + Me.TabPage1.Controls.Add(Me.txtTrailer) + Me.TabPage1.Controls.Add(Me.txtReleaseDate) + Me.TabPage1.Controls.Add(Me.lblReleaseDate) + Me.TabPage1.Controls.Add(Me.lblCredits) + Me.TabPage1.Controls.Add(Me.txtCredits) + Me.TabPage1.Controls.Add(Me.lblCerts) + Me.TabPage1.Controls.Add(Me.txtCerts) + Me.TabPage1.Controls.Add(Me.lblRuntime) + Me.TabPage1.Controls.Add(Me.txtRuntime) + Me.TabPage1.Controls.Add(Me.lblMPAADesc) + Me.TabPage1.Controls.Add(Me.txtMPAADesc) + Me.TabPage1.Controls.Add(Me.btnEditActor) + Me.TabPage1.Controls.Add(Me.btnAddActor) + Me.TabPage1.Controls.Add(Me.btnManual) + Me.TabPage1.Controls.Add(Me.btnRemove) + Me.TabPage1.Controls.Add(Me.lblActors) + Me.TabPage1.Controls.Add(Me.lvActors) + Me.TabPage1.Controls.Add(Me.lbMPAA) + Me.TabPage1.Controls.Add(Me.lblGenre) + Me.TabPage1.Controls.Add(Me.lblMPAA) + Me.TabPage1.Controls.Add(Me.lblDirector) + Me.TabPage1.Controls.Add(Me.txtDirector) + Me.TabPage1.Controls.Add(Me.txtTop250) + Me.TabPage1.Controls.Add(Me.lblTop250) + Me.TabPage1.Controls.Add(Me.lblPlot) + Me.TabPage1.Controls.Add(Me.txtPlot) + Me.TabPage1.Controls.Add(Me.lblOutline) + Me.TabPage1.Controls.Add(Me.txtOutline) + Me.TabPage1.Controls.Add(Me.lblTagline) + Me.TabPage1.Controls.Add(Me.txtTagline) + Me.TabPage1.Controls.Add(Me.pbStar5) + Me.TabPage1.Controls.Add(Me.pbStar4) + Me.TabPage1.Controls.Add(Me.pbStar3) + Me.TabPage1.Controls.Add(Me.pbStar2) + Me.TabPage1.Controls.Add(Me.pbStar1) + Me.TabPage1.Controls.Add(Me.txtVotes) + Me.TabPage1.Controls.Add(Me.lblVotes) + Me.TabPage1.Controls.Add(Me.lblRating) + Me.TabPage1.Controls.Add(Me.mtxtYear) + Me.TabPage1.Controls.Add(Me.lblYear) + Me.TabPage1.Controls.Add(Me.lblTitle) + Me.TabPage1.Controls.Add(Me.txtTitle) + Me.TabPage1.Location = New System.Drawing.Point(4, 22) + Me.TabPage1.Name = "TabPage1" + Me.TabPage1.Padding = New System.Windows.Forms.Padding(3) + Me.TabPage1.Size = New System.Drawing.Size(836, 452) + Me.TabPage1.TabIndex = 0 + Me.TabPage1.Text = "Details" + Me.TabPage1.UseVisualStyleBackColor = True + ' + 'txtOriginalTitle + ' + Me.txtOriginalTitle.BackColor = System.Drawing.SystemColors.Window + Me.txtOriginalTitle.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.txtOriginalTitle.Location = New System.Drawing.Point(7, 63) + Me.txtOriginalTitle.Name = "txtOriginalTitle" + Me.txtOriginalTitle.Size = New System.Drawing.Size(192, 22) + Me.txtOriginalTitle.TabIndex = 3 + ' + 'lblOriginalTitle + ' + Me.lblOriginalTitle.AutoSize = True + Me.lblOriginalTitle.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblOriginalTitle.Location = New System.Drawing.Point(5, 47) + Me.lblOriginalTitle.Name = "lblOriginalTitle" + Me.lblOriginalTitle.Size = New System.Drawing.Size(76, 13) + Me.lblOriginalTitle.TabIndex = 2 + Me.lblOriginalTitle.Text = "Original Title:" + ' + 'txtCountry + ' + Me.txtCountry.BackColor = System.Drawing.SystemColors.Window + Me.txtCountry.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.txtCountry.Location = New System.Drawing.Point(8, 224) + Me.txtCountry.Name = "txtCountry" + Me.txtCountry.Size = New System.Drawing.Size(89, 22) + Me.txtCountry.TabIndex = 12 + ' + 'lblCountry + ' + Me.lblCountry.AutoSize = True + Me.lblCountry.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblCountry.Location = New System.Drawing.Point(5, 209) + Me.lblCountry.Name = "lblCountry" + Me.lblCountry.Size = New System.Drawing.Size(52, 13) + Me.lblCountry.TabIndex = 11 + Me.lblCountry.Text = "Country:" + ' + 'txtFileSource + ' + Me.txtFileSource.BackColor = System.Drawing.SystemColors.Window + Me.txtFileSource.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.txtFileSource.Location = New System.Drawing.Point(636, 385) + Me.txtFileSource.Name = "txtFileSource" + Me.txtFileSource.Size = New System.Drawing.Size(167, 22) + Me.txtFileSource.TabIndex = 48 + ' + 'lblFileSource + ' + Me.lblFileSource.AutoSize = True + Me.lblFileSource.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblFileSource.Location = New System.Drawing.Point(633, 370) + Me.lblFileSource.Name = "lblFileSource" + Me.lblFileSource.Size = New System.Drawing.Size(78, 13) + Me.lblFileSource.TabIndex = 47 + Me.lblFileSource.Text = "Video Source:" + ' + 'btnActorDown + ' + Me.btnActorDown.Image = CType(resources.GetObject("btnActorDown.Image"), System.Drawing.Image) + Me.btnActorDown.Location = New System.Drawing.Point(430, 304) + Me.btnActorDown.Name = "btnActorDown" + Me.btnActorDown.Size = New System.Drawing.Size(23, 23) + Me.btnActorDown.TabIndex = 34 + Me.btnActorDown.UseVisualStyleBackColor = True + ' + 'btnActorUp + ' + Me.btnActorUp.Image = CType(resources.GetObject("btnActorUp.Image"), System.Drawing.Image) + Me.btnActorUp.Location = New System.Drawing.Point(406, 304) + Me.btnActorUp.Name = "btnActorUp" + Me.btnActorUp.Size = New System.Drawing.Size(23, 23) + Me.btnActorUp.TabIndex = 33 + Me.btnActorUp.UseVisualStyleBackColor = True + ' + 'Label6 + ' + Me.Label6.AutoSize = True + Me.Label6.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Label6.Location = New System.Drawing.Point(5, 87) + Me.Label6.Name = "Label6" + Me.Label6.Size = New System.Drawing.Size(56, 13) + Me.Label6.TabIndex = 4 + Me.Label6.Text = "Sort Title:" + ' + 'txtSortTitle + ' + Me.txtSortTitle.BackColor = System.Drawing.SystemColors.Window + Me.txtSortTitle.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.txtSortTitle.Location = New System.Drawing.Point(7, 102) + Me.txtSortTitle.Name = "txtSortTitle" + Me.txtSortTitle.Size = New System.Drawing.Size(192, 22) + Me.txtSortTitle.TabIndex = 5 + ' + 'lblLocalTrailer + ' + Me.lblLocalTrailer.AutoSize = True + Me.lblLocalTrailer.Font = New System.Drawing.Font("Microsoft Sans Serif", 6.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblLocalTrailer.ForeColor = System.Drawing.Color.Green + Me.lblLocalTrailer.Location = New System.Drawing.Point(487, 414) + Me.lblLocalTrailer.Name = "lblLocalTrailer" + Me.lblLocalTrailer.Size = New System.Drawing.Size(90, 9) + Me.lblLocalTrailer.TabIndex = 51 + Me.lblLocalTrailer.Text = "Local Trailer Found" + Me.lblLocalTrailer.Visible = False + ' + 'btnPlayTrailer + ' + Me.btnPlayTrailer.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.btnPlayTrailer.Image = Global.Ember_Media_Manager.My.Resources.Resources.Play_Icon + Me.btnPlayTrailer.Location = New System.Drawing.Point(579, 423) + Me.btnPlayTrailer.Name = "btnPlayTrailer" + Me.btnPlayTrailer.Size = New System.Drawing.Size(23, 23) + Me.btnPlayTrailer.TabIndex = 52 + Me.btnPlayTrailer.UseVisualStyleBackColor = True + ' + 'btnDLTrailer + ' + Me.btnDLTrailer.Image = CType(resources.GetObject("btnDLTrailer.Image"), System.Drawing.Image) + Me.btnDLTrailer.Location = New System.Drawing.Point(602, 423) + Me.btnDLTrailer.Name = "btnDLTrailer" + Me.btnDLTrailer.Size = New System.Drawing.Size(23, 23) + Me.btnDLTrailer.TabIndex = 53 + Me.btnDLTrailer.UseVisualStyleBackColor = True + ' + 'lbGenre + ' + Me.lbGenre.BackColor = System.Drawing.SystemColors.Window + Me.lbGenre.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.lbGenre.CheckOnClick = True + Me.lbGenre.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lbGenre.FormattingEnabled = True + Me.lbGenre.IntegralHeight = False + Me.lbGenre.Location = New System.Drawing.Point(8, 345) + Me.lbGenre.Name = "lbGenre" + Me.lbGenre.Size = New System.Drawing.Size(192, 100) + Me.lbGenre.Sorted = True + Me.lbGenre.TabIndex = 24 + ' + 'btnStudio + ' + Me.btnStudio.Image = CType(resources.GetObject("btnStudio.Image"), System.Drawing.Image) + Me.btnStudio.Location = New System.Drawing.Point(805, 343) + Me.btnStudio.Name = "btnStudio" + Me.btnStudio.Size = New System.Drawing.Size(23, 23) + Me.btnStudio.TabIndex = 44 + Me.btnStudio.UseVisualStyleBackColor = True + ' + 'lblStudio + ' + Me.lblStudio.AutoSize = True + Me.lblStudio.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblStudio.Location = New System.Drawing.Point(633, 330) + Me.lblStudio.Name = "lblStudio" + Me.lblStudio.Size = New System.Drawing.Size(44, 13) + Me.lblStudio.TabIndex = 42 + Me.lblStudio.Text = "Studio:" + ' + 'txtStudio + ' + Me.txtStudio.BackColor = System.Drawing.SystemColors.Window + Me.txtStudio.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.txtStudio.Location = New System.Drawing.Point(635, 345) + Me.txtStudio.Name = "txtStudio" + Me.txtStudio.Size = New System.Drawing.Size(167, 22) + Me.txtStudio.TabIndex = 43 + ' + 'lblTrailer + ' + Me.lblTrailer.AutoSize = True + Me.lblTrailer.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblTrailer.Location = New System.Drawing.Point(215, 410) + Me.lblTrailer.Name = "lblTrailer" + Me.lblTrailer.Size = New System.Drawing.Size(65, 13) + Me.lblTrailer.TabIndex = 49 + Me.lblTrailer.Text = "Trailer URL:" + ' + 'txtTrailer + ' + Me.txtTrailer.BackColor = System.Drawing.SystemColors.Window + Me.txtTrailer.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.txtTrailer.Location = New System.Drawing.Point(217, 425) + Me.txtTrailer.Name = "txtTrailer" + Me.txtTrailer.Size = New System.Drawing.Size(360, 22) + Me.txtTrailer.TabIndex = 50 + ' + 'txtReleaseDate + ' + Me.txtReleaseDate.BackColor = System.Drawing.SystemColors.Window + Me.txtReleaseDate.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.txtReleaseDate.Location = New System.Drawing.Point(103, 224) + Me.txtReleaseDate.Name = "txtReleaseDate" + Me.txtReleaseDate.Size = New System.Drawing.Size(96, 22) + Me.txtReleaseDate.TabIndex = 14 + ' + 'lblReleaseDate + ' + Me.lblReleaseDate.AutoSize = True + Me.lblReleaseDate.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblReleaseDate.Location = New System.Drawing.Point(100, 209) + Me.lblReleaseDate.Name = "lblReleaseDate" + Me.lblReleaseDate.Size = New System.Drawing.Size(76, 13) + Me.lblReleaseDate.TabIndex = 13 + Me.lblReleaseDate.Text = "Release Date:" + ' + 'lblCredits + ' + Me.lblCredits.AutoSize = True + Me.lblCredits.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblCredits.Location = New System.Drawing.Point(215, 330) + Me.lblCredits.Name = "lblCredits" + Me.lblCredits.Size = New System.Drawing.Size(46, 13) + Me.lblCredits.TabIndex = 40 + Me.lblCredits.Text = "Credits:" + ' + 'txtCredits + ' + Me.txtCredits.BackColor = System.Drawing.SystemColors.Window + Me.txtCredits.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.txtCredits.Location = New System.Drawing.Point(217, 345) + Me.txtCredits.Name = "txtCredits" + Me.txtCredits.Size = New System.Drawing.Size(408, 22) + Me.txtCredits.TabIndex = 41 + ' + 'lblCerts + ' + Me.lblCerts.AutoSize = True + Me.lblCerts.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblCerts.Location = New System.Drawing.Point(215, 370) + Me.lblCerts.Name = "lblCerts" + Me.lblCerts.Size = New System.Drawing.Size(86, 13) + Me.lblCerts.TabIndex = 45 + Me.lblCerts.Text = "Certification(s):" + ' + 'txtCerts + ' + Me.txtCerts.BackColor = System.Drawing.SystemColors.Window + Me.txtCerts.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.txtCerts.Location = New System.Drawing.Point(217, 385) + Me.txtCerts.Name = "txtCerts" + Me.txtCerts.Size = New System.Drawing.Size(408, 22) + Me.txtCerts.TabIndex = 46 + ' + 'lblRuntime + ' + Me.lblRuntime.AutoSize = True + Me.lblRuntime.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblRuntime.Location = New System.Drawing.Point(5, 249) + Me.lblRuntime.Name = "lblRuntime" + Me.lblRuntime.Size = New System.Drawing.Size(54, 13) + Me.lblRuntime.TabIndex = 15 + Me.lblRuntime.Text = "Runtime:" + ' + 'txtRuntime + ' + Me.txtRuntime.BackColor = System.Drawing.SystemColors.Window + Me.txtRuntime.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.txtRuntime.Location = New System.Drawing.Point(7, 264) + Me.txtRuntime.Name = "txtRuntime" + Me.txtRuntime.Size = New System.Drawing.Size(66, 22) + Me.txtRuntime.TabIndex = 16 + ' + 'lblMPAADesc + ' + Me.lblMPAADesc.AutoSize = True + Me.lblMPAADesc.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblMPAADesc.Location = New System.Drawing.Point(633, 245) + Me.lblMPAADesc.Name = "lblMPAADesc" + Me.lblMPAADesc.Size = New System.Drawing.Size(142, 13) + Me.lblMPAADesc.TabIndex = 38 + Me.lblMPAADesc.Text = "MPAA Rating Description:" + ' + 'txtMPAADesc + ' + Me.txtMPAADesc.BackColor = System.Drawing.SystemColors.Window + Me.txtMPAADesc.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.txtMPAADesc.Location = New System.Drawing.Point(635, 260) + Me.txtMPAADesc.Multiline = True + Me.txtMPAADesc.Name = "txtMPAADesc" + Me.txtMPAADesc.Size = New System.Drawing.Size(193, 64) + Me.txtMPAADesc.TabIndex = 39 + ' + 'btnEditActor + ' + Me.btnEditActor.Image = CType(resources.GetObject("btnEditActor.Image"), System.Drawing.Image) + Me.btnEditActor.Location = New System.Drawing.Point(246, 303) + Me.btnEditActor.Name = "btnEditActor" + Me.btnEditActor.Size = New System.Drawing.Size(23, 23) + Me.btnEditActor.TabIndex = 32 + Me.btnEditActor.UseVisualStyleBackColor = True + ' + 'btnAddActor + ' + Me.btnAddActor.Image = CType(resources.GetObject("btnAddActor.Image"), System.Drawing.Image) + Me.btnAddActor.Location = New System.Drawing.Point(217, 303) + Me.btnAddActor.Name = "btnAddActor" + Me.btnAddActor.Size = New System.Drawing.Size(23, 23) + Me.btnAddActor.TabIndex = 31 + Me.btnAddActor.UseVisualStyleBackColor = True + ' + 'btnManual + ' + Me.btnManual.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.btnManual.Location = New System.Drawing.Point(738, 423) + Me.btnManual.Name = "btnManual" + Me.btnManual.Size = New System.Drawing.Size(92, 23) + Me.btnManual.TabIndex = 54 + Me.btnManual.Text = "Manual Edit" + Me.btnManual.UseVisualStyleBackColor = True + ' + 'btnRemove + ' + Me.btnRemove.Image = CType(resources.GetObject("btnRemove.Image"), System.Drawing.Image) + Me.btnRemove.Location = New System.Drawing.Point(602, 303) + Me.btnRemove.Name = "btnRemove" + Me.btnRemove.Size = New System.Drawing.Size(23, 23) + Me.btnRemove.TabIndex = 35 + Me.btnRemove.UseVisualStyleBackColor = True + ' + 'lblActors + ' + Me.lblActors.AutoSize = True + Me.lblActors.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblActors.Location = New System.Drawing.Point(215, 141) + Me.lblActors.Name = "lblActors" + Me.lblActors.Size = New System.Drawing.Size(43, 13) + Me.lblActors.TabIndex = 29 + Me.lblActors.Text = "Actors:" + ' + 'lvActors + ' + Me.lvActors.BackColor = System.Drawing.SystemColors.Window + Me.lvActors.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.lvActors.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.colName, Me.colRole, Me.colThumb}) + Me.lvActors.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lvActors.FullRowSelect = True + Me.lvActors.Location = New System.Drawing.Point(217, 155) + Me.lvActors.Name = "lvActors" + Me.lvActors.Size = New System.Drawing.Size(408, 147) + Me.lvActors.TabIndex = 30 + Me.lvActors.UseCompatibleStateImageBehavior = False + Me.lvActors.View = System.Windows.Forms.View.Details + ' + 'colName + ' + Me.colName.Text = "Name" + Me.colName.Width = 110 + ' + 'colRole + ' + Me.colRole.Text = "Role" + Me.colRole.Width = 100 + ' + 'colThumb + ' + Me.colThumb.Text = "Thumb" + Me.colThumb.Width = 174 + ' + 'lbMPAA + ' + Me.lbMPAA.BackColor = System.Drawing.SystemColors.Window + Me.lbMPAA.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.lbMPAA.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lbMPAA.FormattingEnabled = True + Me.lbMPAA.Location = New System.Drawing.Point(635, 155) + Me.lbMPAA.Name = "lbMPAA" + Me.lbMPAA.Size = New System.Drawing.Size(193, 80) + Me.lbMPAA.TabIndex = 37 + ' + 'lblGenre + ' + Me.lblGenre.AutoSize = True + Me.lblGenre.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblGenre.Location = New System.Drawing.Point(5, 330) + Me.lblGenre.Name = "lblGenre" + Me.lblGenre.Size = New System.Drawing.Size(41, 13) + Me.lblGenre.TabIndex = 23 + Me.lblGenre.Text = "Genre:" + ' + 'lblMPAA + ' + Me.lblMPAA.AutoSize = True + Me.lblMPAA.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblMPAA.Location = New System.Drawing.Point(633, 141) + Me.lblMPAA.Name = "lblMPAA" + Me.lblMPAA.Size = New System.Drawing.Size(80, 13) + Me.lblMPAA.TabIndex = 36 + Me.lblMPAA.Text = "MPAA Rating:" + ' + 'lblDirector + ' + Me.lblDirector.AutoSize = True + Me.lblDirector.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblDirector.Location = New System.Drawing.Point(5, 289) + Me.lblDirector.Name = "lblDirector" + Me.lblDirector.Size = New System.Drawing.Size(51, 13) + Me.lblDirector.TabIndex = 21 + Me.lblDirector.Text = "Director:" + ' + 'txtDirector + ' + Me.txtDirector.BackColor = System.Drawing.SystemColors.Window + Me.txtDirector.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.txtDirector.Location = New System.Drawing.Point(7, 304) + Me.txtDirector.Name = "txtDirector" + Me.txtDirector.Size = New System.Drawing.Size(192, 22) + Me.txtDirector.TabIndex = 22 + ' + 'txtTop250 + ' + Me.txtTop250.BackColor = System.Drawing.SystemColors.Window + Me.txtTop250.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.txtTop250.Location = New System.Drawing.Point(156, 264) + Me.txtTop250.Name = "txtTop250" + Me.txtTop250.Size = New System.Drawing.Size(43, 22) + Me.txtTop250.TabIndex = 20 + ' + 'lblTop250 + ' + Me.lblTop250.AutoSize = True + Me.lblTop250.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblTop250.Location = New System.Drawing.Point(153, 249) + Me.lblTop250.Name = "lblTop250" + Me.lblTop250.Size = New System.Drawing.Size(50, 13) + Me.lblTop250.TabIndex = 19 + Me.lblTop250.Text = "Top 250:" + ' + 'lblPlot + ' + Me.lblPlot.AutoSize = True + Me.lblPlot.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblPlot.Location = New System.Drawing.Point(441, 7) + Me.lblPlot.Name = "lblPlot" + Me.lblPlot.Size = New System.Drawing.Size(31, 13) + Me.lblPlot.TabIndex = 27 + Me.lblPlot.Text = "Plot:" + ' + 'txtPlot + ' + Me.txtPlot.AcceptsReturn = True + Me.txtPlot.BackColor = System.Drawing.SystemColors.Window + Me.txtPlot.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.txtPlot.Location = New System.Drawing.Point(443, 22) + Me.txtPlot.Multiline = True + Me.txtPlot.Name = "txtPlot" + Me.txtPlot.ScrollBars = System.Windows.Forms.ScrollBars.Vertical + Me.txtPlot.Size = New System.Drawing.Size(385, 112) + Me.txtPlot.TabIndex = 28 + ' + 'lblOutline + ' + Me.lblOutline.AutoSize = True + Me.lblOutline.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblOutline.Location = New System.Drawing.Point(215, 7) + Me.lblOutline.Name = "lblOutline" + Me.lblOutline.Size = New System.Drawing.Size(48, 13) + Me.lblOutline.TabIndex = 25 + Me.lblOutline.Text = "Outline:" + ' + 'txtOutline + ' + Me.txtOutline.AcceptsReturn = True + Me.txtOutline.BackColor = System.Drawing.SystemColors.Window + Me.txtOutline.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.txtOutline.Location = New System.Drawing.Point(217, 22) + Me.txtOutline.Multiline = True + Me.txtOutline.Name = "txtOutline" + Me.txtOutline.ScrollBars = System.Windows.Forms.ScrollBars.Vertical + Me.txtOutline.Size = New System.Drawing.Size(220, 112) + Me.txtOutline.TabIndex = 26 + ' + 'lblTagline + ' + Me.lblTagline.AutoSize = True + Me.lblTagline.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblTagline.Location = New System.Drawing.Point(5, 127) + Me.lblTagline.Name = "lblTagline" + Me.lblTagline.Size = New System.Drawing.Size(47, 13) + Me.lblTagline.TabIndex = 6 + Me.lblTagline.Text = "Tagline:" + ' + 'txtTagline + ' + Me.txtTagline.BackColor = System.Drawing.SystemColors.Window + Me.txtTagline.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.txtTagline.Location = New System.Drawing.Point(7, 142) + Me.txtTagline.Name = "txtTagline" + Me.txtTagline.Size = New System.Drawing.Size(192, 22) + Me.txtTagline.TabIndex = 7 + ' + 'pbStar5 + ' + Me.pbStar5.Location = New System.Drawing.Point(175, 180) + Me.pbStar5.Name = "pbStar5" + Me.pbStar5.Size = New System.Drawing.Size(24, 24) + Me.pbStar5.TabIndex = 67 + Me.pbStar5.TabStop = False + ' + 'pbStar4 + ' + Me.pbStar4.Location = New System.Drawing.Point(151, 180) + Me.pbStar4.Name = "pbStar4" + Me.pbStar4.Size = New System.Drawing.Size(24, 24) + Me.pbStar4.TabIndex = 66 + Me.pbStar4.TabStop = False + ' + 'pbStar3 + ' + Me.pbStar3.Location = New System.Drawing.Point(127, 180) + Me.pbStar3.Name = "pbStar3" + Me.pbStar3.Size = New System.Drawing.Size(24, 24) + Me.pbStar3.TabIndex = 65 + Me.pbStar3.TabStop = False + ' + 'pbStar2 + ' + Me.pbStar2.Location = New System.Drawing.Point(103, 180) + Me.pbStar2.Name = "pbStar2" + Me.pbStar2.Size = New System.Drawing.Size(24, 24) + Me.pbStar2.TabIndex = 64 + Me.pbStar2.TabStop = False + ' + 'pbStar1 + ' + Me.pbStar1.Location = New System.Drawing.Point(79, 180) + Me.pbStar1.Name = "pbStar1" + Me.pbStar1.Size = New System.Drawing.Size(24, 24) + Me.pbStar1.TabIndex = 63 + Me.pbStar1.TabStop = False + ' + 'txtVotes + ' + Me.txtVotes.BackColor = System.Drawing.SystemColors.Window + Me.txtVotes.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.txtVotes.Location = New System.Drawing.Point(81, 264) + Me.txtVotes.Name = "txtVotes" + Me.txtVotes.Size = New System.Drawing.Size(66, 22) + Me.txtVotes.TabIndex = 18 + ' + 'lblVotes + ' + Me.lblVotes.AutoSize = True + Me.lblVotes.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblVotes.Location = New System.Drawing.Point(78, 249) + Me.lblVotes.Name = "lblVotes" + Me.lblVotes.Size = New System.Drawing.Size(38, 13) + Me.lblVotes.TabIndex = 17 + Me.lblVotes.Text = "Votes:" + ' + 'lblRating + ' + Me.lblRating.AutoSize = True + Me.lblRating.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblRating.Location = New System.Drawing.Point(77, 167) + Me.lblRating.Name = "lblRating" + Me.lblRating.Size = New System.Drawing.Size(44, 13) + Me.lblRating.TabIndex = 10 + Me.lblRating.Text = "Rating:" + ' + 'mtxtYear + ' + Me.mtxtYear.BackColor = System.Drawing.SystemColors.Window + Me.mtxtYear.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.mtxtYear.Location = New System.Drawing.Point(7, 182) + Me.mtxtYear.Mask = "####" + Me.mtxtYear.Name = "mtxtYear" + Me.mtxtYear.PromptChar = Global.Microsoft.VisualBasic.ChrW(32) + Me.mtxtYear.Size = New System.Drawing.Size(50, 22) + Me.mtxtYear.TabIndex = 9 + ' + 'lblYear + ' + Me.lblYear.AutoSize = True + Me.lblYear.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblYear.Location = New System.Drawing.Point(5, 167) + Me.lblYear.Name = "lblYear" + Me.lblYear.Size = New System.Drawing.Size(32, 13) + Me.lblYear.TabIndex = 8 + Me.lblYear.Text = "Year:" + ' + 'lblTitle + ' + Me.lblTitle.AutoSize = True + Me.lblTitle.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblTitle.Location = New System.Drawing.Point(5, 7) + Me.lblTitle.Name = "lblTitle" + Me.lblTitle.Size = New System.Drawing.Size(32, 13) + Me.lblTitle.TabIndex = 0 + Me.lblTitle.Text = "Title:" + ' + 'txtTitle + ' + Me.txtTitle.BackColor = System.Drawing.SystemColors.Window + Me.txtTitle.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.txtTitle.Location = New System.Drawing.Point(7, 22) + Me.txtTitle.Name = "txtTitle" + Me.txtTitle.Size = New System.Drawing.Size(192, 22) + Me.txtTitle.TabIndex = 1 + ' + 'TabPage2 + ' + Me.TabPage2.Controls.Add(Me.btnSetPosterDL) + Me.TabPage2.Controls.Add(Me.btnRemovePoster) + Me.TabPage2.Controls.Add(Me.lblPosterSize) + Me.TabPage2.Controls.Add(Me.btnSetPosterScrape) + Me.TabPage2.Controls.Add(Me.btnSetPoster) + Me.TabPage2.Controls.Add(Me.pbPoster) + Me.TabPage2.Location = New System.Drawing.Point(4, 22) + Me.TabPage2.Name = "TabPage2" + Me.TabPage2.Padding = New System.Windows.Forms.Padding(3) + Me.TabPage2.Size = New System.Drawing.Size(836, 452) + Me.TabPage2.TabIndex = 1 + Me.TabPage2.Text = "Poster" + Me.TabPage2.UseVisualStyleBackColor = True + ' + 'btnSetPosterDL + ' + Me.btnSetPosterDL.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.btnSetPosterDL.Image = CType(resources.GetObject("btnSetPosterDL.Image"), System.Drawing.Image) + Me.btnSetPosterDL.ImageAlign = System.Drawing.ContentAlignment.TopCenter + Me.btnSetPosterDL.Location = New System.Drawing.Point(735, 180) + Me.btnSetPosterDL.Name = "btnSetPosterDL" + Me.btnSetPosterDL.Size = New System.Drawing.Size(96, 83) + Me.btnSetPosterDL.TabIndex = 3 + Me.btnSetPosterDL.Text = "Change Poster (Download)" + Me.btnSetPosterDL.TextAlign = System.Drawing.ContentAlignment.BottomCenter + Me.btnSetPosterDL.UseVisualStyleBackColor = True + ' + 'btnRemovePoster + ' + Me.btnRemovePoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.btnRemovePoster.Image = CType(resources.GetObject("btnRemovePoster.Image"), System.Drawing.Image) + Me.btnRemovePoster.ImageAlign = System.Drawing.ContentAlignment.TopCenter + Me.btnRemovePoster.Location = New System.Drawing.Point(735, 363) + Me.btnRemovePoster.Name = "btnRemovePoster" + Me.btnRemovePoster.Size = New System.Drawing.Size(96, 83) + Me.btnRemovePoster.TabIndex = 4 + Me.btnRemovePoster.Text = "Remove Poster" + Me.btnRemovePoster.TextAlign = System.Drawing.ContentAlignment.BottomCenter + Me.btnRemovePoster.UseVisualStyleBackColor = True + ' + 'lblPosterSize + ' + Me.lblPosterSize.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.lblPosterSize.Location = New System.Drawing.Point(8, 8) + Me.lblPosterSize.Name = "lblPosterSize" + Me.lblPosterSize.Size = New System.Drawing.Size(105, 23) + Me.lblPosterSize.TabIndex = 0 + Me.lblPosterSize.Text = "Size: (XXXXxXXXX)" + Me.lblPosterSize.TextAlign = System.Drawing.ContentAlignment.MiddleCenter + Me.lblPosterSize.Visible = False + ' + 'btnSetPosterScrape + ' + Me.btnSetPosterScrape.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.btnSetPosterScrape.Image = CType(resources.GetObject("btnSetPosterScrape.Image"), System.Drawing.Image) + Me.btnSetPosterScrape.ImageAlign = System.Drawing.ContentAlignment.TopCenter + Me.btnSetPosterScrape.Location = New System.Drawing.Point(735, 93) + Me.btnSetPosterScrape.Name = "btnSetPosterScrape" + Me.btnSetPosterScrape.Size = New System.Drawing.Size(96, 83) + Me.btnSetPosterScrape.TabIndex = 2 + Me.btnSetPosterScrape.Text = "Change Poster (Scrape)" + Me.btnSetPosterScrape.TextAlign = System.Drawing.ContentAlignment.BottomCenter + Me.btnSetPosterScrape.UseVisualStyleBackColor = True + ' + 'btnSetPoster + ' + Me.btnSetPoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.btnSetPoster.Image = CType(resources.GetObject("btnSetPoster.Image"), System.Drawing.Image) + Me.btnSetPoster.ImageAlign = System.Drawing.ContentAlignment.TopCenter + Me.btnSetPoster.Location = New System.Drawing.Point(735, 6) + Me.btnSetPoster.Name = "btnSetPoster" + Me.btnSetPoster.Size = New System.Drawing.Size(96, 83) + Me.btnSetPoster.TabIndex = 1 + Me.btnSetPoster.Text = "Change Poster (Local Browse)" + Me.btnSetPoster.TextAlign = System.Drawing.ContentAlignment.BottomCenter + Me.btnSetPoster.UseVisualStyleBackColor = True + ' + 'pbPoster + ' + Me.pbPoster.BackColor = System.Drawing.Color.DimGray + Me.pbPoster.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.pbPoster.Location = New System.Drawing.Point(6, 6) + Me.pbPoster.Name = "pbPoster" + Me.pbPoster.Size = New System.Drawing.Size(724, 440) + Me.pbPoster.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom + Me.pbPoster.TabIndex = 0 + Me.pbPoster.TabStop = False + ' + 'TabPage3 + ' + Me.TabPage3.Controls.Add(Me.btnSetFanartDL) + Me.TabPage3.Controls.Add(Me.btnRemoveFanart) + Me.TabPage3.Controls.Add(Me.lblFanartSize) + Me.TabPage3.Controls.Add(Me.btnSetFanartScrape) + Me.TabPage3.Controls.Add(Me.btnSetFanart) + Me.TabPage3.Controls.Add(Me.pbFanart) + Me.TabPage3.Location = New System.Drawing.Point(4, 22) + Me.TabPage3.Name = "TabPage3" + Me.TabPage3.Size = New System.Drawing.Size(836, 452) + Me.TabPage3.TabIndex = 2 + Me.TabPage3.Text = "Fanart" + Me.TabPage3.UseVisualStyleBackColor = True + ' + 'btnSetFanartDL + ' + Me.btnSetFanartDL.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.btnSetFanartDL.Image = CType(resources.GetObject("btnSetFanartDL.Image"), System.Drawing.Image) + Me.btnSetFanartDL.ImageAlign = System.Drawing.ContentAlignment.TopCenter + Me.btnSetFanartDL.Location = New System.Drawing.Point(735, 180) + Me.btnSetFanartDL.Name = "btnSetFanartDL" + Me.btnSetFanartDL.Size = New System.Drawing.Size(96, 83) + Me.btnSetFanartDL.TabIndex = 3 + Me.btnSetFanartDL.Text = "Change Fanart (Download)" + Me.btnSetFanartDL.TextAlign = System.Drawing.ContentAlignment.BottomCenter + Me.btnSetFanartDL.UseVisualStyleBackColor = True + ' + 'btnRemoveFanart + ' + Me.btnRemoveFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.btnRemoveFanart.Image = CType(resources.GetObject("btnRemoveFanart.Image"), System.Drawing.Image) + Me.btnRemoveFanart.ImageAlign = System.Drawing.ContentAlignment.TopCenter + Me.btnRemoveFanart.Location = New System.Drawing.Point(735, 363) + Me.btnRemoveFanart.Name = "btnRemoveFanart" + Me.btnRemoveFanart.Size = New System.Drawing.Size(96, 83) + Me.btnRemoveFanart.TabIndex = 4 + Me.btnRemoveFanart.Text = "Remove Fanart" + Me.btnRemoveFanart.TextAlign = System.Drawing.ContentAlignment.BottomCenter + Me.btnRemoveFanart.UseVisualStyleBackColor = True + ' + 'lblFanartSize + ' + Me.lblFanartSize.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.lblFanartSize.Location = New System.Drawing.Point(8, 8) + Me.lblFanartSize.Name = "lblFanartSize" + Me.lblFanartSize.Size = New System.Drawing.Size(105, 23) + Me.lblFanartSize.TabIndex = 0 + Me.lblFanartSize.Text = "Size: (XXXXxXXXX)" + Me.lblFanartSize.TextAlign = System.Drawing.ContentAlignment.MiddleCenter + Me.lblFanartSize.Visible = False + ' + 'btnSetFanartScrape + ' + Me.btnSetFanartScrape.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.btnSetFanartScrape.Image = CType(resources.GetObject("btnSetFanartScrape.Image"), System.Drawing.Image) + Me.btnSetFanartScrape.ImageAlign = System.Drawing.ContentAlignment.TopCenter + Me.btnSetFanartScrape.Location = New System.Drawing.Point(735, 93) + Me.btnSetFanartScrape.Name = "btnSetFanartScrape" + Me.btnSetFanartScrape.Size = New System.Drawing.Size(96, 83) + Me.btnSetFanartScrape.TabIndex = 2 + Me.btnSetFanartScrape.Text = "Change Fanart (Scrape)" + Me.btnSetFanartScrape.TextAlign = System.Drawing.ContentAlignment.BottomCenter + Me.btnSetFanartScrape.UseVisualStyleBackColor = True + ' + 'btnSetFanart + ' + Me.btnSetFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.btnSetFanart.Image = CType(resources.GetObject("btnSetFanart.Image"), System.Drawing.Image) + Me.btnSetFanart.ImageAlign = System.Drawing.ContentAlignment.TopCenter + Me.btnSetFanart.Location = New System.Drawing.Point(735, 6) + Me.btnSetFanart.Name = "btnSetFanart" + Me.btnSetFanart.Size = New System.Drawing.Size(96, 83) + Me.btnSetFanart.TabIndex = 1 + Me.btnSetFanart.Text = "Change Fanart (Local Browse)" + Me.btnSetFanart.TextAlign = System.Drawing.ContentAlignment.BottomCenter + Me.btnSetFanart.UseVisualStyleBackColor = True + ' + 'pbFanart + ' + Me.pbFanart.BackColor = System.Drawing.Color.DimGray + Me.pbFanart.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.pbFanart.Location = New System.Drawing.Point(6, 6) + Me.pbFanart.Name = "pbFanart" + Me.pbFanart.Size = New System.Drawing.Size(724, 440) + Me.pbFanart.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom + Me.pbFanart.TabIndex = 1 + Me.pbFanart.TabStop = False + ' + 'TabPage5 + ' + Me.TabPage5.Controls.Add(Me.pnlETQueue) + Me.TabPage5.Controls.Add(Me.Panel1) + Me.TabPage5.Controls.Add(Me.btnThumbsRefresh) + Me.TabPage5.Controls.Add(Me.btnRemoveThumb) + Me.TabPage5.Controls.Add(Me.btnDown) + Me.TabPage5.Controls.Add(Me.btnUp) + Me.TabPage5.Controls.Add(Me.lvThumbs) + Me.TabPage5.Controls.Add(Me.pbExtraThumbs) + Me.TabPage5.Location = New System.Drawing.Point(4, 22) + Me.TabPage5.Name = "TabPage5" + Me.TabPage5.Size = New System.Drawing.Size(836, 452) + Me.TabPage5.TabIndex = 4 + Me.TabPage5.Text = "Extrathumbs" + Me.TabPage5.UseVisualStyleBackColor = True + ' + 'pnlETQueue + ' + Me.pnlETQueue.BackColor = System.Drawing.Color.LightGray + Me.pnlETQueue.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.pnlETQueue.Controls.Add(Me.Label4) + Me.pnlETQueue.Controls.Add(Me.btnTransferNow) + Me.pnlETQueue.Location = New System.Drawing.Point(626, 11) + Me.pnlETQueue.Name = "pnlETQueue" + Me.pnlETQueue.Size = New System.Drawing.Size(201, 69) + Me.pnlETQueue.TabIndex = 1 + Me.pnlETQueue.Visible = False + ' + 'Label4 + ' + Me.Label4.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Label4.Location = New System.Drawing.Point(3, 3) + Me.Label4.Name = "Label4" + Me.Label4.Size = New System.Drawing.Size(193, 26) + Me.Label4.TabIndex = 0 + Me.Label4.Text = "You have extrathumbs queued to be transferred to the movie directory." + Me.Label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter + ' + 'btnTransferNow + ' + Me.btnTransferNow.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.btnTransferNow.Image = CType(resources.GetObject("btnTransferNow.Image"), System.Drawing.Image) + Me.btnTransferNow.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnTransferNow.Location = New System.Drawing.Point(53, 32) + Me.btnTransferNow.Name = "btnTransferNow" + Me.btnTransferNow.Size = New System.Drawing.Size(103, 32) + Me.btnTransferNow.TabIndex = 1 + Me.btnTransferNow.Text = "Transfer Now" + Me.btnTransferNow.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnTransferNow.UseVisualStyleBackColor = True + ' + 'Panel1 + ' + Me.Panel1.BackColor = System.Drawing.Color.LightGray + Me.Panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.Panel1.Controls.Add(Me.btnSetAsFanart) + Me.Panel1.Location = New System.Drawing.Point(718, 403) + Me.Panel1.Name = "Panel1" + Me.Panel1.Size = New System.Drawing.Size(109, 39) + Me.Panel1.TabIndex = 6 + ' + 'btnSetAsFanart + ' + Me.btnSetAsFanart.Enabled = False + Me.btnSetAsFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.btnSetAsFanart.Image = CType(resources.GetObject("btnSetAsFanart.Image"), System.Drawing.Image) + Me.btnSetAsFanart.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnSetAsFanart.Location = New System.Drawing.Point(2, 3) + Me.btnSetAsFanart.Name = "btnSetAsFanart" + Me.btnSetAsFanart.Size = New System.Drawing.Size(103, 32) + Me.btnSetAsFanart.TabIndex = 0 + Me.btnSetAsFanart.Text = "Set As Fanart" + Me.btnSetAsFanart.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnSetAsFanart.UseVisualStyleBackColor = True + ' + 'btnThumbsRefresh + ' + Me.btnThumbsRefresh.Image = CType(resources.GetObject("btnThumbsRefresh.Image"), System.Drawing.Image) + Me.btnThumbsRefresh.Location = New System.Drawing.Point(87, 422) + Me.btnThumbsRefresh.Name = "btnThumbsRefresh" + Me.btnThumbsRefresh.Size = New System.Drawing.Size(23, 23) + Me.btnThumbsRefresh.TabIndex = 4 + Me.btnThumbsRefresh.UseVisualStyleBackColor = True + ' + 'btnRemoveThumb + ' + Me.btnRemoveThumb.Image = CType(resources.GetObject("btnRemoveThumb.Image"), System.Drawing.Image) + Me.btnRemoveThumb.Location = New System.Drawing.Point(147, 422) + Me.btnRemoveThumb.Name = "btnRemoveThumb" + Me.btnRemoveThumb.Size = New System.Drawing.Size(23, 23) + Me.btnRemoveThumb.TabIndex = 5 + Me.btnRemoveThumb.UseVisualStyleBackColor = True + ' + 'btnDown + ' + Me.btnDown.Image = CType(resources.GetObject("btnDown.Image"), System.Drawing.Image) + Me.btnDown.Location = New System.Drawing.Point(28, 422) + Me.btnDown.Name = "btnDown" + Me.btnDown.Size = New System.Drawing.Size(23, 23) + Me.btnDown.TabIndex = 3 + Me.btnDown.UseVisualStyleBackColor = True + ' + 'btnUp + ' + Me.btnUp.Image = CType(resources.GetObject("btnUp.Image"), System.Drawing.Image) + Me.btnUp.Location = New System.Drawing.Point(4, 422) + Me.btnUp.Name = "btnUp" + Me.btnUp.Size = New System.Drawing.Size(23, 23) + Me.btnUp.TabIndex = 2 + Me.btnUp.UseVisualStyleBackColor = True + ' + 'lvThumbs + ' + Me.lvThumbs.AutoArrange = False + Me.lvThumbs.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.lvThumbs.Font = New System.Drawing.Font("Segoe UI", 14.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lvThumbs.FullRowSelect = True + Me.lvThumbs.HideSelection = False + Me.lvThumbs.Location = New System.Drawing.Point(5, 8) + Me.lvThumbs.Name = "lvThumbs" + Me.lvThumbs.Size = New System.Drawing.Size(165, 408) + Me.lvThumbs.SmallImageList = Me.ilThumbs + Me.lvThumbs.Sorting = System.Windows.Forms.SortOrder.Ascending + Me.lvThumbs.TabIndex = 0 + Me.lvThumbs.UseCompatibleStateImageBehavior = False + Me.lvThumbs.View = System.Windows.Forms.View.SmallIcon + ' + 'ilThumbs + ' + Me.ilThumbs.ColorDepth = System.Windows.Forms.ColorDepth.Depth32Bit + Me.ilThumbs.ImageSize = New System.Drawing.Size(96, 54) + Me.ilThumbs.TransparentColor = System.Drawing.Color.Transparent + ' + 'pbExtraThumbs + ' + Me.pbExtraThumbs.BackColor = System.Drawing.Color.DimGray + Me.pbExtraThumbs.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.pbExtraThumbs.Location = New System.Drawing.Point(176, 8) + Me.pbExtraThumbs.Name = "pbExtraThumbs" + Me.pbExtraThumbs.Size = New System.Drawing.Size(653, 437) + Me.pbExtraThumbs.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom + Me.pbExtraThumbs.TabIndex = 2 + Me.pbExtraThumbs.TabStop = False + ' + 'TabPage4 + ' + Me.TabPage4.Controls.Add(Me.pnlFrameExtrator) + Me.TabPage4.Location = New System.Drawing.Point(4, 22) + Me.TabPage4.Name = "TabPage4" + Me.TabPage4.Padding = New System.Windows.Forms.Padding(3) + Me.TabPage4.Size = New System.Drawing.Size(836, 452) + Me.TabPage4.TabIndex = 3 + Me.TabPage4.Text = "Frame Extraction" + Me.TabPage4.UseVisualStyleBackColor = True + ' + 'pnlFrameExtrator + ' + Me.pnlFrameExtrator.Location = New System.Drawing.Point(0, 0) + Me.pnlFrameExtrator.Name = "pnlFrameExtrator" + Me.pnlFrameExtrator.Size = New System.Drawing.Size(834, 452) + Me.pnlFrameExtrator.TabIndex = 0 + ' + 'TabPage6 + ' + Me.TabPage6.Controls.Add(Me.pnlFileInfo) + Me.TabPage6.Location = New System.Drawing.Point(4, 22) + Me.TabPage6.Name = "TabPage6" + Me.TabPage6.Padding = New System.Windows.Forms.Padding(3) + Me.TabPage6.Size = New System.Drawing.Size(836, 452) + Me.TabPage6.TabIndex = 5 + Me.TabPage6.Text = "Meta Data" + Me.TabPage6.UseVisualStyleBackColor = True + ' + 'pnlFileInfo + ' + Me.pnlFileInfo.Location = New System.Drawing.Point(-4, 0) + Me.pnlFileInfo.Name = "pnlFileInfo" + Me.pnlFileInfo.Size = New System.Drawing.Size(844, 452) + Me.pnlFileInfo.TabIndex = 0 + ' + 'chkMark + ' + Me.chkMark.AutoSize = True + Me.chkMark.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkMark.Location = New System.Drawing.Point(4, 559) + Me.chkMark.Name = "chkMark" + Me.chkMark.Size = New System.Drawing.Size(86, 17) + Me.chkMark.TabIndex = 5 + Me.chkMark.Text = "Mark Movie" + Me.chkMark.UseVisualStyleBackColor = True + ' + 'btnRescrape + ' + Me.btnRescrape.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.btnRescrape.Image = CType(resources.GetObject("btnRescrape.Image"), System.Drawing.Image) + Me.btnRescrape.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnRescrape.Location = New System.Drawing.Point(310, 554) + Me.btnRescrape.Name = "btnRescrape" + Me.btnRescrape.Size = New System.Drawing.Size(98, 23) + Me.btnRescrape.TabIndex = 7 + Me.btnRescrape.Text = "Re-scrape" + Me.btnRescrape.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnRescrape.UseVisualStyleBackColor = True + ' + 'btnChangeMovie + ' + Me.btnChangeMovie.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.btnChangeMovie.Image = CType(resources.GetObject("btnChangeMovie.Image"), System.Drawing.Image) + Me.btnChangeMovie.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnChangeMovie.Location = New System.Drawing.Point(429, 554) + Me.btnChangeMovie.Name = "btnChangeMovie" + Me.btnChangeMovie.Size = New System.Drawing.Size(107, 23) + Me.btnChangeMovie.TabIndex = 8 + Me.btnChangeMovie.Text = "Change Movie" + Me.btnChangeMovie.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnChangeMovie.UseVisualStyleBackColor = True + ' + 'btnClearCache + ' + Me.btnClearCache.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.btnClearCache.Image = CType(resources.GetObject("btnClearCache.Image"), System.Drawing.Image) + Me.btnClearCache.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnClearCache.Location = New System.Drawing.Point(751, 66) + Me.btnClearCache.Name = "btnClearCache" + Me.btnClearCache.Size = New System.Drawing.Size(96, 23) + Me.btnClearCache.TabIndex = 4 + Me.btnClearCache.Text = "Clear Cache" + Me.btnClearCache.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnClearCache.UseVisualStyleBackColor = True + Me.btnClearCache.Visible = False + ' + 'DelayTimer + ' + Me.DelayTimer.Interval = 250 + ' + 'chkWatched + ' + Me.chkWatched.AutoSize = True + Me.chkWatched.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkWatched.Location = New System.Drawing.Point(96, 559) + Me.chkWatched.Name = "chkWatched" + Me.chkWatched.Size = New System.Drawing.Size(72, 17) + Me.chkWatched.TabIndex = 6 + Me.chkWatched.Text = "Watched" + Me.chkWatched.UseVisualStyleBackColor = True + ' + 'dlgEditMovie + ' + Me.AcceptButton = Me.OK_Button + Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi + Me.CancelButton = Me.Cancel_Button + Me.ClientSize = New System.Drawing.Size(854, 582) + Me.Controls.Add(Me.chkWatched) + Me.Controls.Add(Me.btnClearCache) + Me.Controls.Add(Me.btnChangeMovie) + Me.Controls.Add(Me.btnRescrape) + Me.Controls.Add(Me.chkMark) + Me.Controls.Add(Me.Cancel_Button) + Me.Controls.Add(Me.OK_Button) + Me.Controls.Add(Me.pnlTop) + Me.Controls.Add(Me.TabControl1) + Me.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "dlgEditMovie" + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "Edit Movie" + Me.pnlTop.ResumeLayout(False) + Me.pnlTop.PerformLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() + Me.TabControl1.ResumeLayout(False) + Me.TabPage1.ResumeLayout(False) + Me.TabPage1.PerformLayout() + CType(Me.pbStar5, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.pbStar4, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.pbStar3, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.pbStar2, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.pbStar1, System.ComponentModel.ISupportInitialize).EndInit() + Me.TabPage2.ResumeLayout(False) + CType(Me.pbPoster, System.ComponentModel.ISupportInitialize).EndInit() + Me.TabPage3.ResumeLayout(False) + CType(Me.pbFanart, System.ComponentModel.ISupportInitialize).EndInit() + Me.TabPage5.ResumeLayout(False) + Me.pnlETQueue.ResumeLayout(False) + Me.Panel1.ResumeLayout(False) + CType(Me.pbExtraThumbs, System.ComponentModel.ISupportInitialize).EndInit() + Me.TabPage4.ResumeLayout(False) + Me.TabPage6.ResumeLayout(False) + Me.ResumeLayout(False) + Me.PerformLayout() - End Sub + End Sub Friend WithEvents OK_Button As System.Windows.Forms.Button Friend WithEvents Cancel_Button As System.Windows.Forms.Button Friend WithEvents pnlTop As System.Windows.Forms.Panel @@ -1473,5 +1488,6 @@ Partial Class dlgEditMovie Friend WithEvents txtCountry As System.Windows.Forms.TextBox Friend WithEvents txtOriginalTitle As System.Windows.Forms.TextBox Friend WithEvents lblOriginalTitle As System.Windows.Forms.Label + Friend WithEvents chkWatched As System.Windows.Forms.CheckBox End Class diff --git a/Ember Media Manager/dlgEditMovie.resx b/Ember Media Manager/dlgEditMovie.resx index c8c24fb..34e770b 100644 --- a/Ember Media Manager/dlgEditMovie.resx +++ b/Ember Media Manager/dlgEditMovie.resx @@ -120,878 +120,872 @@ - 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 - 7G+9/wHCiDgwMrq1WwAAAABJRU5ErkJggg== + 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 - 4AAAAABJRU5ErkJggg== + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAryAAAK8gE9UvcRAAAChklE + QVQ4T6XOaUjTcRjA8ceDIo82FDtEMyubppsaSIYFSVCEHS/KF6Ok44VBWXZgzVuptLxgU/GYxxQyxQMi + Lcd0WtM2dQ1zmi11mRrSMlBKKUyenv0MQ/6+6w8fePgd3/8PEPG/rAyWeT3zbcEI/dOysDK9V3mFwUdu + Var3qOidyohcXPoOC4sWhhMYslQyppkaaDFF0SUBlr8JYOR6X2wcitCZZp7AsKWa4QS0kxlM7+ccePz2 + YKNUy8d8nRsj07pYI0Pqj7eh3XyD4QS6J7IZ3ZQUqvsP1+d0b8a81x5MbvdWLOoTGdvNidA2JmE4Ac14 + NsmhV8ig0nCkPlPjjlldXswjjSfm9wQbVWPJoBxNgBcjd7gB7UQZvBqXQdenQijRH6tP79yG91/uZO51 + etNLQoytI6nw/EMS/UTODUzODUP7WDG0maVQ1HeyLlm9A9M6BEyq2odesn+g2ZQGT4cfwI9fs9zA1Ow7 + uxZTrmeV4VpgluaoKq51N0qUfsxdpQDT1aEjCkNMYO2AxHfu51cbTqBp8OGlFFX4UrwyDG+1BGHsM/9V + bjaLMEF5ACWtodg0mCniBL7Mm3lV+sT4qJrtGN0QgJcbhKtEkwu1uzBNdap09ve0PSfQ/14HmtEmkBsS + 4yIrBShWBKC4SrhMIcRIhR+md5wtruhJgmZ148q9fwN9blv4cDFGDCl1V2JPlgViRKEQIwqEeEIuwqvV + pwvE14/DJnc+O8sJ2AHY0Lo9cXB2cLLdJxamHMoLwnBpMIac31PC42207jmS9dazawXsiCvxo1IwHfR1 + 8eCdcfXmn6PZn9b20p6QeFnPrhWwsicbiJMtWV4CW5odaXAmDmQd+fsChD+4WS+MAxa1eQAAAABJRU5E + rkJggg== - + - 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 - 7PDNqBYAAAAASUVORK5CYII= + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAArpAAAK6QH9dc7TAAABnElE + QVQ4T6XSS0sCYRQG4BEXERG46UI3yCRNnZmw/AGZFUagJO2rZSFEJi6MFtFNhAxBBSlokW7NQIlIKLvJ + FyJtBKEoqKCCfsPpO2pD1repFs9wfM87x81wAPAvzBDt3QxYdvOibzcv+KI3pjFWBzFDtJPrfQyTRgiT + BtjOia+sDmKGKER0xa2rJkB0vmd1EDNEgWxvwXfRCiiQFe9YHSQNQWLqC5FhW5AMWUPXFqv/yvi0lukA + tHnZ/xImo9YgGaZGbOHrEWPVAe+5oXk100PL+goeVk41sHyiKsEZs8/9akYL62f6FunAUlrftZhWw0+a + L6p3nuNulXTAc2Rsc6Z0MJ/USpypalW7pA7ch2K7dADNHRjsjoTgohbQbJx/m4nrAdH53bFPc5TgXbQ7 + ESU7pfekA99NxYTCZIyHMuGW1UHMENkjQnE8wkOZ8PvvwOwXHwb9PCCzX3hmdRAn50oUVCeloXgZx6m1 + U8oNg7sni3TTSi9muKt0sKsoHcAH/SGnaqhaqo6qp3dl0r8AJ8OsssMOduXSgb8D7gMxXmeO6KXG2gAA + AABJRU5ErkJggg== - + - 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 - 4AAAAABJRU5ErkJggg== + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAryAAAK8gE9UvcRAAACf0lE + QVQ4T6WPW0jTURzHf6lvtcQwc+aFRTm6ECYRJpbSQ/rgQ/gQhkYICgVq6sMisBCEIoUyCwokwpcoSYjw + IcIuoJWWOufcppvOXTDnnFu6Tf3f9u38TbeR9VIHPufy4/f9nHMIwH+xPkkB+1+wEUJemu9pVusvqzQL + 3XVKb+9tWh7uJP/Y8yhB0PlHQryHAub+pNHKTIOxIgH26+pv7q6rhwPjXRQ0dUcEIf7HVoQAW7/Hantf + vB2sLcBkhQIz1YkYr9rrczytyXW9bo4IILh+w00QvSSaS1sXjVdgs07AfLcSulIFBksS8KVMXT9cnRsl + WLVEMUXg50i0aap4Qx5ESyF4UxHcczoMtN3Ap0vHTEGHNjkkLEYJOEcE0UfSbFs+N5bNCdZycCMHIEyc + g+CshVn/zDc7qT0kBF20tuSMEkj+X0CkkH8whdMdtwrWi+C0avCGQgj2GojzjUDwwwVhbZn44AJJq94o + QdBEWLFQaHlIwetP9wnT58FeAF6fD8FSBmGmHNJSNzNwrF8GtLriiQgkj4mkRQvx9r5iztTEbj0BbjSb + Pb0EnC4LovPaS3b9eq/H7aCmmxpKS1VGBFhxkehjf3IONPGWj+Cn2sEbi7H2eQckwykd4Enw+33U2nKL + lMl7aHOEBU8etdOUcZTevep8E7S8B3yzwFI/YCtyB9w9B++03CNVRtpGjCh2g7AgJiaGGjUN2xvq6+Y6 + Ox7Cax1yj3wdeNDR8Xhf1tEj6yF5bAa3COTzrvideWfPFEzn5uTcT09NPclqSoaKoWbNmYz9DBUjjZHI + iAsL5INcjNtGu1lAIYdjiNJZLWMDeS8HUxhJjHhGbFjw74B+AsJFYFrRskcjAAAAAElFTkSuQmCC - + - iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK6QAA - CukB/XXO0wAAB1RJREFUaEPtWFtsFFUYXgpEI6Jc2tLdmdmd2966Q0Gp0BaIclEDglFejG8aXzQmqNGE - mIjcBIWqXFQIBMKtVkqL4AUolHIplFJaKN3utt0tFzUh8VEkYGIix+/fzJKlbHfPTFsTow9fz/bM/3// - 9/3nzJnZdTDGHP9m/KvFU+P/Owa6ZfGFeEA+FA/Ktd2KuHCgt11kxMhR3br0ebxQqY35PJXRvLFBnhpc - K9AV0hdenV3Mfl7wFPtpwZPs2pxS1m2ou3kK8MS0Ohx58eJg+KfnpyVq/Pzik+zK9Im/RzxiWbb8rAai - BsRDcM+MSSzq97CIz81iZePZ1XlTWWeR3m8T5xyO/FhJKHp1/jTW9bifRbwSixoquzKnhF2eVXyzXXVP - zWQio4Gwob91ZW4p6ywJsTZpHGvXhATa3ONYZIKXXYGJSD9MNKDzXSVGx+Xnylg7hF+SnaxdF9kl1cUu - eQpYfFYxi89+4uZFWerTRJ8G2iC+B+KjEN8KsosgTsUFFAtP0Nnl+VNZuEivyLbUva8fh/hoqRHpgfg2 - n8QuQHS6Gt0wEYOJFkVKu53SGmgr8r4cw7bpmBJize4C1gLxLVovYO48jLUV6SyOlWgbz7+djmLbdJQY - 0TjEt6LzLYrr/hpmzfMeJ+ucOYl1zX7ixjlZ8vduRFoDnU9P7m4vMVgTxDdDeCY0ocAFmIjBxAUOE4cg - PjzF6OiG+GaIPye7MtdQRUY1onQPzijexGXgnN9zvRFdOQvxPDjjdrIWmOiGiZYMJr5zOHIvmeKbdIlx - 11AFdhZoDsp7uAw0+jxVZyDeChpotWCiCyaa05jYh85fnGJEOueWsUaIP43OW+Gn2LMB5XUuA2eK/M4G - r9RzCkkNFnASS91kmmhKMVEF8a0QH8W2aYD4UxBvhZd0nPa6q89vKB/CZYCCToVU1wld7DmBY9MK6rES - jTARxUpg3FbhcHhbSo2OCDoPPnZccVrio9onvVJ1TcuBtPdrxufAiaDqrNfE2DHsP17UI/YonhMN43XW - QafM9Il/hnEcg4fV4ejl5UnG1etSte0HGSXWF2pCnSbFj0JYnQXUSgXsFFYiDBN16PwRiLeST/WOZRHP - /TZaF9KFWk3sqQWpFRzGXj+ILXUYJ5qlPNQ5AvEbOb6rZH0XSi5freF1HdTE+EGQDzYOQfwWDvHcK5A0 - cbBQc/2gS/HvYWKwAP6Me577FOrrxvk+qIsHsJ32KwI7ACMDhf3g+k6zJt7yCiRNHQjqrn2qGN8HEwOF - byG+6tgN7i2d1GI5IZlYE9Cc1aoY3gsT/cSdak267xWB9+3WtgEqUBPUJu3B0u+BCbuoUoXrvGLTxdk2 - sDeo5VaqQmsljsh+4q9KTdxh14QtA1UhPa9CFaK7IX6gUKGJtr6eWjZQGdDzdypCdAceUgOJneDbqVo3 - YcnA7qCWt10VO7aj2KBBFXdZ2U7cBnaFvHnbFCGyFeIHG9ssrASXge2Fev4WiN8M8f8UtnCayGpga6GW - v0kVI5sg3g422sxL1OIwkdHA5oCW+xU6/yXI7EO4Yz8XdZXMN3afBjYFtLwNshBd73Exu9igiF9/5ZUN - 8MTsclAeePo8YtMa2Fio561D59fiO65drFeEu2+VX/gUYZ0s9NjlWgcd4Et7OqU1sFZ3V3yGJLv4XBFq - 6m7/dg/3+oAqfCa7euxyUt46n/Ia1+t0ucd5fQ0S7KA8pfO9i60Naq5y2RWzw5vIcRd8w2XgE0WIf4wE - q1idQXyycLlPFuzzi5u5DKz2yq+shIGV+MWNBx8hbhXE7/r1l6zHMglY7VeFldhOPNwUQ/yIv/Wp4Te4 - DFDQx35t0XIk8mCFLNRYefyb/K4VHlc8Kz9+3VjhEW6vCflnWH6dXhXQFi2DiaUZsFwW9loVn4xf5VOc - yzxCrE9+iF8mC3+sHh+c2VeNrEu+AiaW4Cz+ECZSsYT+l4V9SeKhDscwYKg5DseYDqkxQyl3Q1B3gv9y - b376f6ks3FozoTBt5+/5SoliDrPwgxhHAI8CozE9Bsh5V/OsXAwTH4CU8CE+v+d2Hhk6fHg+rguIVQHN - hI4xCS8+E1LnknGUoyB/9DP5Yx973+O6thj3HfEvpjoe1+03feoCXB9CWkxNpI00UiMSzU/8MSdGYXQD - AaAImARMQRwh9JJQsPxttzP8juSMvCI6tzpycsowPx0xTwOzzfEZc6Q5+vysid7zyZxEHngm+0aOmPeG - 5PzxHbEgstDtbJyZn/sq5gM5qG9qIU2kjTSS1mGpBmjpHwbGAR6zYxRsABNA9BjgAwoBwxwn41qZiakY - CdNMkLF0SF5PxlN+KXGYNQLULLOWn2qbGkgLrSJpI42kNbEF794DmKCVyKELAO3fBwBarocAWrqRCCE8 - YnaAlnWMibEYCblAXgry8ZmQOkcxyfhkPnGNGoKta9YggVSTapMG0kKaSBtpvKs7602c7YQxjfduBDUj - LVJu+sT1bPzZrvebIFuBwb7+v4HB7nA2/r8BTW8runP63mkAAAAASUVORK5CYII= + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAArpAAAK6QH9dc7TAAABnElE + QVQ4T6XSS0sCYRQG4BEXERG46UI3yCRNnZmw/AGZFUagJO2rZSFEJi6MFtFNhAxBBSlokW7NQIlIKLvJ + FyJtBKEoqKCCfsPpO2pD1repFs9wfM87x81wAPAvzBDt3QxYdvOibzcv+KI3pjFWBzFDtJPrfQyTRgiT + BtjOia+sDmKGKER0xa2rJkB0vmd1EDNEgWxvwXfRCiiQFe9YHSQNQWLqC5FhW5AMWUPXFqv/yvi0lukA + tHnZ/xImo9YgGaZGbOHrEWPVAe+5oXk100PL+goeVk41sHyiKsEZs8/9akYL62f6FunAUlrftZhWw0+a + L6p3nuNulXTAc2Rsc6Z0MJ/USpypalW7pA7ch2K7dADNHRjsjoTgohbQbJx/m4nrAdH53bFPc5TgXbQ7 + ESU7pfekA99NxYTCZIyHMuGW1UHMENkjQnE8wkOZ8PvvwOwXHwb9PCCzX3hmdRAn50oUVCeloXgZx6m1 + U8oNg7sni3TTSi9muKt0sKsoHcAH/SGnaqhaqo6qp3dl0r8AJ8OsssMOduXSgb8D7gMxXmeO6KXG2gAA + AABJRU5ErkJggg== - + - iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK9gAA - CvYBwq9wAwAAD6ZJREFUaEPtmglYz1nbx0+lLKUQMklKu2yhsjaMGbvxWOYdQraS9lQUlVSSVlmiUqRF - q5Z/WlRKq6SIVHoyxm4GYyyTJcv3vU/Kk23mz/W873PNe71d1+f6/f6//zn3ub/3fZ9zfud/xQCwvzN/ - a+d54P9fwH+6/P5vZuDJi9esnecvX7PbzS9YYNU9dqjuAfOtvMesCn5hjiX3mGXBfWZVeJd5nnrMtlTc - lgyt8R2/vcLHyqNk0V77/PkpJlnzcojsbSV6qWFVeiHR55esiz5vahBbv0/60IVIFnneh8XVbWGJDSEs - +WIKS7kYylIbc1lU7QF249Fl9vwV2LOX7/J+xj+agb8SYEkCnEtJSOETNj+jWW9CwuXg71P8rkxL9obG - oQKoRF2CRsyv0Dj8AOqxD6GXVIcVuQFwKlqAbWWjEXxK8/reqnn7I8/ZTYiv8xZJbAj/3xPgd/oecyi6 - w9bk/TZy5pF0wZxk55dWuY6YKjiLYUkvMSr5d2jH3YFy1B0oHbqBgZG3SNDtViFDEp5i2tHLsCiMw/by - HxFR1fP1/mrd3Lg67zEpjTmUgbD/2QwcbnjIAqp+6zwx7pZnv+CcZzsrZiKvaTmcSyKhEH4JffeWQSzg - PCQCK9EnOBtifnXotqMCzK8REgFV6LU7HxI7m6AYfhkz0hsQdX4zomvGYc+pPi8OnDUMSGuMlEz7ZyGV - UMS/uYT+eMH2nL3Pdp25Lz/sQFMB876ChRlliL+wFuHVWjDNnIlvo80xZP9uKIfEYFioNyyzp2B93iT4 - lyljZsImMN9L6B5UTNeLEPevxtxkU5jlrEH4WTvE15pTWckjrGp8RWJD/KCYC7H/PgHPaBLff/aKUemo - 9A6qqxfzv4qZR+uwu2oGdp/sgeAKGbgcHwWDyPUYH+WFpWmL0dWvGCMiQhFU3g+7K3rDo0gLPbnz2y+R - gAZ0DqiGV7EWHPN1EVDeByFVkxFX64TQ08MRWK7yc+yFkKG3Ht9kz9+bwHxCCzWJudPt8A4Nvz3rr7Sn - vl4i4DJmZlbDt3w0OS9NDsq3sv+0FFwKRmNx6iosSTPClNjNYJ43sTJ9HrYVDYBbgSoGBieBeV0D86ml - 62UYRHvBtVAH85PNsblQg8pIFdHn7RBSSbYrNC9f+v2c6isam4voiFACbjxqoRS2sF+odK4+bJGYGNmY - 22l7HYYevg/rY3MQfFIKAWUDEFjWn0pkABYfWQ29A76Q25GCaYdWYHbsSoh518AwYTo2HB2AObEr0D2g - GPoRWyETWEACGtEr4AQ8TgzGrHg7GFDmdlE2A6jcIs9ZUzmp4uDZKeUPnjVLPn0B1tzy6i1CCfj5wXN2 - hbj1Rwszz7q2hbnVQDPmLgzTLBBQ2gd+pQNb2XWyL1YLFoC5XYeE1zlMjd2AIUFOkPTOQidvqvP9epgS - MheiXrUQ23YGcgEJ9Pw02LYadPEph5RvKUbs34MFiaatwQgql4VF1jwYZR+FZ9FXEFzcEHj/6Wv2a/Oj - twgl4MrD5+wX2rzyLj8cKeFe3awYdgXG2TbwL5XF9hIleJcot+JTqkjpH4KevgXQ2nsAQSf74LuYjRD3 - Iie31qOXVyRkvA7TfR1F/QyVFS8funrUQTc8ACPCdkNl12HsKJeDb+kA6i8Hm+zxtBhkIrR6EXxK+r6o - vJkzsen+DXbx3k+tCCWg+nYzq7/3lE2Lbkxmno2YnRYNvxJZbCseBK8ilXfwLhmIKVFOcDg2hpxQIPpD - aWcs2BZy1vM8cY4gQZ5V/8K9Fmq7wzAm1A6zo1dQIJRag+FyfHhrYKwyxyH49PfwLdOhubU+p/jaNVZy - rZ4VE0IJqLrVzKLP3Rsp5lbZIr/3J5hnf0/OK8D9hNpHUMfG/OEkShluhVrkgCIMjxiCufNIk+MelW1X - ft8Bd9ofNp/FpIObqBz7k/PD8F20A2bE2GL2YTNoBkdi6dE9ZFce6Y1HJhVdrWOFV2qEE3DmlydsSVJT - IHM7A+V9VbDLHkVLoQo5qPFR3E9QVooVsTDBCAoB8ZgTsxKy29NpblRTJk59AhK25TQkPMqpbCZi8kFn - dPMsQF+fFEhvOwbmVI9p0TEUEA0cOGMcUXy1kRVdqRNOQP5PD7so+VVd7EYrz8AgAdZl68D1uBqc8zU/ - wCVfg1YTRUr7eHLcGD28BFDy3UP1n0gRpoi7nfwElAHXKixOWkwrmRwG7wxFV/dCqAaFgm24BJ3gQHJ+ - KNYIbMj2f10vvprXo+RatXAC/Mtu6nZyLXst41sPlcAwrMsaDqdjmtiQo0UMfosjfXbI1sbUSHN0c8+H - uFsxxDbThuVM5eNKkd9cRpR/mk1n8XXERmyl8tMN8YapYBo25I3EjGgrmAimU9kqwq9sMhbEG9ImlzH5 - aGOFcAJMUpvWsE0lkPSqgWrATthkDINDlgaccpThmDMI9lmarbjk9ofeXleKGE3WTRRpZ3LWpfQzKIOo - cxk0duzFWsEUeJ5Qok1Pjep+ANwLVSjb6pQFfdjljIR9zhEHv9K6fkJNYv3gMwFcgLjbafTZGgurNG0Y - J+tj8A5fTNlvitXJY2FyRA/6wRvR2YU2po0U6U0U+S9hQzW+jbCG1wl5bMzVegenXA0q3VFwzR8M94KZ - 4V5FxvpCCZD3Ko8VdealcAp9PWJgkz4IurvohcyeIu1wBvJeBzBih/ubz07UbmPRl7P+NObFGMI1T/md - 8nxTqlpUurx8R3AEm3L1pwklQMq1OJ05FYI5lqKnWzxMEjWh4BlBDlNtbyiFtGsKFL2C6Z4iz9t9KWSr - t3s8rAU6VKKasMsc/AH2WUOoXIfz59nELKEEdHcpSmfrj5ODVB725Ri70xijAy2h7u2B3m6RUPXdh56b - UygbFH3e5kuxq6DMboRjthLNM+1PI9CGdYZ2NiGcgP4eJbHMPg9sfT45WQBRh3xMCPoRs0PG0X0Bum7M - guZ2b3RxTAOzK6E2JJa3/VzsSjEtfBnsMlRgmTbkk1ikkoD00QJbwTjhSkg/qMKf2dBmwkVw7E6gy/oM - jPWfCyV3elVeVwyJ9elQ2roTw/zdIWKf+6+27X2EudqWYHiAM6zTVLH2yNBPsiZZC+szZu93zV6uJ1QJ - WR5pMGGWWeQ4iWjHtgi9nEKhs+0HEkCTdl0+RNflQNIxDhIOgnfbduz3Z/fWxRji6wrL1EEwThr6hkQu - RBPmKapYk0yrHz1bEa8GvxPO9pFVh4VbRncWXRktZpP9itlkg9m2kwNR2yzIbfSExLoEiNvmoI9LFEQs - T4CZkyBrysLbth37/cm9dT7kXEKxLEYHxvHqWHFYG2sSlTE1ZD40vDwwK2wmVsVrYFnsYISU75qcWCMQ - biMr+OdvXVTcChqYxVEwG8pEO9Y5ELNJRQ+H3bBI+QaBdCZYnTgHo/w8IO2QTEJoLthkvtunY/+P3Vvm - Q9YpHN+HTcLiyKHQ9TeFuA2Nu7Yck3ctxNIoZRjHGVxLrc2RyW4oEU5A7e3HbPmhs/7MhCapFRnriMUx - SNmmI4Beo8OqetChXhoRZ7pja4EmlN1oaTWmlcmcSu/9fn/2mWyKU2C6O0RRX1oMePla5EFlixvmhynA - OcN8f05DJcusLxdOwLmbD1l89U0dCQtBC7Ogt0pLqvFWMmiALMw7YESHj6+wo0yeTlIKraep4Mre2Fqo - jumhplBw2QdmltOhX3v/P7laUObMqdzax6IgyK7fhbn71BBRftAg80IpSz9fKKyAR6zpbjObvedkIlt1 - hAyTCI5ZBjpbJ2HLcS0EnpSnw8vAt/hQRvxJTPBpWTpJDcRAZ8rGKtrkzCiDvC8PRLudj1359x3brM2F - vJMVbBPmZRc1lbH8iwWtCLUKXfv9Cbvzx3NW2Hh3RDez1MfMlDYts1SqSyqptelYEvsP+Jf3p5cufkJ7 - H37cVKIsGWLYNndIr4sGM6XIr6boUt9WO39JOkTMEjHG26AlszZlwrkb9azqak0rQgu43ibCNq7GhS2L - p8EpExwTAXrZRtJL1mBsLVahE5r6R/EsUsX2MkV6ORuGtSmTYBBkA0nrGBLDA9Fm61PXVsE74J3l4f/H - s2fszqPf3yKUgF8ftzDOPfpV4taDp+Lf+BTmsGVxYGtopeGsyMTXO81JwADwA41zntaH0OFnEz13Pa5O - pznl1hObglMQlRU5127nU1ejJBh4R5Q23Tkv+fDpI3b/yQP28Nkj1vyyWbgMtLx4xTivX7/5JezSncf9 - 1J0ya9ky+oXBhE5axvQj1aoU6PnY0kuWNr1s8Zcw7Y/Cv7PP0oK2uwvYSipBY97/E3DbRnEYYJ96qfLn - xkGv0cyevXrEfmu+zZqu1bGiinzhBGioqTFNdXVmZWnFysrK2WsSsb/itrL8OsEFtpR+cVidQAJosCVZ - 0Pcxh22GGsxTh3yABT1bl6GKRVGTKWs0j3gf3vdTkG05m/Qmj2OXtH59cpflnTjKTM1WM00NNabQ/ysm - JSUpnADW4a+TiAibO3ces/IOZSEFjXIT/U/msZVURiuppIxSoOLkBpMk2kXjaMvvwMp4bdpFB8MwShcq - m+j9aTnV/Srq8zFWUGaXx2PM9rKSwJyLivNtPJme/mjWWbzTW09E6E6UEGoOiFHDdnjH9j91dQ02a6m5 - +GiL4M1SZmlPuICeFoH4IUIbP4QPwcLwoXTVxqKD6rQBDYe8nSfEVtIqZERRX0GZe5/l/FkCultmPJ/g - dNj72x9NuqqpabzjdEdf+P1nC+hooC0IrLOoKNP+ep7OIJOwNCmzpBfj/b/D9D20ie3SwpTAURizbQb6 - WG6lEqNMGfHo0urzDvRsVRK6rE19OdA4JEv7m4VjZGVk2h0XpTFF3ne8/fPnCOBGOhNSRE+iNyFHyFMq - FWi03tKSXeX6D/v2H0oLTGMmbJl4fcjmZa+7rQ17Uy5GtFyupJpvhWcgASLktARNYJnlEbf6zd2UoKAz - 5Qfpbt2+4rYo0wPIdn+iH9GH6EVIE10JsS8RIE6d+hLqxDBiNDGGGE8YEJNo0Ek0+NhOIp30ukv3mtlb - fZRVD13D3X1nOKRJTncsEZ/qeIqopPvSPjMdBL3HLQqW1dC3lekhO6uzqIg+9R9LwZhEtiYTXxMTibGE - HqFDDCa4MEmiNSufk4FO1KFHmwG1NmND2wyPoqsuod824FhyZgzBn+vQ1BtJcMGt8Pu2Zzq8DTnNAzGu - rS+/57Z425FtwdKmqwahTPAg8ix8tgA+kXk98kzwUuJGeCS6Ezy1XBwvLZ5qXl487Rw+IIeXW0fan7e3 - 431k22xwWzJtdvkYfCw+pgTBA/l2TnxOBt6uRGTgr+75AF/CX9n94HuhBPyn/33gc8b/2/+rwX8DgxXE - 7PDNqBYAAAAASUVORK5CYII= + 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 + l+AV3x3A/g9kt3I5oWO4VQAAAABJRU5ErkJggg== - + - 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 - TkSuQmCC + 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 - SUVORK5CYII= + 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 + l+AV3x3A/g9kt3I5oWO4VQAAAABJRU5ErkJggg== - + - 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 - ayv4Ba5+NdG8cgGAAAAAAElFTkSuQmCC + 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 - - 121, 17 - - + - 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 - ayv4Ba5+NdG8cgGAAAAAAElFTkSuQmCC + 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 + WqFsAAAAAElFTkSuQmCC - + - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK6QAA - CukB/XXO0wAAAZlJREFUOE9j+P//PwMlGKfmJRcdPRec1+9ecF6ve+lFJx9cluA0YO5Zg8fTT4n9n35K - 9P+cs/ovSTZg2intmxOOi/8HYSD7PskGTDphcK37qPR/EJ50Qv8uQQOmnnIynnbKLWDqKVf/aac9/fuP - mz5pOyT3H4T7jpm8mH7Ky3/qKTcgdg+YftrdFGYgOAw6jxhJtB7SBCrWgWLd/y0HNf43HVABYxC77ZAu - XL71kNb/9sM6UiC9YAPq9uoo1+xV/4+JNYBiMIwqX71HTQVuQPUuU5nibdr/i7ZqwXHxNq3/yBhFbqv2 - //Id+rJwA0CMgk1Gwbkb9UqBuASEs9frvspar/MfhIHst7kbgOIgvFG3FKg2dOmpuWDX40wHicv0riUs - 0/0PwXp3CMYCuoLgWXo3g2bp/odgPdLTgUu//gPnft3/IOzSr/cUpwuYGRgYgFgAiBWBWAOIdRkZGNS1 - EpU6jMo1T4CwdpJSJ0gMJAdVA1IrAA8DIIcZiNmBmBOIuYGYF2guIyKxMDCCxKByIDUgtcx4A5HYLA4A - MV5njhcGgLEAAAAASUVORK5CYII= + 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 + AAAASUVORK5CYII= - + - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK8gAA - CvIBPVL3EQAAAoRJREFUOE+lk11Ik1EYx5+md7XEMHPmB4tyZBEmESaW0kV64UV4EYZGCAoFaurFIrAQ - hCKFMgsKJMKbKEmI8CLCPkArLXXOuU03nfvAnHNu6faq78f277yWc2FdeeAH5zzw/53ncM4hALQd1sOh - oOM/2AlhH833NGsMV9Tahe46la/3Di0Pd1Jg7MV69reAc/2TsOCloKU/cbQyw2iqiIfjhua7p+vakeB4 - F3Hm7k1BWPhJWxCDrPYjRtf78t1gbQEmK5SYqU7AeNV+v/NZTa77TfOmAKKb/sZDkHwkWUpbF01XYbdN - wHKvEvpSJQZL4vG1TFM/XJ0bJVi1EiJMEYQ5kuzaKsGYB8laCMFcBM+cHgNtN/H58nEz59QlhcXFKAHv - JGwg+Sk025bPj2Xzoq0c/MghiBPnIbpqYTE8989O6jJFzk1rS64oQShAkIFE4cBgMq8/YRNtl8DrNBCM - hRAdNZDmGwHu40VxbZkEboFCq74oAWcmrFgpvDykFAxn+sTpC2AdQDDkQ7SWQZwpR2ipmxl4FpIBra54 - o67Ra6bQopUER18xb25iu54EP5rNWi8Br8+C5Lr+im2/HvB6nNR0S0upKaqoDlbcJPnZmVwDTYL1E4Sp - dgimYqx92YWQ8bQe8MYHAn5qbblNqqR9tDEiD+np43aaMo3S+9edbznrB8A/Cyz1A/YiT9DTc/huy31S - p6dGgjFsJhMRKBQKatQ27Gyor5vr7HgEn23IM/Jt4GFHx5MDWceObgluEcjCPXG7886dLZjOzcl5kJaS - corVVAw1Q8MCGYyDDDUjlZHAiI10IC/kYuwO2ssCSjmsIEpjtfQ/yHM5mMxIZMQxYiKC7XznX8JFYFou - bf5cAAAAAElFTkSuQmCC + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAArpAAAK6QH9dc7TAAAB7UlE + QVQ4T6WQQUgbQRSG18YWjbV4UNudicnMxiiahK4VAwaaFEqhUAoeeyoIXsSTd0WjHmzagHpRD1KFHnKr + 0UANWJMWiqBFaWOpFNSDePWol8Lzzeisu3vUw7fz3v+/98/uagBwKxzN0bPO1wcJc9yu2TlMmP2HySeD + ds0q/r2IvdkzQ/C7ncHfeDRvHxLsJ8xUORqEcsSA/WRHBr7NVwhdmn9exr3bkSBscirZavXDr+7rkPJT + M7UdNtAjkq02DruxcJcVUKj2VpQ4/VAK+kCCQ99b/PCzO5rdSXYM/QhzKKJm+QYtlpoe1VgBikLQl1kz + KBSQNUZgHd9ko53DF6Zfapde8VMbr1Q7jgBBDkOWcVCCt37GINXnDPr1Y7j5rn3esazIGnQzi//CxelK + l2ndrHA0gkVOR5cY+Y+Am0VOcu55RzPHaWoeBxVzVzg1moeTc2fAVCigTTMyOh0goJgSJ6OrM4ymZW2H + kfxMs7/KCsi0MO+7gA4uisOPQ3eEn2YkM+ny05zGrADBpNHUO4bpY34d8Nw463kllxXjAfJeesgE980e + P49LX/Nokjo8at/qDSMDtDFfU+kxsY+g3inAWvSsT29Y6KcPl7CuRx7IAPHAIQ8iv0mKmlaNfa0d1O7b + /HuoeWStxJsB2gW8qh8AcaOVUQAAAABJRU5ErkJggg== - + - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK6QAA - CukB/XXO0wAAAZlJREFUOE9j+P//PwMlGKfmJRcdPRec1+9ecF6ve+lFJx9cluA0YO5Zg8fTT4n9n35K - 9P+cs/ovSTZg2intmxOOi/8HYSD7PskGTDphcK37qPR/EJ50Qv8uQQOmnnIynnbKLWDqKVf/aac9/fuP - mz5pOyT3H4T7jpm8mH7Ky3/qKTcgdg+YftrdFGYgOAw6jxhJtB7SBCrWgWLd/y0HNf43HVABYxC77ZAu - XL71kNb/9sM6UiC9YAPq9uoo1+xV/4+JNYBiMIwqX71HTQVuQPUuU5nibdr/i7ZqwXHxNq3/yBhFbqv2 - //Id+rJwA0CMgk1Gwbkb9UqBuASEs9frvspar/MfhIHst7kbgOIgvFG3FKg2dOmpuWDX40wHicv0riUs - 0/0PwXp3CMYCuoLgWXo3g2bp/odgPdLTgUu//gPnft3/IOzSr/cUpwuYGRgYgFgAiBWBWAOIdRkZGNS1 - EpU6jMo1T4CwdpJSJ0gMJAdVA1IrAA8DIIcZiNmBmBOIuYGYF2guIyKxMDCCxKByIDUgtcx4A5HYLA4A - MV5njhcGgLEAAAAASUVORK5CYII= + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAryAAAK8gE9UvcRAAAChklE + QVQ4T6XOaUjTcRjA8ceDIo82FDtEMyubppsaSIYFSVCEHS/KF6Ok44VBWXZgzVuptLxgU/GYxxQyxQMi + Lcd0WtM2dQ1zmi11mRrSMlBKKUyenv0MQ/6+6w8fePgd3/8PEPG/rAyWeT3zbcEI/dOysDK9V3mFwUdu + Var3qOidyohcXPoOC4sWhhMYslQyppkaaDFF0SUBlr8JYOR6X2wcitCZZp7AsKWa4QS0kxlM7+ccePz2 + YKNUy8d8nRsj07pYI0Pqj7eh3XyD4QS6J7IZ3ZQUqvsP1+d0b8a81x5MbvdWLOoTGdvNidA2JmE4Ac14 + NsmhV8ig0nCkPlPjjlldXswjjSfm9wQbVWPJoBxNgBcjd7gB7UQZvBqXQdenQijRH6tP79yG91/uZO51 + etNLQoytI6nw/EMS/UTODUzODUP7WDG0maVQ1HeyLlm9A9M6BEyq2odesn+g2ZQGT4cfwI9fs9zA1Ow7 + uxZTrmeV4VpgluaoKq51N0qUfsxdpQDT1aEjCkNMYO2AxHfu51cbTqBp8OGlFFX4UrwyDG+1BGHsM/9V + bjaLMEF5ACWtodg0mCniBL7Mm3lV+sT4qJrtGN0QgJcbhKtEkwu1uzBNdap09ve0PSfQ/14HmtEmkBsS + 4yIrBShWBKC4SrhMIcRIhR+md5wtruhJgmZ148q9fwN9blv4cDFGDCl1V2JPlgViRKEQIwqEeEIuwqvV + pwvE14/DJnc+O8sJ2AHY0Lo9cXB2cLLdJxamHMoLwnBpMIac31PC42207jmS9dazawXsiCvxo1IwHfR1 + 8eCdcfXmn6PZn9b20p6QeFnPrhWwsicbiJMtWV4CW5odaXAmDmQd+fsChD+4WS+MAxa1eQAAAABJRU5E + rkJggg== - + - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK6QAA - CukB/XXO0wAAAetJREFUOE9j+P//PwMlGEXzfQdj37t2Bs24DLxnZ5B5z96oEFkebsAtV7OIKwaq/y9p - Kfy/bqW7Bd2QG3YGjZd1lf9f1lH6f8PesPf/wZmMIDVgA656WHGd1lH+f1xRGoxPqcv9v2iJMOSyrUHj - aW0loJwUGJ/SVPx/3kzbFG7ATk4uxgOK0j0HlGX+gzFQ0SE1uf9nLHVXnLM3rDmqrfh/P1AMLq8kvf+A - rAQ33ACYc3cqy/TuUJL+vxOIdyhI/d8DdMk+LcX/2xUkIWIQuf1LNBVZYHowYmAj0JANQIVgDLR1PdAg - GH+jkvTe+doqrFgDEVlwhZL08RXAsEDD7zaZGsBtxumCBYrSDQsVpP4A8X90vEBRaiN67KB4YYaidONM - oEYYngFkgzCqmPSW/0+/w/WBGRNU5RkmKkg1TJSX+g/DE0BsBenNkxSku8BsZKwgtWWSihwHPBZ61RS4 - OuUl/6Ph/bX6qkwgRV0KUr0daPJditJmKNHYoSSb2AS0pUlO8j+Q3vctwBusGYab5aW6wXJA3KIoM/2x - sxVYnoGZAYwFgBRvnKRofba02BZuFmYDIF8HKG4MwkA2iK+QIik6N1NafCGQLQLEfHAXABUxAzHYT2BB - BgZOIJ8XGQPFeJDk2UB6MFIiOdkaALyqHwCXXFYvAAAAAElFTkSuQmCC + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAryAAAK8gE9UvcRAAACgklE + QVQ4T6WOa0iTURjHn6VuLSMqTYQMqUwnL7NBZEUhg1IJP5Qf7AKSEmZEmVrMS4Gp29LKLdmaJUWalzRf + CS+Y2xLz+mZSps7mps4rKVkfRBD8IHs675sM7DUKOvDjPOec//M7DyDif+Eq5pds8HH2OfR+NYB1vhIm + F4zQPBp75bU1MuPLt2fCrqkseDOaBF1TBeD8m8D+g4aembuxpZ+PLJX0HXS2OJLSmZncfxP0zT6F9sns + 2Me9FOp6vAleWNQrwQZbfLZpLPnPgu9LI9A/Vw6m0bQ4/YcQ1HT7opbx49AwvkREYZUlJpeZfujq+U1g + 39gyrk7QMvsxv9MP73f5r+EeuSvoprDelqxyOlcEPMFbh/piQXcoZr/bicr23ahu34uqVX7VezCnbReq + OyRoHlOG8ATTC5/EjfZbsvKB+Ajte3lHVmsAkQVx3Gndh3mdBybK+i9E0NbrYQvLsx48wdziILROaMkk + OihkTlcrmgMwwxTMkW4MQmXb0YH64RwwO/JheWXR1ecqOiYqwGg3gHmkGPLbTtHX6gMxuZHiSGoIxtum + YxbaogTakgvMVA1fYBx/Ak0jRdBkLYYcczSdUCPBy7VSjks0hTcbwywv+9RQNaiCV8MqviAh8wxo6Eww + OspAURdNx5RI8PwLKcfZUgoTq4lg8AHk1abAoXApX8AukUgIadqrkFp3rjZSJ8Eog5TjpJ7CuIrjQ4pH + iSDeJOKyPIEbgEAA4L4BBB4nMg/XyPUylBeuopNhuDp0SOjmLiIZEZtdT+BG8CKBQPFmodwnZHuKN7WV + JdVHuu3Glh2eUeQtmGT82ex6AhZ3gpgEPciRbGtgP/AkCAmrEyD8BK5+NdGVjkx7AAAAAElFTkSuQmCC + + 121, 17 + 17, 17 - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK8gAA - CvIBPVL3EQAAAsFJREFUOE+lkstLVGEYxj+dClpJy4IWLULEAt0F4kpqUmjRXxC0ECUoIyKIaKOLEIIU - Q3JsKKhF6capHHWcckzn4tyc+11mnDmOM+c2M47oIPn0ngk9tmjVgYdzzvud53fe5/teBoD9j+rmg4MD - VqvVmCDwbLdaZft7e2dSyeSzaCSiTyYSuo1UShePxSbpuX1np8I4jmOFQqHu/QsgigKTZVlZvBYJhw/J - BDIjk04jHo/BMDMzVy6XT29tbf0TcIG6uEiGR/HoHzOXzUIuSihsFfF6bAzTU1OWTCbTJAiC2kGtts+o - tV6eL/4iwKEoCCiVSoiGgphaWMbosh7myFc4nD8xZzTC6/F8JIgKkCSJ8gsfJJFHWRRRkUTsVsqIBqMY - HH2Ou5/b0Gc4hxn/ELazPCjaEkVUASXKLUuiPp4vwJPbhpsrIJwXkcxF8Hi2GYOWZry0XcZ6Yh4biTTI - bA6HQipAliVWlUX9u1AcnZ98aHrlw1N7CotxHSZdPcjzG/DEvsDhWAGdDELBoDkYCJyMILJdAjyxe3F2 - aBasz4COaSvcmyYU+CQqpSr9NYY1xxrICL/PZ/atr6sAZUclvqg3RRMYNqxheNqBtyt+ZDkO2/k8qEOQ - AcbZWVhXV5VNNLtdLhXAF4vKueqdNiuWF41YXTLBYpqDy+lEJpMGzQdsVmv9BDxuN7xeryXg86kAZTC4 - XE5vt9lgWljAd/MizIsmOOx2MriQ3dxUctchyv3N+LjuSmurCijSWNJH7y1LP6jNb1iYn6tLgSVoAmkd - oyMjMy0tLbeutrbePqPRXGKMnToe5fa2NjY5MfEi4PfTRjlA+eqtKhGUcVYA9/r775OpfjWSNKRjgFJT - qNe7unq7tdoHpIEerfZhj/bmQPcN7UBnR8cdTUPDeTI2KMYjHQOo0EB1RUfX0fvJWuNJ81EHvwFtibPe - YgXvZAAAAABJRU5ErkJggg== + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAryAAAK8gE9UvcRAAACwElE + QVQ4T6WS3UtTcRjHf9MSupIuC7roIkRWoHeBeCW1FLroLwi6ECUoIyKI6EYvQghSDMnZKKiL0ptZubmX + cqZ70b24ublXxTnP5nbetjnRIfntORM9QnTVD55zzu/l+znP9/c8DMB/Re1xcHDAqtUqEwSe7VYqbH9v + r2EtlXoei0YNqWRSv762pk/E4+P03bqzU2Ycx7F8Pv83QBQFJsuysnk9urp6SCKQGOmNDSQScUwZjeZS + qXQ2m83+E3CRsrhEgseJ2JGYy2QgFyTkswW8GRnB5MSEI51ONwqCoAKq1X1GqXXzfOE3AQ5FQUCxWEQs + EsaEZQ7DcwbYo9/gWfoFs8mEgN//iSAqQJIk8i98lEQeJVFEWRKxWy4hFo6hf/gF7n1pQc/UeRhDA9jO + 8CBrs2RRBRTJtyyJhkQuD//WNnxcHqs5EamtKJ5MN6Hf0YRXritYTs5gPbkBEttXIxEVIMsSq8ii4X0k + gfbPQTS+DuKZew22hB7j3i7k+HX441/h8cyDKoNIOGwPr6yoAEkS2S4BnroDODcwDdYzhbZJJ3ybVuT5 + FMrFCv01jkXPIkiIUDBoDy4vqwDlRiW+YLDGkhicWsTgpAfv5kPIcBy2czlQhiABTNPTcC4sKJdo93m9 + KoAvFJS6GpZcTszZTFiYtcJhNcO7tIR0egNUXriczloF/D4fAoGAYyUYVAFKY3BbWwa3ywWrxYIfdhvs + Nis8bjcJvMhsbiq+axDl/XZ0VH9Vq1UBBeoqOvTBMfuT0vwOy4y5FgosSR1I+xgeGjI2NzffvqbV3mmo + r7/MGDtzAmhtaWHjY2MvV0IhuigPyF8tVcWC0s4K4H5v7wMS1UYdRT3FCUBZU6g3Ojq6O3W6hxR9XTrd + oy7drb7Om7q+9ra2u/UazQUSahThcZwAaKKhuRLH43h+eq3utPgIAPYHbYmz3k1i+O4AAAAASUVORK5C + YII= - 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 + SUVORK5CYII= - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK8gAA - CvIBPVL3EQAAAsNJREFUOE+lkl1IU3EYxv9zKYqRFd0UdNFFMFqFdlMkQdKsIAoqggjKQDAkMCuKLqIL - ISm9K1R0sQyMURo1L/xIJnpjH2xucx+6czZ1rm1t52Nfmg7Jp/dM5uyiq/7wcDgv5/md933ePwPA/kdZ - 8+rqKstkMkwUBba0uMhWlpeL/D7f45npaYOP5/Wzfr+e83pf+Xx8RTqdZqFQiEWj0az3L4AkiSwej7NY - NHps2uNZIxPIjMD8PDjOi36TaSiVShaGw+F/AvZQF3vJcJ+bWTf/CAYRDoeyz7aXL9DX2zseCATKRFHM - d5DJrLB0OlUnCLHfBFiTRBGJRAJulwvjY2OgzkB1TFotGBwYgG1y8i1B8gBZlhmZepSPFLNiSCWTcHvc - aGltxZeJCUQi4WwX2XG83jEaMQ9I0NyyJBlyAAIisbQEgZvB6HsjhkZGwPl8mJudBc9xILPZ43bnAfE4 - dSCJ6wBZghyX4X/QAOcRDTxHD2Ou7gaCPAcvx4M2o4xmdjmdm0eQmCAIBkGMQV7+BfeTRxgqZvC3NIN/ - Z8RwiQpfr12Gh/eBjJhyOMwOuz0PUBKlvRqisSgk+vvgyeMwbi+Bs7kJrm4DjDtK8Um7HzbKwu5wUJhW - s9ViyQOEWIxRSAZlXSKl33euGm1lxfhcW4PRh/fQvrMU3eUHYP3+DRaLBXabbdzpcOQBEboYwYUFw0Ig - gJ+0BZvpI57u2oaeSxfw4VYtmrYWYrD1OaY8nuwInR0d+oNabR5AN4/Ret4oCc9T0hEK0zYyjNc3r0N/ - 9Qqs/Sa0d3WZNBrN+UNa7cUitXofY2zLxlWuKC9n+s7OZ0oHikK076ggQEymINBIYjyO2/X1DWTKngKS - mrQBUGoK9VRVVd1pne4OqfGMTneX1Hi2urrxRGVljVql2k1GlWLMaQNABRXVFeVO7n1zrWCzOdfBH2pN - qLnKOhNqAAAAAElFTkSuQmCC + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAryAAAK8gE9UvcRAAACwUlE + QVQ4T6WSXUhTYRjH37kUxciKbgq66CIYrUK7KZIgaVYQBRVBBGUgGBKYFUUX0YWQlN4VKrpYBsYojZoX + fiQTvbEPNre5D93Zps61re187EvTIfnvOZN5hOiqF/7n8L6c/+88z/95GYD/Uu6xurrKstksEwSeLS0u + spXl5aKA3/94Znra4Pf59LOBgJ7zel/5/b6KTCbDwuEwi8VifwNEUWCJRILFY7Fj0x7PGplAZgTn58Fx + XvSbTEPpdKowEon8E7CHqthLhvvczLr5RyiESCSce7e9fIG+3t7xYDBYJgiCAshmV1gmk67j+fhvAqyJ + goBkMgm3y4XxsTEQGHSOSasFgwMDsE1OviWIApAkiZGpR/5INsuGdCoFt8eNltZWfJmYQDQayVWRa8fr + HaMWFUCS+pZE0ZAHEBDJpSXw3AxG3xsxNDICzu/H3OwsfBwHMps9brcCSCSoAlFYB0gipISEwIMGOI9o + 4Dl6GHN1NxDycfByPtBk5NbMLqdTAUiSyHieN/BCHNLyL7ifPMJQMUOgpRm+d0YMl6jw9dpleHx+kBFT + DofZYbcrADlRGoshFo9BpL8PnjwO4/YSOJub4Oo2wLijFJ+0+2GjLOwOB4VpNVstFgXAx+OMQjLI4xIo + /b5z1WgrK8bn2hqMPryH9p2l6C4/AOv3b7BYLLDbbONOh0MBROlihBYWDAvBIH5SiDbTRzzdtQ09ly7g + w61aNG0txGDrc0x5PLkWOjs69Ae1WgVAN4/ReN7ICc9T0lEK0zYyjNc3r0N/9Qqs/Sa0d3WZNBrN+UNa + 7cUitXofY2zLBqCivJzpOzufyRXICtO8YzwPIZUGTy0JiQRu19c3kCm3Ckhq0gZAPpOpp6qq6k7rdHdI + jWd0urukxrPV1Y0nKitr1CrVbjKqZGNeGwDaqGgvK7/y+81nBZvN6wCwP2pNqLkfzIVuAAAAAElFTkSu + QmCC diff --git a/Ember Media Manager/dlgEditMovie.vb b/Ember Media Manager/dlgEditMovie.vb index 07f78f0..21b7007 100644 --- a/Ember Media Manager/dlgEditMovie.vb +++ b/Ember Media Manager/dlgEditMovie.vb @@ -1,4 +1,5 @@ -' ################################################################################ + +' ################################################################################ ' # EMBER MEDIA MANAGER # ' ################################################################################ ' ################################################################################ @@ -177,13 +178,15 @@ Public Class dlgEditMovie End Sub Private Sub btnRemoveFanart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRemoveFanart.Click - Me.pbFanart.Image = Nothing - Me.Fanart.Image = Nothing + Me.pbFanart.Image = Nothing + Me.pbFanart.Tag = Nothing + Me.Fanart.Dispose() 'I need the object to call Delete... :) so I dispose the memory structures End Sub Private Sub btnRemovePoster_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRemovePoster.Click - Me.pbPoster.Image = Nothing - Me.Poster.Image = Nothing + Me.pbPoster.Image = Nothing + Me.pbPoster.Tag = Nothing + Me.Poster.Dispose() 'I need the object to call Delete... :) so I dispose the memory structures End Sub Private Sub btnRemoveThumb_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRemoveThumb.Click @@ -202,18 +205,24 @@ Public Class dlgEditMovie End Sub Private Sub btnSetAsFanart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetAsFanart.Click - Me.Fanart.FromFile(Me.Thumbs.Item(Me.ExtraIndex).Path) - Me.pbFanart.Image = pbExtraThumbs.Image - Me.lblFanartSize.Text = String.Format(Master.eLang.GetString(269, "Size: {0}x{1}"), Me.pbFanart.Image.Width, Me.pbFanart.Image.Height) - Me.btnSetAsFanart.Enabled = False - End Sub + Fanart.FromFile(Me.Thumbs.Item(Me.ExtraIndex).Path) + If Not IsNothing(Fanart.Image) Then + Me.pbFanart.Image = Fanart.Image + Me.pbFanart.Tag = Fanart + + Me.lblFanartSize.Text = String.Format(Master.eLang.GetString(269, "Size: {0}x{1}"), Me.pbFanart.Image.Width, Me.pbFanart.Image.Height) + Me.lblFanartSize.Visible = True + End If + End Sub Private Sub btnSetFanartDL_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetFanartDL.Click Try Using dImgManual As New dlgImgManual - If dImgManual.ShowDialog(Enums.ImageType.Fanart) = DialogResult.OK Then - Fanart.FromFile(Path.Combine(Master.TempPath, "fanart.jpg")) - pbFanart.Image = Fanart.Image + Dim tImage As Images = dImgManual.ShowDialog(Enums.ImageType.Fanart) + If Not IsNothing(tImage.Image) Then + Fanart = tImage + Me.pbFanart.Image = Fanart.Image + Me.pbFanart.Tag = Fanart Me.lblFanartSize.Text = String.Format(Master.eLang.GetString(269, "Size: {0}x{1}"), Me.pbFanart.Image.Width, Me.pbFanart.Image.Height) Me.lblFanartSize.Visible = True @@ -230,12 +239,15 @@ Public Class dlgEditMovie ModulesManager.Instance.ScraperSelectImageOfType(Master.currMovie, Enums.ImageType.Fanart, fResults, True) If Not String.IsNullOrEmpty(fResults.ImagePath) Then - Fanart.FromFile(sPath) - pbFanart.Image = Fanart.Image + Fanart.FromFile(sPath) + If Not IsNothing(Fanart.Image) Then + Me.pbFanart.Image = Fanart.Image + Me.pbFanart.Tag = Fanart - Me.lblFanartSize.Text = String.Format(Master.eLang.GetString(269, "Size: {0}x{1}"), Me.pbFanart.Image.Width, Me.pbFanart.Image.Height) - Me.lblFanartSize.Visible = True - End If + Me.lblFanartSize.Text = String.Format(Master.eLang.GetString(269, "Size: {0}x{1}"), Me.pbFanart.Image.Width, Me.pbFanart.Image.Height) + Me.lblFanartSize.Visible = True + End If + End If If Master.eSettings.UseImgCache AndAlso Directory.Exists(CachePath) Then Me.btnClearCache.Visible = True @@ -255,22 +267,28 @@ Public Class dlgEditMovie If ofdImage.ShowDialog() = DialogResult.OK Then Fanart.FromFile(ofdImage.FileName) - pbFanart.Image = Fanart.Image + If Not IsNothing(Fanart.Image) Then + Me.pbFanart.Image = Fanart.Image + Me.pbFanart.Tag = Fanart - Me.lblFanartSize.Text = String.Format(Master.eLang.GetString(269, "Size: {0}x{1}"), Me.pbFanart.Image.Width, Me.pbFanart.Image.Height) - Me.lblFanartSize.Visible = True - End If - Catch ex As Exception - Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") - End Try + Me.lblFanartSize.Text = String.Format(Master.eLang.GetString(269, "Size: {0}x{1}"), Me.pbFanart.Image.Width, Me.pbFanart.Image.Height) + Me.lblFanartSize.Visible = True + End If + End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try End Sub Private Sub btnSetPosterDL_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetPosterDL.Click Try Using dImgManual As New dlgImgManual - If dImgManual.ShowDialog(Enums.ImageType.Posters) = DialogResult.OK Then - Poster.FromFile(Path.Combine(Master.TempPath, "poster.jpg")) - pbPoster.Image = Poster.Image + Dim tImage As Images = dImgManual.ShowDialog(Enums.ImageType.Posters) + If Not IsNothing(tImage.Image) Then + Poster = tImage + 'Poster.FromFile(Path.Combine(Master.TempPath, "poster.jpg")) + Me.pbPoster.Image = Poster.Image + Me.pbPoster.Tag = Poster Me.lblPosterSize.Text = String.Format(Master.eLang.GetString(269, "Size: {0}x{1}"), Me.pbPoster.Image.Width, Me.pbPoster.Image.Height) Me.lblPosterSize.Visible = True @@ -287,11 +305,15 @@ Public Class dlgEditMovie ModulesManager.Instance.ScraperSelectImageOfType(Master.currMovie, Enums.ImageType.Posters, pResults, True) If Not String.IsNullOrEmpty(pResults.ImagePath) Then - Poster.FromFile(sPath) - pbPoster.Image = Poster.Image - Me.lblPosterSize.Text = String.Format(Master.eLang.GetString(269, "Size: {0}x{1}"), Me.pbPoster.Image.Width, Me.pbPoster.Image.Height) - Me.lblPosterSize.Visible = True - End If + Poster.FromFile(sPath) + If Not IsNothing(Poster.Image) Then + Me.pbPoster.Image = Poster.Image + Me.pbPoster.Tag = Poster + + Me.lblPosterSize.Text = String.Format(Master.eLang.GetString(269, "Size: {0}x{1}"), Me.pbPoster.Image.Width, Me.pbPoster.Image.Height) + Me.lblPosterSize.Visible = True + End If + End If If Master.eSettings.UseImgCache AndAlso Directory.Exists(CachePath) Then Me.btnClearCache.Visible = True @@ -311,11 +333,14 @@ Public Class dlgEditMovie If ofdImage.ShowDialog() = DialogResult.OK Then Poster.FromFile(ofdImage.FileName) - pbPoster.Image = Poster.Image - - Me.lblPosterSize.Text = String.Format(Master.eLang.GetString(269, "Size: {0}x{1}"), Me.pbPoster.Image.Width, Me.pbPoster.Image.Height) - Me.lblPosterSize.Visible = True - End If + If Not IsNothing(Poster.Image) Then + Me.pbPoster.Image = Poster.Image + Me.pbPoster.Tag = Poster + + Me.lblPosterSize.Text = String.Format(Master.eLang.GetString(269, "Size: {0}x{1}"), Me.pbPoster.Image.Width, Me.pbPoster.Image.Height) + Me.lblPosterSize.Visible = True + End If + End If Catch ex As Exception Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") End Try @@ -495,7 +520,7 @@ Public Class dlgEditMovie End Sub Private Sub dlgEditMovie_Disposed(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Disposed - Me.Poster.Dispose() + Me.Poster.Dispose() Me.Poster = Nothing Me.Fanart.Dispose() @@ -587,7 +612,15 @@ Public Class dlgEditMovie End If Me.chkMark.Checked = Master.currMovie.IsMark - + 'cocotus, 2013/02 Playcount/Watched state support added + 'When Edit Movie-Page is loaded, checkbox will be unchecked of playcount=0 or not set at all... + If Master.currMovie.Movie.PlayCount = "" Or Master.currMovie.Movie.PlayCount = "0" Then + Me.chkWatched.Checked = False + Else + 'Playcount <> Empty and not 0 -> Tag filled -> Checked! + Me.chkWatched.Checked = True + End If + 'cocotus end If Not String.IsNullOrEmpty(Master.currMovie.Movie.Title) Then .txtTitle.Text = Master.currMovie.Movie.Title End If @@ -738,19 +771,23 @@ Public Class dlgEditMovie Fanart.FromFile(Master.currMovie.FanartPath) If Not IsNothing(Fanart.Image) Then - .pbFanart.Image = Fanart.Image + .pbFanart.Image = Fanart.Image + .pbFanart.Tag = Fanart .lblFanartSize.Text = String.Format(Master.eLang.GetString(269, "Size: {0}x{1}"), .pbFanart.Image.Width, .pbFanart.Image.Height) .lblFanartSize.Visible = True End If Poster.FromFile(Master.currMovie.PosterPath) - If Not IsNothing(Poster.Image) Then - .pbPoster.Image = Poster.Image + If Not IsNothing(Poster) Then + If Not IsNothing(Poster.Image) Then + .pbPoster.Image = Poster.Image + .pbPoster.Tag = Poster - .lblPosterSize.Text = String.Format(Master.eLang.GetString(269, "Size: {0}x{1}"), .pbPoster.Image.Width, .pbPoster.Image.Height) - .lblPosterSize.Visible = True - End If + .lblPosterSize.Text = String.Format(Master.eLang.GetString(269, "Size: {0}x{1}"), .pbPoster.Image.Width, .pbPoster.Image.Height) + .lblPosterSize.Visible = True + End If + End If If Not ModulesManager.Instance.QueryPostScraperCapabilities(Enums.PostScraperCapabilities.Poster) Then .btnSetPosterScrape.Enabled = False @@ -807,7 +844,14 @@ Public Class dlgEditMovie End Sub Private Sub LoadThumbs() - Dim tPath As String = Path.Combine(Directory.GetParent(Master.currMovie.Filename).FullName, "extrathumbs") + Dim tPath As String = String.Empty + + If Master.eSettings.VideoTSParentXBMC AndAlso FileUtils.Common.isBDRip(Master.currMovie.Filename) Then + tPath = Path.Combine(Directory.GetParent(Directory.GetParent(Master.currMovie.Filename).FullName).FullName, "extrathumbs") + Else + tPath = Path.Combine(Directory.GetParent(Master.currMovie.Filename).FullName, "extrathumbs") + End If + If Directory.Exists(tPath) Then Dim di As New DirectoryInfo(tPath) Dim lFI As New List(Of FileInfo) @@ -1077,6 +1121,8 @@ Public Class dlgEditMovie tPath = Path.Combine(Directory.GetParent(Directory.GetParent(Master.currMovie.Filename).FullName).FullName, "extrathumbs") ElseIf Master.eSettings.VideoTSParent AndAlso FileUtils.Common.isBDRip(Master.currMovie.Filename) Then tPath = Path.Combine(Directory.GetParent(Directory.GetParent(Directory.GetParent(Master.currMovie.Filename).FullName).FullName).FullName, "extrathumbs") + ElseIf Master.eSettings.VideoTSParentXBMC AndAlso FileUtils.Common.isBDRip(Master.currMovie.Filename) Then + tPath = Path.Combine(Directory.GetParent(Directory.GetParent(Master.currMovie.Filename).FullName).FullName, "extrathumbs") Else tPath = Path.Combine(Directory.GetParent(Master.currMovie.Filename).FullName, "extrathumbs") End If @@ -1234,6 +1280,21 @@ Public Class dlgEditMovie Master.currMovie.Movie.Trailer = .txtTrailer.Text.Trim Master.currMovie.Movie.Studio = .txtStudio.Text.Trim + 'cocotus, 2013/02 Playcount/Watched state support added + 'if watched-checkbox is checked -> save Playcount=1 in nfo + If chkWatched.Checked Then + 'Only set to 1 if field was empty before (otherwise it would overwrite Playcount everytime which is not desirable) + If String.IsNullOrEmpty(Master.currMovie.Movie.PlayCount) Or Master.currMovie.Movie.PlayCount = "0" Then + Master.currMovie.Movie.PlayCount = "1" + End If + Else + 'Unchecked Watched State -> Set Playcount back to 0, but only if it was filled before (check could save time) + If IsNumeric(Master.currMovie.Movie.PlayCount) AndAlso CInt(Master.currMovie.Movie.PlayCount) > 0 Then + Master.currMovie.Movie.PlayCount = "" + End If + End If + 'cocotus End + If .lbGenre.CheckedItems.Count > 0 Then If .lbGenre.CheckedIndices.Contains(0) Then @@ -1265,30 +1326,30 @@ Public Class dlgEditMovie .Poster.DeletePosters(Master.currMovie) End If - If Not IsNothing(.Fanart.Image) Then - Dim fPath As String = .Fanart.SaveAsFanart(Master.currMovie) - Master.currMovie.FanartPath = fPath - Else - .Fanart.DeleteFanart(Master.currMovie) - Master.currMovie.FanartPath = String.Empty - End If + If Not IsNothing(.Fanart.Image) Then + Dim fPath As String = .Fanart.SaveAsFanart(Master.currMovie) + Master.currMovie.FanartPath = fPath + Else + .Fanart.DeleteFanart(Master.currMovie) + Master.currMovie.FanartPath = String.Empty + End If - If Not IsNothing(.Poster.Image) Then - Dim pPath As String = .Poster.SaveAsPoster(Master.currMovie) - Master.currMovie.PosterPath = pPath - Else - .Poster.DeletePosters(Master.currMovie) - Master.currMovie.PosterPath = String.Empty - End If + If Not IsNothing(.Poster.Image) Then + Dim pPath As String = .Poster.SaveAsPoster(Master.currMovie) + Master.currMovie.PosterPath = pPath + Else + .Poster.DeletePosters(Master.currMovie) + Master.currMovie.PosterPath = String.Empty + End If - If Not Master.eSettings.NoSaveImagesToNfo AndAlso pResults.Posters.Count > 0 Then Master.currMovie.Movie.Thumb = pResults.Posters - If Not Master.eSettings.NoSaveImagesToNfo AndAlso fResults.Fanart.Thumb.Count > 0 Then Master.currMovie.Movie.Fanart = pResults.Fanart + If Not Master.eSettings.NoSaveImagesToNfo AndAlso pResults.Posters.Count > 0 Then Master.currMovie.Movie.Thumb = pResults.Posters + If Not Master.eSettings.NoSaveImagesToNfo AndAlso fResults.Fanart.Thumb.Count > 0 Then Master.currMovie.Movie.Fanart = pResults.Fanart - .SaveExtraThumbsList() + .SaveExtraThumbsList() - .TransferETs() + .TransferETs() - End With + End With Catch ex As Exception Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") End Try @@ -1359,7 +1420,8 @@ Public Class dlgEditMovie Me.Label6.Text = String.Concat(Master.eLang.GetString(642, "Sort Title"), ":") Me.lblOriginalTitle.Text = String.Concat(Master.eLang.GetString(302, "Original Title"), ":") Me.lblFileSource.Text = Master.eLang.GetString(824, "Video Source:") - Me.TabPage6.Text = Master.eLang.GetString(866, "Metadata") + Me.TabPage6.Text = Master.eLang.GetString(866, "Metadata") + Me.chkWatched.Text = Master.eLang.GetString(883, "Watched") End Sub Private Sub TabControl1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TabControl1.SelectedIndexChanged @@ -1376,18 +1438,20 @@ Public Class dlgEditMovie End Try End Sub - - Private Sub TransferETs() Try If Directory.Exists(Path.Combine(Master.TempPath, "extrathumbs")) Then Dim ePath As String = String.Empty If Master.eSettings.VideoTSParent AndAlso FileUtils.Common.isVideoTS(Master.currMovie.Filename) Then ePath = Path.Combine(Directory.GetParent(Directory.GetParent(Master.currMovie.Filename).FullName).FullName, "extrathumbs") + 'ElseIf Master.eSettings.VideoTSParentXBMC AndAlso FileUtils.Common.isVideoTS(Master.currMovie.Filename) Then + ' ePath = Path.Combine(Directory.GetParent(Master.currMovie.Filename).FullName, "extrathumbs") ElseIf Master.eSettings.VideoTSParent AndAlso FileUtils.Common.isBDRip(Master.currMovie.Filename) Then ePath = Path.Combine(Directory.GetParent(Directory.GetParent(Directory.GetParent(Master.currMovie.Filename).FullName).FullName).FullName, "extrathumbs") - Else - ePath = Path.Combine(Directory.GetParent(Master.currMovie.Filename).FullName, "extrathumbs") + ElseIf Master.eSettings.VideoTSParentXBMC AndAlso FileUtils.Common.isBDRip(Master.currMovie.Filename) Then + ePath = Path.Combine(Directory.GetParent(Directory.GetParent(Master.currMovie.Filename).FullName).FullName, "extrathumbs") + Else + ePath = Path.Combine(Directory.GetParent(Master.currMovie.Filename).FullName, "extrathumbs") End If If Master.currMovie.ClearExtras AndAlso Not hasCleared Then @@ -1449,6 +1513,18 @@ Public Class dlgEditMovie End Sub + Private Sub txtOutline_KeyDown(ByVal sender As Object, e As KeyEventArgs) Handles txtOutline.KeyDown + If e.KeyData = (Keys.Control Or Keys.A) Then + Me.txtOutline.SelectAll() + End If + End Sub + + Private Sub txtPlot_KeyDown(ByVal sender As Object, e As KeyEventArgs) Handles txtPlot.KeyDown + If e.KeyData = (Keys.Control Or Keys.A) Then + Me.txtPlot.SelectAll() + End If + End Sub + #End Region 'Methods #Region "Nested Types" diff --git a/Ember Media Manager/dlgEditSeason.vb b/Ember Media Manager/dlgEditSeason.vb index 443dec5..380041e 100644 --- a/Ember Media Manager/dlgEditSeason.vb +++ b/Ember Media Manager/dlgEditSeason.vb @@ -33,21 +33,25 @@ Public Class dlgEditSeason #Region "Methods" Private Sub btnRemoveFanart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRemoveFanart.Click - Me.pbFanart.Image = Nothing - Me.Fanart.Image = Nothing + Me.pbFanart.Image = Nothing + Me.pbFanart.Tag = Nothing + Me.Fanart.Dispose() 'I need the object to call Delete... :) so I dispose the memory structures End Sub Private Sub btnRemovePoster_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRemovePoster.Click - Me.pbPoster.Image = Nothing - Me.Poster.Image = Nothing + Me.pbPoster.Image = Nothing + Me.pbPoster.Tag = Nothing + Me.Poster.Dispose() 'I need the object to call Delete... :) so I dispose the memory structures End Sub Private Sub btnSetFanartDL_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetFanartDL.Click Try Using dImgManual As New dlgImgManual - If dImgManual.ShowDialog(Enums.ImageType.Fanart) = DialogResult.OK Then - Fanart.FromFile(Path.Combine(Master.TempPath, "fanart.jpg")) - pbFanart.Image = Fanart.Image + Dim tImage As Images = dImgManual.ShowDialog(Enums.ImageType.Fanart) + If Not IsNothing(tImage.Image) Then + Fanart = tImage + Me.pbFanart.Image = Fanart.Image + Me.pbFanart.Tag = Fanart Me.lblFanartSize.Text = String.Format(Master.eLang.GetString(269, "Size: {0}x{1}"), Me.pbFanart.Image.Width, Me.pbFanart.Image.Height) Me.lblFanartSize.Visible = True @@ -59,11 +63,12 @@ Public Class dlgEditSeason End Sub Private Sub btnSetFanartScrape_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetFanartScrape.Click - Dim tImage As Image = ModulesManager.Instance.TVSingleImageOnly(Master.currShow.TVShow.Title, Convert.ToInt32(Master.currShow.ShowID), Master.currShow.TVShow.ID, Enums.TVImageType.SeasonFanart, Master.currShow.TVEp.Season, 0, Master.currShow.ShowLanguage, Master.currShow.Ordering, Me.pbFanart.Image) + Dim tImage As Images = ModulesManager.Instance.TVSingleImageOnly(Master.currShow.TVShow.Title, Convert.ToInt32(Master.currShow.ShowID), Master.currShow.TVShow.ID, Enums.TVImageType.SeasonFanart, Master.currShow.TVEp.Season, 0, Master.currShow.ShowLanguage, Master.currShow.Ordering, CType(Fanart, Images)) - If Not IsNothing(tImage) Then - Me.Fanart.Image = New Bitmap(tImage) - Me.pbFanart.Image = tImage + If Not IsNothing(tImage) AndAlso Not IsNothing(tImage.Image) Then + Fanart = tImage + Me.pbFanart.Image = tImage.Image + Me.pbFanart.Tag = tImage Me.lblFanartSize.Text = String.Format(Master.eLang.GetString(269, "Size: {0}x{1}"), Me.pbFanart.Image.Width, Me.pbFanart.Image.Height) Me.lblFanartSize.Visible = True @@ -80,38 +85,44 @@ Public Class dlgEditSeason If ofdImage.ShowDialog() = DialogResult.OK Then Fanart.FromFile(ofdImage.FileName) - pbFanart.Image = Fanart.Image - - Me.lblFanartSize.Text = String.Format(Master.eLang.GetString(269, "Size: {0}x{1}"), Me.pbFanart.Image.Width, Me.pbFanart.Image.Height) - Me.lblFanartSize.Visible = True - End If - Catch ex As Exception - Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") - End Try + If Not IsNothing(Fanart.Image) Then + Me.pbFanart.Image = Fanart.Image + Me.pbFanart.Tag = Fanart + + Me.lblFanartSize.Text = String.Format(Master.eLang.GetString(269, "Size: {0}x{1}"), Me.pbFanart.Image.Width, Me.pbFanart.Image.Height) + Me.lblFanartSize.Visible = True + End If + End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try End Sub Private Sub btnSetPosterDL_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetPosterDL.Click Try Using dImgManual As New dlgImgManual - If dImgManual.ShowDialog(Enums.ImageType.Posters) = DialogResult.OK Then - Poster.FromFile(Path.Combine(Master.TempPath, "poster.jpg")) - pbPoster.Image = Poster.Image + Dim tImage As Images = dImgManual.ShowDialog(Enums.ImageType.Posters) + If Not IsNothing(tImage.Image) Then + Poster = tImage + Me.pbPoster.Image = Poster.Image + Me.pbPoster.Tag = Poster Me.lblPosterSize.Text = String.Format(Master.eLang.GetString(269, "Size: {0}x{1}"), Me.pbPoster.Image.Width, Me.pbPoster.Image.Height) Me.lblPosterSize.Visible = True End If - End Using + End Using Catch ex As Exception Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") End Try End Sub Private Sub btnSetPosterScrape_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetPosterScrape.Click - Dim tImage As Image = ModulesManager.Instance.TVSingleImageOnly(Master.currShow.TVShow.Title, Convert.ToInt32(Master.currShow.ShowID), Master.currShow.TVShow.ID, Enums.TVImageType.SeasonPoster, Master.currShow.TVEp.Season, 0, Master.currShow.ShowLanguage, Master.currShow.Ordering, Me.pbPoster.Image) + Dim tImage As Images = ModulesManager.Instance.TVSingleImageOnly(Master.currShow.TVShow.Title, Convert.ToInt32(Master.currShow.ShowID), Master.currShow.TVShow.ID, Enums.TVImageType.SeasonPoster, Master.currShow.TVEp.Season, 0, Master.currShow.ShowLanguage, Master.currShow.Ordering, CType(Poster, Images)) - If Not IsNothing(tImage) Then - Me.Poster.Image = New Bitmap(tImage) - Me.pbPoster.Image = tImage + If Not IsNothing(tImage) AndAlso Not IsNothing(tImage.Image) Then + Poster = tImage + Me.pbPoster.Image = tImage.Image + Me.pbPoster.Tag = tImage Me.lblPosterSize.Text = String.Format(Master.eLang.GetString(269, "Size: {0}x{1}"), Me.pbPoster.Image.Width, Me.pbPoster.Image.Height) Me.lblPosterSize.Visible = True @@ -128,11 +139,14 @@ Public Class dlgEditSeason If ofdImage.ShowDialog() = DialogResult.OK Then Poster.FromFile(ofdImage.FileName) - pbPoster.Image = Poster.Image - - Me.lblPosterSize.Text = String.Format(Master.eLang.GetString(269, "Size: {0}x{1}"), Me.pbPoster.Image.Width, Me.pbPoster.Image.Height) - Me.lblPosterSize.Visible = True - End If + If Not IsNothing(Poster.Image) Then + Me.pbPoster.Image = Poster.Image + Me.pbPoster.Tag = Poster + + Me.lblPosterSize.Text = String.Format(Master.eLang.GetString(269, "Size: {0}x{1}"), Me.pbPoster.Image.Width, Me.pbPoster.Image.Height) + Me.lblPosterSize.Visible = True + End If + End If Catch ex As Exception Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") End Try @@ -159,7 +173,7 @@ Public Class dlgEditSeason End Sub Private Sub dlgEditSeason_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load - If Not Master.eSettings.SeasonFanartEnabled AndAlso Not String.IsNullOrEmpty(Functions.GetSeasonDirectoryFromShowPath(Master.currShow.ShowPath, Master.currShow.TVEp.Season)) Then TabControl1.TabPages.Remove(TabPage3) + If Not Master.eSettings.SeasonFanartEnabled OrElse (String.IsNullOrEmpty(Functions.GetSeasonDirectoryFromShowPath(Master.currShow.ShowPath, Master.currShow.TVEp.Season)) AndAlso (Not Master.eSettings.SeasonXXDashFanartJPG AndAlso Not AdvancedSettings.GetBooleanSetting("YAMJSeasonFanart", False, "multi.Compatibility"))) Then TabControl1.TabPages.Remove(TabPage3) Me.SetUp() @@ -175,10 +189,11 @@ Public Class dlgEditSeason Private Sub FillInfo() With Me - If Master.eSettings.SeasonFanartEnabled AndAlso Not String.IsNullOrEmpty(Functions.GetSeasonDirectoryFromShowPath(Master.currShow.ShowPath, Master.currShow.TVEp.Season)) Then + If Master.eSettings.SeasonXXDashFanartJPG OrElse AdvancedSettings.GetBooleanSetting("YAMJSeasonFanart", False, "multi.Compatibility") OrElse (Master.eSettings.SeasonFanartEnabled AndAlso Not String.IsNullOrEmpty(Functions.GetSeasonDirectoryFromShowPath(Master.currShow.ShowPath, Master.currShow.TVEp.Season))) Then Fanart.FromFile(Master.currShow.SeasonFanartPath) If Not IsNothing(Fanart.Image) Then .pbFanart.Image = Fanart.Image + .pbFanart.Tag = Fanart .lblFanartSize.Text = String.Format(Master.eLang.GetString(269, "Size: {0}x{1}"), .pbFanart.Image.Width, .pbFanart.Image.Height) .lblFanartSize.Visible = True @@ -188,6 +203,7 @@ Public Class dlgEditSeason Poster.FromFile(Master.currShow.SeasonPosterPath) If Not IsNothing(Poster.Image) Then .pbPoster.Image = Poster.Image + .pbPoster.Tag = Poster .lblPosterSize.Text = String.Format(Master.eLang.GetString(269, "Size: {0}x{1}"), .pbPoster.Image.Width, .pbPoster.Image.Height) .lblPosterSize.Visible = True @@ -215,7 +231,7 @@ Public Class dlgEditSeason Try With Me - If Master.eSettings.SeasonFanartEnabled AndAlso Not String.IsNullOrEmpty(Functions.GetSeasonDirectoryFromShowPath(Master.currShow.ShowPath, Master.currShow.TVEp.Season)) Then + If Master.eSettings.SeasonXXDashFanartJPG OrElse AdvancedSettings.GetBooleanSetting("YAMJSeasonFanart", False, "multi.Compatibility") OrElse (Master.eSettings.SeasonFanartEnabled AndAlso Not String.IsNullOrEmpty(Functions.GetSeasonDirectoryFromShowPath(Master.currShow.ShowPath, Master.currShow.TVEp.Season))) Then If Not IsNothing(.Fanart.Image) Then Dim fPath As String = .Fanart.SaveAsSeasonFanart(Master.currShow) Master.currShow.SeasonFanartPath = fPath diff --git a/Ember Media Manager/dlgEditShow.vb b/Ember Media Manager/dlgEditShow.vb index 6635069..8ffc36a 100644 --- a/Ember Media Manager/dlgEditShow.vb +++ b/Ember Media Manager/dlgEditShow.vb @@ -76,11 +76,12 @@ Public Class dlgEditShow End Sub Private Sub btnASChangePosterScrape_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnASChangePosterScrape.Click - Dim tImage As Image = ModulesManager.Instance.TVSingleImageOnly(Master.currShow.TVShow.Title, Convert.ToInt32(Master.currShow.ShowID), Master.currShow.TVShow.ID, Enums.TVImageType.AllSeasonPoster, 0, 0, Master.currShow.ShowLanguage, Master.currShow.Ordering, Me.pbASPoster.Image) + Dim tImage As Images = ModulesManager.Instance.TVSingleImageOnly(Master.currShow.TVShow.Title, Convert.ToInt32(Master.currShow.ShowID), Master.currShow.TVShow.ID, Enums.TVImageType.AllSeasonPoster, 0, 0, Master.currShow.ShowLanguage, Master.currShow.Ordering, CType(ASPoster, Images)) - If Not IsNothing(tImage) Then - Me.ASPoster.Image = New Bitmap(tImage) - Me.pbASPoster.Image = tImage + If Not IsNothing(tImage) AndAlso Not IsNothing(tImage.Image) Then + Me.ASPoster = tImage + Me.pbASPoster.Image = tImage.Image + Me.pbASPoster.Tag = tImage End If End Sub @@ -107,22 +108,24 @@ Public Class dlgEditShow Private Sub btnASPosterChangeDL_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnASPosterChangeDL.Click Try Using dImgManual As New dlgImgManual - If dImgManual.ShowDialog(Enums.ImageType.ASPoster) = DialogResult.OK Then - ASPoster.FromFile(Path.Combine(Master.TempPath, "asposter.jpg")) + Dim tImage As Images = dImgManual.ShowDialog(Enums.ImageType.ASPoster) + If Not IsNothing(tImage.Image) Then + ASPoster = tImage pbASPoster.Image = ASPoster.Image Me.lblASSize.Text = String.Format(Master.eLang.GetString(269, "Size: {0}x{1}"), Me.pbASPoster.Image.Width, Me.pbASPoster.Image.Height) Me.lblASSize.Visible = True End If - End Using + End Using Catch ex As Exception Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") End Try End Sub Private Sub btnASPosterRemove_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnASPosterRemove.Click - Me.pbASPoster.Image = Nothing - Me.ASPoster.Image = Nothing + Me.pbASPoster.Image = Nothing + Me.pbASPoster.Tag = Nothing + Me.ASPoster.Dispose() 'I need the object to call Delete... :) so I dispose the memory structures End Sub Private Sub btnEditActor_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEditActor.Click @@ -141,13 +144,15 @@ Public Class dlgEditShow End Sub Private Sub btnRemoveFanart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRemoveFanart.Click - Me.pbFanart.Image = Nothing - Me.Fanart.Image = Nothing + Me.pbFanart.Image = Nothing + Me.pbFanart.Tag = Nothing + Me.Fanart.Dispose() 'I need the object to call Delete... :) so I dispose the memory structures End Sub Private Sub btnRemovePoster_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRemovePoster.Click - Me.pbPoster.Image = Nothing - Me.Poster.Image = Nothing + Me.pbPoster.Image = Nothing + Me.pbPoster.Tag = Nothing + Me.Poster.Dispose() 'I need the object to call Delete... :) so I dispose the memory structures End Sub Private Sub btnRemove_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRemove.Click @@ -157,25 +162,28 @@ Public Class dlgEditShow Private Sub btnSetFanartDL_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetFanartDL.Click Try Using dImgManual As New dlgImgManual - If dImgManual.ShowDialog(Enums.ImageType.Fanart) = DialogResult.OK Then - Fanart.FromFile(Path.Combine(Master.TempPath, "fanart.jpg")) - pbFanart.Image = Fanart.Image + Dim tImage As Images = dImgManual.ShowDialog(Enums.ImageType.Fanart) + If Not IsNothing(tImage.Image) Then + Fanart = tImage + Me.pbFanart.Image = Fanart.Image + Me.pbFanart.Tag = Fanart Me.lblFanartSize.Text = String.Format(Master.eLang.GetString(269, "Size: {0}x{1}"), Me.pbFanart.Image.Width, Me.pbFanart.Image.Height) Me.lblFanartSize.Visible = True End If - End Using + End Using Catch ex As Exception Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") End Try End Sub Private Sub btnSetFanartScrape_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetFanartScrape.Click - Dim tImage As Image = ModulesManager.Instance.TVSingleImageOnly(Master.currShow.TVShow.Title, Convert.ToInt32(Master.currShow.ShowID), Master.currShow.TVShow.ID, Enums.TVImageType.ShowFanart, 0, 0, Master.currShow.ShowLanguage, Master.currShow.Ordering, Me.pbFanart.Image) + Dim tImage As Images = ModulesManager.Instance.TVSingleImageOnly(Master.currShow.TVShow.Title, Convert.ToInt32(Master.currShow.ShowID), Master.currShow.TVShow.ID, Enums.TVImageType.ShowFanart, 0, 0, Master.currShow.ShowLanguage, Master.currShow.Ordering, CType(Fanart, Images)) - If Not IsNothing(tImage) Then - Me.Fanart.Image = New Bitmap(tImage) - Me.pbFanart.Image = tImage + If Not IsNothing(tImage) AndAlso Not IsNothing(tImage.Image) Then + Fanart = tImage + Me.pbFanart.Image = tImage.Image + Me.pbFanart.Tag = tImage Me.lblFanartSize.Text = String.Format(Master.eLang.GetString(269, "Size: {0}x{1}"), Me.pbFanart.Image.Width, Me.pbFanart.Image.Height) Me.lblFanartSize.Visible = True @@ -191,12 +199,15 @@ Public Class dlgEditShow End With If ofdImage.ShowDialog() = DialogResult.OK Then - Fanart.FromFile(ofdImage.FileName) - pbFanart.Image = Fanart.Image - - Me.lblFanartSize.Text = String.Format(Master.eLang.GetString(269, "Size: {0}x{1}"), Me.pbFanart.Image.Width, Me.pbFanart.Image.Height) - Me.lblFanartSize.Visible = True - End If + Fanart.FromFile(ofdImage.FileName) + If Not IsNothing(Fanart.Image) Then + Me.pbFanart.Image = Fanart.Image + Me.pbFanart.Tag = Fanart + + Me.lblFanartSize.Text = String.Format(Master.eLang.GetString(269, "Size: {0}x{1}"), Me.pbFanart.Image.Width, Me.pbFanart.Image.Height) + Me.lblFanartSize.Visible = True + End If + End If Catch ex As Exception Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") End Try @@ -205,25 +216,28 @@ Public Class dlgEditShow Private Sub btnSetPosterDL_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetPosterDL.Click Try Using dImgManual As New dlgImgManual - If dImgManual.ShowDialog(Enums.ImageType.Posters) = DialogResult.OK Then - Poster.FromFile(Path.Combine(Master.TempPath, "poster.jpg")) - pbPoster.Image = Poster.Image + Dim tImage As Images = dImgManual.ShowDialog(Enums.ImageType.Posters) + If Not IsNothing(tImage.Image) Then + Poster = tImage + Me.pbPoster.Image = Poster.Image + Me.pbPoster.Tag = Poster Me.lblPosterSize.Text = String.Format(Master.eLang.GetString(269, "Size: {0}x{1}"), Me.pbPoster.Image.Width, Me.pbPoster.Image.Height) Me.lblPosterSize.Visible = True End If - End Using + End Using Catch ex As Exception Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") End Try End Sub Private Sub btnSetPosterScrape_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSetPosterScrape.Click - Dim tImage As Image = ModulesManager.Instance.TVSingleImageOnly(Master.currShow.TVShow.Title, Convert.ToInt32(Master.currShow.ShowID), Master.currShow.TVShow.ID, Enums.TVImageType.ShowPoster, 0, 0, Master.currShow.ShowLanguage, Master.currShow.Ordering, Me.pbPoster.Image) + Dim tImage As Images = ModulesManager.Instance.TVSingleImageOnly(Master.currShow.TVShow.Title, Convert.ToInt32(Master.currShow.ShowID), Master.currShow.TVShow.ID, Enums.TVImageType.ShowPoster, 0, 0, Master.currShow.ShowLanguage, Master.currShow.Ordering, CType(Poster, Images)) - If Not IsNothing(tImage) Then - Me.Poster.Image = New Bitmap(tImage) - Me.pbPoster.Image = tImage + If Not IsNothing(tImage) AndAlso Not IsNothing(tImage.Image) Then + Poster = tImage + Me.pbPoster.Image = tImage.Image + Me.pbPoster.Tag = tImage Me.lblPosterSize.Text = String.Format(Master.eLang.GetString(269, "Size: {0}x{1}"), Me.pbPoster.Image.Width, Me.pbPoster.Image.Height) Me.lblPosterSize.Visible = True @@ -240,7 +254,8 @@ Public Class dlgEditShow If ofdImage.ShowDialog() = DialogResult.OK Then Poster.FromFile(ofdImage.FileName) - pbPoster.Image = Poster.Image + Me.pbPoster.Image = Poster.Image + Me.pbPoster.Tag = Poster Me.lblPosterSize.Text = String.Format(Master.eLang.GetString(269, "Size: {0}x{1}"), Me.pbPoster.Image.Width, Me.pbPoster.Image.Height) Me.lblPosterSize.Visible = True @@ -441,7 +456,8 @@ Public Class dlgEditShow Fanart.FromFile(Master.currShow.ShowFanartPath) If Not IsNothing(Fanart.Image) Then - .pbFanart.Image = Fanart.Image + .pbFanart.Image = Fanart.Image + .pbFanart.Tag = Fanart .lblFanartSize.Text = String.Format(Master.eLang.GetString(269, "Size: {0}x{1}"), .pbFanart.Image.Width, .pbFanart.Image.Height) .lblFanartSize.Visible = True @@ -450,6 +466,7 @@ Public Class dlgEditShow Poster.FromFile(Master.currShow.ShowPosterPath) If Not IsNothing(Poster.Image) Then .pbPoster.Image = Poster.Image + .pbPoster.Tag = Poster .lblPosterSize.Text = String.Format(Master.eLang.GetString(269, "Size: {0}x{1}"), .pbPoster.Image.Width, .pbPoster.Image.Height) .lblPosterSize.Visible = True @@ -690,6 +707,12 @@ Public Class dlgEditShow End If End Sub + Private Sub txtPlot_KeyDown(ByVal sender As Object, e As KeyEventArgs) Handles txtPlot.KeyDown + If e.KeyData = (Keys.Control Or Keys.A) Then + Me.txtPlot.SelectAll() + End If + End Sub + Private Sub SetInfo() Try With Me @@ -733,14 +756,14 @@ Public Class dlgEditShow End If If Not IsNothing(.Fanart.Image) Then - Master.currShow.ShowFanartPath = .Fanart.SaveAsShowFanart(Master.currShow) + Master.currShow.ShowFanartPath = .Fanart.SaveAsShowFanart(Master.currShow, "") Else .Fanart.DeleteShowFanart(Master.currShow) Master.currShow.ShowFanartPath = String.Empty End If If Not IsNothing(.Poster.Image) Then - Master.currShow.ShowPosterPath = .Poster.SaveAsShowPoster(Master.currShow) + Master.currShow.ShowPosterPath = .Poster.SaveAsShowPoster(Master.currShow, "") Else .Poster.DeleteShowPosters(Master.currShow) Master.currShow.ShowPosterPath = String.Empty @@ -748,7 +771,7 @@ Public Class dlgEditShow If Master.eSettings.AllSeasonPosterEnabled Then If Not IsNothing(.ASPoster.Image) Then - Master.currShow.SeasonPosterPath = .ASPoster.SaveAsAllSeasonPoster(Master.currShow) + Master.currShow.SeasonPosterPath = .ASPoster.SaveAsAllSeasonPoster(Master.currShow, "") Else .ASPoster.DeleteAllSeasonPosters(Master.currShow) Master.currShow.SeasonPosterPath = String.Empty diff --git a/Ember Media Manager/dlgFIStreamEditor.Designer.vb b/Ember Media Manager/dlgFIStreamEditor.Designer.vb index 111e6da..2bd0c7a 100644 --- a/Ember Media Manager/dlgFIStreamEditor.Designer.vb +++ b/Ember Media Manager/dlgFIStreamEditor.Designer.vb @@ -22,421 +22,514 @@ Partial Class dlgFIStreamEditor 'Do not modify it using the code editor. _ Private Sub InitializeComponent() - Me.TableLayoutPanel1 = New System.Windows.Forms.TableLayoutPanel() - Me.OK_Button = New System.Windows.Forms.Button() - Me.Cancel_Button = New System.Windows.Forms.Button() - Me.GroupBox1 = New System.Windows.Forms.GroupBox() - Me.Label8 = New System.Windows.Forms.Label() - Me.cbVideoLanguage = New System.Windows.Forms.ComboBox() - Me.Label5 = New System.Windows.Forms.Label() - Me.txtARatio = New System.Windows.Forms.TextBox() - Me.rbInterlaced = New System.Windows.Forms.RadioButton() - Me.rbProgressive = New System.Windows.Forms.RadioButton() - Me.Label4 = New System.Windows.Forms.Label() - Me.cbVideoCodec = New System.Windows.Forms.ComboBox() - Me.Label3 = New System.Windows.Forms.Label() - Me.txtDuration = New System.Windows.Forms.TextBox() - Me.Label2 = New System.Windows.Forms.Label() - Me.Label1 = New System.Windows.Forms.Label() - Me.txtHeight = New System.Windows.Forms.TextBox() - Me.txtWidth = New System.Windows.Forms.TextBox() - Me.GroupBox2 = New System.Windows.Forms.GroupBox() - Me.Label9 = New System.Windows.Forms.Label() - Me.cbAudioChannels = New System.Windows.Forms.ComboBox() - Me.Label7 = New System.Windows.Forms.Label() - Me.cbAudioCodec = New System.Windows.Forms.ComboBox() - Me.Label6 = New System.Windows.Forms.Label() - Me.cbAudioLanguage = New System.Windows.Forms.ComboBox() - Me.GroupBox3 = New System.Windows.Forms.GroupBox() - Me.rbExternal = New System.Windows.Forms.RadioButton() - Me.rbEmbedded = New System.Windows.Forms.RadioButton() - Me.Label10 = New System.Windows.Forms.Label() - Me.cbSubsLanguage = New System.Windows.Forms.ComboBox() - Me.Panel1 = New System.Windows.Forms.Panel() - Me.TableLayoutPanel1.SuspendLayout() - Me.GroupBox1.SuspendLayout() - Me.GroupBox2.SuspendLayout() - Me.GroupBox3.SuspendLayout() - Me.Panel1.SuspendLayout() - Me.SuspendLayout() - ' - 'TableLayoutPanel1 - ' - Me.TableLayoutPanel1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.TableLayoutPanel1.ColumnCount = 2 - Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) - Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) - Me.TableLayoutPanel1.Controls.Add(Me.OK_Button, 0, 0) - Me.TableLayoutPanel1.Controls.Add(Me.Cancel_Button, 1, 0) - Me.TableLayoutPanel1.Location = New System.Drawing.Point(87, 215) - Me.TableLayoutPanel1.Name = "TableLayoutPanel1" - Me.TableLayoutPanel1.RowCount = 1 - Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) - Me.TableLayoutPanel1.Size = New System.Drawing.Size(146, 29) - Me.TableLayoutPanel1.TabIndex = 0 - ' - 'OK_Button - ' - Me.OK_Button.Anchor = System.Windows.Forms.AnchorStyles.None - Me.OK_Button.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.OK_Button.Location = New System.Drawing.Point(3, 3) - Me.OK_Button.Name = "OK_Button" - Me.OK_Button.Size = New System.Drawing.Size(67, 23) - Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" - ' - 'Cancel_Button - ' - Me.Cancel_Button.Anchor = System.Windows.Forms.AnchorStyles.None - Me.Cancel_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel - Me.Cancel_Button.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.Cancel_Button.Location = New System.Drawing.Point(76, 3) - Me.Cancel_Button.Name = "Cancel_Button" - Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) - Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" - ' - 'GroupBox1 - ' - Me.GroupBox1.Controls.Add(Me.Label8) - Me.GroupBox1.Controls.Add(Me.cbVideoLanguage) - Me.GroupBox1.Controls.Add(Me.Label5) - Me.GroupBox1.Controls.Add(Me.txtARatio) - Me.GroupBox1.Controls.Add(Me.rbInterlaced) - Me.GroupBox1.Controls.Add(Me.rbProgressive) - Me.GroupBox1.Controls.Add(Me.Label4) - Me.GroupBox1.Controls.Add(Me.cbVideoCodec) - Me.GroupBox1.Controls.Add(Me.Label3) - Me.GroupBox1.Controls.Add(Me.txtDuration) - Me.GroupBox1.Controls.Add(Me.Label2) - Me.GroupBox1.Controls.Add(Me.Label1) - Me.GroupBox1.Controls.Add(Me.txtHeight) - Me.GroupBox1.Controls.Add(Me.txtWidth) - Me.GroupBox1.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.GroupBox1.Location = New System.Drawing.Point(21, 7) - Me.GroupBox1.Name = "GroupBox1" - Me.GroupBox1.Size = New System.Drawing.Size(191, 194) - Me.GroupBox1.TabIndex = 0 - Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "Video Streams" - Me.GroupBox1.Visible = False - ' - 'Label8 - ' - Me.Label8.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.Label8.Location = New System.Drawing.Point(4, 167) - Me.Label8.Name = "Label8" - Me.Label8.Size = New System.Drawing.Size(68, 19) - Me.Label8.TabIndex = 12 - Me.Label8.Text = "Language" - Me.Label8.TextAlign = System.Drawing.ContentAlignment.MiddleRight - ' - 'cbVideoLanguage - ' - Me.cbVideoLanguage.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend - Me.cbVideoLanguage.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems - Me.cbVideoLanguage.DropDownWidth = 120 - Me.cbVideoLanguage.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.cbVideoLanguage.FormattingEnabled = True - Me.cbVideoLanguage.Location = New System.Drawing.Point(76, 165) - Me.cbVideoLanguage.Name = "cbVideoLanguage" - Me.cbVideoLanguage.Size = New System.Drawing.Size(93, 21) - Me.cbVideoLanguage.TabIndex = 13 - ' - 'Label5 - ' - Me.Label5.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.Label5.Location = New System.Drawing.Point(5, 116) - Me.Label5.Name = "Label5" - Me.Label5.Size = New System.Drawing.Size(68, 19) - Me.Label5.TabIndex = 8 - Me.Label5.Text = "Aspect Ratio" - Me.Label5.TextAlign = System.Drawing.ContentAlignment.MiddleRight - ' - 'txtARatio - ' - Me.txtARatio.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.txtARatio.Location = New System.Drawing.Point(76, 115) - Me.txtARatio.Name = "txtARatio" - Me.txtARatio.Size = New System.Drawing.Size(48, 22) - Me.txtARatio.TabIndex = 9 - ' - 'rbInterlaced - ' - Me.rbInterlaced.AutoSize = True - Me.rbInterlaced.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.rbInterlaced.Location = New System.Drawing.Point(111, 45) - Me.rbInterlaced.Name = "rbInterlaced" - Me.rbInterlaced.Size = New System.Drawing.Size(76, 17) - Me.rbInterlaced.TabIndex = 3 - Me.rbInterlaced.TabStop = True - Me.rbInterlaced.Text = "Interlaced" - Me.rbInterlaced.UseVisualStyleBackColor = True - ' - 'rbProgressive - ' - Me.rbProgressive.AutoSize = True - Me.rbProgressive.Checked = True - Me.rbProgressive.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.rbProgressive.Location = New System.Drawing.Point(25, 45) - Me.rbProgressive.Name = "rbProgressive" - Me.rbProgressive.Size = New System.Drawing.Size(85, 17) - Me.rbProgressive.TabIndex = 2 - Me.rbProgressive.TabStop = True - Me.rbProgressive.Text = "Progressive" - Me.rbProgressive.UseVisualStyleBackColor = True - ' - 'Label4 - ' - Me.Label4.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.Label4.Location = New System.Drawing.Point(22, 21) - Me.Label4.Name = "Label4" - Me.Label4.Size = New System.Drawing.Size(51, 15) - Me.Label4.TabIndex = 0 - Me.Label4.Text = "Codec" - Me.Label4.TextAlign = System.Drawing.ContentAlignment.MiddleRight - ' - 'cbVideoCodec - ' - Me.cbVideoCodec.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList - Me.cbVideoCodec.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.cbVideoCodec.FormattingEnabled = True - Me.cbVideoCodec.Location = New System.Drawing.Point(76, 19) - Me.cbVideoCodec.Name = "cbVideoCodec" - Me.cbVideoCodec.Size = New System.Drawing.Size(93, 21) - Me.cbVideoCodec.TabIndex = 1 - ' - 'Label3 - ' - Me.Label3.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.Label3.Location = New System.Drawing.Point(17, 143) - Me.Label3.Name = "Label3" - Me.Label3.Size = New System.Drawing.Size(56, 13) - Me.Label3.TabIndex = 10 - Me.Label3.Text = "Duration" - Me.Label3.TextAlign = System.Drawing.ContentAlignment.MiddleRight - ' - 'txtDuration - ' - Me.txtDuration.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.txtDuration.Location = New System.Drawing.Point(76, 139) - Me.txtDuration.Name = "txtDuration" - Me.txtDuration.Size = New System.Drawing.Size(68, 22) - Me.txtDuration.TabIndex = 11 - ' - 'Label2 - ' - Me.Label2.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.Label2.Location = New System.Drawing.Point(17, 93) - Me.Label2.Name = "Label2" - Me.Label2.Size = New System.Drawing.Size(56, 16) - Me.Label2.TabIndex = 6 - Me.Label2.Text = "Height" - Me.Label2.TextAlign = System.Drawing.ContentAlignment.MiddleRight - ' - 'Label1 - ' - Me.Label1.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.Label1.Location = New System.Drawing.Point(20, 69) - Me.Label1.Name = "Label1" - Me.Label1.Size = New System.Drawing.Size(53, 19) - Me.Label1.TabIndex = 4 - Me.Label1.Text = "Width" - Me.Label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight - ' - 'txtHeight - ' - Me.txtHeight.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.txtHeight.Location = New System.Drawing.Point(76, 91) - Me.txtHeight.Name = "txtHeight" - Me.txtHeight.Size = New System.Drawing.Size(48, 22) - Me.txtHeight.TabIndex = 7 - ' - 'txtWidth - ' - Me.txtWidth.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.txtWidth.Location = New System.Drawing.Point(76, 68) - Me.txtWidth.Name = "txtWidth" - Me.txtWidth.Size = New System.Drawing.Size(48, 22) - Me.txtWidth.TabIndex = 5 - ' - 'GroupBox2 - ' - Me.GroupBox2.Controls.Add(Me.Label9) - Me.GroupBox2.Controls.Add(Me.cbAudioChannels) - Me.GroupBox2.Controls.Add(Me.Label7) - Me.GroupBox2.Controls.Add(Me.cbAudioCodec) - Me.GroupBox2.Controls.Add(Me.Label6) - Me.GroupBox2.Controls.Add(Me.cbAudioLanguage) - Me.GroupBox2.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.GroupBox2.Location = New System.Drawing.Point(21, 7) - Me.GroupBox2.Name = "GroupBox2" - Me.GroupBox2.Size = New System.Drawing.Size(191, 194) - Me.GroupBox2.TabIndex = 5 - Me.GroupBox2.TabStop = False - Me.GroupBox2.Text = "Audio Streams" - Me.GroupBox2.Visible = False - ' - 'Label9 - ' - Me.Label9.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label9.Location = New System.Drawing.Point(3, 75) - Me.Label9.Name = "Label9" - Me.Label9.Size = New System.Drawing.Size(68, 19) - Me.Label9.TabIndex = 4 - Me.Label9.Text = "Channels" - Me.Label9.TextAlign = System.Drawing.ContentAlignment.MiddleRight - ' - 'cbAudioChannels - ' - Me.cbAudioChannels.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList - Me.cbAudioChannels.FormattingEnabled = True - Me.cbAudioChannels.Location = New System.Drawing.Point(75, 73) - Me.cbAudioChannels.Name = "cbAudioChannels" - Me.cbAudioChannels.Size = New System.Drawing.Size(93, 21) - Me.cbAudioChannels.TabIndex = 5 - ' - 'Label7 - ' - Me.Label7.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label7.Location = New System.Drawing.Point(3, 48) - Me.Label7.Name = "Label7" - Me.Label7.Size = New System.Drawing.Size(68, 19) - Me.Label7.TabIndex = 2 - Me.Label7.Text = "Codec" - Me.Label7.TextAlign = System.Drawing.ContentAlignment.MiddleRight - ' - 'cbAudioCodec - ' - Me.cbAudioCodec.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList - Me.cbAudioCodec.FormattingEnabled = True - Me.cbAudioCodec.Location = New System.Drawing.Point(75, 46) - Me.cbAudioCodec.Name = "cbAudioCodec" - Me.cbAudioCodec.Size = New System.Drawing.Size(93, 21) - Me.cbAudioCodec.TabIndex = 3 - ' - 'Label6 - ' - Me.Label6.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label6.Location = New System.Drawing.Point(3, 21) - Me.Label6.Name = "Label6" - Me.Label6.Size = New System.Drawing.Size(68, 19) - Me.Label6.TabIndex = 0 - Me.Label6.Text = "Language" - Me.Label6.TextAlign = System.Drawing.ContentAlignment.MiddleRight - ' - 'cbAudioLanguage - ' - Me.cbAudioLanguage.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend - Me.cbAudioLanguage.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems - Me.cbAudioLanguage.DropDownWidth = 120 - Me.cbAudioLanguage.FormattingEnabled = True - Me.cbAudioLanguage.Location = New System.Drawing.Point(75, 19) - Me.cbAudioLanguage.Name = "cbAudioLanguage" - Me.cbAudioLanguage.Size = New System.Drawing.Size(93, 21) - Me.cbAudioLanguage.Sorted = True - Me.cbAudioLanguage.TabIndex = 1 - ' - 'GroupBox3 - ' - Me.GroupBox3.Controls.Add(Me.rbExternal) - Me.GroupBox3.Controls.Add(Me.rbEmbedded) - Me.GroupBox3.Controls.Add(Me.Label10) - Me.GroupBox3.Controls.Add(Me.cbSubsLanguage) - Me.GroupBox3.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.GroupBox3.Location = New System.Drawing.Point(21, 7) - Me.GroupBox3.Name = "GroupBox3" - Me.GroupBox3.Size = New System.Drawing.Size(191, 194) - Me.GroupBox3.TabIndex = 6 - Me.GroupBox3.TabStop = False - Me.GroupBox3.Text = "Subtitle Streams" - Me.GroupBox3.Visible = False - ' - 'rbExternal - ' - Me.rbExternal.AutoSize = True - Me.rbExternal.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.rbExternal.Location = New System.Drawing.Point(94, 46) - Me.rbExternal.Name = "rbExternal" - Me.rbExternal.Size = New System.Drawing.Size(67, 17) - Me.rbExternal.TabIndex = 24 - Me.rbExternal.TabStop = True - Me.rbExternal.Text = "External" - Me.rbExternal.UseVisualStyleBackColor = True - ' - 'rbEmbedded - ' - Me.rbEmbedded.AutoSize = True - Me.rbEmbedded.Checked = True - Me.rbEmbedded.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.rbEmbedded.Location = New System.Drawing.Point(8, 46) - Me.rbEmbedded.Name = "rbEmbedded" - Me.rbEmbedded.Size = New System.Drawing.Size(81, 17) - Me.rbEmbedded.TabIndex = 23 - Me.rbEmbedded.TabStop = True - Me.rbEmbedded.Text = "Embedded" - Me.rbEmbedded.UseVisualStyleBackColor = True - ' - 'Label10 - ' - Me.Label10.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label10.Location = New System.Drawing.Point(5, 21) - Me.Label10.Name = "Label10" - Me.Label10.Size = New System.Drawing.Size(71, 19) - Me.Label10.TabIndex = 22 - Me.Label10.Text = "Language" - Me.Label10.TextAlign = System.Drawing.ContentAlignment.MiddleRight - ' - 'cbSubsLanguage - ' - Me.cbSubsLanguage.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend - Me.cbSubsLanguage.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems - Me.cbSubsLanguage.DropDownWidth = 120 - Me.cbSubsLanguage.FormattingEnabled = True - Me.cbSubsLanguage.Location = New System.Drawing.Point(79, 21) - Me.cbSubsLanguage.Name = "cbSubsLanguage" - Me.cbSubsLanguage.Size = New System.Drawing.Size(93, 21) - Me.cbSubsLanguage.Sorted = True - Me.cbSubsLanguage.TabIndex = 0 - ' - 'Panel1 - ' - Me.Panel1.BackColor = System.Drawing.Color.White - Me.Panel1.Controls.Add(Me.GroupBox1) - Me.Panel1.Controls.Add(Me.GroupBox2) - Me.Panel1.Controls.Add(Me.GroupBox3) - Me.Panel1.Location = New System.Drawing.Point(3, 3) - Me.Panel1.Name = "Panel1" - Me.Panel1.Size = New System.Drawing.Size(236, 209) - Me.Panel1.TabIndex = 1 - ' - 'dlgFIStreamEditor - ' - Me.AcceptButton = Me.OK_Button - Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi - Me.CancelButton = Me.Cancel_Button - Me.ClientSize = New System.Drawing.Size(241, 247) - Me.Controls.Add(Me.Panel1) - Me.Controls.Add(Me.TableLayoutPanel1) - Me.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog - Me.MaximizeBox = False - Me.MinimizeBox = False - Me.Name = "dlgFIStreamEditor" - Me.ShowInTaskbar = False - Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Stream Editor" - Me.TableLayoutPanel1.ResumeLayout(False) - Me.GroupBox1.ResumeLayout(False) - Me.GroupBox1.PerformLayout() - Me.GroupBox2.ResumeLayout(False) - Me.GroupBox3.ResumeLayout(False) - Me.GroupBox3.PerformLayout() - Me.Panel1.ResumeLayout(False) - Me.ResumeLayout(False) + Me.TableLayoutPanel1 = New System.Windows.Forms.TableLayoutPanel() + Me.OK_Button = New System.Windows.Forms.Button() + Me.Cancel_Button = New System.Windows.Forms.Button() + Me.GroupBox1 = New System.Windows.Forms.GroupBox() + Me.Label12 = New System.Windows.Forms.Label() + Me.txtMultiview = New System.Windows.Forms.TextBox() + Me.Label11 = New System.Windows.Forms.Label() + Me.txtBitrate = New System.Windows.Forms.TextBox() + Me.Label8 = New System.Windows.Forms.Label() + Me.cbVideoLanguage = New System.Windows.Forms.ComboBox() + Me.Label5 = New System.Windows.Forms.Label() + Me.txtARatio = New System.Windows.Forms.TextBox() + Me.rbInterlaced = New System.Windows.Forms.RadioButton() + Me.rbProgressive = New System.Windows.Forms.RadioButton() + Me.Label4 = New System.Windows.Forms.Label() + Me.cbVideoCodec = New System.Windows.Forms.ComboBox() + Me.Label3 = New System.Windows.Forms.Label() + Me.txtDuration = New System.Windows.Forms.TextBox() + Me.Label2 = New System.Windows.Forms.Label() + Me.Label1 = New System.Windows.Forms.Label() + Me.txtHeight = New System.Windows.Forms.TextBox() + Me.txtWidth = New System.Windows.Forms.TextBox() + Me.GroupBox2 = New System.Windows.Forms.GroupBox() + Me.txtABitrate = New System.Windows.Forms.TextBox() + Me.Label13 = New System.Windows.Forms.Label() + Me.Label9 = New System.Windows.Forms.Label() + Me.cbAudioChannels = New System.Windows.Forms.ComboBox() + Me.Label7 = New System.Windows.Forms.Label() + Me.cbAudioCodec = New System.Windows.Forms.ComboBox() + Me.Label6 = New System.Windows.Forms.Label() + Me.cbAudioLanguage = New System.Windows.Forms.ComboBox() + Me.GroupBox3 = New System.Windows.Forms.GroupBox() + Me.rbExternal = New System.Windows.Forms.RadioButton() + Me.rbEmbedded = New System.Windows.Forms.RadioButton() + Me.Label10 = New System.Windows.Forms.Label() + Me.cbSubsLanguage = New System.Windows.Forms.ComboBox() + Me.Panel1 = New System.Windows.Forms.Panel() + Me.txtEncodingSettings = New System.Windows.Forms.TextBox() + Me.lblEncoding = New System.Windows.Forms.Label() + Me.TableLayoutPanel1.SuspendLayout() + Me.GroupBox1.SuspendLayout() + Me.GroupBox2.SuspendLayout() + Me.GroupBox3.SuspendLayout() + Me.Panel1.SuspendLayout() + Me.SuspendLayout() + ' + 'TableLayoutPanel1 + ' + Me.TableLayoutPanel1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.TableLayoutPanel1.ColumnCount = 2 + Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) + Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) + Me.TableLayoutPanel1.Controls.Add(Me.OK_Button, 0, 0) + Me.TableLayoutPanel1.Controls.Add(Me.Cancel_Button, 1, 0) + Me.TableLayoutPanel1.Location = New System.Drawing.Point(88, 372) + Me.TableLayoutPanel1.Name = "TableLayoutPanel1" + Me.TableLayoutPanel1.RowCount = 1 + Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) + Me.TableLayoutPanel1.Size = New System.Drawing.Size(146, 29) + Me.TableLayoutPanel1.TabIndex = 0 + ' + 'OK_Button + ' + Me.OK_Button.Anchor = System.Windows.Forms.AnchorStyles.None + Me.OK_Button.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.OK_Button.Location = New System.Drawing.Point(3, 3) + Me.OK_Button.Name = "OK_Button" + Me.OK_Button.Size = New System.Drawing.Size(67, 23) + Me.OK_Button.TabIndex = 0 + Me.OK_Button.Text = "OK" + ' + 'Cancel_Button + ' + Me.Cancel_Button.Anchor = System.Windows.Forms.AnchorStyles.None + Me.Cancel_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.Cancel_Button.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Cancel_Button.Location = New System.Drawing.Point(76, 3) + Me.Cancel_Button.Name = "Cancel_Button" + Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) + Me.Cancel_Button.TabIndex = 1 + Me.Cancel_Button.Text = "Cancel" + ' + 'GroupBox1 + ' + Me.GroupBox1.Controls.Add(Me.Label12) + Me.GroupBox1.Controls.Add(Me.txtMultiview) + Me.GroupBox1.Controls.Add(Me.Label11) + Me.GroupBox1.Controls.Add(Me.txtBitrate) + Me.GroupBox1.Controls.Add(Me.Label8) + Me.GroupBox1.Controls.Add(Me.cbVideoLanguage) + Me.GroupBox1.Controls.Add(Me.Label5) + Me.GroupBox1.Controls.Add(Me.txtARatio) + Me.GroupBox1.Controls.Add(Me.rbInterlaced) + Me.GroupBox1.Controls.Add(Me.rbProgressive) + Me.GroupBox1.Controls.Add(Me.Label4) + Me.GroupBox1.Controls.Add(Me.cbVideoCodec) + Me.GroupBox1.Controls.Add(Me.Label3) + Me.GroupBox1.Controls.Add(Me.txtDuration) + Me.GroupBox1.Controls.Add(Me.Label2) + Me.GroupBox1.Controls.Add(Me.Label1) + Me.GroupBox1.Controls.Add(Me.txtHeight) + Me.GroupBox1.Controls.Add(Me.txtWidth) + Me.GroupBox1.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.GroupBox1.Location = New System.Drawing.Point(21, 7) + Me.GroupBox1.Name = "GroupBox1" + Me.GroupBox1.Size = New System.Drawing.Size(191, 248) + Me.GroupBox1.TabIndex = 0 + Me.GroupBox1.TabStop = False + Me.GroupBox1.Text = "Video Streams" + Me.GroupBox1.Visible = False + ' + 'Label12 + ' + Me.Label12.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Label12.Location = New System.Drawing.Point(8, 220) + Me.Label12.Name = "Label12" + Me.Label12.Size = New System.Drawing.Size(63, 22) + Me.Label12.TabIndex = 16 + Me.Label12.Text = "MultiView" + Me.Label12.TextAlign = System.Drawing.ContentAlignment.MiddleRight + ' + 'txtMultiview + ' + Me.txtMultiview.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.txtMultiview.Location = New System.Drawing.Point(76, 220) + Me.txtMultiview.Name = "txtMultiview" + Me.txtMultiview.Size = New System.Drawing.Size(48, 22) + Me.txtMultiview.TabIndex = 17 + ' + 'Label11 + ' + Me.Label11.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Label11.Location = New System.Drawing.Point(16, 196) + Me.Label11.Name = "Label11" + Me.Label11.Size = New System.Drawing.Size(56, 13) + Me.Label11.TabIndex = 14 + Me.Label11.Text = "Bitrate" + Me.Label11.TextAlign = System.Drawing.ContentAlignment.MiddleRight + ' + 'txtBitrate + ' + Me.txtBitrate.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.txtBitrate.Location = New System.Drawing.Point(76, 192) + Me.txtBitrate.Name = "txtBitrate" + Me.txtBitrate.Size = New System.Drawing.Size(68, 22) + Me.txtBitrate.TabIndex = 15 + ' + 'Label8 + ' + Me.Label8.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Label8.Location = New System.Drawing.Point(4, 167) + Me.Label8.Name = "Label8" + Me.Label8.Size = New System.Drawing.Size(68, 19) + Me.Label8.TabIndex = 12 + Me.Label8.Text = "Language" + Me.Label8.TextAlign = System.Drawing.ContentAlignment.MiddleRight + ' + 'cbVideoLanguage + ' + Me.cbVideoLanguage.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend + Me.cbVideoLanguage.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems + Me.cbVideoLanguage.DropDownWidth = 120 + Me.cbVideoLanguage.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.cbVideoLanguage.FormattingEnabled = True + Me.cbVideoLanguage.Location = New System.Drawing.Point(76, 165) + Me.cbVideoLanguage.Name = "cbVideoLanguage" + Me.cbVideoLanguage.Size = New System.Drawing.Size(93, 21) + Me.cbVideoLanguage.TabIndex = 13 + ' + 'Label5 + ' + Me.Label5.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Label5.Location = New System.Drawing.Point(5, 116) + Me.Label5.Name = "Label5" + Me.Label5.Size = New System.Drawing.Size(68, 19) + Me.Label5.TabIndex = 8 + Me.Label5.Text = "Aspect Ratio" + Me.Label5.TextAlign = System.Drawing.ContentAlignment.MiddleRight + ' + 'txtARatio + ' + Me.txtARatio.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.txtARatio.Location = New System.Drawing.Point(76, 115) + Me.txtARatio.Name = "txtARatio" + Me.txtARatio.Size = New System.Drawing.Size(48, 22) + Me.txtARatio.TabIndex = 9 + ' + 'rbInterlaced + ' + Me.rbInterlaced.AutoSize = True + Me.rbInterlaced.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.rbInterlaced.Location = New System.Drawing.Point(111, 45) + Me.rbInterlaced.Name = "rbInterlaced" + Me.rbInterlaced.Size = New System.Drawing.Size(76, 17) + Me.rbInterlaced.TabIndex = 3 + Me.rbInterlaced.TabStop = True + Me.rbInterlaced.Text = "Interlaced" + Me.rbInterlaced.UseVisualStyleBackColor = True + ' + 'rbProgressive + ' + Me.rbProgressive.AutoSize = True + Me.rbProgressive.Checked = True + Me.rbProgressive.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.rbProgressive.Location = New System.Drawing.Point(25, 45) + Me.rbProgressive.Name = "rbProgressive" + Me.rbProgressive.Size = New System.Drawing.Size(85, 17) + Me.rbProgressive.TabIndex = 2 + Me.rbProgressive.TabStop = True + Me.rbProgressive.Text = "Progressive" + Me.rbProgressive.UseVisualStyleBackColor = True + ' + 'Label4 + ' + Me.Label4.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Label4.Location = New System.Drawing.Point(22, 21) + Me.Label4.Name = "Label4" + Me.Label4.Size = New System.Drawing.Size(51, 15) + Me.Label4.TabIndex = 0 + Me.Label4.Text = "Codec" + Me.Label4.TextAlign = System.Drawing.ContentAlignment.MiddleRight + ' + 'cbVideoCodec + ' + Me.cbVideoCodec.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cbVideoCodec.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.cbVideoCodec.FormattingEnabled = True + Me.cbVideoCodec.Location = New System.Drawing.Point(76, 19) + Me.cbVideoCodec.Name = "cbVideoCodec" + Me.cbVideoCodec.Size = New System.Drawing.Size(93, 21) + Me.cbVideoCodec.TabIndex = 1 + ' + 'Label3 + ' + Me.Label3.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Label3.Location = New System.Drawing.Point(17, 143) + Me.Label3.Name = "Label3" + Me.Label3.Size = New System.Drawing.Size(56, 13) + Me.Label3.TabIndex = 10 + Me.Label3.Text = "Duration" + Me.Label3.TextAlign = System.Drawing.ContentAlignment.MiddleRight + ' + 'txtDuration + ' + Me.txtDuration.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.txtDuration.Location = New System.Drawing.Point(76, 139) + Me.txtDuration.Name = "txtDuration" + Me.txtDuration.Size = New System.Drawing.Size(68, 22) + Me.txtDuration.TabIndex = 11 + ' + 'Label2 + ' + Me.Label2.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Label2.Location = New System.Drawing.Point(17, 93) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(56, 16) + Me.Label2.TabIndex = 6 + Me.Label2.Text = "Height" + Me.Label2.TextAlign = System.Drawing.ContentAlignment.MiddleRight + ' + 'Label1 + ' + Me.Label1.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Label1.Location = New System.Drawing.Point(20, 69) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(53, 19) + Me.Label1.TabIndex = 4 + Me.Label1.Text = "Width" + Me.Label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight + ' + 'txtHeight + ' + Me.txtHeight.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.txtHeight.Location = New System.Drawing.Point(76, 91) + Me.txtHeight.Name = "txtHeight" + Me.txtHeight.Size = New System.Drawing.Size(48, 22) + Me.txtHeight.TabIndex = 7 + ' + 'txtWidth + ' + Me.txtWidth.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.txtWidth.Location = New System.Drawing.Point(76, 68) + Me.txtWidth.Name = "txtWidth" + Me.txtWidth.Size = New System.Drawing.Size(48, 22) + Me.txtWidth.TabIndex = 5 + ' + 'GroupBox2 + ' + Me.GroupBox2.Controls.Add(Me.txtABitrate) + Me.GroupBox2.Controls.Add(Me.Label13) + Me.GroupBox2.Controls.Add(Me.Label9) + Me.GroupBox2.Controls.Add(Me.cbAudioChannels) + Me.GroupBox2.Controls.Add(Me.Label7) + Me.GroupBox2.Controls.Add(Me.cbAudioCodec) + Me.GroupBox2.Controls.Add(Me.Label6) + Me.GroupBox2.Controls.Add(Me.cbAudioLanguage) + Me.GroupBox2.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.GroupBox2.Location = New System.Drawing.Point(21, 7) + Me.GroupBox2.Name = "GroupBox2" + Me.GroupBox2.Size = New System.Drawing.Size(191, 194) + Me.GroupBox2.TabIndex = 5 + Me.GroupBox2.TabStop = False + Me.GroupBox2.Text = "Audio Streams" + Me.GroupBox2.Visible = False + ' + 'txtABitrate + ' + Me.txtABitrate.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.txtABitrate.Location = New System.Drawing.Point(75, 100) + Me.txtABitrate.Name = "txtABitrate" + Me.txtABitrate.Size = New System.Drawing.Size(93, 22) + Me.txtABitrate.TabIndex = 19 + ' + 'Label13 + ' + Me.Label13.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Label13.Location = New System.Drawing.Point(8, 98) + Me.Label13.Name = "Label13" + Me.Label13.Size = New System.Drawing.Size(63, 22) + Me.Label13.TabIndex = 18 + Me.Label13.Text = "Bitrate" + Me.Label13.TextAlign = System.Drawing.ContentAlignment.MiddleRight + ' + 'Label9 + ' + Me.Label9.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label9.Location = New System.Drawing.Point(3, 75) + Me.Label9.Name = "Label9" + Me.Label9.Size = New System.Drawing.Size(68, 19) + Me.Label9.TabIndex = 4 + Me.Label9.Text = "Channels" + Me.Label9.TextAlign = System.Drawing.ContentAlignment.MiddleRight + ' + 'cbAudioChannels + ' + Me.cbAudioChannels.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cbAudioChannels.FormattingEnabled = True + Me.cbAudioChannels.Location = New System.Drawing.Point(75, 73) + Me.cbAudioChannels.Name = "cbAudioChannels" + Me.cbAudioChannels.Size = New System.Drawing.Size(93, 21) + Me.cbAudioChannels.TabIndex = 5 + ' + 'Label7 + ' + Me.Label7.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label7.Location = New System.Drawing.Point(3, 48) + Me.Label7.Name = "Label7" + Me.Label7.Size = New System.Drawing.Size(68, 19) + Me.Label7.TabIndex = 2 + Me.Label7.Text = "Codec" + Me.Label7.TextAlign = System.Drawing.ContentAlignment.MiddleRight + ' + 'cbAudioCodec + ' + Me.cbAudioCodec.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cbAudioCodec.FormattingEnabled = True + Me.cbAudioCodec.Location = New System.Drawing.Point(75, 46) + Me.cbAudioCodec.Name = "cbAudioCodec" + Me.cbAudioCodec.Size = New System.Drawing.Size(93, 21) + Me.cbAudioCodec.TabIndex = 3 + ' + 'Label6 + ' + Me.Label6.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label6.Location = New System.Drawing.Point(3, 21) + Me.Label6.Name = "Label6" + Me.Label6.Size = New System.Drawing.Size(68, 19) + Me.Label6.TabIndex = 0 + Me.Label6.Text = "Language" + Me.Label6.TextAlign = System.Drawing.ContentAlignment.MiddleRight + ' + 'cbAudioLanguage + ' + Me.cbAudioLanguage.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend + Me.cbAudioLanguage.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems + Me.cbAudioLanguage.DropDownWidth = 120 + Me.cbAudioLanguage.FormattingEnabled = True + Me.cbAudioLanguage.Location = New System.Drawing.Point(75, 19) + Me.cbAudioLanguage.Name = "cbAudioLanguage" + Me.cbAudioLanguage.Size = New System.Drawing.Size(93, 21) + Me.cbAudioLanguage.Sorted = True + Me.cbAudioLanguage.TabIndex = 1 + ' + 'GroupBox3 + ' + Me.GroupBox3.Controls.Add(Me.rbExternal) + Me.GroupBox3.Controls.Add(Me.rbEmbedded) + Me.GroupBox3.Controls.Add(Me.Label10) + Me.GroupBox3.Controls.Add(Me.cbSubsLanguage) + Me.GroupBox3.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.GroupBox3.Location = New System.Drawing.Point(21, 7) + Me.GroupBox3.Name = "GroupBox3" + Me.GroupBox3.Size = New System.Drawing.Size(191, 194) + Me.GroupBox3.TabIndex = 6 + Me.GroupBox3.TabStop = False + Me.GroupBox3.Text = "Subtitle Streams" + Me.GroupBox3.Visible = False + ' + 'rbExternal + ' + Me.rbExternal.AutoSize = True + Me.rbExternal.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.rbExternal.Location = New System.Drawing.Point(94, 46) + Me.rbExternal.Name = "rbExternal" + Me.rbExternal.Size = New System.Drawing.Size(67, 17) + Me.rbExternal.TabIndex = 24 + Me.rbExternal.TabStop = True + Me.rbExternal.Text = "External" + Me.rbExternal.UseVisualStyleBackColor = True + ' + 'rbEmbedded + ' + Me.rbEmbedded.AutoSize = True + Me.rbEmbedded.Checked = True + Me.rbEmbedded.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.rbEmbedded.Location = New System.Drawing.Point(8, 46) + Me.rbEmbedded.Name = "rbEmbedded" + Me.rbEmbedded.Size = New System.Drawing.Size(81, 17) + Me.rbEmbedded.TabIndex = 23 + Me.rbEmbedded.TabStop = True + Me.rbEmbedded.Text = "Embedded" + Me.rbEmbedded.UseVisualStyleBackColor = True + ' + 'Label10 + ' + Me.Label10.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label10.Location = New System.Drawing.Point(5, 21) + Me.Label10.Name = "Label10" + Me.Label10.Size = New System.Drawing.Size(71, 19) + Me.Label10.TabIndex = 22 + Me.Label10.Text = "Language" + Me.Label10.TextAlign = System.Drawing.ContentAlignment.MiddleRight + ' + 'cbSubsLanguage + ' + Me.cbSubsLanguage.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend + Me.cbSubsLanguage.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems + Me.cbSubsLanguage.DropDownWidth = 120 + Me.cbSubsLanguage.FormattingEnabled = True + Me.cbSubsLanguage.Location = New System.Drawing.Point(79, 21) + Me.cbSubsLanguage.Name = "cbSubsLanguage" + Me.cbSubsLanguage.Size = New System.Drawing.Size(93, 21) + Me.cbSubsLanguage.Sorted = True + Me.cbSubsLanguage.TabIndex = 0 + ' + 'Panel1 + ' + Me.Panel1.BackColor = System.Drawing.Color.White + Me.Panel1.Controls.Add(Me.GroupBox1) + Me.Panel1.Controls.Add(Me.GroupBox2) + Me.Panel1.Controls.Add(Me.GroupBox3) + Me.Panel1.Location = New System.Drawing.Point(3, 3) + Me.Panel1.Name = "Panel1" + Me.Panel1.Size = New System.Drawing.Size(236, 264) + Me.Panel1.TabIndex = 1 + ' + 'txtEncodingSettings + ' + Me.txtEncodingSettings.Location = New System.Drawing.Point(3, 289) + Me.txtEncodingSettings.Multiline = True + Me.txtEncodingSettings.Name = "txtEncodingSettings" + Me.txtEncodingSettings.ReadOnly = True + Me.txtEncodingSettings.ScrollBars = System.Windows.Forms.ScrollBars.Vertical + Me.txtEncodingSettings.Size = New System.Drawing.Size(236, 77) + Me.txtEncodingSettings.TabIndex = 2 + ' + 'lblEncoding + ' + Me.lblEncoding.AutoSize = True + Me.lblEncoding.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblEncoding.Location = New System.Drawing.Point(0, 270) + Me.lblEncoding.Name = "lblEncoding" + Me.lblEncoding.Size = New System.Drawing.Size(101, 13) + Me.lblEncoding.TabIndex = 11 + Me.lblEncoding.Text = "Encoding Settings" + Me.lblEncoding.TextAlign = System.Drawing.ContentAlignment.BottomLeft + ' + 'dlgFIStreamEditor + ' + Me.AcceptButton = Me.OK_Button + Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi + Me.CancelButton = Me.Cancel_Button + Me.ClientSize = New System.Drawing.Size(242, 404) + Me.Controls.Add(Me.lblEncoding) + Me.Controls.Add(Me.txtEncodingSettings) + Me.Controls.Add(Me.Panel1) + Me.Controls.Add(Me.TableLayoutPanel1) + Me.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "dlgFIStreamEditor" + Me.ShowInTaskbar = False + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "Stream Editor" + Me.TableLayoutPanel1.ResumeLayout(False) + Me.GroupBox1.ResumeLayout(False) + Me.GroupBox1.PerformLayout() + Me.GroupBox2.ResumeLayout(False) + Me.GroupBox2.PerformLayout() + Me.GroupBox3.ResumeLayout(False) + Me.GroupBox3.PerformLayout() + Me.Panel1.ResumeLayout(False) + Me.ResumeLayout(False) + Me.PerformLayout() - End Sub + End Sub Friend WithEvents TableLayoutPanel1 As System.Windows.Forms.TableLayoutPanel Friend WithEvents OK_Button As System.Windows.Forms.Button Friend WithEvents Cancel_Button As System.Windows.Forms.Button @@ -468,5 +561,13 @@ Partial Class dlgFIStreamEditor Friend WithEvents rbExternal As System.Windows.Forms.RadioButton Friend WithEvents rbEmbedded As System.Windows.Forms.RadioButton Friend WithEvents Panel1 As System.Windows.Forms.Panel + Friend WithEvents Label12 As System.Windows.Forms.Label + Friend WithEvents txtMultiview As System.Windows.Forms.TextBox + Friend WithEvents Label11 As System.Windows.Forms.Label + Friend WithEvents txtBitrate As System.Windows.Forms.TextBox + Friend WithEvents txtABitrate As System.Windows.Forms.TextBox + Friend WithEvents Label13 As System.Windows.Forms.Label + Friend WithEvents txtEncodingSettings As System.Windows.Forms.TextBox + Friend WithEvents lblEncoding As System.Windows.Forms.Label End Class diff --git a/Ember Media Manager/dlgFIStreamEditor.vb b/Ember Media Manager/dlgFIStreamEditor.vb index 72576ae..5956a0a 100644 --- a/Ember Media Manager/dlgFIStreamEditor.vb +++ b/Ember Media Manager/dlgFIStreamEditor.vb @@ -57,6 +57,14 @@ Public Class dlgFIStreamEditor End If txtDuration.Text = movie.StreamDetails.Video(idx).Duration cbVideoLanguage.Text = movie.StreamDetails.Video(idx).LongLanguage + + 'cocotus, 2013/02 Added support for new MediaInfo-fields + 'Display new fields in Streameditor + txtMultiview.Text = movie.StreamDetails.Video(idx).MultiView + txtBitrate.Text = movie.StreamDetails.Video(idx).Bitrate + txtEncodingSettings.Text = movie.StreamDetails.Video(idx).EncodedSettings + 'cocotus end + End If End If If stream_type = Master.eLang.GetString(596, "Audio Stream") Then @@ -69,6 +77,13 @@ Public Class dlgFIStreamEditor cbAudioCodec.Text = movie.StreamDetails.Audio(idx).Codec cbAudioLanguage.Text = movie.StreamDetails.Audio(idx).LongLanguage cbAudioChannels.Text = movie.StreamDetails.Audio(idx).Channels + + + 'cocotus, 2013/02 Added support for new MediaInfo-fields + 'Display new fields in Streameditor + txtABitrate.Text = movie.StreamDetails.Audio(idx).Bitrate + 'cocotus end + End If End If If stream_type = Master.eLang.GetString(597, "Subtitle Stream") Then @@ -94,6 +109,13 @@ Public Class dlgFIStreamEditor stream_v.Height = txtHeight.Text stream_v.Scantype = If(rbProgressive.Checked, Master.eLang.GetString(616, "Progressive"), Master.eLang.GetString(615, "Interlaced")) stream_v.Duration = txtDuration.Text + + 'cocotus, 2013/02 Added support for new MediaInfo-fields + 'Save edits of new fields + stream_v.Bitrate = txtBitrate.Text + stream_v.MultiView = txtMultiview.Text + 'cocotus end + If Not cbVideoLanguage.SelectedItem Is Nothing Then stream_v.LongLanguage = cbVideoLanguage.SelectedItem.ToString If Not cbVideoLanguage.SelectedItem Is Nothing Then stream_v.Language = Localization.ISOLangGetCode3ByLang(cbVideoLanguage.SelectedItem.ToString) Return stream_v @@ -103,6 +125,12 @@ Public Class dlgFIStreamEditor If Not cbAudioLanguage.SelectedItem Is Nothing Then stream_a.LongLanguage = cbAudioLanguage.SelectedItem.ToString If Not cbAudioLanguage.SelectedItem Is Nothing Then stream_a.Language = Localization.ISOLangGetCode3ByLang(cbAudioLanguage.SelectedItem.ToString) If Not cbAudioChannels.SelectedItem Is Nothing Then stream_a.Channels = cbAudioChannels.SelectedItem.ToString + + 'cocotus, 2013/02 Added support for new MediaInfo-fields + 'Save edits of new fields + stream_a.Bitrate = txtABitrate.Text + 'cocotus end + Return stream_a End If If stream_type = Master.eLang.GetString(597, "Subtitle Stream") Then diff --git a/Ember Media Manager/dlgFileInfo.Designer.vb b/Ember Media Manager/dlgFileInfo.Designer.vb index 10042c1..3a91ded 100644 --- a/Ember Media Manager/dlgFileInfo.Designer.vb +++ b/Ember Media Manager/dlgFileInfo.Designer.vb @@ -22,189 +22,200 @@ Partial Class dlgFileInfo 'Do not modify it using the code editor. _ Private Sub InitializeComponent() - Dim ListViewGroup1 As System.Windows.Forms.ListViewGroup = New System.Windows.Forms.ListViewGroup("Video Streams", System.Windows.Forms.HorizontalAlignment.Left) - Dim ListViewGroup2 As System.Windows.Forms.ListViewGroup = New System.Windows.Forms.ListViewGroup("Audio Streams", System.Windows.Forms.HorizontalAlignment.Left) - Dim ListViewGroup3 As System.Windows.Forms.ListViewGroup = New System.Windows.Forms.ListViewGroup("Subtitles Stream", System.Windows.Forms.HorizontalAlignment.Left) - Dim ListViewItem1 As System.Windows.Forms.ListViewItem = New System.Windows.Forms.ListViewItem(New String() {"1", "H264", "Progressive"}, -1) - Dim ListViewItem2 As System.Windows.Forms.ListViewItem = New System.Windows.Forms.ListViewItem(New String() {"1", "AC3", "English"}, -1) - Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(dlgFileInfo)) - Me.Cancel_Button = New System.Windows.Forms.Button() - Me.lvStreams = New System.Windows.Forms.ListView() - Me.ColumnHeader1 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) - Me.ColumnHeader2 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) - Me.ColumnHeader3 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) - Me.ColumnHeader4 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) - Me.ColumnHeader5 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) - Me.ColumnHeader6 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) - Me.ColumnHeader7 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) - Me.ColumnHeader8 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) - Me.btnRemoveSet = New System.Windows.Forms.Button() - Me.btnEditSet = New System.Windows.Forms.Button() - Me.btnNewSet = New System.Windows.Forms.Button() - Me.Label4 = New System.Windows.Forms.Label() - Me.cbStreamType = New System.Windows.Forms.ComboBox() - Me.SuspendLayout() - ' - 'Cancel_Button - ' - Me.Cancel_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel - Me.Cancel_Button.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.Cancel_Button.Location = New System.Drawing.Point(501, 326) - Me.Cancel_Button.Name = "Cancel_Button" - Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) - Me.Cancel_Button.TabIndex = 0 - Me.Cancel_Button.Text = "Close" - ' - 'lvStreams - ' - Me.lvStreams.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ - Or System.Windows.Forms.AnchorStyles.Left) _ - Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.lvStreams.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ColumnHeader1, Me.ColumnHeader2, Me.ColumnHeader3, Me.ColumnHeader4, Me.ColumnHeader5, Me.ColumnHeader6, Me.ColumnHeader7, Me.ColumnHeader8}) - Me.lvStreams.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lvStreams.FullRowSelect = True - ListViewGroup1.Header = "Video Streams" - ListViewGroup1.Name = "VideoStreams" - ListViewGroup2.Header = "Audio Streams" - ListViewGroup2.Name = "AudioStreams" - ListViewGroup3.Header = "Subtitles Stream" - ListViewGroup3.Name = "SubtitlesStream" - Me.lvStreams.Groups.AddRange(New System.Windows.Forms.ListViewGroup() {ListViewGroup1, ListViewGroup2, ListViewGroup3}) - Me.lvStreams.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None - ListViewItem1.Group = ListViewGroup1 - ListViewItem2.Group = ListViewGroup2 - Me.lvStreams.Items.AddRange(New System.Windows.Forms.ListViewItem() {ListViewItem1, ListViewItem2}) - Me.lvStreams.Location = New System.Drawing.Point(4, 7) - Me.lvStreams.MultiSelect = False - Me.lvStreams.Name = "lvStreams" - Me.lvStreams.Size = New System.Drawing.Size(564, 315) - Me.lvStreams.TabIndex = 1 - Me.lvStreams.UseCompatibleStateImageBehavior = False - Me.lvStreams.View = System.Windows.Forms.View.Details - ' - 'ColumnHeader1 - ' - Me.ColumnHeader1.Width = 31 - ' - 'ColumnHeader2 - ' - Me.ColumnHeader2.Width = 77 - ' - 'ColumnHeader3 - ' - Me.ColumnHeader3.Width = 92 - ' - 'ColumnHeader4 - ' - Me.ColumnHeader4.TextAlign = System.Windows.Forms.HorizontalAlignment.Center - Me.ColumnHeader4.Width = 64 - ' - 'ColumnHeader5 - ' - Me.ColumnHeader5.TextAlign = System.Windows.Forms.HorizontalAlignment.Center - Me.ColumnHeader5.Width = 58 - ' - 'ColumnHeader6 - ' - Me.ColumnHeader6.TextAlign = System.Windows.Forms.HorizontalAlignment.Center - Me.ColumnHeader6.Width = 80 - ' - 'ColumnHeader7 - ' - Me.ColumnHeader7.TextAlign = System.Windows.Forms.HorizontalAlignment.Center - Me.ColumnHeader7.Width = 90 - ' - 'ColumnHeader8 - ' - Me.ColumnHeader8.TextAlign = System.Windows.Forms.HorizontalAlignment.Center - Me.ColumnHeader8.Width = 65 - ' - 'btnRemoveSet - ' - Me.btnRemoveSet.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) - Me.btnRemoveSet.Enabled = False - Me.btnRemoveSet.Image = CType(resources.GetObject("btnRemoveSet.Image"), System.Drawing.Image) - Me.btnRemoveSet.Location = New System.Drawing.Point(269, 326) - Me.btnRemoveSet.Name = "btnRemoveSet" - Me.btnRemoveSet.Size = New System.Drawing.Size(23, 23) - Me.btnRemoveSet.TabIndex = 6 - Me.btnRemoveSet.UseVisualStyleBackColor = True - ' - 'btnEditSet - ' - Me.btnEditSet.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) - Me.btnEditSet.Enabled = False - Me.btnEditSet.Image = CType(resources.GetObject("btnEditSet.Image"), System.Drawing.Image) - Me.btnEditSet.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnEditSet.Location = New System.Drawing.Point(240, 326) - Me.btnEditSet.Name = "btnEditSet" - Me.btnEditSet.Size = New System.Drawing.Size(23, 23) - Me.btnEditSet.TabIndex = 5 - Me.btnEditSet.TextAlign = System.Drawing.ContentAlignment.MiddleRight - Me.btnEditSet.UseVisualStyleBackColor = True - ' - 'btnNewSet - ' - Me.btnNewSet.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) - Me.btnNewSet.Enabled = False - Me.btnNewSet.Image = CType(resources.GetObject("btnNewSet.Image"), System.Drawing.Image) - Me.btnNewSet.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnNewSet.Location = New System.Drawing.Point(192, 326) - Me.btnNewSet.Name = "btnNewSet" - Me.btnNewSet.Size = New System.Drawing.Size(23, 23) - Me.btnNewSet.TabIndex = 4 - Me.btnNewSet.TextAlign = System.Drawing.ContentAlignment.MiddleRight - Me.btnNewSet.UseVisualStyleBackColor = True - ' - 'Label4 - ' - Me.Label4.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) - Me.Label4.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label4.Location = New System.Drawing.Point(6, 330) - Me.Label4.Name = "Label4" - Me.Label4.Size = New System.Drawing.Size(78, 15) - Me.Label4.TabIndex = 2 - Me.Label4.Text = "Stream Type" - Me.Label4.TextAlign = System.Drawing.ContentAlignment.MiddleRight - ' - 'cbStreamType - ' - Me.cbStreamType.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) - Me.cbStreamType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList - Me.cbStreamType.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.cbStreamType.FormattingEnabled = True - Me.cbStreamType.Items.AddRange(New Object() {"Video", "Audio", "Subtitle"}) - Me.cbStreamType.Location = New System.Drawing.Point(96, 327) - Me.cbStreamType.Name = "cbStreamType" - Me.cbStreamType.Size = New System.Drawing.Size(93, 21) - Me.cbStreamType.TabIndex = 3 - ' - 'dlgFileInfo - ' - Me.AcceptButton = Me.Cancel_Button - Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi - Me.CancelButton = Me.Cancel_Button - Me.ClientSize = New System.Drawing.Size(576, 354) - Me.Controls.Add(Me.Cancel_Button) - Me.Controls.Add(Me.Label4) - Me.Controls.Add(Me.cbStreamType) - Me.Controls.Add(Me.btnRemoveSet) - Me.Controls.Add(Me.btnEditSet) - Me.Controls.Add(Me.btnNewSet) - Me.Controls.Add(Me.lvStreams) - Me.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog - Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) - Me.MaximizeBox = False - Me.MinimizeBox = False - Me.Name = "dlgFileInfo" - Me.ShowInTaskbar = False - Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Meta Data Editor" - Me.ResumeLayout(False) + Dim ListViewGroup4 As System.Windows.Forms.ListViewGroup = New System.Windows.Forms.ListViewGroup("Video Streams", System.Windows.Forms.HorizontalAlignment.Left) + Dim ListViewGroup5 As System.Windows.Forms.ListViewGroup = New System.Windows.Forms.ListViewGroup("Audio Streams", System.Windows.Forms.HorizontalAlignment.Left) + Dim ListViewGroup6 As System.Windows.Forms.ListViewGroup = New System.Windows.Forms.ListViewGroup("Subtitles Stream", System.Windows.Forms.HorizontalAlignment.Left) + Dim ListViewItem3 As System.Windows.Forms.ListViewItem = New System.Windows.Forms.ListViewItem(New String() {"1", "H264", "Progressive"}, -1) + Dim ListViewItem4 As System.Windows.Forms.ListViewItem = New System.Windows.Forms.ListViewItem(New String() {"1", "AC3", "English"}, -1) + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(dlgFileInfo)) + Me.Cancel_Button = New System.Windows.Forms.Button() + Me.lvStreams = New System.Windows.Forms.ListView() + Me.ColumnHeader1 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ColumnHeader2 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ColumnHeader3 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ColumnHeader4 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ColumnHeader5 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ColumnHeader6 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ColumnHeader7 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ColumnHeader8 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ColumnHeader9 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ColumnHeader10 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.btnRemoveSet = New System.Windows.Forms.Button() + Me.btnEditSet = New System.Windows.Forms.Button() + Me.btnNewSet = New System.Windows.Forms.Button() + Me.Label4 = New System.Windows.Forms.Label() + Me.cbStreamType = New System.Windows.Forms.ComboBox() + Me.SuspendLayout() + ' + 'Cancel_Button + ' + Me.Cancel_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.Cancel_Button.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Cancel_Button.Location = New System.Drawing.Point(660, 325) + Me.Cancel_Button.Name = "Cancel_Button" + Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) + Me.Cancel_Button.TabIndex = 0 + Me.Cancel_Button.Text = "Close" + ' + 'lvStreams + ' + Me.lvStreams.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.lvStreams.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ColumnHeader1, Me.ColumnHeader2, Me.ColumnHeader3, Me.ColumnHeader4, Me.ColumnHeader5, Me.ColumnHeader6, Me.ColumnHeader7, Me.ColumnHeader8, Me.ColumnHeader9, Me.ColumnHeader10}) + Me.lvStreams.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lvStreams.FullRowSelect = True + ListViewGroup4.Header = "Video Streams" + ListViewGroup4.Name = "VideoStreams" + ListViewGroup5.Header = "Audio Streams" + ListViewGroup5.Name = "AudioStreams" + ListViewGroup6.Header = "Subtitles Stream" + ListViewGroup6.Name = "SubtitlesStream" + Me.lvStreams.Groups.AddRange(New System.Windows.Forms.ListViewGroup() {ListViewGroup4, ListViewGroup5, ListViewGroup6}) + Me.lvStreams.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None + ListViewItem3.Group = ListViewGroup4 + ListViewItem4.Group = ListViewGroup5 + Me.lvStreams.Items.AddRange(New System.Windows.Forms.ListViewItem() {ListViewItem3, ListViewItem4}) + Me.lvStreams.Location = New System.Drawing.Point(4, 7) + Me.lvStreams.MultiSelect = False + Me.lvStreams.Name = "lvStreams" + Me.lvStreams.Size = New System.Drawing.Size(723, 315) + Me.lvStreams.TabIndex = 1 + Me.lvStreams.UseCompatibleStateImageBehavior = False + Me.lvStreams.View = System.Windows.Forms.View.Details + ' + 'ColumnHeader1 + ' + Me.ColumnHeader1.Width = 31 + ' + 'ColumnHeader2 + ' + Me.ColumnHeader2.Width = 77 + ' + 'ColumnHeader3 + ' + Me.ColumnHeader3.Width = 92 + ' + 'ColumnHeader4 + ' + Me.ColumnHeader4.TextAlign = System.Windows.Forms.HorizontalAlignment.Center + Me.ColumnHeader4.Width = 64 + ' + 'ColumnHeader5 + ' + Me.ColumnHeader5.TextAlign = System.Windows.Forms.HorizontalAlignment.Center + Me.ColumnHeader5.Width = 58 + ' + 'ColumnHeader6 + ' + Me.ColumnHeader6.TextAlign = System.Windows.Forms.HorizontalAlignment.Center + Me.ColumnHeader6.Width = 80 + ' + 'ColumnHeader7 + ' + Me.ColumnHeader7.TextAlign = System.Windows.Forms.HorizontalAlignment.Center + Me.ColumnHeader7.Width = 90 + ' + 'ColumnHeader8 + ' + Me.ColumnHeader8.TextAlign = System.Windows.Forms.HorizontalAlignment.Center + Me.ColumnHeader8.Width = 65 + ' + 'ColumnHeader9 + ' + Me.ColumnHeader9.TextAlign = System.Windows.Forms.HorizontalAlignment.Center + Me.ColumnHeader9.Width = 78 + ' + 'ColumnHeader10 + ' + Me.ColumnHeader10.Width = 80 + ' + 'btnRemoveSet + ' + Me.btnRemoveSet.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.btnRemoveSet.Enabled = False + Me.btnRemoveSet.Image = CType(resources.GetObject("btnRemoveSet.Image"), System.Drawing.Image) + Me.btnRemoveSet.Location = New System.Drawing.Point(269, 326) + Me.btnRemoveSet.Name = "btnRemoveSet" + Me.btnRemoveSet.Size = New System.Drawing.Size(23, 23) + Me.btnRemoveSet.TabIndex = 6 + Me.btnRemoveSet.UseVisualStyleBackColor = True + ' + 'btnEditSet + ' + Me.btnEditSet.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.btnEditSet.Enabled = False + Me.btnEditSet.Image = CType(resources.GetObject("btnEditSet.Image"), System.Drawing.Image) + Me.btnEditSet.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnEditSet.Location = New System.Drawing.Point(240, 326) + Me.btnEditSet.Name = "btnEditSet" + Me.btnEditSet.Size = New System.Drawing.Size(23, 23) + Me.btnEditSet.TabIndex = 5 + Me.btnEditSet.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnEditSet.UseVisualStyleBackColor = True + ' + 'btnNewSet + ' + Me.btnNewSet.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.btnNewSet.Enabled = False + Me.btnNewSet.Image = CType(resources.GetObject("btnNewSet.Image"), System.Drawing.Image) + Me.btnNewSet.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnNewSet.Location = New System.Drawing.Point(192, 326) + Me.btnNewSet.Name = "btnNewSet" + Me.btnNewSet.Size = New System.Drawing.Size(23, 23) + Me.btnNewSet.TabIndex = 4 + Me.btnNewSet.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnNewSet.UseVisualStyleBackColor = True + ' + 'Label4 + ' + Me.Label4.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.Label4.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label4.Location = New System.Drawing.Point(6, 330) + Me.Label4.Name = "Label4" + Me.Label4.Size = New System.Drawing.Size(78, 15) + Me.Label4.TabIndex = 2 + Me.Label4.Text = "Stream Type" + Me.Label4.TextAlign = System.Drawing.ContentAlignment.MiddleRight + ' + 'cbStreamType + ' + Me.cbStreamType.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.cbStreamType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cbStreamType.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.cbStreamType.FormattingEnabled = True + Me.cbStreamType.Items.AddRange(New Object() {"Video", "Audio", "Subtitle"}) + Me.cbStreamType.Location = New System.Drawing.Point(96, 327) + Me.cbStreamType.Name = "cbStreamType" + Me.cbStreamType.Size = New System.Drawing.Size(93, 21) + Me.cbStreamType.TabIndex = 3 + ' + 'dlgFileInfo + ' + Me.AcceptButton = Me.Cancel_Button + Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi + Me.CancelButton = Me.Cancel_Button + Me.ClientSize = New System.Drawing.Size(735, 354) + Me.Controls.Add(Me.Cancel_Button) + Me.Controls.Add(Me.Label4) + Me.Controls.Add(Me.cbStreamType) + Me.Controls.Add(Me.btnRemoveSet) + Me.Controls.Add(Me.btnEditSet) + Me.Controls.Add(Me.btnNewSet) + Me.Controls.Add(Me.lvStreams) + Me.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "dlgFileInfo" + Me.ShowInTaskbar = False + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "Meta Data Editor" + Me.ResumeLayout(False) - End Sub + End Sub Friend WithEvents Cancel_Button As System.Windows.Forms.Button Friend WithEvents lvStreams As System.Windows.Forms.ListView Friend WithEvents ColumnHeader1 As System.Windows.Forms.ColumnHeader @@ -220,5 +231,7 @@ Partial Class dlgFileInfo Friend WithEvents ColumnHeader6 As System.Windows.Forms.ColumnHeader Friend WithEvents ColumnHeader7 As System.Windows.Forms.ColumnHeader Friend WithEvents ColumnHeader8 As System.Windows.Forms.ColumnHeader + Friend WithEvents ColumnHeader9 As System.Windows.Forms.ColumnHeader + Friend WithEvents ColumnHeader10 As System.Windows.Forms.ColumnHeader End Class diff --git a/Ember Media Manager/dlgFileInfo.resx b/Ember Media Manager/dlgFileInfo.resx index 0b985f0..523849c 100644 --- a/Ember Media Manager/dlgFileInfo.resx +++ b/Ember Media Manager/dlgFileInfo.resx @@ -120,49 +120,48 @@ - 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 - bf5cAAAAAElFTkSuQmCC + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr5AAAK+QG0Yd4ZAAACf0lE + QVQ4T6WPW0jTURzHf6lvtcQwc+aFRTm6ECYRJpbSQ/rgQ/gQhkYICgVq6sMisBCEIoUyCwokwpcoSYjw + IcIuoJWWOufcppvOXTDnnFu6Tf3f9u38TbeR9VIHPufy4/f9nHMIwH+xPkkB+1+wEUJemu9pVusvqzQL + 3XVKb+9tWh7uJP/Y8yhB0PlHQryHAub+pNHKTIOxIgH26+pv7q6rhwPjXRQ0dUcEIf7HVoQAW7/Hantf + vB2sLcBkhQIz1YkYr9rrczytyXW9bo4IILh+w00QvSSaS1sXjVdgs07AfLcSulIFBksS8KVMXT9cnRsl + WLVEMUXg50i0aap4Qx5ESyF4UxHcczoMtN3Ap0vHTEGHNjkkLEYJOEcE0UfSbFs+N5bNCdZycCMHIEyc + g+CshVn/zDc7qT0kBF20tuSMEkj+X0CkkH8whdMdtwrWi+C0avCGQgj2GojzjUDwwwVhbZn44AJJq94o + QdBEWLFQaHlIwetP9wnT58FeAF6fD8FSBmGmHNJSNzNwrF8GtLriiQgkj4mkRQvx9r5iztTEbj0BbjSb + Pb0EnC4LovPaS3b9eq/H7aCmmxpKS1VGBFhxkehjf3IONPGWj+Cn2sEbi7H2eQckwykd4Enw+33U2nKL + lMl7aHOEBU8etdOUcZTevep8E7S8B3yzwFI/YCtyB9w9B++03CNVRtpGjCh2g7AgJiaGGjUN2xvq6+Y6 + Ox7Cax1yj3wdeNDR8Xhf1tEj6yF5bAa3COTzrvideWfPFEzn5uTcT09NPclqSoaKoWbNmYz9DBUjjZHI + iAsL5INcjNtGu1lAIYdjiNJZLWMDeS8HUxhJjHhGbFjw74B+AsJFYFrRskcjAAAAAElFTkSuQmCC - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK6QAA - CukB/XXO0wAAAZlJREFUOE9j+P//PwMlGKfmJRcdPRec1+9ecF6ve+lFJx9cluA0YO5Zg8fTT4n9n35K - 9P+cs/ovSTZg2intmxOOi/8HYSD7PskGTDphcK37qPR/EJ50Qv8uQQOmnnIynnbKLWDqKVf/aac9/fuP - mz5pOyT3H4T7jpm8mH7Ky3/qKTcgdg+YftrdFGYgOAw6jxhJtB7SBCrWgWLd/y0HNf43HVABYxC77ZAu - XL71kNb/9sM6UiC9YAPq9uoo1+xV/4+JNYBiMIwqX71HTQVuQPUuU5nibdr/i7ZqwXHxNq3/yBhFbqv2 - //Id+rJwA0CMgk1Gwbkb9UqBuASEs9frvspar/MfhIHst7kbgOIgvFG3FKg2dOmpuWDX40wHicv0riUs - 0/0PwXp3CMYCuoLgWXo3g2bp/odgPdLTgUu//gPnft3/IOzSr/cUpwuYGRgYgFgAiBWBWAOIdRkZGNS1 - EpU6jMo1T4CwdpJSJ0gMJAdVA1IrAA8DIIcZiNmBmBOIuYGYF2guIyKxMDCCxKByIDUgtcx4A5HYLA4A - MV5njhcGgLEAAAAASUVORK5CYII= + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAArpAAAK6QH9dc7TAAABnElE + QVQ4T6XSS0sCYRQG4BEXERG46UI3yCRNnZmw/AGZFUagJO2rZSFEJi6MFtFNhAxBBSlokW7NQIlIKLvJ + FyJtBKEoqKCCfsPpO2pD1repFs9wfM87x81wAPAvzBDt3QxYdvOibzcv+KI3pjFWBzFDtJPrfQyTRgiT + BtjOia+sDmKGKER0xa2rJkB0vmd1EDNEgWxvwXfRCiiQFe9YHSQNQWLqC5FhW5AMWUPXFqv/yvi0lukA + tHnZ/xImo9YgGaZGbOHrEWPVAe+5oXk100PL+goeVk41sHyiKsEZs8/9akYL62f6FunAUlrftZhWw0+a + L6p3nuNulXTAc2Rsc6Z0MJ/USpypalW7pA7ch2K7dADNHRjsjoTgohbQbJx/m4nrAdH53bFPc5TgXbQ7 + ESU7pfekA99NxYTCZIyHMuGW1UHMENkjQnE8wkOZ8PvvwOwXHwb9PCCzX3hmdRAn50oUVCeloXgZx6m1 + U8oNg7sni3TTSi9muKt0sKsoHcAH/SGnaqhaqo6qp3dl0r8AJ8OsssMOduXSgb8D7gMxXmeO6KXG2gAA + AABJRU5ErkJggg== diff --git a/Ember Media Manager/dlgFileInfo.vb b/Ember Media Manager/dlgFileInfo.vb index 5f52afa..773fd3d 100644 --- a/Ember Media Manager/dlgFileInfo.vb +++ b/Ember Media Manager/dlgFileInfo.vb @@ -231,6 +231,13 @@ Public Class dlgFileInfo i.SubItems.Add(Master.eLang.GetString(608, "Aspect")) i.SubItems.Add(Master.eLang.GetString(609, "Duration")) i.SubItems.Add(Master.eLang.GetString(610, "Language")) + + 'cocotus, 2013/02 Added support for new MediaInfo-fields + i.SubItems.Add("Bitrate") + i.SubItems.Add("MultiView") + i.SubItems.Add("EncodingSettings") + 'cocotus end + g.Items.Add(i) lvStreams.Items.Add(i) @@ -248,6 +255,13 @@ Public Class dlgFileInfo i.SubItems.Add(v.Aspect) i.SubItems.Add(v.Duration) i.SubItems.Add(v.LongLanguage) + + 'cocotus, 2013/02 Added support for new MediaInfo-fields + i.SubItems.Add(v.Bitrate) + i.SubItems.Add(v.MultiView) + i.SubItems.Add(v.EncodedSettings) + 'cocotus end + g.Items.Add(i) lvStreams.Items.Add(i) End If @@ -267,6 +281,11 @@ Public Class dlgFileInfo i.SubItems.Add(Master.eLang.GetString(604, "Codec")) i.SubItems.Add(Master.eLang.GetString(610, "Language")) i.SubItems.Add(Master.eLang.GetString(611, "Channels")) + + 'cocotus, 2013/02 Added support for new MediaInfo-fields + i.SubItems.Add("Bitrate") + 'cocotus end + g.Items.Add(i) lvStreams.Items.Add(i) Dim a As MediaInfo.Audio @@ -279,6 +298,11 @@ Public Class dlgFileInfo i.SubItems.Add(a.Codec) i.SubItems.Add(a.LongLanguage) i.SubItems.Add(a.Channels) + + 'cocotus, 2013/02 Added support for new MediaInfo-fields + i.SubItems.Add(a.Bitrate) + 'cocotus end + g.Items.Add(i) lvStreams.Items.Add(i) End If @@ -312,6 +336,8 @@ Public Class dlgFileInfo End If Next End If + + Catch ex As Exception Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") End Try diff --git a/Ember Media Manager/dlgImgManual.vb b/Ember Media Manager/dlgImgManual.vb index 948cdd2..7330bc8 100644 --- a/Ember Media Manager/dlgImgManual.vb +++ b/Ember Media Manager/dlgImgManual.vb @@ -33,100 +33,92 @@ Public Class dlgImgManual #Region "Methods" - Public Overloads Function ShowDialog(ByVal _DLType As Enums.ImageType) As Windows.Forms.DialogResult - '// - ' Overload to pass data - '\\ - - Me.DLType = _DLType - - Return MyBase.ShowDialog() - End Function - - Private Sub btnPreview_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPreview.Click - Try - tImage.FromWeb(Me.txtURL.Text) - - If Not IsNothing(tImage.Image) Then - - Using dImgView As New dlgImgView - dImgView.ShowDialog(tImage.Image) - End Using - - End If - Catch ex As Exception - Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") - End Try - End Sub - - Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel_Button.Click - Me.DialogResult = System.Windows.Forms.DialogResult.Cancel - Me.Close() - End Sub - - Private Sub dlgImgManual_Disposed(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Disposed - tImage.Dispose() - tImage = Nothing - End Sub - - Private Sub dlgImgManual_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load - Me.SetUp() - - If Me.DLType = Enums.ImageType.Fanart Then - Me.Text = Master.eLang.GetString(182, "Manual Fanart Entry") - Else - Me.Text = Master.eLang.GetString(183, "Manual Poster Entry") - End If - End Sub - - Private Sub dlgImgManual_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown - Me.Activate() - End Sub - - Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click - Dim tmpPathPlus As String = String.Empty - - Try - If DLType = Enums.ImageType.Fanart Then - tmpPathPlus = Path.Combine(Master.TempPath, "fanart.jpg") - ElseIf DLType = Enums.ImageType.ASPoster Then - tmpPathPlus = Path.Combine(Master.TempPath, "asposter.jpg") - Else - tmpPathPlus = Path.Combine(Master.TempPath, "poster.jpg") - End If - - If IsNothing(tImage.Image) Then - tImage.FromWeb(Me.txtURL.Text) - End If - - If Not IsNothing(tImage.Image) Then - tImage.Save(tmpPathPlus) - End If - Catch ex As Exception - Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") - End Try - - Me.DialogResult = System.Windows.Forms.DialogResult.OK - Me.Close() - End Sub - - Private Sub SetUp() - Me.OK_Button.Text = Master.eLang.GetString(179, "OK") - Me.Cancel_Button.Text = Master.eLang.GetString(167, "Cancel") - Me.btnPreview.Text = Master.eLang.GetString(180, "Preview") - Me.Label1.Text = Master.eLang.GetString(181, "Enter URL to Image:") - End Sub - - Private Sub txtURL_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtURL.TextChanged - If Not String.IsNullOrEmpty(Me.txtURL.Text) AndAlso StringUtils.isValidURL(Me.txtURL.Text) Then - Me.btnPreview.Enabled = True - Me.OK_Button.Enabled = True - Else - Me.btnPreview.Enabled = False - Me.OK_Button.Enabled = False - End If - End Sub - -#End Region 'Methods + Public Overloads Function ShowDialog(ByVal _DLType As Enums.ImageType) As Images + '// + ' Overload to pass data and return image + '\\ + + Me.DLType = _DLType + + If MyBase.ShowDialog() = Windows.Forms.DialogResult.OK Then + Return tImage + Else + Return Nothing + End If + End Function + + Private Sub btnPreview_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPreview.Click + Try + tImage.FromWeb(Me.txtURL.Text) + + If Not IsNothing(tImage.Image) Then + + Using dImgView As New dlgImgView + dImgView.ShowDialog(tImage.Image) + End Using + + End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel_Button.Click + Me.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.Close() + End Sub + + Private Sub dlgImgManual_Disposed(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Disposed + 'tImage.Dispose() cannot dispose as is used by calling entity + tImage = Nothing + End Sub + + Private Sub dlgImgManual_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load + Me.SetUp() + + If Me.DLType = Enums.ImageType.Fanart Then + Me.Text = Master.eLang.GetString(182, "Manual Fanart Entry") + Else + Me.Text = Master.eLang.GetString(183, "Manual Poster Entry") + End If + End Sub + + Private Sub dlgImgManual_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown + Me.Activate() + End Sub + + Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click + + Try + + If IsNothing(tImage.Image) Then + tImage.FromWeb(Me.txtURL.Text) + End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + + Me.DialogResult = System.Windows.Forms.DialogResult.OK + Me.Close() + End Sub + + Private Sub SetUp() + Me.OK_Button.Text = Master.eLang.GetString(179, "OK") + Me.Cancel_Button.Text = Master.eLang.GetString(167, "Cancel") + Me.btnPreview.Text = Master.eLang.GetString(180, "Preview") + Me.Label1.Text = Master.eLang.GetString(181, "Enter URL to Image:") + End Sub + + Private Sub txtURL_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtURL.TextChanged + If Not String.IsNullOrEmpty(Me.txtURL.Text) AndAlso StringUtils.isValidURL(Me.txtURL.Text) Then + Me.btnPreview.Enabled = True + Me.OK_Button.Enabled = True + Else + Me.btnPreview.Enabled = False + Me.OK_Button.Enabled = False + End If + End Sub + +#End Region 'Methods End Class \ No newline at end of file diff --git a/Ember Media Manager/dlgSettings.Designer.vb b/Ember Media Manager/dlgSettings.Designer.vb index 0564425..0d0cb8b 100644 --- a/Ember Media Manager/dlgSettings.Designer.vb +++ b/Ember Media Manager/dlgSettings.Designer.vb @@ -28,7340 +28,7476 @@ Partial Class dlgSettings 'Do not modify it using the code editor. _ Private Sub InitializeComponent() - Me.components = New System.ComponentModel.Container() - Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(dlgSettings)) - Me.GroupBox4 = New System.Windows.Forms.GroupBox() - Me.chkShowGenresText = New System.Windows.Forms.CheckBox() - Me.chkSourceFromFolder = New System.Windows.Forms.CheckBox() - Me.chkNoDisplayFanart = New System.Windows.Forms.CheckBox() - Me.chkInfoPanelAnim = New System.Windows.Forms.CheckBox() - Me.chkNoDisplayPoster = New System.Windows.Forms.CheckBox() - Me.chkShowDims = New System.Windows.Forms.CheckBox() - Me.chkUpdates = New System.Windows.Forms.CheckBox() - Me.chkOverwriteNfo = New System.Windows.Forms.CheckBox() - Me.Label5 = New System.Windows.Forms.Label() - Me.chkLogErrors = New System.Windows.Forms.CheckBox() - Me.GroupBox29 = New System.Windows.Forms.GroupBox() - Me.cbEpTheme = New System.Windows.Forms.ComboBox() - Me.Label3 = New System.Windows.Forms.Label() - Me.cbTVShowTheme = New System.Windows.Forms.ComboBox() - Me.Label1 = New System.Windows.Forms.Label() - Me.cbMovieTheme = New System.Windows.Forms.ComboBox() - Me.Label35 = New System.Windows.Forms.Label() - Me.Label32 = New System.Windows.Forms.Label() - Me.cbIntLang = New System.Windows.Forms.ComboBox() - Me.GroupBox3 = New System.Windows.Forms.GroupBox() - Me.tcCleaner = New System.Windows.Forms.TabControl() - Me.tpStandard = New System.Windows.Forms.TabPage() - Me.chkCleanFolderJPG = New System.Windows.Forms.CheckBox() - Me.chkCleanExtrathumbs = New System.Windows.Forms.CheckBox() - Me.chkCleanMovieTBN = New System.Windows.Forms.CheckBox() - Me.chkCleanMovieNameJPG = New System.Windows.Forms.CheckBox() - Me.chkCleanMovieTBNb = New System.Windows.Forms.CheckBox() - Me.chkCleanMovieJPG = New System.Windows.Forms.CheckBox() - Me.chkCleanFanartJPG = New System.Windows.Forms.CheckBox() - Me.chkCleanPosterJPG = New System.Windows.Forms.CheckBox() - Me.chkCleanMovieFanartJPG = New System.Windows.Forms.CheckBox() - Me.chkCleanPosterTBN = New System.Windows.Forms.CheckBox() - Me.chkCleanMovieNFO = New System.Windows.Forms.CheckBox() - Me.chkCleanDotFanartJPG = New System.Windows.Forms.CheckBox() - Me.chkCleanMovieNFOb = New System.Windows.Forms.CheckBox() - Me.tpExpert = New System.Windows.Forms.TabPage() - Me.chkWhitelistVideo = New System.Windows.Forms.CheckBox() - Me.Label27 = New System.Windows.Forms.Label() - Me.btnRemoveWhitelist = New System.Windows.Forms.Button() - Me.btnAddWhitelist = New System.Windows.Forms.Button() - Me.txtWhitelist = New System.Windows.Forms.TextBox() - Me.lstWhitelist = New System.Windows.Forms.ListBox() - Me.Label25 = New System.Windows.Forms.Label() - Me.GroupBox12 = New System.Windows.Forms.GroupBox() - Me.chkClickScrape = New System.Windows.Forms.CheckBox() - Me.chkAskCheckboxScrape = New System.Windows.Forms.CheckBox() - Me.chkMarkNew = New System.Windows.Forms.CheckBox() - Me.lbGenre = New System.Windows.Forms.CheckedListBox() - Me.GroupBox2 = New System.Windows.Forms.GroupBox() - Me.txtCheckTitleTol = New System.Windows.Forms.TextBox() - Me.Label30 = New System.Windows.Forms.Label() - Me.chkCheckTitles = New System.Windows.Forms.CheckBox() - Me.GroupBox25 = New System.Windows.Forms.GroupBox() - Me.btnRemoveToken = New System.Windows.Forms.Button() - Me.btnAddToken = New System.Windows.Forms.Button() - Me.txtSortToken = New System.Windows.Forms.TextBox() - Me.lstSortTokens = New System.Windows.Forms.ListBox() - Me.chkDisplayYear = New System.Windows.Forms.CheckBox() - Me.chkMovieExtraCol = New System.Windows.Forms.CheckBox() - Me.chkMovieSubCol = New System.Windows.Forms.CheckBox() - Me.chkMovieTrailerCol = New System.Windows.Forms.CheckBox() - Me.chkMovieInfoCol = New System.Windows.Forms.CheckBox() - Me.chkMovieFanartCol = New System.Windows.Forms.CheckBox() - Me.chkMoviePosterCol = New System.Windows.Forms.CheckBox() - Me.GroupBox8 = New System.Windows.Forms.GroupBox() - Me.btnMovieFrodo = New System.Windows.Forms.Button() - Me.chkMovieNameMultiOnly = New System.Windows.Forms.CheckBox() - Me.GroupBox21 = New System.Windows.Forms.GroupBox() - Me.rbBracketTrailer = New System.Windows.Forms.RadioButton() - Me.rbDashTrailer = New System.Windows.Forms.RadioButton() - Me.GroupBox7 = New System.Windows.Forms.GroupBox() - Me.chkMovieNameNFO = New System.Windows.Forms.CheckBox() - Me.chkMovieNFO = New System.Windows.Forms.CheckBox() - Me.GroupBox6 = New System.Windows.Forms.GroupBox() - Me.chkMovieNameDotFanartJPG = New System.Windows.Forms.CheckBox() - Me.chkMovieNameFanartJPG = New System.Windows.Forms.CheckBox() - Me.chkFanartJPG = New System.Windows.Forms.CheckBox() - Me.GroupBox5 = New System.Windows.Forms.GroupBox() - Me.chkMovieNameDashPosterJPG = New System.Windows.Forms.CheckBox() - Me.chkFolderJPG = New System.Windows.Forms.CheckBox() - Me.chkPosterJPG = New System.Windows.Forms.CheckBox() - Me.chkPosterTBN = New System.Windows.Forms.CheckBox() - Me.chkMovieNameJPG = New System.Windows.Forms.CheckBox() - Me.chkMovieJPG = New System.Windows.Forms.CheckBox() - Me.chkMovieNameTBN = New System.Windows.Forms.CheckBox() - Me.chkMovieTBN = New System.Windows.Forms.CheckBox() - Me.lvMovies = New System.Windows.Forms.ListView() - Me.colID = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) - Me.colName = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) - Me.colPath = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) - Me.colRecur = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) - Me.colFolder = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) - Me.colSingle = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) - Me.btnMovieRem = New System.Windows.Forms.Button() - Me.btnMovieAddFolder = New System.Windows.Forms.Button() - Me.GroupBox14 = New System.Windows.Forms.GroupBox() - Me.chkPosterOnly = New System.Windows.Forms.CheckBox() - Me.txtPosterWidth = New System.Windows.Forms.TextBox() - Me.txtPosterHeight = New System.Windows.Forms.TextBox() - Me.lblPosterQual = New System.Windows.Forms.Label() - Me.tbPosterQual = New System.Windows.Forms.TrackBar() - Me.Label24 = New System.Windows.Forms.Label() - Me.Label11 = New System.Windows.Forms.Label() - Me.Label12 = New System.Windows.Forms.Label() - Me.chkResizePoster = New System.Windows.Forms.CheckBox() - Me.lblPosterSize = New System.Windows.Forms.Label() - Me.cbPosterSize = New System.Windows.Forms.ComboBox() - Me.chkOverwritePoster = New System.Windows.Forms.CheckBox() - Me.GroupBox13 = New System.Windows.Forms.GroupBox() - Me.txtFanartWidth = New System.Windows.Forms.TextBox() - Me.txtFanartHeight = New System.Windows.Forms.TextBox() - Me.chkFanartOnly = New System.Windows.Forms.CheckBox() - Me.lblFanartQual = New System.Windows.Forms.Label() - Me.tbFanartQual = New System.Windows.Forms.TrackBar() - Me.Label26 = New System.Windows.Forms.Label() - Me.Label9 = New System.Windows.Forms.Label() - Me.Label10 = New System.Windows.Forms.Label() - Me.chkResizeFanart = New System.Windows.Forms.CheckBox() - Me.cbFanartSize = New System.Windows.Forms.ComboBox() - Me.lblFanartSize = New System.Windows.Forms.Label() - Me.chkOverwriteFanart = New System.Windows.Forms.CheckBox() - Me.GroupBox9 = New System.Windows.Forms.GroupBox() - Me.chkActorCache = New System.Windows.Forms.CheckBox() - Me.chkNoSaveImagesToNfo = New System.Windows.Forms.CheckBox() - Me.chkSingleScrapeImages = New System.Windows.Forms.CheckBox() - Me.GroupBox17 = New System.Windows.Forms.GroupBox() - Me.chkUseImgCacheUpdaters = New System.Windows.Forms.CheckBox() - Me.chkPersistImgCache = New System.Windows.Forms.CheckBox() - Me.chkUseImgCache = New System.Windows.Forms.CheckBox() - Me.chkUseETasFA = New System.Windows.Forms.CheckBox() - Me.chkNoSpoilers = New System.Windows.Forms.CheckBox() - Me.Label15 = New System.Windows.Forms.Label() - Me.txtAutoThumbs = New System.Windows.Forms.TextBox() - Me.chkAutoThumbs = New System.Windows.Forms.CheckBox() - Me.btnOK = New System.Windows.Forms.Button() - Me.btnApply = New System.Windows.Forms.Button() - Me.btnCancel = New System.Windows.Forms.Button() - Me.pnlTop = New System.Windows.Forms.Panel() - Me.Label2 = New System.Windows.Forms.Label() - Me.Label4 = New System.Windows.Forms.Label() - Me.PictureBox1 = New System.Windows.Forms.PictureBox() - Me.ilSettings = New System.Windows.Forms.ImageList(Me.components) - Me.tvSettings = New System.Windows.Forms.TreeView() - Me.pnlGeneral = New System.Windows.Forms.Panel() - Me.gbInterface = New System.Windows.Forms.GroupBox() - Me.pnlXBMCCom = New System.Windows.Forms.Panel() - Me.gbProxy = New System.Windows.Forms.GroupBox() - Me.gbCreds = New System.Windows.Forms.GroupBox() - Me.txtProxyDomain = New System.Windows.Forms.TextBox() - Me.lblProxyDomain = New System.Windows.Forms.Label() - Me.txtProxyPassword = New System.Windows.Forms.TextBox() - Me.txtProxyUsername = New System.Windows.Forms.TextBox() - Me.lblProxyUN = New System.Windows.Forms.Label() - Me.lblProxyPW = New System.Windows.Forms.Label() - Me.chkEnableCredentials = New System.Windows.Forms.CheckBox() - Me.lblProxyPort = New System.Windows.Forms.Label() - Me.lblProxyURI = New System.Windows.Forms.Label() - Me.txtProxyPort = New System.Windows.Forms.TextBox() - Me.txtProxyURI = New System.Windows.Forms.TextBox() - Me.chkEnableProxy = New System.Windows.Forms.CheckBox() - Me.pnlMovies = New System.Windows.Forms.Panel() - Me.gbGenreFilter = New System.Windows.Forms.GroupBox() - Me.gbFilters = New System.Windows.Forms.GroupBox() - Me.btnResetMovieFilters = New System.Windows.Forms.Button() - Me.btnDown = New System.Windows.Forms.Button() - Me.btnUp = New System.Windows.Forms.Button() - Me.chkProperCase = New System.Windows.Forms.CheckBox() - Me.btnRemoveFilter = New System.Windows.Forms.Button() - Me.btnAddFilter = New System.Windows.Forms.Button() - Me.txtFilter = New System.Windows.Forms.TextBox() - Me.lstFilters = New System.Windows.Forms.ListBox() - Me.GroupBox27 = New System.Windows.Forms.GroupBox() - Me.chkMissingExtra = New System.Windows.Forms.CheckBox() - Me.chkMissingSubs = New System.Windows.Forms.CheckBox() - Me.chkMissingTrailer = New System.Windows.Forms.CheckBox() - Me.chkMissingNFO = New System.Windows.Forms.CheckBox() - Me.chkMissingFanart = New System.Windows.Forms.CheckBox() - Me.chkMissingPoster = New System.Windows.Forms.CheckBox() - Me.GroupBox16 = New System.Windows.Forms.GroupBox() - Me.chkAutoBD = New System.Windows.Forms.CheckBox() - Me.btnBrowse = New System.Windows.Forms.Button() - Me.txtBDPath = New System.Windows.Forms.TextBox() - Me.lblCurrent = New System.Windows.Forms.Label() - Me.pnlCurrent = New System.Windows.Forms.Panel() - Me.Panel1 = New System.Windows.Forms.Panel() - Me.pbCurrent = New System.Windows.Forms.PictureBox() - Me.pnlExtensions = New System.Windows.Forms.Panel() - Me.GroupBox22 = New System.Windows.Forms.GroupBox() - Me.btnRemoveNoStack = New System.Windows.Forms.Button() - Me.btnAddNoStack = New System.Windows.Forms.Button() - Me.txtNoStack = New System.Windows.Forms.TextBox() - Me.lstNoStack = New System.Windows.Forms.ListBox() - Me.GroupBox18 = New System.Windows.Forms.GroupBox() - Me.btnResetValidExts = New System.Windows.Forms.Button() - Me.btnRemMovieExt = New System.Windows.Forms.Button() - Me.btnAddMovieExt = New System.Windows.Forms.Button() - Me.txtMovieExt = New System.Windows.Forms.TextBox() - Me.lstMovieExts = New System.Windows.Forms.ListBox() - Me.pnlSources = New System.Windows.Forms.Panel() - Me.btnEditSource = New System.Windows.Forms.Button() - Me.GroupBox19 = New System.Windows.Forms.GroupBox() - Me.chkScanOrderModify = New System.Windows.Forms.CheckBox() - Me.chkSortBeforeScan = New System.Windows.Forms.CheckBox() - Me.chkIgnoreLastScan = New System.Windows.Forms.CheckBox() - Me.chkCleanDB = New System.Windows.Forms.CheckBox() - Me.chkAutoDetectVTS = New System.Windows.Forms.CheckBox() - Me.chkSkipStackedSizeCheck = New System.Windows.Forms.CheckBox() - Me.Label21 = New System.Windows.Forms.Label() - Me.txtSkipLessThan = New System.Windows.Forms.TextBox() - Me.Label20 = New System.Windows.Forms.Label() - Me.pnlImages = New System.Windows.Forms.Panel() - Me.GroupBox15 = New System.Windows.Forms.GroupBox() - Me.cbTrailerQuality = New System.Windows.Forms.ComboBox() - Me.lblPreferredQuality = New System.Windows.Forms.Label() - Me.chkDeleteAllTrailers = New System.Windows.Forms.CheckBox() - Me.chkOverwriteTrailer = New System.Windows.Forms.CheckBox() - Me.chkNoDLTrailer = New System.Windows.Forms.CheckBox() - Me.chkSingleScrapeTrailer = New System.Windows.Forms.CheckBox() - Me.chkUpdaterTrailer = New System.Windows.Forms.CheckBox() - Me.chkDownloadTrailer = New System.Windows.Forms.CheckBox() - Me.GroupBox23 = New System.Windows.Forms.GroupBox() - Me.chkAutoETSize = New System.Windows.Forms.CheckBox() - Me.cbAutoETSize = New System.Windows.Forms.ComboBox() - Me.GroupBox24 = New System.Windows.Forms.GroupBox() - Me.txtETWidth = New System.Windows.Forms.TextBox() - Me.txtETHeight = New System.Windows.Forms.TextBox() - Me.chkETPadding = New System.Windows.Forms.CheckBox() - Me.Label28 = New System.Windows.Forms.Label() - Me.Label29 = New System.Windows.Forms.Label() - Me.rbETCustom = New System.Windows.Forms.RadioButton() - Me.rbETNative = New System.Windows.Forms.RadioButton() - Me.fbdBrowse = New System.Windows.Forms.FolderBrowserDialog() - Me.ToolTips = New System.Windows.Forms.ToolTip(Me.components) - Me.pnlTVSources = New System.Windows.Forms.Panel() - Me.TabControl2 = New System.Windows.Forms.TabControl() - Me.TabPage3 = New System.Windows.Forms.TabPage() - Me.btnTVShowFrodo = New System.Windows.Forms.Button() - Me.lvTVSources = New System.Windows.Forms.ListView() - Me.ColumnHeader1 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) - Me.ColumnHeader2 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) - Me.ColumnHeader3 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) - Me.gbMiscTVSourceOpts = New System.Windows.Forms.GroupBox() - Me.Label6 = New System.Windows.Forms.Label() - Me.txtTVSkipLessThan = New System.Windows.Forms.TextBox() - Me.Label7 = New System.Windows.Forms.Label() - Me.chkTVScanOrderModify = New System.Windows.Forms.CheckBox() - Me.chkTVIgnoreLastScan = New System.Windows.Forms.CheckBox() - Me.chkTVCleanDB = New System.Windows.Forms.CheckBox() - Me.btnAddTVSource = New System.Windows.Forms.Button() - Me.btnEditTVSource = New System.Windows.Forms.Button() - Me.btnRemTVSource = New System.Windows.Forms.Button() - Me.gbTVNaming = New System.Windows.Forms.GroupBox() - Me.gbShowBanner = New System.Windows.Forms.GroupBox() - Me.chkShowBannerJPG = New System.Windows.Forms.CheckBox() - Me.gbAllSeasonPoster = New System.Windows.Forms.GroupBox() - Me.chkSeasonAllPosterJPG = New System.Windows.Forms.CheckBox() - Me.chkSeasonAllJPG = New System.Windows.Forms.CheckBox() - Me.chkSeasonAllTBN = New System.Windows.Forms.CheckBox() - Me.gbEpisodeFanart = New System.Windows.Forms.GroupBox() - Me.chkEpisodeDotFanart = New System.Windows.Forms.CheckBox() - Me.chkEpisodeDashFanart = New System.Windows.Forms.CheckBox() - Me.gbEpisodePosters = New System.Windows.Forms.GroupBox() - Me.chkEpisodeDashThumbJPG = New System.Windows.Forms.CheckBox() - Me.chkEpisodeJPG = New System.Windows.Forms.CheckBox() - Me.chkEpisodeTBN = New System.Windows.Forms.CheckBox() - Me.gbSeasonFanart = New System.Windows.Forms.GroupBox() - Me.chkSeasonXXDashFanartJPG = New System.Windows.Forms.CheckBox() - Me.chkSeasonDotFanart = New System.Windows.Forms.CheckBox() - Me.chkSeasonDashFanart = New System.Windows.Forms.CheckBox() - Me.chkSeasonFanartJPG = New System.Windows.Forms.CheckBox() - Me.gbSeasonPosters = New System.Windows.Forms.GroupBox() - Me.chkSeasonXXDashPosterJPG = New System.Windows.Forms.CheckBox() - Me.chkSeasonFolderJPG = New System.Windows.Forms.CheckBox() - Me.chkSeasonNameJPG = New System.Windows.Forms.CheckBox() - Me.chkSeasonNameTBN = New System.Windows.Forms.CheckBox() - Me.chkSeasonPosterJPG = New System.Windows.Forms.CheckBox() - Me.chkSeasonPosterTBN = New System.Windows.Forms.CheckBox() - Me.chkSeasonXTBN = New System.Windows.Forms.CheckBox() - Me.chkSeasonXXTBN = New System.Windows.Forms.CheckBox() - Me.gbShowFanart = New System.Windows.Forms.GroupBox() - Me.chkShowDotFanart = New System.Windows.Forms.CheckBox() - Me.chkShowDashFanart = New System.Windows.Forms.CheckBox() - Me.chkShowFanartJPG = New System.Windows.Forms.CheckBox() - Me.gbShowPosters = New System.Windows.Forms.GroupBox() - Me.chkShowJPG = New System.Windows.Forms.CheckBox() - Me.chkShowTBN = New System.Windows.Forms.CheckBox() - Me.chkShowPosterJPG = New System.Windows.Forms.CheckBox() - Me.chkShowPosterTBN = New System.Windows.Forms.CheckBox() - Me.chkShowFolderJPG = New System.Windows.Forms.CheckBox() - Me.TabPage4 = New System.Windows.Forms.TabPage() - Me.btnGetTVProfiles = New System.Windows.Forms.Button() - Me.btnRegexDown = New System.Windows.Forms.Button() - Me.btnRegexUp = New System.Windows.Forms.Button() - Me.btnResetShowRegex = New System.Windows.Forms.Button() - Me.gbShowRegex = New System.Windows.Forms.GroupBox() - Me.btnClearRegex = New System.Windows.Forms.Button() - Me.lblSeasonMatch = New System.Windows.Forms.Label() - Me.btnAddShowRegex = New System.Windows.Forms.Button() - Me.txtSeasonRegex = New System.Windows.Forms.TextBox() - Me.lblEpisodeRetrieve = New System.Windows.Forms.Label() - Me.cboSeasonRetrieve = New System.Windows.Forms.ComboBox() - Me.lblSeasonRetrieve = New System.Windows.Forms.Label() - Me.txtEpRegex = New System.Windows.Forms.TextBox() - Me.lblEpisodeMatch = New System.Windows.Forms.Label() - Me.cboEpRetrieve = New System.Windows.Forms.ComboBox() - Me.btnEditShowRegex = New System.Windows.Forms.Button() - Me.btnRemoveShowRegex = New System.Windows.Forms.Button() - Me.lvShowRegex = New System.Windows.Forms.ListView() - Me.colRegID = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) - Me.colSeason = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) - Me.colSeasonApply = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) - Me.colEpisode = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) - Me.colEpApply = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) - Me.pnlShows = New System.Windows.Forms.Panel() - Me.gbTVListOptions = New System.Windows.Forms.GroupBox() - Me.chkDisplayMissingEpisodes = New System.Windows.Forms.CheckBox() - Me.gbEpisodeListOptions = New System.Windows.Forms.GroupBox() - Me.chkEpisodeNfoCol = New System.Windows.Forms.CheckBox() - Me.chkEpisodeFanartCol = New System.Windows.Forms.CheckBox() - Me.chkEpisodePosterCol = New System.Windows.Forms.CheckBox() - Me.gbSeasonListOptions = New System.Windows.Forms.GroupBox() - Me.chkSeasonFanartCol = New System.Windows.Forms.CheckBox() - Me.chkSeasonPosterCol = New System.Windows.Forms.CheckBox() - Me.gbShowListOptions = New System.Windows.Forms.GroupBox() - Me.chkShowNfoCol = New System.Windows.Forms.CheckBox() - Me.chkShowFanartCol = New System.Windows.Forms.CheckBox() - Me.chkShowPosterCol = New System.Windows.Forms.CheckBox() - Me.gbTVMisc = New System.Windows.Forms.GroupBox() - Me.chkMarkNewShows = New System.Windows.Forms.CheckBox() - Me.chkMarkNewEpisodes = New System.Windows.Forms.CheckBox() - Me.chkDisplayAllSeason = New System.Windows.Forms.CheckBox() - Me.lblRatingRegion = New System.Windows.Forms.Label() - Me.cbRatingRegion = New System.Windows.Forms.ComboBox() - Me.gbEpFilter = New System.Windows.Forms.GroupBox() - Me.btnResetEpFilter = New System.Windows.Forms.Button() - Me.chkNoFilterEpisode = New System.Windows.Forms.CheckBox() - Me.btnEpFilterDown = New System.Windows.Forms.Button() - Me.btnEpFilterUp = New System.Windows.Forms.Button() - Me.chkEpProperCase = New System.Windows.Forms.CheckBox() - Me.btnRemoveEpFilter = New System.Windows.Forms.Button() - Me.btnAddEpFilter = New System.Windows.Forms.Button() - Me.txtEpFilter = New System.Windows.Forms.TextBox() - Me.lstEpFilters = New System.Windows.Forms.ListBox() - Me.gbShowFilter = New System.Windows.Forms.GroupBox() - Me.btnResetShowFilters = New System.Windows.Forms.Button() - Me.btnShowFilterDown = New System.Windows.Forms.Button() - Me.btnShowFilterUp = New System.Windows.Forms.Button() - Me.chkShowProperCase = New System.Windows.Forms.CheckBox() - Me.btnRemoveShowFilter = New System.Windows.Forms.Button() - Me.btnAddShowFilter = New System.Windows.Forms.Button() - Me.txtShowFilter = New System.Windows.Forms.TextBox() - Me.lstShowFilters = New System.Windows.Forms.ListBox() - Me.pnlTVImages = New System.Windows.Forms.Panel() - Me.TabControl3 = New System.Windows.Forms.TabControl() - Me.TabPage5 = New System.Windows.Forms.TabPage() - Me.gbAllSPosterOpts = New System.Windows.Forms.GroupBox() - Me.rbAllSPoster = New System.Windows.Forms.RadioButton() - Me.rbAllSBanner = New System.Windows.Forms.RadioButton() - Me.txtAllSPosterWidth = New System.Windows.Forms.TextBox() - Me.txtAllSPosterHeight = New System.Windows.Forms.TextBox() - Me.lblAllSPosterQual = New System.Windows.Forms.Label() - Me.tbAllSPosterQual = New System.Windows.Forms.TrackBar() - Me.lblAllSPosterQ = New System.Windows.Forms.Label() - Me.lblAllSPosterWidth = New System.Windows.Forms.Label() - Me.lblAllSPosterHeight = New System.Windows.Forms.Label() - Me.chkResizeAllSPoster = New System.Windows.Forms.CheckBox() - Me.lblAllSPosterSize = New System.Windows.Forms.Label() - Me.cbAllSPosterSize = New System.Windows.Forms.ComboBox() - Me.chkOverwriteAllSPoster = New System.Windows.Forms.CheckBox() - Me.gbShowPosterOpts = New System.Windows.Forms.GroupBox() - Me.rbPoster = New System.Windows.Forms.RadioButton() - Me.rbBanner = New System.Windows.Forms.RadioButton() - Me.txtShowPosterWidth = New System.Windows.Forms.TextBox() - Me.txtShowPosterHeight = New System.Windows.Forms.TextBox() - Me.lblShowPosterQual = New System.Windows.Forms.Label() - Me.tbShowPosterQual = New System.Windows.Forms.TrackBar() - Me.lblShowPosterQ = New System.Windows.Forms.Label() - Me.lblShowPosterWidth = New System.Windows.Forms.Label() - Me.lblShowPosterHeight = New System.Windows.Forms.Label() - Me.chkResizeShowPoster = New System.Windows.Forms.CheckBox() - Me.lblShowPosterSize = New System.Windows.Forms.Label() - Me.cbShowPosterSize = New System.Windows.Forms.ComboBox() - Me.chkOverwriteShowPoster = New System.Windows.Forms.CheckBox() - Me.gbShowFanartOpts = New System.Windows.Forms.GroupBox() - Me.txtShowFanartWidth = New System.Windows.Forms.TextBox() - Me.txtShowFanartHeight = New System.Windows.Forms.TextBox() - Me.lblShowFanartQual = New System.Windows.Forms.Label() - Me.tbShowFanartQual = New System.Windows.Forms.TrackBar() - Me.lblShowFanartQ = New System.Windows.Forms.Label() - Me.lblShowFanartWidth = New System.Windows.Forms.Label() - Me.lblShowFanartHeight = New System.Windows.Forms.Label() - Me.chkResizeShowFanart = New System.Windows.Forms.CheckBox() - Me.cbShowFanartSize = New System.Windows.Forms.ComboBox() - Me.lblShowFanartSize = New System.Windows.Forms.Label() - Me.chkOverwriteShowFanart = New System.Windows.Forms.CheckBox() - Me.TabPage6 = New System.Windows.Forms.TabPage() - Me.gbSeaPosterOpts = New System.Windows.Forms.GroupBox() - Me.txtSeaPosterWidth = New System.Windows.Forms.TextBox() - Me.txtSeaPosterHeight = New System.Windows.Forms.TextBox() - Me.lblSeaPosterQual = New System.Windows.Forms.Label() - Me.tbSeaPosterQual = New System.Windows.Forms.TrackBar() - Me.lblSeaPosterQ = New System.Windows.Forms.Label() - Me.lblSeaPosterWidth = New System.Windows.Forms.Label() - Me.lblSeaPosterHeight = New System.Windows.Forms.Label() - Me.chkSeaResizePoster = New System.Windows.Forms.CheckBox() - Me.lblSeaPosterSize = New System.Windows.Forms.Label() - Me.cbSeaPosterSize = New System.Windows.Forms.ComboBox() - Me.chkSeaOverwritePoster = New System.Windows.Forms.CheckBox() - Me.gbSeaFanartOpts = New System.Windows.Forms.GroupBox() - Me.txtSeaFanartWidth = New System.Windows.Forms.TextBox() - Me.txtSeaFanartHeight = New System.Windows.Forms.TextBox() - Me.lblSeaFanartQual = New System.Windows.Forms.Label() - Me.tbSeaFanartQual = New System.Windows.Forms.TrackBar() - Me.lblSeaFanartQ = New System.Windows.Forms.Label() - Me.lblSeaFanartWidth = New System.Windows.Forms.Label() - Me.lblSeaFanartHeight = New System.Windows.Forms.Label() - Me.chkSeaResizeFanart = New System.Windows.Forms.CheckBox() - Me.cbSeaFanartSize = New System.Windows.Forms.ComboBox() - Me.lblSeaFanartSize = New System.Windows.Forms.Label() - Me.chkSeaOverwriteFanart = New System.Windows.Forms.CheckBox() - Me.TabPage7 = New System.Windows.Forms.TabPage() - Me.gbEpPosterOpts = New System.Windows.Forms.GroupBox() - Me.txtEpPosterWidth = New System.Windows.Forms.TextBox() - Me.txtEpPosterHeight = New System.Windows.Forms.TextBox() - Me.lblEpPosterQual = New System.Windows.Forms.Label() - Me.tbEpPosterQual = New System.Windows.Forms.TrackBar() - Me.lblEpPosterQ = New System.Windows.Forms.Label() - Me.lblEpPosterWidth = New System.Windows.Forms.Label() - Me.lblEpPosterHeight = New System.Windows.Forms.Label() - Me.chkResizeEpPoster = New System.Windows.Forms.CheckBox() - Me.chkOverwriteEpPoster = New System.Windows.Forms.CheckBox() - Me.gbEpFanartOpts = New System.Windows.Forms.GroupBox() - Me.txtEpFanartWidth = New System.Windows.Forms.TextBox() - Me.txtEpFanartHeight = New System.Windows.Forms.TextBox() - Me.lblEpFanartQual = New System.Windows.Forms.Label() - Me.tbEpFanartQual = New System.Windows.Forms.TrackBar() - Me.lblEpFanartQ = New System.Windows.Forms.Label() - Me.lblEpFanartWidth = New System.Windows.Forms.Label() - Me.lblEpFanartHeight = New System.Windows.Forms.Label() - Me.chkResizeEpFanart = New System.Windows.Forms.CheckBox() - Me.cbEpFanartSize = New System.Windows.Forms.ComboBox() - Me.lblEpFanartSize = New System.Windows.Forms.Label() - Me.chkOverwriteEpFanart = New System.Windows.Forms.CheckBox() - Me.TabPage8 = New System.Windows.Forms.TabPage() - Me.chkGetEnglishImages = New System.Windows.Forms.CheckBox() - Me.chkOnlyTVImagesLanguage = New System.Windows.Forms.CheckBox() - Me.pnlTVScraper = New System.Windows.Forms.Panel() - Me.GroupBox32 = New System.Windows.Forms.GroupBox() - Me.GroupBox35 = New System.Windows.Forms.GroupBox() - Me.chkScraperShowRating = New System.Windows.Forms.CheckBox() - Me.chkScraperShowActors = New System.Windows.Forms.CheckBox() - Me.chkScraperShowStudio = New System.Windows.Forms.CheckBox() - Me.chkScraperShowPremiered = New System.Windows.Forms.CheckBox() - Me.chkScraperShowEGU = New System.Windows.Forms.CheckBox() - Me.chkScraperShowMPAA = New System.Windows.Forms.CheckBox() - Me.chkScraperShowPlot = New System.Windows.Forms.CheckBox() - Me.chkScraperShowGenre = New System.Windows.Forms.CheckBox() - Me.chkScraperShowTitle = New System.Windows.Forms.CheckBox() - Me.GroupBox34 = New System.Windows.Forms.GroupBox() - Me.chkScraperEpActors = New System.Windows.Forms.CheckBox() - Me.chkScraperEpCredits = New System.Windows.Forms.CheckBox() - Me.chkScraperEpDirector = New System.Windows.Forms.CheckBox() - Me.chkScraperEpPlot = New System.Windows.Forms.CheckBox() - Me.chkScraperEpRating = New System.Windows.Forms.CheckBox() - Me.chkScraperEpAired = New System.Windows.Forms.CheckBox() - Me.chkScraperEpTitle = New System.Windows.Forms.CheckBox() - Me.chkScraperEpEpisode = New System.Windows.Forms.CheckBox() - Me.chkScraperEpSeason = New System.Windows.Forms.CheckBox() - Me.GroupBox33 = New System.Windows.Forms.GroupBox() - Me.gbEpLocks = New System.Windows.Forms.GroupBox() - Me.chkEpLockTitle = New System.Windows.Forms.CheckBox() - Me.chkEpLockRating = New System.Windows.Forms.CheckBox() - Me.chkEpLockPlot = New System.Windows.Forms.CheckBox() - Me.gbShowLocks = New System.Windows.Forms.GroupBox() - Me.chkShowLockPlot = New System.Windows.Forms.CheckBox() - Me.chkShowLockGenre = New System.Windows.Forms.CheckBox() - Me.chkShowLockStudio = New System.Windows.Forms.CheckBox() - Me.chkShowLockRating = New System.Windows.Forms.CheckBox() - Me.chkShowLockTitle = New System.Windows.Forms.CheckBox() - Me.GroupBox31 = New System.Windows.Forms.GroupBox() - Me.gbTVMIDefaults = New System.Windows.Forms.GroupBox() - Me.lstTVMetaData = New System.Windows.Forms.ListBox() - Me.txtTVDefFIExt = New System.Windows.Forms.TextBox() - Me.Label49 = New System.Windows.Forms.Label() - Me.btnRemoveTVMetaDataFT = New System.Windows.Forms.Button() - Me.btnEditTVMetaDataFT = New System.Windows.Forms.Button() - Me.btnNewTVMetaDataFT = New System.Windows.Forms.Button() - Me.cboTVMetaDataOverlay = New System.Windows.Forms.ComboBox() - Me.Label50 = New System.Windows.Forms.Label() - Me.chkTVScanMetaData = New System.Windows.Forms.CheckBox() - Me.gbTVScraperOptions = New System.Windows.Forms.GroupBox() - Me.lblOrdering = New System.Windows.Forms.Label() - Me.cbOrdering = New System.Windows.Forms.ComboBox() - Me.lblTVUpdate = New System.Windows.Forms.Label() - Me.cboTVUpdate = New System.Windows.Forms.ComboBox() - Me.lblAPIKey = New System.Windows.Forms.Label() - Me.lblTVDBMirror = New System.Windows.Forms.Label() - Me.txtAPIKey = New System.Windows.Forms.TextBox() - Me.txtTVDBMirror = New System.Windows.Forms.TextBox() - Me.gbLanguage = New System.Windows.Forms.GroupBox() - Me.lblTVLanguagePreferred = New System.Windows.Forms.Label() - Me.btnTVLanguageFetch = New System.Windows.Forms.Button() - Me.cbTVLanguage = New System.Windows.Forms.ComboBox() - Me.gbOptions = New System.Windows.Forms.GroupBox() - Me.chkCertification = New System.Windows.Forms.CheckBox() - Me.chkTop250 = New System.Windows.Forms.CheckBox() - Me.chkCountry = New System.Windows.Forms.CheckBox() - Me.txtGenreLimit = New System.Windows.Forms.TextBox() - Me.lblLimit2 = New System.Windows.Forms.Label() - Me.txtActorLimit = New System.Windows.Forms.TextBox() - Me.lblLimit = New System.Windows.Forms.Label() - Me.chkCrew = New System.Windows.Forms.CheckBox() - Me.chkMusicBy = New System.Windows.Forms.CheckBox() - Me.chkProducers = New System.Windows.Forms.CheckBox() - Me.chkWriters = New System.Windows.Forms.CheckBox() - Me.chkStudio = New System.Windows.Forms.CheckBox() - Me.chkRuntime = New System.Windows.Forms.CheckBox() - Me.chkPlot = New System.Windows.Forms.CheckBox() - Me.chkOutline = New System.Windows.Forms.CheckBox() - Me.chkGenre = New System.Windows.Forms.CheckBox() - Me.chkDirector = New System.Windows.Forms.CheckBox() - Me.chkTagline = New System.Windows.Forms.CheckBox() - Me.chkCast = New System.Windows.Forms.CheckBox() - Me.chkVotes = New System.Windows.Forms.CheckBox() - Me.chkTrailer = New System.Windows.Forms.CheckBox() - Me.chkRating = New System.Windows.Forms.CheckBox() - Me.chkRelease = New System.Windows.Forms.CheckBox() - Me.chkMPAA = New System.Windows.Forms.CheckBox() - Me.chkYear = New System.Windows.Forms.CheckBox() - Me.chkTitle = New System.Windows.Forms.CheckBox() - Me.GroupBox26 = New System.Windows.Forms.GroupBox() - Me.GroupBox28 = New System.Windows.Forms.GroupBox() - Me.lstMetaData = New System.Windows.Forms.ListBox() - Me.txtDefFIExt = New System.Windows.Forms.TextBox() - Me.Label34 = New System.Windows.Forms.Label() - Me.btnRemoveMetaDataFT = New System.Windows.Forms.Button() - Me.btnEditMetaDataFT = New System.Windows.Forms.Button() - Me.btnNewMetaDataFT = New System.Windows.Forms.Button() - Me.chkIFOScan = New System.Windows.Forms.CheckBox() - Me.cbLanguages = New System.Windows.Forms.ComboBox() - Me.Label31 = New System.Windows.Forms.Label() - Me.gbRTFormat = New System.Windows.Forms.GroupBox() - Me.Label51 = New System.Windows.Forms.Label() - Me.txtRuntimeFormat = New System.Windows.Forms.TextBox() - Me.chkUseMIDuration = New System.Windows.Forms.CheckBox() - Me.chkScanMediaInfo = New System.Windows.Forms.CheckBox() - Me.GroupBox10 = New System.Windows.Forms.GroupBox() - Me.chkLockOutline = New System.Windows.Forms.CheckBox() - Me.chkLockPlot = New System.Windows.Forms.CheckBox() - Me.chkLockTrailer = New System.Windows.Forms.CheckBox() - Me.chkLockGenre = New System.Windows.Forms.CheckBox() - Me.chkLockRealStudio = New System.Windows.Forms.CheckBox() - Me.chkLockRating = New System.Windows.Forms.CheckBox() - Me.chkLockTagline = New System.Windows.Forms.CheckBox() - Me.chkLockTitle = New System.Windows.Forms.CheckBox() - Me.GroupBox1 = New System.Windows.Forms.GroupBox() - Me.chkOnlyValueForCert = New System.Windows.Forms.CheckBox() - Me.cbForce = New System.Windows.Forms.ComboBox() - Me.chkForceTitle = New System.Windows.Forms.CheckBox() - Me.chkOutlineForPlot = New System.Windows.Forms.CheckBox() - Me.chkCastWithImg = New System.Windows.Forms.CheckBox() - Me.chkUseCertForMPAA = New System.Windows.Forms.CheckBox() - Me.chkFullCast = New System.Windows.Forms.CheckBox() - Me.chkFullCrew = New System.Windows.Forms.CheckBox() - Me.cbCert = New System.Windows.Forms.ComboBox() - Me.chkCert = New System.Windows.Forms.CheckBox() - Me.pnlScraper = New System.Windows.Forms.Panel() - Me.ToolStrip1 = New System.Windows.Forms.ToolStrip() - Me.pnlMain = New System.Windows.Forms.Panel() - Me.gbHelp = New System.Windows.Forms.GroupBox() - Me.PictureBox2 = New System.Windows.Forms.PictureBox() - Me.lblHelp = New System.Windows.Forms.Label() - Me.Panel2 = New System.Windows.Forms.Panel() - Me.GroupBox4.SuspendLayout() - Me.GroupBox29.SuspendLayout() - Me.GroupBox3.SuspendLayout() - Me.tcCleaner.SuspendLayout() - Me.tpStandard.SuspendLayout() - Me.tpExpert.SuspendLayout() - Me.GroupBox12.SuspendLayout() - Me.GroupBox2.SuspendLayout() - Me.GroupBox25.SuspendLayout() - Me.GroupBox8.SuspendLayout() - Me.GroupBox21.SuspendLayout() - Me.GroupBox7.SuspendLayout() - Me.GroupBox6.SuspendLayout() - Me.GroupBox5.SuspendLayout() - Me.GroupBox14.SuspendLayout() - CType(Me.tbPosterQual, System.ComponentModel.ISupportInitialize).BeginInit() - Me.GroupBox13.SuspendLayout() - CType(Me.tbFanartQual, System.ComponentModel.ISupportInitialize).BeginInit() - Me.GroupBox9.SuspendLayout() - Me.GroupBox17.SuspendLayout() - Me.pnlTop.SuspendLayout() - CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() - Me.pnlGeneral.SuspendLayout() - Me.gbInterface.SuspendLayout() - Me.pnlXBMCCom.SuspendLayout() - Me.gbProxy.SuspendLayout() - Me.gbCreds.SuspendLayout() - Me.pnlMovies.SuspendLayout() - Me.gbGenreFilter.SuspendLayout() - Me.gbFilters.SuspendLayout() - Me.GroupBox27.SuspendLayout() - Me.GroupBox16.SuspendLayout() - Me.Panel1.SuspendLayout() - CType(Me.pbCurrent, System.ComponentModel.ISupportInitialize).BeginInit() - Me.pnlExtensions.SuspendLayout() - Me.GroupBox22.SuspendLayout() - Me.GroupBox18.SuspendLayout() - Me.pnlSources.SuspendLayout() - Me.GroupBox19.SuspendLayout() - Me.pnlImages.SuspendLayout() - Me.GroupBox15.SuspendLayout() - Me.GroupBox23.SuspendLayout() - Me.GroupBox24.SuspendLayout() - Me.pnlTVSources.SuspendLayout() - Me.TabControl2.SuspendLayout() - Me.TabPage3.SuspendLayout() - Me.gbMiscTVSourceOpts.SuspendLayout() - Me.gbTVNaming.SuspendLayout() - Me.gbShowBanner.SuspendLayout() - Me.gbAllSeasonPoster.SuspendLayout() - Me.gbEpisodeFanart.SuspendLayout() - Me.gbEpisodePosters.SuspendLayout() - Me.gbSeasonFanart.SuspendLayout() - Me.gbSeasonPosters.SuspendLayout() - Me.gbShowFanart.SuspendLayout() - Me.gbShowPosters.SuspendLayout() - Me.TabPage4.SuspendLayout() - Me.gbShowRegex.SuspendLayout() - Me.pnlShows.SuspendLayout() - Me.gbTVListOptions.SuspendLayout() - Me.gbEpisodeListOptions.SuspendLayout() - Me.gbSeasonListOptions.SuspendLayout() - Me.gbShowListOptions.SuspendLayout() - Me.gbTVMisc.SuspendLayout() - Me.gbEpFilter.SuspendLayout() - Me.gbShowFilter.SuspendLayout() - Me.pnlTVImages.SuspendLayout() - Me.TabControl3.SuspendLayout() - Me.TabPage5.SuspendLayout() - Me.gbAllSPosterOpts.SuspendLayout() - CType(Me.tbAllSPosterQual, System.ComponentModel.ISupportInitialize).BeginInit() - Me.gbShowPosterOpts.SuspendLayout() - CType(Me.tbShowPosterQual, System.ComponentModel.ISupportInitialize).BeginInit() - Me.gbShowFanartOpts.SuspendLayout() - CType(Me.tbShowFanartQual, System.ComponentModel.ISupportInitialize).BeginInit() - Me.TabPage6.SuspendLayout() - Me.gbSeaPosterOpts.SuspendLayout() - CType(Me.tbSeaPosterQual, System.ComponentModel.ISupportInitialize).BeginInit() - Me.gbSeaFanartOpts.SuspendLayout() - CType(Me.tbSeaFanartQual, System.ComponentModel.ISupportInitialize).BeginInit() - Me.TabPage7.SuspendLayout() - Me.gbEpPosterOpts.SuspendLayout() - CType(Me.tbEpPosterQual, System.ComponentModel.ISupportInitialize).BeginInit() - Me.gbEpFanartOpts.SuspendLayout() - CType(Me.tbEpFanartQual, System.ComponentModel.ISupportInitialize).BeginInit() - Me.TabPage8.SuspendLayout() - Me.pnlTVScraper.SuspendLayout() - Me.GroupBox32.SuspendLayout() - Me.GroupBox35.SuspendLayout() - Me.GroupBox34.SuspendLayout() - Me.GroupBox33.SuspendLayout() - Me.gbEpLocks.SuspendLayout() - Me.gbShowLocks.SuspendLayout() - Me.GroupBox31.SuspendLayout() - Me.gbTVMIDefaults.SuspendLayout() - Me.gbTVScraperOptions.SuspendLayout() - Me.gbLanguage.SuspendLayout() - Me.gbOptions.SuspendLayout() - Me.GroupBox26.SuspendLayout() - Me.GroupBox28.SuspendLayout() - Me.gbRTFormat.SuspendLayout() - Me.GroupBox10.SuspendLayout() - Me.GroupBox1.SuspendLayout() - Me.pnlScraper.SuspendLayout() - Me.gbHelp.SuspendLayout() - CType(Me.PictureBox2, System.ComponentModel.ISupportInitialize).BeginInit() - Me.Panel2.SuspendLayout() - Me.SuspendLayout() - ' - 'GroupBox4 - ' - Me.GroupBox4.Controls.Add(Me.chkShowGenresText) - Me.GroupBox4.Controls.Add(Me.chkSourceFromFolder) - Me.GroupBox4.Controls.Add(Me.chkNoDisplayFanart) - Me.GroupBox4.Controls.Add(Me.chkInfoPanelAnim) - Me.GroupBox4.Controls.Add(Me.chkNoDisplayPoster) - Me.GroupBox4.Controls.Add(Me.chkShowDims) - Me.GroupBox4.Controls.Add(Me.chkUpdates) - Me.GroupBox4.Controls.Add(Me.chkOverwriteNfo) - Me.GroupBox4.Controls.Add(Me.Label5) - Me.GroupBox4.Controls.Add(Me.chkLogErrors) - Me.GroupBox4.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.GroupBox4.Location = New System.Drawing.Point(210, 3) - Me.GroupBox4.Name = "GroupBox4" - Me.GroupBox4.Size = New System.Drawing.Size(900, 657) - Me.GroupBox4.TabIndex = 1 - Me.GroupBox4.TabStop = False - Me.GroupBox4.Text = "Miscellaneous" - ' - 'chkShowGenresText - ' - Me.chkShowGenresText.AutoSize = True - Me.chkShowGenresText.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkShowGenresText.Location = New System.Drawing.Point(10, 178) - Me.chkShowGenresText.Name = "chkShowGenresText" - Me.chkShowGenresText.Size = New System.Drawing.Size(166, 17) - Me.chkShowGenresText.TabIndex = 9 - Me.chkShowGenresText.Text = "Allways Display Genres Text" - Me.chkShowGenresText.UseVisualStyleBackColor = True - ' - 'chkSourceFromFolder - ' - Me.chkSourceFromFolder.AutoSize = True - Me.chkSourceFromFolder.CheckAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkSourceFromFolder.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkSourceFromFolder.Location = New System.Drawing.Point(10, 110) - Me.chkSourceFromFolder.Name = "chkSourceFromFolder" - Me.chkSourceFromFolder.Size = New System.Drawing.Size(243, 17) - Me.chkSourceFromFolder.TabIndex = 5 - Me.chkSourceFromFolder.Text = "Include Folder Name in Source Type Check" - Me.chkSourceFromFolder.UseVisualStyleBackColor = True - ' - 'chkNoDisplayFanart - ' - Me.chkNoDisplayFanart.AutoSize = True - Me.chkNoDisplayFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkNoDisplayFanart.Location = New System.Drawing.Point(10, 144) - Me.chkNoDisplayFanart.Name = "chkNoDisplayFanart" - Me.chkNoDisplayFanart.Size = New System.Drawing.Size(139, 17) - Me.chkNoDisplayFanart.TabIndex = 7 - Me.chkNoDisplayFanart.Text = "Do Not Display Fanart" - Me.chkNoDisplayFanart.UseVisualStyleBackColor = True - ' - 'chkInfoPanelAnim - ' - Me.chkInfoPanelAnim.AutoSize = True - Me.chkInfoPanelAnim.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkInfoPanelAnim.Location = New System.Drawing.Point(10, 94) - Me.chkInfoPanelAnim.Name = "chkInfoPanelAnim" - Me.chkInfoPanelAnim.Size = New System.Drawing.Size(148, 17) - Me.chkInfoPanelAnim.TabIndex = 4 - Me.chkInfoPanelAnim.Text = "Enable Panel Animation" - Me.chkInfoPanelAnim.UseVisualStyleBackColor = True - ' - 'chkNoDisplayPoster - ' - Me.chkNoDisplayPoster.AutoSize = True - Me.chkNoDisplayPoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkNoDisplayPoster.Location = New System.Drawing.Point(10, 127) - Me.chkNoDisplayPoster.Name = "chkNoDisplayPoster" - Me.chkNoDisplayPoster.Size = New System.Drawing.Size(138, 17) - Me.chkNoDisplayPoster.TabIndex = 6 - Me.chkNoDisplayPoster.Text = "Do Not Display Poster" - Me.chkNoDisplayPoster.UseVisualStyleBackColor = True - ' - 'chkShowDims - ' - Me.chkShowDims.AutoSize = True - Me.chkShowDims.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkShowDims.Location = New System.Drawing.Point(10, 161) - Me.chkShowDims.Name = "chkShowDims" - Me.chkShowDims.Size = New System.Drawing.Size(160, 17) - Me.chkShowDims.TabIndex = 8 - Me.chkShowDims.Text = "Display Image Dimensions" - Me.chkShowDims.UseVisualStyleBackColor = True - ' - 'chkUpdates - ' - Me.chkUpdates.AutoSize = True - Me.chkUpdates.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkUpdates.Location = New System.Drawing.Point(10, 20) - Me.chkUpdates.Name = "chkUpdates" - Me.chkUpdates.Size = New System.Drawing.Size(121, 17) - Me.chkUpdates.TabIndex = 0 - Me.chkUpdates.Text = "Check for Updates" - Me.chkUpdates.UseVisualStyleBackColor = True - ' - 'chkOverwriteNfo - ' - Me.chkOverwriteNfo.AutoSize = True - Me.chkOverwriteNfo.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkOverwriteNfo.Location = New System.Drawing.Point(10, 54) - Me.chkOverwriteNfo.Name = "chkOverwriteNfo" - Me.chkOverwriteNfo.Size = New System.Drawing.Size(191, 17) - Me.chkOverwriteNfo.TabIndex = 2 - Me.chkOverwriteNfo.Text = "Overwrite Non-conforming nfos" - Me.chkOverwriteNfo.UseVisualStyleBackColor = True - ' - 'Label5 - ' - Me.Label5.Font = New System.Drawing.Font("Microsoft Sans Serif", 6.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label5.Location = New System.Drawing.Point(20, 68) - Me.Label5.Name = "Label5" - Me.Label5.Size = New System.Drawing.Size(165, 24) - Me.Label5.TabIndex = 3 - Me.Label5.Text = "(If unchecked, non-conforming nfos will be renamed to .info)" - Me.Label5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter - ' - 'chkLogErrors - ' - Me.chkLogErrors.AutoSize = True - Me.chkLogErrors.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkLogErrors.Location = New System.Drawing.Point(10, 37) - Me.chkLogErrors.Name = "chkLogErrors" - Me.chkLogErrors.Size = New System.Drawing.Size(113, 17) - Me.chkLogErrors.TabIndex = 1 - Me.chkLogErrors.Text = "Log Errors to File" - Me.chkLogErrors.UseVisualStyleBackColor = True - ' - 'GroupBox29 - ' - Me.GroupBox29.Controls.Add(Me.cbEpTheme) - Me.GroupBox29.Controls.Add(Me.Label3) - Me.GroupBox29.Controls.Add(Me.cbTVShowTheme) - Me.GroupBox29.Controls.Add(Me.Label1) - Me.GroupBox29.Controls.Add(Me.cbMovieTheme) - Me.GroupBox29.Controls.Add(Me.Label35) - Me.GroupBox29.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.GroupBox29.Location = New System.Drawing.Point(8, 61) - Me.GroupBox29.Name = "GroupBox29" - Me.GroupBox29.Size = New System.Drawing.Size(179, 166) - Me.GroupBox29.TabIndex = 2 - Me.GroupBox29.TabStop = False - Me.GroupBox29.Text = "Themes" - ' - 'cbEpTheme - ' - Me.cbEpTheme.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList - Me.cbEpTheme.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.cbEpTheme.FormattingEnabled = True - Me.cbEpTheme.Location = New System.Drawing.Point(9, 129) - Me.cbEpTheme.Name = "cbEpTheme" - Me.cbEpTheme.Size = New System.Drawing.Size(162, 21) - Me.cbEpTheme.TabIndex = 5 - ' - 'Label3 - ' - Me.Label3.AutoSize = True - Me.Label3.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label3.Location = New System.Drawing.Point(7, 114) - Me.Label3.Name = "Label3" - Me.Label3.Size = New System.Drawing.Size(87, 13) - Me.Label3.TabIndex = 4 - Me.Label3.Text = "Episode Theme:" - ' - 'cbTVShowTheme - ' - Me.cbTVShowTheme.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList - Me.cbTVShowTheme.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.cbTVShowTheme.FormattingEnabled = True - Me.cbTVShowTheme.Location = New System.Drawing.Point(9, 83) - Me.cbTVShowTheme.Name = "cbTVShowTheme" - Me.cbTVShowTheme.Size = New System.Drawing.Size(162, 21) - Me.cbTVShowTheme.TabIndex = 3 - ' - 'Label1 - ' - Me.Label1.AutoSize = True - Me.Label1.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label1.Location = New System.Drawing.Point(7, 68) - Me.Label1.Name = "Label1" - Me.Label1.Size = New System.Drawing.Size(90, 13) - Me.Label1.TabIndex = 2 - Me.Label1.Text = "TV Show Theme:" - ' - 'cbMovieTheme - ' - Me.cbMovieTheme.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList - Me.cbMovieTheme.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.cbMovieTheme.FormattingEnabled = True - Me.cbMovieTheme.Location = New System.Drawing.Point(9, 38) - Me.cbMovieTheme.Name = "cbMovieTheme" - Me.cbMovieTheme.Size = New System.Drawing.Size(162, 21) - Me.cbMovieTheme.TabIndex = 1 - ' - 'Label35 - ' - Me.Label35.AutoSize = True - Me.Label35.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label35.Location = New System.Drawing.Point(7, 23) - Me.Label35.Name = "Label35" - Me.Label35.Size = New System.Drawing.Size(77, 13) - Me.Label35.TabIndex = 0 - Me.Label35.Text = "Movie Theme:" - ' - 'Label32 - ' - Me.Label32.AutoSize = True - Me.Label32.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label32.Location = New System.Drawing.Point(6, 18) - Me.Label32.Name = "Label32" - Me.Label32.Size = New System.Drawing.Size(109, 13) - Me.Label32.TabIndex = 0 - Me.Label32.Text = "Interface Language:" - ' - 'cbIntLang - ' - Me.cbIntLang.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList - Me.cbIntLang.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.cbIntLang.FormattingEnabled = True - Me.cbIntLang.Location = New System.Drawing.Point(9, 34) - Me.cbIntLang.Name = "cbIntLang" - Me.cbIntLang.Size = New System.Drawing.Size(137, 21) - Me.cbIntLang.TabIndex = 1 - ' - 'GroupBox3 - ' - Me.GroupBox3.Controls.Add(Me.tcCleaner) - Me.GroupBox3.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.GroupBox3.Location = New System.Drawing.Point(401, 6) - Me.GroupBox3.Name = "GroupBox3" - Me.GroupBox3.Size = New System.Drawing.Size(208, 385) - Me.GroupBox3.TabIndex = 2 - Me.GroupBox3.TabStop = False - Me.GroupBox3.Text = "Clean Files" - ' - 'tcCleaner - ' - Me.tcCleaner.Appearance = System.Windows.Forms.TabAppearance.FlatButtons - Me.tcCleaner.Controls.Add(Me.tpStandard) - Me.tcCleaner.Controls.Add(Me.tpExpert) - Me.tcCleaner.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.tcCleaner.Location = New System.Drawing.Point(6, 19) - Me.tcCleaner.Name = "tcCleaner" - Me.tcCleaner.SelectedIndex = 0 - Me.tcCleaner.Size = New System.Drawing.Size(196, 363) - Me.tcCleaner.TabIndex = 0 - ' - 'tpStandard - ' - Me.tpStandard.BackColor = System.Drawing.Color.White - Me.tpStandard.Controls.Add(Me.chkCleanFolderJPG) - Me.tpStandard.Controls.Add(Me.chkCleanExtrathumbs) - Me.tpStandard.Controls.Add(Me.chkCleanMovieTBN) - Me.tpStandard.Controls.Add(Me.chkCleanMovieNameJPG) - Me.tpStandard.Controls.Add(Me.chkCleanMovieTBNb) - Me.tpStandard.Controls.Add(Me.chkCleanMovieJPG) - Me.tpStandard.Controls.Add(Me.chkCleanFanartJPG) - Me.tpStandard.Controls.Add(Me.chkCleanPosterJPG) - Me.tpStandard.Controls.Add(Me.chkCleanMovieFanartJPG) - Me.tpStandard.Controls.Add(Me.chkCleanPosterTBN) - Me.tpStandard.Controls.Add(Me.chkCleanMovieNFO) - Me.tpStandard.Controls.Add(Me.chkCleanDotFanartJPG) - Me.tpStandard.Controls.Add(Me.chkCleanMovieNFOb) - Me.tpStandard.Location = New System.Drawing.Point(4, 25) - Me.tpStandard.Name = "tpStandard" - Me.tpStandard.Padding = New System.Windows.Forms.Padding(3) - Me.tpStandard.Size = New System.Drawing.Size(188, 334) - Me.tpStandard.TabIndex = 0 - Me.tpStandard.Text = "Standard" - Me.tpStandard.UseVisualStyleBackColor = True - ' - 'chkCleanFolderJPG - ' - Me.chkCleanFolderJPG.AutoSize = True - Me.chkCleanFolderJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkCleanFolderJPG.Location = New System.Drawing.Point(7, 10) - Me.chkCleanFolderJPG.Name = "chkCleanFolderJPG" - Me.chkCleanFolderJPG.Size = New System.Drawing.Size(81, 17) - Me.chkCleanFolderJPG.TabIndex = 0 - Me.chkCleanFolderJPG.Text = "/folder.jpg" - Me.chkCleanFolderJPG.UseVisualStyleBackColor = True - ' - 'chkCleanExtrathumbs - ' - Me.chkCleanExtrathumbs.AutoSize = True - Me.chkCleanExtrathumbs.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkCleanExtrathumbs.Location = New System.Drawing.Point(7, 238) - Me.chkCleanExtrathumbs.Name = "chkCleanExtrathumbs" - Me.chkCleanExtrathumbs.Size = New System.Drawing.Size(98, 17) - Me.chkCleanExtrathumbs.TabIndex = 12 - Me.chkCleanExtrathumbs.Text = "/extrathumbs/" - Me.chkCleanExtrathumbs.UseVisualStyleBackColor = True - ' - 'chkCleanMovieTBN - ' - Me.chkCleanMovieTBN.AutoSize = True - Me.chkCleanMovieTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkCleanMovieTBN.Location = New System.Drawing.Point(7, 29) - Me.chkCleanMovieTBN.Name = "chkCleanMovieTBN" - Me.chkCleanMovieTBN.Size = New System.Drawing.Size(81, 17) - Me.chkCleanMovieTBN.TabIndex = 1 - Me.chkCleanMovieTBN.Text = "/movie.tbn" - Me.chkCleanMovieTBN.UseVisualStyleBackColor = True - ' - 'chkCleanMovieNameJPG - ' - Me.chkCleanMovieNameJPG.AutoSize = True - Me.chkCleanMovieNameJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkCleanMovieNameJPG.Location = New System.Drawing.Point(7, 124) - Me.chkCleanMovieNameJPG.Name = "chkCleanMovieNameJPG" - Me.chkCleanMovieNameJPG.Size = New System.Drawing.Size(96, 17) - Me.chkCleanMovieNameJPG.TabIndex = 6 - Me.chkCleanMovieNameJPG.Text = "/.jpg" - Me.chkCleanMovieNameJPG.UseVisualStyleBackColor = True - ' - 'chkCleanMovieTBNb - ' - Me.chkCleanMovieTBNb.AutoSize = True - Me.chkCleanMovieTBNb.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkCleanMovieTBNb.Location = New System.Drawing.Point(7, 48) - Me.chkCleanMovieTBNb.Name = "chkCleanMovieTBNb" - Me.chkCleanMovieTBNb.Size = New System.Drawing.Size(97, 17) - Me.chkCleanMovieTBNb.TabIndex = 2 - Me.chkCleanMovieTBNb.Text = "/.tbn" - Me.chkCleanMovieTBNb.UseVisualStyleBackColor = True - ' - 'chkCleanMovieJPG - ' - Me.chkCleanMovieJPG.AutoSize = True - Me.chkCleanMovieJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkCleanMovieJPG.Location = New System.Drawing.Point(7, 105) - Me.chkCleanMovieJPG.Name = "chkCleanMovieJPG" - Me.chkCleanMovieJPG.Size = New System.Drawing.Size(80, 17) - Me.chkCleanMovieJPG.TabIndex = 5 - Me.chkCleanMovieJPG.Text = "/movie.jpg" - Me.chkCleanMovieJPG.UseVisualStyleBackColor = True - ' - 'chkCleanFanartJPG - ' - Me.chkCleanFanartJPG.AutoSize = True - Me.chkCleanFanartJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkCleanFanartJPG.Location = New System.Drawing.Point(7, 143) - Me.chkCleanFanartJPG.Name = "chkCleanFanartJPG" - Me.chkCleanFanartJPG.Size = New System.Drawing.Size(81, 17) - Me.chkCleanFanartJPG.TabIndex = 7 - Me.chkCleanFanartJPG.Text = "/fanart.jpg" - Me.chkCleanFanartJPG.UseVisualStyleBackColor = True - ' - 'chkCleanPosterJPG - ' - Me.chkCleanPosterJPG.AutoSize = True - Me.chkCleanPosterJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkCleanPosterJPG.Location = New System.Drawing.Point(7, 86) - Me.chkCleanPosterJPG.Name = "chkCleanPosterJPG" - Me.chkCleanPosterJPG.Size = New System.Drawing.Size(83, 17) - Me.chkCleanPosterJPG.TabIndex = 4 - Me.chkCleanPosterJPG.Text = "/poster.jpg" - Me.chkCleanPosterJPG.UseVisualStyleBackColor = True - ' - 'chkCleanMovieFanartJPG - ' - Me.chkCleanMovieFanartJPG.AutoSize = True - Me.chkCleanMovieFanartJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkCleanMovieFanartJPG.Location = New System.Drawing.Point(7, 162) - Me.chkCleanMovieFanartJPG.Name = "chkCleanMovieFanartJPG" - Me.chkCleanMovieFanartJPG.Size = New System.Drawing.Size(131, 17) - Me.chkCleanMovieFanartJPG.TabIndex = 8 - Me.chkCleanMovieFanartJPG.Text = "/-fanart.jpg" - Me.chkCleanMovieFanartJPG.UseVisualStyleBackColor = True - ' - 'chkCleanPosterTBN - ' - Me.chkCleanPosterTBN.AutoSize = True - Me.chkCleanPosterTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkCleanPosterTBN.Location = New System.Drawing.Point(7, 67) - Me.chkCleanPosterTBN.Name = "chkCleanPosterTBN" - Me.chkCleanPosterTBN.Size = New System.Drawing.Size(84, 17) - Me.chkCleanPosterTBN.TabIndex = 3 - Me.chkCleanPosterTBN.Text = "/poster.tbn" - Me.chkCleanPosterTBN.UseVisualStyleBackColor = True - ' - 'chkCleanMovieNFO - ' - Me.chkCleanMovieNFO.AutoSize = True - Me.chkCleanMovieNFO.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkCleanMovieNFO.Location = New System.Drawing.Point(7, 200) - Me.chkCleanMovieNFO.Name = "chkCleanMovieNFO" - Me.chkCleanMovieNFO.Size = New System.Drawing.Size(81, 17) - Me.chkCleanMovieNFO.TabIndex = 10 - Me.chkCleanMovieNFO.Text = "/movie.nfo" - Me.chkCleanMovieNFO.UseVisualStyleBackColor = True - ' - 'chkCleanDotFanartJPG - ' - Me.chkCleanDotFanartJPG.AutoSize = True - Me.chkCleanDotFanartJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkCleanDotFanartJPG.Location = New System.Drawing.Point(7, 181) - Me.chkCleanDotFanartJPG.Name = "chkCleanDotFanartJPG" - Me.chkCleanDotFanartJPG.Size = New System.Drawing.Size(130, 17) - Me.chkCleanDotFanartJPG.TabIndex = 9 - Me.chkCleanDotFanartJPG.Text = "/.fanart.jpg" - Me.chkCleanDotFanartJPG.UseVisualStyleBackColor = True - ' - 'chkCleanMovieNFOb - ' - Me.chkCleanMovieNFOb.AutoSize = True - Me.chkCleanMovieNFOb.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkCleanMovieNFOb.Location = New System.Drawing.Point(7, 219) - Me.chkCleanMovieNFOb.Name = "chkCleanMovieNFOb" - Me.chkCleanMovieNFOb.Size = New System.Drawing.Size(97, 17) - Me.chkCleanMovieNFOb.TabIndex = 11 - Me.chkCleanMovieNFOb.Text = "/.nfo" - Me.chkCleanMovieNFOb.UseVisualStyleBackColor = True - ' - 'tpExpert - ' - Me.tpExpert.BackColor = System.Drawing.Color.White - Me.tpExpert.Controls.Add(Me.chkWhitelistVideo) - Me.tpExpert.Controls.Add(Me.Label27) - Me.tpExpert.Controls.Add(Me.btnRemoveWhitelist) - Me.tpExpert.Controls.Add(Me.btnAddWhitelist) - Me.tpExpert.Controls.Add(Me.txtWhitelist) - Me.tpExpert.Controls.Add(Me.lstWhitelist) - Me.tpExpert.Controls.Add(Me.Label25) - Me.tpExpert.Location = New System.Drawing.Point(4, 25) - Me.tpExpert.Name = "tpExpert" - Me.tpExpert.Padding = New System.Windows.Forms.Padding(3) - Me.tpExpert.Size = New System.Drawing.Size(188, 334) - Me.tpExpert.TabIndex = 1 - Me.tpExpert.Text = "Expert" - Me.tpExpert.UseVisualStyleBackColor = True - ' - 'chkWhitelistVideo - ' - Me.chkWhitelistVideo.AutoSize = True - Me.chkWhitelistVideo.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkWhitelistVideo.Location = New System.Drawing.Point(4, 85) - Me.chkWhitelistVideo.Name = "chkWhitelistVideo" - Me.chkWhitelistVideo.Size = New System.Drawing.Size(163, 17) - Me.chkWhitelistVideo.TabIndex = 1 - Me.chkWhitelistVideo.Text = "Whitelist Video Extensions" - Me.chkWhitelistVideo.UseVisualStyleBackColor = True - ' - 'Label27 - ' - Me.Label27.AutoSize = True - Me.Label27.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label27.Location = New System.Drawing.Point(19, 107) - Me.Label27.Name = "Label27" - Me.Label27.Size = New System.Drawing.Size(127, 13) - Me.Label27.TabIndex = 2 - Me.Label27.Text = "Whitelisted Extensions:" - ' - 'btnRemoveWhitelist - ' - Me.btnRemoveWhitelist.Image = CType(resources.GetObject("btnRemoveWhitelist.Image"), System.Drawing.Image) - Me.btnRemoveWhitelist.Location = New System.Drawing.Point(134, 251) - Me.btnRemoveWhitelist.Name = "btnRemoveWhitelist" - Me.btnRemoveWhitelist.Size = New System.Drawing.Size(23, 23) - Me.btnRemoveWhitelist.TabIndex = 6 - Me.btnRemoveWhitelist.UseVisualStyleBackColor = True - ' - 'btnAddWhitelist - ' - Me.btnAddWhitelist.Image = CType(resources.GetObject("btnAddWhitelist.Image"), System.Drawing.Image) - Me.btnAddWhitelist.Location = New System.Drawing.Point(82, 251) - Me.btnAddWhitelist.Name = "btnAddWhitelist" - Me.btnAddWhitelist.Size = New System.Drawing.Size(23, 23) - Me.btnAddWhitelist.TabIndex = 5 - Me.btnAddWhitelist.UseVisualStyleBackColor = True - ' - 'txtWhitelist - ' - Me.txtWhitelist.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtWhitelist.Location = New System.Drawing.Point(20, 252) - Me.txtWhitelist.Name = "txtWhitelist" - Me.txtWhitelist.Size = New System.Drawing.Size(61, 22) - Me.txtWhitelist.TabIndex = 4 - ' - 'lstWhitelist - ' - Me.lstWhitelist.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lstWhitelist.FormattingEnabled = True - Me.lstWhitelist.Location = New System.Drawing.Point(19, 126) - Me.lstWhitelist.Name = "lstWhitelist" - Me.lstWhitelist.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended - Me.lstWhitelist.Size = New System.Drawing.Size(138, 108) - Me.lstWhitelist.TabIndex = 3 - ' - 'Label25 - ' - Me.Label25.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.Label25.ForeColor = System.Drawing.Color.Red - Me.Label25.Location = New System.Drawing.Point(12, 10) - Me.Label25.Name = "Label25" - Me.Label25.Size = New System.Drawing.Size(155, 68) - Me.Label25.TabIndex = 0 - Me.Label25.Text = "WARNING: Using the Expert Mode Cleaner could potentially delete wanted files. Tak" & _ - "e care when using this tool." - Me.Label25.TextAlign = System.Drawing.ContentAlignment.MiddleCenter - ' - 'GroupBox12 - ' - Me.GroupBox12.Controls.Add(Me.chkClickScrape) - Me.GroupBox12.Controls.Add(Me.chkAskCheckboxScrape) - Me.GroupBox12.Controls.Add(Me.chkMarkNew) - Me.GroupBox12.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.GroupBox12.Location = New System.Drawing.Point(6, 7) - Me.GroupBox12.Name = "GroupBox12" - Me.GroupBox12.Size = New System.Drawing.Size(219, 93) - Me.GroupBox12.TabIndex = 1 - Me.GroupBox12.TabStop = False - Me.GroupBox12.Text = "Miscellaneous" - ' - 'chkClickScrape - ' - Me.chkClickScrape.AutoSize = True - Me.chkClickScrape.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.chkClickScrape.Location = New System.Drawing.Point(12, 36) - Me.chkClickScrape.Name = "chkClickScrape" - Me.chkClickScrape.Size = New System.Drawing.Size(125, 17) - Me.chkClickScrape.TabIndex = 65 - Me.chkClickScrape.Text = "Enable Click Scrape" - Me.chkClickScrape.UseVisualStyleBackColor = True - ' - 'chkAskCheckboxScrape - ' - Me.chkAskCheckboxScrape.AutoSize = True - Me.chkAskCheckboxScrape.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.chkAskCheckboxScrape.Location = New System.Drawing.Point(25, 56) - Me.chkAskCheckboxScrape.Name = "chkAskCheckboxScrape" - Me.chkAskCheckboxScrape.Size = New System.Drawing.Size(127, 17) - Me.chkAskCheckboxScrape.TabIndex = 64 - Me.chkAskCheckboxScrape.Text = "Ask On Click Scrape" - Me.chkAskCheckboxScrape.UseVisualStyleBackColor = True - ' - 'chkMarkNew - ' - Me.chkMarkNew.AutoSize = True - Me.chkMarkNew.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkMarkNew.Location = New System.Drawing.Point(12, 14) - Me.chkMarkNew.Name = "chkMarkNew" - Me.chkMarkNew.Size = New System.Drawing.Size(117, 17) - Me.chkMarkNew.TabIndex = 0 - Me.chkMarkNew.Text = "Mark New Movies" - Me.chkMarkNew.UseVisualStyleBackColor = True - ' - 'lbGenre - ' - Me.lbGenre.CheckOnClick = True - Me.lbGenre.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lbGenre.FormattingEnabled = True - Me.lbGenre.IntegralHeight = False - Me.lbGenre.Location = New System.Drawing.Point(10, 18) - Me.lbGenre.Name = "lbGenre" - Me.lbGenre.Size = New System.Drawing.Size(157, 124) - Me.lbGenre.Sorted = True - Me.lbGenre.TabIndex = 0 - ' - 'GroupBox2 - ' - Me.GroupBox2.Controls.Add(Me.txtCheckTitleTol) - Me.GroupBox2.Controls.Add(Me.Label30) - Me.GroupBox2.Controls.Add(Me.chkCheckTitles) - Me.GroupBox2.Controls.Add(Me.GroupBox25) - Me.GroupBox2.Controls.Add(Me.chkDisplayYear) - Me.GroupBox2.Controls.Add(Me.chkMovieExtraCol) - Me.GroupBox2.Controls.Add(Me.chkMovieSubCol) - Me.GroupBox2.Controls.Add(Me.chkMovieTrailerCol) - Me.GroupBox2.Controls.Add(Me.chkMovieInfoCol) - Me.GroupBox2.Controls.Add(Me.chkMovieFanartCol) - Me.GroupBox2.Controls.Add(Me.chkMoviePosterCol) - Me.GroupBox2.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.GroupBox2.Location = New System.Drawing.Point(7, 106) - Me.GroupBox2.Name = "GroupBox2" - Me.GroupBox2.Size = New System.Drawing.Size(218, 279) - Me.GroupBox2.TabIndex = 4 - Me.GroupBox2.TabStop = False - Me.GroupBox2.Text = "Media List Options" - ' - 'txtCheckTitleTol - ' - Me.txtCheckTitleTol.Enabled = False - Me.txtCheckTitleTol.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtCheckTitleTol.Location = New System.Drawing.Point(142, 50) - Me.txtCheckTitleTol.Name = "txtCheckTitleTol" - Me.txtCheckTitleTol.Size = New System.Drawing.Size(61, 22) - Me.txtCheckTitleTol.TabIndex = 74 - ' - 'Label30 - ' - Me.Label30.AutoSize = True - Me.Label30.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label30.Location = New System.Drawing.Point(27, 54) - Me.Label30.Name = "Label30" - Me.Label30.Size = New System.Drawing.Size(111, 13) - Me.Label30.TabIndex = 73 - Me.Label30.Text = "Mismatch Tolerance:" - Me.Label30.TextAlign = System.Drawing.ContentAlignment.TopRight - ' - 'chkCheckTitles - ' - Me.chkCheckTitles.AutoSize = True - Me.chkCheckTitles.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkCheckTitles.Location = New System.Drawing.Point(8, 35) - Me.chkCheckTitles.Name = "chkCheckTitles" - Me.chkCheckTitles.Size = New System.Drawing.Size(178, 17) - Me.chkCheckTitles.TabIndex = 72 - Me.chkCheckTitles.Text = "Check Title Match Confidence" - Me.chkCheckTitles.UseVisualStyleBackColor = True - ' - 'GroupBox25 - ' - Me.GroupBox25.Controls.Add(Me.btnRemoveToken) - Me.GroupBox25.Controls.Add(Me.btnAddToken) - Me.GroupBox25.Controls.Add(Me.txtSortToken) - Me.GroupBox25.Controls.Add(Me.lstSortTokens) - Me.GroupBox25.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.GroupBox25.Location = New System.Drawing.Point(9, 73) - Me.GroupBox25.Name = "GroupBox25" - Me.GroupBox25.Size = New System.Drawing.Size(200, 102) - Me.GroupBox25.TabIndex = 71 - Me.GroupBox25.TabStop = False - Me.GroupBox25.Text = "Sort Tokens to Ignore" - ' - 'btnRemoveToken - ' - Me.btnRemoveToken.Image = CType(resources.GetObject("btnRemoveToken.Image"), System.Drawing.Image) - Me.btnRemoveToken.Location = New System.Drawing.Point(168, 72) - Me.btnRemoveToken.Name = "btnRemoveToken" - Me.btnRemoveToken.Size = New System.Drawing.Size(23, 23) - Me.btnRemoveToken.TabIndex = 3 - Me.btnRemoveToken.UseVisualStyleBackColor = True - ' - 'btnAddToken - ' - Me.btnAddToken.Image = CType(resources.GetObject("btnAddToken.Image"), System.Drawing.Image) - Me.btnAddToken.Location = New System.Drawing.Point(72, 72) - Me.btnAddToken.Name = "btnAddToken" - Me.btnAddToken.Size = New System.Drawing.Size(23, 23) - Me.btnAddToken.TabIndex = 2 - Me.btnAddToken.UseVisualStyleBackColor = True - ' - 'txtSortToken - ' - Me.txtSortToken.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtSortToken.Location = New System.Drawing.Point(10, 73) - Me.txtSortToken.Name = "txtSortToken" - Me.txtSortToken.Size = New System.Drawing.Size(61, 22) - Me.txtSortToken.TabIndex = 1 - ' - 'lstSortTokens - ' - Me.lstSortTokens.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lstSortTokens.FormattingEnabled = True - Me.lstSortTokens.Location = New System.Drawing.Point(10, 15) - Me.lstSortTokens.Name = "lstSortTokens" - Me.lstSortTokens.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended - Me.lstSortTokens.Size = New System.Drawing.Size(180, 43) - Me.lstSortTokens.Sorted = True - Me.lstSortTokens.TabIndex = 0 - ' - 'chkDisplayYear - ' - Me.chkDisplayYear.AutoSize = True - Me.chkDisplayYear.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkDisplayYear.Location = New System.Drawing.Point(8, 19) - Me.chkDisplayYear.Name = "chkDisplayYear" - Me.chkDisplayYear.Size = New System.Drawing.Size(144, 17) - Me.chkDisplayYear.TabIndex = 70 - Me.chkDisplayYear.Text = "Display Year in List Title" - Me.chkDisplayYear.UseVisualStyleBackColor = True - ' - 'chkMovieExtraCol - ' - Me.chkMovieExtraCol.AutoSize = True - Me.chkMovieExtraCol.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkMovieExtraCol.Location = New System.Drawing.Point(9, 258) - Me.chkMovieExtraCol.Name = "chkMovieExtraCol" - Me.chkMovieExtraCol.Size = New System.Drawing.Size(155, 17) - Me.chkMovieExtraCol.TabIndex = 5 - Me.chkMovieExtraCol.Text = "Hide Extrathumb Column" - Me.chkMovieExtraCol.UseVisualStyleBackColor = True - ' - 'chkMovieSubCol - ' - Me.chkMovieSubCol.AutoSize = True - Me.chkMovieSubCol.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkMovieSubCol.Location = New System.Drawing.Point(9, 242) - Me.chkMovieSubCol.Name = "chkMovieSubCol" - Me.chkMovieSubCol.Size = New System.Drawing.Size(116, 17) - Me.chkMovieSubCol.TabIndex = 4 - Me.chkMovieSubCol.Text = "Hide Sub Column" - Me.chkMovieSubCol.UseVisualStyleBackColor = True - ' - 'chkMovieTrailerCol - ' - Me.chkMovieTrailerCol.AutoSize = True - Me.chkMovieTrailerCol.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkMovieTrailerCol.Location = New System.Drawing.Point(9, 226) - Me.chkMovieTrailerCol.Name = "chkMovieTrailerCol" - Me.chkMovieTrailerCol.Size = New System.Drawing.Size(127, 17) - Me.chkMovieTrailerCol.TabIndex = 3 - Me.chkMovieTrailerCol.Text = "Hide Trailer Column" - Me.chkMovieTrailerCol.UseVisualStyleBackColor = True - ' - 'chkMovieInfoCol - ' - Me.chkMovieInfoCol.AutoSize = True - Me.chkMovieInfoCol.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkMovieInfoCol.Location = New System.Drawing.Point(9, 210) - Me.chkMovieInfoCol.Name = "chkMovieInfoCol" - Me.chkMovieInfoCol.Size = New System.Drawing.Size(117, 17) - Me.chkMovieInfoCol.TabIndex = 2 - Me.chkMovieInfoCol.Text = "Hide Info Column" - Me.chkMovieInfoCol.UseVisualStyleBackColor = True - ' - 'chkMovieFanartCol - ' - Me.chkMovieFanartCol.AutoSize = True - Me.chkMovieFanartCol.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkMovieFanartCol.Location = New System.Drawing.Point(9, 194) - Me.chkMovieFanartCol.Name = "chkMovieFanartCol" - Me.chkMovieFanartCol.Size = New System.Drawing.Size(129, 17) - Me.chkMovieFanartCol.TabIndex = 1 - Me.chkMovieFanartCol.Text = "Hide Fanart Column" - Me.chkMovieFanartCol.UseVisualStyleBackColor = True - ' - 'chkMoviePosterCol - ' - Me.chkMoviePosterCol.AutoSize = True - Me.chkMoviePosterCol.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkMoviePosterCol.Location = New System.Drawing.Point(9, 178) - Me.chkMoviePosterCol.Name = "chkMoviePosterCol" - Me.chkMoviePosterCol.Size = New System.Drawing.Size(128, 17) - Me.chkMoviePosterCol.TabIndex = 0 - Me.chkMoviePosterCol.Text = "Hide Poster Column" - Me.chkMoviePosterCol.UseVisualStyleBackColor = True - ' - 'GroupBox8 - ' - Me.GroupBox8.Controls.Add(Me.btnMovieFrodo) - Me.GroupBox8.Controls.Add(Me.chkMovieNameMultiOnly) - Me.GroupBox8.Controls.Add(Me.GroupBox21) - Me.GroupBox8.Controls.Add(Me.GroupBox7) - Me.GroupBox8.Controls.Add(Me.GroupBox6) - Me.GroupBox8.Controls.Add(Me.GroupBox5) - Me.GroupBox8.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.GroupBox8.Location = New System.Drawing.Point(243, 113) - Me.GroupBox8.Name = "GroupBox8" - Me.GroupBox8.Size = New System.Drawing.Size(366, 197) - Me.GroupBox8.TabIndex = 5 - Me.GroupBox8.TabStop = False - Me.GroupBox8.Text = "File Naming" - ' - 'btnMovieFrodo - ' - Me.btnMovieFrodo.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.btnMovieFrodo.Location = New System.Drawing.Point(237, 29) - Me.btnMovieFrodo.Name = "btnMovieFrodo" - Me.btnMovieFrodo.Size = New System.Drawing.Size(116, 23) - Me.btnMovieFrodo.TabIndex = 1 - Me.btnMovieFrodo.Text = "XBMC Frodo" - Me.btnMovieFrodo.UseVisualStyleBackColor = True - ' - 'chkMovieNameMultiOnly - ' - Me.chkMovieNameMultiOnly.CheckAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkMovieNameMultiOnly.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkMovieNameMultiOnly.Location = New System.Drawing.Point(235, 58) - Me.chkMovieNameMultiOnly.Name = "chkMovieNameMultiOnly" - Me.chkMovieNameMultiOnly.Size = New System.Drawing.Size(125, 43) - Me.chkMovieNameMultiOnly.TabIndex = 2 - Me.chkMovieNameMultiOnly.Text = "Use Only for Folders with Multiple Movies" - Me.chkMovieNameMultiOnly.TextAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkMovieNameMultiOnly.UseVisualStyleBackColor = True - ' - 'GroupBox21 - ' - Me.GroupBox21.Controls.Add(Me.rbBracketTrailer) - Me.GroupBox21.Controls.Add(Me.rbDashTrailer) - Me.GroupBox21.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.GroupBox21.Location = New System.Drawing.Point(150, 111) - Me.GroupBox21.Name = "GroupBox21" - Me.GroupBox21.Size = New System.Drawing.Size(102, 59) - Me.GroupBox21.TabIndex = 4 - Me.GroupBox21.TabStop = False - Me.GroupBox21.Text = "Trailer" - ' - 'rbBracketTrailer - ' - Me.rbBracketTrailer.AutoSize = True - Me.rbBracketTrailer.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.rbBracketTrailer.Location = New System.Drawing.Point(5, 33) - Me.rbBracketTrailer.Name = "rbBracketTrailer" - Me.rbBracketTrailer.Size = New System.Drawing.Size(61, 17) - Me.rbBracketTrailer.TabIndex = 1 - Me.rbBracketTrailer.TabStop = True - Me.rbBracketTrailer.Text = "[trailer]" - Me.rbBracketTrailer.UseVisualStyleBackColor = True - ' - 'rbDashTrailer - ' - Me.rbDashTrailer.AutoSize = True - Me.rbDashTrailer.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.rbDashTrailer.ForeColor = System.Drawing.SystemColors.ControlText - Me.rbDashTrailer.Location = New System.Drawing.Point(5, 17) - Me.rbDashTrailer.Name = "rbDashTrailer" - Me.rbDashTrailer.Size = New System.Drawing.Size(59, 17) - Me.rbDashTrailer.TabIndex = 0 - Me.rbDashTrailer.TabStop = True - Me.rbDashTrailer.Text = "-trailer" - Me.rbDashTrailer.UseVisualStyleBackColor = True - ' - 'GroupBox7 - ' - Me.GroupBox7.Controls.Add(Me.chkMovieNameNFO) - Me.GroupBox7.Controls.Add(Me.chkMovieNFO) - Me.GroupBox7.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.GroupBox7.Location = New System.Drawing.Point(258, 111) - Me.GroupBox7.Name = "GroupBox7" - Me.GroupBox7.Size = New System.Drawing.Size(102, 59) - Me.GroupBox7.TabIndex = 5 - Me.GroupBox7.TabStop = False - Me.GroupBox7.Text = "NFO" - ' - 'chkMovieNameNFO - ' - Me.chkMovieNameNFO.AutoSize = True - Me.chkMovieNameNFO.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkMovieNameNFO.ForeColor = System.Drawing.SystemColors.ControlText - Me.chkMovieNameNFO.Location = New System.Drawing.Point(6, 34) - Me.chkMovieNameNFO.Name = "chkMovieNameNFO" - Me.chkMovieNameNFO.Size = New System.Drawing.Size(93, 17) - Me.chkMovieNameNFO.TabIndex = 1 - Me.chkMovieNameNFO.Text = ".nfo" - Me.chkMovieNameNFO.UseVisualStyleBackColor = True - ' - 'chkMovieNFO - ' - Me.chkMovieNFO.AutoSize = True - Me.chkMovieNFO.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkMovieNFO.Location = New System.Drawing.Point(6, 18) - Me.chkMovieNFO.Name = "chkMovieNFO" - Me.chkMovieNFO.Size = New System.Drawing.Size(77, 17) - Me.chkMovieNFO.TabIndex = 0 - Me.chkMovieNFO.Text = "movie.nfo" - Me.chkMovieNFO.UseVisualStyleBackColor = True - ' - 'GroupBox6 - ' - Me.GroupBox6.Controls.Add(Me.chkMovieNameDotFanartJPG) - Me.GroupBox6.Controls.Add(Me.chkMovieNameFanartJPG) - Me.GroupBox6.Controls.Add(Me.chkFanartJPG) - Me.GroupBox6.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.GroupBox6.Location = New System.Drawing.Point(6, 111) - Me.GroupBox6.Name = "GroupBox6" - Me.GroupBox6.Size = New System.Drawing.Size(136, 81) - Me.GroupBox6.TabIndex = 3 - Me.GroupBox6.TabStop = False - Me.GroupBox6.Text = "Fanart" - ' - 'chkMovieNameDotFanartJPG - ' - Me.chkMovieNameDotFanartJPG.AutoSize = True - Me.chkMovieNameDotFanartJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkMovieNameDotFanartJPG.Location = New System.Drawing.Point(6, 51) - Me.chkMovieNameDotFanartJPG.Name = "chkMovieNameDotFanartJPG" - Me.chkMovieNameDotFanartJPG.Size = New System.Drawing.Size(126, 17) - Me.chkMovieNameDotFanartJPG.TabIndex = 2 - Me.chkMovieNameDotFanartJPG.Text = ".fanart.jpg" - Me.chkMovieNameDotFanartJPG.UseVisualStyleBackColor = True - ' - 'chkMovieNameFanartJPG - ' - Me.chkMovieNameFanartJPG.AutoSize = True - Me.chkMovieNameFanartJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkMovieNameFanartJPG.ForeColor = System.Drawing.SystemColors.ControlText - Me.chkMovieNameFanartJPG.Location = New System.Drawing.Point(6, 35) - Me.chkMovieNameFanartJPG.Name = "chkMovieNameFanartJPG" - Me.chkMovieNameFanartJPG.Size = New System.Drawing.Size(127, 17) - Me.chkMovieNameFanartJPG.TabIndex = 1 - Me.chkMovieNameFanartJPG.Text = "-fanart.jpg" - Me.chkMovieNameFanartJPG.UseVisualStyleBackColor = True - ' - 'chkFanartJPG - ' - Me.chkFanartJPG.AutoSize = True - Me.chkFanartJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkFanartJPG.Location = New System.Drawing.Point(6, 19) - Me.chkFanartJPG.Name = "chkFanartJPG" - Me.chkFanartJPG.Size = New System.Drawing.Size(77, 17) - Me.chkFanartJPG.TabIndex = 0 - Me.chkFanartJPG.Text = "fanart.jpg" - Me.chkFanartJPG.UseVisualStyleBackColor = True - ' - 'GroupBox5 - ' - Me.GroupBox5.Controls.Add(Me.chkMovieNameDashPosterJPG) - Me.GroupBox5.Controls.Add(Me.chkFolderJPG) - Me.GroupBox5.Controls.Add(Me.chkPosterJPG) - Me.GroupBox5.Controls.Add(Me.chkPosterTBN) - Me.GroupBox5.Controls.Add(Me.chkMovieNameJPG) - Me.GroupBox5.Controls.Add(Me.chkMovieJPG) - Me.GroupBox5.Controls.Add(Me.chkMovieNameTBN) - Me.GroupBox5.Controls.Add(Me.chkMovieTBN) - Me.GroupBox5.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.GroupBox5.Location = New System.Drawing.Point(6, 17) - Me.GroupBox5.Name = "GroupBox5" - Me.GroupBox5.Size = New System.Drawing.Size(221, 83) - Me.GroupBox5.TabIndex = 0 - Me.GroupBox5.TabStop = False - Me.GroupBox5.Text = "Posters" - ' - 'chkMovieNameDashPosterJPG - ' - Me.chkMovieNameDashPosterJPG.AutoSize = True - Me.chkMovieNameDashPosterJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkMovieNameDashPosterJPG.ForeColor = System.Drawing.SystemColors.ControlText - Me.chkMovieNameDashPosterJPG.Location = New System.Drawing.Point(85, 63) - Me.chkMovieNameDashPosterJPG.Name = "chkMovieNameDashPosterJPG" - Me.chkMovieNameDashPosterJPG.Size = New System.Drawing.Size(129, 17) - Me.chkMovieNameDashPosterJPG.TabIndex = 7 - Me.chkMovieNameDashPosterJPG.Text = "-poster.jpg" - Me.chkMovieNameDashPosterJPG.UseVisualStyleBackColor = True - ' - 'chkFolderJPG - ' - Me.chkFolderJPG.AutoSize = True - Me.chkFolderJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkFolderJPG.Location = New System.Drawing.Point(6, 63) - Me.chkFolderJPG.Name = "chkFolderJPG" - Me.chkFolderJPG.Size = New System.Drawing.Size(77, 17) - Me.chkFolderJPG.TabIndex = 3 - Me.chkFolderJPG.Text = "folder.jpg" - Me.chkFolderJPG.UseVisualStyleBackColor = True - ' - 'chkPosterJPG - ' - Me.chkPosterJPG.AutoSize = True - Me.chkPosterJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkPosterJPG.Location = New System.Drawing.Point(85, 47) - Me.chkPosterJPG.Name = "chkPosterJPG" - Me.chkPosterJPG.Size = New System.Drawing.Size(79, 17) - Me.chkPosterJPG.TabIndex = 6 - Me.chkPosterJPG.Text = "poster.jpg" - Me.chkPosterJPG.UseVisualStyleBackColor = True - ' - 'chkPosterTBN - ' - Me.chkPosterTBN.AutoSize = True - Me.chkPosterTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkPosterTBN.Location = New System.Drawing.Point(6, 47) - Me.chkPosterTBN.Name = "chkPosterTBN" - Me.chkPosterTBN.Size = New System.Drawing.Size(80, 17) - Me.chkPosterTBN.TabIndex = 2 - Me.chkPosterTBN.Text = "poster.tbn" - Me.chkPosterTBN.UseVisualStyleBackColor = True - ' - 'chkMovieNameJPG - ' - Me.chkMovieNameJPG.AutoSize = True - Me.chkMovieNameJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkMovieNameJPG.Location = New System.Drawing.Point(85, 31) - Me.chkMovieNameJPG.Name = "chkMovieNameJPG" - Me.chkMovieNameJPG.Size = New System.Drawing.Size(92, 17) - Me.chkMovieNameJPG.TabIndex = 5 - Me.chkMovieNameJPG.Text = ".jpg" - Me.chkMovieNameJPG.UseVisualStyleBackColor = True - ' - 'chkMovieJPG - ' - Me.chkMovieJPG.AutoSize = True - Me.chkMovieJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkMovieJPG.Location = New System.Drawing.Point(6, 31) - Me.chkMovieJPG.Name = "chkMovieJPG" - Me.chkMovieJPG.Size = New System.Drawing.Size(76, 17) - Me.chkMovieJPG.TabIndex = 1 - Me.chkMovieJPG.Text = "movie.jpg" - Me.chkMovieJPG.UseVisualStyleBackColor = True - ' - 'chkMovieNameTBN - ' - Me.chkMovieNameTBN.AutoSize = True - Me.chkMovieNameTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkMovieNameTBN.Location = New System.Drawing.Point(85, 15) - Me.chkMovieNameTBN.Name = "chkMovieNameTBN" - Me.chkMovieNameTBN.Size = New System.Drawing.Size(93, 17) - Me.chkMovieNameTBN.TabIndex = 4 - Me.chkMovieNameTBN.Text = ".tbn" - Me.chkMovieNameTBN.UseVisualStyleBackColor = True - ' - 'chkMovieTBN - ' - Me.chkMovieTBN.AutoSize = True - Me.chkMovieTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkMovieTBN.Location = New System.Drawing.Point(6, 15) - Me.chkMovieTBN.Name = "chkMovieTBN" - Me.chkMovieTBN.Size = New System.Drawing.Size(77, 17) - Me.chkMovieTBN.TabIndex = 0 - Me.chkMovieTBN.Text = "movie.tbn" - Me.chkMovieTBN.UseVisualStyleBackColor = True - ' - 'lvMovies - ' - Me.lvMovies.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.colID, Me.colName, Me.colPath, Me.colRecur, Me.colFolder, Me.colSingle}) - Me.lvMovies.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lvMovies.FullRowSelect = True - Me.lvMovies.HideSelection = False - Me.lvMovies.Location = New System.Drawing.Point(5, 6) - Me.lvMovies.Name = "lvMovies" - Me.lvMovies.Size = New System.Drawing.Size(497, 105) - Me.lvMovies.Sorting = System.Windows.Forms.SortOrder.Ascending - Me.lvMovies.TabIndex = 0 - Me.lvMovies.UseCompatibleStateImageBehavior = False - Me.lvMovies.View = System.Windows.Forms.View.Details - ' - 'colID - ' - Me.colID.Width = 0 - ' - 'colName - ' - Me.colName.Text = "Name" - Me.colName.Width = 75 - ' - 'colPath - ' - Me.colPath.Text = "Path" - Me.colPath.Width = 134 - ' - 'colRecur - ' - Me.colRecur.Text = "Recursive" - Me.colRecur.Width = 78 - ' - 'colFolder - ' - Me.colFolder.Text = "Use Folder Name" - Me.colFolder.Width = 116 - ' - 'colSingle - ' - Me.colSingle.Text = "Single Video" - Me.colSingle.Width = 90 - ' - 'btnMovieRem - ' - Me.btnMovieRem.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.btnMovieRem.Image = CType(resources.GetObject("btnMovieRem.Image"), System.Drawing.Image) - Me.btnMovieRem.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnMovieRem.Location = New System.Drawing.Point(506, 88) - Me.btnMovieRem.Name = "btnMovieRem" - Me.btnMovieRem.Size = New System.Drawing.Size(104, 23) - Me.btnMovieRem.TabIndex = 3 - Me.btnMovieRem.Text = "Remove" - Me.btnMovieRem.TextAlign = System.Drawing.ContentAlignment.MiddleRight - Me.btnMovieRem.UseVisualStyleBackColor = True - ' - 'btnMovieAddFolder - ' - Me.btnMovieAddFolder.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.btnMovieAddFolder.Image = CType(resources.GetObject("btnMovieAddFolder.Image"), System.Drawing.Image) - Me.btnMovieAddFolder.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnMovieAddFolder.Location = New System.Drawing.Point(506, 6) - Me.btnMovieAddFolder.Name = "btnMovieAddFolder" - Me.btnMovieAddFolder.Size = New System.Drawing.Size(104, 23) - Me.btnMovieAddFolder.TabIndex = 1 - Me.btnMovieAddFolder.Text = "Add Source" - Me.btnMovieAddFolder.TextAlign = System.Drawing.ContentAlignment.MiddleRight - Me.btnMovieAddFolder.UseVisualStyleBackColor = True - ' - 'GroupBox14 - ' - Me.GroupBox14.Controls.Add(Me.chkPosterOnly) - Me.GroupBox14.Controls.Add(Me.txtPosterWidth) - Me.GroupBox14.Controls.Add(Me.txtPosterHeight) - Me.GroupBox14.Controls.Add(Me.lblPosterQual) - Me.GroupBox14.Controls.Add(Me.tbPosterQual) - Me.GroupBox14.Controls.Add(Me.Label24) - Me.GroupBox14.Controls.Add(Me.Label11) - Me.GroupBox14.Controls.Add(Me.Label12) - Me.GroupBox14.Controls.Add(Me.chkResizePoster) - Me.GroupBox14.Controls.Add(Me.lblPosterSize) - Me.GroupBox14.Controls.Add(Me.cbPosterSize) - Me.GroupBox14.Controls.Add(Me.chkOverwritePoster) - Me.GroupBox14.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.GroupBox14.Location = New System.Drawing.Point(190, 3) - Me.GroupBox14.Name = "GroupBox14" - Me.GroupBox14.Size = New System.Drawing.Size(218, 170) - Me.GroupBox14.TabIndex = 2 - Me.GroupBox14.TabStop = False - Me.GroupBox14.Text = "Poster" - ' - 'chkPosterOnly - ' - Me.chkPosterOnly.AutoSize = True - Me.chkPosterOnly.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkPosterOnly.Location = New System.Drawing.Point(163, 38) - Me.chkPosterOnly.Name = "chkPosterOnly" - Me.chkPosterOnly.Size = New System.Drawing.Size(50, 17) - Me.chkPosterOnly.TabIndex = 2 - Me.chkPosterOnly.Text = "Only" - Me.chkPosterOnly.UseVisualStyleBackColor = True - ' - 'txtPosterWidth - ' - Me.txtPosterWidth.Enabled = False - Me.txtPosterWidth.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtPosterWidth.Location = New System.Drawing.Point(68, 100) - Me.txtPosterWidth.Name = "txtPosterWidth" - Me.txtPosterWidth.Size = New System.Drawing.Size(40, 22) - Me.txtPosterWidth.TabIndex = 6 - ' - 'txtPosterHeight - ' - Me.txtPosterHeight.Enabled = False - Me.txtPosterHeight.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtPosterHeight.Location = New System.Drawing.Point(175, 100) - Me.txtPosterHeight.Name = "txtPosterHeight" - Me.txtPosterHeight.Size = New System.Drawing.Size(40, 22) - Me.txtPosterHeight.TabIndex = 8 - ' - 'lblPosterQual - ' - Me.lblPosterQual.AutoSize = True - Me.lblPosterQual.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblPosterQual.Location = New System.Drawing.Point(183, 147) - Me.lblPosterQual.Name = "lblPosterQual" - Me.lblPosterQual.Size = New System.Drawing.Size(29, 17) - Me.lblPosterQual.TabIndex = 11 - Me.lblPosterQual.Text = "100" - ' - 'tbPosterQual - ' - Me.tbPosterQual.AutoSize = False - Me.tbPosterQual.LargeChange = 10 - Me.tbPosterQual.Location = New System.Drawing.Point(7, 139) - Me.tbPosterQual.Maximum = 100 - Me.tbPosterQual.Name = "tbPosterQual" - Me.tbPosterQual.Size = New System.Drawing.Size(179, 27) - Me.tbPosterQual.TabIndex = 10 - Me.tbPosterQual.TickFrequency = 10 - Me.tbPosterQual.Value = 100 - ' - 'Label24 - ' - Me.Label24.AutoSize = True - Me.Label24.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label24.Location = New System.Drawing.Point(3, 127) - Me.Label24.Name = "Label24" - Me.Label24.Size = New System.Drawing.Size(47, 13) - Me.Label24.TabIndex = 9 - Me.Label24.Text = "Quality:" - ' - 'Label11 - ' - Me.Label11.AutoSize = True - Me.Label11.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label11.Location = New System.Drawing.Point(3, 104) - Me.Label11.Name = "Label11" - Me.Label11.Size = New System.Drawing.Size(66, 13) - Me.Label11.TabIndex = 5 - Me.Label11.Text = "Max Width:" - ' - 'Label12 - ' - Me.Label12.AutoSize = True - Me.Label12.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label12.Location = New System.Drawing.Point(106, 104) - Me.Label12.Name = "Label12" - Me.Label12.Size = New System.Drawing.Size(69, 13) - Me.Label12.TabIndex = 7 - Me.Label12.Text = "Max Height:" - ' - 'chkResizePoster - ' - Me.chkResizePoster.AutoSize = True - Me.chkResizePoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkResizePoster.Location = New System.Drawing.Point(6, 82) - Me.chkResizePoster.Name = "chkResizePoster" - Me.chkResizePoster.Size = New System.Drawing.Size(133, 17) - Me.chkResizePoster.TabIndex = 4 - Me.chkResizePoster.Text = "Automatically Resize:" - Me.chkResizePoster.UseVisualStyleBackColor = True - ' - 'lblPosterSize - ' - Me.lblPosterSize.AutoSize = True - Me.lblPosterSize.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblPosterSize.Location = New System.Drawing.Point(4, 18) - Me.lblPosterSize.Name = "lblPosterSize" - Me.lblPosterSize.Size = New System.Drawing.Size(80, 13) - Me.lblPosterSize.TabIndex = 0 - Me.lblPosterSize.Text = "Preferred Size:" - ' - 'cbPosterSize - ' - Me.cbPosterSize.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList - Me.cbPosterSize.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.cbPosterSize.FormattingEnabled = True - Me.cbPosterSize.Location = New System.Drawing.Point(6, 34) - Me.cbPosterSize.Name = "cbPosterSize" - Me.cbPosterSize.Size = New System.Drawing.Size(148, 21) - Me.cbPosterSize.TabIndex = 1 - ' - 'chkOverwritePoster - ' - Me.chkOverwritePoster.AutoSize = True - Me.chkOverwritePoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkOverwritePoster.Location = New System.Drawing.Point(6, 62) - Me.chkOverwritePoster.Name = "chkOverwritePoster" - Me.chkOverwritePoster.Size = New System.Drawing.Size(119, 17) - Me.chkOverwritePoster.TabIndex = 3 - Me.chkOverwritePoster.Text = "Overwrite Existing" - Me.chkOverwritePoster.UseVisualStyleBackColor = True - ' - 'GroupBox13 - ' - Me.GroupBox13.Controls.Add(Me.txtFanartWidth) - Me.GroupBox13.Controls.Add(Me.txtFanartHeight) - Me.GroupBox13.Controls.Add(Me.chkFanartOnly) - Me.GroupBox13.Controls.Add(Me.lblFanartQual) - Me.GroupBox13.Controls.Add(Me.tbFanartQual) - Me.GroupBox13.Controls.Add(Me.Label26) - Me.GroupBox13.Controls.Add(Me.Label9) - Me.GroupBox13.Controls.Add(Me.Label10) - Me.GroupBox13.Controls.Add(Me.chkResizeFanart) - Me.GroupBox13.Controls.Add(Me.cbFanartSize) - Me.GroupBox13.Controls.Add(Me.lblFanartSize) - Me.GroupBox13.Controls.Add(Me.chkOverwriteFanart) - Me.GroupBox13.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.GroupBox13.Location = New System.Drawing.Point(190, 185) - Me.GroupBox13.Name = "GroupBox13" - Me.GroupBox13.Size = New System.Drawing.Size(218, 176) - Me.GroupBox13.TabIndex = 3 - Me.GroupBox13.TabStop = False - Me.GroupBox13.Text = "Fanart" - ' - 'txtFanartWidth - ' - Me.txtFanartWidth.Enabled = False - Me.txtFanartWidth.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtFanartWidth.Location = New System.Drawing.Point(69, 100) - Me.txtFanartWidth.Name = "txtFanartWidth" - Me.txtFanartWidth.Size = New System.Drawing.Size(40, 22) - Me.txtFanartWidth.TabIndex = 6 - ' - 'txtFanartHeight - ' - Me.txtFanartHeight.Enabled = False - Me.txtFanartHeight.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtFanartHeight.Location = New System.Drawing.Point(175, 100) - Me.txtFanartHeight.Name = "txtFanartHeight" - Me.txtFanartHeight.Size = New System.Drawing.Size(40, 22) - Me.txtFanartHeight.TabIndex = 8 - ' - 'chkFanartOnly - ' - Me.chkFanartOnly.AutoSize = True - Me.chkFanartOnly.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkFanartOnly.Location = New System.Drawing.Point(163, 38) - Me.chkFanartOnly.Name = "chkFanartOnly" - Me.chkFanartOnly.Size = New System.Drawing.Size(50, 17) - Me.chkFanartOnly.TabIndex = 2 - Me.chkFanartOnly.Text = "Only" - Me.chkFanartOnly.UseVisualStyleBackColor = True - ' - 'lblFanartQual - ' - Me.lblFanartQual.AutoSize = True - Me.lblFanartQual.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblFanartQual.Location = New System.Drawing.Point(183, 151) - Me.lblFanartQual.Name = "lblFanartQual" - Me.lblFanartQual.Size = New System.Drawing.Size(29, 17) - Me.lblFanartQual.TabIndex = 11 - Me.lblFanartQual.Text = "100" - ' - 'tbFanartQual - ' - Me.tbFanartQual.AutoSize = False - Me.tbFanartQual.LargeChange = 10 - Me.tbFanartQual.Location = New System.Drawing.Point(6, 143) - Me.tbFanartQual.Maximum = 100 - Me.tbFanartQual.Name = "tbFanartQual" - Me.tbFanartQual.Size = New System.Drawing.Size(180, 27) - Me.tbFanartQual.TabIndex = 10 - Me.tbFanartQual.TickFrequency = 10 - Me.tbFanartQual.Value = 100 - ' - 'Label26 - ' - Me.Label26.AutoSize = True - Me.Label26.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label26.Location = New System.Drawing.Point(2, 131) - Me.Label26.Name = "Label26" - Me.Label26.Size = New System.Drawing.Size(47, 13) - Me.Label26.TabIndex = 9 - Me.Label26.Text = "Quality:" - ' - 'Label9 - ' - Me.Label9.AutoSize = True - Me.Label9.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label9.Location = New System.Drawing.Point(3, 104) - Me.Label9.Name = "Label9" - Me.Label9.Size = New System.Drawing.Size(66, 13) - Me.Label9.TabIndex = 5 - Me.Label9.Text = "Max Width:" - ' - 'Label10 - ' - Me.Label10.AutoSize = True - Me.Label10.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label10.Location = New System.Drawing.Point(107, 104) - Me.Label10.Name = "Label10" - Me.Label10.Size = New System.Drawing.Size(69, 13) - Me.Label10.TabIndex = 7 - Me.Label10.Text = "Max Height:" - ' - 'chkResizeFanart - ' - Me.chkResizeFanart.AutoSize = True - Me.chkResizeFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkResizeFanart.Location = New System.Drawing.Point(6, 82) - Me.chkResizeFanart.Name = "chkResizeFanart" - Me.chkResizeFanart.Size = New System.Drawing.Size(133, 17) - Me.chkResizeFanart.TabIndex = 4 - Me.chkResizeFanart.Text = "Automatically Resize:" - Me.chkResizeFanart.UseVisualStyleBackColor = True - ' - 'cbFanartSize - ' - Me.cbFanartSize.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList - Me.cbFanartSize.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.cbFanartSize.FormattingEnabled = True - Me.cbFanartSize.Location = New System.Drawing.Point(6, 34) - Me.cbFanartSize.Name = "cbFanartSize" - Me.cbFanartSize.Size = New System.Drawing.Size(148, 21) - Me.cbFanartSize.TabIndex = 1 - ' - 'lblFanartSize - ' - Me.lblFanartSize.AutoSize = True - Me.lblFanartSize.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblFanartSize.Location = New System.Drawing.Point(4, 18) - Me.lblFanartSize.Name = "lblFanartSize" - Me.lblFanartSize.Size = New System.Drawing.Size(80, 13) - Me.lblFanartSize.TabIndex = 0 - Me.lblFanartSize.Text = "Preferred Size:" - ' - 'chkOverwriteFanart - ' - Me.chkOverwriteFanart.AutoSize = True - Me.chkOverwriteFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkOverwriteFanart.Location = New System.Drawing.Point(6, 62) - Me.chkOverwriteFanart.Name = "chkOverwriteFanart" - Me.chkOverwriteFanart.Size = New System.Drawing.Size(119, 17) - Me.chkOverwriteFanart.TabIndex = 3 - Me.chkOverwriteFanart.Text = "Overwrite Existing" - Me.chkOverwriteFanart.UseVisualStyleBackColor = True - ' - 'GroupBox9 - ' - Me.GroupBox9.Controls.Add(Me.chkActorCache) - Me.GroupBox9.Controls.Add(Me.chkNoSaveImagesToNfo) - Me.GroupBox9.Controls.Add(Me.chkSingleScrapeImages) - Me.GroupBox9.Controls.Add(Me.GroupBox17) - Me.GroupBox9.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.GroupBox9.Location = New System.Drawing.Point(3, 3) - Me.GroupBox9.Name = "GroupBox9" - Me.GroupBox9.Size = New System.Drawing.Size(184, 168) - Me.GroupBox9.TabIndex = 0 - Me.GroupBox9.TabStop = False - Me.GroupBox9.Text = "Images" - ' - 'chkActorCache - ' - Me.chkActorCache.CheckAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkActorCache.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkActorCache.Location = New System.Drawing.Point(6, 35) - Me.chkActorCache.Name = "chkActorCache" - Me.chkActorCache.Size = New System.Drawing.Size(173, 19) - Me.chkActorCache.TabIndex = 1 - Me.chkActorCache.Text = "Enable Actors Cache" - Me.chkActorCache.TextAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkActorCache.UseVisualStyleBackColor = True - ' - 'chkNoSaveImagesToNfo - ' - Me.chkNoSaveImagesToNfo.CheckAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkNoSaveImagesToNfo.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkNoSaveImagesToNfo.Location = New System.Drawing.Point(6, 53) - Me.chkNoSaveImagesToNfo.Name = "chkNoSaveImagesToNfo" - Me.chkNoSaveImagesToNfo.Size = New System.Drawing.Size(172, 34) - Me.chkNoSaveImagesToNfo.TabIndex = 2 - Me.chkNoSaveImagesToNfo.Text = "Do Not Save Image URLs to Nfo" - Me.chkNoSaveImagesToNfo.TextAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkNoSaveImagesToNfo.UseVisualStyleBackColor = True - ' - 'chkSingleScrapeImages - ' - Me.chkSingleScrapeImages.CheckAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkSingleScrapeImages.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkSingleScrapeImages.Location = New System.Drawing.Point(6, 16) - Me.chkSingleScrapeImages.Name = "chkSingleScrapeImages" - Me.chkSingleScrapeImages.Size = New System.Drawing.Size(173, 19) - Me.chkSingleScrapeImages.TabIndex = 0 - Me.chkSingleScrapeImages.Text = "Get on Single Scrape" - Me.chkSingleScrapeImages.TextAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkSingleScrapeImages.UseVisualStyleBackColor = True - ' - 'GroupBox17 - ' - Me.GroupBox17.Controls.Add(Me.chkUseImgCacheUpdaters) - Me.GroupBox17.Controls.Add(Me.chkPersistImgCache) - Me.GroupBox17.Controls.Add(Me.chkUseImgCache) - Me.GroupBox17.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.GroupBox17.Location = New System.Drawing.Point(4, 84) - Me.GroupBox17.Name = "GroupBox17" - Me.GroupBox17.Size = New System.Drawing.Size(176, 79) - Me.GroupBox17.TabIndex = 3 - Me.GroupBox17.TabStop = False - Me.GroupBox17.Text = "Caching" - ' - 'chkUseImgCacheUpdaters - ' - Me.chkUseImgCacheUpdaters.CheckAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkUseImgCacheUpdaters.Enabled = False - Me.chkUseImgCacheUpdaters.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkUseImgCacheUpdaters.Location = New System.Drawing.Point(20, 35) - Me.chkUseImgCacheUpdaters.Name = "chkUseImgCacheUpdaters" - Me.chkUseImgCacheUpdaters.Size = New System.Drawing.Size(155, 18) - Me.chkUseImgCacheUpdaters.TabIndex = 1 - Me.chkUseImgCacheUpdaters.Text = "Use Cache for Scrapers" - Me.chkUseImgCacheUpdaters.TextAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkUseImgCacheUpdaters.UseVisualStyleBackColor = True - ' - 'chkPersistImgCache - ' - Me.chkPersistImgCache.AutoSize = True - Me.chkPersistImgCache.Enabled = False - Me.chkPersistImgCache.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkPersistImgCache.Location = New System.Drawing.Point(20, 58) - Me.chkPersistImgCache.Name = "chkPersistImgCache" - Me.chkPersistImgCache.Size = New System.Drawing.Size(144, 17) - Me.chkPersistImgCache.TabIndex = 2 - Me.chkPersistImgCache.Text = "Persistent Image Cache" - Me.chkPersistImgCache.UseVisualStyleBackColor = True - ' - 'chkUseImgCache - ' - Me.chkUseImgCache.AutoSize = True - Me.chkUseImgCache.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkUseImgCache.Location = New System.Drawing.Point(7, 16) - Me.chkUseImgCache.Name = "chkUseImgCache" - Me.chkUseImgCache.Size = New System.Drawing.Size(113, 17) - Me.chkUseImgCache.TabIndex = 0 - Me.chkUseImgCache.Text = "Use Image Cache" - Me.chkUseImgCache.UseVisualStyleBackColor = True - ' - 'chkUseETasFA - ' - Me.chkUseETasFA.CheckAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkUseETasFA.Enabled = False - Me.chkUseETasFA.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkUseETasFA.Location = New System.Drawing.Point(25, 84) - Me.chkUseETasFA.Name = "chkUseETasFA" - Me.chkUseETasFA.Size = New System.Drawing.Size(171, 30) - Me.chkUseETasFA.TabIndex = 4 - Me.chkUseETasFA.Text = "Use if no Fanart Found" - Me.chkUseETasFA.TextAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkUseETasFA.UseVisualStyleBackColor = True - ' - 'chkNoSpoilers - ' - Me.chkNoSpoilers.AutoSize = True - Me.chkNoSpoilers.Enabled = False - Me.chkNoSpoilers.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkNoSpoilers.Location = New System.Drawing.Point(25, 67) - Me.chkNoSpoilers.Name = "chkNoSpoilers" - Me.chkNoSpoilers.Size = New System.Drawing.Size(85, 17) - Me.chkNoSpoilers.TabIndex = 3 - Me.chkNoSpoilers.Text = "No Spoilers" - Me.chkNoSpoilers.UseVisualStyleBackColor = True - ' - 'Label15 - ' - Me.Label15.AutoSize = True - Me.Label15.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label15.Location = New System.Drawing.Point(22, 50) - Me.Label15.Name = "Label15" - Me.Label15.Size = New System.Drawing.Size(102, 13) - Me.Label15.TabIndex = 1 - Me.Label15.Text = "Number To Create:" - ' - 'txtAutoThumbs - ' - Me.txtAutoThumbs.Enabled = False - Me.txtAutoThumbs.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtAutoThumbs.Location = New System.Drawing.Point(124, 47) - Me.txtAutoThumbs.Name = "txtAutoThumbs" - Me.txtAutoThumbs.Size = New System.Drawing.Size(53, 22) - Me.txtAutoThumbs.TabIndex = 2 - ' - 'chkAutoThumbs - ' - Me.chkAutoThumbs.CheckAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkAutoThumbs.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkAutoThumbs.Location = New System.Drawing.Point(6, 17) - Me.chkAutoThumbs.Name = "chkAutoThumbs" - Me.chkAutoThumbs.Size = New System.Drawing.Size(188, 30) - Me.chkAutoThumbs.TabIndex = 0 - Me.chkAutoThumbs.Text = "Extract During Scrapers" - Me.chkAutoThumbs.TextAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkAutoThumbs.UseVisualStyleBackColor = True - ' - 'btnOK - ' - Me.btnOK.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.btnOK.Location = New System.Drawing.Point(813, 601) - Me.btnOK.Name = "btnOK" - Me.btnOK.Size = New System.Drawing.Size(75, 23) - Me.btnOK.TabIndex = 0 - Me.btnOK.Text = "OK" - Me.btnOK.UseVisualStyleBackColor = True - ' - 'btnApply - ' - Me.btnApply.Enabled = False - Me.btnApply.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.btnApply.Location = New System.Drawing.Point(650, 601) - Me.btnApply.Name = "btnApply" - Me.btnApply.Size = New System.Drawing.Size(75, 23) - Me.btnApply.TabIndex = 2 - Me.btnApply.Text = "Apply" - Me.btnApply.UseVisualStyleBackColor = True - ' - 'btnCancel - ' - Me.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel - Me.btnCancel.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.btnCancel.Location = New System.Drawing.Point(732, 601) - Me.btnCancel.Name = "btnCancel" - Me.btnCancel.Size = New System.Drawing.Size(75, 23) - Me.btnCancel.TabIndex = 1 - Me.btnCancel.Text = "Cancel" - Me.btnCancel.UseVisualStyleBackColor = True - ' - 'pnlTop - ' - Me.pnlTop.BackColor = System.Drawing.Color.SteelBlue - Me.pnlTop.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.pnlTop.Controls.Add(Me.Label2) - Me.pnlTop.Controls.Add(Me.Label4) - Me.pnlTop.Controls.Add(Me.PictureBox1) - Me.pnlTop.Dock = System.Windows.Forms.DockStyle.Top - Me.pnlTop.Location = New System.Drawing.Point(0, 0) - Me.pnlTop.Name = "pnlTop" - Me.pnlTop.Size = New System.Drawing.Size(892, 64) - Me.pnlTop.TabIndex = 3 - ' - 'Label2 - ' - Me.Label2.AutoSize = True - Me.Label2.BackColor = System.Drawing.Color.Transparent - Me.Label2.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.Label2.ForeColor = System.Drawing.Color.White - Me.Label2.Location = New System.Drawing.Point(61, 38) - Me.Label2.Name = "Label2" - Me.Label2.Size = New System.Drawing.Size(246, 13) - Me.Label2.TabIndex = 1 - Me.Label2.Text = "Configure Ember's appearance and operation." - ' - 'Label4 - ' - Me.Label4.AutoSize = True - Me.Label4.BackColor = System.Drawing.Color.Transparent - Me.Label4.Font = New System.Drawing.Font("Segoe UI", 18.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.Label4.ForeColor = System.Drawing.Color.White - Me.Label4.Location = New System.Drawing.Point(58, 3) - Me.Label4.Name = "Label4" - Me.Label4.Size = New System.Drawing.Size(107, 32) - Me.Label4.TabIndex = 0 - Me.Label4.Text = "Settings" - ' - 'PictureBox1 - ' - Me.PictureBox1.BackColor = System.Drawing.Color.Transparent - Me.PictureBox1.Image = CType(resources.GetObject("PictureBox1.Image"), System.Drawing.Image) - Me.PictureBox1.Location = New System.Drawing.Point(7, 8) - Me.PictureBox1.Name = "PictureBox1" - Me.PictureBox1.Size = New System.Drawing.Size(48, 48) - Me.PictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize - Me.PictureBox1.TabIndex = 0 - Me.PictureBox1.TabStop = False - ' - 'ilSettings - ' - Me.ilSettings.ImageStream = CType(resources.GetObject("ilSettings.ImageStream"), System.Windows.Forms.ImageListStreamer) - Me.ilSettings.TransparentColor = System.Drawing.Color.Transparent - Me.ilSettings.Images.SetKeyName(0, "process.png") - Me.ilSettings.Images.SetKeyName(1, "comments.png") - Me.ilSettings.Images.SetKeyName(2, "film.png") - Me.ilSettings.Images.SetKeyName(3, "copy_paste.png") - Me.ilSettings.Images.SetKeyName(4, "attachment.png") - Me.ilSettings.Images.SetKeyName(5, "folder_full.png") - Me.ilSettings.Images.SetKeyName(6, "image.png") - Me.ilSettings.Images.SetKeyName(7, "television.ico") - Me.ilSettings.Images.SetKeyName(8, "favorite_film.png") - Me.ilSettings.Images.SetKeyName(9, "settingscheck.png") - Me.ilSettings.Images.SetKeyName(10, "settingsx.png") - ' - 'tvSettings - ' - Me.tvSettings.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.tvSettings.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.tvSettings.FullRowSelect = True - Me.tvSettings.HideSelection = False - Me.tvSettings.ImageIndex = 0 - Me.tvSettings.ImageList = Me.ilSettings - Me.tvSettings.Location = New System.Drawing.Point(5, 147) - Me.tvSettings.Name = "tvSettings" - Me.tvSettings.SelectedImageIndex = 0 - Me.tvSettings.ShowLines = False - Me.tvSettings.ShowPlusMinus = False - Me.tvSettings.Size = New System.Drawing.Size(242, 402) - Me.tvSettings.TabIndex = 7 - ' - 'pnlGeneral - ' - Me.pnlGeneral.BackColor = System.Drawing.Color.White - Me.pnlGeneral.Controls.Add(Me.gbInterface) - Me.pnlGeneral.Controls.Add(Me.GroupBox4) - Me.pnlGeneral.Location = New System.Drawing.Point(1322, 535) - Me.pnlGeneral.Name = "pnlGeneral" - Me.pnlGeneral.Size = New System.Drawing.Size(617, 400) - Me.pnlGeneral.TabIndex = 10 - Me.pnlGeneral.Visible = False - ' - 'gbInterface - ' - Me.gbInterface.Controls.Add(Me.GroupBox29) - Me.gbInterface.Controls.Add(Me.Label32) - Me.gbInterface.Controls.Add(Me.cbIntLang) - Me.gbInterface.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.gbInterface.Location = New System.Drawing.Point(7, 3) - Me.gbInterface.Name = "gbInterface" - Me.gbInterface.Size = New System.Drawing.Size(196, 344) - Me.gbInterface.TabIndex = 0 - Me.gbInterface.TabStop = False - Me.gbInterface.Text = "Interface" - ' - 'pnlXBMCCom - ' - Me.pnlXBMCCom.BackColor = System.Drawing.Color.White - Me.pnlXBMCCom.Controls.Add(Me.gbProxy) - Me.pnlXBMCCom.Location = New System.Drawing.Point(766, 722) - Me.pnlXBMCCom.Name = "pnlXBMCCom" - Me.pnlXBMCCom.Size = New System.Drawing.Size(617, 400) - Me.pnlXBMCCom.TabIndex = 18 - Me.pnlXBMCCom.Visible = False - ' - 'gbProxy - ' - Me.gbProxy.Controls.Add(Me.gbCreds) - Me.gbProxy.Controls.Add(Me.lblProxyPort) - Me.gbProxy.Controls.Add(Me.lblProxyURI) - Me.gbProxy.Controls.Add(Me.txtProxyPort) - Me.gbProxy.Controls.Add(Me.txtProxyURI) - Me.gbProxy.Controls.Add(Me.chkEnableProxy) - Me.gbProxy.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.gbProxy.Location = New System.Drawing.Point(3, 6) - Me.gbProxy.Name = "gbProxy" - Me.gbProxy.Size = New System.Drawing.Size(290, 230) - Me.gbProxy.TabIndex = 0 - Me.gbProxy.TabStop = False - Me.gbProxy.Text = "Proxy" - ' - 'gbCreds - ' - Me.gbCreds.Controls.Add(Me.txtProxyDomain) - Me.gbCreds.Controls.Add(Me.lblProxyDomain) - Me.gbCreds.Controls.Add(Me.txtProxyPassword) - Me.gbCreds.Controls.Add(Me.txtProxyUsername) - Me.gbCreds.Controls.Add(Me.lblProxyUN) - Me.gbCreds.Controls.Add(Me.lblProxyPW) - Me.gbCreds.Controls.Add(Me.chkEnableCredentials) - Me.gbCreds.Enabled = False - Me.gbCreds.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.gbCreds.Location = New System.Drawing.Point(5, 115) - Me.gbCreds.Name = "gbCreds" - Me.gbCreds.Size = New System.Drawing.Size(279, 103) - Me.gbCreds.TabIndex = 5 - Me.gbCreds.TabStop = False - Me.gbCreds.Text = "Credentials" - ' - 'txtProxyDomain - ' - Me.txtProxyDomain.Enabled = False - Me.txtProxyDomain.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtProxyDomain.Location = New System.Drawing.Point(64, 69) - Me.txtProxyDomain.Name = "txtProxyDomain" - Me.txtProxyDomain.Size = New System.Drawing.Size(209, 22) - Me.txtProxyDomain.TabIndex = 6 - ' - 'lblProxyDomain - ' - Me.lblProxyDomain.AutoSize = True - Me.lblProxyDomain.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblProxyDomain.Location = New System.Drawing.Point(14, 72) - Me.lblProxyDomain.Name = "lblProxyDomain" - Me.lblProxyDomain.Size = New System.Drawing.Size(50, 13) - Me.lblProxyDomain.TabIndex = 5 - Me.lblProxyDomain.Text = "Domain:" - ' - 'txtProxyPassword - ' - Me.txtProxyPassword.Enabled = False - Me.txtProxyPassword.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtProxyPassword.Location = New System.Drawing.Point(201, 39) - Me.txtProxyPassword.Name = "txtProxyPassword" - Me.txtProxyPassword.Size = New System.Drawing.Size(72, 22) - Me.txtProxyPassword.TabIndex = 4 - Me.txtProxyPassword.UseSystemPasswordChar = True - ' - 'txtProxyUsername - ' - Me.txtProxyUsername.Enabled = False - Me.txtProxyUsername.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtProxyUsername.Location = New System.Drawing.Point(64, 39) - Me.txtProxyUsername.Name = "txtProxyUsername" - Me.txtProxyUsername.Size = New System.Drawing.Size(72, 22) - Me.txtProxyUsername.TabIndex = 2 - ' - 'lblProxyUN - ' - Me.lblProxyUN.AutoSize = True - Me.lblProxyUN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblProxyUN.Location = New System.Drawing.Point(3, 42) - Me.lblProxyUN.Name = "lblProxyUN" - Me.lblProxyUN.Size = New System.Drawing.Size(61, 13) - Me.lblProxyUN.TabIndex = 1 - Me.lblProxyUN.Text = "Username:" - ' - 'lblProxyPW - ' - Me.lblProxyPW.AutoSize = True - Me.lblProxyPW.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblProxyPW.Location = New System.Drawing.Point(143, 42) - Me.lblProxyPW.Name = "lblProxyPW" - Me.lblProxyPW.Size = New System.Drawing.Size(59, 13) - Me.lblProxyPW.TabIndex = 3 - Me.lblProxyPW.Text = "Password:" - ' - 'chkEnableCredentials - ' - Me.chkEnableCredentials.AutoSize = True - Me.chkEnableCredentials.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkEnableCredentials.Location = New System.Drawing.Point(8, 17) - Me.chkEnableCredentials.Name = "chkEnableCredentials" - Me.chkEnableCredentials.Size = New System.Drawing.Size(122, 17) - Me.chkEnableCredentials.TabIndex = 0 - Me.chkEnableCredentials.Text = "Enable Credentials" - Me.chkEnableCredentials.UseVisualStyleBackColor = True - ' - 'lblProxyPort - ' - Me.lblProxyPort.AutoSize = True - Me.lblProxyPort.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblProxyPort.Location = New System.Drawing.Point(9, 88) - Me.lblProxyPort.Name = "lblProxyPort" - Me.lblProxyPort.Size = New System.Drawing.Size(61, 13) - Me.lblProxyPort.TabIndex = 3 - Me.lblProxyPort.Text = "Proxy Port:" - ' - 'lblProxyURI - ' - Me.lblProxyURI.AutoSize = True - Me.lblProxyURI.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblProxyURI.Location = New System.Drawing.Point(9, 39) - Me.lblProxyURI.Name = "lblProxyURI" - Me.lblProxyURI.Size = New System.Drawing.Size(58, 13) - Me.lblProxyURI.TabIndex = 1 - Me.lblProxyURI.Text = "Proxy URI:" - ' - 'txtProxyPort - ' - Me.txtProxyPort.Enabled = False - Me.txtProxyPort.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtProxyPort.Location = New System.Drawing.Point(72, 84) - Me.txtProxyPort.Name = "txtProxyPort" - Me.txtProxyPort.Size = New System.Drawing.Size(51, 22) - Me.txtProxyPort.TabIndex = 4 - ' - 'txtProxyURI - ' - Me.txtProxyURI.Enabled = False - Me.txtProxyURI.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtProxyURI.Location = New System.Drawing.Point(11, 54) - Me.txtProxyURI.Name = "txtProxyURI" - Me.txtProxyURI.Size = New System.Drawing.Size(267, 22) - Me.txtProxyURI.TabIndex = 2 - ' - 'chkEnableProxy - ' - Me.chkEnableProxy.AutoSize = True - Me.chkEnableProxy.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkEnableProxy.Location = New System.Drawing.Point(11, 17) - Me.chkEnableProxy.Name = "chkEnableProxy" - Me.chkEnableProxy.Size = New System.Drawing.Size(91, 17) - Me.chkEnableProxy.TabIndex = 0 - Me.chkEnableProxy.Text = "Enable Proxy" - Me.chkEnableProxy.UseVisualStyleBackColor = True - ' - 'pnlMovies - ' - Me.pnlMovies.BackColor = System.Drawing.Color.White - Me.pnlMovies.Controls.Add(Me.gbGenreFilter) - Me.pnlMovies.Controls.Add(Me.gbFilters) - Me.pnlMovies.Controls.Add(Me.GroupBox27) - Me.pnlMovies.Controls.Add(Me.GroupBox12) - Me.pnlMovies.Controls.Add(Me.GroupBox2) - Me.pnlMovies.Location = New System.Drawing.Point(997, 642) - Me.pnlMovies.Name = "pnlMovies" - Me.pnlMovies.Size = New System.Drawing.Size(617, 400) - Me.pnlMovies.TabIndex = 15 - Me.pnlMovies.Visible = False - ' - 'gbGenreFilter - ' - Me.gbGenreFilter.Controls.Add(Me.lbGenre) - Me.gbGenreFilter.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.gbGenreFilter.Location = New System.Drawing.Point(428, 209) - Me.gbGenreFilter.Name = "gbGenreFilter" - Me.gbGenreFilter.Size = New System.Drawing.Size(183, 151) - Me.gbGenreFilter.TabIndex = 7 - Me.gbGenreFilter.TabStop = False - Me.gbGenreFilter.Text = "Genre Language Filter" - ' - 'gbFilters - ' - Me.gbFilters.Controls.Add(Me.btnResetMovieFilters) - Me.gbFilters.Controls.Add(Me.btnDown) - Me.gbFilters.Controls.Add(Me.btnUp) - Me.gbFilters.Controls.Add(Me.chkProperCase) - Me.gbFilters.Controls.Add(Me.btnRemoveFilter) - Me.gbFilters.Controls.Add(Me.btnAddFilter) - Me.gbFilters.Controls.Add(Me.txtFilter) - Me.gbFilters.Controls.Add(Me.lstFilters) - Me.gbFilters.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.gbFilters.Location = New System.Drawing.Point(229, 7) - Me.gbFilters.Name = "gbFilters" - Me.gbFilters.Size = New System.Drawing.Size(382, 200) - Me.gbFilters.TabIndex = 6 - Me.gbFilters.TabStop = False - Me.gbFilters.Text = "Folder/File Name Filters" - ' - 'btnResetMovieFilters - ' - Me.btnResetMovieFilters.Image = CType(resources.GetObject("btnResetMovieFilters.Image"), System.Drawing.Image) - Me.btnResetMovieFilters.Location = New System.Drawing.Point(355, 11) - Me.btnResetMovieFilters.Name = "btnResetMovieFilters" - Me.btnResetMovieFilters.Size = New System.Drawing.Size(23, 23) - Me.btnResetMovieFilters.TabIndex = 8 - Me.btnResetMovieFilters.UseVisualStyleBackColor = True - ' - 'btnDown - ' - Me.btnDown.Image = CType(resources.GetObject("btnDown.Image"), System.Drawing.Image) - Me.btnDown.Location = New System.Drawing.Point(313, 172) - Me.btnDown.Name = "btnDown" - Me.btnDown.Size = New System.Drawing.Size(23, 23) - Me.btnDown.TabIndex = 5 - Me.btnDown.UseVisualStyleBackColor = True - ' - 'btnUp - ' - Me.btnUp.Image = CType(resources.GetObject("btnUp.Image"), System.Drawing.Image) - Me.btnUp.Location = New System.Drawing.Point(289, 172) - Me.btnUp.Name = "btnUp" - Me.btnUp.Size = New System.Drawing.Size(23, 23) - Me.btnUp.TabIndex = 4 - Me.btnUp.UseVisualStyleBackColor = True - ' - 'chkProperCase - ' - Me.chkProperCase.AutoSize = True - Me.chkProperCase.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkProperCase.Location = New System.Drawing.Point(6, 16) - Me.chkProperCase.Name = "chkProperCase" - Me.chkProperCase.Size = New System.Drawing.Size(181, 17) - Me.chkProperCase.TabIndex = 0 - Me.chkProperCase.Text = "Convert Names to Proper Case" - Me.chkProperCase.UseVisualStyleBackColor = True - ' - 'btnRemoveFilter - ' - Me.btnRemoveFilter.Image = CType(resources.GetObject("btnRemoveFilter.Image"), System.Drawing.Image) - Me.btnRemoveFilter.Location = New System.Drawing.Point(354, 172) - Me.btnRemoveFilter.Name = "btnRemoveFilter" - Me.btnRemoveFilter.Size = New System.Drawing.Size(23, 23) - Me.btnRemoveFilter.TabIndex = 6 - Me.btnRemoveFilter.UseVisualStyleBackColor = True - ' - 'btnAddFilter - ' - Me.btnAddFilter.Image = CType(resources.GetObject("btnAddFilter.Image"), System.Drawing.Image) - Me.btnAddFilter.Location = New System.Drawing.Point(247, 172) - Me.btnAddFilter.Name = "btnAddFilter" - Me.btnAddFilter.Size = New System.Drawing.Size(23, 23) - Me.btnAddFilter.TabIndex = 3 - Me.btnAddFilter.UseVisualStyleBackColor = True - ' - 'txtFilter - ' - Me.txtFilter.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtFilter.Location = New System.Drawing.Point(6, 173) - Me.txtFilter.Name = "txtFilter" - Me.txtFilter.Size = New System.Drawing.Size(239, 22) - Me.txtFilter.TabIndex = 2 - ' - 'lstFilters - ' - Me.lstFilters.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lstFilters.FormattingEnabled = True - Me.lstFilters.Location = New System.Drawing.Point(6, 36) - Me.lstFilters.Name = "lstFilters" - Me.lstFilters.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended - Me.lstFilters.Size = New System.Drawing.Size(371, 121) - Me.lstFilters.TabIndex = 1 - ' - 'GroupBox27 - ' - Me.GroupBox27.Controls.Add(Me.chkMissingExtra) - Me.GroupBox27.Controls.Add(Me.chkMissingSubs) - Me.GroupBox27.Controls.Add(Me.chkMissingTrailer) - Me.GroupBox27.Controls.Add(Me.chkMissingNFO) - Me.GroupBox27.Controls.Add(Me.chkMissingFanart) - Me.GroupBox27.Controls.Add(Me.chkMissingPoster) - Me.GroupBox27.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.GroupBox27.Location = New System.Drawing.Point(229, 209) - Me.GroupBox27.Name = "GroupBox27" - Me.GroupBox27.Size = New System.Drawing.Size(185, 123) - Me.GroupBox27.TabIndex = 5 - Me.GroupBox27.TabStop = False - Me.GroupBox27.Text = "Missing Items Filter" - ' - 'chkMissingExtra - ' - Me.chkMissingExtra.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkMissingExtra.Location = New System.Drawing.Point(8, 98) - Me.chkMissingExtra.Name = "chkMissingExtra" - Me.chkMissingExtra.Size = New System.Drawing.Size(174, 17) - Me.chkMissingExtra.TabIndex = 11 - Me.chkMissingExtra.Text = "Check for Extrathumbs" - Me.chkMissingExtra.UseVisualStyleBackColor = True - ' - 'chkMissingSubs - ' - Me.chkMissingSubs.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkMissingSubs.Location = New System.Drawing.Point(8, 82) - Me.chkMissingSubs.Name = "chkMissingSubs" - Me.chkMissingSubs.Size = New System.Drawing.Size(174, 17) - Me.chkMissingSubs.TabIndex = 10 - Me.chkMissingSubs.Text = "Check for Subs" - Me.chkMissingSubs.UseVisualStyleBackColor = True - ' - 'chkMissingTrailer - ' - Me.chkMissingTrailer.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkMissingTrailer.Location = New System.Drawing.Point(8, 66) - Me.chkMissingTrailer.Name = "chkMissingTrailer" - Me.chkMissingTrailer.Size = New System.Drawing.Size(174, 17) - Me.chkMissingTrailer.TabIndex = 9 - Me.chkMissingTrailer.Text = "Check for Trailer" - Me.chkMissingTrailer.UseVisualStyleBackColor = True - ' - 'chkMissingNFO - ' - Me.chkMissingNFO.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkMissingNFO.Location = New System.Drawing.Point(8, 50) - Me.chkMissingNFO.Name = "chkMissingNFO" - Me.chkMissingNFO.Size = New System.Drawing.Size(174, 17) - Me.chkMissingNFO.TabIndex = 8 - Me.chkMissingNFO.Text = "Check for NFO" - Me.chkMissingNFO.UseVisualStyleBackColor = True - ' - 'chkMissingFanart - ' - Me.chkMissingFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkMissingFanart.Location = New System.Drawing.Point(8, 34) - Me.chkMissingFanart.Name = "chkMissingFanart" - Me.chkMissingFanart.Size = New System.Drawing.Size(174, 17) - Me.chkMissingFanart.TabIndex = 7 - Me.chkMissingFanart.Text = "Check for Fanart" - Me.chkMissingFanart.UseVisualStyleBackColor = True - ' - 'chkMissingPoster - ' - Me.chkMissingPoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkMissingPoster.Location = New System.Drawing.Point(8, 18) - Me.chkMissingPoster.Name = "chkMissingPoster" - Me.chkMissingPoster.Size = New System.Drawing.Size(174, 17) - Me.chkMissingPoster.TabIndex = 6 - Me.chkMissingPoster.Text = "Check for Poster" - Me.chkMissingPoster.UseVisualStyleBackColor = True - ' - 'GroupBox16 - ' - Me.GroupBox16.Controls.Add(Me.chkAutoBD) - Me.GroupBox16.Controls.Add(Me.btnBrowse) - Me.GroupBox16.Controls.Add(Me.txtBDPath) - Me.GroupBox16.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.GroupBox16.Location = New System.Drawing.Point(243, 315) - Me.GroupBox16.Name = "GroupBox16" - Me.GroupBox16.Size = New System.Drawing.Size(366, 69) - Me.GroupBox16.TabIndex = 6 - Me.GroupBox16.TabStop = False - Me.GroupBox16.Text = "Backdrops Folder" - ' - 'chkAutoBD - ' - Me.chkAutoBD.AutoSize = True - Me.chkAutoBD.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkAutoBD.Location = New System.Drawing.Point(12, 46) - Me.chkAutoBD.Name = "chkAutoBD" - Me.chkAutoBD.Size = New System.Drawing.Size(265, 17) - Me.chkAutoBD.TabIndex = 2 - Me.chkAutoBD.Text = "Automatically Save Fanart To Backdrops Folder" - Me.chkAutoBD.UseVisualStyleBackColor = True - ' - 'btnBrowse - ' - Me.btnBrowse.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.btnBrowse.Location = New System.Drawing.Point(336, 15) - Me.btnBrowse.Name = "btnBrowse" - Me.btnBrowse.Size = New System.Drawing.Size(25, 23) - Me.btnBrowse.TabIndex = 1 - Me.btnBrowse.Text = "..." - Me.btnBrowse.UseVisualStyleBackColor = True - ' - 'txtBDPath - ' - Me.txtBDPath.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtBDPath.Location = New System.Drawing.Point(7, 17) - Me.txtBDPath.Name = "txtBDPath" - Me.txtBDPath.Size = New System.Drawing.Size(323, 22) - Me.txtBDPath.TabIndex = 0 - ' - 'lblCurrent - ' - Me.lblCurrent.BackColor = System.Drawing.Color.SteelBlue - Me.lblCurrent.Font = New System.Drawing.Font("Segoe UI", 14.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblCurrent.ForeColor = System.Drawing.Color.White - Me.lblCurrent.Location = New System.Drawing.Point(26, -1) - Me.lblCurrent.Name = "lblCurrent" - Me.lblCurrent.Size = New System.Drawing.Size(489, 25) - Me.lblCurrent.TabIndex = 0 - Me.lblCurrent.Text = "General" - ' - 'pnlCurrent - ' - Me.pnlCurrent.BackColor = System.Drawing.Color.SteelBlue - Me.pnlCurrent.Location = New System.Drawing.Point(516, 119) - Me.pnlCurrent.Name = "pnlCurrent" - Me.pnlCurrent.Size = New System.Drawing.Size(371, 25) - Me.pnlCurrent.TabIndex = 6 - ' - 'Panel1 - ' - Me.Panel1.BackColor = System.Drawing.Color.SteelBlue - Me.Panel1.Controls.Add(Me.pbCurrent) - Me.Panel1.Controls.Add(Me.lblCurrent) - Me.Panel1.Location = New System.Drawing.Point(5, 119) - Me.Panel1.Name = "Panel1" - Me.Panel1.Size = New System.Drawing.Size(515, 25) - Me.Panel1.TabIndex = 5 - ' - 'pbCurrent - ' - Me.pbCurrent.Location = New System.Drawing.Point(2, 0) - Me.pbCurrent.Name = "pbCurrent" - Me.pbCurrent.Size = New System.Drawing.Size(24, 24) - Me.pbCurrent.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom - Me.pbCurrent.TabIndex = 2 - Me.pbCurrent.TabStop = False - ' - 'pnlExtensions - ' - Me.pnlExtensions.BackColor = System.Drawing.Color.White - Me.pnlExtensions.Controls.Add(Me.GroupBox22) - Me.pnlExtensions.Controls.Add(Me.GroupBox3) - Me.pnlExtensions.Controls.Add(Me.GroupBox18) - Me.pnlExtensions.Location = New System.Drawing.Point(855, 706) - Me.pnlExtensions.Name = "pnlExtensions" - Me.pnlExtensions.Size = New System.Drawing.Size(617, 400) - Me.pnlExtensions.TabIndex = 17 - Me.pnlExtensions.Visible = False - ' - 'GroupBox22 - ' - Me.GroupBox22.Controls.Add(Me.btnRemoveNoStack) - Me.GroupBox22.Controls.Add(Me.btnAddNoStack) - Me.GroupBox22.Controls.Add(Me.txtNoStack) - Me.GroupBox22.Controls.Add(Me.lstNoStack) - Me.GroupBox22.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.GroupBox22.Location = New System.Drawing.Point(202, 6) - Me.GroupBox22.Name = "GroupBox22" - Me.GroupBox22.Size = New System.Drawing.Size(194, 199) - Me.GroupBox22.TabIndex = 1 - Me.GroupBox22.TabStop = False - Me.GroupBox22.Text = "No Stack Extensions" - ' - 'btnRemoveNoStack - ' - Me.btnRemoveNoStack.Image = CType(resources.GetObject("btnRemoveNoStack.Image"), System.Drawing.Image) - Me.btnRemoveNoStack.Location = New System.Drawing.Point(160, 167) - Me.btnRemoveNoStack.Name = "btnRemoveNoStack" - Me.btnRemoveNoStack.Size = New System.Drawing.Size(23, 23) - Me.btnRemoveNoStack.TabIndex = 3 - Me.btnRemoveNoStack.UseVisualStyleBackColor = True - ' - 'btnAddNoStack - ' - Me.btnAddNoStack.Image = CType(resources.GetObject("btnAddNoStack.Image"), System.Drawing.Image) - Me.btnAddNoStack.Location = New System.Drawing.Point(73, 167) - Me.btnAddNoStack.Name = "btnAddNoStack" - Me.btnAddNoStack.Size = New System.Drawing.Size(23, 23) - Me.btnAddNoStack.TabIndex = 2 - Me.btnAddNoStack.UseVisualStyleBackColor = True - ' - 'txtNoStack - ' - Me.txtNoStack.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtNoStack.Location = New System.Drawing.Point(11, 168) - Me.txtNoStack.Name = "txtNoStack" - Me.txtNoStack.Size = New System.Drawing.Size(61, 22) - Me.txtNoStack.TabIndex = 1 - ' - 'lstNoStack - ' - Me.lstNoStack.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lstNoStack.FormattingEnabled = True - Me.lstNoStack.Location = New System.Drawing.Point(11, 15) - Me.lstNoStack.Name = "lstNoStack" - Me.lstNoStack.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended - Me.lstNoStack.Size = New System.Drawing.Size(171, 134) - Me.lstNoStack.Sorted = True - Me.lstNoStack.TabIndex = 0 - ' - 'GroupBox18 - ' - Me.GroupBox18.Controls.Add(Me.btnResetValidExts) - Me.GroupBox18.Controls.Add(Me.btnRemMovieExt) - Me.GroupBox18.Controls.Add(Me.btnAddMovieExt) - Me.GroupBox18.Controls.Add(Me.txtMovieExt) - Me.GroupBox18.Controls.Add(Me.lstMovieExts) - Me.GroupBox18.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.GroupBox18.Location = New System.Drawing.Point(3, 6) - Me.GroupBox18.Name = "GroupBox18" - Me.GroupBox18.Size = New System.Drawing.Size(192, 385) - Me.GroupBox18.TabIndex = 0 - Me.GroupBox18.TabStop = False - Me.GroupBox18.Text = "Valid Video Extensions" - ' - 'btnResetValidExts - ' - Me.btnResetValidExts.Image = CType(resources.GetObject("btnResetValidExts.Image"), System.Drawing.Image) - Me.btnResetValidExts.Location = New System.Drawing.Point(164, 12) - Me.btnResetValidExts.Name = "btnResetValidExts" - Me.btnResetValidExts.Size = New System.Drawing.Size(23, 23) - Me.btnResetValidExts.TabIndex = 4 - Me.btnResetValidExts.UseVisualStyleBackColor = True - ' - 'btnRemMovieExt - ' - Me.btnRemMovieExt.Image = CType(resources.GetObject("btnRemMovieExt.Image"), System.Drawing.Image) - Me.btnRemMovieExt.Location = New System.Drawing.Point(163, 356) - Me.btnRemMovieExt.Name = "btnRemMovieExt" - Me.btnRemMovieExt.Size = New System.Drawing.Size(23, 23) - Me.btnRemMovieExt.TabIndex = 3 - Me.btnRemMovieExt.UseVisualStyleBackColor = True - ' - 'btnAddMovieExt - ' - Me.btnAddMovieExt.Image = CType(resources.GetObject("btnAddMovieExt.Image"), System.Drawing.Image) - Me.btnAddMovieExt.Location = New System.Drawing.Point(68, 356) - Me.btnAddMovieExt.Name = "btnAddMovieExt" - Me.btnAddMovieExt.Size = New System.Drawing.Size(23, 23) - Me.btnAddMovieExt.TabIndex = 2 - Me.btnAddMovieExt.UseVisualStyleBackColor = True - ' - 'txtMovieExt - ' - Me.txtMovieExt.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtMovieExt.Location = New System.Drawing.Point(6, 357) - Me.txtMovieExt.Name = "txtMovieExt" - Me.txtMovieExt.Size = New System.Drawing.Size(61, 22) - Me.txtMovieExt.TabIndex = 1 - ' - 'lstMovieExts - ' - Me.lstMovieExts.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lstMovieExts.FormattingEnabled = True - Me.lstMovieExts.Location = New System.Drawing.Point(6, 37) - Me.lstMovieExts.Name = "lstMovieExts" - Me.lstMovieExts.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended - Me.lstMovieExts.Size = New System.Drawing.Size(180, 303) - Me.lstMovieExts.Sorted = True - Me.lstMovieExts.TabIndex = 0 - ' - 'pnlSources - ' - Me.pnlSources.BackColor = System.Drawing.Color.White - Me.pnlSources.Controls.Add(Me.btnEditSource) - Me.pnlSources.Controls.Add(Me.GroupBox19) - Me.pnlSources.Controls.Add(Me.lvMovies) - Me.pnlSources.Controls.Add(Me.btnMovieRem) - Me.pnlSources.Controls.Add(Me.btnMovieAddFolder) - Me.pnlSources.Controls.Add(Me.GroupBox8) - Me.pnlSources.Controls.Add(Me.GroupBox16) - Me.pnlSources.Location = New System.Drawing.Point(1374, 513) - Me.pnlSources.Name = "pnlSources" - Me.pnlSources.Size = New System.Drawing.Size(617, 402) - Me.pnlSources.TabIndex = 13 - Me.pnlSources.Visible = False - ' - 'btnEditSource - ' - Me.btnEditSource.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.btnEditSource.Image = CType(resources.GetObject("btnEditSource.Image"), System.Drawing.Image) - Me.btnEditSource.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnEditSource.Location = New System.Drawing.Point(506, 35) - Me.btnEditSource.Name = "btnEditSource" - Me.btnEditSource.Size = New System.Drawing.Size(104, 23) - Me.btnEditSource.TabIndex = 2 - Me.btnEditSource.Text = "Edit Source" - Me.btnEditSource.TextAlign = System.Drawing.ContentAlignment.MiddleRight - Me.btnEditSource.UseVisualStyleBackColor = True - ' - 'GroupBox19 - ' - Me.GroupBox19.Controls.Add(Me.chkScanOrderModify) - Me.GroupBox19.Controls.Add(Me.chkSortBeforeScan) - Me.GroupBox19.Controls.Add(Me.chkIgnoreLastScan) - Me.GroupBox19.Controls.Add(Me.chkCleanDB) - Me.GroupBox19.Controls.Add(Me.chkAutoDetectVTS) - Me.GroupBox19.Controls.Add(Me.chkSkipStackedSizeCheck) - Me.GroupBox19.Controls.Add(Me.Label21) - Me.GroupBox19.Controls.Add(Me.txtSkipLessThan) - Me.GroupBox19.Controls.Add(Me.Label20) - Me.GroupBox19.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.GroupBox19.Location = New System.Drawing.Point(5, 113) - Me.GroupBox19.Name = "GroupBox19" - Me.GroupBox19.Size = New System.Drawing.Size(233, 271) - Me.GroupBox19.TabIndex = 4 - Me.GroupBox19.TabStop = False - Me.GroupBox19.Text = "Miscellaneous Options" - ' - 'chkScanOrderModify - ' - Me.chkScanOrderModify.CheckAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkScanOrderModify.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkScanOrderModify.Location = New System.Drawing.Point(5, 201) - Me.chkScanOrderModify.Name = "chkScanOrderModify" - Me.chkScanOrderModify.Size = New System.Drawing.Size(223, 35) - Me.chkScanOrderModify.TabIndex = 7 - Me.chkScanOrderModify.Text = "Scan in order of last write time." - Me.chkScanOrderModify.TextAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkScanOrderModify.UseVisualStyleBackColor = True - ' - 'chkSortBeforeScan - ' - Me.chkSortBeforeScan.CheckAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkSortBeforeScan.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkSortBeforeScan.Location = New System.Drawing.Point(5, 123) - Me.chkSortBeforeScan.Name = "chkSortBeforeScan" - Me.chkSortBeforeScan.Size = New System.Drawing.Size(222, 36) - Me.chkSortBeforeScan.TabIndex = 5 - Me.chkSortBeforeScan.Text = "Sort files into folders before each library update" - Me.chkSortBeforeScan.TextAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkSortBeforeScan.UseVisualStyleBackColor = True - ' - 'chkIgnoreLastScan - ' - Me.chkIgnoreLastScan.CheckAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkIgnoreLastScan.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkIgnoreLastScan.Location = New System.Drawing.Point(5, 165) - Me.chkIgnoreLastScan.Name = "chkIgnoreLastScan" - Me.chkIgnoreLastScan.Size = New System.Drawing.Size(222, 33) - Me.chkIgnoreLastScan.TabIndex = 6 - Me.chkIgnoreLastScan.Text = "Always scan all media when updating library" - Me.chkIgnoreLastScan.TextAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkIgnoreLastScan.UseVisualStyleBackColor = True - ' - 'chkCleanDB - ' - Me.chkCleanDB.CheckAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkCleanDB.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkCleanDB.Location = New System.Drawing.Point(5, 235) - Me.chkCleanDB.Name = "chkCleanDB" - Me.chkCleanDB.Size = New System.Drawing.Size(223, 33) - Me.chkCleanDB.TabIndex = 8 - Me.chkCleanDB.Text = "Clean database after updating library" - Me.chkCleanDB.TextAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkCleanDB.UseVisualStyleBackColor = True - ' - 'chkAutoDetectVTS - ' - Me.chkAutoDetectVTS.CheckAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkAutoDetectVTS.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkAutoDetectVTS.Location = New System.Drawing.Point(5, 90) - Me.chkAutoDetectVTS.Name = "chkAutoDetectVTS" - Me.chkAutoDetectVTS.Size = New System.Drawing.Size(222, 34) - Me.chkAutoDetectVTS.TabIndex = 4 - Me.chkAutoDetectVTS.Text = "Recognize VIDEO_TS Folders" - Me.chkAutoDetectVTS.TextAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkAutoDetectVTS.UseVisualStyleBackColor = True - ' - 'chkSkipStackedSizeCheck - ' - Me.chkSkipStackedSizeCheck.AutoSize = True - Me.chkSkipStackedSizeCheck.CheckAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkSkipStackedSizeCheck.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkSkipStackedSizeCheck.Location = New System.Drawing.Point(27, 58) - Me.chkSkipStackedSizeCheck.Name = "chkSkipStackedSizeCheck" - Me.chkSkipStackedSizeCheck.Size = New System.Drawing.Size(188, 17) - Me.chkSkipStackedSizeCheck.TabIndex = 3 - Me.chkSkipStackedSizeCheck.Text = "Skip Size Check of Stacked Files" - Me.chkSkipStackedSizeCheck.TextAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkSkipStackedSizeCheck.UseVisualStyleBackColor = True - ' - 'Label21 - ' - Me.Label21.AutoSize = True - Me.Label21.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label21.Location = New System.Drawing.Point(133, 39) - Me.Label21.Name = "Label21" - Me.Label21.Size = New System.Drawing.Size(24, 13) - Me.Label21.TabIndex = 2 - Me.Label21.Text = "MB" - ' - 'txtSkipLessThan - ' - Me.txtSkipLessThan.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtSkipLessThan.Location = New System.Drawing.Point(27, 35) - Me.txtSkipLessThan.Name = "txtSkipLessThan" - Me.txtSkipLessThan.Size = New System.Drawing.Size(100, 22) - Me.txtSkipLessThan.TabIndex = 1 - ' - 'Label20 - ' - Me.Label20.AutoSize = True - Me.Label20.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label20.Location = New System.Drawing.Point(4, 19) - Me.Label20.Name = "Label20" - Me.Label20.Size = New System.Drawing.Size(122, 13) - Me.Label20.TabIndex = 0 - Me.Label20.Text = "Skip files smaller than:" - ' - 'pnlImages - ' - Me.pnlImages.BackColor = System.Drawing.Color.White - Me.pnlImages.Controls.Add(Me.GroupBox15) - Me.pnlImages.Controls.Add(Me.GroupBox9) - Me.pnlImages.Controls.Add(Me.GroupBox13) - Me.pnlImages.Controls.Add(Me.GroupBox14) - Me.pnlImages.Controls.Add(Me.GroupBox23) - Me.pnlImages.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.pnlImages.Location = New System.Drawing.Point(1181, 571) - Me.pnlImages.Name = "pnlImages" - Me.pnlImages.Size = New System.Drawing.Size(617, 408) - Me.pnlImages.TabIndex = 12 - Me.pnlImages.Visible = False - ' - 'GroupBox15 - ' - Me.GroupBox15.Controls.Add(Me.cbTrailerQuality) - Me.GroupBox15.Controls.Add(Me.lblPreferredQuality) - Me.GroupBox15.Controls.Add(Me.chkDeleteAllTrailers) - Me.GroupBox15.Controls.Add(Me.chkOverwriteTrailer) - Me.GroupBox15.Controls.Add(Me.chkNoDLTrailer) - Me.GroupBox15.Controls.Add(Me.chkSingleScrapeTrailer) - Me.GroupBox15.Controls.Add(Me.chkUpdaterTrailer) - Me.GroupBox15.Controls.Add(Me.chkDownloadTrailer) - Me.GroupBox15.Location = New System.Drawing.Point(4, 172) - Me.GroupBox15.Name = "GroupBox15" - Me.GroupBox15.Size = New System.Drawing.Size(183, 230) - Me.GroupBox15.TabIndex = 1 - Me.GroupBox15.TabStop = False - Me.GroupBox15.Text = "Trailers" - ' - 'cbTrailerQuality - ' - Me.cbTrailerQuality.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList - Me.cbTrailerQuality.Enabled = False - Me.cbTrailerQuality.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.cbTrailerQuality.FormattingEnabled = True - Me.cbTrailerQuality.Location = New System.Drawing.Point(33, 204) - Me.cbTrailerQuality.Name = "cbTrailerQuality" - Me.cbTrailerQuality.Size = New System.Drawing.Size(106, 21) - Me.cbTrailerQuality.TabIndex = 7 - ' - 'lblPreferredQuality - ' - Me.lblPreferredQuality.AutoSize = True - Me.lblPreferredQuality.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblPreferredQuality.Location = New System.Drawing.Point(31, 189) - Me.lblPreferredQuality.Name = "lblPreferredQuality" - Me.lblPreferredQuality.Size = New System.Drawing.Size(97, 13) - Me.lblPreferredQuality.TabIndex = 6 - Me.lblPreferredQuality.Text = "Preferred Quality:" - ' - 'chkDeleteAllTrailers - ' - Me.chkDeleteAllTrailers.CheckAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkDeleteAllTrailers.Enabled = False - Me.chkDeleteAllTrailers.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkDeleteAllTrailers.Location = New System.Drawing.Point(25, 163) - Me.chkDeleteAllTrailers.Name = "chkDeleteAllTrailers" - Me.chkDeleteAllTrailers.Size = New System.Drawing.Size(152, 27) - Me.chkDeleteAllTrailers.TabIndex = 5 - Me.chkDeleteAllTrailers.Text = "Delete All Existing" - Me.chkDeleteAllTrailers.TextAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkDeleteAllTrailers.UseVisualStyleBackColor = True - ' - 'chkOverwriteTrailer - ' - Me.chkOverwriteTrailer.AutoSize = True - Me.chkOverwriteTrailer.Enabled = False - Me.chkOverwriteTrailer.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkOverwriteTrailer.Location = New System.Drawing.Point(25, 143) - Me.chkOverwriteTrailer.Name = "chkOverwriteTrailer" - Me.chkOverwriteTrailer.Size = New System.Drawing.Size(119, 17) - Me.chkOverwriteTrailer.TabIndex = 4 - Me.chkOverwriteTrailer.Text = "Overwrite Existing" - Me.chkOverwriteTrailer.UseVisualStyleBackColor = True - ' - 'chkNoDLTrailer - ' - Me.chkNoDLTrailer.CheckAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkNoDLTrailer.Enabled = False - Me.chkNoDLTrailer.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkNoDLTrailer.Location = New System.Drawing.Point(25, 72) - Me.chkNoDLTrailer.Name = "chkNoDLTrailer" - Me.chkNoDLTrailer.Size = New System.Drawing.Size(151, 30) - Me.chkNoDLTrailer.TabIndex = 2 - Me.chkNoDLTrailer.Text = "Only Get URLs When Scraping" - Me.chkNoDLTrailer.TextAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkNoDLTrailer.UseVisualStyleBackColor = True - ' - 'chkSingleScrapeTrailer - ' - Me.chkSingleScrapeTrailer.CheckAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkSingleScrapeTrailer.Enabled = False - Me.chkSingleScrapeTrailer.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkSingleScrapeTrailer.Location = New System.Drawing.Point(25, 106) - Me.chkSingleScrapeTrailer.Name = "chkSingleScrapeTrailer" - Me.chkSingleScrapeTrailer.Size = New System.Drawing.Size(154, 34) - Me.chkSingleScrapeTrailer.TabIndex = 3 - Me.chkSingleScrapeTrailer.Text = "Get During Single Scrape" - Me.chkSingleScrapeTrailer.TextAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkSingleScrapeTrailer.UseVisualStyleBackColor = True - ' - 'chkUpdaterTrailer - ' - Me.chkUpdaterTrailer.CheckAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkUpdaterTrailer.Enabled = False - Me.chkUpdaterTrailer.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkUpdaterTrailer.Location = New System.Drawing.Point(25, 38) - Me.chkUpdaterTrailer.Name = "chkUpdaterTrailer" - Me.chkUpdaterTrailer.Size = New System.Drawing.Size(151, 33) - Me.chkUpdaterTrailer.TabIndex = 1 - Me.chkUpdaterTrailer.Text = "Get During Automated Scrapers" - Me.chkUpdaterTrailer.TextAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkUpdaterTrailer.UseVisualStyleBackColor = True - ' - 'chkDownloadTrailer - ' - Me.chkDownloadTrailer.AutoSize = True - Me.chkDownloadTrailer.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkDownloadTrailer.Location = New System.Drawing.Point(12, 16) - Me.chkDownloadTrailer.Name = "chkDownloadTrailer" - Me.chkDownloadTrailer.Size = New System.Drawing.Size(140, 17) - Me.chkDownloadTrailer.TabIndex = 0 - Me.chkDownloadTrailer.Text = "Enable Trailer Support" - Me.chkDownloadTrailer.UseVisualStyleBackColor = True - ' - 'GroupBox23 - ' - Me.GroupBox23.Controls.Add(Me.chkAutoETSize) - Me.GroupBox23.Controls.Add(Me.cbAutoETSize) - Me.GroupBox23.Controls.Add(Me.txtAutoThumbs) - Me.GroupBox23.Controls.Add(Me.GroupBox24) - Me.GroupBox23.Controls.Add(Me.chkAutoThumbs) - Me.GroupBox23.Controls.Add(Me.chkUseETasFA) - Me.GroupBox23.Controls.Add(Me.Label15) - Me.GroupBox23.Controls.Add(Me.chkNoSpoilers) - Me.GroupBox23.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.GroupBox23.Location = New System.Drawing.Point(412, 3) - Me.GroupBox23.Name = "GroupBox23" - Me.GroupBox23.Size = New System.Drawing.Size(199, 358) - Me.GroupBox23.TabIndex = 4 - Me.GroupBox23.TabStop = False - Me.GroupBox23.Text = "Extrathumbs" - ' - 'chkAutoETSize - ' - Me.chkAutoETSize.CheckAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkAutoETSize.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkAutoETSize.Location = New System.Drawing.Point(6, 236) - Me.chkAutoETSize.Name = "chkAutoETSize" - Me.chkAutoETSize.Size = New System.Drawing.Size(188, 43) - Me.chkAutoETSize.TabIndex = 6 - Me.chkAutoETSize.Text = "Download All Fanart Images of the Following Size as Extrathumbs:" - Me.chkAutoETSize.TextAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkAutoETSize.UseVisualStyleBackColor = True - ' - 'cbAutoETSize - ' - Me.cbAutoETSize.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList - Me.cbAutoETSize.Enabled = False - Me.cbAutoETSize.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.cbAutoETSize.FormattingEnabled = True - Me.cbAutoETSize.Location = New System.Drawing.Point(26, 283) - Me.cbAutoETSize.Name = "cbAutoETSize" - Me.cbAutoETSize.Size = New System.Drawing.Size(148, 21) - Me.cbAutoETSize.TabIndex = 7 - ' - 'GroupBox24 - ' - Me.GroupBox24.Controls.Add(Me.txtETWidth) - Me.GroupBox24.Controls.Add(Me.txtETHeight) - Me.GroupBox24.Controls.Add(Me.chkETPadding) - Me.GroupBox24.Controls.Add(Me.Label28) - Me.GroupBox24.Controls.Add(Me.Label29) - Me.GroupBox24.Controls.Add(Me.rbETCustom) - Me.GroupBox24.Controls.Add(Me.rbETNative) - Me.GroupBox24.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.GroupBox24.Location = New System.Drawing.Point(7, 120) - Me.GroupBox24.Name = "GroupBox24" - Me.GroupBox24.Size = New System.Drawing.Size(185, 104) - Me.GroupBox24.TabIndex = 5 - Me.GroupBox24.TabStop = False - Me.GroupBox24.Text = "Sizing (Extracted Frames)" - ' - 'txtETWidth - ' - Me.txtETWidth.Enabled = False - Me.txtETWidth.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtETWidth.Location = New System.Drawing.Point(61, 57) - Me.txtETWidth.Name = "txtETWidth" - Me.txtETWidth.Size = New System.Drawing.Size(40, 22) - Me.txtETWidth.TabIndex = 3 - ' - 'txtETHeight - ' - Me.txtETHeight.Enabled = False - Me.txtETHeight.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtETHeight.Location = New System.Drawing.Point(143, 57) - Me.txtETHeight.Name = "txtETHeight" - Me.txtETHeight.Size = New System.Drawing.Size(40, 22) - Me.txtETHeight.TabIndex = 5 - ' - 'chkETPadding - ' - Me.chkETPadding.AutoSize = True - Me.chkETPadding.Enabled = False - Me.chkETPadding.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkETPadding.Location = New System.Drawing.Point(21, 81) - Me.chkETPadding.Name = "chkETPadding" - Me.chkETPadding.Size = New System.Drawing.Size(69, 17) - Me.chkETPadding.TabIndex = 6 - Me.chkETPadding.Text = "Padding" - Me.chkETPadding.UseVisualStyleBackColor = True - ' - 'Label28 - ' - Me.Label28.AutoSize = True - Me.Label28.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label28.Location = New System.Drawing.Point(17, 61) - Me.Label28.Name = "Label28" - Me.Label28.Size = New System.Drawing.Size(42, 13) - Me.Label28.TabIndex = 2 - Me.Label28.Text = "Width:" - ' - 'Label29 - ' - Me.Label29.AutoSize = True - Me.Label29.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label29.Location = New System.Drawing.Point(98, 61) - Me.Label29.Name = "Label29" - Me.Label29.Size = New System.Drawing.Size(45, 13) - Me.Label29.TabIndex = 4 - Me.Label29.Text = "Height:" - ' - 'rbETCustom - ' - Me.rbETCustom.AutoSize = True - Me.rbETCustom.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.rbETCustom.Location = New System.Drawing.Point(7, 38) - Me.rbETCustom.Name = "rbETCustom" - Me.rbETCustom.Size = New System.Drawing.Size(109, 17) - Me.rbETCustom.TabIndex = 1 - Me.rbETCustom.TabStop = True - Me.rbETCustom.Text = "Use Custom Size" - Me.rbETCustom.UseVisualStyleBackColor = True - ' - 'rbETNative - ' - Me.rbETNative.AutoSize = True - Me.rbETNative.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.rbETNative.Location = New System.Drawing.Point(7, 20) - Me.rbETNative.Name = "rbETNative" - Me.rbETNative.Size = New System.Drawing.Size(138, 17) - Me.rbETNative.TabIndex = 0 - Me.rbETNative.TabStop = True - Me.rbETNative.Text = "Use Native Resolution" - Me.rbETNative.UseVisualStyleBackColor = True - ' - 'fbdBrowse - ' - Me.fbdBrowse.Description = "Select the folder where you wish to store your backdrops." - ' - 'pnlTVSources - ' - Me.pnlTVSources.BackColor = System.Drawing.Color.White - Me.pnlTVSources.Controls.Add(Me.TabControl2) - Me.pnlTVSources.Location = New System.Drawing.Point(1260, 560) - Me.pnlTVSources.Name = "pnlTVSources" - Me.pnlTVSources.Size = New System.Drawing.Size(617, 400) - Me.pnlTVSources.TabIndex = 11 - Me.pnlTVSources.Visible = False - ' - 'TabControl2 - ' - Me.TabControl2.Controls.Add(Me.TabPage3) - Me.TabControl2.Controls.Add(Me.TabPage4) - Me.TabControl2.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.TabControl2.Location = New System.Drawing.Point(3, 4) - Me.TabControl2.Name = "TabControl2" - Me.TabControl2.SelectedIndex = 0 - Me.TabControl2.Size = New System.Drawing.Size(612, 392) - Me.TabControl2.TabIndex = 0 - ' - 'TabPage3 - ' - Me.TabPage3.Controls.Add(Me.btnTVShowFrodo) - Me.TabPage3.Controls.Add(Me.lvTVSources) - Me.TabPage3.Controls.Add(Me.gbMiscTVSourceOpts) - Me.TabPage3.Controls.Add(Me.btnAddTVSource) - Me.TabPage3.Controls.Add(Me.btnEditTVSource) - Me.TabPage3.Controls.Add(Me.btnRemTVSource) - Me.TabPage3.Controls.Add(Me.gbTVNaming) - Me.TabPage3.Location = New System.Drawing.Point(4, 22) - Me.TabPage3.Name = "TabPage3" - Me.TabPage3.Padding = New System.Windows.Forms.Padding(3) - Me.TabPage3.Size = New System.Drawing.Size(604, 366) - Me.TabPage3.TabIndex = 0 - Me.TabPage3.Text = "General" - Me.TabPage3.UseVisualStyleBackColor = True - ' - 'btnTVShowFrodo - ' - Me.btnTVShowFrodo.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.btnTVShowFrodo.Location = New System.Drawing.Point(22, 320) - Me.btnTVShowFrodo.Name = "btnTVShowFrodo" - Me.btnTVShowFrodo.Size = New System.Drawing.Size(116, 23) - Me.btnTVShowFrodo.TabIndex = 5 - Me.btnTVShowFrodo.Text = "XBMC Frodo" - Me.btnTVShowFrodo.UseVisualStyleBackColor = True - ' - 'lvTVSources - ' - Me.lvTVSources.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ColumnHeader1, Me.ColumnHeader2, Me.ColumnHeader3}) - Me.lvTVSources.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lvTVSources.FullRowSelect = True - Me.lvTVSources.HideSelection = False - Me.lvTVSources.Location = New System.Drawing.Point(6, 4) - Me.lvTVSources.Name = "lvTVSources" - Me.lvTVSources.Size = New System.Drawing.Size(483, 105) - Me.lvTVSources.Sorting = System.Windows.Forms.SortOrder.Ascending - Me.lvTVSources.TabIndex = 0 - Me.lvTVSources.UseCompatibleStateImageBehavior = False - Me.lvTVSources.View = System.Windows.Forms.View.Details - ' - 'ColumnHeader1 - ' - Me.ColumnHeader1.Width = 0 - ' - 'ColumnHeader2 - ' - Me.ColumnHeader2.Text = "Name" - Me.ColumnHeader2.Width = 94 - ' - 'ColumnHeader3 - ' - Me.ColumnHeader3.Text = "Path" - Me.ColumnHeader3.Width = 368 - ' - 'gbMiscTVSourceOpts - ' - Me.gbMiscTVSourceOpts.Controls.Add(Me.Label6) - Me.gbMiscTVSourceOpts.Controls.Add(Me.txtTVSkipLessThan) - Me.gbMiscTVSourceOpts.Controls.Add(Me.Label7) - Me.gbMiscTVSourceOpts.Controls.Add(Me.chkTVScanOrderModify) - Me.gbMiscTVSourceOpts.Controls.Add(Me.chkTVIgnoreLastScan) - Me.gbMiscTVSourceOpts.Controls.Add(Me.chkTVCleanDB) - Me.gbMiscTVSourceOpts.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.gbMiscTVSourceOpts.Location = New System.Drawing.Point(6, 110) - Me.gbMiscTVSourceOpts.Name = "gbMiscTVSourceOpts" - Me.gbMiscTVSourceOpts.Size = New System.Drawing.Size(151, 188) - Me.gbMiscTVSourceOpts.TabIndex = 4 - Me.gbMiscTVSourceOpts.TabStop = False - Me.gbMiscTVSourceOpts.Text = "Miscellaneous Options" - ' - 'Label6 - ' - Me.Label6.AutoSize = True - Me.Label6.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label6.Location = New System.Drawing.Point(114, 39) - Me.Label6.Name = "Label6" - Me.Label6.Size = New System.Drawing.Size(24, 13) - Me.Label6.TabIndex = 2 - Me.Label6.Text = "MB" - ' - 'txtTVSkipLessThan - ' - Me.txtTVSkipLessThan.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtTVSkipLessThan.Location = New System.Drawing.Point(11, 34) - Me.txtTVSkipLessThan.Name = "txtTVSkipLessThan" - Me.txtTVSkipLessThan.Size = New System.Drawing.Size(100, 22) - Me.txtTVSkipLessThan.TabIndex = 0 - ' - 'Label7 - ' - Me.Label7.AutoSize = True - Me.Label7.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label7.Location = New System.Drawing.Point(6, 18) - Me.Label7.Name = "Label7" - Me.Label7.Size = New System.Drawing.Size(122, 13) - Me.Label7.TabIndex = 1 - Me.Label7.Text = "Skip files smaller than:" - ' - 'chkTVScanOrderModify - ' - Me.chkTVScanOrderModify.CheckAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkTVScanOrderModify.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkTVScanOrderModify.Location = New System.Drawing.Point(4, 110) - Me.chkTVScanOrderModify.Name = "chkTVScanOrderModify" - Me.chkTVScanOrderModify.Size = New System.Drawing.Size(142, 43) - Me.chkTVScanOrderModify.TabIndex = 4 - Me.chkTVScanOrderModify.Text = "Scan in order of last write time" - Me.chkTVScanOrderModify.TextAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkTVScanOrderModify.UseVisualStyleBackColor = True - ' - 'chkTVIgnoreLastScan - ' - Me.chkTVIgnoreLastScan.CheckAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkTVIgnoreLastScan.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkTVIgnoreLastScan.Location = New System.Drawing.Point(4, 68) - Me.chkTVIgnoreLastScan.Name = "chkTVIgnoreLastScan" - Me.chkTVIgnoreLastScan.Size = New System.Drawing.Size(142, 43) - Me.chkTVIgnoreLastScan.TabIndex = 3 - Me.chkTVIgnoreLastScan.Text = "Ignore last scan time when updating library" - Me.chkTVIgnoreLastScan.TextAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkTVIgnoreLastScan.UseVisualStyleBackColor = True - ' - 'chkTVCleanDB - ' - Me.chkTVCleanDB.CheckAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkTVCleanDB.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkTVCleanDB.Location = New System.Drawing.Point(4, 152) - Me.chkTVCleanDB.Name = "chkTVCleanDB" - Me.chkTVCleanDB.Size = New System.Drawing.Size(142, 43) - Me.chkTVCleanDB.TabIndex = 5 - Me.chkTVCleanDB.Text = "Clean database after updating library" - Me.chkTVCleanDB.TextAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkTVCleanDB.UseVisualStyleBackColor = True - ' - 'btnAddTVSource - ' - Me.btnAddTVSource.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.btnAddTVSource.Image = CType(resources.GetObject("btnAddTVSource.Image"), System.Drawing.Image) - Me.btnAddTVSource.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnAddTVSource.Location = New System.Drawing.Point(494, 4) - Me.btnAddTVSource.Name = "btnAddTVSource" - Me.btnAddTVSource.Size = New System.Drawing.Size(104, 23) - Me.btnAddTVSource.TabIndex = 1 - Me.btnAddTVSource.Text = "Add Source" - Me.btnAddTVSource.TextAlign = System.Drawing.ContentAlignment.MiddleRight - Me.btnAddTVSource.UseVisualStyleBackColor = True - ' - 'btnEditTVSource - ' - Me.btnEditTVSource.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.btnEditTVSource.Image = CType(resources.GetObject("btnEditTVSource.Image"), System.Drawing.Image) - Me.btnEditTVSource.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnEditTVSource.Location = New System.Drawing.Point(494, 33) - Me.btnEditTVSource.Name = "btnEditTVSource" - Me.btnEditTVSource.Size = New System.Drawing.Size(104, 23) - Me.btnEditTVSource.TabIndex = 2 - Me.btnEditTVSource.Text = "Edit Source" - Me.btnEditTVSource.TextAlign = System.Drawing.ContentAlignment.MiddleRight - Me.btnEditTVSource.UseVisualStyleBackColor = True - ' - 'btnRemTVSource - ' - Me.btnRemTVSource.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.btnRemTVSource.Image = CType(resources.GetObject("btnRemTVSource.Image"), System.Drawing.Image) - Me.btnRemTVSource.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnRemTVSource.Location = New System.Drawing.Point(494, 86) - Me.btnRemTVSource.Name = "btnRemTVSource" - Me.btnRemTVSource.Size = New System.Drawing.Size(104, 23) - Me.btnRemTVSource.TabIndex = 3 - Me.btnRemTVSource.Text = "Remove" - Me.btnRemTVSource.TextAlign = System.Drawing.ContentAlignment.MiddleRight - Me.btnRemTVSource.UseVisualStyleBackColor = True - ' - 'gbTVNaming - ' - Me.gbTVNaming.Controls.Add(Me.gbShowBanner) - Me.gbTVNaming.Controls.Add(Me.gbAllSeasonPoster) - Me.gbTVNaming.Controls.Add(Me.gbEpisodeFanart) - Me.gbTVNaming.Controls.Add(Me.gbEpisodePosters) - Me.gbTVNaming.Controls.Add(Me.gbSeasonFanart) - Me.gbTVNaming.Controls.Add(Me.gbSeasonPosters) - Me.gbTVNaming.Controls.Add(Me.gbShowFanart) - Me.gbTVNaming.Controls.Add(Me.gbShowPosters) - Me.gbTVNaming.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.gbTVNaming.Location = New System.Drawing.Point(161, 110) - Me.gbTVNaming.Name = "gbTVNaming" - Me.gbTVNaming.Size = New System.Drawing.Size(437, 253) - Me.gbTVNaming.TabIndex = 6 - Me.gbTVNaming.TabStop = False - Me.gbTVNaming.Text = "File Naming" - ' - 'gbShowBanner - ' - Me.gbShowBanner.Controls.Add(Me.chkShowBannerJPG) - Me.gbShowBanner.Location = New System.Drawing.Point(5, 204) - Me.gbShowBanner.Name = "gbShowBanner" - Me.gbShowBanner.Size = New System.Drawing.Size(133, 40) - Me.gbShowBanner.TabIndex = 2 - Me.gbShowBanner.TabStop = False - Me.gbShowBanner.Text = "Show Banner" - ' - 'chkShowBannerJPG - ' - Me.chkShowBannerJPG.AutoSize = True - Me.chkShowBannerJPG.Enabled = False - Me.chkShowBannerJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!) - Me.chkShowBannerJPG.Location = New System.Drawing.Point(6, 15) - Me.chkShowBannerJPG.Name = "chkShowBannerJPG" - Me.chkShowBannerJPG.Size = New System.Drawing.Size(83, 17) - Me.chkShowBannerJPG.TabIndex = 0 - Me.chkShowBannerJPG.Text = "banner.jpg" - Me.chkShowBannerJPG.UseVisualStyleBackColor = True - ' - 'gbAllSeasonPoster - ' - Me.gbAllSeasonPoster.Controls.Add(Me.chkSeasonAllPosterJPG) - Me.gbAllSeasonPoster.Controls.Add(Me.chkSeasonAllJPG) - Me.gbAllSeasonPoster.Controls.Add(Me.chkSeasonAllTBN) - Me.gbAllSeasonPoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.gbAllSeasonPoster.Location = New System.Drawing.Point(292, 162) - Me.gbAllSeasonPoster.Name = "gbAllSeasonPoster" - Me.gbAllSeasonPoster.Size = New System.Drawing.Size(140, 81) - Me.gbAllSeasonPoster.TabIndex = 7 - Me.gbAllSeasonPoster.TabStop = False - Me.gbAllSeasonPoster.Text = "All Season Posters" - ' - 'chkSeasonAllPosterJPG - ' - Me.chkSeasonAllPosterJPG.AutoSize = True - Me.chkSeasonAllPosterJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkSeasonAllPosterJPG.ForeColor = System.Drawing.SystemColors.ControlText - Me.chkSeasonAllPosterJPG.Location = New System.Drawing.Point(6, 49) - Me.chkSeasonAllPosterJPG.Name = "chkSeasonAllPosterJPG" - Me.chkSeasonAllPosterJPG.Size = New System.Drawing.Size(135, 17) - Me.chkSeasonAllPosterJPG.TabIndex = 2 - Me.chkSeasonAllPosterJPG.Text = "season-all-poster.jpg" - Me.chkSeasonAllPosterJPG.UseVisualStyleBackColor = True - ' - 'chkSeasonAllJPG - ' - Me.chkSeasonAllJPG.AutoSize = True - Me.chkSeasonAllJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkSeasonAllJPG.Location = New System.Drawing.Point(6, 34) - Me.chkSeasonAllJPG.Name = "chkSeasonAllJPG" - Me.chkSeasonAllJPG.Size = New System.Drawing.Size(98, 17) - Me.chkSeasonAllJPG.TabIndex = 1 - Me.chkSeasonAllJPG.Text = "season-all.jpg" - Me.chkSeasonAllJPG.UseVisualStyleBackColor = True - ' - 'chkSeasonAllTBN - ' - Me.chkSeasonAllTBN.AutoSize = True - Me.chkSeasonAllTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkSeasonAllTBN.Location = New System.Drawing.Point(6, 18) - Me.chkSeasonAllTBN.Name = "chkSeasonAllTBN" - Me.chkSeasonAllTBN.Size = New System.Drawing.Size(99, 17) - Me.chkSeasonAllTBN.TabIndex = 0 - Me.chkSeasonAllTBN.Text = "season-all.tbn" - Me.chkSeasonAllTBN.UseVisualStyleBackColor = True - ' - 'gbEpisodeFanart - ' - Me.gbEpisodeFanart.Controls.Add(Me.chkEpisodeDotFanart) - Me.gbEpisodeFanart.Controls.Add(Me.chkEpisodeDashFanart) - Me.gbEpisodeFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.gbEpisodeFanart.Location = New System.Drawing.Point(292, 97) - Me.gbEpisodeFanart.Name = "gbEpisodeFanart" - Me.gbEpisodeFanart.Size = New System.Drawing.Size(140, 52) - Me.gbEpisodeFanart.TabIndex = 6 - Me.gbEpisodeFanart.TabStop = False - Me.gbEpisodeFanart.Text = "Episode Fanart" - ' - 'chkEpisodeDotFanart - ' - Me.chkEpisodeDotFanart.AutoSize = True - Me.chkEpisodeDotFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkEpisodeDotFanart.Location = New System.Drawing.Point(5, 31) - Me.chkEpisodeDotFanart.Name = "chkEpisodeDotFanart" - Me.chkEpisodeDotFanart.Size = New System.Drawing.Size(137, 17) - Me.chkEpisodeDotFanart.TabIndex = 1 - Me.chkEpisodeDotFanart.Text = ".fanart.jpg" - Me.chkEpisodeDotFanart.UseVisualStyleBackColor = True - ' - 'chkEpisodeDashFanart - ' - Me.chkEpisodeDashFanart.AutoSize = True - Me.chkEpisodeDashFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkEpisodeDashFanart.Location = New System.Drawing.Point(5, 15) - Me.chkEpisodeDashFanart.Name = "chkEpisodeDashFanart" - Me.chkEpisodeDashFanart.Size = New System.Drawing.Size(138, 17) - Me.chkEpisodeDashFanart.TabIndex = 0 - Me.chkEpisodeDashFanart.Text = "-fanart.jpg" - Me.chkEpisodeDashFanart.UseVisualStyleBackColor = True - ' - 'gbEpisodePosters - ' - Me.gbEpisodePosters.Controls.Add(Me.chkEpisodeDashThumbJPG) - Me.gbEpisodePosters.Controls.Add(Me.chkEpisodeJPG) - Me.gbEpisodePosters.Controls.Add(Me.chkEpisodeTBN) - Me.gbEpisodePosters.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.gbEpisodePosters.Location = New System.Drawing.Point(292, 15) - Me.gbEpisodePosters.Name = "gbEpisodePosters" - Me.gbEpisodePosters.Size = New System.Drawing.Size(140, 74) - Me.gbEpisodePosters.TabIndex = 5 - Me.gbEpisodePosters.TabStop = False - Me.gbEpisodePosters.Text = "Episode Posters" - ' - 'chkEpisodeDashThumbJPG - ' - Me.chkEpisodeDashThumbJPG.AutoSize = True - Me.chkEpisodeDashThumbJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkEpisodeDashThumbJPG.ForeColor = System.Drawing.SystemColors.ControlText - Me.chkEpisodeDashThumbJPG.Location = New System.Drawing.Point(5, 49) - Me.chkEpisodeDashThumbJPG.Name = "chkEpisodeDashThumbJPG" - Me.chkEpisodeDashThumbJPG.Size = New System.Drawing.Size(141, 17) - Me.chkEpisodeDashThumbJPG.TabIndex = 2 - Me.chkEpisodeDashThumbJPG.Text = "-thumb.jpg" - Me.chkEpisodeDashThumbJPG.UseVisualStyleBackColor = True - ' - 'chkEpisodeJPG - ' - Me.chkEpisodeJPG.AutoSize = True - Me.chkEpisodeJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkEpisodeJPG.Location = New System.Drawing.Point(5, 31) - Me.chkEpisodeJPG.Name = "chkEpisodeJPG" - Me.chkEpisodeJPG.Size = New System.Drawing.Size(103, 17) - Me.chkEpisodeJPG.TabIndex = 1 - Me.chkEpisodeJPG.Text = ".jpg" - Me.chkEpisodeJPG.UseVisualStyleBackColor = True - ' - 'chkEpisodeTBN - ' - Me.chkEpisodeTBN.AutoSize = True - Me.chkEpisodeTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkEpisodeTBN.Location = New System.Drawing.Point(5, 15) - Me.chkEpisodeTBN.Name = "chkEpisodeTBN" - Me.chkEpisodeTBN.Size = New System.Drawing.Size(104, 17) - Me.chkEpisodeTBN.TabIndex = 0 - Me.chkEpisodeTBN.Text = ".tbn" - Me.chkEpisodeTBN.UseVisualStyleBackColor = True - ' - 'gbSeasonFanart - ' - Me.gbSeasonFanart.Controls.Add(Me.chkSeasonXXDashFanartJPG) - Me.gbSeasonFanart.Controls.Add(Me.chkSeasonDotFanart) - Me.gbSeasonFanart.Controls.Add(Me.chkSeasonDashFanart) - Me.gbSeasonFanart.Controls.Add(Me.chkSeasonFanartJPG) - Me.gbSeasonFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.gbSeasonFanart.Location = New System.Drawing.Point(143, 168) - Me.gbSeasonFanart.Name = "gbSeasonFanart" - Me.gbSeasonFanart.Size = New System.Drawing.Size(145, 81) - Me.gbSeasonFanart.TabIndex = 4 - Me.gbSeasonFanart.TabStop = False - Me.gbSeasonFanart.Text = "Season Fanart" - ' - 'chkSeasonXXDashFanartJPG - ' - Me.chkSeasonXXDashFanartJPG.AutoSize = True - Me.chkSeasonXXDashFanartJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkSeasonXXDashFanartJPG.ForeColor = System.Drawing.SystemColors.ControlText - Me.chkSeasonXXDashFanartJPG.Location = New System.Drawing.Point(6, 62) - Me.chkSeasonXXDashFanartJPG.Name = "chkSeasonXXDashFanartJPG" - Me.chkSeasonXXDashFanartJPG.Size = New System.Drawing.Size(129, 17) - Me.chkSeasonXXDashFanartJPG.TabIndex = 3 - Me.chkSeasonXXDashFanartJPG.Text = "seasonXX-fanart.jpg" - Me.chkSeasonXXDashFanartJPG.UseVisualStyleBackColor = True - ' - 'chkSeasonDotFanart - ' - Me.chkSeasonDotFanart.AutoSize = True - Me.chkSeasonDotFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkSeasonDotFanart.Location = New System.Drawing.Point(6, 47) - Me.chkSeasonDotFanart.Name = "chkSeasonDotFanart" - Me.chkSeasonDotFanart.Size = New System.Drawing.Size(132, 17) - Me.chkSeasonDotFanart.TabIndex = 2 - Me.chkSeasonDotFanart.Text = ".fanart.jpg" - Me.chkSeasonDotFanart.UseVisualStyleBackColor = True - ' - 'chkSeasonDashFanart - ' - Me.chkSeasonDashFanart.AutoSize = True - Me.chkSeasonDashFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkSeasonDashFanart.Location = New System.Drawing.Point(6, 31) - Me.chkSeasonDashFanart.Name = "chkSeasonDashFanart" - Me.chkSeasonDashFanart.Size = New System.Drawing.Size(133, 17) - Me.chkSeasonDashFanart.TabIndex = 1 - Me.chkSeasonDashFanart.Text = "-fanart.jpg" - Me.chkSeasonDashFanart.UseVisualStyleBackColor = True - ' - 'chkSeasonFanartJPG - ' - Me.chkSeasonFanartJPG.AutoSize = True - Me.chkSeasonFanartJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkSeasonFanartJPG.Location = New System.Drawing.Point(6, 15) - Me.chkSeasonFanartJPG.Name = "chkSeasonFanartJPG" - Me.chkSeasonFanartJPG.Size = New System.Drawing.Size(77, 17) - Me.chkSeasonFanartJPG.TabIndex = 0 - Me.chkSeasonFanartJPG.Text = "fanart.jpg" - Me.chkSeasonFanartJPG.UseVisualStyleBackColor = True - ' - 'gbSeasonPosters - ' - Me.gbSeasonPosters.Controls.Add(Me.chkSeasonXXDashPosterJPG) - Me.gbSeasonPosters.Controls.Add(Me.chkSeasonFolderJPG) - Me.gbSeasonPosters.Controls.Add(Me.chkSeasonNameJPG) - Me.gbSeasonPosters.Controls.Add(Me.chkSeasonNameTBN) - Me.gbSeasonPosters.Controls.Add(Me.chkSeasonPosterJPG) - Me.gbSeasonPosters.Controls.Add(Me.chkSeasonPosterTBN) - Me.gbSeasonPosters.Controls.Add(Me.chkSeasonXTBN) - Me.gbSeasonPosters.Controls.Add(Me.chkSeasonXXTBN) - Me.gbSeasonPosters.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.gbSeasonPosters.Location = New System.Drawing.Point(143, 15) - Me.gbSeasonPosters.Name = "gbSeasonPosters" - Me.gbSeasonPosters.Size = New System.Drawing.Size(145, 152) - Me.gbSeasonPosters.TabIndex = 3 - Me.gbSeasonPosters.TabStop = False - Me.gbSeasonPosters.Text = "Season Posters" - ' - 'chkSeasonXXDashPosterJPG - ' - Me.chkSeasonXXDashPosterJPG.AutoSize = True - Me.chkSeasonXXDashPosterJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkSeasonXXDashPosterJPG.ForeColor = System.Drawing.SystemColors.ControlText - Me.chkSeasonXXDashPosterJPG.Location = New System.Drawing.Point(6, 48) - Me.chkSeasonXXDashPosterJPG.Name = "chkSeasonXXDashPosterJPG" - Me.chkSeasonXXDashPosterJPG.Size = New System.Drawing.Size(131, 17) - Me.chkSeasonXXDashPosterJPG.TabIndex = 2 - Me.chkSeasonXXDashPosterJPG.Text = "seasonXX-poster.jpg" - Me.chkSeasonXXDashPosterJPG.UseVisualStyleBackColor = True - ' - 'chkSeasonFolderJPG - ' - Me.chkSeasonFolderJPG.AutoSize = True - Me.chkSeasonFolderJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkSeasonFolderJPG.Location = New System.Drawing.Point(6, 129) - Me.chkSeasonFolderJPG.Name = "chkSeasonFolderJPG" - Me.chkSeasonFolderJPG.Size = New System.Drawing.Size(77, 17) - Me.chkSeasonFolderJPG.TabIndex = 7 - Me.chkSeasonFolderJPG.Text = "folder.jpg" - Me.chkSeasonFolderJPG.UseVisualStyleBackColor = True - ' - 'chkSeasonNameJPG - ' - Me.chkSeasonNameJPG.AutoSize = True - Me.chkSeasonNameJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkSeasonNameJPG.Location = New System.Drawing.Point(6, 113) - Me.chkSeasonNameJPG.Name = "chkSeasonNameJPG" - Me.chkSeasonNameJPG.Size = New System.Drawing.Size(98, 17) - Me.chkSeasonNameJPG.TabIndex = 6 - Me.chkSeasonNameJPG.Text = ".jpg" - Me.chkSeasonNameJPG.UseVisualStyleBackColor = True - ' - 'chkSeasonNameTBN - ' - Me.chkSeasonNameTBN.AutoSize = True - Me.chkSeasonNameTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkSeasonNameTBN.Location = New System.Drawing.Point(6, 97) - Me.chkSeasonNameTBN.Name = "chkSeasonNameTBN" - Me.chkSeasonNameTBN.Size = New System.Drawing.Size(99, 17) - Me.chkSeasonNameTBN.TabIndex = 5 - Me.chkSeasonNameTBN.Text = ".tbn" - Me.chkSeasonNameTBN.UseVisualStyleBackColor = True - ' - 'chkSeasonPosterJPG - ' - Me.chkSeasonPosterJPG.AutoSize = True - Me.chkSeasonPosterJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkSeasonPosterJPG.Location = New System.Drawing.Point(6, 81) - Me.chkSeasonPosterJPG.Name = "chkSeasonPosterJPG" - Me.chkSeasonPosterJPG.Size = New System.Drawing.Size(79, 17) - Me.chkSeasonPosterJPG.TabIndex = 4 - Me.chkSeasonPosterJPG.Text = "poster.jpg" - Me.chkSeasonPosterJPG.UseVisualStyleBackColor = True - ' - 'chkSeasonPosterTBN - ' - Me.chkSeasonPosterTBN.AutoSize = True - Me.chkSeasonPosterTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkSeasonPosterTBN.Location = New System.Drawing.Point(6, 65) - Me.chkSeasonPosterTBN.Name = "chkSeasonPosterTBN" - Me.chkSeasonPosterTBN.Size = New System.Drawing.Size(80, 17) - Me.chkSeasonPosterTBN.TabIndex = 3 - Me.chkSeasonPosterTBN.Text = "poster.tbn" - Me.chkSeasonPosterTBN.UseVisualStyleBackColor = True - ' - 'chkSeasonXTBN - ' - Me.chkSeasonXTBN.AutoSize = True - Me.chkSeasonXTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkSeasonXTBN.Location = New System.Drawing.Point(6, 31) - Me.chkSeasonXTBN.Name = "chkSeasonXTBN" - Me.chkSeasonXTBN.Size = New System.Drawing.Size(89, 17) - Me.chkSeasonXTBN.TabIndex = 1 - Me.chkSeasonXTBN.Text = "seasonX.tbn" - Me.chkSeasonXTBN.UseVisualStyleBackColor = True - ' - 'chkSeasonXXTBN - ' - Me.chkSeasonXXTBN.AutoSize = True - Me.chkSeasonXXTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkSeasonXXTBN.Location = New System.Drawing.Point(6, 15) - Me.chkSeasonXXTBN.Name = "chkSeasonXXTBN" - Me.chkSeasonXXTBN.Size = New System.Drawing.Size(95, 17) - Me.chkSeasonXXTBN.TabIndex = 0 - Me.chkSeasonXXTBN.Text = "seasonXX.tbn" - Me.chkSeasonXXTBN.UseVisualStyleBackColor = True - ' - 'gbShowFanart - ' - Me.gbShowFanart.Controls.Add(Me.chkShowDotFanart) - Me.gbShowFanart.Controls.Add(Me.chkShowDashFanart) - Me.gbShowFanart.Controls.Add(Me.chkShowFanartJPG) - Me.gbShowFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.gbShowFanart.Location = New System.Drawing.Point(5, 120) - Me.gbShowFanart.Name = "gbShowFanart" - Me.gbShowFanart.Size = New System.Drawing.Size(133, 70) - Me.gbShowFanart.TabIndex = 1 - Me.gbShowFanart.TabStop = False - Me.gbShowFanart.Text = "Show Fanart" - ' - 'chkShowDotFanart - ' - Me.chkShowDotFanart.AutoSize = True - Me.chkShowDotFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkShowDotFanart.Location = New System.Drawing.Point(6, 51) - Me.chkShowDotFanart.Name = "chkShowDotFanart" - Me.chkShowDotFanart.Size = New System.Drawing.Size(124, 17) - Me.chkShowDotFanart.TabIndex = 2 - Me.chkShowDotFanart.Text = ".fanart.jpg" - Me.chkShowDotFanart.UseVisualStyleBackColor = True - ' - 'chkShowDashFanart - ' - Me.chkShowDashFanart.AutoSize = True - Me.chkShowDashFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkShowDashFanart.Location = New System.Drawing.Point(6, 35) - Me.chkShowDashFanart.Name = "chkShowDashFanart" - Me.chkShowDashFanart.Size = New System.Drawing.Size(125, 17) - Me.chkShowDashFanart.TabIndex = 1 - Me.chkShowDashFanart.Text = "-fanart.jpg" - Me.chkShowDashFanart.UseVisualStyleBackColor = True - ' - 'chkShowFanartJPG - ' - Me.chkShowFanartJPG.AutoSize = True - Me.chkShowFanartJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkShowFanartJPG.ForeColor = System.Drawing.SystemColors.ControlText - Me.chkShowFanartJPG.Location = New System.Drawing.Point(6, 19) - Me.chkShowFanartJPG.Name = "chkShowFanartJPG" - Me.chkShowFanartJPG.Size = New System.Drawing.Size(77, 17) - Me.chkShowFanartJPG.TabIndex = 0 - Me.chkShowFanartJPG.Text = "fanart.jpg" - Me.chkShowFanartJPG.UseVisualStyleBackColor = True - ' - 'gbShowPosters - ' - Me.gbShowPosters.Controls.Add(Me.chkShowJPG) - Me.gbShowPosters.Controls.Add(Me.chkShowTBN) - Me.gbShowPosters.Controls.Add(Me.chkShowPosterJPG) - Me.gbShowPosters.Controls.Add(Me.chkShowPosterTBN) - Me.gbShowPosters.Controls.Add(Me.chkShowFolderJPG) - Me.gbShowPosters.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.gbShowPosters.Location = New System.Drawing.Point(5, 15) - Me.gbShowPosters.Name = "gbShowPosters" - Me.gbShowPosters.Size = New System.Drawing.Size(133, 99) - Me.gbShowPosters.TabIndex = 0 - Me.gbShowPosters.TabStop = False - Me.gbShowPosters.Text = "Show Posters" - ' - 'chkShowJPG - ' - Me.chkShowJPG.AutoSize = True - Me.chkShowJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkShowJPG.Location = New System.Drawing.Point(6, 32) - Me.chkShowJPG.Name = "chkShowJPG" - Me.chkShowJPG.Size = New System.Drawing.Size(90, 17) - Me.chkShowJPG.TabIndex = 1 - Me.chkShowJPG.Text = ".jpg" - Me.chkShowJPG.UseVisualStyleBackColor = True - ' - 'chkShowTBN - ' - Me.chkShowTBN.AutoSize = True - Me.chkShowTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkShowTBN.Location = New System.Drawing.Point(6, 16) - Me.chkShowTBN.Name = "chkShowTBN" - Me.chkShowTBN.Size = New System.Drawing.Size(91, 17) - Me.chkShowTBN.TabIndex = 0 - Me.chkShowTBN.Text = ".tbn" - Me.chkShowTBN.UseVisualStyleBackColor = True - ' - 'chkShowPosterJPG - ' - Me.chkShowPosterJPG.AutoSize = True - Me.chkShowPosterJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkShowPosterJPG.ForeColor = System.Drawing.SystemColors.ControlText - Me.chkShowPosterJPG.Location = New System.Drawing.Point(6, 64) - Me.chkShowPosterJPG.Name = "chkShowPosterJPG" - Me.chkShowPosterJPG.Size = New System.Drawing.Size(79, 17) - Me.chkShowPosterJPG.TabIndex = 3 - Me.chkShowPosterJPG.Text = "poster.jpg" - Me.chkShowPosterJPG.UseVisualStyleBackColor = True - ' - 'chkShowPosterTBN - ' - Me.chkShowPosterTBN.AutoSize = True - Me.chkShowPosterTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkShowPosterTBN.Location = New System.Drawing.Point(6, 48) - Me.chkShowPosterTBN.Name = "chkShowPosterTBN" - Me.chkShowPosterTBN.Size = New System.Drawing.Size(80, 17) - Me.chkShowPosterTBN.TabIndex = 2 - Me.chkShowPosterTBN.Text = "poster.tbn" - Me.chkShowPosterTBN.UseVisualStyleBackColor = True - ' - 'chkShowFolderJPG - ' - Me.chkShowFolderJPG.AutoSize = True - Me.chkShowFolderJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkShowFolderJPG.Location = New System.Drawing.Point(6, 80) - Me.chkShowFolderJPG.Name = "chkShowFolderJPG" - Me.chkShowFolderJPG.Size = New System.Drawing.Size(77, 17) - Me.chkShowFolderJPG.TabIndex = 4 - Me.chkShowFolderJPG.Text = "folder.jpg" - Me.chkShowFolderJPG.UseVisualStyleBackColor = True - ' - 'TabPage4 - ' - Me.TabPage4.Controls.Add(Me.btnGetTVProfiles) - Me.TabPage4.Controls.Add(Me.btnRegexDown) - Me.TabPage4.Controls.Add(Me.btnRegexUp) - Me.TabPage4.Controls.Add(Me.btnResetShowRegex) - Me.TabPage4.Controls.Add(Me.gbShowRegex) - Me.TabPage4.Controls.Add(Me.btnEditShowRegex) - Me.TabPage4.Controls.Add(Me.btnRemoveShowRegex) - Me.TabPage4.Controls.Add(Me.lvShowRegex) - Me.TabPage4.Location = New System.Drawing.Point(4, 22) - Me.TabPage4.Name = "TabPage4" - Me.TabPage4.Padding = New System.Windows.Forms.Padding(3) - Me.TabPage4.Size = New System.Drawing.Size(604, 366) - Me.TabPage4.TabIndex = 1 - Me.TabPage4.Text = "Regex" - Me.TabPage4.UseVisualStyleBackColor = True - ' - 'btnGetTVProfiles - ' - Me.btnGetTVProfiles.Image = CType(resources.GetObject("btnGetTVProfiles.Image"), System.Drawing.Image) - Me.btnGetTVProfiles.Location = New System.Drawing.Point(550, 3) - Me.btnGetTVProfiles.Name = "btnGetTVProfiles" - Me.btnGetTVProfiles.Size = New System.Drawing.Size(23, 23) - Me.btnGetTVProfiles.TabIndex = 1 - Me.btnGetTVProfiles.UseVisualStyleBackColor = True - ' - 'btnRegexDown - ' - Me.btnRegexDown.Image = CType(resources.GetObject("btnRegexDown.Image"), System.Drawing.Image) - Me.btnRegexDown.Location = New System.Drawing.Point(304, 167) - Me.btnRegexDown.Name = "btnRegexDown" - Me.btnRegexDown.Size = New System.Drawing.Size(23, 23) - Me.btnRegexDown.TabIndex = 5 - Me.btnRegexDown.UseVisualStyleBackColor = True - ' - 'btnRegexUp - ' - Me.btnRegexUp.Image = CType(resources.GetObject("btnRegexUp.Image"), System.Drawing.Image) - Me.btnRegexUp.Location = New System.Drawing.Point(280, 167) - Me.btnRegexUp.Name = "btnRegexUp" - Me.btnRegexUp.Size = New System.Drawing.Size(23, 23) - Me.btnRegexUp.TabIndex = 4 - Me.btnRegexUp.UseVisualStyleBackColor = True - ' - 'btnResetShowRegex - ' - Me.btnResetShowRegex.Image = CType(resources.GetObject("btnResetShowRegex.Image"), System.Drawing.Image) - Me.btnResetShowRegex.Location = New System.Drawing.Point(576, 3) - Me.btnResetShowRegex.Name = "btnResetShowRegex" - Me.btnResetShowRegex.Size = New System.Drawing.Size(23, 23) - Me.btnResetShowRegex.TabIndex = 2 - Me.btnResetShowRegex.UseVisualStyleBackColor = True - ' - 'gbShowRegex - ' - Me.gbShowRegex.Controls.Add(Me.btnClearRegex) - Me.gbShowRegex.Controls.Add(Me.lblSeasonMatch) - Me.gbShowRegex.Controls.Add(Me.btnAddShowRegex) - Me.gbShowRegex.Controls.Add(Me.txtSeasonRegex) - Me.gbShowRegex.Controls.Add(Me.lblEpisodeRetrieve) - Me.gbShowRegex.Controls.Add(Me.cboSeasonRetrieve) - Me.gbShowRegex.Controls.Add(Me.lblSeasonRetrieve) - Me.gbShowRegex.Controls.Add(Me.txtEpRegex) - Me.gbShowRegex.Controls.Add(Me.lblEpisodeMatch) - Me.gbShowRegex.Controls.Add(Me.cboEpRetrieve) - Me.gbShowRegex.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.gbShowRegex.Location = New System.Drawing.Point(6, 196) - Me.gbShowRegex.Name = "gbShowRegex" - Me.gbShowRegex.Size = New System.Drawing.Size(592, 148) - Me.gbShowRegex.TabIndex = 7 - Me.gbShowRegex.TabStop = False - Me.gbShowRegex.Text = "Show Match Regex" - ' - 'btnClearRegex - ' - Me.btnClearRegex.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.btnClearRegex.Image = CType(resources.GetObject("btnClearRegex.Image"), System.Drawing.Image) - Me.btnClearRegex.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnClearRegex.Location = New System.Drawing.Point(10, 116) - Me.btnClearRegex.Name = "btnClearRegex" - Me.btnClearRegex.Size = New System.Drawing.Size(104, 23) - Me.btnClearRegex.TabIndex = 8 - Me.btnClearRegex.Text = "Clear" - Me.btnClearRegex.TextAlign = System.Drawing.ContentAlignment.MiddleRight - Me.btnClearRegex.UseVisualStyleBackColor = True - ' - 'lblSeasonMatch - ' - Me.lblSeasonMatch.AutoSize = True - Me.lblSeasonMatch.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblSeasonMatch.Location = New System.Drawing.Point(8, 25) - Me.lblSeasonMatch.Name = "lblSeasonMatch" - Me.lblSeasonMatch.Size = New System.Drawing.Size(116, 13) - Me.lblSeasonMatch.TabIndex = 0 - Me.lblSeasonMatch.Text = "Season Match Regex:" - ' - 'btnAddShowRegex - ' - Me.btnAddShowRegex.Enabled = False - Me.btnAddShowRegex.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.btnAddShowRegex.Image = CType(resources.GetObject("btnAddShowRegex.Image"), System.Drawing.Image) - Me.btnAddShowRegex.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnAddShowRegex.Location = New System.Drawing.Point(482, 117) - Me.btnAddShowRegex.Name = "btnAddShowRegex" - Me.btnAddShowRegex.Size = New System.Drawing.Size(104, 23) - Me.btnAddShowRegex.TabIndex = 9 - Me.btnAddShowRegex.Text = "Add Regex" - Me.btnAddShowRegex.TextAlign = System.Drawing.ContentAlignment.MiddleRight - Me.btnAddShowRegex.UseVisualStyleBackColor = True - ' - 'txtSeasonRegex - ' - Me.txtSeasonRegex.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtSeasonRegex.Location = New System.Drawing.Point(10, 40) - Me.txtSeasonRegex.Name = "txtSeasonRegex" - Me.txtSeasonRegex.Size = New System.Drawing.Size(417, 22) - Me.txtSeasonRegex.TabIndex = 1 - ' - 'lblEpisodeRetrieve - ' - Me.lblEpisodeRetrieve.AutoSize = True - Me.lblEpisodeRetrieve.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblEpisodeRetrieve.Location = New System.Drawing.Point(441, 69) - Me.lblEpisodeRetrieve.Name = "lblEpisodeRetrieve" - Me.lblEpisodeRetrieve.Size = New System.Drawing.Size(54, 13) - Me.lblEpisodeRetrieve.TabIndex = 6 - Me.lblEpisodeRetrieve.Text = "Apply To:" - ' - 'cboSeasonRetrieve - ' - Me.cboSeasonRetrieve.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList - Me.cboSeasonRetrieve.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.cboSeasonRetrieve.FormattingEnabled = True - Me.cboSeasonRetrieve.Items.AddRange(New Object() {"Folder Name", "File Name"}) - Me.cboSeasonRetrieve.Location = New System.Drawing.Point(443, 40) - Me.cboSeasonRetrieve.Name = "cboSeasonRetrieve" - Me.cboSeasonRetrieve.Size = New System.Drawing.Size(135, 21) - Me.cboSeasonRetrieve.TabIndex = 3 - ' - 'lblSeasonRetrieve - ' - Me.lblSeasonRetrieve.AutoSize = True - Me.lblSeasonRetrieve.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblSeasonRetrieve.Location = New System.Drawing.Point(441, 25) - Me.lblSeasonRetrieve.Name = "lblSeasonRetrieve" - Me.lblSeasonRetrieve.Size = New System.Drawing.Size(54, 13) - Me.lblSeasonRetrieve.TabIndex = 2 - Me.lblSeasonRetrieve.Text = "Apply To:" - ' - 'txtEpRegex - ' - Me.txtEpRegex.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtEpRegex.Location = New System.Drawing.Point(10, 84) - Me.txtEpRegex.Name = "txtEpRegex" - Me.txtEpRegex.Size = New System.Drawing.Size(417, 22) - Me.txtEpRegex.TabIndex = 5 - ' - 'lblEpisodeMatch - ' - Me.lblEpisodeMatch.AutoSize = True - Me.lblEpisodeMatch.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblEpisodeMatch.Location = New System.Drawing.Point(8, 69) - Me.lblEpisodeMatch.Name = "lblEpisodeMatch" - Me.lblEpisodeMatch.Size = New System.Drawing.Size(120, 13) - Me.lblEpisodeMatch.TabIndex = 4 - Me.lblEpisodeMatch.Text = "Episode Match Regex:" - ' - 'cboEpRetrieve - ' - Me.cboEpRetrieve.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList - Me.cboEpRetrieve.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.cboEpRetrieve.FormattingEnabled = True - Me.cboEpRetrieve.Items.AddRange(New Object() {"Folder Name", "File Name", "Season Result"}) - Me.cboEpRetrieve.Location = New System.Drawing.Point(443, 84) - Me.cboEpRetrieve.Name = "cboEpRetrieve" - Me.cboEpRetrieve.Size = New System.Drawing.Size(135, 21) - Me.cboEpRetrieve.TabIndex = 7 - ' - 'btnEditShowRegex - ' - Me.btnEditShowRegex.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.btnEditShowRegex.Image = CType(resources.GetObject("btnEditShowRegex.Image"), System.Drawing.Image) - Me.btnEditShowRegex.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnEditShowRegex.Location = New System.Drawing.Point(1, 167) - Me.btnEditShowRegex.Name = "btnEditShowRegex" - Me.btnEditShowRegex.Size = New System.Drawing.Size(104, 23) - Me.btnEditShowRegex.TabIndex = 3 - Me.btnEditShowRegex.Text = "Edit Regex" - Me.btnEditShowRegex.TextAlign = System.Drawing.ContentAlignment.MiddleRight - Me.btnEditShowRegex.UseVisualStyleBackColor = True - ' - 'btnRemoveShowRegex - ' - Me.btnRemoveShowRegex.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.btnRemoveShowRegex.Image = CType(resources.GetObject("btnRemoveShowRegex.Image"), System.Drawing.Image) - Me.btnRemoveShowRegex.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnRemoveShowRegex.Location = New System.Drawing.Point(494, 167) - Me.btnRemoveShowRegex.Name = "btnRemoveShowRegex" - Me.btnRemoveShowRegex.Size = New System.Drawing.Size(104, 23) - Me.btnRemoveShowRegex.TabIndex = 6 - Me.btnRemoveShowRegex.Text = "Remove" - Me.btnRemoveShowRegex.TextAlign = System.Drawing.ContentAlignment.MiddleRight - Me.btnRemoveShowRegex.UseVisualStyleBackColor = True - ' - 'lvShowRegex - ' - Me.lvShowRegex.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.colRegID, Me.colSeason, Me.colSeasonApply, Me.colEpisode, Me.colEpApply}) - Me.lvShowRegex.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lvShowRegex.FullRowSelect = True - Me.lvShowRegex.HideSelection = False - Me.lvShowRegex.Location = New System.Drawing.Point(0, 28) - Me.lvShowRegex.Name = "lvShowRegex" - Me.lvShowRegex.Size = New System.Drawing.Size(598, 135) - Me.lvShowRegex.Sorting = System.Windows.Forms.SortOrder.Ascending - Me.lvShowRegex.TabIndex = 0 - Me.lvShowRegex.UseCompatibleStateImageBehavior = False - Me.lvShowRegex.View = System.Windows.Forms.View.Details - ' - 'colRegID - ' - Me.colRegID.DisplayIndex = 4 - Me.colRegID.Width = 0 - ' - 'colSeason - ' - Me.colSeason.DisplayIndex = 0 - Me.colSeason.Text = "Season Regex" - Me.colSeason.Width = 224 - ' - 'colSeasonApply - ' - Me.colSeasonApply.DisplayIndex = 1 - Me.colSeasonApply.Text = "Apply To" - Me.colSeasonApply.Width = 70 - ' - 'colEpisode - ' - Me.colEpisode.DisplayIndex = 2 - Me.colEpisode.Text = "Episode Regex" - Me.colEpisode.Width = 219 - ' - 'colEpApply - ' - Me.colEpApply.DisplayIndex = 3 - Me.colEpApply.Text = "Apply To" - Me.colEpApply.Width = 70 - ' - 'pnlShows - ' - Me.pnlShows.BackColor = System.Drawing.Color.White - Me.pnlShows.Controls.Add(Me.gbTVListOptions) - Me.pnlShows.Controls.Add(Me.gbTVMisc) - Me.pnlShows.Controls.Add(Me.gbEpFilter) - Me.pnlShows.Controls.Add(Me.gbShowFilter) - Me.pnlShows.Location = New System.Drawing.Point(654, 767) - Me.pnlShows.Name = "pnlShows" - Me.pnlShows.Size = New System.Drawing.Size(617, 400) - Me.pnlShows.TabIndex = 20 - Me.pnlShows.Visible = False - ' - 'gbTVListOptions - ' - Me.gbTVListOptions.Controls.Add(Me.chkDisplayMissingEpisodes) - Me.gbTVListOptions.Controls.Add(Me.gbEpisodeListOptions) - Me.gbTVListOptions.Controls.Add(Me.gbSeasonListOptions) - Me.gbTVListOptions.Controls.Add(Me.gbShowListOptions) - Me.gbTVListOptions.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.gbTVListOptions.Location = New System.Drawing.Point(6, 150) - Me.gbTVListOptions.Name = "gbTVListOptions" - Me.gbTVListOptions.Size = New System.Drawing.Size(219, 245) - Me.gbTVListOptions.TabIndex = 1 - Me.gbTVListOptions.TabStop = False - Me.gbTVListOptions.Text = "Media List Options" - ' - 'chkDisplayMissingEpisodes - ' - Me.chkDisplayMissingEpisodes.AutoSize = True - Me.chkDisplayMissingEpisodes.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkDisplayMissingEpisodes.Location = New System.Drawing.Point(10, 224) - Me.chkDisplayMissingEpisodes.Name = "chkDisplayMissingEpisodes" - Me.chkDisplayMissingEpisodes.Size = New System.Drawing.Size(155, 17) - Me.chkDisplayMissingEpisodes.TabIndex = 3 - Me.chkDisplayMissingEpisodes.Text = "Display Missing Episodes" - Me.chkDisplayMissingEpisodes.UseVisualStyleBackColor = True - ' - 'gbEpisodeListOptions - ' - Me.gbEpisodeListOptions.Controls.Add(Me.chkEpisodeNfoCol) - Me.gbEpisodeListOptions.Controls.Add(Me.chkEpisodeFanartCol) - Me.gbEpisodeListOptions.Controls.Add(Me.chkEpisodePosterCol) - Me.gbEpisodeListOptions.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.gbEpisodeListOptions.Location = New System.Drawing.Point(10, 143) - Me.gbEpisodeListOptions.Name = "gbEpisodeListOptions" - Me.gbEpisodeListOptions.Size = New System.Drawing.Size(199, 68) - Me.gbEpisodeListOptions.TabIndex = 2 - Me.gbEpisodeListOptions.TabStop = False - Me.gbEpisodeListOptions.Text = "Episodes" - ' - 'chkEpisodeNfoCol - ' - Me.chkEpisodeNfoCol.AutoSize = True - Me.chkEpisodeNfoCol.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkEpisodeNfoCol.Location = New System.Drawing.Point(7, 48) - Me.chkEpisodeNfoCol.Name = "chkEpisodeNfoCol" - Me.chkEpisodeNfoCol.Size = New System.Drawing.Size(117, 17) - Me.chkEpisodeNfoCol.TabIndex = 2 - Me.chkEpisodeNfoCol.Text = "Hide Info Column" - Me.chkEpisodeNfoCol.UseVisualStyleBackColor = True - ' - 'chkEpisodeFanartCol - ' - Me.chkEpisodeFanartCol.AutoSize = True - Me.chkEpisodeFanartCol.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkEpisodeFanartCol.Location = New System.Drawing.Point(7, 32) - Me.chkEpisodeFanartCol.Name = "chkEpisodeFanartCol" - Me.chkEpisodeFanartCol.Size = New System.Drawing.Size(129, 17) - Me.chkEpisodeFanartCol.TabIndex = 1 - Me.chkEpisodeFanartCol.Text = "Hide Fanart Column" - Me.chkEpisodeFanartCol.UseVisualStyleBackColor = True - ' - 'chkEpisodePosterCol - ' - Me.chkEpisodePosterCol.AutoSize = True - Me.chkEpisodePosterCol.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkEpisodePosterCol.Location = New System.Drawing.Point(7, 16) - Me.chkEpisodePosterCol.Name = "chkEpisodePosterCol" - Me.chkEpisodePosterCol.Size = New System.Drawing.Size(128, 17) - Me.chkEpisodePosterCol.TabIndex = 0 - Me.chkEpisodePosterCol.Text = "Hide Poster Column" - Me.chkEpisodePosterCol.UseVisualStyleBackColor = True - ' - 'gbSeasonListOptions - ' - Me.gbSeasonListOptions.Controls.Add(Me.chkSeasonFanartCol) - Me.gbSeasonListOptions.Controls.Add(Me.chkSeasonPosterCol) - Me.gbSeasonListOptions.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.gbSeasonListOptions.Location = New System.Drawing.Point(10, 87) - Me.gbSeasonListOptions.Name = "gbSeasonListOptions" - Me.gbSeasonListOptions.Size = New System.Drawing.Size(199, 52) - Me.gbSeasonListOptions.TabIndex = 1 - Me.gbSeasonListOptions.TabStop = False - Me.gbSeasonListOptions.Text = "Seasons" - ' - 'chkSeasonFanartCol - ' - Me.chkSeasonFanartCol.AutoSize = True - Me.chkSeasonFanartCol.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkSeasonFanartCol.Location = New System.Drawing.Point(7, 32) - Me.chkSeasonFanartCol.Name = "chkSeasonFanartCol" - Me.chkSeasonFanartCol.Size = New System.Drawing.Size(129, 17) - Me.chkSeasonFanartCol.TabIndex = 1 - Me.chkSeasonFanartCol.Text = "Hide Fanart Column" - Me.chkSeasonFanartCol.UseVisualStyleBackColor = True - ' - 'chkSeasonPosterCol - ' - Me.chkSeasonPosterCol.AutoSize = True - Me.chkSeasonPosterCol.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkSeasonPosterCol.Location = New System.Drawing.Point(7, 16) - Me.chkSeasonPosterCol.Name = "chkSeasonPosterCol" - Me.chkSeasonPosterCol.Size = New System.Drawing.Size(128, 17) - Me.chkSeasonPosterCol.TabIndex = 0 - Me.chkSeasonPosterCol.Text = "Hide Poster Column" - Me.chkSeasonPosterCol.UseVisualStyleBackColor = True - ' - 'gbShowListOptions - ' - Me.gbShowListOptions.Controls.Add(Me.chkShowNfoCol) - Me.gbShowListOptions.Controls.Add(Me.chkShowFanartCol) - Me.gbShowListOptions.Controls.Add(Me.chkShowPosterCol) - Me.gbShowListOptions.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.gbShowListOptions.Location = New System.Drawing.Point(9, 16) - Me.gbShowListOptions.Name = "gbShowListOptions" - Me.gbShowListOptions.Size = New System.Drawing.Size(199, 68) - Me.gbShowListOptions.TabIndex = 0 - Me.gbShowListOptions.TabStop = False - Me.gbShowListOptions.Text = "Shows" - ' - 'chkShowNfoCol - ' - Me.chkShowNfoCol.AutoSize = True - Me.chkShowNfoCol.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkShowNfoCol.Location = New System.Drawing.Point(7, 48) - Me.chkShowNfoCol.Name = "chkShowNfoCol" - Me.chkShowNfoCol.Size = New System.Drawing.Size(117, 17) - Me.chkShowNfoCol.TabIndex = 2 - Me.chkShowNfoCol.Text = "Hide Info Column" - Me.chkShowNfoCol.UseVisualStyleBackColor = True - ' - 'chkShowFanartCol - ' - Me.chkShowFanartCol.AutoSize = True - Me.chkShowFanartCol.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkShowFanartCol.Location = New System.Drawing.Point(7, 32) - Me.chkShowFanartCol.Name = "chkShowFanartCol" - Me.chkShowFanartCol.Size = New System.Drawing.Size(129, 17) - Me.chkShowFanartCol.TabIndex = 1 - Me.chkShowFanartCol.Text = "Hide Fanart Column" - Me.chkShowFanartCol.UseVisualStyleBackColor = True - ' - 'chkShowPosterCol - ' - Me.chkShowPosterCol.AutoSize = True - Me.chkShowPosterCol.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkShowPosterCol.Location = New System.Drawing.Point(7, 16) - Me.chkShowPosterCol.Name = "chkShowPosterCol" - Me.chkShowPosterCol.Size = New System.Drawing.Size(128, 17) - Me.chkShowPosterCol.TabIndex = 0 - Me.chkShowPosterCol.Text = "Hide Poster Column" - Me.chkShowPosterCol.UseVisualStyleBackColor = True - ' - 'gbTVMisc - ' - Me.gbTVMisc.Controls.Add(Me.chkMarkNewShows) - Me.gbTVMisc.Controls.Add(Me.chkMarkNewEpisodes) - Me.gbTVMisc.Controls.Add(Me.chkDisplayAllSeason) - Me.gbTVMisc.Controls.Add(Me.lblRatingRegion) - Me.gbTVMisc.Controls.Add(Me.cbRatingRegion) - Me.gbTVMisc.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.gbTVMisc.Location = New System.Drawing.Point(6, 7) - Me.gbTVMisc.Name = "gbTVMisc" - Me.gbTVMisc.Size = New System.Drawing.Size(219, 142) - Me.gbTVMisc.TabIndex = 0 - Me.gbTVMisc.TabStop = False - Me.gbTVMisc.Text = "Miscellaneous" - ' - 'chkMarkNewShows - ' - Me.chkMarkNewShows.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkMarkNewShows.Location = New System.Drawing.Point(8, 90) - Me.chkMarkNewShows.Name = "chkMarkNewShows" - Me.chkMarkNewShows.Size = New System.Drawing.Size(204, 17) - Me.chkMarkNewShows.TabIndex = 3 - Me.chkMarkNewShows.Text = "Mark New Shows" - Me.chkMarkNewShows.UseVisualStyleBackColor = True - ' - 'chkMarkNewEpisodes - ' - Me.chkMarkNewEpisodes.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkMarkNewEpisodes.Location = New System.Drawing.Point(8, 113) - Me.chkMarkNewEpisodes.Name = "chkMarkNewEpisodes" - Me.chkMarkNewEpisodes.Size = New System.Drawing.Size(204, 17) - Me.chkMarkNewEpisodes.TabIndex = 4 - Me.chkMarkNewEpisodes.Text = "Mark New Episodes" - Me.chkMarkNewEpisodes.UseVisualStyleBackColor = True - ' - 'chkDisplayAllSeason - ' - Me.chkDisplayAllSeason.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkDisplayAllSeason.Location = New System.Drawing.Point(8, 67) - Me.chkDisplayAllSeason.Name = "chkDisplayAllSeason" - Me.chkDisplayAllSeason.Size = New System.Drawing.Size(204, 17) - Me.chkDisplayAllSeason.TabIndex = 2 - Me.chkDisplayAllSeason.Text = "Display All Season Poster" - Me.chkDisplayAllSeason.UseVisualStyleBackColor = True - ' - 'lblRatingRegion - ' - Me.lblRatingRegion.AutoSize = True - Me.lblRatingRegion.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblRatingRegion.Location = New System.Drawing.Point(8, 21) - Me.lblRatingRegion.Name = "lblRatingRegion" - Me.lblRatingRegion.Size = New System.Drawing.Size(99, 13) - Me.lblRatingRegion.TabIndex = 0 - Me.lblRatingRegion.Text = "TV Rating Region:" - ' - 'cbRatingRegion - ' - Me.cbRatingRegion.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList - Me.cbRatingRegion.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.cbRatingRegion.FormattingEnabled = True - Me.cbRatingRegion.Location = New System.Drawing.Point(8, 36) - Me.cbRatingRegion.Name = "cbRatingRegion" - Me.cbRatingRegion.Size = New System.Drawing.Size(163, 21) - Me.cbRatingRegion.TabIndex = 1 - ' - 'gbEpFilter - ' - Me.gbEpFilter.Controls.Add(Me.btnResetEpFilter) - Me.gbEpFilter.Controls.Add(Me.chkNoFilterEpisode) - Me.gbEpFilter.Controls.Add(Me.btnEpFilterDown) - Me.gbEpFilter.Controls.Add(Me.btnEpFilterUp) - Me.gbEpFilter.Controls.Add(Me.chkEpProperCase) - Me.gbEpFilter.Controls.Add(Me.btnRemoveEpFilter) - Me.gbEpFilter.Controls.Add(Me.btnAddEpFilter) - Me.gbEpFilter.Controls.Add(Me.txtEpFilter) - Me.gbEpFilter.Controls.Add(Me.lstEpFilters) - Me.gbEpFilter.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.gbEpFilter.Location = New System.Drawing.Point(229, 185) - Me.gbEpFilter.Name = "gbEpFilter" - Me.gbEpFilter.Size = New System.Drawing.Size(382, 205) - Me.gbEpFilter.TabIndex = 3 - Me.gbEpFilter.TabStop = False - Me.gbEpFilter.Text = "Episode Folder/File Name Filters" - ' - 'btnResetEpFilter - ' - Me.btnResetEpFilter.Image = CType(resources.GetObject("btnResetEpFilter.Image"), System.Drawing.Image) - Me.btnResetEpFilter.Location = New System.Drawing.Point(354, 38) - Me.btnResetEpFilter.Name = "btnResetEpFilter" - Me.btnResetEpFilter.Size = New System.Drawing.Size(23, 23) - Me.btnResetEpFilter.TabIndex = 3 - Me.btnResetEpFilter.UseVisualStyleBackColor = True - ' - 'chkNoFilterEpisode - ' - Me.chkNoFilterEpisode.CheckAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkNoFilterEpisode.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.chkNoFilterEpisode.Location = New System.Drawing.Point(6, 15) - Me.chkNoFilterEpisode.Name = "chkNoFilterEpisode" - Me.chkNoFilterEpisode.Size = New System.Drawing.Size(371, 21) - Me.chkNoFilterEpisode.TabIndex = 0 - Me.chkNoFilterEpisode.Text = "Build Episode Title Instead of Filtering" - Me.chkNoFilterEpisode.TextAlign = System.Drawing.ContentAlignment.TopLeft - Me.chkNoFilterEpisode.UseVisualStyleBackColor = True - ' - 'btnEpFilterDown - ' - Me.btnEpFilterDown.Image = CType(resources.GetObject("btnEpFilterDown.Image"), System.Drawing.Image) - Me.btnEpFilterDown.Location = New System.Drawing.Point(320, 176) - Me.btnEpFilterDown.Name = "btnEpFilterDown" - Me.btnEpFilterDown.Size = New System.Drawing.Size(23, 23) - Me.btnEpFilterDown.TabIndex = 7 - Me.btnEpFilterDown.UseVisualStyleBackColor = True - ' - 'btnEpFilterUp - ' - Me.btnEpFilterUp.Image = CType(resources.GetObject("btnEpFilterUp.Image"), System.Drawing.Image) - Me.btnEpFilterUp.Location = New System.Drawing.Point(296, 176) - Me.btnEpFilterUp.Name = "btnEpFilterUp" - Me.btnEpFilterUp.Size = New System.Drawing.Size(23, 23) - Me.btnEpFilterUp.TabIndex = 6 - Me.btnEpFilterUp.UseVisualStyleBackColor = True - ' - 'chkEpProperCase - ' - Me.chkEpProperCase.AutoSize = True - Me.chkEpProperCase.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkEpProperCase.Location = New System.Drawing.Point(6, 47) - Me.chkEpProperCase.Name = "chkEpProperCase" - Me.chkEpProperCase.Size = New System.Drawing.Size(181, 17) - Me.chkEpProperCase.TabIndex = 1 - Me.chkEpProperCase.Text = "Convert Names to Proper Case" - Me.chkEpProperCase.UseVisualStyleBackColor = True - ' - 'btnRemoveEpFilter - ' - Me.btnRemoveEpFilter.Image = CType(resources.GetObject("btnRemoveEpFilter.Image"), System.Drawing.Image) - Me.btnRemoveEpFilter.Location = New System.Drawing.Point(354, 176) - Me.btnRemoveEpFilter.Name = "btnRemoveEpFilter" - Me.btnRemoveEpFilter.Size = New System.Drawing.Size(23, 23) - Me.btnRemoveEpFilter.TabIndex = 8 - Me.btnRemoveEpFilter.UseVisualStyleBackColor = True - ' - 'btnAddEpFilter - ' - Me.btnAddEpFilter.Image = CType(resources.GetObject("btnAddEpFilter.Image"), System.Drawing.Image) - Me.btnAddEpFilter.Location = New System.Drawing.Point(260, 176) - Me.btnAddEpFilter.Name = "btnAddEpFilter" - Me.btnAddEpFilter.Size = New System.Drawing.Size(23, 23) - Me.btnAddEpFilter.TabIndex = 5 - Me.btnAddEpFilter.UseVisualStyleBackColor = True - ' - 'txtEpFilter - ' - Me.txtEpFilter.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtEpFilter.Location = New System.Drawing.Point(6, 177) - Me.txtEpFilter.Name = "txtEpFilter" - Me.txtEpFilter.Size = New System.Drawing.Size(252, 22) - Me.txtEpFilter.TabIndex = 4 - ' - 'lstEpFilters - ' - Me.lstEpFilters.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lstEpFilters.FormattingEnabled = True - Me.lstEpFilters.Location = New System.Drawing.Point(6, 64) - Me.lstEpFilters.Name = "lstEpFilters" - Me.lstEpFilters.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended - Me.lstEpFilters.Size = New System.Drawing.Size(371, 95) - Me.lstEpFilters.TabIndex = 2 - ' - 'gbShowFilter - ' - Me.gbShowFilter.Controls.Add(Me.btnResetShowFilters) - Me.gbShowFilter.Controls.Add(Me.btnShowFilterDown) - Me.gbShowFilter.Controls.Add(Me.btnShowFilterUp) - Me.gbShowFilter.Controls.Add(Me.chkShowProperCase) - Me.gbShowFilter.Controls.Add(Me.btnRemoveShowFilter) - Me.gbShowFilter.Controls.Add(Me.btnAddShowFilter) - Me.gbShowFilter.Controls.Add(Me.txtShowFilter) - Me.gbShowFilter.Controls.Add(Me.lstShowFilters) - Me.gbShowFilter.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.gbShowFilter.Location = New System.Drawing.Point(229, 7) - Me.gbShowFilter.Name = "gbShowFilter" - Me.gbShowFilter.Size = New System.Drawing.Size(382, 175) - Me.gbShowFilter.TabIndex = 2 - Me.gbShowFilter.TabStop = False - Me.gbShowFilter.Text = "Show Folder/File Name Filters" - ' - 'btnResetShowFilters - ' - Me.btnResetShowFilters.Image = CType(resources.GetObject("btnResetShowFilters.Image"), System.Drawing.Image) - Me.btnResetShowFilters.Location = New System.Drawing.Point(354, 9) - Me.btnResetShowFilters.Name = "btnResetShowFilters" - Me.btnResetShowFilters.Size = New System.Drawing.Size(23, 23) - Me.btnResetShowFilters.TabIndex = 2 - Me.btnResetShowFilters.UseVisualStyleBackColor = True - ' - 'btnShowFilterDown - ' - Me.btnShowFilterDown.Image = CType(resources.GetObject("btnShowFilterDown.Image"), System.Drawing.Image) - Me.btnShowFilterDown.Location = New System.Drawing.Point(320, 146) - Me.btnShowFilterDown.Name = "btnShowFilterDown" - Me.btnShowFilterDown.Size = New System.Drawing.Size(23, 23) - Me.btnShowFilterDown.TabIndex = 6 - Me.btnShowFilterDown.UseVisualStyleBackColor = True - ' - 'btnShowFilterUp - ' - Me.btnShowFilterUp.Image = CType(resources.GetObject("btnShowFilterUp.Image"), System.Drawing.Image) - Me.btnShowFilterUp.Location = New System.Drawing.Point(296, 146) - Me.btnShowFilterUp.Name = "btnShowFilterUp" - Me.btnShowFilterUp.Size = New System.Drawing.Size(23, 23) - Me.btnShowFilterUp.TabIndex = 5 - Me.btnShowFilterUp.UseVisualStyleBackColor = True - ' - 'chkShowProperCase - ' - Me.chkShowProperCase.AutoSize = True - Me.chkShowProperCase.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkShowProperCase.Location = New System.Drawing.Point(6, 17) - Me.chkShowProperCase.Name = "chkShowProperCase" - Me.chkShowProperCase.Size = New System.Drawing.Size(181, 17) - Me.chkShowProperCase.TabIndex = 0 - Me.chkShowProperCase.Text = "Convert Names to Proper Case" - Me.chkShowProperCase.UseVisualStyleBackColor = True - ' - 'btnRemoveShowFilter - ' - Me.btnRemoveShowFilter.Image = CType(resources.GetObject("btnRemoveShowFilter.Image"), System.Drawing.Image) - Me.btnRemoveShowFilter.Location = New System.Drawing.Point(354, 146) - Me.btnRemoveShowFilter.Name = "btnRemoveShowFilter" - Me.btnRemoveShowFilter.Size = New System.Drawing.Size(23, 23) - Me.btnRemoveShowFilter.TabIndex = 7 - Me.btnRemoveShowFilter.UseVisualStyleBackColor = True - ' - 'btnAddShowFilter - ' - Me.btnAddShowFilter.Image = CType(resources.GetObject("btnAddShowFilter.Image"), System.Drawing.Image) - Me.btnAddShowFilter.Location = New System.Drawing.Point(260, 146) - Me.btnAddShowFilter.Name = "btnAddShowFilter" - Me.btnAddShowFilter.Size = New System.Drawing.Size(23, 23) - Me.btnAddShowFilter.TabIndex = 4 - Me.btnAddShowFilter.UseVisualStyleBackColor = True - ' - 'txtShowFilter - ' - Me.txtShowFilter.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtShowFilter.Location = New System.Drawing.Point(6, 147) - Me.txtShowFilter.Name = "txtShowFilter" - Me.txtShowFilter.Size = New System.Drawing.Size(252, 22) - Me.txtShowFilter.TabIndex = 3 - ' - 'lstShowFilters - ' - Me.lstShowFilters.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lstShowFilters.FormattingEnabled = True - Me.lstShowFilters.Location = New System.Drawing.Point(6, 35) - Me.lstShowFilters.Name = "lstShowFilters" - Me.lstShowFilters.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended - Me.lstShowFilters.Size = New System.Drawing.Size(371, 95) - Me.lstShowFilters.TabIndex = 1 - ' - 'pnlTVImages - ' - Me.pnlTVImages.BackColor = System.Drawing.Color.White - Me.pnlTVImages.Controls.Add(Me.TabControl3) - Me.pnlTVImages.Location = New System.Drawing.Point(913, 685) - Me.pnlTVImages.Name = "pnlTVImages" - Me.pnlTVImages.Size = New System.Drawing.Size(617, 402) - Me.pnlTVImages.TabIndex = 16 - Me.pnlTVImages.Visible = False - ' - 'TabControl3 - ' - Me.TabControl3.Controls.Add(Me.TabPage5) - Me.TabControl3.Controls.Add(Me.TabPage6) - Me.TabControl3.Controls.Add(Me.TabPage7) - Me.TabControl3.Controls.Add(Me.TabPage8) - Me.TabControl3.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.TabControl3.Location = New System.Drawing.Point(5, 6) - Me.TabControl3.Name = "TabControl3" - Me.TabControl3.SelectedIndex = 0 - Me.TabControl3.Size = New System.Drawing.Size(609, 397) - Me.TabControl3.TabIndex = 0 - ' - 'TabPage5 - ' - Me.TabPage5.Controls.Add(Me.gbAllSPosterOpts) - Me.TabPage5.Controls.Add(Me.gbShowPosterOpts) - Me.TabPage5.Controls.Add(Me.gbShowFanartOpts) - Me.TabPage5.Location = New System.Drawing.Point(4, 22) - Me.TabPage5.Name = "TabPage5" - Me.TabPage5.Padding = New System.Windows.Forms.Padding(3) - Me.TabPage5.Size = New System.Drawing.Size(601, 371) - Me.TabPage5.TabIndex = 0 - Me.TabPage5.Text = "TV Show" - Me.TabPage5.UseVisualStyleBackColor = True - ' - 'gbAllSPosterOpts - ' - Me.gbAllSPosterOpts.Controls.Add(Me.rbAllSPoster) - Me.gbAllSPosterOpts.Controls.Add(Me.rbAllSBanner) - Me.gbAllSPosterOpts.Controls.Add(Me.txtAllSPosterWidth) - Me.gbAllSPosterOpts.Controls.Add(Me.txtAllSPosterHeight) - Me.gbAllSPosterOpts.Controls.Add(Me.lblAllSPosterQual) - Me.gbAllSPosterOpts.Controls.Add(Me.tbAllSPosterQual) - Me.gbAllSPosterOpts.Controls.Add(Me.lblAllSPosterQ) - Me.gbAllSPosterOpts.Controls.Add(Me.lblAllSPosterWidth) - Me.gbAllSPosterOpts.Controls.Add(Me.lblAllSPosterHeight) - Me.gbAllSPosterOpts.Controls.Add(Me.chkResizeAllSPoster) - Me.gbAllSPosterOpts.Controls.Add(Me.lblAllSPosterSize) - Me.gbAllSPosterOpts.Controls.Add(Me.cbAllSPosterSize) - Me.gbAllSPosterOpts.Controls.Add(Me.chkOverwriteAllSPoster) - Me.gbAllSPosterOpts.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.gbAllSPosterOpts.Location = New System.Drawing.Point(238, 5) - Me.gbAllSPosterOpts.Name = "gbAllSPosterOpts" - Me.gbAllSPosterOpts.Size = New System.Drawing.Size(228, 191) - Me.gbAllSPosterOpts.TabIndex = 0 - Me.gbAllSPosterOpts.TabStop = False - Me.gbAllSPosterOpts.Text = "All Season Posters" - ' - 'rbAllSPoster - ' - Me.rbAllSPoster.AutoSize = True - Me.rbAllSPoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.rbAllSPoster.Location = New System.Drawing.Point(93, 30) - Me.rbAllSPoster.Name = "rbAllSPoster" - Me.rbAllSPoster.Size = New System.Drawing.Size(57, 17) - Me.rbAllSPoster.TabIndex = 2 - Me.rbAllSPoster.TabStop = True - Me.rbAllSPoster.Text = "Poster" - Me.rbAllSPoster.UseVisualStyleBackColor = True - ' - 'rbAllSBanner - ' - Me.rbAllSBanner.AutoSize = True - Me.rbAllSBanner.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.rbAllSBanner.Location = New System.Drawing.Point(8, 30) - Me.rbAllSBanner.Name = "rbAllSBanner" - Me.rbAllSBanner.Size = New System.Drawing.Size(62, 17) - Me.rbAllSBanner.TabIndex = 1 - Me.rbAllSBanner.TabStop = True - Me.rbAllSBanner.Text = "Banner" - Me.rbAllSBanner.UseVisualStyleBackColor = True - ' - 'txtAllSPosterWidth - ' - Me.txtAllSPosterWidth.Enabled = False - Me.txtAllSPosterWidth.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtAllSPosterWidth.Location = New System.Drawing.Point(71, 113) - Me.txtAllSPosterWidth.Name = "txtAllSPosterWidth" - Me.txtAllSPosterWidth.Size = New System.Drawing.Size(40, 22) - Me.txtAllSPosterWidth.TabIndex = 7 - ' - 'txtAllSPosterHeight - ' - Me.txtAllSPosterHeight.Enabled = False - Me.txtAllSPosterHeight.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtAllSPosterHeight.Location = New System.Drawing.Point(182, 113) - Me.txtAllSPosterHeight.Name = "txtAllSPosterHeight" - Me.txtAllSPosterHeight.Size = New System.Drawing.Size(40, 22) - Me.txtAllSPosterHeight.TabIndex = 9 - ' - 'lblAllSPosterQual - ' - Me.lblAllSPosterQual.AutoSize = True - Me.lblAllSPosterQual.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblAllSPosterQual.Location = New System.Drawing.Point(183, 161) - Me.lblAllSPosterQual.Name = "lblAllSPosterQual" - Me.lblAllSPosterQual.Size = New System.Drawing.Size(29, 17) - Me.lblAllSPosterQual.TabIndex = 12 - Me.lblAllSPosterQual.Text = "100" - ' - 'tbAllSPosterQual - ' - Me.tbAllSPosterQual.AutoSize = False - Me.tbAllSPosterQual.BackColor = System.Drawing.Color.White - Me.tbAllSPosterQual.LargeChange = 10 - Me.tbAllSPosterQual.Location = New System.Drawing.Point(7, 154) - Me.tbAllSPosterQual.Maximum = 100 - Me.tbAllSPosterQual.Name = "tbAllSPosterQual" - Me.tbAllSPosterQual.Size = New System.Drawing.Size(179, 27) - Me.tbAllSPosterQual.TabIndex = 11 - Me.tbAllSPosterQual.TickFrequency = 10 - Me.tbAllSPosterQual.Value = 100 - ' - 'lblAllSPosterQ - ' - Me.lblAllSPosterQ.AutoSize = True - Me.lblAllSPosterQ.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblAllSPosterQ.Location = New System.Drawing.Point(3, 141) - Me.lblAllSPosterQ.Name = "lblAllSPosterQ" - Me.lblAllSPosterQ.Size = New System.Drawing.Size(47, 13) - Me.lblAllSPosterQ.TabIndex = 10 - Me.lblAllSPosterQ.Text = "Quality:" - ' - 'lblAllSPosterWidth - ' - Me.lblAllSPosterWidth.AutoSize = True - Me.lblAllSPosterWidth.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblAllSPosterWidth.Location = New System.Drawing.Point(3, 117) - Me.lblAllSPosterWidth.Name = "lblAllSPosterWidth" - Me.lblAllSPosterWidth.Size = New System.Drawing.Size(66, 13) - Me.lblAllSPosterWidth.TabIndex = 6 - Me.lblAllSPosterWidth.Text = "Max Width:" - ' - 'lblAllSPosterHeight - ' - Me.lblAllSPosterHeight.AutoSize = True - Me.lblAllSPosterHeight.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblAllSPosterHeight.Location = New System.Drawing.Point(112, 117) - Me.lblAllSPosterHeight.Name = "lblAllSPosterHeight" - Me.lblAllSPosterHeight.Size = New System.Drawing.Size(69, 13) - Me.lblAllSPosterHeight.TabIndex = 8 - Me.lblAllSPosterHeight.Text = "Max Height:" - ' - 'chkResizeAllSPoster - ' - Me.chkResizeAllSPoster.AutoSize = True - Me.chkResizeAllSPoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkResizeAllSPoster.Location = New System.Drawing.Point(6, 92) - Me.chkResizeAllSPoster.Name = "chkResizeAllSPoster" - Me.chkResizeAllSPoster.Size = New System.Drawing.Size(133, 17) - Me.chkResizeAllSPoster.TabIndex = 5 - Me.chkResizeAllSPoster.Text = "Automatically Resize:" - Me.chkResizeAllSPoster.UseVisualStyleBackColor = True - ' - 'lblAllSPosterSize - ' - Me.lblAllSPosterSize.AutoSize = True - Me.lblAllSPosterSize.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblAllSPosterSize.Location = New System.Drawing.Point(3, 14) - Me.lblAllSPosterSize.Name = "lblAllSPosterSize" - Me.lblAllSPosterSize.Size = New System.Drawing.Size(83, 13) - Me.lblAllSPosterSize.TabIndex = 0 - Me.lblAllSPosterSize.Text = "Preferred Type:" - ' - 'cbAllSPosterSize - ' - Me.cbAllSPosterSize.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList - Me.cbAllSPosterSize.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.cbAllSPosterSize.FormattingEnabled = True - Me.cbAllSPosterSize.Location = New System.Drawing.Point(6, 52) - Me.cbAllSPosterSize.Name = "cbAllSPosterSize" - Me.cbAllSPosterSize.Size = New System.Drawing.Size(148, 21) - Me.cbAllSPosterSize.TabIndex = 3 - ' - 'chkOverwriteAllSPoster - ' - Me.chkOverwriteAllSPoster.AutoSize = True - Me.chkOverwriteAllSPoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkOverwriteAllSPoster.Location = New System.Drawing.Point(6, 76) - Me.chkOverwriteAllSPoster.Name = "chkOverwriteAllSPoster" - Me.chkOverwriteAllSPoster.Size = New System.Drawing.Size(119, 17) - Me.chkOverwriteAllSPoster.TabIndex = 4 - Me.chkOverwriteAllSPoster.Text = "Overwrite Existing" - Me.chkOverwriteAllSPoster.UseVisualStyleBackColor = True - ' - 'gbShowPosterOpts - ' - Me.gbShowPosterOpts.Controls.Add(Me.rbPoster) - Me.gbShowPosterOpts.Controls.Add(Me.rbBanner) - Me.gbShowPosterOpts.Controls.Add(Me.txtShowPosterWidth) - Me.gbShowPosterOpts.Controls.Add(Me.txtShowPosterHeight) - Me.gbShowPosterOpts.Controls.Add(Me.lblShowPosterQual) - Me.gbShowPosterOpts.Controls.Add(Me.tbShowPosterQual) - Me.gbShowPosterOpts.Controls.Add(Me.lblShowPosterQ) - Me.gbShowPosterOpts.Controls.Add(Me.lblShowPosterWidth) - Me.gbShowPosterOpts.Controls.Add(Me.lblShowPosterHeight) - Me.gbShowPosterOpts.Controls.Add(Me.chkResizeShowPoster) - Me.gbShowPosterOpts.Controls.Add(Me.lblShowPosterSize) - Me.gbShowPosterOpts.Controls.Add(Me.cbShowPosterSize) - Me.gbShowPosterOpts.Controls.Add(Me.chkOverwriteShowPoster) - Me.gbShowPosterOpts.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.gbShowPosterOpts.Location = New System.Drawing.Point(4, 5) - Me.gbShowPosterOpts.Name = "gbShowPosterOpts" - Me.gbShowPosterOpts.Size = New System.Drawing.Size(228, 191) - Me.gbShowPosterOpts.TabIndex = 0 - Me.gbShowPosterOpts.TabStop = False - Me.gbShowPosterOpts.Text = "Poster" - ' - 'rbPoster - ' - Me.rbPoster.AutoSize = True - Me.rbPoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.rbPoster.Location = New System.Drawing.Point(93, 30) - Me.rbPoster.Name = "rbPoster" - Me.rbPoster.Size = New System.Drawing.Size(57, 17) - Me.rbPoster.TabIndex = 2 - Me.rbPoster.TabStop = True - Me.rbPoster.Text = "Poster" - Me.rbPoster.UseVisualStyleBackColor = True - ' - 'rbBanner - ' - Me.rbBanner.AutoSize = True - Me.rbBanner.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.rbBanner.Location = New System.Drawing.Point(8, 30) - Me.rbBanner.Name = "rbBanner" - Me.rbBanner.Size = New System.Drawing.Size(62, 17) - Me.rbBanner.TabIndex = 1 - Me.rbBanner.TabStop = True - Me.rbBanner.Text = "Banner" - Me.rbBanner.UseVisualStyleBackColor = True - ' - 'txtShowPosterWidth - ' - Me.txtShowPosterWidth.Enabled = False - Me.txtShowPosterWidth.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtShowPosterWidth.Location = New System.Drawing.Point(71, 113) - Me.txtShowPosterWidth.Name = "txtShowPosterWidth" - Me.txtShowPosterWidth.Size = New System.Drawing.Size(40, 22) - Me.txtShowPosterWidth.TabIndex = 7 - ' - 'txtShowPosterHeight - ' - Me.txtShowPosterHeight.Enabled = False - Me.txtShowPosterHeight.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtShowPosterHeight.Location = New System.Drawing.Point(182, 113) - Me.txtShowPosterHeight.Name = "txtShowPosterHeight" - Me.txtShowPosterHeight.Size = New System.Drawing.Size(40, 22) - Me.txtShowPosterHeight.TabIndex = 9 - ' - 'lblShowPosterQual - ' - Me.lblShowPosterQual.AutoSize = True - Me.lblShowPosterQual.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblShowPosterQual.Location = New System.Drawing.Point(183, 161) - Me.lblShowPosterQual.Name = "lblShowPosterQual" - Me.lblShowPosterQual.Size = New System.Drawing.Size(29, 17) - Me.lblShowPosterQual.TabIndex = 12 - Me.lblShowPosterQual.Text = "100" - ' - 'tbShowPosterQual - ' - Me.tbShowPosterQual.AutoSize = False - Me.tbShowPosterQual.BackColor = System.Drawing.Color.White - Me.tbShowPosterQual.LargeChange = 10 - Me.tbShowPosterQual.Location = New System.Drawing.Point(7, 154) - Me.tbShowPosterQual.Maximum = 100 - Me.tbShowPosterQual.Name = "tbShowPosterQual" - Me.tbShowPosterQual.Size = New System.Drawing.Size(179, 27) - Me.tbShowPosterQual.TabIndex = 11 - Me.tbShowPosterQual.TickFrequency = 10 - Me.tbShowPosterQual.Value = 100 - ' - 'lblShowPosterQ - ' - Me.lblShowPosterQ.AutoSize = True - Me.lblShowPosterQ.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblShowPosterQ.Location = New System.Drawing.Point(3, 141) - Me.lblShowPosterQ.Name = "lblShowPosterQ" - Me.lblShowPosterQ.Size = New System.Drawing.Size(47, 13) - Me.lblShowPosterQ.TabIndex = 10 - Me.lblShowPosterQ.Text = "Quality:" - ' - 'lblShowPosterWidth - ' - Me.lblShowPosterWidth.AutoSize = True - Me.lblShowPosterWidth.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblShowPosterWidth.Location = New System.Drawing.Point(3, 117) - Me.lblShowPosterWidth.Name = "lblShowPosterWidth" - Me.lblShowPosterWidth.Size = New System.Drawing.Size(66, 13) - Me.lblShowPosterWidth.TabIndex = 6 - Me.lblShowPosterWidth.Text = "Max Width:" - ' - 'lblShowPosterHeight - ' - Me.lblShowPosterHeight.AutoSize = True - Me.lblShowPosterHeight.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblShowPosterHeight.Location = New System.Drawing.Point(112, 117) - Me.lblShowPosterHeight.Name = "lblShowPosterHeight" - Me.lblShowPosterHeight.Size = New System.Drawing.Size(69, 13) - Me.lblShowPosterHeight.TabIndex = 8 - Me.lblShowPosterHeight.Text = "Max Height:" - ' - 'chkResizeShowPoster - ' - Me.chkResizeShowPoster.AutoSize = True - Me.chkResizeShowPoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkResizeShowPoster.Location = New System.Drawing.Point(6, 92) - Me.chkResizeShowPoster.Name = "chkResizeShowPoster" - Me.chkResizeShowPoster.Size = New System.Drawing.Size(133, 17) - Me.chkResizeShowPoster.TabIndex = 5 - Me.chkResizeShowPoster.Text = "Automatically Resize:" - Me.chkResizeShowPoster.UseVisualStyleBackColor = True - ' - 'lblShowPosterSize - ' - Me.lblShowPosterSize.AutoSize = True - Me.lblShowPosterSize.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblShowPosterSize.Location = New System.Drawing.Point(3, 14) - Me.lblShowPosterSize.Name = "lblShowPosterSize" - Me.lblShowPosterSize.Size = New System.Drawing.Size(83, 13) - Me.lblShowPosterSize.TabIndex = 0 - Me.lblShowPosterSize.Text = "Preferred Type:" - ' - 'cbShowPosterSize - ' - Me.cbShowPosterSize.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList - Me.cbShowPosterSize.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.cbShowPosterSize.FormattingEnabled = True - Me.cbShowPosterSize.Location = New System.Drawing.Point(6, 52) - Me.cbShowPosterSize.Name = "cbShowPosterSize" - Me.cbShowPosterSize.Size = New System.Drawing.Size(148, 21) - Me.cbShowPosterSize.TabIndex = 3 - ' - 'chkOverwriteShowPoster - ' - Me.chkOverwriteShowPoster.AutoSize = True - Me.chkOverwriteShowPoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkOverwriteShowPoster.Location = New System.Drawing.Point(6, 76) - Me.chkOverwriteShowPoster.Name = "chkOverwriteShowPoster" - Me.chkOverwriteShowPoster.Size = New System.Drawing.Size(119, 17) - Me.chkOverwriteShowPoster.TabIndex = 4 - Me.chkOverwriteShowPoster.Text = "Overwrite Existing" - Me.chkOverwriteShowPoster.UseVisualStyleBackColor = True - ' - 'gbShowFanartOpts - ' - Me.gbShowFanartOpts.Controls.Add(Me.txtShowFanartWidth) - Me.gbShowFanartOpts.Controls.Add(Me.txtShowFanartHeight) - Me.gbShowFanartOpts.Controls.Add(Me.lblShowFanartQual) - Me.gbShowFanartOpts.Controls.Add(Me.tbShowFanartQual) - Me.gbShowFanartOpts.Controls.Add(Me.lblShowFanartQ) - Me.gbShowFanartOpts.Controls.Add(Me.lblShowFanartWidth) - Me.gbShowFanartOpts.Controls.Add(Me.lblShowFanartHeight) - Me.gbShowFanartOpts.Controls.Add(Me.chkResizeShowFanart) - Me.gbShowFanartOpts.Controls.Add(Me.cbShowFanartSize) - Me.gbShowFanartOpts.Controls.Add(Me.lblShowFanartSize) - Me.gbShowFanartOpts.Controls.Add(Me.chkOverwriteShowFanart) - Me.gbShowFanartOpts.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.gbShowFanartOpts.Location = New System.Drawing.Point(4, 199) - Me.gbShowFanartOpts.Name = "gbShowFanartOpts" - Me.gbShowFanartOpts.Size = New System.Drawing.Size(228, 167) - Me.gbShowFanartOpts.TabIndex = 1 - Me.gbShowFanartOpts.TabStop = False - Me.gbShowFanartOpts.Text = "Fanart" - ' - 'txtShowFanartWidth - ' - Me.txtShowFanartWidth.Enabled = False - Me.txtShowFanartWidth.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtShowFanartWidth.Location = New System.Drawing.Point(71, 90) - Me.txtShowFanartWidth.Name = "txtShowFanartWidth" - Me.txtShowFanartWidth.Size = New System.Drawing.Size(40, 22) - Me.txtShowFanartWidth.TabIndex = 5 - ' - 'txtShowFanartHeight - ' - Me.txtShowFanartHeight.Enabled = False - Me.txtShowFanartHeight.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtShowFanartHeight.Location = New System.Drawing.Point(182, 90) - Me.txtShowFanartHeight.Name = "txtShowFanartHeight" - Me.txtShowFanartHeight.Size = New System.Drawing.Size(40, 22) - Me.txtShowFanartHeight.TabIndex = 7 - ' - 'lblShowFanartQual - ' - Me.lblShowFanartQual.AutoSize = True - Me.lblShowFanartQual.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblShowFanartQual.Location = New System.Drawing.Point(183, 138) - Me.lblShowFanartQual.Name = "lblShowFanartQual" - Me.lblShowFanartQual.Size = New System.Drawing.Size(29, 17) - Me.lblShowFanartQual.TabIndex = 10 - Me.lblShowFanartQual.Text = "100" - ' - 'tbShowFanartQual - ' - Me.tbShowFanartQual.AutoSize = False - Me.tbShowFanartQual.BackColor = System.Drawing.Color.White - Me.tbShowFanartQual.LargeChange = 10 - Me.tbShowFanartQual.Location = New System.Drawing.Point(7, 131) - Me.tbShowFanartQual.Maximum = 100 - Me.tbShowFanartQual.Name = "tbShowFanartQual" - Me.tbShowFanartQual.Size = New System.Drawing.Size(180, 27) - Me.tbShowFanartQual.TabIndex = 9 - Me.tbShowFanartQual.TickFrequency = 10 - Me.tbShowFanartQual.Value = 100 - ' - 'lblShowFanartQ - ' - Me.lblShowFanartQ.AutoSize = True - Me.lblShowFanartQ.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblShowFanartQ.Location = New System.Drawing.Point(3, 118) - Me.lblShowFanartQ.Name = "lblShowFanartQ" - Me.lblShowFanartQ.Size = New System.Drawing.Size(47, 13) - Me.lblShowFanartQ.TabIndex = 8 - Me.lblShowFanartQ.Text = "Quality:" - ' - 'lblShowFanartWidth - ' - Me.lblShowFanartWidth.AutoSize = True - Me.lblShowFanartWidth.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblShowFanartWidth.Location = New System.Drawing.Point(3, 94) - Me.lblShowFanartWidth.Name = "lblShowFanartWidth" - Me.lblShowFanartWidth.Size = New System.Drawing.Size(66, 13) - Me.lblShowFanartWidth.TabIndex = 4 - Me.lblShowFanartWidth.Text = "Max Width:" - ' - 'lblShowFanartHeight - ' - Me.lblShowFanartHeight.AutoSize = True - Me.lblShowFanartHeight.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblShowFanartHeight.Location = New System.Drawing.Point(112, 94) - Me.lblShowFanartHeight.Name = "lblShowFanartHeight" - Me.lblShowFanartHeight.Size = New System.Drawing.Size(69, 13) - Me.lblShowFanartHeight.TabIndex = 6 - Me.lblShowFanartHeight.Text = "Max Height:" - ' - 'chkResizeShowFanart - ' - Me.chkResizeShowFanart.AutoSize = True - Me.chkResizeShowFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkResizeShowFanart.Location = New System.Drawing.Point(6, 69) - Me.chkResizeShowFanart.Name = "chkResizeShowFanart" - Me.chkResizeShowFanart.Size = New System.Drawing.Size(133, 17) - Me.chkResizeShowFanart.TabIndex = 3 - Me.chkResizeShowFanart.Text = "Automatically Resize:" - Me.chkResizeShowFanart.UseVisualStyleBackColor = True - ' - 'cbShowFanartSize - ' - Me.cbShowFanartSize.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList - Me.cbShowFanartSize.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.cbShowFanartSize.FormattingEnabled = True - Me.cbShowFanartSize.Location = New System.Drawing.Point(6, 29) - Me.cbShowFanartSize.Name = "cbShowFanartSize" - Me.cbShowFanartSize.Size = New System.Drawing.Size(148, 21) - Me.cbShowFanartSize.TabIndex = 1 - ' - 'lblShowFanartSize - ' - Me.lblShowFanartSize.AutoSize = True - Me.lblShowFanartSize.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblShowFanartSize.Location = New System.Drawing.Point(3, 14) - Me.lblShowFanartSize.Name = "lblShowFanartSize" - Me.lblShowFanartSize.Size = New System.Drawing.Size(80, 13) - Me.lblShowFanartSize.TabIndex = 0 - Me.lblShowFanartSize.Text = "Preferred Size:" - ' - 'chkOverwriteShowFanart - ' - Me.chkOverwriteShowFanart.AutoSize = True - Me.chkOverwriteShowFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkOverwriteShowFanart.Location = New System.Drawing.Point(6, 53) - Me.chkOverwriteShowFanart.Name = "chkOverwriteShowFanart" - Me.chkOverwriteShowFanart.Size = New System.Drawing.Size(119, 17) - Me.chkOverwriteShowFanart.TabIndex = 2 - Me.chkOverwriteShowFanart.Text = "Overwrite Existing" - Me.chkOverwriteShowFanart.UseVisualStyleBackColor = True - ' - 'TabPage6 - ' - Me.TabPage6.Controls.Add(Me.gbSeaPosterOpts) - Me.TabPage6.Controls.Add(Me.gbSeaFanartOpts) - Me.TabPage6.Location = New System.Drawing.Point(4, 22) - Me.TabPage6.Name = "TabPage6" - Me.TabPage6.Size = New System.Drawing.Size(601, 371) - Me.TabPage6.TabIndex = 2 - Me.TabPage6.Text = "TV Season" - Me.TabPage6.UseVisualStyleBackColor = True - ' - 'gbSeaPosterOpts - ' - Me.gbSeaPosterOpts.Controls.Add(Me.txtSeaPosterWidth) - Me.gbSeaPosterOpts.Controls.Add(Me.txtSeaPosterHeight) - Me.gbSeaPosterOpts.Controls.Add(Me.lblSeaPosterQual) - Me.gbSeaPosterOpts.Controls.Add(Me.tbSeaPosterQual) - Me.gbSeaPosterOpts.Controls.Add(Me.lblSeaPosterQ) - Me.gbSeaPosterOpts.Controls.Add(Me.lblSeaPosterWidth) - Me.gbSeaPosterOpts.Controls.Add(Me.lblSeaPosterHeight) - Me.gbSeaPosterOpts.Controls.Add(Me.chkSeaResizePoster) - Me.gbSeaPosterOpts.Controls.Add(Me.lblSeaPosterSize) - Me.gbSeaPosterOpts.Controls.Add(Me.cbSeaPosterSize) - Me.gbSeaPosterOpts.Controls.Add(Me.chkSeaOverwritePoster) - Me.gbSeaPosterOpts.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.gbSeaPosterOpts.Location = New System.Drawing.Point(4, 5) - Me.gbSeaPosterOpts.Name = "gbSeaPosterOpts" - Me.gbSeaPosterOpts.Size = New System.Drawing.Size(228, 167) - Me.gbSeaPosterOpts.TabIndex = 0 - Me.gbSeaPosterOpts.TabStop = False - Me.gbSeaPosterOpts.Text = "Poster" - ' - 'txtSeaPosterWidth - ' - Me.txtSeaPosterWidth.Enabled = False - Me.txtSeaPosterWidth.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtSeaPosterWidth.Location = New System.Drawing.Point(71, 90) - Me.txtSeaPosterWidth.Name = "txtSeaPosterWidth" - Me.txtSeaPosterWidth.Size = New System.Drawing.Size(40, 22) - Me.txtSeaPosterWidth.TabIndex = 5 - ' - 'txtSeaPosterHeight - ' - Me.txtSeaPosterHeight.Enabled = False - Me.txtSeaPosterHeight.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtSeaPosterHeight.Location = New System.Drawing.Point(182, 90) - Me.txtSeaPosterHeight.Name = "txtSeaPosterHeight" - Me.txtSeaPosterHeight.Size = New System.Drawing.Size(40, 22) - Me.txtSeaPosterHeight.TabIndex = 7 - ' - 'lblSeaPosterQual - ' - Me.lblSeaPosterQual.AutoSize = True - Me.lblSeaPosterQual.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblSeaPosterQual.Location = New System.Drawing.Point(183, 138) - Me.lblSeaPosterQual.Name = "lblSeaPosterQual" - Me.lblSeaPosterQual.Size = New System.Drawing.Size(29, 17) - Me.lblSeaPosterQual.TabIndex = 10 - Me.lblSeaPosterQual.Text = "100" - ' - 'tbSeaPosterQual - ' - Me.tbSeaPosterQual.AutoSize = False - Me.tbSeaPosterQual.BackColor = System.Drawing.Color.White - Me.tbSeaPosterQual.LargeChange = 10 - Me.tbSeaPosterQual.Location = New System.Drawing.Point(7, 131) - Me.tbSeaPosterQual.Maximum = 100 - Me.tbSeaPosterQual.Name = "tbSeaPosterQual" - Me.tbSeaPosterQual.Size = New System.Drawing.Size(179, 27) - Me.tbSeaPosterQual.TabIndex = 9 - Me.tbSeaPosterQual.TickFrequency = 10 - Me.tbSeaPosterQual.Value = 100 - ' - 'lblSeaPosterQ - ' - Me.lblSeaPosterQ.AutoSize = True - Me.lblSeaPosterQ.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblSeaPosterQ.Location = New System.Drawing.Point(3, 118) - Me.lblSeaPosterQ.Name = "lblSeaPosterQ" - Me.lblSeaPosterQ.Size = New System.Drawing.Size(47, 13) - Me.lblSeaPosterQ.TabIndex = 8 - Me.lblSeaPosterQ.Text = "Quality:" - ' - 'lblSeaPosterWidth - ' - Me.lblSeaPosterWidth.AutoSize = True - Me.lblSeaPosterWidth.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblSeaPosterWidth.Location = New System.Drawing.Point(3, 94) - Me.lblSeaPosterWidth.Name = "lblSeaPosterWidth" - Me.lblSeaPosterWidth.Size = New System.Drawing.Size(66, 13) - Me.lblSeaPosterWidth.TabIndex = 4 - Me.lblSeaPosterWidth.Text = "Max Width:" - ' - 'lblSeaPosterHeight - ' - Me.lblSeaPosterHeight.AutoSize = True - Me.lblSeaPosterHeight.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblSeaPosterHeight.Location = New System.Drawing.Point(112, 94) - Me.lblSeaPosterHeight.Name = "lblSeaPosterHeight" - Me.lblSeaPosterHeight.Size = New System.Drawing.Size(69, 13) - Me.lblSeaPosterHeight.TabIndex = 6 - Me.lblSeaPosterHeight.Text = "Max Height:" - ' - 'chkSeaResizePoster - ' - Me.chkSeaResizePoster.AutoSize = True - Me.chkSeaResizePoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkSeaResizePoster.Location = New System.Drawing.Point(6, 69) - Me.chkSeaResizePoster.Name = "chkSeaResizePoster" - Me.chkSeaResizePoster.Size = New System.Drawing.Size(133, 17) - Me.chkSeaResizePoster.TabIndex = 3 - Me.chkSeaResizePoster.Text = "Automatically Resize:" - Me.chkSeaResizePoster.UseVisualStyleBackColor = True - ' - 'lblSeaPosterSize - ' - Me.lblSeaPosterSize.AutoSize = True - Me.lblSeaPosterSize.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblSeaPosterSize.Location = New System.Drawing.Point(3, 14) - Me.lblSeaPosterSize.Name = "lblSeaPosterSize" - Me.lblSeaPosterSize.Size = New System.Drawing.Size(83, 13) - Me.lblSeaPosterSize.TabIndex = 0 - Me.lblSeaPosterSize.Text = "Preferred Type:" - ' - 'cbSeaPosterSize - ' - Me.cbSeaPosterSize.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList - Me.cbSeaPosterSize.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.cbSeaPosterSize.FormattingEnabled = True - Me.cbSeaPosterSize.Location = New System.Drawing.Point(6, 29) - Me.cbSeaPosterSize.Name = "cbSeaPosterSize" - Me.cbSeaPosterSize.Size = New System.Drawing.Size(148, 21) - Me.cbSeaPosterSize.TabIndex = 1 - ' - 'chkSeaOverwritePoster - ' - Me.chkSeaOverwritePoster.AutoSize = True - Me.chkSeaOverwritePoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkSeaOverwritePoster.Location = New System.Drawing.Point(6, 53) - Me.chkSeaOverwritePoster.Name = "chkSeaOverwritePoster" - Me.chkSeaOverwritePoster.Size = New System.Drawing.Size(119, 17) - Me.chkSeaOverwritePoster.TabIndex = 2 - Me.chkSeaOverwritePoster.Text = "Overwrite Existing" - Me.chkSeaOverwritePoster.UseVisualStyleBackColor = True - ' - 'gbSeaFanartOpts - ' - Me.gbSeaFanartOpts.Controls.Add(Me.txtSeaFanartWidth) - Me.gbSeaFanartOpts.Controls.Add(Me.txtSeaFanartHeight) - Me.gbSeaFanartOpts.Controls.Add(Me.lblSeaFanartQual) - Me.gbSeaFanartOpts.Controls.Add(Me.tbSeaFanartQual) - Me.gbSeaFanartOpts.Controls.Add(Me.lblSeaFanartQ) - Me.gbSeaFanartOpts.Controls.Add(Me.lblSeaFanartWidth) - Me.gbSeaFanartOpts.Controls.Add(Me.lblSeaFanartHeight) - Me.gbSeaFanartOpts.Controls.Add(Me.chkSeaResizeFanart) - Me.gbSeaFanartOpts.Controls.Add(Me.cbSeaFanartSize) - Me.gbSeaFanartOpts.Controls.Add(Me.lblSeaFanartSize) - Me.gbSeaFanartOpts.Controls.Add(Me.chkSeaOverwriteFanart) - Me.gbSeaFanartOpts.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.gbSeaFanartOpts.Location = New System.Drawing.Point(238, 5) - Me.gbSeaFanartOpts.Name = "gbSeaFanartOpts" - Me.gbSeaFanartOpts.Size = New System.Drawing.Size(228, 167) - Me.gbSeaFanartOpts.TabIndex = 1 - Me.gbSeaFanartOpts.TabStop = False - Me.gbSeaFanartOpts.Text = "Fanart" - ' - 'txtSeaFanartWidth - ' - Me.txtSeaFanartWidth.Enabled = False - Me.txtSeaFanartWidth.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtSeaFanartWidth.Location = New System.Drawing.Point(71, 90) - Me.txtSeaFanartWidth.Name = "txtSeaFanartWidth" - Me.txtSeaFanartWidth.Size = New System.Drawing.Size(40, 22) - Me.txtSeaFanartWidth.TabIndex = 5 - ' - 'txtSeaFanartHeight - ' - Me.txtSeaFanartHeight.Enabled = False - Me.txtSeaFanartHeight.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtSeaFanartHeight.Location = New System.Drawing.Point(182, 90) - Me.txtSeaFanartHeight.Name = "txtSeaFanartHeight" - Me.txtSeaFanartHeight.Size = New System.Drawing.Size(40, 22) - Me.txtSeaFanartHeight.TabIndex = 7 - ' - 'lblSeaFanartQual - ' - Me.lblSeaFanartQual.AutoSize = True - Me.lblSeaFanartQual.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblSeaFanartQual.Location = New System.Drawing.Point(183, 138) - Me.lblSeaFanartQual.Name = "lblSeaFanartQual" - Me.lblSeaFanartQual.Size = New System.Drawing.Size(29, 17) - Me.lblSeaFanartQual.TabIndex = 10 - Me.lblSeaFanartQual.Text = "100" - ' - 'tbSeaFanartQual - ' - Me.tbSeaFanartQual.AutoSize = False - Me.tbSeaFanartQual.BackColor = System.Drawing.Color.White - Me.tbSeaFanartQual.LargeChange = 10 - Me.tbSeaFanartQual.Location = New System.Drawing.Point(7, 131) - Me.tbSeaFanartQual.Maximum = 100 - Me.tbSeaFanartQual.Name = "tbSeaFanartQual" - Me.tbSeaFanartQual.Size = New System.Drawing.Size(180, 27) - Me.tbSeaFanartQual.TabIndex = 9 - Me.tbSeaFanartQual.TickFrequency = 10 - Me.tbSeaFanartQual.Value = 100 - ' - 'lblSeaFanartQ - ' - Me.lblSeaFanartQ.AutoSize = True - Me.lblSeaFanartQ.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblSeaFanartQ.Location = New System.Drawing.Point(3, 118) - Me.lblSeaFanartQ.Name = "lblSeaFanartQ" - Me.lblSeaFanartQ.Size = New System.Drawing.Size(47, 13) - Me.lblSeaFanartQ.TabIndex = 8 - Me.lblSeaFanartQ.Text = "Quality:" - ' - 'lblSeaFanartWidth - ' - Me.lblSeaFanartWidth.AutoSize = True - Me.lblSeaFanartWidth.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblSeaFanartWidth.Location = New System.Drawing.Point(3, 94) - Me.lblSeaFanartWidth.Name = "lblSeaFanartWidth" - Me.lblSeaFanartWidth.Size = New System.Drawing.Size(66, 13) - Me.lblSeaFanartWidth.TabIndex = 4 - Me.lblSeaFanartWidth.Text = "Max Width:" - ' - 'lblSeaFanartHeight - ' - Me.lblSeaFanartHeight.AutoSize = True - Me.lblSeaFanartHeight.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblSeaFanartHeight.Location = New System.Drawing.Point(112, 94) - Me.lblSeaFanartHeight.Name = "lblSeaFanartHeight" - Me.lblSeaFanartHeight.Size = New System.Drawing.Size(69, 13) - Me.lblSeaFanartHeight.TabIndex = 6 - Me.lblSeaFanartHeight.Text = "Max Height:" - ' - 'chkSeaResizeFanart - ' - Me.chkSeaResizeFanart.AutoSize = True - Me.chkSeaResizeFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkSeaResizeFanart.Location = New System.Drawing.Point(6, 69) - Me.chkSeaResizeFanart.Name = "chkSeaResizeFanart" - Me.chkSeaResizeFanart.Size = New System.Drawing.Size(133, 17) - Me.chkSeaResizeFanart.TabIndex = 3 - Me.chkSeaResizeFanart.Text = "Automatically Resize:" - Me.chkSeaResizeFanart.UseVisualStyleBackColor = True - ' - 'cbSeaFanartSize - ' - Me.cbSeaFanartSize.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList - Me.cbSeaFanartSize.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.cbSeaFanartSize.FormattingEnabled = True - Me.cbSeaFanartSize.Location = New System.Drawing.Point(6, 29) - Me.cbSeaFanartSize.Name = "cbSeaFanartSize" - Me.cbSeaFanartSize.Size = New System.Drawing.Size(148, 21) - Me.cbSeaFanartSize.TabIndex = 1 - ' - 'lblSeaFanartSize - ' - Me.lblSeaFanartSize.AutoSize = True - Me.lblSeaFanartSize.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblSeaFanartSize.Location = New System.Drawing.Point(3, 14) - Me.lblSeaFanartSize.Name = "lblSeaFanartSize" - Me.lblSeaFanartSize.Size = New System.Drawing.Size(80, 13) - Me.lblSeaFanartSize.TabIndex = 0 - Me.lblSeaFanartSize.Text = "Preferred Size:" - ' - 'chkSeaOverwriteFanart - ' - Me.chkSeaOverwriteFanart.AutoSize = True - Me.chkSeaOverwriteFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkSeaOverwriteFanart.Location = New System.Drawing.Point(6, 53) - Me.chkSeaOverwriteFanart.Name = "chkSeaOverwriteFanart" - Me.chkSeaOverwriteFanart.Size = New System.Drawing.Size(119, 17) - Me.chkSeaOverwriteFanart.TabIndex = 2 - Me.chkSeaOverwriteFanart.Text = "Overwrite Existing" - Me.chkSeaOverwriteFanart.UseVisualStyleBackColor = True - ' - 'TabPage7 - ' - Me.TabPage7.Controls.Add(Me.gbEpPosterOpts) - Me.TabPage7.Controls.Add(Me.gbEpFanartOpts) - Me.TabPage7.Location = New System.Drawing.Point(4, 22) - Me.TabPage7.Name = "TabPage7" - Me.TabPage7.Padding = New System.Windows.Forms.Padding(3) - Me.TabPage7.Size = New System.Drawing.Size(601, 371) - Me.TabPage7.TabIndex = 1 - Me.TabPage7.Text = "TV Episode" - Me.TabPage7.UseVisualStyleBackColor = True - ' - 'gbEpPosterOpts - ' - Me.gbEpPosterOpts.Controls.Add(Me.txtEpPosterWidth) - Me.gbEpPosterOpts.Controls.Add(Me.txtEpPosterHeight) - Me.gbEpPosterOpts.Controls.Add(Me.lblEpPosterQual) - Me.gbEpPosterOpts.Controls.Add(Me.tbEpPosterQual) - Me.gbEpPosterOpts.Controls.Add(Me.lblEpPosterQ) - Me.gbEpPosterOpts.Controls.Add(Me.lblEpPosterWidth) - Me.gbEpPosterOpts.Controls.Add(Me.lblEpPosterHeight) - Me.gbEpPosterOpts.Controls.Add(Me.chkResizeEpPoster) - Me.gbEpPosterOpts.Controls.Add(Me.chkOverwriteEpPoster) - Me.gbEpPosterOpts.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.gbEpPosterOpts.Location = New System.Drawing.Point(4, 5) - Me.gbEpPosterOpts.Name = "gbEpPosterOpts" - Me.gbEpPosterOpts.Size = New System.Drawing.Size(228, 135) - Me.gbEpPosterOpts.TabIndex = 0 - Me.gbEpPosterOpts.TabStop = False - Me.gbEpPosterOpts.Text = "Poster" - ' - 'txtEpPosterWidth - ' - Me.txtEpPosterWidth.Enabled = False - Me.txtEpPosterWidth.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtEpPosterWidth.Location = New System.Drawing.Point(71, 49) - Me.txtEpPosterWidth.Name = "txtEpPosterWidth" - Me.txtEpPosterWidth.Size = New System.Drawing.Size(40, 22) - Me.txtEpPosterWidth.TabIndex = 3 - ' - 'txtEpPosterHeight - ' - Me.txtEpPosterHeight.Enabled = False - Me.txtEpPosterHeight.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtEpPosterHeight.Location = New System.Drawing.Point(182, 49) - Me.txtEpPosterHeight.Name = "txtEpPosterHeight" - Me.txtEpPosterHeight.Size = New System.Drawing.Size(40, 22) - Me.txtEpPosterHeight.TabIndex = 5 - ' - 'lblEpPosterQual - ' - Me.lblEpPosterQual.AutoSize = True - Me.lblEpPosterQual.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblEpPosterQual.Location = New System.Drawing.Point(181, 98) - Me.lblEpPosterQual.Name = "lblEpPosterQual" - Me.lblEpPosterQual.Size = New System.Drawing.Size(29, 17) - Me.lblEpPosterQual.TabIndex = 8 - Me.lblEpPosterQual.Text = "100" - ' - 'tbEpPosterQual - ' - Me.tbEpPosterQual.AutoSize = False - Me.tbEpPosterQual.BackColor = System.Drawing.Color.White - Me.tbEpPosterQual.LargeChange = 10 - Me.tbEpPosterQual.Location = New System.Drawing.Point(5, 91) - Me.tbEpPosterQual.Maximum = 100 - Me.tbEpPosterQual.Name = "tbEpPosterQual" - Me.tbEpPosterQual.Size = New System.Drawing.Size(179, 27) - Me.tbEpPosterQual.TabIndex = 7 - Me.tbEpPosterQual.TickFrequency = 10 - Me.tbEpPosterQual.Value = 100 - ' - 'lblEpPosterQ - ' - Me.lblEpPosterQ.AutoSize = True - Me.lblEpPosterQ.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblEpPosterQ.Location = New System.Drawing.Point(1, 78) - Me.lblEpPosterQ.Name = "lblEpPosterQ" - Me.lblEpPosterQ.Size = New System.Drawing.Size(47, 13) - Me.lblEpPosterQ.TabIndex = 6 - Me.lblEpPosterQ.Text = "Quality:" - ' - 'lblEpPosterWidth - ' - Me.lblEpPosterWidth.AutoSize = True - Me.lblEpPosterWidth.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblEpPosterWidth.Location = New System.Drawing.Point(3, 53) - Me.lblEpPosterWidth.Name = "lblEpPosterWidth" - Me.lblEpPosterWidth.Size = New System.Drawing.Size(66, 13) - Me.lblEpPosterWidth.TabIndex = 2 - Me.lblEpPosterWidth.Text = "Max Width:" - ' - 'lblEpPosterHeight - ' - Me.lblEpPosterHeight.AutoSize = True - Me.lblEpPosterHeight.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblEpPosterHeight.Location = New System.Drawing.Point(112, 53) - Me.lblEpPosterHeight.Name = "lblEpPosterHeight" - Me.lblEpPosterHeight.Size = New System.Drawing.Size(69, 13) - Me.lblEpPosterHeight.TabIndex = 4 - Me.lblEpPosterHeight.Text = "Max Height:" - ' - 'chkResizeEpPoster - ' - Me.chkResizeEpPoster.AutoSize = True - Me.chkResizeEpPoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkResizeEpPoster.Location = New System.Drawing.Point(4, 30) - Me.chkResizeEpPoster.Name = "chkResizeEpPoster" - Me.chkResizeEpPoster.Size = New System.Drawing.Size(133, 17) - Me.chkResizeEpPoster.TabIndex = 1 - Me.chkResizeEpPoster.Text = "Automatically Resize:" - Me.chkResizeEpPoster.UseVisualStyleBackColor = True - ' - 'chkOverwriteEpPoster - ' - Me.chkOverwriteEpPoster.AutoSize = True - Me.chkOverwriteEpPoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkOverwriteEpPoster.Location = New System.Drawing.Point(4, 14) - Me.chkOverwriteEpPoster.Name = "chkOverwriteEpPoster" - Me.chkOverwriteEpPoster.Size = New System.Drawing.Size(119, 17) - Me.chkOverwriteEpPoster.TabIndex = 0 - Me.chkOverwriteEpPoster.Text = "Overwrite Existing" - Me.chkOverwriteEpPoster.UseVisualStyleBackColor = True - ' - 'gbEpFanartOpts - ' - Me.gbEpFanartOpts.Controls.Add(Me.txtEpFanartWidth) - Me.gbEpFanartOpts.Controls.Add(Me.txtEpFanartHeight) - Me.gbEpFanartOpts.Controls.Add(Me.lblEpFanartQual) - Me.gbEpFanartOpts.Controls.Add(Me.tbEpFanartQual) - Me.gbEpFanartOpts.Controls.Add(Me.lblEpFanartQ) - Me.gbEpFanartOpts.Controls.Add(Me.lblEpFanartWidth) - Me.gbEpFanartOpts.Controls.Add(Me.lblEpFanartHeight) - Me.gbEpFanartOpts.Controls.Add(Me.chkResizeEpFanart) - Me.gbEpFanartOpts.Controls.Add(Me.cbEpFanartSize) - Me.gbEpFanartOpts.Controls.Add(Me.lblEpFanartSize) - Me.gbEpFanartOpts.Controls.Add(Me.chkOverwriteEpFanart) - Me.gbEpFanartOpts.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.gbEpFanartOpts.Location = New System.Drawing.Point(238, 5) - Me.gbEpFanartOpts.Name = "gbEpFanartOpts" - Me.gbEpFanartOpts.Size = New System.Drawing.Size(228, 167) - Me.gbEpFanartOpts.TabIndex = 1 - Me.gbEpFanartOpts.TabStop = False - Me.gbEpFanartOpts.Text = "Fanart" - ' - 'txtEpFanartWidth - ' - Me.txtEpFanartWidth.Enabled = False - Me.txtEpFanartWidth.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtEpFanartWidth.Location = New System.Drawing.Point(71, 90) - Me.txtEpFanartWidth.Name = "txtEpFanartWidth" - Me.txtEpFanartWidth.Size = New System.Drawing.Size(40, 22) - Me.txtEpFanartWidth.TabIndex = 5 - ' - 'txtEpFanartHeight - ' - Me.txtEpFanartHeight.Enabled = False - Me.txtEpFanartHeight.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtEpFanartHeight.Location = New System.Drawing.Point(182, 90) - Me.txtEpFanartHeight.Name = "txtEpFanartHeight" - Me.txtEpFanartHeight.Size = New System.Drawing.Size(40, 22) - Me.txtEpFanartHeight.TabIndex = 7 - ' - 'lblEpFanartQual - ' - Me.lblEpFanartQual.AutoSize = True - Me.lblEpFanartQual.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblEpFanartQual.Location = New System.Drawing.Point(183, 138) - Me.lblEpFanartQual.Name = "lblEpFanartQual" - Me.lblEpFanartQual.Size = New System.Drawing.Size(29, 17) - Me.lblEpFanartQual.TabIndex = 10 - Me.lblEpFanartQual.Text = "100" - ' - 'tbEpFanartQual - ' - Me.tbEpFanartQual.AutoSize = False - Me.tbEpFanartQual.BackColor = System.Drawing.Color.White - Me.tbEpFanartQual.LargeChange = 10 - Me.tbEpFanartQual.Location = New System.Drawing.Point(7, 131) - Me.tbEpFanartQual.Maximum = 100 - Me.tbEpFanartQual.Name = "tbEpFanartQual" - Me.tbEpFanartQual.Size = New System.Drawing.Size(180, 27) - Me.tbEpFanartQual.TabIndex = 9 - Me.tbEpFanartQual.TickFrequency = 10 - Me.tbEpFanartQual.Value = 100 - ' - 'lblEpFanartQ - ' - Me.lblEpFanartQ.AutoSize = True - Me.lblEpFanartQ.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblEpFanartQ.Location = New System.Drawing.Point(3, 118) - Me.lblEpFanartQ.Name = "lblEpFanartQ" - Me.lblEpFanartQ.Size = New System.Drawing.Size(47, 13) - Me.lblEpFanartQ.TabIndex = 8 - Me.lblEpFanartQ.Text = "Quality:" - ' - 'lblEpFanartWidth - ' - Me.lblEpFanartWidth.AutoSize = True - Me.lblEpFanartWidth.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblEpFanartWidth.Location = New System.Drawing.Point(3, 94) - Me.lblEpFanartWidth.Name = "lblEpFanartWidth" - Me.lblEpFanartWidth.Size = New System.Drawing.Size(66, 13) - Me.lblEpFanartWidth.TabIndex = 4 - Me.lblEpFanartWidth.Text = "Max Width:" - ' - 'lblEpFanartHeight - ' - Me.lblEpFanartHeight.AutoSize = True - Me.lblEpFanartHeight.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblEpFanartHeight.Location = New System.Drawing.Point(112, 94) - Me.lblEpFanartHeight.Name = "lblEpFanartHeight" - Me.lblEpFanartHeight.Size = New System.Drawing.Size(69, 13) - Me.lblEpFanartHeight.TabIndex = 6 - Me.lblEpFanartHeight.Text = "Max Height:" - ' - 'chkResizeEpFanart - ' - Me.chkResizeEpFanart.AutoSize = True - Me.chkResizeEpFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkResizeEpFanart.Location = New System.Drawing.Point(6, 69) - Me.chkResizeEpFanart.Name = "chkResizeEpFanart" - Me.chkResizeEpFanart.Size = New System.Drawing.Size(133, 17) - Me.chkResizeEpFanart.TabIndex = 3 - Me.chkResizeEpFanart.Text = "Automatically Resize:" - Me.chkResizeEpFanart.UseVisualStyleBackColor = True - ' - 'cbEpFanartSize - ' - Me.cbEpFanartSize.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList - Me.cbEpFanartSize.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.cbEpFanartSize.FormattingEnabled = True - Me.cbEpFanartSize.Location = New System.Drawing.Point(6, 29) - Me.cbEpFanartSize.Name = "cbEpFanartSize" - Me.cbEpFanartSize.Size = New System.Drawing.Size(148, 21) - Me.cbEpFanartSize.TabIndex = 1 - ' - 'lblEpFanartSize - ' - Me.lblEpFanartSize.AutoSize = True - Me.lblEpFanartSize.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblEpFanartSize.Location = New System.Drawing.Point(3, 14) - Me.lblEpFanartSize.Name = "lblEpFanartSize" - Me.lblEpFanartSize.Size = New System.Drawing.Size(80, 13) - Me.lblEpFanartSize.TabIndex = 0 - Me.lblEpFanartSize.Text = "Preferred Size:" - ' - 'chkOverwriteEpFanart - ' - Me.chkOverwriteEpFanart.AutoSize = True - Me.chkOverwriteEpFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkOverwriteEpFanart.Location = New System.Drawing.Point(6, 53) - Me.chkOverwriteEpFanart.Name = "chkOverwriteEpFanart" - Me.chkOverwriteEpFanart.Size = New System.Drawing.Size(119, 17) - Me.chkOverwriteEpFanart.TabIndex = 2 - Me.chkOverwriteEpFanart.Text = "Overwrite Existing" - Me.chkOverwriteEpFanart.UseVisualStyleBackColor = True - ' - 'TabPage8 - ' - Me.TabPage8.Controls.Add(Me.chkGetEnglishImages) - Me.TabPage8.Controls.Add(Me.chkOnlyTVImagesLanguage) - Me.TabPage8.Location = New System.Drawing.Point(4, 22) - Me.TabPage8.Name = "TabPage8" - Me.TabPage8.Size = New System.Drawing.Size(601, 371) - Me.TabPage8.TabIndex = 3 - Me.TabPage8.Text = "General" - Me.TabPage8.UseVisualStyleBackColor = True - ' - 'chkGetEnglishImages - ' - Me.chkGetEnglishImages.AutoSize = True - Me.chkGetEnglishImages.Enabled = False - Me.chkGetEnglishImages.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.chkGetEnglishImages.Location = New System.Drawing.Point(21, 32) - Me.chkGetEnglishImages.Name = "chkGetEnglishImages" - Me.chkGetEnglishImages.Size = New System.Drawing.Size(149, 17) - Me.chkGetEnglishImages.TabIndex = 1 - Me.chkGetEnglishImages.Text = "Also Get English Images" - Me.chkGetEnglishImages.UseVisualStyleBackColor = True - ' - 'chkOnlyTVImagesLanguage - ' - Me.chkOnlyTVImagesLanguage.AutoSize = True - Me.chkOnlyTVImagesLanguage.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.chkOnlyTVImagesLanguage.Location = New System.Drawing.Point(8, 14) - Me.chkOnlyTVImagesLanguage.Name = "chkOnlyTVImagesLanguage" - Me.chkOnlyTVImagesLanguage.Size = New System.Drawing.Size(248, 17) - Me.chkOnlyTVImagesLanguage.TabIndex = 0 - Me.chkOnlyTVImagesLanguage.Text = "Only Get Images for the Selected Language" - Me.chkOnlyTVImagesLanguage.UseVisualStyleBackColor = True - ' - 'pnlTVScraper - ' - Me.pnlTVScraper.BackColor = System.Drawing.Color.White - Me.pnlTVScraper.Controls.Add(Me.GroupBox32) - Me.pnlTVScraper.Controls.Add(Me.GroupBox33) - Me.pnlTVScraper.Controls.Add(Me.GroupBox31) - Me.pnlTVScraper.Controls.Add(Me.gbTVScraperOptions) - Me.pnlTVScraper.Location = New System.Drawing.Point(717, 746) - Me.pnlTVScraper.Name = "pnlTVScraper" - Me.pnlTVScraper.Size = New System.Drawing.Size(617, 400) - Me.pnlTVScraper.TabIndex = 19 - Me.pnlTVScraper.Visible = False - ' - 'GroupBox32 - ' - Me.GroupBox32.Controls.Add(Me.GroupBox35) - Me.GroupBox32.Controls.Add(Me.GroupBox34) - Me.GroupBox32.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.GroupBox32.Location = New System.Drawing.Point(208, 252) - Me.GroupBox32.Name = "GroupBox32" - Me.GroupBox32.Size = New System.Drawing.Size(403, 114) - Me.GroupBox32.TabIndex = 3 - Me.GroupBox32.TabStop = False - Me.GroupBox32.Text = "Scraper Fields" - ' - 'GroupBox35 - ' - Me.GroupBox35.Controls.Add(Me.chkScraperShowRating) - Me.GroupBox35.Controls.Add(Me.chkScraperShowActors) - Me.GroupBox35.Controls.Add(Me.chkScraperShowStudio) - Me.GroupBox35.Controls.Add(Me.chkScraperShowPremiered) - Me.GroupBox35.Controls.Add(Me.chkScraperShowEGU) - Me.GroupBox35.Controls.Add(Me.chkScraperShowMPAA) - Me.GroupBox35.Controls.Add(Me.chkScraperShowPlot) - Me.GroupBox35.Controls.Add(Me.chkScraperShowGenre) - Me.GroupBox35.Controls.Add(Me.chkScraperShowTitle) - Me.GroupBox35.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.GroupBox35.Location = New System.Drawing.Point(3, 14) - Me.GroupBox35.Name = "GroupBox35" - Me.GroupBox35.Size = New System.Drawing.Size(213, 96) - Me.GroupBox35.TabIndex = 0 - Me.GroupBox35.TabStop = False - Me.GroupBox35.Text = "Show" - ' - 'chkScraperShowRating - ' - Me.chkScraperShowRating.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkScraperShowRating.Location = New System.Drawing.Point(130, 29) - Me.chkScraperShowRating.Name = "chkScraperShowRating" - Me.chkScraperShowRating.Size = New System.Drawing.Size(78, 17) - Me.chkScraperShowRating.TabIndex = 6 - Me.chkScraperShowRating.Text = "Rating" - Me.chkScraperShowRating.UseVisualStyleBackColor = True - ' - 'chkScraperShowActors - ' - Me.chkScraperShowActors.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkScraperShowActors.Location = New System.Drawing.Point(130, 61) - Me.chkScraperShowActors.Name = "chkScraperShowActors" - Me.chkScraperShowActors.Size = New System.Drawing.Size(78, 17) - Me.chkScraperShowActors.TabIndex = 8 - Me.chkScraperShowActors.Text = "Actors" - Me.chkScraperShowActors.UseVisualStyleBackColor = True - ' - 'chkScraperShowStudio - ' - Me.chkScraperShowStudio.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkScraperShowStudio.Location = New System.Drawing.Point(130, 45) - Me.chkScraperShowStudio.Name = "chkScraperShowStudio" - Me.chkScraperShowStudio.Size = New System.Drawing.Size(78, 17) - Me.chkScraperShowStudio.TabIndex = 7 - Me.chkScraperShowStudio.Text = "Studio" - Me.chkScraperShowStudio.UseVisualStyleBackColor = True - ' - 'chkScraperShowPremiered - ' - Me.chkScraperShowPremiered.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkScraperShowPremiered.Location = New System.Drawing.Point(130, 13) - Me.chkScraperShowPremiered.Name = "chkScraperShowPremiered" - Me.chkScraperShowPremiered.Size = New System.Drawing.Size(78, 17) - Me.chkScraperShowPremiered.TabIndex = 5 - Me.chkScraperShowPremiered.Text = "Premiered" - Me.chkScraperShowPremiered.UseVisualStyleBackColor = True - ' - 'chkScraperShowEGU - ' - Me.chkScraperShowEGU.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkScraperShowEGU.Location = New System.Drawing.Point(6, 29) - Me.chkScraperShowEGU.Name = "chkScraperShowEGU" - Me.chkScraperShowEGU.Size = New System.Drawing.Size(118, 17) - Me.chkScraperShowEGU.TabIndex = 1 - Me.chkScraperShowEGU.Text = "EpisodeGuideURL" - Me.chkScraperShowEGU.UseVisualStyleBackColor = True - ' - 'chkScraperShowMPAA - ' - Me.chkScraperShowMPAA.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkScraperShowMPAA.Location = New System.Drawing.Point(6, 61) - Me.chkScraperShowMPAA.Name = "chkScraperShowMPAA" - Me.chkScraperShowMPAA.Size = New System.Drawing.Size(119, 17) - Me.chkScraperShowMPAA.TabIndex = 3 - Me.chkScraperShowMPAA.Text = "MPAA" - Me.chkScraperShowMPAA.UseVisualStyleBackColor = True - ' - 'chkScraperShowPlot - ' - Me.chkScraperShowPlot.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkScraperShowPlot.Location = New System.Drawing.Point(6, 77) - Me.chkScraperShowPlot.Name = "chkScraperShowPlot" - Me.chkScraperShowPlot.Size = New System.Drawing.Size(119, 17) - Me.chkScraperShowPlot.TabIndex = 4 - Me.chkScraperShowPlot.Text = "Plot" - Me.chkScraperShowPlot.UseVisualStyleBackColor = True - ' - 'chkScraperShowGenre - ' - Me.chkScraperShowGenre.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkScraperShowGenre.Location = New System.Drawing.Point(6, 45) - Me.chkScraperShowGenre.Name = "chkScraperShowGenre" - Me.chkScraperShowGenre.Size = New System.Drawing.Size(118, 17) - Me.chkScraperShowGenre.TabIndex = 2 - Me.chkScraperShowGenre.Text = "Genre" - Me.chkScraperShowGenre.UseVisualStyleBackColor = True - ' - 'chkScraperShowTitle - ' - Me.chkScraperShowTitle.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkScraperShowTitle.Location = New System.Drawing.Point(6, 13) - Me.chkScraperShowTitle.Name = "chkScraperShowTitle" - Me.chkScraperShowTitle.Size = New System.Drawing.Size(118, 17) - Me.chkScraperShowTitle.TabIndex = 0 - Me.chkScraperShowTitle.Text = "Title" - Me.chkScraperShowTitle.UseVisualStyleBackColor = True - ' - 'GroupBox34 - ' - Me.GroupBox34.Controls.Add(Me.chkScraperEpActors) - Me.GroupBox34.Controls.Add(Me.chkScraperEpCredits) - Me.GroupBox34.Controls.Add(Me.chkScraperEpDirector) - Me.GroupBox34.Controls.Add(Me.chkScraperEpPlot) - Me.GroupBox34.Controls.Add(Me.chkScraperEpRating) - Me.GroupBox34.Controls.Add(Me.chkScraperEpAired) - Me.GroupBox34.Controls.Add(Me.chkScraperEpTitle) - Me.GroupBox34.Controls.Add(Me.chkScraperEpEpisode) - Me.GroupBox34.Controls.Add(Me.chkScraperEpSeason) - Me.GroupBox34.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.GroupBox34.Location = New System.Drawing.Point(219, 14) - Me.GroupBox34.Name = "GroupBox34" - Me.GroupBox34.Size = New System.Drawing.Size(181, 96) - Me.GroupBox34.TabIndex = 1 - Me.GroupBox34.TabStop = False - Me.GroupBox34.Text = "Episode" - ' - 'chkScraperEpActors - ' - Me.chkScraperEpActors.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkScraperEpActors.Location = New System.Drawing.Point(94, 60) - Me.chkScraperEpActors.Name = "chkScraperEpActors" - Me.chkScraperEpActors.Size = New System.Drawing.Size(67, 17) - Me.chkScraperEpActors.TabIndex = 0 - Me.chkScraperEpActors.Text = "Actors" - Me.chkScraperEpActors.UseVisualStyleBackColor = True - ' - 'chkScraperEpCredits - ' - Me.chkScraperEpCredits.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkScraperEpCredits.Location = New System.Drawing.Point(94, 44) - Me.chkScraperEpCredits.Name = "chkScraperEpCredits" - Me.chkScraperEpCredits.Size = New System.Drawing.Size(67, 17) - Me.chkScraperEpCredits.TabIndex = 8 - Me.chkScraperEpCredits.Text = "Credits" - Me.chkScraperEpCredits.UseVisualStyleBackColor = True - ' - 'chkScraperEpDirector - ' - Me.chkScraperEpDirector.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkScraperEpDirector.Location = New System.Drawing.Point(94, 28) - Me.chkScraperEpDirector.Name = "chkScraperEpDirector" - Me.chkScraperEpDirector.Size = New System.Drawing.Size(67, 17) - Me.chkScraperEpDirector.TabIndex = 7 - Me.chkScraperEpDirector.Text = "Director" - Me.chkScraperEpDirector.UseVisualStyleBackColor = True - ' - 'chkScraperEpPlot - ' - Me.chkScraperEpPlot.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkScraperEpPlot.Location = New System.Drawing.Point(94, 12) - Me.chkScraperEpPlot.Name = "chkScraperEpPlot" - Me.chkScraperEpPlot.Size = New System.Drawing.Size(67, 17) - Me.chkScraperEpPlot.TabIndex = 6 - Me.chkScraperEpPlot.Text = "Plot" - Me.chkScraperEpPlot.UseVisualStyleBackColor = True - ' - 'chkScraperEpRating - ' - Me.chkScraperEpRating.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkScraperEpRating.Location = New System.Drawing.Point(6, 77) - Me.chkScraperEpRating.Name = "chkScraperEpRating" - Me.chkScraperEpRating.Size = New System.Drawing.Size(67, 17) - Me.chkScraperEpRating.TabIndex = 5 - Me.chkScraperEpRating.Text = "Rating" - Me.chkScraperEpRating.UseVisualStyleBackColor = True - ' - 'chkScraperEpAired - ' - Me.chkScraperEpAired.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkScraperEpAired.Location = New System.Drawing.Point(6, 61) - Me.chkScraperEpAired.Name = "chkScraperEpAired" - Me.chkScraperEpAired.Size = New System.Drawing.Size(67, 17) - Me.chkScraperEpAired.TabIndex = 4 - Me.chkScraperEpAired.Text = "Aired" - Me.chkScraperEpAired.UseVisualStyleBackColor = True - ' - 'chkScraperEpTitle - ' - Me.chkScraperEpTitle.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkScraperEpTitle.Location = New System.Drawing.Point(6, 13) - Me.chkScraperEpTitle.Name = "chkScraperEpTitle" - Me.chkScraperEpTitle.Size = New System.Drawing.Size(67, 17) - Me.chkScraperEpTitle.TabIndex = 0 - Me.chkScraperEpTitle.Text = "Title" - Me.chkScraperEpTitle.UseVisualStyleBackColor = True - ' - 'chkScraperEpEpisode - ' - Me.chkScraperEpEpisode.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkScraperEpEpisode.Location = New System.Drawing.Point(6, 45) - Me.chkScraperEpEpisode.Name = "chkScraperEpEpisode" - Me.chkScraperEpEpisode.Size = New System.Drawing.Size(67, 17) - Me.chkScraperEpEpisode.TabIndex = 3 - Me.chkScraperEpEpisode.Text = "Episode" - Me.chkScraperEpEpisode.UseVisualStyleBackColor = True - ' - 'chkScraperEpSeason - ' - Me.chkScraperEpSeason.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkScraperEpSeason.Location = New System.Drawing.Point(6, 29) - Me.chkScraperEpSeason.Name = "chkScraperEpSeason" - Me.chkScraperEpSeason.Size = New System.Drawing.Size(67, 17) - Me.chkScraperEpSeason.TabIndex = 2 - Me.chkScraperEpSeason.Text = "Season" - Me.chkScraperEpSeason.UseVisualStyleBackColor = True - ' - 'GroupBox33 - ' - Me.GroupBox33.Controls.Add(Me.gbEpLocks) - Me.GroupBox33.Controls.Add(Me.gbShowLocks) - Me.GroupBox33.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.GroupBox33.Location = New System.Drawing.Point(208, 6) - Me.GroupBox33.Name = "GroupBox33" - Me.GroupBox33.Size = New System.Drawing.Size(191, 243) - Me.GroupBox33.TabIndex = 1 - Me.GroupBox33.TabStop = False - Me.GroupBox33.Text = "Global Locks" - ' - 'gbEpLocks - ' - Me.gbEpLocks.Controls.Add(Me.chkEpLockTitle) - Me.gbEpLocks.Controls.Add(Me.chkEpLockRating) - Me.gbEpLocks.Controls.Add(Me.chkEpLockPlot) - Me.gbEpLocks.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.gbEpLocks.Location = New System.Drawing.Point(5, 112) - Me.gbEpLocks.Name = "gbEpLocks" - Me.gbEpLocks.Size = New System.Drawing.Size(181, 66) - Me.gbEpLocks.TabIndex = 1 - Me.gbEpLocks.TabStop = False - Me.gbEpLocks.Text = "Episode" - ' - 'chkEpLockTitle - ' - Me.chkEpLockTitle.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkEpLockTitle.Location = New System.Drawing.Point(6, 15) - Me.chkEpLockTitle.Name = "chkEpLockTitle" - Me.chkEpLockTitle.Size = New System.Drawing.Size(166, 17) - Me.chkEpLockTitle.TabIndex = 0 - Me.chkEpLockTitle.Text = "Lock Title" - Me.chkEpLockTitle.UseVisualStyleBackColor = True - ' - 'chkEpLockRating - ' - Me.chkEpLockRating.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkEpLockRating.Location = New System.Drawing.Point(6, 47) - Me.chkEpLockRating.Name = "chkEpLockRating" - Me.chkEpLockRating.Size = New System.Drawing.Size(168, 17) - Me.chkEpLockRating.TabIndex = 2 - Me.chkEpLockRating.Text = "Lock Rating" - Me.chkEpLockRating.UseVisualStyleBackColor = True - ' - 'chkEpLockPlot - ' - Me.chkEpLockPlot.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkEpLockPlot.Location = New System.Drawing.Point(6, 31) - Me.chkEpLockPlot.Name = "chkEpLockPlot" - Me.chkEpLockPlot.Size = New System.Drawing.Size(166, 17) - Me.chkEpLockPlot.TabIndex = 1 - Me.chkEpLockPlot.Text = "Lock Plot" - Me.chkEpLockPlot.UseVisualStyleBackColor = True - ' - 'gbShowLocks - ' - Me.gbShowLocks.Controls.Add(Me.chkShowLockPlot) - Me.gbShowLocks.Controls.Add(Me.chkShowLockGenre) - Me.gbShowLocks.Controls.Add(Me.chkShowLockStudio) - Me.gbShowLocks.Controls.Add(Me.chkShowLockRating) - Me.gbShowLocks.Controls.Add(Me.chkShowLockTitle) - Me.gbShowLocks.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.gbShowLocks.Location = New System.Drawing.Point(5, 13) - Me.gbShowLocks.Name = "gbShowLocks" - Me.gbShowLocks.Size = New System.Drawing.Size(181, 96) - Me.gbShowLocks.TabIndex = 0 - Me.gbShowLocks.TabStop = False - Me.gbShowLocks.Text = "Show" - ' - 'chkShowLockPlot - ' - Me.chkShowLockPlot.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkShowLockPlot.Location = New System.Drawing.Point(6, 29) - Me.chkShowLockPlot.Name = "chkShowLockPlot" - Me.chkShowLockPlot.Size = New System.Drawing.Size(168, 17) - Me.chkShowLockPlot.TabIndex = 1 - Me.chkShowLockPlot.Text = "Lock Plot" - Me.chkShowLockPlot.UseVisualStyleBackColor = True - ' - 'chkShowLockGenre - ' - Me.chkShowLockGenre.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkShowLockGenre.Location = New System.Drawing.Point(6, 61) - Me.chkShowLockGenre.Name = "chkShowLockGenre" - Me.chkShowLockGenre.Size = New System.Drawing.Size(168, 17) - Me.chkShowLockGenre.TabIndex = 3 - Me.chkShowLockGenre.Text = "Lock Genre" - Me.chkShowLockGenre.UseVisualStyleBackColor = True - ' - 'chkShowLockStudio - ' - Me.chkShowLockStudio.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkShowLockStudio.Location = New System.Drawing.Point(6, 77) - Me.chkShowLockStudio.Name = "chkShowLockStudio" - Me.chkShowLockStudio.Size = New System.Drawing.Size(168, 17) - Me.chkShowLockStudio.TabIndex = 4 - Me.chkShowLockStudio.Text = "Lock Studio" - Me.chkShowLockStudio.UseVisualStyleBackColor = True - ' - 'chkShowLockRating - ' - Me.chkShowLockRating.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkShowLockRating.Location = New System.Drawing.Point(6, 45) - Me.chkShowLockRating.Name = "chkShowLockRating" - Me.chkShowLockRating.Size = New System.Drawing.Size(168, 17) - Me.chkShowLockRating.TabIndex = 2 - Me.chkShowLockRating.Text = "Lock Rating" - Me.chkShowLockRating.UseVisualStyleBackColor = True - ' - 'chkShowLockTitle - ' - Me.chkShowLockTitle.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkShowLockTitle.Location = New System.Drawing.Point(6, 13) - Me.chkShowLockTitle.Name = "chkShowLockTitle" - Me.chkShowLockTitle.Size = New System.Drawing.Size(168, 17) - Me.chkShowLockTitle.TabIndex = 0 - Me.chkShowLockTitle.Text = "Lock Title" - Me.chkShowLockTitle.UseVisualStyleBackColor = True - ' - 'GroupBox31 - ' - Me.GroupBox31.Controls.Add(Me.gbTVMIDefaults) - Me.GroupBox31.Controls.Add(Me.cboTVMetaDataOverlay) - Me.GroupBox31.Controls.Add(Me.Label50) - Me.GroupBox31.Controls.Add(Me.chkTVScanMetaData) - Me.GroupBox31.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.GroupBox31.Location = New System.Drawing.Point(403, 6) - Me.GroupBox31.Name = "GroupBox31" - Me.GroupBox31.Size = New System.Drawing.Size(208, 243) - Me.GroupBox31.TabIndex = 2 - Me.GroupBox31.TabStop = False - Me.GroupBox31.Text = "Meta Data" - ' - 'gbTVMIDefaults - ' - Me.gbTVMIDefaults.Controls.Add(Me.lstTVMetaData) - Me.gbTVMIDefaults.Controls.Add(Me.txtTVDefFIExt) - Me.gbTVMIDefaults.Controls.Add(Me.Label49) - Me.gbTVMIDefaults.Controls.Add(Me.btnRemoveTVMetaDataFT) - Me.gbTVMIDefaults.Controls.Add(Me.btnEditTVMetaDataFT) - Me.gbTVMIDefaults.Controls.Add(Me.btnNewTVMetaDataFT) - Me.gbTVMIDefaults.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.gbTVMIDefaults.Location = New System.Drawing.Point(12, 93) - Me.gbTVMIDefaults.Name = "gbTVMIDefaults" - Me.gbTVMIDefaults.Size = New System.Drawing.Size(183, 144) - Me.gbTVMIDefaults.TabIndex = 3 - Me.gbTVMIDefaults.TabStop = False - Me.gbTVMIDefaults.Text = "Defaults by File Type" - ' - 'lstTVMetaData - ' - Me.lstTVMetaData.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lstTVMetaData.FormattingEnabled = True - Me.lstTVMetaData.Location = New System.Drawing.Point(10, 16) - Me.lstTVMetaData.Name = "lstTVMetaData" - Me.lstTVMetaData.Size = New System.Drawing.Size(165, 95) - Me.lstTVMetaData.TabIndex = 0 - ' - 'txtTVDefFIExt - ' - Me.txtTVDefFIExt.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtTVDefFIExt.Location = New System.Drawing.Point(73, 116) - Me.txtTVDefFIExt.Name = "txtTVDefFIExt" - Me.txtTVDefFIExt.Size = New System.Drawing.Size(35, 22) - Me.txtTVDefFIExt.TabIndex = 2 - ' - 'Label49 - ' - Me.Label49.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label49.Location = New System.Drawing.Point(8, 116) - Me.Label49.Name = "Label49" - Me.Label49.Size = New System.Drawing.Size(66, 19) - Me.Label49.TabIndex = 1 - Me.Label49.Text = "File Type" - Me.Label49.TextAlign = System.Drawing.ContentAlignment.MiddleRight - ' - 'btnRemoveTVMetaDataFT - ' - Me.btnRemoveTVMetaDataFT.Enabled = False - Me.btnRemoveTVMetaDataFT.Image = CType(resources.GetObject("btnRemoveTVMetaDataFT.Image"), System.Drawing.Image) - Me.btnRemoveTVMetaDataFT.Location = New System.Drawing.Point(153, 115) - Me.btnRemoveTVMetaDataFT.Name = "btnRemoveTVMetaDataFT" - Me.btnRemoveTVMetaDataFT.Size = New System.Drawing.Size(23, 23) - Me.btnRemoveTVMetaDataFT.TabIndex = 4 - Me.btnRemoveTVMetaDataFT.UseVisualStyleBackColor = True - ' - 'btnEditTVMetaDataFT - ' - Me.btnEditTVMetaDataFT.Enabled = False - Me.btnEditTVMetaDataFT.Image = CType(resources.GetObject("btnEditTVMetaDataFT.Image"), System.Drawing.Image) - Me.btnEditTVMetaDataFT.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnEditTVMetaDataFT.Location = New System.Drawing.Point(130, 115) - Me.btnEditTVMetaDataFT.Name = "btnEditTVMetaDataFT" - Me.btnEditTVMetaDataFT.Size = New System.Drawing.Size(23, 23) - Me.btnEditTVMetaDataFT.TabIndex = 3 - Me.btnEditTVMetaDataFT.TextAlign = System.Drawing.ContentAlignment.MiddleRight - Me.btnEditTVMetaDataFT.UseVisualStyleBackColor = True - ' - 'btnNewTVMetaDataFT - ' - Me.btnNewTVMetaDataFT.Enabled = False - Me.btnNewTVMetaDataFT.Image = CType(resources.GetObject("btnNewTVMetaDataFT.Image"), System.Drawing.Image) - Me.btnNewTVMetaDataFT.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnNewTVMetaDataFT.Location = New System.Drawing.Point(108, 115) - Me.btnNewTVMetaDataFT.Name = "btnNewTVMetaDataFT" - Me.btnNewTVMetaDataFT.Size = New System.Drawing.Size(23, 23) - Me.btnNewTVMetaDataFT.TabIndex = 29 - Me.btnNewTVMetaDataFT.TextAlign = System.Drawing.ContentAlignment.MiddleRight - Me.btnNewTVMetaDataFT.UseVisualStyleBackColor = True - ' - 'cboTVMetaDataOverlay - ' - Me.cboTVMetaDataOverlay.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList - Me.cboTVMetaDataOverlay.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.cboTVMetaDataOverlay.FormattingEnabled = True - Me.cboTVMetaDataOverlay.Location = New System.Drawing.Point(13, 62) - Me.cboTVMetaDataOverlay.Name = "cboTVMetaDataOverlay" - Me.cboTVMetaDataOverlay.Size = New System.Drawing.Size(182, 21) - Me.cboTVMetaDataOverlay.Sorted = True - Me.cboTVMetaDataOverlay.TabIndex = 2 - ' - 'Label50 - ' - Me.Label50.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label50.Location = New System.Drawing.Point(4, 35) - Me.Label50.Name = "Label50" - Me.Label50.Size = New System.Drawing.Size(202, 29) - Me.Label50.TabIndex = 1 - Me.Label50.Text = "Display Overlay if Video Contains an Audio Stream With the Following Language:" - Me.Label50.TextAlign = System.Drawing.ContentAlignment.TopCenter - ' - 'chkTVScanMetaData - ' - Me.chkTVScanMetaData.AutoSize = True - Me.chkTVScanMetaData.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkTVScanMetaData.Location = New System.Drawing.Point(5, 16) - Me.chkTVScanMetaData.Name = "chkTVScanMetaData" - Me.chkTVScanMetaData.Size = New System.Drawing.Size(106, 17) - Me.chkTVScanMetaData.TabIndex = 0 - Me.chkTVScanMetaData.Text = "Scan Meta Data" - Me.chkTVScanMetaData.UseVisualStyleBackColor = True - ' - 'gbTVScraperOptions - ' - Me.gbTVScraperOptions.Controls.Add(Me.lblOrdering) - Me.gbTVScraperOptions.Controls.Add(Me.cbOrdering) - Me.gbTVScraperOptions.Controls.Add(Me.lblTVUpdate) - Me.gbTVScraperOptions.Controls.Add(Me.cboTVUpdate) - Me.gbTVScraperOptions.Controls.Add(Me.lblAPIKey) - Me.gbTVScraperOptions.Controls.Add(Me.lblTVDBMirror) - Me.gbTVScraperOptions.Controls.Add(Me.txtAPIKey) - Me.gbTVScraperOptions.Controls.Add(Me.txtTVDBMirror) - Me.gbTVScraperOptions.Controls.Add(Me.gbLanguage) - Me.gbTVScraperOptions.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.gbTVScraperOptions.Location = New System.Drawing.Point(5, 6) - Me.gbTVScraperOptions.Name = "gbTVScraperOptions" - Me.gbTVScraperOptions.Size = New System.Drawing.Size(200, 359) - Me.gbTVScraperOptions.TabIndex = 0 - Me.gbTVScraperOptions.TabStop = False - Me.gbTVScraperOptions.Text = "Options" - ' - 'lblOrdering - ' - Me.lblOrdering.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblOrdering.Location = New System.Drawing.Point(12, 284) - Me.lblOrdering.Name = "lblOrdering" - Me.lblOrdering.Size = New System.Drawing.Size(177, 13) - Me.lblOrdering.TabIndex = 7 - Me.lblOrdering.Text = "Default Episode Ordering:" - Me.lblOrdering.TextAlign = System.Drawing.ContentAlignment.TopCenter - ' - 'cbOrdering - ' - Me.cbOrdering.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList - Me.cbOrdering.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.cbOrdering.FormattingEnabled = True - Me.cbOrdering.Location = New System.Drawing.Point(17, 304) - Me.cbOrdering.Name = "cbOrdering" - Me.cbOrdering.Size = New System.Drawing.Size(166, 21) - Me.cbOrdering.TabIndex = 8 - ' - 'lblTVUpdate - ' - Me.lblTVUpdate.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblTVUpdate.Location = New System.Drawing.Point(5, 217) - Me.lblTVUpdate.Name = "lblTVUpdate" - Me.lblTVUpdate.Size = New System.Drawing.Size(190, 31) - Me.lblTVUpdate.TabIndex = 5 - Me.lblTVUpdate.Text = "Re-download Show Information Every:" - Me.lblTVUpdate.TextAlign = System.Drawing.ContentAlignment.TopCenter - ' - 'cboTVUpdate - ' - Me.cboTVUpdate.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList - Me.cboTVUpdate.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.cboTVUpdate.FormattingEnabled = True - Me.cboTVUpdate.Location = New System.Drawing.Point(17, 248) - Me.cboTVUpdate.Name = "cboTVUpdate" - Me.cboTVUpdate.Size = New System.Drawing.Size(166, 21) - Me.cboTVUpdate.TabIndex = 6 - ' - 'lblAPIKey - ' - Me.lblAPIKey.AutoSize = True - Me.lblAPIKey.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblAPIKey.Location = New System.Drawing.Point(4, 60) - Me.lblAPIKey.Name = "lblAPIKey" - Me.lblAPIKey.Size = New System.Drawing.Size(73, 13) - Me.lblAPIKey.TabIndex = 2 - Me.lblAPIKey.Text = "TVDB APIKey:" - ' - 'lblTVDBMirror - ' - Me.lblTVDBMirror.AutoSize = True - Me.lblTVDBMirror.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblTVDBMirror.Location = New System.Drawing.Point(4, 17) - Me.lblTVDBMirror.Name = "lblTVDBMirror" - Me.lblTVDBMirror.Size = New System.Drawing.Size(72, 13) - Me.lblTVDBMirror.TabIndex = 0 - Me.lblTVDBMirror.Text = "TVDB Mirror:" - ' - 'txtAPIKey - ' - Me.txtAPIKey.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtAPIKey.Location = New System.Drawing.Point(6, 75) - Me.txtAPIKey.Name = "txtAPIKey" - Me.txtAPIKey.Size = New System.Drawing.Size(189, 22) - Me.txtAPIKey.TabIndex = 3 - ' - 'txtTVDBMirror - ' - Me.txtTVDBMirror.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtTVDBMirror.Location = New System.Drawing.Point(6, 32) - Me.txtTVDBMirror.Name = "txtTVDBMirror" - Me.txtTVDBMirror.Size = New System.Drawing.Size(189, 22) - Me.txtTVDBMirror.TabIndex = 1 - ' - 'gbLanguage - ' - Me.gbLanguage.Controls.Add(Me.lblTVLanguagePreferred) - Me.gbLanguage.Controls.Add(Me.btnTVLanguageFetch) - Me.gbLanguage.Controls.Add(Me.cbTVLanguage) - Me.gbLanguage.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.gbLanguage.Location = New System.Drawing.Point(5, 104) - Me.gbLanguage.Name = "gbLanguage" - Me.gbLanguage.Size = New System.Drawing.Size(190, 100) - Me.gbLanguage.TabIndex = 4 - Me.gbLanguage.TabStop = False - Me.gbLanguage.Text = "Language" - ' - 'lblTVLanguagePreferred - ' - Me.lblTVLanguagePreferred.AutoSize = True - Me.lblTVLanguagePreferred.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblTVLanguagePreferred.Location = New System.Drawing.Point(10, 24) - Me.lblTVLanguagePreferred.Name = "lblTVLanguagePreferred" - Me.lblTVLanguagePreferred.Size = New System.Drawing.Size(111, 13) - Me.lblTVLanguagePreferred.TabIndex = 0 - Me.lblTVLanguagePreferred.Text = "Preferred Language:" - ' - 'btnTVLanguageFetch - ' - Me.btnTVLanguageFetch.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.btnTVLanguageFetch.Location = New System.Drawing.Point(12, 68) - Me.btnTVLanguageFetch.Name = "btnTVLanguageFetch" - Me.btnTVLanguageFetch.Size = New System.Drawing.Size(166, 23) - Me.btnTVLanguageFetch.TabIndex = 2 - Me.btnTVLanguageFetch.Text = "Fetch Available Languages" - Me.btnTVLanguageFetch.UseVisualStyleBackColor = True - ' - 'cbTVLanguage - ' - Me.cbTVLanguage.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList - Me.cbTVLanguage.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.cbTVLanguage.Location = New System.Drawing.Point(12, 39) - Me.cbTVLanguage.Name = "cbTVLanguage" - Me.cbTVLanguage.Size = New System.Drawing.Size(166, 21) - Me.cbTVLanguage.TabIndex = 1 - ' - 'gbOptions - ' - Me.gbOptions.Controls.Add(Me.chkCertification) - Me.gbOptions.Controls.Add(Me.chkTop250) - Me.gbOptions.Controls.Add(Me.chkCountry) - Me.gbOptions.Controls.Add(Me.txtGenreLimit) - Me.gbOptions.Controls.Add(Me.lblLimit2) - Me.gbOptions.Controls.Add(Me.txtActorLimit) - Me.gbOptions.Controls.Add(Me.lblLimit) - Me.gbOptions.Controls.Add(Me.chkCrew) - Me.gbOptions.Controls.Add(Me.chkMusicBy) - Me.gbOptions.Controls.Add(Me.chkProducers) - Me.gbOptions.Controls.Add(Me.chkWriters) - Me.gbOptions.Controls.Add(Me.chkStudio) - Me.gbOptions.Controls.Add(Me.chkRuntime) - Me.gbOptions.Controls.Add(Me.chkPlot) - Me.gbOptions.Controls.Add(Me.chkOutline) - Me.gbOptions.Controls.Add(Me.chkGenre) - Me.gbOptions.Controls.Add(Me.chkDirector) - Me.gbOptions.Controls.Add(Me.chkTagline) - Me.gbOptions.Controls.Add(Me.chkCast) - Me.gbOptions.Controls.Add(Me.chkVotes) - Me.gbOptions.Controls.Add(Me.chkTrailer) - Me.gbOptions.Controls.Add(Me.chkRating) - Me.gbOptions.Controls.Add(Me.chkRelease) - Me.gbOptions.Controls.Add(Me.chkMPAA) - Me.gbOptions.Controls.Add(Me.chkYear) - Me.gbOptions.Controls.Add(Me.chkTitle) - Me.gbOptions.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.gbOptions.Location = New System.Drawing.Point(8, 187) - Me.gbOptions.Name = "gbOptions" - Me.gbOptions.Size = New System.Drawing.Size(302, 179) - Me.gbOptions.TabIndex = 67 - Me.gbOptions.TabStop = False - Me.gbOptions.Text = "Scraper Fields - Global" - ' - 'chkCertification - ' - Me.chkCertification.AutoSize = True - Me.chkCertification.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkCertification.Location = New System.Drawing.Point(6, 76) - Me.chkCertification.Name = "chkCertification" - Me.chkCertification.Size = New System.Drawing.Size(89, 17) - Me.chkCertification.TabIndex = 24 - Me.chkCertification.Text = "Certification" - Me.chkCertification.UseVisualStyleBackColor = True - ' - 'chkTop250 - ' - Me.chkTop250.AutoSize = True - Me.chkTop250.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkTop250.Location = New System.Drawing.Point(205, 133) - Me.chkTop250.Name = "chkTop250" - Me.chkTop250.Size = New System.Drawing.Size(66, 17) - Me.chkTop250.TabIndex = 23 - Me.chkTop250.Text = "Top 250" - Me.chkTop250.UseVisualStyleBackColor = True - ' - 'chkCountry - ' - Me.chkCountry.AutoSize = True - Me.chkCountry.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkCountry.Location = New System.Drawing.Point(205, 152) - Me.chkCountry.Name = "chkCountry" - Me.chkCountry.Size = New System.Drawing.Size(67, 17) - Me.chkCountry.TabIndex = 25 - Me.chkCountry.Text = "Country" - Me.chkCountry.UseVisualStyleBackColor = True - ' - 'txtGenreLimit - ' - Me.txtGenreLimit.Enabled = False - Me.txtGenreLimit.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtGenreLimit.Location = New System.Drawing.Point(255, 55) - Me.txtGenreLimit.Name = "txtGenreLimit" - Me.txtGenreLimit.Size = New System.Drawing.Size(39, 22) - Me.txtGenreLimit.TabIndex = 21 - ' - 'lblLimit2 - ' - Me.lblLimit2.AutoSize = True - Me.lblLimit2.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblLimit2.Location = New System.Drawing.Point(223, 58) - Me.lblLimit2.Name = "lblLimit2" - Me.lblLimit2.Size = New System.Drawing.Size(34, 13) - Me.lblLimit2.TabIndex = 22 - Me.lblLimit2.Text = "Limit:" - Me.lblLimit2.TextAlign = System.Drawing.ContentAlignment.MiddleRight - ' - 'txtActorLimit - ' - Me.txtActorLimit.Enabled = False - Me.txtActorLimit.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtActorLimit.Location = New System.Drawing.Point(151, 112) - Me.txtActorLimit.Name = "txtActorLimit" - Me.txtActorLimit.Size = New System.Drawing.Size(39, 22) - Me.txtActorLimit.TabIndex = 19 - ' - 'lblLimit - ' - Me.lblLimit.AutoSize = True - Me.lblLimit.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblLimit.Location = New System.Drawing.Point(118, 115) - Me.lblLimit.Name = "lblLimit" - Me.lblLimit.Size = New System.Drawing.Size(34, 13) - Me.lblLimit.TabIndex = 20 - Me.lblLimit.Text = "Limit:" - Me.lblLimit.TextAlign = System.Drawing.ContentAlignment.MiddleRight - ' - 'chkCrew - ' - Me.chkCrew.AutoSize = True - Me.chkCrew.Enabled = False - Me.chkCrew.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkCrew.Location = New System.Drawing.Point(205, 114) - Me.chkCrew.Name = "chkCrew" - Me.chkCrew.Size = New System.Drawing.Size(85, 17) - Me.chkCrew.TabIndex = 18 - Me.chkCrew.Text = "Other Crew" - Me.chkCrew.UseVisualStyleBackColor = True - ' - 'chkMusicBy - ' - Me.chkMusicBy.AutoSize = True - Me.chkMusicBy.Enabled = False - Me.chkMusicBy.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkMusicBy.Location = New System.Drawing.Point(205, 95) - Me.chkMusicBy.Name = "chkMusicBy" - Me.chkMusicBy.Size = New System.Drawing.Size(71, 17) - Me.chkMusicBy.TabIndex = 17 - Me.chkMusicBy.Text = "Music By" - Me.chkMusicBy.UseVisualStyleBackColor = True - ' - 'chkProducers - ' - Me.chkProducers.AutoSize = True - Me.chkProducers.Enabled = False - Me.chkProducers.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkProducers.Location = New System.Drawing.Point(205, 19) - Me.chkProducers.Name = "chkProducers" - Me.chkProducers.Size = New System.Drawing.Size(77, 17) - Me.chkProducers.TabIndex = 16 - Me.chkProducers.Text = "Producers" - Me.chkProducers.UseVisualStyleBackColor = True - ' - 'chkWriters - ' - Me.chkWriters.AutoSize = True - Me.chkWriters.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkWriters.Location = New System.Drawing.Point(101, 152) - Me.chkWriters.Name = "chkWriters" - Me.chkWriters.Size = New System.Drawing.Size(63, 17) - Me.chkWriters.TabIndex = 15 - Me.chkWriters.Text = "Writers" - Me.chkWriters.UseVisualStyleBackColor = True - ' - 'chkStudio - ' - Me.chkStudio.AutoSize = True - Me.chkStudio.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkStudio.Location = New System.Drawing.Point(101, 19) - Me.chkStudio.Name = "chkStudio" - Me.chkStudio.Size = New System.Drawing.Size(60, 17) - Me.chkStudio.TabIndex = 14 - Me.chkStudio.Text = "Studio" - Me.chkStudio.UseVisualStyleBackColor = True - ' - 'chkRuntime - ' - Me.chkRuntime.AutoSize = True - Me.chkRuntime.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkRuntime.Location = New System.Drawing.Point(6, 114) - Me.chkRuntime.Name = "chkRuntime" - Me.chkRuntime.Size = New System.Drawing.Size(69, 17) - Me.chkRuntime.TabIndex = 13 - Me.chkRuntime.Text = "Runtime" - Me.chkRuntime.UseVisualStyleBackColor = True - ' - 'chkPlot - ' - Me.chkPlot.AutoSize = True - Me.chkPlot.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkPlot.Location = New System.Drawing.Point(101, 76) - Me.chkPlot.Name = "chkPlot" - Me.chkPlot.Size = New System.Drawing.Size(46, 17) - Me.chkPlot.TabIndex = 12 - Me.chkPlot.Text = "Plot" - Me.chkPlot.UseVisualStyleBackColor = True - ' - 'chkOutline - ' - Me.chkOutline.AutoSize = True - Me.chkOutline.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkOutline.Location = New System.Drawing.Point(101, 57) - Me.chkOutline.Name = "chkOutline" - Me.chkOutline.Size = New System.Drawing.Size(65, 17) - Me.chkOutline.TabIndex = 11 - Me.chkOutline.Text = "Outline" - Me.chkOutline.UseVisualStyleBackColor = True - ' - 'chkGenre - ' - Me.chkGenre.AutoSize = True - Me.chkGenre.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkGenre.Location = New System.Drawing.Point(205, 38) - Me.chkGenre.Name = "chkGenre" - Me.chkGenre.Size = New System.Drawing.Size(57, 17) - Me.chkGenre.TabIndex = 10 - Me.chkGenre.Text = "Genre" - Me.chkGenre.UseVisualStyleBackColor = True - ' - 'chkDirector - ' - Me.chkDirector.AutoSize = True - Me.chkDirector.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkDirector.Location = New System.Drawing.Point(101, 133) - Me.chkDirector.Name = "chkDirector" - Me.chkDirector.Size = New System.Drawing.Size(67, 17) - Me.chkDirector.TabIndex = 9 - Me.chkDirector.Text = "Director" - Me.chkDirector.UseVisualStyleBackColor = True - ' - 'chkTagline - ' - Me.chkTagline.AutoSize = True - Me.chkTagline.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkTagline.Location = New System.Drawing.Point(101, 38) - Me.chkTagline.Name = "chkTagline" - Me.chkTagline.Size = New System.Drawing.Size(63, 17) - Me.chkTagline.TabIndex = 8 - Me.chkTagline.Text = "Tagline" - Me.chkTagline.UseVisualStyleBackColor = True - ' - 'chkCast - ' - Me.chkCast.AutoSize = True - Me.chkCast.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkCast.Location = New System.Drawing.Point(101, 95) - Me.chkCast.Name = "chkCast" - Me.chkCast.Size = New System.Drawing.Size(48, 17) - Me.chkCast.TabIndex = 7 - Me.chkCast.Text = "Cast" - Me.chkCast.UseVisualStyleBackColor = True - ' - 'chkVotes - ' - Me.chkVotes.AutoSize = True - Me.chkVotes.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkVotes.Location = New System.Drawing.Point(6, 152) - Me.chkVotes.Name = "chkVotes" - Me.chkVotes.Size = New System.Drawing.Size(55, 17) - Me.chkVotes.TabIndex = 6 - Me.chkVotes.Text = "Votes" - Me.chkVotes.UseVisualStyleBackColor = True - ' - 'chkTrailer - ' - Me.chkTrailer.AutoSize = True - Me.chkTrailer.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkTrailer.Location = New System.Drawing.Point(205, 76) - Me.chkTrailer.Name = "chkTrailer" - Me.chkTrailer.Size = New System.Drawing.Size(57, 17) - Me.chkTrailer.TabIndex = 5 - Me.chkTrailer.Text = "Trailer" - Me.chkTrailer.UseVisualStyleBackColor = True - ' - 'chkRating - ' - Me.chkRating.AutoSize = True - Me.chkRating.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkRating.Location = New System.Drawing.Point(6, 133) - Me.chkRating.Name = "chkRating" - Me.chkRating.Size = New System.Drawing.Size(60, 17) - Me.chkRating.TabIndex = 4 - Me.chkRating.Text = "Rating" - Me.chkRating.UseVisualStyleBackColor = True - ' - 'chkRelease - ' - Me.chkRelease.AutoSize = True - Me.chkRelease.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkRelease.Location = New System.Drawing.Point(6, 95) - Me.chkRelease.Name = "chkRelease" - Me.chkRelease.Size = New System.Drawing.Size(92, 17) - Me.chkRelease.TabIndex = 3 - Me.chkRelease.Text = "Release Date" - Me.chkRelease.UseVisualStyleBackColor = True - ' - 'chkMPAA - ' - Me.chkMPAA.AutoSize = True - Me.chkMPAA.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkMPAA.Location = New System.Drawing.Point(6, 57) - Me.chkMPAA.Name = "chkMPAA" - Me.chkMPAA.Size = New System.Drawing.Size(56, 17) - Me.chkMPAA.TabIndex = 2 - Me.chkMPAA.Text = "MPAA" - Me.chkMPAA.UseVisualStyleBackColor = True - ' - 'chkYear - ' - Me.chkYear.AutoSize = True - Me.chkYear.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkYear.Location = New System.Drawing.Point(6, 38) - Me.chkYear.Name = "chkYear" - Me.chkYear.Size = New System.Drawing.Size(47, 17) - Me.chkYear.TabIndex = 1 - Me.chkYear.Text = "Year" - Me.chkYear.UseVisualStyleBackColor = True - ' - 'chkTitle - ' - Me.chkTitle.AutoSize = True - Me.chkTitle.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkTitle.Location = New System.Drawing.Point(6, 19) - Me.chkTitle.Name = "chkTitle" - Me.chkTitle.Size = New System.Drawing.Size(47, 17) - Me.chkTitle.TabIndex = 0 - Me.chkTitle.Text = "Title" - Me.chkTitle.UseVisualStyleBackColor = True - ' - 'GroupBox26 - ' - Me.GroupBox26.Controls.Add(Me.GroupBox28) - Me.GroupBox26.Controls.Add(Me.chkIFOScan) - Me.GroupBox26.Controls.Add(Me.cbLanguages) - Me.GroupBox26.Controls.Add(Me.Label31) - Me.GroupBox26.Controls.Add(Me.gbRTFormat) - Me.GroupBox26.Controls.Add(Me.chkScanMediaInfo) - Me.GroupBox26.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.GroupBox26.Location = New System.Drawing.Point(159, 6) - Me.GroupBox26.Name = "GroupBox26" - Me.GroupBox26.Size = New System.Drawing.Size(443, 176) - Me.GroupBox26.TabIndex = 63 - Me.GroupBox26.TabStop = False - Me.GroupBox26.Text = "Meta Data" - ' - 'GroupBox28 - ' - Me.GroupBox28.Controls.Add(Me.lstMetaData) - Me.GroupBox28.Controls.Add(Me.txtDefFIExt) - Me.GroupBox28.Controls.Add(Me.Label34) - Me.GroupBox28.Controls.Add(Me.btnRemoveMetaDataFT) - Me.GroupBox28.Controls.Add(Me.btnEditMetaDataFT) - Me.GroupBox28.Controls.Add(Me.btnNewMetaDataFT) - Me.GroupBox28.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.GroupBox28.Location = New System.Drawing.Point(252, 11) - Me.GroupBox28.Name = "GroupBox28" - Me.GroupBox28.Size = New System.Drawing.Size(183, 144) - Me.GroupBox28.TabIndex = 8 - Me.GroupBox28.TabStop = False - Me.GroupBox28.Text = "Defaults by File Type" - ' - 'lstMetaData - ' - Me.lstMetaData.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lstMetaData.FormattingEnabled = True - Me.lstMetaData.Location = New System.Drawing.Point(9, 15) - Me.lstMetaData.Name = "lstMetaData" - Me.lstMetaData.Size = New System.Drawing.Size(165, 95) - Me.lstMetaData.TabIndex = 34 - ' - 'txtDefFIExt - ' - Me.txtDefFIExt.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtDefFIExt.Location = New System.Drawing.Point(72, 115) - Me.txtDefFIExt.Name = "txtDefFIExt" - Me.txtDefFIExt.Size = New System.Drawing.Size(35, 22) - Me.txtDefFIExt.TabIndex = 33 - ' - 'Label34 - ' - Me.Label34.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label34.Location = New System.Drawing.Point(7, 118) - Me.Label34.Name = "Label34" - Me.Label34.Size = New System.Drawing.Size(63, 19) - Me.Label34.TabIndex = 32 - Me.Label34.Text = "File Type:" - Me.Label34.TextAlign = System.Drawing.ContentAlignment.MiddleRight - ' - 'btnRemoveMetaDataFT - ' - Me.btnRemoveMetaDataFT.Enabled = False - Me.btnRemoveMetaDataFT.Image = CType(resources.GetObject("btnRemoveMetaDataFT.Image"), System.Drawing.Image) - Me.btnRemoveMetaDataFT.Location = New System.Drawing.Point(152, 114) - Me.btnRemoveMetaDataFT.Name = "btnRemoveMetaDataFT" - Me.btnRemoveMetaDataFT.Size = New System.Drawing.Size(23, 23) - Me.btnRemoveMetaDataFT.TabIndex = 31 - Me.btnRemoveMetaDataFT.UseVisualStyleBackColor = True - ' - 'btnEditMetaDataFT - ' - Me.btnEditMetaDataFT.Enabled = False - Me.btnEditMetaDataFT.Image = CType(resources.GetObject("btnEditMetaDataFT.Image"), System.Drawing.Image) - Me.btnEditMetaDataFT.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnEditMetaDataFT.Location = New System.Drawing.Point(129, 114) - Me.btnEditMetaDataFT.Name = "btnEditMetaDataFT" - Me.btnEditMetaDataFT.Size = New System.Drawing.Size(23, 23) - Me.btnEditMetaDataFT.TabIndex = 30 - Me.btnEditMetaDataFT.TextAlign = System.Drawing.ContentAlignment.MiddleRight - Me.btnEditMetaDataFT.UseVisualStyleBackColor = True - ' - 'btnNewMetaDataFT - ' - Me.btnNewMetaDataFT.Enabled = False - Me.btnNewMetaDataFT.Image = CType(resources.GetObject("btnNewMetaDataFT.Image"), System.Drawing.Image) - Me.btnNewMetaDataFT.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnNewMetaDataFT.Location = New System.Drawing.Point(107, 114) - Me.btnNewMetaDataFT.Name = "btnNewMetaDataFT" - Me.btnNewMetaDataFT.Size = New System.Drawing.Size(23, 23) - Me.btnNewMetaDataFT.TabIndex = 29 - Me.btnNewMetaDataFT.TextAlign = System.Drawing.ContentAlignment.MiddleRight - Me.btnNewMetaDataFT.UseVisualStyleBackColor = True - ' - 'chkIFOScan - ' - Me.chkIFOScan.AutoSize = True - Me.chkIFOScan.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkIFOScan.Location = New System.Drawing.Point(5, 33) - Me.chkIFOScan.Name = "chkIFOScan" - Me.chkIFOScan.Size = New System.Drawing.Size(123, 17) - Me.chkIFOScan.TabIndex = 18 - Me.chkIFOScan.Text = "Enable IFO Parsing" - Me.chkIFOScan.UseVisualStyleBackColor = True - ' - 'cbLanguages - ' - Me.cbLanguages.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList - Me.cbLanguages.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.cbLanguages.FormattingEnabled = True - Me.cbLanguages.Location = New System.Drawing.Point(38, 147) - Me.cbLanguages.Name = "cbLanguages" - Me.cbLanguages.Size = New System.Drawing.Size(174, 21) - Me.cbLanguages.Sorted = True - Me.cbLanguages.TabIndex = 17 - ' - 'Label31 - ' - Me.Label31.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label31.Location = New System.Drawing.Point(2, 117) - Me.Label31.Name = "Label31" - Me.Label31.Size = New System.Drawing.Size(245, 29) - Me.Label31.TabIndex = 16 - Me.Label31.Text = "Display Overlay if Video Contains an Audio Stream With the Following Language:" - Me.Label31.TextAlign = System.Drawing.ContentAlignment.TopCenter - ' - 'gbRTFormat - ' - Me.gbRTFormat.Controls.Add(Me.Label51) - Me.gbRTFormat.Controls.Add(Me.txtRuntimeFormat) - Me.gbRTFormat.Controls.Add(Me.chkUseMIDuration) - Me.gbRTFormat.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.gbRTFormat.Location = New System.Drawing.Point(5, 51) - Me.gbRTFormat.Name = "gbRTFormat" - Me.gbRTFormat.Size = New System.Drawing.Size(244, 63) - Me.gbRTFormat.TabIndex = 9 - Me.gbRTFormat.TabStop = False - Me.gbRTFormat.Text = "Duration Format" - ' - 'Label51 - ' - Me.Label51.Font = New System.Drawing.Font("Segoe UI", 7.0!) - Me.Label51.Location = New System.Drawing.Point(168, 9) - Me.Label51.Name = "Label51" - Me.Label51.Size = New System.Drawing.Size(70, 50) - Me.Label51.TabIndex = 23 - Me.Label51.Text = "=Hours" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "=Minutes" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "=Seconds" - Me.Label51.TextAlign = System.Drawing.ContentAlignment.MiddleLeft - ' - 'txtRuntimeFormat - ' - Me.txtRuntimeFormat.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtRuntimeFormat.Location = New System.Drawing.Point(5, 34) - Me.txtRuntimeFormat.Name = "txtRuntimeFormat" - Me.txtRuntimeFormat.Size = New System.Drawing.Size(145, 22) - Me.txtRuntimeFormat.TabIndex = 22 - ' - 'chkUseMIDuration - ' - Me.chkUseMIDuration.AutoSize = True - Me.chkUseMIDuration.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkUseMIDuration.Location = New System.Drawing.Point(5, 15) - Me.chkUseMIDuration.Name = "chkUseMIDuration" - Me.chkUseMIDuration.Size = New System.Drawing.Size(158, 17) - Me.chkUseMIDuration.TabIndex = 8 - Me.chkUseMIDuration.Text = "Use Duration for Runtime" - Me.chkUseMIDuration.UseVisualStyleBackColor = True - ' - 'chkScanMediaInfo - ' - Me.chkScanMediaInfo.AutoSize = True - Me.chkScanMediaInfo.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkScanMediaInfo.Location = New System.Drawing.Point(5, 16) - Me.chkScanMediaInfo.Name = "chkScanMediaInfo" - Me.chkScanMediaInfo.Size = New System.Drawing.Size(106, 17) - Me.chkScanMediaInfo.TabIndex = 7 - Me.chkScanMediaInfo.Text = "Scan Meta Data" - Me.chkScanMediaInfo.UseVisualStyleBackColor = True - ' - 'GroupBox10 - ' - Me.GroupBox10.Controls.Add(Me.chkLockOutline) - Me.GroupBox10.Controls.Add(Me.chkLockPlot) - Me.GroupBox10.Controls.Add(Me.chkLockTrailer) - Me.GroupBox10.Controls.Add(Me.chkLockGenre) - Me.GroupBox10.Controls.Add(Me.chkLockRealStudio) - Me.GroupBox10.Controls.Add(Me.chkLockRating) - Me.GroupBox10.Controls.Add(Me.chkLockTagline) - Me.GroupBox10.Controls.Add(Me.chkLockTitle) - Me.GroupBox10.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.GroupBox10.Location = New System.Drawing.Point(8, 6) - Me.GroupBox10.Name = "GroupBox10" - Me.GroupBox10.Size = New System.Drawing.Size(145, 176) - Me.GroupBox10.TabIndex = 1 - Me.GroupBox10.TabStop = False - Me.GroupBox10.Text = "Global Locks" - ' - 'chkLockOutline - ' - Me.chkLockOutline.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkLockOutline.Location = New System.Drawing.Point(6, 50) - Me.chkLockOutline.Name = "chkLockOutline" - Me.chkLockOutline.Size = New System.Drawing.Size(129, 17) - Me.chkLockOutline.TabIndex = 1 - Me.chkLockOutline.Text = "Lock Outline" - Me.chkLockOutline.UseVisualStyleBackColor = True - ' - 'chkLockPlot - ' - Me.chkLockPlot.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkLockPlot.Location = New System.Drawing.Point(6, 33) - Me.chkLockPlot.Name = "chkLockPlot" - Me.chkLockPlot.Size = New System.Drawing.Size(129, 17) - Me.chkLockPlot.TabIndex = 0 - Me.chkLockPlot.Text = "Lock Plot" - Me.chkLockPlot.UseVisualStyleBackColor = True - ' - 'chkLockTrailer - ' - Me.chkLockTrailer.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkLockTrailer.Location = New System.Drawing.Point(6, 135) - Me.chkLockTrailer.Name = "chkLockTrailer" - Me.chkLockTrailer.Size = New System.Drawing.Size(129, 17) - Me.chkLockTrailer.TabIndex = 46 - Me.chkLockTrailer.Text = "Lock Trailer" - Me.chkLockTrailer.UseVisualStyleBackColor = True - ' - 'chkLockGenre - ' - Me.chkLockGenre.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkLockGenre.Location = New System.Drawing.Point(6, 118) - Me.chkLockGenre.Name = "chkLockGenre" - Me.chkLockGenre.Size = New System.Drawing.Size(129, 17) - Me.chkLockGenre.TabIndex = 7 - Me.chkLockGenre.Text = "Lock Genre" - Me.chkLockGenre.UseVisualStyleBackColor = True - ' - 'chkLockRealStudio - ' - Me.chkLockRealStudio.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkLockRealStudio.Location = New System.Drawing.Point(6, 101) - Me.chkLockRealStudio.Name = "chkLockRealStudio" - Me.chkLockRealStudio.Size = New System.Drawing.Size(129, 17) - Me.chkLockRealStudio.TabIndex = 5 - Me.chkLockRealStudio.Text = "Lock Studio" - Me.chkLockRealStudio.UseVisualStyleBackColor = True - ' - 'chkLockRating - ' - Me.chkLockRating.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkLockRating.Location = New System.Drawing.Point(6, 84) - Me.chkLockRating.Name = "chkLockRating" - Me.chkLockRating.Size = New System.Drawing.Size(129, 17) - Me.chkLockRating.TabIndex = 4 - Me.chkLockRating.Text = "Lock Rating" - Me.chkLockRating.UseVisualStyleBackColor = True - ' - 'chkLockTagline - ' - Me.chkLockTagline.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkLockTagline.Location = New System.Drawing.Point(6, 67) - Me.chkLockTagline.Name = "chkLockTagline" - Me.chkLockTagline.Size = New System.Drawing.Size(129, 17) - Me.chkLockTagline.TabIndex = 3 - Me.chkLockTagline.Text = "Lock Tagline" - Me.chkLockTagline.UseVisualStyleBackColor = True - ' - 'chkLockTitle - ' - Me.chkLockTitle.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkLockTitle.Location = New System.Drawing.Point(6, 16) - Me.chkLockTitle.Name = "chkLockTitle" - Me.chkLockTitle.Size = New System.Drawing.Size(129, 17) - Me.chkLockTitle.TabIndex = 2 - Me.chkLockTitle.Text = "Lock Title" - Me.chkLockTitle.UseVisualStyleBackColor = True - ' - 'GroupBox1 - ' - Me.GroupBox1.Controls.Add(Me.chkOnlyValueForCert) - Me.GroupBox1.Controls.Add(Me.cbForce) - Me.GroupBox1.Controls.Add(Me.chkForceTitle) - Me.GroupBox1.Controls.Add(Me.chkOutlineForPlot) - Me.GroupBox1.Controls.Add(Me.chkCastWithImg) - Me.GroupBox1.Controls.Add(Me.chkUseCertForMPAA) - Me.GroupBox1.Controls.Add(Me.chkFullCast) - Me.GroupBox1.Controls.Add(Me.chkFullCrew) - Me.GroupBox1.Controls.Add(Me.cbCert) - Me.GroupBox1.Controls.Add(Me.chkCert) - Me.GroupBox1.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.GroupBox1.Location = New System.Drawing.Point(313, 187) - Me.GroupBox1.Name = "GroupBox1" - Me.GroupBox1.Size = New System.Drawing.Size(289, 198) - Me.GroupBox1.TabIndex = 0 - Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "Miscellaneous" - ' - 'chkOnlyValueForCert - ' - Me.chkOnlyValueForCert.AutoSize = True - Me.chkOnlyValueForCert.Enabled = False - Me.chkOnlyValueForCert.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkOnlyValueForCert.Location = New System.Drawing.Point(32, 145) - Me.chkOnlyValueForCert.Name = "chkOnlyValueForCert" - Me.chkOnlyValueForCert.Size = New System.Drawing.Size(168, 17) - Me.chkOnlyValueForCert.TabIndex = 66 - Me.chkOnlyValueForCert.Text = "Only Save the Value to NFO" - Me.chkOnlyValueForCert.UseVisualStyleBackColor = True - ' - 'cbForce - ' - Me.cbForce.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList - Me.cbForce.Enabled = False - Me.cbForce.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.cbForce.FormattingEnabled = True - Me.cbForce.Location = New System.Drawing.Point(139, 167) - Me.cbForce.Name = "cbForce" - Me.cbForce.Size = New System.Drawing.Size(144, 21) - Me.cbForce.Sorted = True - Me.cbForce.TabIndex = 65 - ' - 'chkForceTitle - ' - Me.chkForceTitle.AutoSize = True - Me.chkForceTitle.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkForceTitle.Location = New System.Drawing.Point(6, 168) - Me.chkForceTitle.Name = "chkForceTitle" - Me.chkForceTitle.Size = New System.Drawing.Size(135, 17) - Me.chkForceTitle.TabIndex = 64 - Me.chkForceTitle.Text = "Force Title Language:" - Me.chkForceTitle.UseVisualStyleBackColor = True - ' - 'chkOutlineForPlot - ' - Me.chkOutlineForPlot.AutoSize = True - Me.chkOutlineForPlot.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkOutlineForPlot.Location = New System.Drawing.Point(6, 82) - Me.chkOutlineForPlot.Name = "chkOutlineForPlot" - Me.chkOutlineForPlot.Size = New System.Drawing.Size(206, 17) - Me.chkOutlineForPlot.TabIndex = 3 - Me.chkOutlineForPlot.Text = "Use Outline for Plot if Plot is Empty" - Me.chkOutlineForPlot.UseVisualStyleBackColor = True - ' - 'chkCastWithImg - ' - Me.chkCastWithImg.AutoSize = True - Me.chkCastWithImg.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkCastWithImg.Location = New System.Drawing.Point(6, 40) - Me.chkCastWithImg.Name = "chkCastWithImg" - Me.chkCastWithImg.Size = New System.Drawing.Size(189, 17) - Me.chkCastWithImg.TabIndex = 1 - Me.chkCastWithImg.Text = "Scrape Only Actors With Images" - Me.chkCastWithImg.UseVisualStyleBackColor = True - ' - 'chkUseCertForMPAA - ' - Me.chkUseCertForMPAA.AutoSize = True - Me.chkUseCertForMPAA.Enabled = False - Me.chkUseCertForMPAA.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkUseCertForMPAA.Location = New System.Drawing.Point(13, 124) - Me.chkUseCertForMPAA.Name = "chkUseCertForMPAA" - Me.chkUseCertForMPAA.Size = New System.Drawing.Size(162, 17) - Me.chkUseCertForMPAA.TabIndex = 6 - Me.chkUseCertForMPAA.Text = "Use Certification for MPAA" - Me.chkUseCertForMPAA.UseVisualStyleBackColor = True - ' - 'chkFullCast - ' - Me.chkFullCast.AutoSize = True - Me.chkFullCast.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkFullCast.Location = New System.Drawing.Point(6, 19) - Me.chkFullCast.Name = "chkFullCast" - Me.chkFullCast.Size = New System.Drawing.Size(107, 17) - Me.chkFullCast.TabIndex = 0 - Me.chkFullCast.Text = "Scrape Full Cast" - Me.chkFullCast.UseVisualStyleBackColor = True - ' - 'chkFullCrew - ' - Me.chkFullCrew.AutoSize = True - Me.chkFullCrew.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkFullCrew.Location = New System.Drawing.Point(6, 61) - Me.chkFullCrew.Name = "chkFullCrew" - Me.chkFullCrew.Size = New System.Drawing.Size(111, 17) - Me.chkFullCrew.TabIndex = 2 - Me.chkFullCrew.Text = "Scrape Full Crew" - Me.chkFullCrew.UseVisualStyleBackColor = True - ' - 'cbCert - ' - Me.cbCert.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList - Me.cbCert.Enabled = False - Me.cbCert.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.cbCert.FormattingEnabled = True - Me.cbCert.Items.AddRange(New Object() {"Argentina", "Australia", "Belgium", "Brazil", "Canada", "Finland", "France", "Germany", "Hong Kong", "Iceland", "Ireland", "Netherlands", "New Zealand", "Peru", "Portugal", "Singapore", "South Korea", "Spain", "Sweden", "Switzerland", "UK", "USA"}) - Me.cbCert.Location = New System.Drawing.Point(175, 102) - Me.cbCert.Name = "cbCert" - Me.cbCert.Size = New System.Drawing.Size(108, 21) - Me.cbCert.Sorted = True - Me.cbCert.TabIndex = 5 - ' - 'chkCert - ' - Me.chkCert.AutoSize = True - Me.chkCert.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkCert.Location = New System.Drawing.Point(6, 103) - Me.chkCert.Name = "chkCert" - Me.chkCert.Size = New System.Drawing.Size(168, 17) - Me.chkCert.TabIndex = 4 - Me.chkCert.Text = "Use Certification Language:" - Me.chkCert.UseVisualStyleBackColor = True - ' - 'pnlScraper - ' - Me.pnlScraper.BackColor = System.Drawing.Color.White - Me.pnlScraper.Controls.Add(Me.GroupBox10) - Me.pnlScraper.Controls.Add(Me.gbOptions) - Me.pnlScraper.Controls.Add(Me.GroupBox1) - Me.pnlScraper.Controls.Add(Me.GroupBox26) - Me.pnlScraper.Location = New System.Drawing.Point(1065, 616) - Me.pnlScraper.Name = "pnlScraper" - Me.pnlScraper.Size = New System.Drawing.Size(617, 400) - Me.pnlScraper.TabIndex = 14 - Me.pnlScraper.Visible = False - ' - 'ToolStrip1 - ' - Me.ToolStrip1.AllowMerge = False - Me.ToolStrip1.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden - Me.ToolStrip1.ImageScalingSize = New System.Drawing.Size(32, 32) - Me.ToolStrip1.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.HorizontalStackWithOverflow - Me.ToolStrip1.Location = New System.Drawing.Point(0, 64) - Me.ToolStrip1.Name = "ToolStrip1" - Me.ToolStrip1.Size = New System.Drawing.Size(892, 25) - Me.ToolStrip1.Stretch = True - Me.ToolStrip1.TabIndex = 4 - Me.ToolStrip1.Text = "ToolStrip1" - ' - 'pnlMain - ' - Me.pnlMain.AutoScroll = True - Me.pnlMain.BackColor = System.Drawing.Color.White - Me.pnlMain.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.pnlMain.Location = New System.Drawing.Point(251, 147) - Me.pnlMain.Name = "pnlMain" - Me.pnlMain.Size = New System.Drawing.Size(636, 402) - Me.pnlMain.TabIndex = 9 - ' - 'gbHelp - ' - Me.gbHelp.BackColor = System.Drawing.Color.White - Me.gbHelp.Controls.Add(Me.PictureBox2) - Me.gbHelp.Controls.Add(Me.lblHelp) - Me.gbHelp.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.gbHelp.Location = New System.Drawing.Point(3, 3) - Me.gbHelp.Name = "gbHelp" - Me.gbHelp.Size = New System.Drawing.Size(628, 62) - Me.gbHelp.TabIndex = 0 - Me.gbHelp.TabStop = False - Me.gbHelp.Text = " Help" - ' - 'PictureBox2 - ' - Me.PictureBox2.Image = CType(resources.GetObject("PictureBox2.Image"), System.Drawing.Image) - Me.PictureBox2.Location = New System.Drawing.Point(6, -2) - Me.PictureBox2.Name = "PictureBox2" - Me.PictureBox2.Size = New System.Drawing.Size(16, 16) - Me.PictureBox2.TabIndex = 1 - Me.PictureBox2.TabStop = False - ' - 'lblHelp - ' - Me.lblHelp.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblHelp.Location = New System.Drawing.Point(3, 14) - Me.lblHelp.Name = "lblHelp" - Me.lblHelp.Size = New System.Drawing.Size(622, 43) - Me.lblHelp.TabIndex = 0 - ' - 'Panel2 - ' - Me.Panel2.BackColor = System.Drawing.Color.White - Me.Panel2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.Panel2.Controls.Add(Me.gbHelp) - Me.Panel2.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Panel2.Location = New System.Drawing.Point(5, 555) - Me.Panel2.Name = "Panel2" - Me.Panel2.Size = New System.Drawing.Size(636, 69) - Me.Panel2.TabIndex = 8 - ' - 'dlgSettings - ' - Me.AcceptButton = Me.btnOK - Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi - Me.CancelButton = Me.btnCancel - Me.ClientSize = New System.Drawing.Size(892, 628) - Me.Controls.Add(Me.pnlSources) - Me.Controls.Add(Me.pnlGeneral) - Me.Controls.Add(Me.pnlTVSources) - Me.Controls.Add(Me.pnlImages) - Me.Controls.Add(Me.pnlScraper) - Me.Controls.Add(Me.Panel2) - Me.Controls.Add(Me.ToolStrip1) - Me.Controls.Add(Me.Panel1) - Me.Controls.Add(Me.pnlCurrent) - Me.Controls.Add(Me.tvSettings) - Me.Controls.Add(Me.pnlTop) - Me.Controls.Add(Me.btnCancel) - Me.Controls.Add(Me.btnApply) - Me.Controls.Add(Me.btnOK) - Me.Controls.Add(Me.pnlMovies) - Me.Controls.Add(Me.pnlTVImages) - Me.Controls.Add(Me.pnlExtensions) - Me.Controls.Add(Me.pnlXBMCCom) - Me.Controls.Add(Me.pnlMain) - Me.Controls.Add(Me.pnlTVScraper) - Me.Controls.Add(Me.pnlShows) - Me.DoubleBuffered = True - Me.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog - Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) - Me.MaximizeBox = False - Me.MinimizeBox = False - Me.Name = "dlgSettings" - Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Settings" - Me.GroupBox4.ResumeLayout(False) - Me.GroupBox4.PerformLayout() - Me.GroupBox29.ResumeLayout(False) - Me.GroupBox29.PerformLayout() - Me.GroupBox3.ResumeLayout(False) - Me.tcCleaner.ResumeLayout(False) - Me.tpStandard.ResumeLayout(False) - Me.tpStandard.PerformLayout() - Me.tpExpert.ResumeLayout(False) - Me.tpExpert.PerformLayout() - Me.GroupBox12.ResumeLayout(False) - Me.GroupBox12.PerformLayout() - Me.GroupBox2.ResumeLayout(False) - Me.GroupBox2.PerformLayout() - Me.GroupBox25.ResumeLayout(False) - Me.GroupBox25.PerformLayout() - Me.GroupBox8.ResumeLayout(False) - Me.GroupBox21.ResumeLayout(False) - Me.GroupBox21.PerformLayout() - Me.GroupBox7.ResumeLayout(False) - Me.GroupBox7.PerformLayout() - Me.GroupBox6.ResumeLayout(False) - Me.GroupBox6.PerformLayout() - Me.GroupBox5.ResumeLayout(False) - Me.GroupBox5.PerformLayout() - Me.GroupBox14.ResumeLayout(False) - Me.GroupBox14.PerformLayout() - CType(Me.tbPosterQual, System.ComponentModel.ISupportInitialize).EndInit() - Me.GroupBox13.ResumeLayout(False) - Me.GroupBox13.PerformLayout() - CType(Me.tbFanartQual, System.ComponentModel.ISupportInitialize).EndInit() - Me.GroupBox9.ResumeLayout(False) - Me.GroupBox17.ResumeLayout(False) - Me.GroupBox17.PerformLayout() - Me.pnlTop.ResumeLayout(False) - Me.pnlTop.PerformLayout() - CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() - Me.pnlGeneral.ResumeLayout(False) - Me.gbInterface.ResumeLayout(False) - Me.gbInterface.PerformLayout() - Me.pnlXBMCCom.ResumeLayout(False) - Me.gbProxy.ResumeLayout(False) - Me.gbProxy.PerformLayout() - Me.gbCreds.ResumeLayout(False) - Me.gbCreds.PerformLayout() - Me.pnlMovies.ResumeLayout(False) - Me.gbGenreFilter.ResumeLayout(False) - Me.gbFilters.ResumeLayout(False) - Me.gbFilters.PerformLayout() - Me.GroupBox27.ResumeLayout(False) - Me.GroupBox16.ResumeLayout(False) - Me.GroupBox16.PerformLayout() - Me.Panel1.ResumeLayout(False) - CType(Me.pbCurrent, System.ComponentModel.ISupportInitialize).EndInit() - Me.pnlExtensions.ResumeLayout(False) - Me.GroupBox22.ResumeLayout(False) - Me.GroupBox22.PerformLayout() - Me.GroupBox18.ResumeLayout(False) - Me.GroupBox18.PerformLayout() - Me.pnlSources.ResumeLayout(False) - Me.GroupBox19.ResumeLayout(False) - Me.GroupBox19.PerformLayout() - Me.pnlImages.ResumeLayout(False) - Me.GroupBox15.ResumeLayout(False) - Me.GroupBox15.PerformLayout() - Me.GroupBox23.ResumeLayout(False) - Me.GroupBox23.PerformLayout() - Me.GroupBox24.ResumeLayout(False) - Me.GroupBox24.PerformLayout() - Me.pnlTVSources.ResumeLayout(False) - Me.TabControl2.ResumeLayout(False) - Me.TabPage3.ResumeLayout(False) - Me.gbMiscTVSourceOpts.ResumeLayout(False) - Me.gbMiscTVSourceOpts.PerformLayout() - Me.gbTVNaming.ResumeLayout(False) - Me.gbShowBanner.ResumeLayout(False) - Me.gbShowBanner.PerformLayout() - Me.gbAllSeasonPoster.ResumeLayout(False) - Me.gbAllSeasonPoster.PerformLayout() - Me.gbEpisodeFanart.ResumeLayout(False) - Me.gbEpisodeFanart.PerformLayout() - Me.gbEpisodePosters.ResumeLayout(False) - Me.gbEpisodePosters.PerformLayout() - Me.gbSeasonFanart.ResumeLayout(False) - Me.gbSeasonFanart.PerformLayout() - Me.gbSeasonPosters.ResumeLayout(False) - Me.gbSeasonPosters.PerformLayout() - Me.gbShowFanart.ResumeLayout(False) - Me.gbShowFanart.PerformLayout() - Me.gbShowPosters.ResumeLayout(False) - Me.gbShowPosters.PerformLayout() - Me.TabPage4.ResumeLayout(False) - Me.gbShowRegex.ResumeLayout(False) - Me.gbShowRegex.PerformLayout() - Me.pnlShows.ResumeLayout(False) - Me.gbTVListOptions.ResumeLayout(False) - Me.gbTVListOptions.PerformLayout() - Me.gbEpisodeListOptions.ResumeLayout(False) - Me.gbEpisodeListOptions.PerformLayout() - Me.gbSeasonListOptions.ResumeLayout(False) - Me.gbSeasonListOptions.PerformLayout() - Me.gbShowListOptions.ResumeLayout(False) - Me.gbShowListOptions.PerformLayout() - Me.gbTVMisc.ResumeLayout(False) - Me.gbTVMisc.PerformLayout() - Me.gbEpFilter.ResumeLayout(False) - Me.gbEpFilter.PerformLayout() - Me.gbShowFilter.ResumeLayout(False) - Me.gbShowFilter.PerformLayout() - Me.pnlTVImages.ResumeLayout(False) - Me.TabControl3.ResumeLayout(False) - Me.TabPage5.ResumeLayout(False) - Me.gbAllSPosterOpts.ResumeLayout(False) - Me.gbAllSPosterOpts.PerformLayout() - CType(Me.tbAllSPosterQual, System.ComponentModel.ISupportInitialize).EndInit() - Me.gbShowPosterOpts.ResumeLayout(False) - Me.gbShowPosterOpts.PerformLayout() - CType(Me.tbShowPosterQual, System.ComponentModel.ISupportInitialize).EndInit() - Me.gbShowFanartOpts.ResumeLayout(False) - Me.gbShowFanartOpts.PerformLayout() - CType(Me.tbShowFanartQual, System.ComponentModel.ISupportInitialize).EndInit() - Me.TabPage6.ResumeLayout(False) - Me.gbSeaPosterOpts.ResumeLayout(False) - Me.gbSeaPosterOpts.PerformLayout() - CType(Me.tbSeaPosterQual, System.ComponentModel.ISupportInitialize).EndInit() - Me.gbSeaFanartOpts.ResumeLayout(False) - Me.gbSeaFanartOpts.PerformLayout() - CType(Me.tbSeaFanartQual, System.ComponentModel.ISupportInitialize).EndInit() - Me.TabPage7.ResumeLayout(False) - Me.gbEpPosterOpts.ResumeLayout(False) - Me.gbEpPosterOpts.PerformLayout() - CType(Me.tbEpPosterQual, System.ComponentModel.ISupportInitialize).EndInit() - Me.gbEpFanartOpts.ResumeLayout(False) - Me.gbEpFanartOpts.PerformLayout() - CType(Me.tbEpFanartQual, System.ComponentModel.ISupportInitialize).EndInit() - Me.TabPage8.ResumeLayout(False) - Me.TabPage8.PerformLayout() - Me.pnlTVScraper.ResumeLayout(False) - Me.GroupBox32.ResumeLayout(False) - Me.GroupBox35.ResumeLayout(False) - Me.GroupBox34.ResumeLayout(False) - Me.GroupBox33.ResumeLayout(False) - Me.gbEpLocks.ResumeLayout(False) - Me.gbShowLocks.ResumeLayout(False) - Me.GroupBox31.ResumeLayout(False) - Me.GroupBox31.PerformLayout() - Me.gbTVMIDefaults.ResumeLayout(False) - Me.gbTVMIDefaults.PerformLayout() - Me.gbTVScraperOptions.ResumeLayout(False) - Me.gbTVScraperOptions.PerformLayout() - Me.gbLanguage.ResumeLayout(False) - Me.gbLanguage.PerformLayout() - Me.gbOptions.ResumeLayout(False) - Me.gbOptions.PerformLayout() - Me.GroupBox26.ResumeLayout(False) - Me.GroupBox26.PerformLayout() - Me.GroupBox28.ResumeLayout(False) - Me.GroupBox28.PerformLayout() - Me.gbRTFormat.ResumeLayout(False) - Me.gbRTFormat.PerformLayout() - Me.GroupBox10.ResumeLayout(False) - Me.GroupBox1.ResumeLayout(False) - Me.GroupBox1.PerformLayout() - Me.pnlScraper.ResumeLayout(False) - Me.gbHelp.ResumeLayout(False) - CType(Me.PictureBox2, System.ComponentModel.ISupportInitialize).EndInit() - Me.Panel2.ResumeLayout(False) - Me.ResumeLayout(False) - Me.PerformLayout() + Me.components = New System.ComponentModel.Container() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(dlgSettings)) + Me.GroupBox4 = New System.Windows.Forms.GroupBox() + Me.chkSpecialDateAdd = New System.Windows.Forms.CheckBox() + Me.chkShowGenresText = New System.Windows.Forms.CheckBox() + Me.chkSourceFromFolder = New System.Windows.Forms.CheckBox() + Me.chkNoDisplayFanart = New System.Windows.Forms.CheckBox() + Me.chkInfoPanelAnim = New System.Windows.Forms.CheckBox() + Me.chkNoDisplayPoster = New System.Windows.Forms.CheckBox() + Me.chkShowDims = New System.Windows.Forms.CheckBox() + Me.chkUpdates = New System.Windows.Forms.CheckBox() + Me.chkOverwriteNfo = New System.Windows.Forms.CheckBox() + Me.Label5 = New System.Windows.Forms.Label() + Me.chkLogErrors = New System.Windows.Forms.CheckBox() + Me.GroupBox29 = New System.Windows.Forms.GroupBox() + Me.cbEpTheme = New System.Windows.Forms.ComboBox() + Me.Label3 = New System.Windows.Forms.Label() + Me.cbTVShowTheme = New System.Windows.Forms.ComboBox() + Me.Label1 = New System.Windows.Forms.Label() + Me.cbMovieTheme = New System.Windows.Forms.ComboBox() + Me.Label35 = New System.Windows.Forms.Label() + Me.Label32 = New System.Windows.Forms.Label() + Me.cbIntLang = New System.Windows.Forms.ComboBox() + Me.GroupBox3 = New System.Windows.Forms.GroupBox() + Me.tcCleaner = New System.Windows.Forms.TabControl() + Me.tpStandard = New System.Windows.Forms.TabPage() + Me.chkCleanFolderJPG = New System.Windows.Forms.CheckBox() + Me.chkCleanExtrathumbs = New System.Windows.Forms.CheckBox() + Me.chkCleanMovieTBN = New System.Windows.Forms.CheckBox() + Me.chkCleanMovieNameJPG = New System.Windows.Forms.CheckBox() + Me.chkCleanMovieTBNb = New System.Windows.Forms.CheckBox() + Me.chkCleanMovieJPG = New System.Windows.Forms.CheckBox() + Me.chkCleanFanartJPG = New System.Windows.Forms.CheckBox() + Me.chkCleanPosterJPG = New System.Windows.Forms.CheckBox() + Me.chkCleanMovieFanartJPG = New System.Windows.Forms.CheckBox() + Me.chkCleanPosterTBN = New System.Windows.Forms.CheckBox() + Me.chkCleanMovieNFO = New System.Windows.Forms.CheckBox() + Me.chkCleanDotFanartJPG = New System.Windows.Forms.CheckBox() + Me.chkCleanMovieNFOb = New System.Windows.Forms.CheckBox() + Me.tpExpert = New System.Windows.Forms.TabPage() + Me.chkWhitelistVideo = New System.Windows.Forms.CheckBox() + Me.Label27 = New System.Windows.Forms.Label() + Me.btnRemoveWhitelist = New System.Windows.Forms.Button() + Me.btnAddWhitelist = New System.Windows.Forms.Button() + Me.txtWhitelist = New System.Windows.Forms.TextBox() + Me.lstWhitelist = New System.Windows.Forms.ListBox() + Me.Label25 = New System.Windows.Forms.Label() + Me.GroupBox12 = New System.Windows.Forms.GroupBox() + Me.chkClickScrape = New System.Windows.Forms.CheckBox() + Me.chkAskCheckboxScrape = New System.Windows.Forms.CheckBox() + Me.chkMarkNew = New System.Windows.Forms.CheckBox() + Me.lbGenre = New System.Windows.Forms.CheckedListBox() + Me.GroupBox2 = New System.Windows.Forms.GroupBox() + Me.chkMovieWatchedCol = New System.Windows.Forms.CheckBox() + Me.txtCheckTitleTol = New System.Windows.Forms.TextBox() + Me.Label30 = New System.Windows.Forms.Label() + Me.chkCheckTitles = New System.Windows.Forms.CheckBox() + Me.GroupBox25 = New System.Windows.Forms.GroupBox() + Me.btnRemoveToken = New System.Windows.Forms.Button() + Me.btnAddToken = New System.Windows.Forms.Button() + Me.txtSortToken = New System.Windows.Forms.TextBox() + Me.lstSortTokens = New System.Windows.Forms.ListBox() + Me.chkDisplayYear = New System.Windows.Forms.CheckBox() + Me.chkMovieExtraCol = New System.Windows.Forms.CheckBox() + Me.chkMovieSubCol = New System.Windows.Forms.CheckBox() + Me.chkMovieTrailerCol = New System.Windows.Forms.CheckBox() + Me.chkMovieInfoCol = New System.Windows.Forms.CheckBox() + Me.chkMovieFanartCol = New System.Windows.Forms.CheckBox() + Me.chkMoviePosterCol = New System.Windows.Forms.CheckBox() + Me.GroupBox8 = New System.Windows.Forms.GroupBox() + Me.btnMovieFrodo = New System.Windows.Forms.Button() + Me.chkMovieNameMultiOnly = New System.Windows.Forms.CheckBox() + Me.GroupBox21 = New System.Windows.Forms.GroupBox() + Me.rbBracketTrailer = New System.Windows.Forms.RadioButton() + Me.rbDashTrailer = New System.Windows.Forms.RadioButton() + Me.GroupBox7 = New System.Windows.Forms.GroupBox() + Me.chkMovieNameNFOStack = New System.Windows.Forms.CheckBox() + Me.chkMovieNameNFO = New System.Windows.Forms.CheckBox() + Me.chkMovieNFO = New System.Windows.Forms.CheckBox() + Me.GroupBox6 = New System.Windows.Forms.GroupBox() + Me.chkMovieNameDotFanartJPG = New System.Windows.Forms.CheckBox() + Me.chkMovieNameFanartJPG = New System.Windows.Forms.CheckBox() + Me.chkFanartJPG = New System.Windows.Forms.CheckBox() + Me.GroupBox5 = New System.Windows.Forms.GroupBox() + Me.chkMovieNameDashPosterJPG = New System.Windows.Forms.CheckBox() + Me.chkFolderJPG = New System.Windows.Forms.CheckBox() + Me.chkPosterJPG = New System.Windows.Forms.CheckBox() + Me.chkPosterTBN = New System.Windows.Forms.CheckBox() + Me.chkMovieNameJPG = New System.Windows.Forms.CheckBox() + Me.chkMovieJPG = New System.Windows.Forms.CheckBox() + Me.chkMovieNameTBN = New System.Windows.Forms.CheckBox() + Me.chkMovieTBN = New System.Windows.Forms.CheckBox() + Me.lvMovies = New System.Windows.Forms.ListView() + Me.colID = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.colName = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.colPath = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.colRecur = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.colFolder = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.colSingle = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.btnMovieRem = New System.Windows.Forms.Button() + Me.btnMovieAddFolder = New System.Windows.Forms.Button() + Me.GroupBox14 = New System.Windows.Forms.GroupBox() + Me.chkPosterOnly = New System.Windows.Forms.CheckBox() + Me.txtPosterWidth = New System.Windows.Forms.TextBox() + Me.txtPosterHeight = New System.Windows.Forms.TextBox() + Me.lblPosterQual = New System.Windows.Forms.Label() + Me.tbPosterQual = New System.Windows.Forms.TrackBar() + Me.Label24 = New System.Windows.Forms.Label() + Me.Label11 = New System.Windows.Forms.Label() + Me.Label12 = New System.Windows.Forms.Label() + Me.chkResizePoster = New System.Windows.Forms.CheckBox() + Me.lblPosterSize = New System.Windows.Forms.Label() + Me.cbPosterSize = New System.Windows.Forms.ComboBox() + Me.chkOverwritePoster = New System.Windows.Forms.CheckBox() + Me.GroupBox13 = New System.Windows.Forms.GroupBox() + Me.txtFanartWidth = New System.Windows.Forms.TextBox() + Me.txtFanartHeight = New System.Windows.Forms.TextBox() + Me.chkFanartOnly = New System.Windows.Forms.CheckBox() + Me.lblFanartQual = New System.Windows.Forms.Label() + Me.tbFanartQual = New System.Windows.Forms.TrackBar() + Me.Label26 = New System.Windows.Forms.Label() + Me.Label9 = New System.Windows.Forms.Label() + Me.Label10 = New System.Windows.Forms.Label() + Me.chkResizeFanart = New System.Windows.Forms.CheckBox() + Me.cbFanartSize = New System.Windows.Forms.ComboBox() + Me.lblFanartSize = New System.Windows.Forms.Label() + Me.chkOverwriteFanart = New System.Windows.Forms.CheckBox() + Me.GroupBox9 = New System.Windows.Forms.GroupBox() + Me.chkScraperActorThumbs = New System.Windows.Forms.CheckBox() + Me.chkNoSaveImagesToNfo = New System.Windows.Forms.CheckBox() + Me.chkSingleScrapeImages = New System.Windows.Forms.CheckBox() + Me.GroupBox17 = New System.Windows.Forms.GroupBox() + Me.chkUseImgCacheUpdaters = New System.Windows.Forms.CheckBox() + Me.chkPersistImgCache = New System.Windows.Forms.CheckBox() + Me.chkUseImgCache = New System.Windows.Forms.CheckBox() + Me.chkUseETasFA = New System.Windows.Forms.CheckBox() + Me.chkNoSpoilers = New System.Windows.Forms.CheckBox() + Me.Label15 = New System.Windows.Forms.Label() + Me.txtAutoThumbs = New System.Windows.Forms.TextBox() + Me.chkAutoThumbs = New System.Windows.Forms.CheckBox() + Me.btnOK = New System.Windows.Forms.Button() + Me.btnApply = New System.Windows.Forms.Button() + Me.btnCancel = New System.Windows.Forms.Button() + Me.pnlTop = New System.Windows.Forms.Panel() + Me.Label2 = New System.Windows.Forms.Label() + Me.Label4 = New System.Windows.Forms.Label() + Me.PictureBox1 = New System.Windows.Forms.PictureBox() + Me.ilSettings = New System.Windows.Forms.ImageList(Me.components) + Me.tvSettings = New System.Windows.Forms.TreeView() + Me.pnlGeneral = New System.Windows.Forms.Panel() + Me.gbInterface = New System.Windows.Forms.GroupBox() + Me.pnlXBMCCom = New System.Windows.Forms.Panel() + Me.gbProxy = New System.Windows.Forms.GroupBox() + Me.gbCreds = New System.Windows.Forms.GroupBox() + Me.txtProxyDomain = New System.Windows.Forms.TextBox() + Me.lblProxyDomain = New System.Windows.Forms.Label() + Me.txtProxyPassword = New System.Windows.Forms.TextBox() + Me.txtProxyUsername = New System.Windows.Forms.TextBox() + Me.lblProxyUN = New System.Windows.Forms.Label() + Me.lblProxyPW = New System.Windows.Forms.Label() + Me.chkEnableCredentials = New System.Windows.Forms.CheckBox() + Me.lblProxyPort = New System.Windows.Forms.Label() + Me.lblProxyURI = New System.Windows.Forms.Label() + Me.txtProxyPort = New System.Windows.Forms.TextBox() + Me.txtProxyURI = New System.Windows.Forms.TextBox() + Me.chkEnableProxy = New System.Windows.Forms.CheckBox() + Me.pnlMovies = New System.Windows.Forms.Panel() + Me.gbGenreFilter = New System.Windows.Forms.GroupBox() + Me.gbFilters = New System.Windows.Forms.GroupBox() + Me.btnResetMovieFilters = New System.Windows.Forms.Button() + Me.btnDown = New System.Windows.Forms.Button() + Me.btnUp = New System.Windows.Forms.Button() + Me.chkProperCase = New System.Windows.Forms.CheckBox() + Me.btnRemoveFilter = New System.Windows.Forms.Button() + Me.btnAddFilter = New System.Windows.Forms.Button() + Me.txtFilter = New System.Windows.Forms.TextBox() + Me.lstFilters = New System.Windows.Forms.ListBox() + Me.GroupBox27 = New System.Windows.Forms.GroupBox() + Me.chkMissingExtra = New System.Windows.Forms.CheckBox() + Me.chkMissingSubs = New System.Windows.Forms.CheckBox() + Me.chkMissingTrailer = New System.Windows.Forms.CheckBox() + Me.chkMissingNFO = New System.Windows.Forms.CheckBox() + Me.chkMissingFanart = New System.Windows.Forms.CheckBox() + Me.chkMissingPoster = New System.Windows.Forms.CheckBox() + Me.GroupBox16 = New System.Windows.Forms.GroupBox() + Me.chkAutoBD = New System.Windows.Forms.CheckBox() + Me.btnBrowse = New System.Windows.Forms.Button() + Me.txtBDPath = New System.Windows.Forms.TextBox() + Me.lblCurrent = New System.Windows.Forms.Label() + Me.pnlCurrent = New System.Windows.Forms.Panel() + Me.Panel1 = New System.Windows.Forms.Panel() + Me.pbCurrent = New System.Windows.Forms.PictureBox() + Me.pnlExtensions = New System.Windows.Forms.Panel() + Me.GroupBox22 = New System.Windows.Forms.GroupBox() + Me.btnRemoveNoStack = New System.Windows.Forms.Button() + Me.btnAddNoStack = New System.Windows.Forms.Button() + Me.txtNoStack = New System.Windows.Forms.TextBox() + Me.lstNoStack = New System.Windows.Forms.ListBox() + Me.GroupBox18 = New System.Windows.Forms.GroupBox() + Me.btnResetValidExts = New System.Windows.Forms.Button() + Me.btnRemMovieExt = New System.Windows.Forms.Button() + Me.btnAddMovieExt = New System.Windows.Forms.Button() + Me.txtMovieExt = New System.Windows.Forms.TextBox() + Me.lstMovieExts = New System.Windows.Forms.ListBox() + Me.pnlSources = New System.Windows.Forms.Panel() + Me.btnEditSource = New System.Windows.Forms.Button() + Me.GroupBox19 = New System.Windows.Forms.GroupBox() + Me.chkVideoTSParentXBMC = New System.Windows.Forms.CheckBox() + Me.chkScanOrderModify = New System.Windows.Forms.CheckBox() + Me.chkSortBeforeScan = New System.Windows.Forms.CheckBox() + Me.chkIgnoreLastScan = New System.Windows.Forms.CheckBox() + Me.chkCleanDB = New System.Windows.Forms.CheckBox() + Me.chkAutoDetectVTS = New System.Windows.Forms.CheckBox() + Me.chkSkipStackedSizeCheck = New System.Windows.Forms.CheckBox() + Me.Label21 = New System.Windows.Forms.Label() + Me.txtSkipLessThan = New System.Windows.Forms.TextBox() + Me.Label20 = New System.Windows.Forms.Label() + Me.pnlImages = New System.Windows.Forms.Panel() + Me.GroupBox15 = New System.Windows.Forms.GroupBox() + Me.cbTrailerQuality = New System.Windows.Forms.ComboBox() + Me.lblPreferredQuality = New System.Windows.Forms.Label() + Me.chkDeleteAllTrailers = New System.Windows.Forms.CheckBox() + Me.chkOverwriteTrailer = New System.Windows.Forms.CheckBox() + Me.chkNoDLTrailer = New System.Windows.Forms.CheckBox() + Me.chkSingleScrapeTrailer = New System.Windows.Forms.CheckBox() + Me.chkUpdaterTrailer = New System.Windows.Forms.CheckBox() + Me.chkDownloadTrailer = New System.Windows.Forms.CheckBox() + Me.GroupBox23 = New System.Windows.Forms.GroupBox() + Me.chkAutoETSize = New System.Windows.Forms.CheckBox() + Me.cbAutoETSize = New System.Windows.Forms.ComboBox() + Me.GroupBox24 = New System.Windows.Forms.GroupBox() + Me.txtETWidth = New System.Windows.Forms.TextBox() + Me.txtETHeight = New System.Windows.Forms.TextBox() + Me.chkETPadding = New System.Windows.Forms.CheckBox() + Me.Label28 = New System.Windows.Forms.Label() + Me.Label29 = New System.Windows.Forms.Label() + Me.rbETCustom = New System.Windows.Forms.RadioButton() + Me.rbETNative = New System.Windows.Forms.RadioButton() + Me.fbdBrowse = New System.Windows.Forms.FolderBrowserDialog() + Me.ToolTips = New System.Windows.Forms.ToolTip(Me.components) + Me.pnlTVSources = New System.Windows.Forms.Panel() + Me.TabControl2 = New System.Windows.Forms.TabControl() + Me.TabPage3 = New System.Windows.Forms.TabPage() + Me.btnTVShowFrodo = New System.Windows.Forms.Button() + Me.lvTVSources = New System.Windows.Forms.ListView() + Me.ColumnHeader1 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ColumnHeader2 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ColumnHeader3 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.gbMiscTVSourceOpts = New System.Windows.Forms.GroupBox() + Me.Label6 = New System.Windows.Forms.Label() + Me.txtTVSkipLessThan = New System.Windows.Forms.TextBox() + Me.Label7 = New System.Windows.Forms.Label() + Me.chkTVScanOrderModify = New System.Windows.Forms.CheckBox() + Me.chkTVIgnoreLastScan = New System.Windows.Forms.CheckBox() + Me.chkTVCleanDB = New System.Windows.Forms.CheckBox() + Me.btnAddTVSource = New System.Windows.Forms.Button() + Me.btnEditTVSource = New System.Windows.Forms.Button() + Me.btnRemTVSource = New System.Windows.Forms.Button() + Me.gbTVNaming = New System.Windows.Forms.GroupBox() + Me.gbShowBanner = New System.Windows.Forms.GroupBox() + Me.chkShowBannerJPG = New System.Windows.Forms.CheckBox() + Me.gbAllSeasonPoster = New System.Windows.Forms.GroupBox() + Me.chkSeasonAllPosterJPG = New System.Windows.Forms.CheckBox() + Me.chkSeasonAllJPG = New System.Windows.Forms.CheckBox() + Me.chkSeasonAllTBN = New System.Windows.Forms.CheckBox() + Me.gbEpisodeFanart = New System.Windows.Forms.GroupBox() + Me.chkEpisodeDotFanart = New System.Windows.Forms.CheckBox() + Me.chkEpisodeDashFanart = New System.Windows.Forms.CheckBox() + Me.gbEpisodePosters = New System.Windows.Forms.GroupBox() + Me.chkEpisodeDashThumbJPG = New System.Windows.Forms.CheckBox() + Me.chkEpisodeJPG = New System.Windows.Forms.CheckBox() + Me.chkEpisodeTBN = New System.Windows.Forms.CheckBox() + Me.gbSeasonFanart = New System.Windows.Forms.GroupBox() + Me.chkSeasonXXDashFanartJPG = New System.Windows.Forms.CheckBox() + Me.chkSeasonDotFanart = New System.Windows.Forms.CheckBox() + Me.chkSeasonDashFanart = New System.Windows.Forms.CheckBox() + Me.chkSeasonFanartJPG = New System.Windows.Forms.CheckBox() + Me.gbSeasonPosters = New System.Windows.Forms.GroupBox() + Me.chkSeasonXXDashPosterJPG = New System.Windows.Forms.CheckBox() + Me.chkSeasonFolderJPG = New System.Windows.Forms.CheckBox() + Me.chkSeasonNameJPG = New System.Windows.Forms.CheckBox() + Me.chkSeasonNameTBN = New System.Windows.Forms.CheckBox() + Me.chkSeasonPosterJPG = New System.Windows.Forms.CheckBox() + Me.chkSeasonPosterTBN = New System.Windows.Forms.CheckBox() + Me.chkSeasonXTBN = New System.Windows.Forms.CheckBox() + Me.chkSeasonXXTBN = New System.Windows.Forms.CheckBox() + Me.gbShowFanart = New System.Windows.Forms.GroupBox() + Me.chkShowDotFanart = New System.Windows.Forms.CheckBox() + Me.chkShowDashFanart = New System.Windows.Forms.CheckBox() + Me.chkShowFanartJPG = New System.Windows.Forms.CheckBox() + Me.gbShowPosters = New System.Windows.Forms.GroupBox() + Me.chkShowJPG = New System.Windows.Forms.CheckBox() + Me.chkShowTBN = New System.Windows.Forms.CheckBox() + Me.chkShowPosterJPG = New System.Windows.Forms.CheckBox() + Me.chkShowPosterTBN = New System.Windows.Forms.CheckBox() + Me.chkShowFolderJPG = New System.Windows.Forms.CheckBox() + Me.TabPage4 = New System.Windows.Forms.TabPage() + Me.btnGetTVProfiles = New System.Windows.Forms.Button() + Me.btnRegexDown = New System.Windows.Forms.Button() + Me.btnRegexUp = New System.Windows.Forms.Button() + Me.btnResetShowRegex = New System.Windows.Forms.Button() + Me.gbShowRegex = New System.Windows.Forms.GroupBox() + Me.btnClearRegex = New System.Windows.Forms.Button() + Me.lblSeasonMatch = New System.Windows.Forms.Label() + Me.btnAddShowRegex = New System.Windows.Forms.Button() + Me.txtSeasonRegex = New System.Windows.Forms.TextBox() + Me.lblEpisodeRetrieve = New System.Windows.Forms.Label() + Me.cboSeasonRetrieve = New System.Windows.Forms.ComboBox() + Me.lblSeasonRetrieve = New System.Windows.Forms.Label() + Me.txtEpRegex = New System.Windows.Forms.TextBox() + Me.lblEpisodeMatch = New System.Windows.Forms.Label() + Me.cboEpRetrieve = New System.Windows.Forms.ComboBox() + Me.btnEditShowRegex = New System.Windows.Forms.Button() + Me.btnRemoveShowRegex = New System.Windows.Forms.Button() + Me.lvShowRegex = New System.Windows.Forms.ListView() + Me.colRegID = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.colSeason = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.colSeasonApply = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.colEpisode = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.colEpApply = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.pnlShows = New System.Windows.Forms.Panel() + Me.gbTVListOptions = New System.Windows.Forms.GroupBox() + Me.chkDisplayMissingEpisodes = New System.Windows.Forms.CheckBox() + Me.gbEpisodeListOptions = New System.Windows.Forms.GroupBox() + Me.chkEpisodeWatchedCol = New System.Windows.Forms.CheckBox() + Me.chkEpisodeNfoCol = New System.Windows.Forms.CheckBox() + Me.chkEpisodeFanartCol = New System.Windows.Forms.CheckBox() + Me.chkEpisodePosterCol = New System.Windows.Forms.CheckBox() + Me.gbSeasonListOptions = New System.Windows.Forms.GroupBox() + Me.chkSeasonFanartCol = New System.Windows.Forms.CheckBox() + Me.chkSeasonPosterCol = New System.Windows.Forms.CheckBox() + Me.gbShowListOptions = New System.Windows.Forms.GroupBox() + Me.chkShowNfoCol = New System.Windows.Forms.CheckBox() + Me.chkShowFanartCol = New System.Windows.Forms.CheckBox() + Me.chkShowPosterCol = New System.Windows.Forms.CheckBox() + Me.gbTVMisc = New System.Windows.Forms.GroupBox() + Me.chkMarkNewShows = New System.Windows.Forms.CheckBox() + Me.chkMarkNewEpisodes = New System.Windows.Forms.CheckBox() + Me.chkDisplayAllSeason = New System.Windows.Forms.CheckBox() + Me.lblRatingRegion = New System.Windows.Forms.Label() + Me.cbRatingRegion = New System.Windows.Forms.ComboBox() + Me.gbEpFilter = New System.Windows.Forms.GroupBox() + Me.btnResetEpFilter = New System.Windows.Forms.Button() + Me.chkNoFilterEpisode = New System.Windows.Forms.CheckBox() + Me.btnEpFilterDown = New System.Windows.Forms.Button() + Me.btnEpFilterUp = New System.Windows.Forms.Button() + Me.chkEpProperCase = New System.Windows.Forms.CheckBox() + Me.btnRemoveEpFilter = New System.Windows.Forms.Button() + Me.btnAddEpFilter = New System.Windows.Forms.Button() + Me.txtEpFilter = New System.Windows.Forms.TextBox() + Me.lstEpFilters = New System.Windows.Forms.ListBox() + Me.gbShowFilter = New System.Windows.Forms.GroupBox() + Me.btnResetShowFilters = New System.Windows.Forms.Button() + Me.btnShowFilterDown = New System.Windows.Forms.Button() + Me.btnShowFilterUp = New System.Windows.Forms.Button() + Me.chkShowProperCase = New System.Windows.Forms.CheckBox() + Me.btnRemoveShowFilter = New System.Windows.Forms.Button() + Me.btnAddShowFilter = New System.Windows.Forms.Button() + Me.txtShowFilter = New System.Windows.Forms.TextBox() + Me.lstShowFilters = New System.Windows.Forms.ListBox() + Me.pnlTVImages = New System.Windows.Forms.Panel() + Me.TabControl3 = New System.Windows.Forms.TabControl() + Me.TabPage5 = New System.Windows.Forms.TabPage() + Me.gbAllSPosterOpts = New System.Windows.Forms.GroupBox() + Me.rbAllSPoster = New System.Windows.Forms.RadioButton() + Me.rbAllSBanner = New System.Windows.Forms.RadioButton() + Me.txtAllSPosterWidth = New System.Windows.Forms.TextBox() + Me.txtAllSPosterHeight = New System.Windows.Forms.TextBox() + Me.lblAllSPosterQual = New System.Windows.Forms.Label() + Me.tbAllSPosterQual = New System.Windows.Forms.TrackBar() + Me.lblAllSPosterQ = New System.Windows.Forms.Label() + Me.lblAllSPosterWidth = New System.Windows.Forms.Label() + Me.lblAllSPosterHeight = New System.Windows.Forms.Label() + Me.chkResizeAllSPoster = New System.Windows.Forms.CheckBox() + Me.lblAllSPosterSize = New System.Windows.Forms.Label() + Me.cbAllSPosterSize = New System.Windows.Forms.ComboBox() + Me.chkOverwriteAllSPoster = New System.Windows.Forms.CheckBox() + Me.gbShowPosterOpts = New System.Windows.Forms.GroupBox() + Me.rbPoster = New System.Windows.Forms.RadioButton() + Me.rbBanner = New System.Windows.Forms.RadioButton() + Me.txtShowPosterWidth = New System.Windows.Forms.TextBox() + Me.txtShowPosterHeight = New System.Windows.Forms.TextBox() + Me.lblShowPosterQual = New System.Windows.Forms.Label() + Me.tbShowPosterQual = New System.Windows.Forms.TrackBar() + Me.lblShowPosterQ = New System.Windows.Forms.Label() + Me.lblShowPosterWidth = New System.Windows.Forms.Label() + Me.lblShowPosterHeight = New System.Windows.Forms.Label() + Me.chkResizeShowPoster = New System.Windows.Forms.CheckBox() + Me.lblShowPosterSize = New System.Windows.Forms.Label() + Me.cbShowPosterSize = New System.Windows.Forms.ComboBox() + Me.chkOverwriteShowPoster = New System.Windows.Forms.CheckBox() + Me.gbShowFanartOpts = New System.Windows.Forms.GroupBox() + Me.txtShowFanartWidth = New System.Windows.Forms.TextBox() + Me.txtShowFanartHeight = New System.Windows.Forms.TextBox() + Me.lblShowFanartQual = New System.Windows.Forms.Label() + Me.tbShowFanartQual = New System.Windows.Forms.TrackBar() + Me.lblShowFanartQ = New System.Windows.Forms.Label() + Me.lblShowFanartWidth = New System.Windows.Forms.Label() + Me.lblShowFanartHeight = New System.Windows.Forms.Label() + Me.chkResizeShowFanart = New System.Windows.Forms.CheckBox() + Me.cbShowFanartSize = New System.Windows.Forms.ComboBox() + Me.lblShowFanartSize = New System.Windows.Forms.Label() + Me.chkOverwriteShowFanart = New System.Windows.Forms.CheckBox() + Me.TabPage6 = New System.Windows.Forms.TabPage() + Me.gbSeaPosterOpts = New System.Windows.Forms.GroupBox() + Me.txtSeaPosterWidth = New System.Windows.Forms.TextBox() + Me.txtSeaPosterHeight = New System.Windows.Forms.TextBox() + Me.lblSeaPosterQual = New System.Windows.Forms.Label() + Me.tbSeaPosterQual = New System.Windows.Forms.TrackBar() + Me.lblSeaPosterQ = New System.Windows.Forms.Label() + Me.lblSeaPosterWidth = New System.Windows.Forms.Label() + Me.lblSeaPosterHeight = New System.Windows.Forms.Label() + Me.chkSeaResizePoster = New System.Windows.Forms.CheckBox() + Me.lblSeaPosterSize = New System.Windows.Forms.Label() + Me.cbSeaPosterSize = New System.Windows.Forms.ComboBox() + Me.chkSeaOverwritePoster = New System.Windows.Forms.CheckBox() + Me.gbSeaFanartOpts = New System.Windows.Forms.GroupBox() + Me.txtSeaFanartWidth = New System.Windows.Forms.TextBox() + Me.txtSeaFanartHeight = New System.Windows.Forms.TextBox() + Me.lblSeaFanartQual = New System.Windows.Forms.Label() + Me.tbSeaFanartQual = New System.Windows.Forms.TrackBar() + Me.lblSeaFanartQ = New System.Windows.Forms.Label() + Me.lblSeaFanartWidth = New System.Windows.Forms.Label() + Me.lblSeaFanartHeight = New System.Windows.Forms.Label() + Me.chkSeaResizeFanart = New System.Windows.Forms.CheckBox() + Me.cbSeaFanartSize = New System.Windows.Forms.ComboBox() + Me.lblSeaFanartSize = New System.Windows.Forms.Label() + Me.chkSeaOverwriteFanart = New System.Windows.Forms.CheckBox() + Me.TabPage7 = New System.Windows.Forms.TabPage() + Me.gbEpPosterOpts = New System.Windows.Forms.GroupBox() + Me.txtEpPosterWidth = New System.Windows.Forms.TextBox() + Me.txtEpPosterHeight = New System.Windows.Forms.TextBox() + Me.lblEpPosterQual = New System.Windows.Forms.Label() + Me.tbEpPosterQual = New System.Windows.Forms.TrackBar() + Me.lblEpPosterQ = New System.Windows.Forms.Label() + Me.lblEpPosterWidth = New System.Windows.Forms.Label() + Me.lblEpPosterHeight = New System.Windows.Forms.Label() + Me.chkResizeEpPoster = New System.Windows.Forms.CheckBox() + Me.chkOverwriteEpPoster = New System.Windows.Forms.CheckBox() + Me.gbEpFanartOpts = New System.Windows.Forms.GroupBox() + Me.txtEpFanartWidth = New System.Windows.Forms.TextBox() + Me.txtEpFanartHeight = New System.Windows.Forms.TextBox() + Me.lblEpFanartQual = New System.Windows.Forms.Label() + Me.tbEpFanartQual = New System.Windows.Forms.TrackBar() + Me.lblEpFanartQ = New System.Windows.Forms.Label() + Me.lblEpFanartWidth = New System.Windows.Forms.Label() + Me.lblEpFanartHeight = New System.Windows.Forms.Label() + Me.chkResizeEpFanart = New System.Windows.Forms.CheckBox() + Me.cbEpFanartSize = New System.Windows.Forms.ComboBox() + Me.lblEpFanartSize = New System.Windows.Forms.Label() + Me.chkOverwriteEpFanart = New System.Windows.Forms.CheckBox() + Me.TabPage8 = New System.Windows.Forms.TabPage() + Me.chkGetEnglishImages = New System.Windows.Forms.CheckBox() + Me.chkOnlyTVImagesLanguage = New System.Windows.Forms.CheckBox() + Me.pnlTVScraper = New System.Windows.Forms.Panel() + Me.GroupBox32 = New System.Windows.Forms.GroupBox() + Me.GroupBox35 = New System.Windows.Forms.GroupBox() + Me.chkScraperShowRating = New System.Windows.Forms.CheckBox() + Me.chkScraperShowActors = New System.Windows.Forms.CheckBox() + Me.chkScraperShowStudio = New System.Windows.Forms.CheckBox() + Me.chkScraperShowPremiered = New System.Windows.Forms.CheckBox() + Me.chkScraperShowEGU = New System.Windows.Forms.CheckBox() + Me.chkScraperShowMPAA = New System.Windows.Forms.CheckBox() + Me.chkScraperShowPlot = New System.Windows.Forms.CheckBox() + Me.chkScraperShowGenre = New System.Windows.Forms.CheckBox() + Me.chkScraperShowTitle = New System.Windows.Forms.CheckBox() + Me.GroupBox34 = New System.Windows.Forms.GroupBox() + Me.chkScraperEpActors = New System.Windows.Forms.CheckBox() + Me.chkScraperEpCredits = New System.Windows.Forms.CheckBox() + Me.chkScraperEpDirector = New System.Windows.Forms.CheckBox() + Me.chkScraperEpPlot = New System.Windows.Forms.CheckBox() + Me.chkScraperEpRating = New System.Windows.Forms.CheckBox() + Me.chkScraperEpAired = New System.Windows.Forms.CheckBox() + Me.chkScraperEpTitle = New System.Windows.Forms.CheckBox() + Me.chkScraperEpEpisode = New System.Windows.Forms.CheckBox() + Me.chkScraperEpSeason = New System.Windows.Forms.CheckBox() + Me.GroupBox33 = New System.Windows.Forms.GroupBox() + Me.gbEpLocks = New System.Windows.Forms.GroupBox() + Me.chkEpLockTitle = New System.Windows.Forms.CheckBox() + Me.chkEpLockRating = New System.Windows.Forms.CheckBox() + Me.chkEpLockPlot = New System.Windows.Forms.CheckBox() + Me.gbShowLocks = New System.Windows.Forms.GroupBox() + Me.chkShowLockPlot = New System.Windows.Forms.CheckBox() + Me.chkShowLockGenre = New System.Windows.Forms.CheckBox() + Me.chkShowLockStudio = New System.Windows.Forms.CheckBox() + Me.chkShowLockRating = New System.Windows.Forms.CheckBox() + Me.chkShowLockTitle = New System.Windows.Forms.CheckBox() + Me.GroupBox31 = New System.Windows.Forms.GroupBox() + Me.gbTVMIDefaults = New System.Windows.Forms.GroupBox() + Me.lstTVMetaData = New System.Windows.Forms.ListBox() + Me.txtTVDefFIExt = New System.Windows.Forms.TextBox() + Me.Label49 = New System.Windows.Forms.Label() + Me.btnRemoveTVMetaDataFT = New System.Windows.Forms.Button() + Me.btnEditTVMetaDataFT = New System.Windows.Forms.Button() + Me.btnNewTVMetaDataFT = New System.Windows.Forms.Button() + Me.cboTVMetaDataOverlay = New System.Windows.Forms.ComboBox() + Me.Label50 = New System.Windows.Forms.Label() + Me.chkTVScanMetaData = New System.Windows.Forms.CheckBox() + Me.gbTVScraperOptions = New System.Windows.Forms.GroupBox() + Me.lblOrdering = New System.Windows.Forms.Label() + Me.cbOrdering = New System.Windows.Forms.ComboBox() + Me.lblTVUpdate = New System.Windows.Forms.Label() + Me.cboTVUpdate = New System.Windows.Forms.ComboBox() + Me.lblAPIKey = New System.Windows.Forms.Label() + Me.lblTVDBMirror = New System.Windows.Forms.Label() + Me.txtAPIKey = New System.Windows.Forms.TextBox() + Me.txtTVDBMirror = New System.Windows.Forms.TextBox() + Me.gbLanguage = New System.Windows.Forms.GroupBox() + Me.lblTVLanguagePreferred = New System.Windows.Forms.Label() + Me.btnTVLanguageFetch = New System.Windows.Forms.Button() + Me.cbTVLanguage = New System.Windows.Forms.ComboBox() + Me.gbOptions = New System.Windows.Forms.GroupBox() + Me.chkCertification = New System.Windows.Forms.CheckBox() + Me.chkTop250 = New System.Windows.Forms.CheckBox() + Me.chkCountry = New System.Windows.Forms.CheckBox() + Me.txtGenreLimit = New System.Windows.Forms.TextBox() + Me.lblLimit2 = New System.Windows.Forms.Label() + Me.txtActorLimit = New System.Windows.Forms.TextBox() + Me.lblLimit = New System.Windows.Forms.Label() + Me.chkCrew = New System.Windows.Forms.CheckBox() + Me.chkMusicBy = New System.Windows.Forms.CheckBox() + Me.chkProducers = New System.Windows.Forms.CheckBox() + Me.chkWriters = New System.Windows.Forms.CheckBox() + Me.chkStudio = New System.Windows.Forms.CheckBox() + Me.chkRuntime = New System.Windows.Forms.CheckBox() + Me.chkPlot = New System.Windows.Forms.CheckBox() + Me.chkOutline = New System.Windows.Forms.CheckBox() + Me.chkGenre = New System.Windows.Forms.CheckBox() + Me.chkDirector = New System.Windows.Forms.CheckBox() + Me.chkTagline = New System.Windows.Forms.CheckBox() + Me.chkCast = New System.Windows.Forms.CheckBox() + Me.chkVotes = New System.Windows.Forms.CheckBox() + Me.chkTrailer = New System.Windows.Forms.CheckBox() + Me.chkRating = New System.Windows.Forms.CheckBox() + Me.chkRelease = New System.Windows.Forms.CheckBox() + Me.chkMPAA = New System.Windows.Forms.CheckBox() + Me.chkYear = New System.Windows.Forms.CheckBox() + Me.chkTitle = New System.Windows.Forms.CheckBox() + Me.GroupBox26 = New System.Windows.Forms.GroupBox() + Me.GroupBox28 = New System.Windows.Forms.GroupBox() + Me.lstMetaData = New System.Windows.Forms.ListBox() + Me.txtDefFIExt = New System.Windows.Forms.TextBox() + Me.Label34 = New System.Windows.Forms.Label() + Me.btnRemoveMetaDataFT = New System.Windows.Forms.Button() + Me.btnEditMetaDataFT = New System.Windows.Forms.Button() + Me.btnNewMetaDataFT = New System.Windows.Forms.Button() + Me.chkIFOScan = New System.Windows.Forms.CheckBox() + Me.cbLanguages = New System.Windows.Forms.ComboBox() + Me.Label31 = New System.Windows.Forms.Label() + Me.gbRTFormat = New System.Windows.Forms.GroupBox() + Me.Label51 = New System.Windows.Forms.Label() + Me.txtRuntimeFormat = New System.Windows.Forms.TextBox() + Me.chkUseMIDuration = New System.Windows.Forms.CheckBox() + Me.chkScanMediaInfo = New System.Windows.Forms.CheckBox() + Me.GroupBox10 = New System.Windows.Forms.GroupBox() + Me.chkLockSubtitle = New System.Windows.Forms.CheckBox() + Me.chkLockMPAA = New System.Windows.Forms.CheckBox() + Me.chkLockLanguageA = New System.Windows.Forms.CheckBox() + Me.chkLockLanguageV = New System.Windows.Forms.CheckBox() + Me.chkLockOutline = New System.Windows.Forms.CheckBox() + Me.chkLockPlot = New System.Windows.Forms.CheckBox() + Me.chkLockTrailer = New System.Windows.Forms.CheckBox() + Me.chkLockGenre = New System.Windows.Forms.CheckBox() + Me.chkLockRealStudio = New System.Windows.Forms.CheckBox() + Me.chkLockRating = New System.Windows.Forms.CheckBox() + Me.chkLockTagline = New System.Windows.Forms.CheckBox() + Me.chkLockTitle = New System.Windows.Forms.CheckBox() + Me.GroupBox1 = New System.Windows.Forms.GroupBox() + Me.chkUseMPAAFSK = New System.Windows.Forms.CheckBox() + Me.chkOnlyValueForCert = New System.Windows.Forms.CheckBox() + Me.cbForce = New System.Windows.Forms.ComboBox() + Me.chkForceTitle = New System.Windows.Forms.CheckBox() + Me.chkOutlineForPlot = New System.Windows.Forms.CheckBox() + Me.chkCastWithImg = New System.Windows.Forms.CheckBox() + Me.chkUseCertForMPAA = New System.Windows.Forms.CheckBox() + Me.chkFullCast = New System.Windows.Forms.CheckBox() + Me.chkFullCrew = New System.Windows.Forms.CheckBox() + Me.cbCert = New System.Windows.Forms.ComboBox() + Me.chkCert = New System.Windows.Forms.CheckBox() + Me.pnlScraper = New System.Windows.Forms.Panel() + Me.ToolStrip1 = New System.Windows.Forms.ToolStrip() + Me.pnlMain = New System.Windows.Forms.Panel() + Me.gbHelp = New System.Windows.Forms.GroupBox() + Me.PictureBox2 = New System.Windows.Forms.PictureBox() + Me.lblHelp = New System.Windows.Forms.Label() + Me.Panel2 = New System.Windows.Forms.Panel() + Me.GroupBox4.SuspendLayout() + Me.GroupBox29.SuspendLayout() + Me.GroupBox3.SuspendLayout() + Me.tcCleaner.SuspendLayout() + Me.tpStandard.SuspendLayout() + Me.tpExpert.SuspendLayout() + Me.GroupBox12.SuspendLayout() + Me.GroupBox2.SuspendLayout() + Me.GroupBox25.SuspendLayout() + Me.GroupBox8.SuspendLayout() + Me.GroupBox21.SuspendLayout() + Me.GroupBox7.SuspendLayout() + Me.GroupBox6.SuspendLayout() + Me.GroupBox5.SuspendLayout() + Me.GroupBox14.SuspendLayout() + CType(Me.tbPosterQual, System.ComponentModel.ISupportInitialize).BeginInit() + Me.GroupBox13.SuspendLayout() + CType(Me.tbFanartQual, System.ComponentModel.ISupportInitialize).BeginInit() + Me.GroupBox9.SuspendLayout() + Me.GroupBox17.SuspendLayout() + Me.pnlTop.SuspendLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.pnlGeneral.SuspendLayout() + Me.gbInterface.SuspendLayout() + Me.pnlXBMCCom.SuspendLayout() + Me.gbProxy.SuspendLayout() + Me.gbCreds.SuspendLayout() + Me.pnlMovies.SuspendLayout() + Me.gbGenreFilter.SuspendLayout() + Me.gbFilters.SuspendLayout() + Me.GroupBox27.SuspendLayout() + Me.GroupBox16.SuspendLayout() + Me.Panel1.SuspendLayout() + CType(Me.pbCurrent, System.ComponentModel.ISupportInitialize).BeginInit() + Me.pnlExtensions.SuspendLayout() + Me.GroupBox22.SuspendLayout() + Me.GroupBox18.SuspendLayout() + Me.pnlSources.SuspendLayout() + Me.GroupBox19.SuspendLayout() + Me.pnlImages.SuspendLayout() + Me.GroupBox15.SuspendLayout() + Me.GroupBox23.SuspendLayout() + Me.GroupBox24.SuspendLayout() + Me.pnlTVSources.SuspendLayout() + Me.TabControl2.SuspendLayout() + Me.TabPage3.SuspendLayout() + Me.gbMiscTVSourceOpts.SuspendLayout() + Me.gbTVNaming.SuspendLayout() + Me.gbShowBanner.SuspendLayout() + Me.gbAllSeasonPoster.SuspendLayout() + Me.gbEpisodeFanart.SuspendLayout() + Me.gbEpisodePosters.SuspendLayout() + Me.gbSeasonFanart.SuspendLayout() + Me.gbSeasonPosters.SuspendLayout() + Me.gbShowFanart.SuspendLayout() + Me.gbShowPosters.SuspendLayout() + Me.TabPage4.SuspendLayout() + Me.gbShowRegex.SuspendLayout() + Me.pnlShows.SuspendLayout() + Me.gbTVListOptions.SuspendLayout() + Me.gbEpisodeListOptions.SuspendLayout() + Me.gbSeasonListOptions.SuspendLayout() + Me.gbShowListOptions.SuspendLayout() + Me.gbTVMisc.SuspendLayout() + Me.gbEpFilter.SuspendLayout() + Me.gbShowFilter.SuspendLayout() + Me.pnlTVImages.SuspendLayout() + Me.TabControl3.SuspendLayout() + Me.TabPage5.SuspendLayout() + Me.gbAllSPosterOpts.SuspendLayout() + CType(Me.tbAllSPosterQual, System.ComponentModel.ISupportInitialize).BeginInit() + Me.gbShowPosterOpts.SuspendLayout() + CType(Me.tbShowPosterQual, System.ComponentModel.ISupportInitialize).BeginInit() + Me.gbShowFanartOpts.SuspendLayout() + CType(Me.tbShowFanartQual, System.ComponentModel.ISupportInitialize).BeginInit() + Me.TabPage6.SuspendLayout() + Me.gbSeaPosterOpts.SuspendLayout() + CType(Me.tbSeaPosterQual, System.ComponentModel.ISupportInitialize).BeginInit() + Me.gbSeaFanartOpts.SuspendLayout() + CType(Me.tbSeaFanartQual, System.ComponentModel.ISupportInitialize).BeginInit() + Me.TabPage7.SuspendLayout() + Me.gbEpPosterOpts.SuspendLayout() + CType(Me.tbEpPosterQual, System.ComponentModel.ISupportInitialize).BeginInit() + Me.gbEpFanartOpts.SuspendLayout() + CType(Me.tbEpFanartQual, System.ComponentModel.ISupportInitialize).BeginInit() + Me.TabPage8.SuspendLayout() + Me.pnlTVScraper.SuspendLayout() + Me.GroupBox32.SuspendLayout() + Me.GroupBox35.SuspendLayout() + Me.GroupBox34.SuspendLayout() + Me.GroupBox33.SuspendLayout() + Me.gbEpLocks.SuspendLayout() + Me.gbShowLocks.SuspendLayout() + Me.GroupBox31.SuspendLayout() + Me.gbTVMIDefaults.SuspendLayout() + Me.gbTVScraperOptions.SuspendLayout() + Me.gbLanguage.SuspendLayout() + Me.gbOptions.SuspendLayout() + Me.GroupBox26.SuspendLayout() + Me.GroupBox28.SuspendLayout() + Me.gbRTFormat.SuspendLayout() + Me.GroupBox10.SuspendLayout() + Me.GroupBox1.SuspendLayout() + Me.pnlScraper.SuspendLayout() + Me.gbHelp.SuspendLayout() + CType(Me.PictureBox2, System.ComponentModel.ISupportInitialize).BeginInit() + Me.Panel2.SuspendLayout() + Me.SuspendLayout() + ' + 'GroupBox4 + ' + Me.GroupBox4.Controls.Add(Me.chkSpecialDateAdd) + Me.GroupBox4.Controls.Add(Me.chkShowGenresText) + Me.GroupBox4.Controls.Add(Me.chkSourceFromFolder) + Me.GroupBox4.Controls.Add(Me.chkNoDisplayFanart) + Me.GroupBox4.Controls.Add(Me.chkInfoPanelAnim) + Me.GroupBox4.Controls.Add(Me.chkNoDisplayPoster) + Me.GroupBox4.Controls.Add(Me.chkShowDims) + Me.GroupBox4.Controls.Add(Me.chkUpdates) + Me.GroupBox4.Controls.Add(Me.chkOverwriteNfo) + Me.GroupBox4.Controls.Add(Me.Label5) + Me.GroupBox4.Controls.Add(Me.chkLogErrors) + Me.GroupBox4.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.GroupBox4.Location = New System.Drawing.Point(210, 3) + Me.GroupBox4.Name = "GroupBox4" + Me.GroupBox4.Size = New System.Drawing.Size(900, 657) + Me.GroupBox4.TabIndex = 1 + Me.GroupBox4.TabStop = False + Me.GroupBox4.Text = "Miscellaneous" + ' + 'chkSpecialDateAdd + ' + Me.chkSpecialDateAdd.AutoSize = True + Me.chkSpecialDateAdd.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkSpecialDateAdd.Location = New System.Drawing.Point(10, 195) + Me.chkSpecialDateAdd.Name = "chkSpecialDateAdd" + Me.chkSpecialDateAdd.Size = New System.Drawing.Size(196, 17) + Me.chkSpecialDateAdd.TabIndex = 10 + Me.chkSpecialDateAdd.Text = "Use file creation date of videofile" + Me.chkSpecialDateAdd.UseVisualStyleBackColor = True + ' + 'chkShowGenresText + ' + Me.chkShowGenresText.AutoSize = True + Me.chkShowGenresText.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkShowGenresText.Location = New System.Drawing.Point(10, 178) + Me.chkShowGenresText.Name = "chkShowGenresText" + Me.chkShowGenresText.Size = New System.Drawing.Size(166, 17) + Me.chkShowGenresText.TabIndex = 9 + Me.chkShowGenresText.Text = "Allways Display Genres Text" + Me.chkShowGenresText.UseVisualStyleBackColor = True + ' + 'chkSourceFromFolder + ' + Me.chkSourceFromFolder.AutoSize = True + Me.chkSourceFromFolder.CheckAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkSourceFromFolder.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkSourceFromFolder.Location = New System.Drawing.Point(10, 110) + Me.chkSourceFromFolder.Name = "chkSourceFromFolder" + Me.chkSourceFromFolder.Size = New System.Drawing.Size(243, 17) + Me.chkSourceFromFolder.TabIndex = 5 + Me.chkSourceFromFolder.Text = "Include Folder Name in Source Type Check" + Me.chkSourceFromFolder.UseVisualStyleBackColor = True + ' + 'chkNoDisplayFanart + ' + Me.chkNoDisplayFanart.AutoSize = True + Me.chkNoDisplayFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkNoDisplayFanart.Location = New System.Drawing.Point(10, 144) + Me.chkNoDisplayFanart.Name = "chkNoDisplayFanart" + Me.chkNoDisplayFanart.Size = New System.Drawing.Size(139, 17) + Me.chkNoDisplayFanart.TabIndex = 7 + Me.chkNoDisplayFanart.Text = "Do Not Display Fanart" + Me.chkNoDisplayFanart.UseVisualStyleBackColor = True + ' + 'chkInfoPanelAnim + ' + Me.chkInfoPanelAnim.AutoSize = True + Me.chkInfoPanelAnim.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkInfoPanelAnim.Location = New System.Drawing.Point(10, 94) + Me.chkInfoPanelAnim.Name = "chkInfoPanelAnim" + Me.chkInfoPanelAnim.Size = New System.Drawing.Size(148, 17) + Me.chkInfoPanelAnim.TabIndex = 4 + Me.chkInfoPanelAnim.Text = "Enable Panel Animation" + Me.chkInfoPanelAnim.UseVisualStyleBackColor = True + ' + 'chkNoDisplayPoster + ' + Me.chkNoDisplayPoster.AutoSize = True + Me.chkNoDisplayPoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkNoDisplayPoster.Location = New System.Drawing.Point(10, 127) + Me.chkNoDisplayPoster.Name = "chkNoDisplayPoster" + Me.chkNoDisplayPoster.Size = New System.Drawing.Size(138, 17) + Me.chkNoDisplayPoster.TabIndex = 6 + Me.chkNoDisplayPoster.Text = "Do Not Display Poster" + Me.chkNoDisplayPoster.UseVisualStyleBackColor = True + ' + 'chkShowDims + ' + Me.chkShowDims.AutoSize = True + Me.chkShowDims.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkShowDims.Location = New System.Drawing.Point(10, 161) + Me.chkShowDims.Name = "chkShowDims" + Me.chkShowDims.Size = New System.Drawing.Size(160, 17) + Me.chkShowDims.TabIndex = 8 + Me.chkShowDims.Text = "Display Image Dimensions" + Me.chkShowDims.UseVisualStyleBackColor = True + ' + 'chkUpdates + ' + Me.chkUpdates.AutoSize = True + Me.chkUpdates.Enabled = False + Me.chkUpdates.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkUpdates.Location = New System.Drawing.Point(10, 20) + Me.chkUpdates.Name = "chkUpdates" + Me.chkUpdates.Size = New System.Drawing.Size(121, 17) + Me.chkUpdates.TabIndex = 0 + Me.chkUpdates.Text = "Check for Updates" + Me.chkUpdates.UseVisualStyleBackColor = True + Me.chkUpdates.Visible = False + ' + 'chkOverwriteNfo + ' + Me.chkOverwriteNfo.AutoSize = True + Me.chkOverwriteNfo.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkOverwriteNfo.Location = New System.Drawing.Point(10, 54) + Me.chkOverwriteNfo.Name = "chkOverwriteNfo" + Me.chkOverwriteNfo.Size = New System.Drawing.Size(191, 17) + Me.chkOverwriteNfo.TabIndex = 2 + Me.chkOverwriteNfo.Text = "Overwrite Non-conforming nfos" + Me.chkOverwriteNfo.UseVisualStyleBackColor = True + ' + 'Label5 + ' + Me.Label5.Font = New System.Drawing.Font("Microsoft Sans Serif", 6.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label5.Location = New System.Drawing.Point(20, 68) + Me.Label5.Name = "Label5" + Me.Label5.Size = New System.Drawing.Size(165, 24) + Me.Label5.TabIndex = 3 + Me.Label5.Text = "(If unchecked, non-conforming nfos will be renamed to .info)" + Me.Label5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter + ' + 'chkLogErrors + ' + Me.chkLogErrors.AutoSize = True + Me.chkLogErrors.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkLogErrors.Location = New System.Drawing.Point(10, 37) + Me.chkLogErrors.Name = "chkLogErrors" + Me.chkLogErrors.Size = New System.Drawing.Size(113, 17) + Me.chkLogErrors.TabIndex = 1 + Me.chkLogErrors.Text = "Log Errors to File" + Me.chkLogErrors.UseVisualStyleBackColor = True + ' + 'GroupBox29 + ' + Me.GroupBox29.Controls.Add(Me.cbEpTheme) + Me.GroupBox29.Controls.Add(Me.Label3) + Me.GroupBox29.Controls.Add(Me.cbTVShowTheme) + Me.GroupBox29.Controls.Add(Me.Label1) + Me.GroupBox29.Controls.Add(Me.cbMovieTheme) + Me.GroupBox29.Controls.Add(Me.Label35) + Me.GroupBox29.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.GroupBox29.Location = New System.Drawing.Point(8, 61) + Me.GroupBox29.Name = "GroupBox29" + Me.GroupBox29.Size = New System.Drawing.Size(179, 166) + Me.GroupBox29.TabIndex = 2 + Me.GroupBox29.TabStop = False + Me.GroupBox29.Text = "Themes" + ' + 'cbEpTheme + ' + Me.cbEpTheme.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cbEpTheme.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.cbEpTheme.FormattingEnabled = True + Me.cbEpTheme.Location = New System.Drawing.Point(9, 129) + Me.cbEpTheme.Name = "cbEpTheme" + Me.cbEpTheme.Size = New System.Drawing.Size(162, 21) + Me.cbEpTheme.TabIndex = 5 + ' + 'Label3 + ' + Me.Label3.AutoSize = True + Me.Label3.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label3.Location = New System.Drawing.Point(7, 114) + Me.Label3.Name = "Label3" + Me.Label3.Size = New System.Drawing.Size(87, 13) + Me.Label3.TabIndex = 4 + Me.Label3.Text = "Episode Theme:" + ' + 'cbTVShowTheme + ' + Me.cbTVShowTheme.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cbTVShowTheme.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.cbTVShowTheme.FormattingEnabled = True + Me.cbTVShowTheme.Location = New System.Drawing.Point(9, 83) + Me.cbTVShowTheme.Name = "cbTVShowTheme" + Me.cbTVShowTheme.Size = New System.Drawing.Size(162, 21) + Me.cbTVShowTheme.TabIndex = 3 + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label1.Location = New System.Drawing.Point(7, 68) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(90, 13) + Me.Label1.TabIndex = 2 + Me.Label1.Text = "TV Show Theme:" + ' + 'cbMovieTheme + ' + Me.cbMovieTheme.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cbMovieTheme.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.cbMovieTheme.FormattingEnabled = True + Me.cbMovieTheme.Location = New System.Drawing.Point(9, 38) + Me.cbMovieTheme.Name = "cbMovieTheme" + Me.cbMovieTheme.Size = New System.Drawing.Size(162, 21) + Me.cbMovieTheme.TabIndex = 1 + ' + 'Label35 + ' + Me.Label35.AutoSize = True + Me.Label35.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label35.Location = New System.Drawing.Point(7, 23) + Me.Label35.Name = "Label35" + Me.Label35.Size = New System.Drawing.Size(77, 13) + Me.Label35.TabIndex = 0 + Me.Label35.Text = "Movie Theme:" + ' + 'Label32 + ' + Me.Label32.AutoSize = True + Me.Label32.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label32.Location = New System.Drawing.Point(6, 18) + Me.Label32.Name = "Label32" + Me.Label32.Size = New System.Drawing.Size(109, 13) + Me.Label32.TabIndex = 0 + Me.Label32.Text = "Interface Language:" + ' + 'cbIntLang + ' + Me.cbIntLang.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cbIntLang.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.cbIntLang.FormattingEnabled = True + Me.cbIntLang.Location = New System.Drawing.Point(9, 34) + Me.cbIntLang.Name = "cbIntLang" + Me.cbIntLang.Size = New System.Drawing.Size(137, 21) + Me.cbIntLang.TabIndex = 1 + ' + 'GroupBox3 + ' + Me.GroupBox3.Controls.Add(Me.tcCleaner) + Me.GroupBox3.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.GroupBox3.Location = New System.Drawing.Point(401, 6) + Me.GroupBox3.Name = "GroupBox3" + Me.GroupBox3.Size = New System.Drawing.Size(208, 385) + Me.GroupBox3.TabIndex = 2 + Me.GroupBox3.TabStop = False + Me.GroupBox3.Text = "Clean Files" + ' + 'tcCleaner + ' + Me.tcCleaner.Appearance = System.Windows.Forms.TabAppearance.FlatButtons + Me.tcCleaner.Controls.Add(Me.tpStandard) + Me.tcCleaner.Controls.Add(Me.tpExpert) + Me.tcCleaner.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.tcCleaner.Location = New System.Drawing.Point(6, 19) + Me.tcCleaner.Name = "tcCleaner" + Me.tcCleaner.SelectedIndex = 0 + Me.tcCleaner.Size = New System.Drawing.Size(196, 363) + Me.tcCleaner.TabIndex = 0 + ' + 'tpStandard + ' + Me.tpStandard.BackColor = System.Drawing.Color.White + Me.tpStandard.Controls.Add(Me.chkCleanFolderJPG) + Me.tpStandard.Controls.Add(Me.chkCleanExtrathumbs) + Me.tpStandard.Controls.Add(Me.chkCleanMovieTBN) + Me.tpStandard.Controls.Add(Me.chkCleanMovieNameJPG) + Me.tpStandard.Controls.Add(Me.chkCleanMovieTBNb) + Me.tpStandard.Controls.Add(Me.chkCleanMovieJPG) + Me.tpStandard.Controls.Add(Me.chkCleanFanartJPG) + Me.tpStandard.Controls.Add(Me.chkCleanPosterJPG) + Me.tpStandard.Controls.Add(Me.chkCleanMovieFanartJPG) + Me.tpStandard.Controls.Add(Me.chkCleanPosterTBN) + Me.tpStandard.Controls.Add(Me.chkCleanMovieNFO) + Me.tpStandard.Controls.Add(Me.chkCleanDotFanartJPG) + Me.tpStandard.Controls.Add(Me.chkCleanMovieNFOb) + Me.tpStandard.Location = New System.Drawing.Point(4, 25) + Me.tpStandard.Name = "tpStandard" + Me.tpStandard.Padding = New System.Windows.Forms.Padding(3) + Me.tpStandard.Size = New System.Drawing.Size(188, 334) + Me.tpStandard.TabIndex = 0 + Me.tpStandard.Text = "Standard" + Me.tpStandard.UseVisualStyleBackColor = True + ' + 'chkCleanFolderJPG + ' + Me.chkCleanFolderJPG.AutoSize = True + Me.chkCleanFolderJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkCleanFolderJPG.Location = New System.Drawing.Point(7, 10) + Me.chkCleanFolderJPG.Name = "chkCleanFolderJPG" + Me.chkCleanFolderJPG.Size = New System.Drawing.Size(81, 17) + Me.chkCleanFolderJPG.TabIndex = 0 + Me.chkCleanFolderJPG.Text = "/folder.jpg" + Me.chkCleanFolderJPG.UseVisualStyleBackColor = True + ' + 'chkCleanExtrathumbs + ' + Me.chkCleanExtrathumbs.AutoSize = True + Me.chkCleanExtrathumbs.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkCleanExtrathumbs.Location = New System.Drawing.Point(7, 238) + Me.chkCleanExtrathumbs.Name = "chkCleanExtrathumbs" + Me.chkCleanExtrathumbs.Size = New System.Drawing.Size(98, 17) + Me.chkCleanExtrathumbs.TabIndex = 12 + Me.chkCleanExtrathumbs.Text = "/extrathumbs/" + Me.chkCleanExtrathumbs.UseVisualStyleBackColor = True + ' + 'chkCleanMovieTBN + ' + Me.chkCleanMovieTBN.AutoSize = True + Me.chkCleanMovieTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkCleanMovieTBN.Location = New System.Drawing.Point(7, 29) + Me.chkCleanMovieTBN.Name = "chkCleanMovieTBN" + Me.chkCleanMovieTBN.Size = New System.Drawing.Size(81, 17) + Me.chkCleanMovieTBN.TabIndex = 1 + Me.chkCleanMovieTBN.Text = "/movie.tbn" + Me.chkCleanMovieTBN.UseVisualStyleBackColor = True + ' + 'chkCleanMovieNameJPG + ' + Me.chkCleanMovieNameJPG.AutoSize = True + Me.chkCleanMovieNameJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkCleanMovieNameJPG.Location = New System.Drawing.Point(7, 124) + Me.chkCleanMovieNameJPG.Name = "chkCleanMovieNameJPG" + Me.chkCleanMovieNameJPG.Size = New System.Drawing.Size(96, 17) + Me.chkCleanMovieNameJPG.TabIndex = 6 + Me.chkCleanMovieNameJPG.Text = "/.jpg" + Me.chkCleanMovieNameJPG.UseVisualStyleBackColor = True + ' + 'chkCleanMovieTBNb + ' + Me.chkCleanMovieTBNb.AutoSize = True + Me.chkCleanMovieTBNb.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkCleanMovieTBNb.Location = New System.Drawing.Point(7, 48) + Me.chkCleanMovieTBNb.Name = "chkCleanMovieTBNb" + Me.chkCleanMovieTBNb.Size = New System.Drawing.Size(97, 17) + Me.chkCleanMovieTBNb.TabIndex = 2 + Me.chkCleanMovieTBNb.Text = "/.tbn" + Me.chkCleanMovieTBNb.UseVisualStyleBackColor = True + ' + 'chkCleanMovieJPG + ' + Me.chkCleanMovieJPG.AutoSize = True + Me.chkCleanMovieJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkCleanMovieJPG.Location = New System.Drawing.Point(7, 105) + Me.chkCleanMovieJPG.Name = "chkCleanMovieJPG" + Me.chkCleanMovieJPG.Size = New System.Drawing.Size(80, 17) + Me.chkCleanMovieJPG.TabIndex = 5 + Me.chkCleanMovieJPG.Text = "/movie.jpg" + Me.chkCleanMovieJPG.UseVisualStyleBackColor = True + ' + 'chkCleanFanartJPG + ' + Me.chkCleanFanartJPG.AutoSize = True + Me.chkCleanFanartJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkCleanFanartJPG.Location = New System.Drawing.Point(7, 143) + Me.chkCleanFanartJPG.Name = "chkCleanFanartJPG" + Me.chkCleanFanartJPG.Size = New System.Drawing.Size(81, 17) + Me.chkCleanFanartJPG.TabIndex = 7 + Me.chkCleanFanartJPG.Text = "/fanart.jpg" + Me.chkCleanFanartJPG.UseVisualStyleBackColor = True + ' + 'chkCleanPosterJPG + ' + Me.chkCleanPosterJPG.AutoSize = True + Me.chkCleanPosterJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkCleanPosterJPG.Location = New System.Drawing.Point(7, 86) + Me.chkCleanPosterJPG.Name = "chkCleanPosterJPG" + Me.chkCleanPosterJPG.Size = New System.Drawing.Size(83, 17) + Me.chkCleanPosterJPG.TabIndex = 4 + Me.chkCleanPosterJPG.Text = "/poster.jpg" + Me.chkCleanPosterJPG.UseVisualStyleBackColor = True + ' + 'chkCleanMovieFanartJPG + ' + Me.chkCleanMovieFanartJPG.AutoSize = True + Me.chkCleanMovieFanartJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkCleanMovieFanartJPG.Location = New System.Drawing.Point(7, 162) + Me.chkCleanMovieFanartJPG.Name = "chkCleanMovieFanartJPG" + Me.chkCleanMovieFanartJPG.Size = New System.Drawing.Size(131, 17) + Me.chkCleanMovieFanartJPG.TabIndex = 8 + Me.chkCleanMovieFanartJPG.Text = "/-fanart.jpg" + Me.chkCleanMovieFanartJPG.UseVisualStyleBackColor = True + ' + 'chkCleanPosterTBN + ' + Me.chkCleanPosterTBN.AutoSize = True + Me.chkCleanPosterTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkCleanPosterTBN.Location = New System.Drawing.Point(7, 67) + Me.chkCleanPosterTBN.Name = "chkCleanPosterTBN" + Me.chkCleanPosterTBN.Size = New System.Drawing.Size(84, 17) + Me.chkCleanPosterTBN.TabIndex = 3 + Me.chkCleanPosterTBN.Text = "/poster.tbn" + Me.chkCleanPosterTBN.UseVisualStyleBackColor = True + ' + 'chkCleanMovieNFO + ' + Me.chkCleanMovieNFO.AutoSize = True + Me.chkCleanMovieNFO.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkCleanMovieNFO.Location = New System.Drawing.Point(7, 200) + Me.chkCleanMovieNFO.Name = "chkCleanMovieNFO" + Me.chkCleanMovieNFO.Size = New System.Drawing.Size(81, 17) + Me.chkCleanMovieNFO.TabIndex = 10 + Me.chkCleanMovieNFO.Text = "/movie.nfo" + Me.chkCleanMovieNFO.UseVisualStyleBackColor = True + ' + 'chkCleanDotFanartJPG + ' + Me.chkCleanDotFanartJPG.AutoSize = True + Me.chkCleanDotFanartJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkCleanDotFanartJPG.Location = New System.Drawing.Point(7, 181) + Me.chkCleanDotFanartJPG.Name = "chkCleanDotFanartJPG" + Me.chkCleanDotFanartJPG.Size = New System.Drawing.Size(130, 17) + Me.chkCleanDotFanartJPG.TabIndex = 9 + Me.chkCleanDotFanartJPG.Text = "/.fanart.jpg" + Me.chkCleanDotFanartJPG.UseVisualStyleBackColor = True + ' + 'chkCleanMovieNFOb + ' + Me.chkCleanMovieNFOb.AutoSize = True + Me.chkCleanMovieNFOb.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkCleanMovieNFOb.Location = New System.Drawing.Point(7, 219) + Me.chkCleanMovieNFOb.Name = "chkCleanMovieNFOb" + Me.chkCleanMovieNFOb.Size = New System.Drawing.Size(97, 17) + Me.chkCleanMovieNFOb.TabIndex = 11 + Me.chkCleanMovieNFOb.Text = "/.nfo" + Me.chkCleanMovieNFOb.UseVisualStyleBackColor = True + ' + 'tpExpert + ' + Me.tpExpert.BackColor = System.Drawing.Color.White + Me.tpExpert.Controls.Add(Me.chkWhitelistVideo) + Me.tpExpert.Controls.Add(Me.Label27) + Me.tpExpert.Controls.Add(Me.btnRemoveWhitelist) + Me.tpExpert.Controls.Add(Me.btnAddWhitelist) + Me.tpExpert.Controls.Add(Me.txtWhitelist) + Me.tpExpert.Controls.Add(Me.lstWhitelist) + Me.tpExpert.Controls.Add(Me.Label25) + Me.tpExpert.Location = New System.Drawing.Point(4, 25) + Me.tpExpert.Name = "tpExpert" + Me.tpExpert.Padding = New System.Windows.Forms.Padding(3) + Me.tpExpert.Size = New System.Drawing.Size(188, 334) + Me.tpExpert.TabIndex = 1 + Me.tpExpert.Text = "Expert" + Me.tpExpert.UseVisualStyleBackColor = True + ' + 'chkWhitelistVideo + ' + Me.chkWhitelistVideo.AutoSize = True + Me.chkWhitelistVideo.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkWhitelistVideo.Location = New System.Drawing.Point(4, 85) + Me.chkWhitelistVideo.Name = "chkWhitelistVideo" + Me.chkWhitelistVideo.Size = New System.Drawing.Size(163, 17) + Me.chkWhitelistVideo.TabIndex = 1 + Me.chkWhitelistVideo.Text = "Whitelist Video Extensions" + Me.chkWhitelistVideo.UseVisualStyleBackColor = True + ' + 'Label27 + ' + Me.Label27.AutoSize = True + Me.Label27.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label27.Location = New System.Drawing.Point(19, 107) + Me.Label27.Name = "Label27" + Me.Label27.Size = New System.Drawing.Size(127, 13) + Me.Label27.TabIndex = 2 + Me.Label27.Text = "Whitelisted Extensions:" + ' + 'btnRemoveWhitelist + ' + Me.btnRemoveWhitelist.Image = CType(resources.GetObject("btnRemoveWhitelist.Image"), System.Drawing.Image) + Me.btnRemoveWhitelist.Location = New System.Drawing.Point(134, 251) + Me.btnRemoveWhitelist.Name = "btnRemoveWhitelist" + Me.btnRemoveWhitelist.Size = New System.Drawing.Size(23, 23) + Me.btnRemoveWhitelist.TabIndex = 6 + Me.btnRemoveWhitelist.UseVisualStyleBackColor = True + ' + 'btnAddWhitelist + ' + Me.btnAddWhitelist.Image = CType(resources.GetObject("btnAddWhitelist.Image"), System.Drawing.Image) + Me.btnAddWhitelist.Location = New System.Drawing.Point(82, 251) + Me.btnAddWhitelist.Name = "btnAddWhitelist" + Me.btnAddWhitelist.Size = New System.Drawing.Size(23, 23) + Me.btnAddWhitelist.TabIndex = 5 + Me.btnAddWhitelist.UseVisualStyleBackColor = True + ' + 'txtWhitelist + ' + Me.txtWhitelist.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtWhitelist.Location = New System.Drawing.Point(20, 252) + Me.txtWhitelist.Name = "txtWhitelist" + Me.txtWhitelist.Size = New System.Drawing.Size(61, 22) + Me.txtWhitelist.TabIndex = 4 + ' + 'lstWhitelist + ' + Me.lstWhitelist.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lstWhitelist.FormattingEnabled = True + Me.lstWhitelist.Location = New System.Drawing.Point(19, 126) + Me.lstWhitelist.Name = "lstWhitelist" + Me.lstWhitelist.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended + Me.lstWhitelist.Size = New System.Drawing.Size(138, 108) + Me.lstWhitelist.TabIndex = 3 + ' + 'Label25 + ' + Me.Label25.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Label25.ForeColor = System.Drawing.Color.Red + Me.Label25.Location = New System.Drawing.Point(12, 10) + Me.Label25.Name = "Label25" + Me.Label25.Size = New System.Drawing.Size(155, 68) + Me.Label25.TabIndex = 0 + Me.Label25.Text = "WARNING: Using the Expert Mode Cleaner could potentially delete wanted files. Tak" & _ + "e care when using this tool." + Me.Label25.TextAlign = System.Drawing.ContentAlignment.MiddleCenter + ' + 'GroupBox12 + ' + Me.GroupBox12.Controls.Add(Me.chkClickScrape) + Me.GroupBox12.Controls.Add(Me.chkAskCheckboxScrape) + Me.GroupBox12.Controls.Add(Me.chkMarkNew) + Me.GroupBox12.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.GroupBox12.Location = New System.Drawing.Point(6, 7) + Me.GroupBox12.Name = "GroupBox12" + Me.GroupBox12.Size = New System.Drawing.Size(219, 93) + Me.GroupBox12.TabIndex = 1 + Me.GroupBox12.TabStop = False + Me.GroupBox12.Text = "Miscellaneous" + ' + 'chkClickScrape + ' + Me.chkClickScrape.AutoSize = True + Me.chkClickScrape.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.chkClickScrape.Location = New System.Drawing.Point(12, 36) + Me.chkClickScrape.Name = "chkClickScrape" + Me.chkClickScrape.Size = New System.Drawing.Size(125, 17) + Me.chkClickScrape.TabIndex = 65 + Me.chkClickScrape.Text = "Enable Click Scrape" + Me.chkClickScrape.UseVisualStyleBackColor = True + ' + 'chkAskCheckboxScrape + ' + Me.chkAskCheckboxScrape.AutoSize = True + Me.chkAskCheckboxScrape.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.chkAskCheckboxScrape.Location = New System.Drawing.Point(25, 56) + Me.chkAskCheckboxScrape.Name = "chkAskCheckboxScrape" + Me.chkAskCheckboxScrape.Size = New System.Drawing.Size(127, 17) + Me.chkAskCheckboxScrape.TabIndex = 64 + Me.chkAskCheckboxScrape.Text = "Ask On Click Scrape" + Me.chkAskCheckboxScrape.UseVisualStyleBackColor = True + ' + 'chkMarkNew + ' + Me.chkMarkNew.AutoSize = True + Me.chkMarkNew.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkMarkNew.Location = New System.Drawing.Point(12, 14) + Me.chkMarkNew.Name = "chkMarkNew" + Me.chkMarkNew.Size = New System.Drawing.Size(117, 17) + Me.chkMarkNew.TabIndex = 0 + Me.chkMarkNew.Text = "Mark New Movies" + Me.chkMarkNew.UseVisualStyleBackColor = True + ' + 'lbGenre + ' + Me.lbGenre.CheckOnClick = True + Me.lbGenre.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lbGenre.FormattingEnabled = True + Me.lbGenre.IntegralHeight = False + Me.lbGenre.Location = New System.Drawing.Point(10, 18) + Me.lbGenre.Name = "lbGenre" + Me.lbGenre.Size = New System.Drawing.Size(157, 124) + Me.lbGenre.Sorted = True + Me.lbGenre.TabIndex = 0 + ' + 'GroupBox2 + ' + Me.GroupBox2.Controls.Add(Me.chkMovieWatchedCol) + Me.GroupBox2.Controls.Add(Me.txtCheckTitleTol) + Me.GroupBox2.Controls.Add(Me.Label30) + Me.GroupBox2.Controls.Add(Me.chkCheckTitles) + Me.GroupBox2.Controls.Add(Me.GroupBox25) + Me.GroupBox2.Controls.Add(Me.chkDisplayYear) + Me.GroupBox2.Controls.Add(Me.chkMovieExtraCol) + Me.GroupBox2.Controls.Add(Me.chkMovieSubCol) + Me.GroupBox2.Controls.Add(Me.chkMovieTrailerCol) + Me.GroupBox2.Controls.Add(Me.chkMovieInfoCol) + Me.GroupBox2.Controls.Add(Me.chkMovieFanartCol) + Me.GroupBox2.Controls.Add(Me.chkMoviePosterCol) + Me.GroupBox2.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.GroupBox2.Location = New System.Drawing.Point(7, 106) + Me.GroupBox2.Name = "GroupBox2" + Me.GroupBox2.Size = New System.Drawing.Size(218, 291) + Me.GroupBox2.TabIndex = 4 + Me.GroupBox2.TabStop = False + Me.GroupBox2.Text = "Media List Options" + ' + 'chkMovieWatchedCol + ' + Me.chkMovieWatchedCol.AutoSize = True + Me.chkMovieWatchedCol.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkMovieWatchedCol.Location = New System.Drawing.Point(9, 274) + Me.chkMovieWatchedCol.Name = "chkMovieWatchedCol" + Me.chkMovieWatchedCol.Size = New System.Drawing.Size(142, 17) + Me.chkMovieWatchedCol.TabIndex = 75 + Me.chkMovieWatchedCol.Text = "Hide Watched Column" + Me.chkMovieWatchedCol.UseVisualStyleBackColor = True + ' + 'txtCheckTitleTol + ' + Me.txtCheckTitleTol.Enabled = False + Me.txtCheckTitleTol.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtCheckTitleTol.Location = New System.Drawing.Point(142, 50) + Me.txtCheckTitleTol.Name = "txtCheckTitleTol" + Me.txtCheckTitleTol.Size = New System.Drawing.Size(61, 22) + Me.txtCheckTitleTol.TabIndex = 74 + ' + 'Label30 + ' + Me.Label30.AutoSize = True + Me.Label30.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label30.Location = New System.Drawing.Point(27, 54) + Me.Label30.Name = "Label30" + Me.Label30.Size = New System.Drawing.Size(111, 13) + Me.Label30.TabIndex = 73 + Me.Label30.Text = "Mismatch Tolerance:" + Me.Label30.TextAlign = System.Drawing.ContentAlignment.TopRight + ' + 'chkCheckTitles + ' + Me.chkCheckTitles.AutoSize = True + Me.chkCheckTitles.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkCheckTitles.Location = New System.Drawing.Point(8, 35) + Me.chkCheckTitles.Name = "chkCheckTitles" + Me.chkCheckTitles.Size = New System.Drawing.Size(178, 17) + Me.chkCheckTitles.TabIndex = 72 + Me.chkCheckTitles.Text = "Check Title Match Confidence" + Me.chkCheckTitles.UseVisualStyleBackColor = True + ' + 'GroupBox25 + ' + Me.GroupBox25.Controls.Add(Me.btnRemoveToken) + Me.GroupBox25.Controls.Add(Me.btnAddToken) + Me.GroupBox25.Controls.Add(Me.txtSortToken) + Me.GroupBox25.Controls.Add(Me.lstSortTokens) + Me.GroupBox25.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.GroupBox25.Location = New System.Drawing.Point(9, 73) + Me.GroupBox25.Name = "GroupBox25" + Me.GroupBox25.Size = New System.Drawing.Size(200, 102) + Me.GroupBox25.TabIndex = 71 + Me.GroupBox25.TabStop = False + Me.GroupBox25.Text = "Sort Tokens to Ignore" + ' + 'btnRemoveToken + ' + Me.btnRemoveToken.Image = CType(resources.GetObject("btnRemoveToken.Image"), System.Drawing.Image) + Me.btnRemoveToken.Location = New System.Drawing.Point(168, 72) + Me.btnRemoveToken.Name = "btnRemoveToken" + Me.btnRemoveToken.Size = New System.Drawing.Size(23, 23) + Me.btnRemoveToken.TabIndex = 3 + Me.btnRemoveToken.UseVisualStyleBackColor = True + ' + 'btnAddToken + ' + Me.btnAddToken.Image = CType(resources.GetObject("btnAddToken.Image"), System.Drawing.Image) + Me.btnAddToken.Location = New System.Drawing.Point(72, 72) + Me.btnAddToken.Name = "btnAddToken" + Me.btnAddToken.Size = New System.Drawing.Size(23, 23) + Me.btnAddToken.TabIndex = 2 + Me.btnAddToken.UseVisualStyleBackColor = True + ' + 'txtSortToken + ' + Me.txtSortToken.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtSortToken.Location = New System.Drawing.Point(10, 73) + Me.txtSortToken.Name = "txtSortToken" + Me.txtSortToken.Size = New System.Drawing.Size(61, 22) + Me.txtSortToken.TabIndex = 1 + ' + 'lstSortTokens + ' + Me.lstSortTokens.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lstSortTokens.FormattingEnabled = True + Me.lstSortTokens.Location = New System.Drawing.Point(10, 15) + Me.lstSortTokens.Name = "lstSortTokens" + Me.lstSortTokens.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended + Me.lstSortTokens.Size = New System.Drawing.Size(180, 43) + Me.lstSortTokens.Sorted = True + Me.lstSortTokens.TabIndex = 0 + ' + 'chkDisplayYear + ' + Me.chkDisplayYear.AutoSize = True + Me.chkDisplayYear.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkDisplayYear.Location = New System.Drawing.Point(8, 19) + Me.chkDisplayYear.Name = "chkDisplayYear" + Me.chkDisplayYear.Size = New System.Drawing.Size(144, 17) + Me.chkDisplayYear.TabIndex = 70 + Me.chkDisplayYear.Text = "Display Year in List Title" + Me.chkDisplayYear.UseVisualStyleBackColor = True + ' + 'chkMovieExtraCol + ' + Me.chkMovieExtraCol.AutoSize = True + Me.chkMovieExtraCol.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkMovieExtraCol.Location = New System.Drawing.Point(9, 258) + Me.chkMovieExtraCol.Name = "chkMovieExtraCol" + Me.chkMovieExtraCol.Size = New System.Drawing.Size(155, 17) + Me.chkMovieExtraCol.TabIndex = 5 + Me.chkMovieExtraCol.Text = "Hide Extrathumb Column" + Me.chkMovieExtraCol.UseVisualStyleBackColor = True + ' + 'chkMovieSubCol + ' + Me.chkMovieSubCol.AutoSize = True + Me.chkMovieSubCol.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkMovieSubCol.Location = New System.Drawing.Point(9, 242) + Me.chkMovieSubCol.Name = "chkMovieSubCol" + Me.chkMovieSubCol.Size = New System.Drawing.Size(116, 17) + Me.chkMovieSubCol.TabIndex = 4 + Me.chkMovieSubCol.Text = "Hide Sub Column" + Me.chkMovieSubCol.UseVisualStyleBackColor = True + ' + 'chkMovieTrailerCol + ' + Me.chkMovieTrailerCol.AutoSize = True + Me.chkMovieTrailerCol.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkMovieTrailerCol.Location = New System.Drawing.Point(9, 226) + Me.chkMovieTrailerCol.Name = "chkMovieTrailerCol" + Me.chkMovieTrailerCol.Size = New System.Drawing.Size(127, 17) + Me.chkMovieTrailerCol.TabIndex = 3 + Me.chkMovieTrailerCol.Text = "Hide Trailer Column" + Me.chkMovieTrailerCol.UseVisualStyleBackColor = True + ' + 'chkMovieInfoCol + ' + Me.chkMovieInfoCol.AutoSize = True + Me.chkMovieInfoCol.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkMovieInfoCol.Location = New System.Drawing.Point(9, 210) + Me.chkMovieInfoCol.Name = "chkMovieInfoCol" + Me.chkMovieInfoCol.Size = New System.Drawing.Size(117, 17) + Me.chkMovieInfoCol.TabIndex = 2 + Me.chkMovieInfoCol.Text = "Hide Info Column" + Me.chkMovieInfoCol.UseVisualStyleBackColor = True + ' + 'chkMovieFanartCol + ' + Me.chkMovieFanartCol.AutoSize = True + Me.chkMovieFanartCol.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkMovieFanartCol.Location = New System.Drawing.Point(9, 194) + Me.chkMovieFanartCol.Name = "chkMovieFanartCol" + Me.chkMovieFanartCol.Size = New System.Drawing.Size(129, 17) + Me.chkMovieFanartCol.TabIndex = 1 + Me.chkMovieFanartCol.Text = "Hide Fanart Column" + Me.chkMovieFanartCol.UseVisualStyleBackColor = True + ' + 'chkMoviePosterCol + ' + Me.chkMoviePosterCol.AutoSize = True + Me.chkMoviePosterCol.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkMoviePosterCol.Location = New System.Drawing.Point(9, 178) + Me.chkMoviePosterCol.Name = "chkMoviePosterCol" + Me.chkMoviePosterCol.Size = New System.Drawing.Size(128, 17) + Me.chkMoviePosterCol.TabIndex = 0 + Me.chkMoviePosterCol.Text = "Hide Poster Column" + Me.chkMoviePosterCol.UseVisualStyleBackColor = True + ' + 'GroupBox8 + ' + Me.GroupBox8.Controls.Add(Me.btnMovieFrodo) + Me.GroupBox8.Controls.Add(Me.chkMovieNameMultiOnly) + Me.GroupBox8.Controls.Add(Me.GroupBox21) + Me.GroupBox8.Controls.Add(Me.GroupBox7) + Me.GroupBox8.Controls.Add(Me.GroupBox6) + Me.GroupBox8.Controls.Add(Me.GroupBox5) + Me.GroupBox8.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.GroupBox8.Location = New System.Drawing.Point(243, 113) + Me.GroupBox8.Name = "GroupBox8" + Me.GroupBox8.Size = New System.Drawing.Size(366, 207) + Me.GroupBox8.TabIndex = 5 + Me.GroupBox8.TabStop = False + Me.GroupBox8.Text = "File Naming" + ' + 'btnMovieFrodo + ' + Me.btnMovieFrodo.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.btnMovieFrodo.Location = New System.Drawing.Point(237, 29) + Me.btnMovieFrodo.Name = "btnMovieFrodo" + Me.btnMovieFrodo.Size = New System.Drawing.Size(116, 23) + Me.btnMovieFrodo.TabIndex = 1 + Me.btnMovieFrodo.Text = "XBMC Frodo" + Me.btnMovieFrodo.UseVisualStyleBackColor = True + ' + 'chkMovieNameMultiOnly + ' + Me.chkMovieNameMultiOnly.CheckAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkMovieNameMultiOnly.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkMovieNameMultiOnly.Location = New System.Drawing.Point(235, 58) + Me.chkMovieNameMultiOnly.Name = "chkMovieNameMultiOnly" + Me.chkMovieNameMultiOnly.Size = New System.Drawing.Size(125, 43) + Me.chkMovieNameMultiOnly.TabIndex = 2 + Me.chkMovieNameMultiOnly.Text = "Use Only for Folders with Multiple Movies" + Me.chkMovieNameMultiOnly.TextAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkMovieNameMultiOnly.UseVisualStyleBackColor = True + ' + 'GroupBox21 + ' + Me.GroupBox21.Controls.Add(Me.rbBracketTrailer) + Me.GroupBox21.Controls.Add(Me.rbDashTrailer) + Me.GroupBox21.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.GroupBox21.Location = New System.Drawing.Point(150, 111) + Me.GroupBox21.Name = "GroupBox21" + Me.GroupBox21.Size = New System.Drawing.Size(102, 59) + Me.GroupBox21.TabIndex = 4 + Me.GroupBox21.TabStop = False + Me.GroupBox21.Text = "Trailer" + ' + 'rbBracketTrailer + ' + Me.rbBracketTrailer.AutoSize = True + Me.rbBracketTrailer.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.rbBracketTrailer.Location = New System.Drawing.Point(5, 33) + Me.rbBracketTrailer.Name = "rbBracketTrailer" + Me.rbBracketTrailer.Size = New System.Drawing.Size(61, 17) + Me.rbBracketTrailer.TabIndex = 1 + Me.rbBracketTrailer.TabStop = True + Me.rbBracketTrailer.Text = "[trailer]" + Me.rbBracketTrailer.UseVisualStyleBackColor = True + ' + 'rbDashTrailer + ' + Me.rbDashTrailer.AutoSize = True + Me.rbDashTrailer.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.rbDashTrailer.ForeColor = System.Drawing.SystemColors.ControlText + Me.rbDashTrailer.Location = New System.Drawing.Point(5, 17) + Me.rbDashTrailer.Name = "rbDashTrailer" + Me.rbDashTrailer.Size = New System.Drawing.Size(59, 17) + Me.rbDashTrailer.TabIndex = 0 + Me.rbDashTrailer.TabStop = True + Me.rbDashTrailer.Text = "-trailer" + Me.rbDashTrailer.UseVisualStyleBackColor = True + ' + 'GroupBox7 + ' + Me.GroupBox7.Controls.Add(Me.chkMovieNameNFOStack) + Me.GroupBox7.Controls.Add(Me.chkMovieNameNFO) + Me.GroupBox7.Controls.Add(Me.chkMovieNFO) + Me.GroupBox7.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.GroupBox7.Location = New System.Drawing.Point(258, 111) + Me.GroupBox7.Name = "GroupBox7" + Me.GroupBox7.Size = New System.Drawing.Size(102, 81) + Me.GroupBox7.TabIndex = 5 + Me.GroupBox7.TabStop = False + Me.GroupBox7.Text = "NFO" + ' + 'chkMovieNameNFOStack + ' + Me.chkMovieNameNFOStack.AutoSize = True + Me.chkMovieNameNFOStack.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkMovieNameNFOStack.ForeColor = System.Drawing.SystemColors.ControlText + Me.chkMovieNameNFOStack.Location = New System.Drawing.Point(6, 51) + Me.chkMovieNameNFOStack.Name = "chkMovieNameNFOStack" + Me.chkMovieNameNFOStack.Size = New System.Drawing.Size(93, 30) + Me.chkMovieNameNFOStack.TabIndex = 2 + Me.chkMovieNameNFOStack.Text = ".nfo" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "(Stack)" + Me.chkMovieNameNFOStack.UseVisualStyleBackColor = True + ' + 'chkMovieNameNFO + ' + Me.chkMovieNameNFO.AutoSize = True + Me.chkMovieNameNFO.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkMovieNameNFO.ForeColor = System.Drawing.SystemColors.ControlText + Me.chkMovieNameNFO.Location = New System.Drawing.Point(6, 34) + Me.chkMovieNameNFO.Name = "chkMovieNameNFO" + Me.chkMovieNameNFO.Size = New System.Drawing.Size(93, 17) + Me.chkMovieNameNFO.TabIndex = 1 + Me.chkMovieNameNFO.Text = ".nfo" + Me.chkMovieNameNFO.UseVisualStyleBackColor = True + ' + 'chkMovieNFO + ' + Me.chkMovieNFO.AutoSize = True + Me.chkMovieNFO.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkMovieNFO.Location = New System.Drawing.Point(6, 18) + Me.chkMovieNFO.Name = "chkMovieNFO" + Me.chkMovieNFO.Size = New System.Drawing.Size(77, 17) + Me.chkMovieNFO.TabIndex = 0 + Me.chkMovieNFO.Text = "movie.nfo" + Me.chkMovieNFO.UseVisualStyleBackColor = True + ' + 'GroupBox6 + ' + Me.GroupBox6.Controls.Add(Me.chkMovieNameDotFanartJPG) + Me.GroupBox6.Controls.Add(Me.chkMovieNameFanartJPG) + Me.GroupBox6.Controls.Add(Me.chkFanartJPG) + Me.GroupBox6.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.GroupBox6.Location = New System.Drawing.Point(6, 111) + Me.GroupBox6.Name = "GroupBox6" + Me.GroupBox6.Size = New System.Drawing.Size(136, 81) + Me.GroupBox6.TabIndex = 3 + Me.GroupBox6.TabStop = False + Me.GroupBox6.Text = "Fanart" + ' + 'chkMovieNameDotFanartJPG + ' + Me.chkMovieNameDotFanartJPG.AutoSize = True + Me.chkMovieNameDotFanartJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkMovieNameDotFanartJPG.Location = New System.Drawing.Point(6, 51) + Me.chkMovieNameDotFanartJPG.Name = "chkMovieNameDotFanartJPG" + Me.chkMovieNameDotFanartJPG.Size = New System.Drawing.Size(126, 17) + Me.chkMovieNameDotFanartJPG.TabIndex = 2 + Me.chkMovieNameDotFanartJPG.Text = ".fanart.jpg" + Me.chkMovieNameDotFanartJPG.UseVisualStyleBackColor = True + ' + 'chkMovieNameFanartJPG + ' + Me.chkMovieNameFanartJPG.AutoSize = True + Me.chkMovieNameFanartJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkMovieNameFanartJPG.ForeColor = System.Drawing.SystemColors.ControlText + Me.chkMovieNameFanartJPG.Location = New System.Drawing.Point(6, 35) + Me.chkMovieNameFanartJPG.Name = "chkMovieNameFanartJPG" + Me.chkMovieNameFanartJPG.Size = New System.Drawing.Size(127, 17) + Me.chkMovieNameFanartJPG.TabIndex = 1 + Me.chkMovieNameFanartJPG.Text = "-fanart.jpg" + Me.chkMovieNameFanartJPG.UseVisualStyleBackColor = True + ' + 'chkFanartJPG + ' + Me.chkFanartJPG.AutoSize = True + Me.chkFanartJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkFanartJPG.Location = New System.Drawing.Point(6, 19) + Me.chkFanartJPG.Name = "chkFanartJPG" + Me.chkFanartJPG.Size = New System.Drawing.Size(77, 17) + Me.chkFanartJPG.TabIndex = 0 + Me.chkFanartJPG.Text = "fanart.jpg" + Me.chkFanartJPG.UseVisualStyleBackColor = True + ' + 'GroupBox5 + ' + Me.GroupBox5.Controls.Add(Me.chkMovieNameDashPosterJPG) + Me.GroupBox5.Controls.Add(Me.chkFolderJPG) + Me.GroupBox5.Controls.Add(Me.chkPosterJPG) + Me.GroupBox5.Controls.Add(Me.chkPosterTBN) + Me.GroupBox5.Controls.Add(Me.chkMovieNameJPG) + Me.GroupBox5.Controls.Add(Me.chkMovieJPG) + Me.GroupBox5.Controls.Add(Me.chkMovieNameTBN) + Me.GroupBox5.Controls.Add(Me.chkMovieTBN) + Me.GroupBox5.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.GroupBox5.Location = New System.Drawing.Point(6, 17) + Me.GroupBox5.Name = "GroupBox5" + Me.GroupBox5.Size = New System.Drawing.Size(221, 83) + Me.GroupBox5.TabIndex = 0 + Me.GroupBox5.TabStop = False + Me.GroupBox5.Text = "Posters" + ' + 'chkMovieNameDashPosterJPG + ' + Me.chkMovieNameDashPosterJPG.AutoSize = True + Me.chkMovieNameDashPosterJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkMovieNameDashPosterJPG.ForeColor = System.Drawing.SystemColors.ControlText + Me.chkMovieNameDashPosterJPG.Location = New System.Drawing.Point(85, 63) + Me.chkMovieNameDashPosterJPG.Name = "chkMovieNameDashPosterJPG" + Me.chkMovieNameDashPosterJPG.Size = New System.Drawing.Size(129, 17) + Me.chkMovieNameDashPosterJPG.TabIndex = 7 + Me.chkMovieNameDashPosterJPG.Text = "-poster.jpg" + Me.chkMovieNameDashPosterJPG.UseVisualStyleBackColor = True + ' + 'chkFolderJPG + ' + Me.chkFolderJPG.AutoSize = True + Me.chkFolderJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkFolderJPG.Location = New System.Drawing.Point(6, 63) + Me.chkFolderJPG.Name = "chkFolderJPG" + Me.chkFolderJPG.Size = New System.Drawing.Size(77, 17) + Me.chkFolderJPG.TabIndex = 3 + Me.chkFolderJPG.Text = "folder.jpg" + Me.chkFolderJPG.UseVisualStyleBackColor = True + ' + 'chkPosterJPG + ' + Me.chkPosterJPG.AutoSize = True + Me.chkPosterJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkPosterJPG.Location = New System.Drawing.Point(85, 47) + Me.chkPosterJPG.Name = "chkPosterJPG" + Me.chkPosterJPG.Size = New System.Drawing.Size(79, 17) + Me.chkPosterJPG.TabIndex = 6 + Me.chkPosterJPG.Text = "poster.jpg" + Me.chkPosterJPG.UseVisualStyleBackColor = True + ' + 'chkPosterTBN + ' + Me.chkPosterTBN.AutoSize = True + Me.chkPosterTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkPosterTBN.Location = New System.Drawing.Point(6, 47) + Me.chkPosterTBN.Name = "chkPosterTBN" + Me.chkPosterTBN.Size = New System.Drawing.Size(80, 17) + Me.chkPosterTBN.TabIndex = 2 + Me.chkPosterTBN.Text = "poster.tbn" + Me.chkPosterTBN.UseVisualStyleBackColor = True + ' + 'chkMovieNameJPG + ' + Me.chkMovieNameJPG.AutoSize = True + Me.chkMovieNameJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkMovieNameJPG.Location = New System.Drawing.Point(85, 31) + Me.chkMovieNameJPG.Name = "chkMovieNameJPG" + Me.chkMovieNameJPG.Size = New System.Drawing.Size(92, 17) + Me.chkMovieNameJPG.TabIndex = 5 + Me.chkMovieNameJPG.Text = ".jpg" + Me.chkMovieNameJPG.UseVisualStyleBackColor = True + ' + 'chkMovieJPG + ' + Me.chkMovieJPG.AutoSize = True + Me.chkMovieJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkMovieJPG.Location = New System.Drawing.Point(6, 31) + Me.chkMovieJPG.Name = "chkMovieJPG" + Me.chkMovieJPG.Size = New System.Drawing.Size(76, 17) + Me.chkMovieJPG.TabIndex = 1 + Me.chkMovieJPG.Text = "movie.jpg" + Me.chkMovieJPG.UseVisualStyleBackColor = True + ' + 'chkMovieNameTBN + ' + Me.chkMovieNameTBN.AutoSize = True + Me.chkMovieNameTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkMovieNameTBN.Location = New System.Drawing.Point(85, 15) + Me.chkMovieNameTBN.Name = "chkMovieNameTBN" + Me.chkMovieNameTBN.Size = New System.Drawing.Size(93, 17) + Me.chkMovieNameTBN.TabIndex = 4 + Me.chkMovieNameTBN.Text = ".tbn" + Me.chkMovieNameTBN.UseVisualStyleBackColor = True + ' + 'chkMovieTBN + ' + Me.chkMovieTBN.AutoSize = True + Me.chkMovieTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkMovieTBN.Location = New System.Drawing.Point(6, 15) + Me.chkMovieTBN.Name = "chkMovieTBN" + Me.chkMovieTBN.Size = New System.Drawing.Size(77, 17) + Me.chkMovieTBN.TabIndex = 0 + Me.chkMovieTBN.Text = "movie.tbn" + Me.chkMovieTBN.UseVisualStyleBackColor = True + ' + 'lvMovies + ' + Me.lvMovies.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.colID, Me.colName, Me.colPath, Me.colRecur, Me.colFolder, Me.colSingle}) + Me.lvMovies.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lvMovies.FullRowSelect = True + Me.lvMovies.HideSelection = False + Me.lvMovies.Location = New System.Drawing.Point(5, 6) + Me.lvMovies.Name = "lvMovies" + Me.lvMovies.Size = New System.Drawing.Size(497, 105) + Me.lvMovies.Sorting = System.Windows.Forms.SortOrder.Ascending + Me.lvMovies.TabIndex = 0 + Me.lvMovies.UseCompatibleStateImageBehavior = False + Me.lvMovies.View = System.Windows.Forms.View.Details + ' + 'colID + ' + Me.colID.Width = 0 + ' + 'colName + ' + Me.colName.Text = "Name" + Me.colName.Width = 75 + ' + 'colPath + ' + Me.colPath.Text = "Path" + Me.colPath.Width = 134 + ' + 'colRecur + ' + Me.colRecur.Text = "Recursive" + Me.colRecur.Width = 78 + ' + 'colFolder + ' + Me.colFolder.Text = "Use Folder Name" + Me.colFolder.Width = 116 + ' + 'colSingle + ' + Me.colSingle.Text = "Single Video" + Me.colSingle.Width = 90 + ' + 'btnMovieRem + ' + Me.btnMovieRem.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.btnMovieRem.Image = CType(resources.GetObject("btnMovieRem.Image"), System.Drawing.Image) + Me.btnMovieRem.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnMovieRem.Location = New System.Drawing.Point(506, 88) + Me.btnMovieRem.Name = "btnMovieRem" + Me.btnMovieRem.Size = New System.Drawing.Size(104, 23) + Me.btnMovieRem.TabIndex = 3 + Me.btnMovieRem.Text = "Remove" + Me.btnMovieRem.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnMovieRem.UseVisualStyleBackColor = True + ' + 'btnMovieAddFolder + ' + Me.btnMovieAddFolder.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.btnMovieAddFolder.Image = CType(resources.GetObject("btnMovieAddFolder.Image"), System.Drawing.Image) + Me.btnMovieAddFolder.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnMovieAddFolder.Location = New System.Drawing.Point(506, 6) + Me.btnMovieAddFolder.Name = "btnMovieAddFolder" + Me.btnMovieAddFolder.Size = New System.Drawing.Size(104, 23) + Me.btnMovieAddFolder.TabIndex = 1 + Me.btnMovieAddFolder.Text = "Add Source" + Me.btnMovieAddFolder.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnMovieAddFolder.UseVisualStyleBackColor = True + ' + 'GroupBox14 + ' + Me.GroupBox14.Controls.Add(Me.chkPosterOnly) + Me.GroupBox14.Controls.Add(Me.txtPosterWidth) + Me.GroupBox14.Controls.Add(Me.txtPosterHeight) + Me.GroupBox14.Controls.Add(Me.lblPosterQual) + Me.GroupBox14.Controls.Add(Me.tbPosterQual) + Me.GroupBox14.Controls.Add(Me.Label24) + Me.GroupBox14.Controls.Add(Me.Label11) + Me.GroupBox14.Controls.Add(Me.Label12) + Me.GroupBox14.Controls.Add(Me.chkResizePoster) + Me.GroupBox14.Controls.Add(Me.lblPosterSize) + Me.GroupBox14.Controls.Add(Me.cbPosterSize) + Me.GroupBox14.Controls.Add(Me.chkOverwritePoster) + Me.GroupBox14.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.GroupBox14.Location = New System.Drawing.Point(190, 3) + Me.GroupBox14.Name = "GroupBox14" + Me.GroupBox14.Size = New System.Drawing.Size(218, 170) + Me.GroupBox14.TabIndex = 2 + Me.GroupBox14.TabStop = False + Me.GroupBox14.Text = "Poster" + ' + 'chkPosterOnly + ' + Me.chkPosterOnly.AutoSize = True + Me.chkPosterOnly.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkPosterOnly.Location = New System.Drawing.Point(163, 38) + Me.chkPosterOnly.Name = "chkPosterOnly" + Me.chkPosterOnly.Size = New System.Drawing.Size(50, 17) + Me.chkPosterOnly.TabIndex = 2 + Me.chkPosterOnly.Text = "Only" + Me.chkPosterOnly.UseVisualStyleBackColor = True + ' + 'txtPosterWidth + ' + Me.txtPosterWidth.Enabled = False + Me.txtPosterWidth.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtPosterWidth.Location = New System.Drawing.Point(68, 100) + Me.txtPosterWidth.Name = "txtPosterWidth" + Me.txtPosterWidth.Size = New System.Drawing.Size(40, 22) + Me.txtPosterWidth.TabIndex = 6 + ' + 'txtPosterHeight + ' + Me.txtPosterHeight.Enabled = False + Me.txtPosterHeight.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtPosterHeight.Location = New System.Drawing.Point(175, 100) + Me.txtPosterHeight.Name = "txtPosterHeight" + Me.txtPosterHeight.Size = New System.Drawing.Size(40, 22) + Me.txtPosterHeight.TabIndex = 8 + ' + 'lblPosterQual + ' + Me.lblPosterQual.AutoSize = True + Me.lblPosterQual.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblPosterQual.Location = New System.Drawing.Point(183, 147) + Me.lblPosterQual.Name = "lblPosterQual" + Me.lblPosterQual.Size = New System.Drawing.Size(29, 17) + Me.lblPosterQual.TabIndex = 11 + Me.lblPosterQual.Text = "100" + ' + 'tbPosterQual + ' + Me.tbPosterQual.AutoSize = False + Me.tbPosterQual.LargeChange = 10 + Me.tbPosterQual.Location = New System.Drawing.Point(7, 139) + Me.tbPosterQual.Maximum = 100 + Me.tbPosterQual.Name = "tbPosterQual" + Me.tbPosterQual.Size = New System.Drawing.Size(179, 27) + Me.tbPosterQual.TabIndex = 10 + Me.tbPosterQual.TickFrequency = 10 + Me.tbPosterQual.Value = 100 + ' + 'Label24 + ' + Me.Label24.AutoSize = True + Me.Label24.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label24.Location = New System.Drawing.Point(3, 127) + Me.Label24.Name = "Label24" + Me.Label24.Size = New System.Drawing.Size(46, 13) + Me.Label24.TabIndex = 9 + Me.Label24.Text = "Quality:" + ' + 'Label11 + ' + Me.Label11.AutoSize = True + Me.Label11.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label11.Location = New System.Drawing.Point(3, 104) + Me.Label11.Name = "Label11" + Me.Label11.Size = New System.Drawing.Size(66, 13) + Me.Label11.TabIndex = 5 + Me.Label11.Text = "Max Width:" + ' + 'Label12 + ' + Me.Label12.AutoSize = True + Me.Label12.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label12.Location = New System.Drawing.Point(106, 104) + Me.Label12.Name = "Label12" + Me.Label12.Size = New System.Drawing.Size(69, 13) + Me.Label12.TabIndex = 7 + Me.Label12.Text = "Max Height:" + ' + 'chkResizePoster + ' + Me.chkResizePoster.AutoSize = True + Me.chkResizePoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkResizePoster.Location = New System.Drawing.Point(6, 82) + Me.chkResizePoster.Name = "chkResizePoster" + Me.chkResizePoster.Size = New System.Drawing.Size(133, 17) + Me.chkResizePoster.TabIndex = 4 + Me.chkResizePoster.Text = "Automatically Resize:" + Me.chkResizePoster.UseVisualStyleBackColor = True + ' + 'lblPosterSize + ' + Me.lblPosterSize.AutoSize = True + Me.lblPosterSize.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblPosterSize.Location = New System.Drawing.Point(4, 18) + Me.lblPosterSize.Name = "lblPosterSize" + Me.lblPosterSize.Size = New System.Drawing.Size(80, 13) + Me.lblPosterSize.TabIndex = 0 + Me.lblPosterSize.Text = "Preferred Size:" + ' + 'cbPosterSize + ' + Me.cbPosterSize.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cbPosterSize.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.cbPosterSize.FormattingEnabled = True + Me.cbPosterSize.Location = New System.Drawing.Point(6, 34) + Me.cbPosterSize.Name = "cbPosterSize" + Me.cbPosterSize.Size = New System.Drawing.Size(148, 21) + Me.cbPosterSize.TabIndex = 1 + ' + 'chkOverwritePoster + ' + Me.chkOverwritePoster.AutoSize = True + Me.chkOverwritePoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkOverwritePoster.Location = New System.Drawing.Point(6, 62) + Me.chkOverwritePoster.Name = "chkOverwritePoster" + Me.chkOverwritePoster.Size = New System.Drawing.Size(119, 17) + Me.chkOverwritePoster.TabIndex = 3 + Me.chkOverwritePoster.Text = "Overwrite Existing" + Me.chkOverwritePoster.UseVisualStyleBackColor = True + ' + 'GroupBox13 + ' + Me.GroupBox13.Controls.Add(Me.txtFanartWidth) + Me.GroupBox13.Controls.Add(Me.txtFanartHeight) + Me.GroupBox13.Controls.Add(Me.chkFanartOnly) + Me.GroupBox13.Controls.Add(Me.lblFanartQual) + Me.GroupBox13.Controls.Add(Me.tbFanartQual) + Me.GroupBox13.Controls.Add(Me.Label26) + Me.GroupBox13.Controls.Add(Me.Label9) + Me.GroupBox13.Controls.Add(Me.Label10) + Me.GroupBox13.Controls.Add(Me.chkResizeFanart) + Me.GroupBox13.Controls.Add(Me.cbFanartSize) + Me.GroupBox13.Controls.Add(Me.lblFanartSize) + Me.GroupBox13.Controls.Add(Me.chkOverwriteFanart) + Me.GroupBox13.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.GroupBox13.Location = New System.Drawing.Point(190, 185) + Me.GroupBox13.Name = "GroupBox13" + Me.GroupBox13.Size = New System.Drawing.Size(218, 176) + Me.GroupBox13.TabIndex = 3 + Me.GroupBox13.TabStop = False + Me.GroupBox13.Text = "Fanart" + ' + 'txtFanartWidth + ' + Me.txtFanartWidth.Enabled = False + Me.txtFanartWidth.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtFanartWidth.Location = New System.Drawing.Point(69, 100) + Me.txtFanartWidth.Name = "txtFanartWidth" + Me.txtFanartWidth.Size = New System.Drawing.Size(40, 22) + Me.txtFanartWidth.TabIndex = 6 + ' + 'txtFanartHeight + ' + Me.txtFanartHeight.Enabled = False + Me.txtFanartHeight.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtFanartHeight.Location = New System.Drawing.Point(175, 100) + Me.txtFanartHeight.Name = "txtFanartHeight" + Me.txtFanartHeight.Size = New System.Drawing.Size(40, 22) + Me.txtFanartHeight.TabIndex = 8 + ' + 'chkFanartOnly + ' + Me.chkFanartOnly.AutoSize = True + Me.chkFanartOnly.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkFanartOnly.Location = New System.Drawing.Point(163, 38) + Me.chkFanartOnly.Name = "chkFanartOnly" + Me.chkFanartOnly.Size = New System.Drawing.Size(50, 17) + Me.chkFanartOnly.TabIndex = 2 + Me.chkFanartOnly.Text = "Only" + Me.chkFanartOnly.UseVisualStyleBackColor = True + ' + 'lblFanartQual + ' + Me.lblFanartQual.AutoSize = True + Me.lblFanartQual.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblFanartQual.Location = New System.Drawing.Point(183, 151) + Me.lblFanartQual.Name = "lblFanartQual" + Me.lblFanartQual.Size = New System.Drawing.Size(29, 17) + Me.lblFanartQual.TabIndex = 11 + Me.lblFanartQual.Text = "100" + ' + 'tbFanartQual + ' + Me.tbFanartQual.AutoSize = False + Me.tbFanartQual.LargeChange = 10 + Me.tbFanartQual.Location = New System.Drawing.Point(6, 143) + Me.tbFanartQual.Maximum = 100 + Me.tbFanartQual.Name = "tbFanartQual" + Me.tbFanartQual.Size = New System.Drawing.Size(180, 27) + Me.tbFanartQual.TabIndex = 10 + Me.tbFanartQual.TickFrequency = 10 + Me.tbFanartQual.Value = 100 + ' + 'Label26 + ' + Me.Label26.AutoSize = True + Me.Label26.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label26.Location = New System.Drawing.Point(2, 131) + Me.Label26.Name = "Label26" + Me.Label26.Size = New System.Drawing.Size(46, 13) + Me.Label26.TabIndex = 9 + Me.Label26.Text = "Quality:" + ' + 'Label9 + ' + Me.Label9.AutoSize = True + Me.Label9.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label9.Location = New System.Drawing.Point(3, 104) + Me.Label9.Name = "Label9" + Me.Label9.Size = New System.Drawing.Size(66, 13) + Me.Label9.TabIndex = 5 + Me.Label9.Text = "Max Width:" + ' + 'Label10 + ' + Me.Label10.AutoSize = True + Me.Label10.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label10.Location = New System.Drawing.Point(107, 104) + Me.Label10.Name = "Label10" + Me.Label10.Size = New System.Drawing.Size(69, 13) + Me.Label10.TabIndex = 7 + Me.Label10.Text = "Max Height:" + ' + 'chkResizeFanart + ' + Me.chkResizeFanart.AutoSize = True + Me.chkResizeFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkResizeFanart.Location = New System.Drawing.Point(6, 82) + Me.chkResizeFanart.Name = "chkResizeFanart" + Me.chkResizeFanart.Size = New System.Drawing.Size(133, 17) + Me.chkResizeFanart.TabIndex = 4 + Me.chkResizeFanart.Text = "Automatically Resize:" + Me.chkResizeFanart.UseVisualStyleBackColor = True + ' + 'cbFanartSize + ' + Me.cbFanartSize.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cbFanartSize.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.cbFanartSize.FormattingEnabled = True + Me.cbFanartSize.Location = New System.Drawing.Point(6, 34) + Me.cbFanartSize.Name = "cbFanartSize" + Me.cbFanartSize.Size = New System.Drawing.Size(148, 21) + Me.cbFanartSize.TabIndex = 1 + ' + 'lblFanartSize + ' + Me.lblFanartSize.AutoSize = True + Me.lblFanartSize.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblFanartSize.Location = New System.Drawing.Point(4, 18) + Me.lblFanartSize.Name = "lblFanartSize" + Me.lblFanartSize.Size = New System.Drawing.Size(80, 13) + Me.lblFanartSize.TabIndex = 0 + Me.lblFanartSize.Text = "Preferred Size:" + ' + 'chkOverwriteFanart + ' + Me.chkOverwriteFanart.AutoSize = True + Me.chkOverwriteFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkOverwriteFanart.Location = New System.Drawing.Point(6, 62) + Me.chkOverwriteFanart.Name = "chkOverwriteFanart" + Me.chkOverwriteFanart.Size = New System.Drawing.Size(119, 17) + Me.chkOverwriteFanart.TabIndex = 3 + Me.chkOverwriteFanart.Text = "Overwrite Existing" + Me.chkOverwriteFanart.UseVisualStyleBackColor = True + ' + 'GroupBox9 + ' + Me.GroupBox9.Controls.Add(Me.chkScraperActorThumbs) + Me.GroupBox9.Controls.Add(Me.chkNoSaveImagesToNfo) + Me.GroupBox9.Controls.Add(Me.chkSingleScrapeImages) + Me.GroupBox9.Controls.Add(Me.GroupBox17) + Me.GroupBox9.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.GroupBox9.Location = New System.Drawing.Point(3, 3) + Me.GroupBox9.Name = "GroupBox9" + Me.GroupBox9.Size = New System.Drawing.Size(184, 168) + Me.GroupBox9.TabIndex = 0 + Me.GroupBox9.TabStop = False + Me.GroupBox9.Text = "Images" + ' + 'chkScraperActorThumbs + ' + Me.chkScraperActorThumbs.CheckAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkScraperActorThumbs.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkScraperActorThumbs.Location = New System.Drawing.Point(6, 35) + Me.chkScraperActorThumbs.Name = "chkScraperActorThumbs" + Me.chkScraperActorThumbs.Size = New System.Drawing.Size(173, 19) + Me.chkScraperActorThumbs.TabIndex = 1 + Me.chkScraperActorThumbs.Text = "Enable Actor Thumbs" + Me.chkScraperActorThumbs.TextAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkScraperActorThumbs.UseVisualStyleBackColor = True + ' + 'chkNoSaveImagesToNfo + ' + Me.chkNoSaveImagesToNfo.CheckAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkNoSaveImagesToNfo.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkNoSaveImagesToNfo.Location = New System.Drawing.Point(6, 53) + Me.chkNoSaveImagesToNfo.Name = "chkNoSaveImagesToNfo" + Me.chkNoSaveImagesToNfo.Size = New System.Drawing.Size(172, 34) + Me.chkNoSaveImagesToNfo.TabIndex = 2 + Me.chkNoSaveImagesToNfo.Text = "Do Not Save Image URLs to Nfo" + Me.chkNoSaveImagesToNfo.TextAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkNoSaveImagesToNfo.UseVisualStyleBackColor = True + ' + 'chkSingleScrapeImages + ' + Me.chkSingleScrapeImages.CheckAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkSingleScrapeImages.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkSingleScrapeImages.Location = New System.Drawing.Point(6, 16) + Me.chkSingleScrapeImages.Name = "chkSingleScrapeImages" + Me.chkSingleScrapeImages.Size = New System.Drawing.Size(173, 19) + Me.chkSingleScrapeImages.TabIndex = 0 + Me.chkSingleScrapeImages.Text = "Get on Single Scrape" + Me.chkSingleScrapeImages.TextAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkSingleScrapeImages.UseVisualStyleBackColor = True + ' + 'GroupBox17 + ' + Me.GroupBox17.Controls.Add(Me.chkUseImgCacheUpdaters) + Me.GroupBox17.Controls.Add(Me.chkPersistImgCache) + Me.GroupBox17.Controls.Add(Me.chkUseImgCache) + Me.GroupBox17.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.GroupBox17.Location = New System.Drawing.Point(4, 84) + Me.GroupBox17.Name = "GroupBox17" + Me.GroupBox17.Size = New System.Drawing.Size(176, 79) + Me.GroupBox17.TabIndex = 3 + Me.GroupBox17.TabStop = False + Me.GroupBox17.Text = "Caching" + ' + 'chkUseImgCacheUpdaters + ' + Me.chkUseImgCacheUpdaters.CheckAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkUseImgCacheUpdaters.Enabled = False + Me.chkUseImgCacheUpdaters.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkUseImgCacheUpdaters.Location = New System.Drawing.Point(20, 35) + Me.chkUseImgCacheUpdaters.Name = "chkUseImgCacheUpdaters" + Me.chkUseImgCacheUpdaters.Size = New System.Drawing.Size(155, 18) + Me.chkUseImgCacheUpdaters.TabIndex = 1 + Me.chkUseImgCacheUpdaters.Text = "Use Cache for Scrapers" + Me.chkUseImgCacheUpdaters.TextAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkUseImgCacheUpdaters.UseVisualStyleBackColor = True + ' + 'chkPersistImgCache + ' + Me.chkPersistImgCache.AutoSize = True + Me.chkPersistImgCache.Enabled = False + Me.chkPersistImgCache.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkPersistImgCache.Location = New System.Drawing.Point(20, 58) + Me.chkPersistImgCache.Name = "chkPersistImgCache" + Me.chkPersistImgCache.Size = New System.Drawing.Size(144, 17) + Me.chkPersistImgCache.TabIndex = 2 + Me.chkPersistImgCache.Text = "Persistent Image Cache" + Me.chkPersistImgCache.UseVisualStyleBackColor = True + ' + 'chkUseImgCache + ' + Me.chkUseImgCache.AutoSize = True + Me.chkUseImgCache.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkUseImgCache.Location = New System.Drawing.Point(7, 16) + Me.chkUseImgCache.Name = "chkUseImgCache" + Me.chkUseImgCache.Size = New System.Drawing.Size(113, 17) + Me.chkUseImgCache.TabIndex = 0 + Me.chkUseImgCache.Text = "Use Image Cache" + Me.chkUseImgCache.UseVisualStyleBackColor = True + ' + 'chkUseETasFA + ' + Me.chkUseETasFA.CheckAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkUseETasFA.Enabled = False + Me.chkUseETasFA.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkUseETasFA.Location = New System.Drawing.Point(25, 84) + Me.chkUseETasFA.Name = "chkUseETasFA" + Me.chkUseETasFA.Size = New System.Drawing.Size(171, 30) + Me.chkUseETasFA.TabIndex = 4 + Me.chkUseETasFA.Text = "Use if no Fanart Found" + Me.chkUseETasFA.TextAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkUseETasFA.UseVisualStyleBackColor = True + ' + 'chkNoSpoilers + ' + Me.chkNoSpoilers.AutoSize = True + Me.chkNoSpoilers.Enabled = False + Me.chkNoSpoilers.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkNoSpoilers.Location = New System.Drawing.Point(25, 67) + Me.chkNoSpoilers.Name = "chkNoSpoilers" + Me.chkNoSpoilers.Size = New System.Drawing.Size(85, 17) + Me.chkNoSpoilers.TabIndex = 3 + Me.chkNoSpoilers.Text = "No Spoilers" + Me.chkNoSpoilers.UseVisualStyleBackColor = True + ' + 'Label15 + ' + Me.Label15.AutoSize = True + Me.Label15.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label15.Location = New System.Drawing.Point(22, 50) + Me.Label15.Name = "Label15" + Me.Label15.Size = New System.Drawing.Size(102, 13) + Me.Label15.TabIndex = 1 + Me.Label15.Text = "Number To Create:" + ' + 'txtAutoThumbs + ' + Me.txtAutoThumbs.Enabled = False + Me.txtAutoThumbs.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtAutoThumbs.Location = New System.Drawing.Point(124, 47) + Me.txtAutoThumbs.Name = "txtAutoThumbs" + Me.txtAutoThumbs.Size = New System.Drawing.Size(53, 22) + Me.txtAutoThumbs.TabIndex = 2 + ' + 'chkAutoThumbs + ' + Me.chkAutoThumbs.CheckAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkAutoThumbs.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkAutoThumbs.Location = New System.Drawing.Point(6, 17) + Me.chkAutoThumbs.Name = "chkAutoThumbs" + Me.chkAutoThumbs.Size = New System.Drawing.Size(188, 30) + Me.chkAutoThumbs.TabIndex = 0 + Me.chkAutoThumbs.Text = "Extract During Scrapers" + Me.chkAutoThumbs.TextAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkAutoThumbs.UseVisualStyleBackColor = True + ' + 'btnOK + ' + Me.btnOK.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.btnOK.Location = New System.Drawing.Point(813, 601) + Me.btnOK.Name = "btnOK" + Me.btnOK.Size = New System.Drawing.Size(75, 23) + Me.btnOK.TabIndex = 0 + Me.btnOK.Text = "OK" + Me.btnOK.UseVisualStyleBackColor = True + ' + 'btnApply + ' + Me.btnApply.Enabled = False + Me.btnApply.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.btnApply.Location = New System.Drawing.Point(650, 601) + Me.btnApply.Name = "btnApply" + Me.btnApply.Size = New System.Drawing.Size(75, 23) + Me.btnApply.TabIndex = 2 + Me.btnApply.Text = "Apply" + Me.btnApply.UseVisualStyleBackColor = True + ' + 'btnCancel + ' + Me.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.btnCancel.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.btnCancel.Location = New System.Drawing.Point(732, 601) + Me.btnCancel.Name = "btnCancel" + Me.btnCancel.Size = New System.Drawing.Size(75, 23) + Me.btnCancel.TabIndex = 1 + Me.btnCancel.Text = "Cancel" + Me.btnCancel.UseVisualStyleBackColor = True + ' + 'pnlTop + ' + Me.pnlTop.BackColor = System.Drawing.Color.SteelBlue + Me.pnlTop.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.pnlTop.Controls.Add(Me.Label2) + Me.pnlTop.Controls.Add(Me.Label4) + Me.pnlTop.Controls.Add(Me.PictureBox1) + Me.pnlTop.Dock = System.Windows.Forms.DockStyle.Top + Me.pnlTop.Location = New System.Drawing.Point(0, 0) + Me.pnlTop.Name = "pnlTop" + Me.pnlTop.Size = New System.Drawing.Size(892, 64) + Me.pnlTop.TabIndex = 3 + ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.BackColor = System.Drawing.Color.Transparent + Me.Label2.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Label2.ForeColor = System.Drawing.Color.White + Me.Label2.Location = New System.Drawing.Point(61, 38) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(245, 13) + Me.Label2.TabIndex = 1 + Me.Label2.Text = "Configure Ember's appearance and operation." + ' + 'Label4 + ' + Me.Label4.AutoSize = True + Me.Label4.BackColor = System.Drawing.Color.Transparent + Me.Label4.Font = New System.Drawing.Font("Segoe UI", 18.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Label4.ForeColor = System.Drawing.Color.White + Me.Label4.Location = New System.Drawing.Point(58, 3) + Me.Label4.Name = "Label4" + Me.Label4.Size = New System.Drawing.Size(107, 32) + Me.Label4.TabIndex = 0 + Me.Label4.Text = "Settings" + ' + 'PictureBox1 + ' + Me.PictureBox1.BackColor = System.Drawing.Color.Transparent + Me.PictureBox1.Image = CType(resources.GetObject("PictureBox1.Image"), System.Drawing.Image) + Me.PictureBox1.Location = New System.Drawing.Point(7, 8) + Me.PictureBox1.Name = "PictureBox1" + Me.PictureBox1.Size = New System.Drawing.Size(48, 48) + Me.PictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize + Me.PictureBox1.TabIndex = 0 + Me.PictureBox1.TabStop = False + ' + 'ilSettings + ' + Me.ilSettings.ImageStream = CType(resources.GetObject("ilSettings.ImageStream"), System.Windows.Forms.ImageListStreamer) + Me.ilSettings.TransparentColor = System.Drawing.Color.Transparent + Me.ilSettings.Images.SetKeyName(0, "process.png") + Me.ilSettings.Images.SetKeyName(1, "comments.png") + Me.ilSettings.Images.SetKeyName(2, "film.png") + Me.ilSettings.Images.SetKeyName(3, "copy_paste.png") + Me.ilSettings.Images.SetKeyName(4, "attachment.png") + Me.ilSettings.Images.SetKeyName(5, "folder_full.png") + Me.ilSettings.Images.SetKeyName(6, "image.png") + Me.ilSettings.Images.SetKeyName(7, "television.ico") + Me.ilSettings.Images.SetKeyName(8, "favorite_film.png") + Me.ilSettings.Images.SetKeyName(9, "settingscheck.png") + Me.ilSettings.Images.SetKeyName(10, "settingsx.png") + ' + 'tvSettings + ' + Me.tvSettings.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.tvSettings.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.tvSettings.FullRowSelect = True + Me.tvSettings.HideSelection = False + Me.tvSettings.ImageIndex = 0 + Me.tvSettings.ImageList = Me.ilSettings + Me.tvSettings.Location = New System.Drawing.Point(5, 147) + Me.tvSettings.Name = "tvSettings" + Me.tvSettings.SelectedImageIndex = 0 + Me.tvSettings.ShowLines = False + Me.tvSettings.ShowPlusMinus = False + Me.tvSettings.Size = New System.Drawing.Size(242, 402) + Me.tvSettings.TabIndex = 7 + ' + 'pnlGeneral + ' + Me.pnlGeneral.BackColor = System.Drawing.Color.White + Me.pnlGeneral.Controls.Add(Me.gbInterface) + Me.pnlGeneral.Controls.Add(Me.GroupBox4) + Me.pnlGeneral.Location = New System.Drawing.Point(10, 38) + Me.pnlGeneral.Name = "pnlGeneral" + Me.pnlGeneral.Size = New System.Drawing.Size(617, 400) + Me.pnlGeneral.TabIndex = 10 + Me.pnlGeneral.Visible = False + ' + 'gbInterface + ' + Me.gbInterface.Controls.Add(Me.GroupBox29) + Me.gbInterface.Controls.Add(Me.Label32) + Me.gbInterface.Controls.Add(Me.cbIntLang) + Me.gbInterface.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.gbInterface.Location = New System.Drawing.Point(7, 3) + Me.gbInterface.Name = "gbInterface" + Me.gbInterface.Size = New System.Drawing.Size(196, 344) + Me.gbInterface.TabIndex = 0 + Me.gbInterface.TabStop = False + Me.gbInterface.Text = "Interface" + ' + 'pnlXBMCCom + ' + Me.pnlXBMCCom.BackColor = System.Drawing.Color.White + Me.pnlXBMCCom.Controls.Add(Me.gbProxy) + Me.pnlXBMCCom.Location = New System.Drawing.Point(766, 722) + Me.pnlXBMCCom.Name = "pnlXBMCCom" + Me.pnlXBMCCom.Size = New System.Drawing.Size(617, 400) + Me.pnlXBMCCom.TabIndex = 18 + Me.pnlXBMCCom.Visible = False + ' + 'gbProxy + ' + Me.gbProxy.Controls.Add(Me.gbCreds) + Me.gbProxy.Controls.Add(Me.lblProxyPort) + Me.gbProxy.Controls.Add(Me.lblProxyURI) + Me.gbProxy.Controls.Add(Me.txtProxyPort) + Me.gbProxy.Controls.Add(Me.txtProxyURI) + Me.gbProxy.Controls.Add(Me.chkEnableProxy) + Me.gbProxy.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.gbProxy.Location = New System.Drawing.Point(3, 6) + Me.gbProxy.Name = "gbProxy" + Me.gbProxy.Size = New System.Drawing.Size(290, 230) + Me.gbProxy.TabIndex = 0 + Me.gbProxy.TabStop = False + Me.gbProxy.Text = "Proxy" + ' + 'gbCreds + ' + Me.gbCreds.Controls.Add(Me.txtProxyDomain) + Me.gbCreds.Controls.Add(Me.lblProxyDomain) + Me.gbCreds.Controls.Add(Me.txtProxyPassword) + Me.gbCreds.Controls.Add(Me.txtProxyUsername) + Me.gbCreds.Controls.Add(Me.lblProxyUN) + Me.gbCreds.Controls.Add(Me.lblProxyPW) + Me.gbCreds.Controls.Add(Me.chkEnableCredentials) + Me.gbCreds.Enabled = False + Me.gbCreds.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.gbCreds.Location = New System.Drawing.Point(5, 115) + Me.gbCreds.Name = "gbCreds" + Me.gbCreds.Size = New System.Drawing.Size(279, 103) + Me.gbCreds.TabIndex = 5 + Me.gbCreds.TabStop = False + Me.gbCreds.Text = "Credentials" + ' + 'txtProxyDomain + ' + Me.txtProxyDomain.Enabled = False + Me.txtProxyDomain.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtProxyDomain.Location = New System.Drawing.Point(64, 69) + Me.txtProxyDomain.Name = "txtProxyDomain" + Me.txtProxyDomain.Size = New System.Drawing.Size(209, 22) + Me.txtProxyDomain.TabIndex = 6 + ' + 'lblProxyDomain + ' + Me.lblProxyDomain.AutoSize = True + Me.lblProxyDomain.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblProxyDomain.Location = New System.Drawing.Point(14, 72) + Me.lblProxyDomain.Name = "lblProxyDomain" + Me.lblProxyDomain.Size = New System.Drawing.Size(50, 13) + Me.lblProxyDomain.TabIndex = 5 + Me.lblProxyDomain.Text = "Domain:" + ' + 'txtProxyPassword + ' + Me.txtProxyPassword.Enabled = False + Me.txtProxyPassword.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtProxyPassword.Location = New System.Drawing.Point(201, 39) + Me.txtProxyPassword.Name = "txtProxyPassword" + Me.txtProxyPassword.Size = New System.Drawing.Size(72, 22) + Me.txtProxyPassword.TabIndex = 4 + Me.txtProxyPassword.UseSystemPasswordChar = True + ' + 'txtProxyUsername + ' + Me.txtProxyUsername.Enabled = False + Me.txtProxyUsername.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtProxyUsername.Location = New System.Drawing.Point(64, 39) + Me.txtProxyUsername.Name = "txtProxyUsername" + Me.txtProxyUsername.Size = New System.Drawing.Size(72, 22) + Me.txtProxyUsername.TabIndex = 2 + ' + 'lblProxyUN + ' + Me.lblProxyUN.AutoSize = True + Me.lblProxyUN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblProxyUN.Location = New System.Drawing.Point(3, 42) + Me.lblProxyUN.Name = "lblProxyUN" + Me.lblProxyUN.Size = New System.Drawing.Size(61, 13) + Me.lblProxyUN.TabIndex = 1 + Me.lblProxyUN.Text = "Username:" + ' + 'lblProxyPW + ' + Me.lblProxyPW.AutoSize = True + Me.lblProxyPW.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblProxyPW.Location = New System.Drawing.Point(143, 42) + Me.lblProxyPW.Name = "lblProxyPW" + Me.lblProxyPW.Size = New System.Drawing.Size(59, 13) + Me.lblProxyPW.TabIndex = 3 + Me.lblProxyPW.Text = "Password:" + ' + 'chkEnableCredentials + ' + Me.chkEnableCredentials.AutoSize = True + Me.chkEnableCredentials.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkEnableCredentials.Location = New System.Drawing.Point(8, 17) + Me.chkEnableCredentials.Name = "chkEnableCredentials" + Me.chkEnableCredentials.Size = New System.Drawing.Size(122, 17) + Me.chkEnableCredentials.TabIndex = 0 + Me.chkEnableCredentials.Text = "Enable Credentials" + Me.chkEnableCredentials.UseVisualStyleBackColor = True + ' + 'lblProxyPort + ' + Me.lblProxyPort.AutoSize = True + Me.lblProxyPort.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblProxyPort.Location = New System.Drawing.Point(9, 88) + Me.lblProxyPort.Name = "lblProxyPort" + Me.lblProxyPort.Size = New System.Drawing.Size(61, 13) + Me.lblProxyPort.TabIndex = 3 + Me.lblProxyPort.Text = "Proxy Port:" + ' + 'lblProxyURI + ' + Me.lblProxyURI.AutoSize = True + Me.lblProxyURI.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblProxyURI.Location = New System.Drawing.Point(9, 39) + Me.lblProxyURI.Name = "lblProxyURI" + Me.lblProxyURI.Size = New System.Drawing.Size(58, 13) + Me.lblProxyURI.TabIndex = 1 + Me.lblProxyURI.Text = "Proxy URI:" + ' + 'txtProxyPort + ' + Me.txtProxyPort.Enabled = False + Me.txtProxyPort.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtProxyPort.Location = New System.Drawing.Point(72, 84) + Me.txtProxyPort.Name = "txtProxyPort" + Me.txtProxyPort.Size = New System.Drawing.Size(51, 22) + Me.txtProxyPort.TabIndex = 4 + ' + 'txtProxyURI + ' + Me.txtProxyURI.Enabled = False + Me.txtProxyURI.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtProxyURI.Location = New System.Drawing.Point(11, 54) + Me.txtProxyURI.Name = "txtProxyURI" + Me.txtProxyURI.Size = New System.Drawing.Size(267, 22) + Me.txtProxyURI.TabIndex = 2 + ' + 'chkEnableProxy + ' + Me.chkEnableProxy.AutoSize = True + Me.chkEnableProxy.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkEnableProxy.Location = New System.Drawing.Point(11, 17) + Me.chkEnableProxy.Name = "chkEnableProxy" + Me.chkEnableProxy.Size = New System.Drawing.Size(91, 17) + Me.chkEnableProxy.TabIndex = 0 + Me.chkEnableProxy.Text = "Enable Proxy" + Me.chkEnableProxy.UseVisualStyleBackColor = True + ' + 'pnlMovies + ' + Me.pnlMovies.BackColor = System.Drawing.Color.White + Me.pnlMovies.Controls.Add(Me.gbGenreFilter) + Me.pnlMovies.Controls.Add(Me.gbFilters) + Me.pnlMovies.Controls.Add(Me.GroupBox27) + Me.pnlMovies.Controls.Add(Me.GroupBox12) + Me.pnlMovies.Controls.Add(Me.GroupBox2) + Me.pnlMovies.Location = New System.Drawing.Point(850, 650) + Me.pnlMovies.Name = "pnlMovies" + Me.pnlMovies.Size = New System.Drawing.Size(617, 400) + Me.pnlMovies.TabIndex = 15 + Me.pnlMovies.Visible = False + ' + 'gbGenreFilter + ' + Me.gbGenreFilter.Controls.Add(Me.lbGenre) + Me.gbGenreFilter.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.gbGenreFilter.Location = New System.Drawing.Point(428, 209) + Me.gbGenreFilter.Name = "gbGenreFilter" + Me.gbGenreFilter.Size = New System.Drawing.Size(183, 151) + Me.gbGenreFilter.TabIndex = 7 + Me.gbGenreFilter.TabStop = False + Me.gbGenreFilter.Text = "Genre Language Filter" + ' + 'gbFilters + ' + Me.gbFilters.Controls.Add(Me.btnResetMovieFilters) + Me.gbFilters.Controls.Add(Me.btnDown) + Me.gbFilters.Controls.Add(Me.btnUp) + Me.gbFilters.Controls.Add(Me.chkProperCase) + Me.gbFilters.Controls.Add(Me.btnRemoveFilter) + Me.gbFilters.Controls.Add(Me.btnAddFilter) + Me.gbFilters.Controls.Add(Me.txtFilter) + Me.gbFilters.Controls.Add(Me.lstFilters) + Me.gbFilters.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.gbFilters.Location = New System.Drawing.Point(229, 7) + Me.gbFilters.Name = "gbFilters" + Me.gbFilters.Size = New System.Drawing.Size(382, 200) + Me.gbFilters.TabIndex = 6 + Me.gbFilters.TabStop = False + Me.gbFilters.Text = "Folder/File Name Filters" + ' + 'btnResetMovieFilters + ' + Me.btnResetMovieFilters.Image = CType(resources.GetObject("btnResetMovieFilters.Image"), System.Drawing.Image) + Me.btnResetMovieFilters.Location = New System.Drawing.Point(355, 11) + Me.btnResetMovieFilters.Name = "btnResetMovieFilters" + Me.btnResetMovieFilters.Size = New System.Drawing.Size(23, 23) + Me.btnResetMovieFilters.TabIndex = 8 + Me.btnResetMovieFilters.UseVisualStyleBackColor = True + ' + 'btnDown + ' + Me.btnDown.Image = CType(resources.GetObject("btnDown.Image"), System.Drawing.Image) + Me.btnDown.Location = New System.Drawing.Point(313, 172) + Me.btnDown.Name = "btnDown" + Me.btnDown.Size = New System.Drawing.Size(23, 23) + Me.btnDown.TabIndex = 5 + Me.btnDown.UseVisualStyleBackColor = True + ' + 'btnUp + ' + Me.btnUp.Image = CType(resources.GetObject("btnUp.Image"), System.Drawing.Image) + Me.btnUp.Location = New System.Drawing.Point(289, 172) + Me.btnUp.Name = "btnUp" + Me.btnUp.Size = New System.Drawing.Size(23, 23) + Me.btnUp.TabIndex = 4 + Me.btnUp.UseVisualStyleBackColor = True + ' + 'chkProperCase + ' + Me.chkProperCase.AutoSize = True + Me.chkProperCase.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkProperCase.Location = New System.Drawing.Point(6, 16) + Me.chkProperCase.Name = "chkProperCase" + Me.chkProperCase.Size = New System.Drawing.Size(181, 17) + Me.chkProperCase.TabIndex = 0 + Me.chkProperCase.Text = "Convert Names to Proper Case" + Me.chkProperCase.UseVisualStyleBackColor = True + ' + 'btnRemoveFilter + ' + Me.btnRemoveFilter.Image = CType(resources.GetObject("btnRemoveFilter.Image"), System.Drawing.Image) + Me.btnRemoveFilter.Location = New System.Drawing.Point(354, 172) + Me.btnRemoveFilter.Name = "btnRemoveFilter" + Me.btnRemoveFilter.Size = New System.Drawing.Size(23, 23) + Me.btnRemoveFilter.TabIndex = 6 + Me.btnRemoveFilter.UseVisualStyleBackColor = True + ' + 'btnAddFilter + ' + Me.btnAddFilter.Image = CType(resources.GetObject("btnAddFilter.Image"), System.Drawing.Image) + Me.btnAddFilter.Location = New System.Drawing.Point(247, 172) + Me.btnAddFilter.Name = "btnAddFilter" + Me.btnAddFilter.Size = New System.Drawing.Size(23, 23) + Me.btnAddFilter.TabIndex = 3 + Me.btnAddFilter.UseVisualStyleBackColor = True + ' + 'txtFilter + ' + Me.txtFilter.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtFilter.Location = New System.Drawing.Point(6, 173) + Me.txtFilter.Name = "txtFilter" + Me.txtFilter.Size = New System.Drawing.Size(239, 22) + Me.txtFilter.TabIndex = 2 + ' + 'lstFilters + ' + Me.lstFilters.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lstFilters.FormattingEnabled = True + Me.lstFilters.Location = New System.Drawing.Point(6, 36) + Me.lstFilters.Name = "lstFilters" + Me.lstFilters.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended + Me.lstFilters.Size = New System.Drawing.Size(371, 121) + Me.lstFilters.TabIndex = 1 + ' + 'GroupBox27 + ' + Me.GroupBox27.Controls.Add(Me.chkMissingExtra) + Me.GroupBox27.Controls.Add(Me.chkMissingSubs) + Me.GroupBox27.Controls.Add(Me.chkMissingTrailer) + Me.GroupBox27.Controls.Add(Me.chkMissingNFO) + Me.GroupBox27.Controls.Add(Me.chkMissingFanart) + Me.GroupBox27.Controls.Add(Me.chkMissingPoster) + Me.GroupBox27.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.GroupBox27.Location = New System.Drawing.Point(229, 209) + Me.GroupBox27.Name = "GroupBox27" + Me.GroupBox27.Size = New System.Drawing.Size(185, 123) + Me.GroupBox27.TabIndex = 5 + Me.GroupBox27.TabStop = False + Me.GroupBox27.Text = "Missing Items Filter" + ' + 'chkMissingExtra + ' + Me.chkMissingExtra.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkMissingExtra.Location = New System.Drawing.Point(8, 98) + Me.chkMissingExtra.Name = "chkMissingExtra" + Me.chkMissingExtra.Size = New System.Drawing.Size(174, 17) + Me.chkMissingExtra.TabIndex = 11 + Me.chkMissingExtra.Text = "Check for Extrathumbs" + Me.chkMissingExtra.UseVisualStyleBackColor = True + ' + 'chkMissingSubs + ' + Me.chkMissingSubs.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkMissingSubs.Location = New System.Drawing.Point(8, 82) + Me.chkMissingSubs.Name = "chkMissingSubs" + Me.chkMissingSubs.Size = New System.Drawing.Size(174, 17) + Me.chkMissingSubs.TabIndex = 10 + Me.chkMissingSubs.Text = "Check for Subs" + Me.chkMissingSubs.UseVisualStyleBackColor = True + ' + 'chkMissingTrailer + ' + Me.chkMissingTrailer.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkMissingTrailer.Location = New System.Drawing.Point(8, 66) + Me.chkMissingTrailer.Name = "chkMissingTrailer" + Me.chkMissingTrailer.Size = New System.Drawing.Size(174, 17) + Me.chkMissingTrailer.TabIndex = 9 + Me.chkMissingTrailer.Text = "Check for Trailer" + Me.chkMissingTrailer.UseVisualStyleBackColor = True + ' + 'chkMissingNFO + ' + Me.chkMissingNFO.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkMissingNFO.Location = New System.Drawing.Point(8, 50) + Me.chkMissingNFO.Name = "chkMissingNFO" + Me.chkMissingNFO.Size = New System.Drawing.Size(174, 17) + Me.chkMissingNFO.TabIndex = 8 + Me.chkMissingNFO.Text = "Check for NFO" + Me.chkMissingNFO.UseVisualStyleBackColor = True + ' + 'chkMissingFanart + ' + Me.chkMissingFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkMissingFanart.Location = New System.Drawing.Point(8, 34) + Me.chkMissingFanart.Name = "chkMissingFanart" + Me.chkMissingFanart.Size = New System.Drawing.Size(174, 17) + Me.chkMissingFanart.TabIndex = 7 + Me.chkMissingFanart.Text = "Check for Fanart" + Me.chkMissingFanart.UseVisualStyleBackColor = True + ' + 'chkMissingPoster + ' + Me.chkMissingPoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkMissingPoster.Location = New System.Drawing.Point(8, 18) + Me.chkMissingPoster.Name = "chkMissingPoster" + Me.chkMissingPoster.Size = New System.Drawing.Size(174, 17) + Me.chkMissingPoster.TabIndex = 6 + Me.chkMissingPoster.Text = "Check for Poster" + Me.chkMissingPoster.UseVisualStyleBackColor = True + ' + 'GroupBox16 + ' + Me.GroupBox16.Controls.Add(Me.chkAutoBD) + Me.GroupBox16.Controls.Add(Me.btnBrowse) + Me.GroupBox16.Controls.Add(Me.txtBDPath) + Me.GroupBox16.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.GroupBox16.Location = New System.Drawing.Point(243, 326) + Me.GroupBox16.Name = "GroupBox16" + Me.GroupBox16.Size = New System.Drawing.Size(366, 69) + Me.GroupBox16.TabIndex = 6 + Me.GroupBox16.TabStop = False + Me.GroupBox16.Text = "Backdrops Folder" + ' + 'chkAutoBD + ' + Me.chkAutoBD.AutoSize = True + Me.chkAutoBD.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkAutoBD.Location = New System.Drawing.Point(12, 46) + Me.chkAutoBD.Name = "chkAutoBD" + Me.chkAutoBD.Size = New System.Drawing.Size(265, 17) + Me.chkAutoBD.TabIndex = 2 + Me.chkAutoBD.Text = "Automatically Save Fanart To Backdrops Folder" + Me.chkAutoBD.UseVisualStyleBackColor = True + ' + 'btnBrowse + ' + Me.btnBrowse.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.btnBrowse.Location = New System.Drawing.Point(336, 15) + Me.btnBrowse.Name = "btnBrowse" + Me.btnBrowse.Size = New System.Drawing.Size(25, 23) + Me.btnBrowse.TabIndex = 1 + Me.btnBrowse.Text = "..." + Me.btnBrowse.UseVisualStyleBackColor = True + ' + 'txtBDPath + ' + Me.txtBDPath.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtBDPath.Location = New System.Drawing.Point(7, 17) + Me.txtBDPath.Name = "txtBDPath" + Me.txtBDPath.Size = New System.Drawing.Size(323, 22) + Me.txtBDPath.TabIndex = 0 + ' + 'lblCurrent + ' + Me.lblCurrent.BackColor = System.Drawing.Color.SteelBlue + Me.lblCurrent.Font = New System.Drawing.Font("Segoe UI", 14.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblCurrent.ForeColor = System.Drawing.Color.White + Me.lblCurrent.Location = New System.Drawing.Point(26, -1) + Me.lblCurrent.Name = "lblCurrent" + Me.lblCurrent.Size = New System.Drawing.Size(489, 25) + Me.lblCurrent.TabIndex = 0 + Me.lblCurrent.Text = "General" + ' + 'pnlCurrent + ' + Me.pnlCurrent.BackColor = System.Drawing.Color.SteelBlue + Me.pnlCurrent.Location = New System.Drawing.Point(516, 119) + Me.pnlCurrent.Name = "pnlCurrent" + Me.pnlCurrent.Size = New System.Drawing.Size(371, 25) + Me.pnlCurrent.TabIndex = 6 + ' + 'Panel1 + ' + Me.Panel1.BackColor = System.Drawing.Color.SteelBlue + Me.Panel1.Controls.Add(Me.pbCurrent) + Me.Panel1.Controls.Add(Me.lblCurrent) + Me.Panel1.Location = New System.Drawing.Point(5, 119) + Me.Panel1.Name = "Panel1" + Me.Panel1.Size = New System.Drawing.Size(515, 25) + Me.Panel1.TabIndex = 5 + ' + 'pbCurrent + ' + Me.pbCurrent.Location = New System.Drawing.Point(2, 0) + Me.pbCurrent.Name = "pbCurrent" + Me.pbCurrent.Size = New System.Drawing.Size(24, 24) + Me.pbCurrent.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom + Me.pbCurrent.TabIndex = 2 + Me.pbCurrent.TabStop = False + ' + 'pnlExtensions + ' + Me.pnlExtensions.BackColor = System.Drawing.Color.White + Me.pnlExtensions.Controls.Add(Me.GroupBox22) + Me.pnlExtensions.Controls.Add(Me.GroupBox3) + Me.pnlExtensions.Controls.Add(Me.GroupBox18) + Me.pnlExtensions.Location = New System.Drawing.Point(855, 706) + Me.pnlExtensions.Name = "pnlExtensions" + Me.pnlExtensions.Size = New System.Drawing.Size(617, 400) + Me.pnlExtensions.TabIndex = 17 + Me.pnlExtensions.Visible = False + ' + 'GroupBox22 + ' + Me.GroupBox22.Controls.Add(Me.btnRemoveNoStack) + Me.GroupBox22.Controls.Add(Me.btnAddNoStack) + Me.GroupBox22.Controls.Add(Me.txtNoStack) + Me.GroupBox22.Controls.Add(Me.lstNoStack) + Me.GroupBox22.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.GroupBox22.Location = New System.Drawing.Point(202, 6) + Me.GroupBox22.Name = "GroupBox22" + Me.GroupBox22.Size = New System.Drawing.Size(194, 199) + Me.GroupBox22.TabIndex = 1 + Me.GroupBox22.TabStop = False + Me.GroupBox22.Text = "No Stack Extensions" + ' + 'btnRemoveNoStack + ' + Me.btnRemoveNoStack.Image = CType(resources.GetObject("btnRemoveNoStack.Image"), System.Drawing.Image) + Me.btnRemoveNoStack.Location = New System.Drawing.Point(160, 167) + Me.btnRemoveNoStack.Name = "btnRemoveNoStack" + Me.btnRemoveNoStack.Size = New System.Drawing.Size(23, 23) + Me.btnRemoveNoStack.TabIndex = 3 + Me.btnRemoveNoStack.UseVisualStyleBackColor = True + ' + 'btnAddNoStack + ' + Me.btnAddNoStack.Image = CType(resources.GetObject("btnAddNoStack.Image"), System.Drawing.Image) + Me.btnAddNoStack.Location = New System.Drawing.Point(73, 167) + Me.btnAddNoStack.Name = "btnAddNoStack" + Me.btnAddNoStack.Size = New System.Drawing.Size(23, 23) + Me.btnAddNoStack.TabIndex = 2 + Me.btnAddNoStack.UseVisualStyleBackColor = True + ' + 'txtNoStack + ' + Me.txtNoStack.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtNoStack.Location = New System.Drawing.Point(11, 168) + Me.txtNoStack.Name = "txtNoStack" + Me.txtNoStack.Size = New System.Drawing.Size(61, 22) + Me.txtNoStack.TabIndex = 1 + ' + 'lstNoStack + ' + Me.lstNoStack.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lstNoStack.FormattingEnabled = True + Me.lstNoStack.Location = New System.Drawing.Point(11, 15) + Me.lstNoStack.Name = "lstNoStack" + Me.lstNoStack.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended + Me.lstNoStack.Size = New System.Drawing.Size(171, 134) + Me.lstNoStack.Sorted = True + Me.lstNoStack.TabIndex = 0 + ' + 'GroupBox18 + ' + Me.GroupBox18.Controls.Add(Me.btnResetValidExts) + Me.GroupBox18.Controls.Add(Me.btnRemMovieExt) + Me.GroupBox18.Controls.Add(Me.btnAddMovieExt) + Me.GroupBox18.Controls.Add(Me.txtMovieExt) + Me.GroupBox18.Controls.Add(Me.lstMovieExts) + Me.GroupBox18.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.GroupBox18.Location = New System.Drawing.Point(3, 6) + Me.GroupBox18.Name = "GroupBox18" + Me.GroupBox18.Size = New System.Drawing.Size(192, 385) + Me.GroupBox18.TabIndex = 0 + Me.GroupBox18.TabStop = False + Me.GroupBox18.Text = "Valid Video Extensions" + ' + 'btnResetValidExts + ' + Me.btnResetValidExts.Image = CType(resources.GetObject("btnResetValidExts.Image"), System.Drawing.Image) + Me.btnResetValidExts.Location = New System.Drawing.Point(164, 12) + Me.btnResetValidExts.Name = "btnResetValidExts" + Me.btnResetValidExts.Size = New System.Drawing.Size(23, 23) + Me.btnResetValidExts.TabIndex = 4 + Me.btnResetValidExts.UseVisualStyleBackColor = True + ' + 'btnRemMovieExt + ' + Me.btnRemMovieExt.Image = CType(resources.GetObject("btnRemMovieExt.Image"), System.Drawing.Image) + Me.btnRemMovieExt.Location = New System.Drawing.Point(163, 356) + Me.btnRemMovieExt.Name = "btnRemMovieExt" + Me.btnRemMovieExt.Size = New System.Drawing.Size(23, 23) + Me.btnRemMovieExt.TabIndex = 3 + Me.btnRemMovieExt.UseVisualStyleBackColor = True + ' + 'btnAddMovieExt + ' + Me.btnAddMovieExt.Image = CType(resources.GetObject("btnAddMovieExt.Image"), System.Drawing.Image) + Me.btnAddMovieExt.Location = New System.Drawing.Point(68, 356) + Me.btnAddMovieExt.Name = "btnAddMovieExt" + Me.btnAddMovieExt.Size = New System.Drawing.Size(23, 23) + Me.btnAddMovieExt.TabIndex = 2 + Me.btnAddMovieExt.UseVisualStyleBackColor = True + ' + 'txtMovieExt + ' + Me.txtMovieExt.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtMovieExt.Location = New System.Drawing.Point(6, 357) + Me.txtMovieExt.Name = "txtMovieExt" + Me.txtMovieExt.Size = New System.Drawing.Size(61, 22) + Me.txtMovieExt.TabIndex = 1 + ' + 'lstMovieExts + ' + Me.lstMovieExts.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lstMovieExts.FormattingEnabled = True + Me.lstMovieExts.Location = New System.Drawing.Point(6, 37) + Me.lstMovieExts.Name = "lstMovieExts" + Me.lstMovieExts.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended + Me.lstMovieExts.Size = New System.Drawing.Size(180, 303) + Me.lstMovieExts.Sorted = True + Me.lstMovieExts.TabIndex = 0 + ' + 'pnlSources + ' + Me.pnlSources.BackColor = System.Drawing.Color.White + Me.pnlSources.Controls.Add(Me.btnEditSource) + Me.pnlSources.Controls.Add(Me.pnlGeneral) + Me.pnlSources.Controls.Add(Me.GroupBox19) + Me.pnlSources.Controls.Add(Me.lvMovies) + Me.pnlSources.Controls.Add(Me.btnMovieRem) + Me.pnlSources.Controls.Add(Me.btnMovieAddFolder) + Me.pnlSources.Controls.Add(Me.GroupBox8) + Me.pnlSources.Controls.Add(Me.GroupBox16) + Me.pnlSources.Location = New System.Drawing.Point(580, 818) + Me.pnlSources.Name = "pnlSources" + Me.pnlSources.Size = New System.Drawing.Size(617, 402) + Me.pnlSources.TabIndex = 13 + Me.pnlSources.Visible = False + ' + 'btnEditSource + ' + Me.btnEditSource.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.btnEditSource.Image = CType(resources.GetObject("btnEditSource.Image"), System.Drawing.Image) + Me.btnEditSource.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnEditSource.Location = New System.Drawing.Point(506, 35) + Me.btnEditSource.Name = "btnEditSource" + Me.btnEditSource.Size = New System.Drawing.Size(104, 23) + Me.btnEditSource.TabIndex = 2 + Me.btnEditSource.Text = "Edit Source" + Me.btnEditSource.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnEditSource.UseVisualStyleBackColor = True + ' + 'GroupBox19 + ' + Me.GroupBox19.Controls.Add(Me.chkVideoTSParentXBMC) + Me.GroupBox19.Controls.Add(Me.chkScanOrderModify) + Me.GroupBox19.Controls.Add(Me.chkSortBeforeScan) + Me.GroupBox19.Controls.Add(Me.chkIgnoreLastScan) + Me.GroupBox19.Controls.Add(Me.chkCleanDB) + Me.GroupBox19.Controls.Add(Me.chkAutoDetectVTS) + Me.GroupBox19.Controls.Add(Me.chkSkipStackedSizeCheck) + Me.GroupBox19.Controls.Add(Me.Label21) + Me.GroupBox19.Controls.Add(Me.txtSkipLessThan) + Me.GroupBox19.Controls.Add(Me.Label20) + Me.GroupBox19.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.GroupBox19.Location = New System.Drawing.Point(5, 113) + Me.GroupBox19.Name = "GroupBox19" + Me.GroupBox19.Size = New System.Drawing.Size(233, 282) + Me.GroupBox19.TabIndex = 4 + Me.GroupBox19.TabStop = False + Me.GroupBox19.Text = "Miscellaneous Options" + ' + 'chkVideoTSParentXBMC + ' + Me.chkVideoTSParentXBMC.CheckAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkVideoTSParentXBMC.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkVideoTSParentXBMC.Location = New System.Drawing.Point(5, 114) + Me.chkVideoTSParentXBMC.Name = "chkVideoTSParentXBMC" + Me.chkVideoTSParentXBMC.Size = New System.Drawing.Size(222, 33) + Me.chkVideoTSParentXBMC.TabIndex = 5 + Me.chkVideoTSParentXBMC.Text = "Frodo Compatible VIDEO_TS File Replacement/Naming" + Me.chkVideoTSParentXBMC.TextAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkVideoTSParentXBMC.UseVisualStyleBackColor = True + ' + 'chkScanOrderModify + ' + Me.chkScanOrderModify.CheckAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkScanOrderModify.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkScanOrderModify.Location = New System.Drawing.Point(5, 213) + Me.chkScanOrderModify.Name = "chkScanOrderModify" + Me.chkScanOrderModify.Size = New System.Drawing.Size(222, 33) + Me.chkScanOrderModify.TabIndex = 8 + Me.chkScanOrderModify.Text = "Scan in order of last write time." + Me.chkScanOrderModify.TextAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkScanOrderModify.UseVisualStyleBackColor = True + ' + 'chkSortBeforeScan + ' + Me.chkSortBeforeScan.CheckAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkSortBeforeScan.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkSortBeforeScan.Location = New System.Drawing.Point(5, 147) + Me.chkSortBeforeScan.Name = "chkSortBeforeScan" + Me.chkSortBeforeScan.Size = New System.Drawing.Size(222, 33) + Me.chkSortBeforeScan.TabIndex = 6 + Me.chkSortBeforeScan.Text = "Sort files into folders before each library update" + Me.chkSortBeforeScan.TextAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkSortBeforeScan.UseVisualStyleBackColor = True + ' + 'chkIgnoreLastScan + ' + Me.chkIgnoreLastScan.CheckAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkIgnoreLastScan.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkIgnoreLastScan.Location = New System.Drawing.Point(5, 180) + Me.chkIgnoreLastScan.Name = "chkIgnoreLastScan" + Me.chkIgnoreLastScan.Size = New System.Drawing.Size(222, 33) + Me.chkIgnoreLastScan.TabIndex = 7 + Me.chkIgnoreLastScan.Text = "Always scan all media when updating library" + Me.chkIgnoreLastScan.TextAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkIgnoreLastScan.UseVisualStyleBackColor = True + ' + 'chkCleanDB + ' + Me.chkCleanDB.CheckAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkCleanDB.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkCleanDB.Location = New System.Drawing.Point(5, 246) + Me.chkCleanDB.Name = "chkCleanDB" + Me.chkCleanDB.Size = New System.Drawing.Size(222, 33) + Me.chkCleanDB.TabIndex = 9 + Me.chkCleanDB.Text = "Clean database after updating library" + Me.chkCleanDB.TextAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkCleanDB.UseVisualStyleBackColor = True + ' + 'chkAutoDetectVTS + ' + Me.chkAutoDetectVTS.CheckAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkAutoDetectVTS.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkAutoDetectVTS.Location = New System.Drawing.Point(5, 81) + Me.chkAutoDetectVTS.Name = "chkAutoDetectVTS" + Me.chkAutoDetectVTS.Size = New System.Drawing.Size(222, 33) + Me.chkAutoDetectVTS.TabIndex = 4 + Me.chkAutoDetectVTS.Text = "Recognize VIDEO_TS Folders" + Me.chkAutoDetectVTS.TextAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkAutoDetectVTS.UseVisualStyleBackColor = True + ' + 'chkSkipStackedSizeCheck + ' + Me.chkSkipStackedSizeCheck.AutoSize = True + Me.chkSkipStackedSizeCheck.CheckAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkSkipStackedSizeCheck.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkSkipStackedSizeCheck.Location = New System.Drawing.Point(27, 58) + Me.chkSkipStackedSizeCheck.Name = "chkSkipStackedSizeCheck" + Me.chkSkipStackedSizeCheck.Size = New System.Drawing.Size(188, 17) + Me.chkSkipStackedSizeCheck.TabIndex = 3 + Me.chkSkipStackedSizeCheck.Text = "Skip Size Check of Stacked Files" + Me.chkSkipStackedSizeCheck.TextAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkSkipStackedSizeCheck.UseVisualStyleBackColor = True + ' + 'Label21 + ' + Me.Label21.AutoSize = True + Me.Label21.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label21.Location = New System.Drawing.Point(133, 39) + Me.Label21.Name = "Label21" + Me.Label21.Size = New System.Drawing.Size(24, 13) + Me.Label21.TabIndex = 2 + Me.Label21.Text = "MB" + ' + 'txtSkipLessThan + ' + Me.txtSkipLessThan.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtSkipLessThan.Location = New System.Drawing.Point(27, 35) + Me.txtSkipLessThan.Name = "txtSkipLessThan" + Me.txtSkipLessThan.Size = New System.Drawing.Size(100, 22) + Me.txtSkipLessThan.TabIndex = 1 + ' + 'Label20 + ' + Me.Label20.AutoSize = True + Me.Label20.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label20.Location = New System.Drawing.Point(4, 19) + Me.Label20.Name = "Label20" + Me.Label20.Size = New System.Drawing.Size(122, 13) + Me.Label20.TabIndex = 0 + Me.Label20.Text = "Skip files smaller than:" + ' + 'pnlImages + ' + Me.pnlImages.BackColor = System.Drawing.Color.White + Me.pnlImages.Controls.Add(Me.GroupBox15) + Me.pnlImages.Controls.Add(Me.GroupBox9) + Me.pnlImages.Controls.Add(Me.GroupBox13) + Me.pnlImages.Controls.Add(Me.GroupBox14) + Me.pnlImages.Controls.Add(Me.GroupBox23) + Me.pnlImages.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.pnlImages.Location = New System.Drawing.Point(1181, 571) + Me.pnlImages.Name = "pnlImages" + Me.pnlImages.Size = New System.Drawing.Size(617, 408) + Me.pnlImages.TabIndex = 12 + Me.pnlImages.Visible = False + ' + 'GroupBox15 + ' + Me.GroupBox15.Controls.Add(Me.cbTrailerQuality) + Me.GroupBox15.Controls.Add(Me.lblPreferredQuality) + Me.GroupBox15.Controls.Add(Me.chkDeleteAllTrailers) + Me.GroupBox15.Controls.Add(Me.chkOverwriteTrailer) + Me.GroupBox15.Controls.Add(Me.chkNoDLTrailer) + Me.GroupBox15.Controls.Add(Me.chkSingleScrapeTrailer) + Me.GroupBox15.Controls.Add(Me.chkUpdaterTrailer) + Me.GroupBox15.Controls.Add(Me.chkDownloadTrailer) + Me.GroupBox15.Location = New System.Drawing.Point(4, 172) + Me.GroupBox15.Name = "GroupBox15" + Me.GroupBox15.Size = New System.Drawing.Size(183, 230) + Me.GroupBox15.TabIndex = 1 + Me.GroupBox15.TabStop = False + Me.GroupBox15.Text = "Trailers" + ' + 'cbTrailerQuality + ' + Me.cbTrailerQuality.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cbTrailerQuality.Enabled = False + Me.cbTrailerQuality.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.cbTrailerQuality.FormattingEnabled = True + Me.cbTrailerQuality.Location = New System.Drawing.Point(33, 204) + Me.cbTrailerQuality.Name = "cbTrailerQuality" + Me.cbTrailerQuality.Size = New System.Drawing.Size(106, 21) + Me.cbTrailerQuality.TabIndex = 7 + ' + 'lblPreferredQuality + ' + Me.lblPreferredQuality.AutoSize = True + Me.lblPreferredQuality.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblPreferredQuality.Location = New System.Drawing.Point(31, 189) + Me.lblPreferredQuality.Name = "lblPreferredQuality" + Me.lblPreferredQuality.Size = New System.Drawing.Size(96, 13) + Me.lblPreferredQuality.TabIndex = 6 + Me.lblPreferredQuality.Text = "Preferred Quality:" + ' + 'chkDeleteAllTrailers + ' + Me.chkDeleteAllTrailers.CheckAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkDeleteAllTrailers.Enabled = False + Me.chkDeleteAllTrailers.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkDeleteAllTrailers.Location = New System.Drawing.Point(25, 163) + Me.chkDeleteAllTrailers.Name = "chkDeleteAllTrailers" + Me.chkDeleteAllTrailers.Size = New System.Drawing.Size(152, 27) + Me.chkDeleteAllTrailers.TabIndex = 5 + Me.chkDeleteAllTrailers.Text = "Delete All Existing" + Me.chkDeleteAllTrailers.TextAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkDeleteAllTrailers.UseVisualStyleBackColor = True + ' + 'chkOverwriteTrailer + ' + Me.chkOverwriteTrailer.AutoSize = True + Me.chkOverwriteTrailer.Enabled = False + Me.chkOverwriteTrailer.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkOverwriteTrailer.Location = New System.Drawing.Point(25, 143) + Me.chkOverwriteTrailer.Name = "chkOverwriteTrailer" + Me.chkOverwriteTrailer.Size = New System.Drawing.Size(119, 17) + Me.chkOverwriteTrailer.TabIndex = 4 + Me.chkOverwriteTrailer.Text = "Overwrite Existing" + Me.chkOverwriteTrailer.UseVisualStyleBackColor = True + ' + 'chkNoDLTrailer + ' + Me.chkNoDLTrailer.CheckAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkNoDLTrailer.Enabled = False + Me.chkNoDLTrailer.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkNoDLTrailer.Location = New System.Drawing.Point(25, 72) + Me.chkNoDLTrailer.Name = "chkNoDLTrailer" + Me.chkNoDLTrailer.Size = New System.Drawing.Size(151, 30) + Me.chkNoDLTrailer.TabIndex = 2 + Me.chkNoDLTrailer.Text = "Only Get URLs When Scraping" + Me.chkNoDLTrailer.TextAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkNoDLTrailer.UseVisualStyleBackColor = True + ' + 'chkSingleScrapeTrailer + ' + Me.chkSingleScrapeTrailer.CheckAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkSingleScrapeTrailer.Enabled = False + Me.chkSingleScrapeTrailer.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkSingleScrapeTrailer.Location = New System.Drawing.Point(25, 106) + Me.chkSingleScrapeTrailer.Name = "chkSingleScrapeTrailer" + Me.chkSingleScrapeTrailer.Size = New System.Drawing.Size(154, 34) + Me.chkSingleScrapeTrailer.TabIndex = 3 + Me.chkSingleScrapeTrailer.Text = "Get During Single Scrape" + Me.chkSingleScrapeTrailer.TextAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkSingleScrapeTrailer.UseVisualStyleBackColor = True + ' + 'chkUpdaterTrailer + ' + Me.chkUpdaterTrailer.CheckAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkUpdaterTrailer.Enabled = False + Me.chkUpdaterTrailer.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkUpdaterTrailer.Location = New System.Drawing.Point(25, 38) + Me.chkUpdaterTrailer.Name = "chkUpdaterTrailer" + Me.chkUpdaterTrailer.Size = New System.Drawing.Size(151, 33) + Me.chkUpdaterTrailer.TabIndex = 1 + Me.chkUpdaterTrailer.Text = "Get During Automated Scrapers" + Me.chkUpdaterTrailer.TextAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkUpdaterTrailer.UseVisualStyleBackColor = True + ' + 'chkDownloadTrailer + ' + Me.chkDownloadTrailer.AutoSize = True + Me.chkDownloadTrailer.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkDownloadTrailer.Location = New System.Drawing.Point(12, 16) + Me.chkDownloadTrailer.Name = "chkDownloadTrailer" + Me.chkDownloadTrailer.Size = New System.Drawing.Size(140, 17) + Me.chkDownloadTrailer.TabIndex = 0 + Me.chkDownloadTrailer.Text = "Enable Trailer Support" + Me.chkDownloadTrailer.UseVisualStyleBackColor = True + ' + 'GroupBox23 + ' + Me.GroupBox23.Controls.Add(Me.chkAutoETSize) + Me.GroupBox23.Controls.Add(Me.cbAutoETSize) + Me.GroupBox23.Controls.Add(Me.txtAutoThumbs) + Me.GroupBox23.Controls.Add(Me.GroupBox24) + Me.GroupBox23.Controls.Add(Me.chkAutoThumbs) + Me.GroupBox23.Controls.Add(Me.chkUseETasFA) + Me.GroupBox23.Controls.Add(Me.Label15) + Me.GroupBox23.Controls.Add(Me.chkNoSpoilers) + Me.GroupBox23.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.GroupBox23.Location = New System.Drawing.Point(412, 3) + Me.GroupBox23.Name = "GroupBox23" + Me.GroupBox23.Size = New System.Drawing.Size(199, 358) + Me.GroupBox23.TabIndex = 4 + Me.GroupBox23.TabStop = False + Me.GroupBox23.Text = "Extrathumbs" + ' + 'chkAutoETSize + ' + Me.chkAutoETSize.CheckAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkAutoETSize.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkAutoETSize.Location = New System.Drawing.Point(6, 236) + Me.chkAutoETSize.Name = "chkAutoETSize" + Me.chkAutoETSize.Size = New System.Drawing.Size(188, 43) + Me.chkAutoETSize.TabIndex = 6 + Me.chkAutoETSize.Text = "Download All Fanart Images of the Following Size as Extrathumbs:" + Me.chkAutoETSize.TextAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkAutoETSize.UseVisualStyleBackColor = True + ' + 'cbAutoETSize + ' + Me.cbAutoETSize.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cbAutoETSize.Enabled = False + Me.cbAutoETSize.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.cbAutoETSize.FormattingEnabled = True + Me.cbAutoETSize.Location = New System.Drawing.Point(26, 283) + Me.cbAutoETSize.Name = "cbAutoETSize" + Me.cbAutoETSize.Size = New System.Drawing.Size(148, 21) + Me.cbAutoETSize.TabIndex = 7 + ' + 'GroupBox24 + ' + Me.GroupBox24.Controls.Add(Me.txtETWidth) + Me.GroupBox24.Controls.Add(Me.txtETHeight) + Me.GroupBox24.Controls.Add(Me.chkETPadding) + Me.GroupBox24.Controls.Add(Me.Label28) + Me.GroupBox24.Controls.Add(Me.Label29) + Me.GroupBox24.Controls.Add(Me.rbETCustom) + Me.GroupBox24.Controls.Add(Me.rbETNative) + Me.GroupBox24.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.GroupBox24.Location = New System.Drawing.Point(7, 120) + Me.GroupBox24.Name = "GroupBox24" + Me.GroupBox24.Size = New System.Drawing.Size(185, 104) + Me.GroupBox24.TabIndex = 5 + Me.GroupBox24.TabStop = False + Me.GroupBox24.Text = "Sizing (Extracted Frames)" + ' + 'txtETWidth + ' + Me.txtETWidth.Enabled = False + Me.txtETWidth.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtETWidth.Location = New System.Drawing.Point(61, 57) + Me.txtETWidth.Name = "txtETWidth" + Me.txtETWidth.Size = New System.Drawing.Size(40, 22) + Me.txtETWidth.TabIndex = 3 + ' + 'txtETHeight + ' + Me.txtETHeight.Enabled = False + Me.txtETHeight.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtETHeight.Location = New System.Drawing.Point(143, 57) + Me.txtETHeight.Name = "txtETHeight" + Me.txtETHeight.Size = New System.Drawing.Size(40, 22) + Me.txtETHeight.TabIndex = 5 + ' + 'chkETPadding + ' + Me.chkETPadding.AutoSize = True + Me.chkETPadding.Enabled = False + Me.chkETPadding.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkETPadding.Location = New System.Drawing.Point(21, 81) + Me.chkETPadding.Name = "chkETPadding" + Me.chkETPadding.Size = New System.Drawing.Size(69, 17) + Me.chkETPadding.TabIndex = 6 + Me.chkETPadding.Text = "Padding" + Me.chkETPadding.UseVisualStyleBackColor = True + ' + 'Label28 + ' + Me.Label28.AutoSize = True + Me.Label28.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label28.Location = New System.Drawing.Point(17, 61) + Me.Label28.Name = "Label28" + Me.Label28.Size = New System.Drawing.Size(42, 13) + Me.Label28.TabIndex = 2 + Me.Label28.Text = "Width:" + ' + 'Label29 + ' + Me.Label29.AutoSize = True + Me.Label29.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label29.Location = New System.Drawing.Point(98, 61) + Me.Label29.Name = "Label29" + Me.Label29.Size = New System.Drawing.Size(45, 13) + Me.Label29.TabIndex = 4 + Me.Label29.Text = "Height:" + ' + 'rbETCustom + ' + Me.rbETCustom.AutoSize = True + Me.rbETCustom.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.rbETCustom.Location = New System.Drawing.Point(7, 38) + Me.rbETCustom.Name = "rbETCustom" + Me.rbETCustom.Size = New System.Drawing.Size(109, 17) + Me.rbETCustom.TabIndex = 1 + Me.rbETCustom.TabStop = True + Me.rbETCustom.Text = "Use Custom Size" + Me.rbETCustom.UseVisualStyleBackColor = True + ' + 'rbETNative + ' + Me.rbETNative.AutoSize = True + Me.rbETNative.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.rbETNative.Location = New System.Drawing.Point(7, 20) + Me.rbETNative.Name = "rbETNative" + Me.rbETNative.Size = New System.Drawing.Size(138, 17) + Me.rbETNative.TabIndex = 0 + Me.rbETNative.TabStop = True + Me.rbETNative.Text = "Use Native Resolution" + Me.rbETNative.UseVisualStyleBackColor = True + ' + 'fbdBrowse + ' + Me.fbdBrowse.Description = "Select the folder where you wish to store your backdrops." + ' + 'pnlTVSources + ' + Me.pnlTVSources.BackColor = System.Drawing.Color.White + Me.pnlTVSources.Controls.Add(Me.TabControl2) + Me.pnlTVSources.Location = New System.Drawing.Point(1260, 560) + Me.pnlTVSources.Name = "pnlTVSources" + Me.pnlTVSources.Size = New System.Drawing.Size(617, 400) + Me.pnlTVSources.TabIndex = 11 + Me.pnlTVSources.Visible = False + ' + 'TabControl2 + ' + Me.TabControl2.Controls.Add(Me.TabPage3) + Me.TabControl2.Controls.Add(Me.TabPage4) + Me.TabControl2.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.TabControl2.Location = New System.Drawing.Point(3, 4) + Me.TabControl2.Name = "TabControl2" + Me.TabControl2.SelectedIndex = 0 + Me.TabControl2.Size = New System.Drawing.Size(612, 392) + Me.TabControl2.TabIndex = 0 + ' + 'TabPage3 + ' + Me.TabPage3.Controls.Add(Me.btnTVShowFrodo) + Me.TabPage3.Controls.Add(Me.lvTVSources) + Me.TabPage3.Controls.Add(Me.gbMiscTVSourceOpts) + Me.TabPage3.Controls.Add(Me.btnAddTVSource) + Me.TabPage3.Controls.Add(Me.btnEditTVSource) + Me.TabPage3.Controls.Add(Me.btnRemTVSource) + Me.TabPage3.Controls.Add(Me.gbTVNaming) + Me.TabPage3.Location = New System.Drawing.Point(4, 22) + Me.TabPage3.Name = "TabPage3" + Me.TabPage3.Padding = New System.Windows.Forms.Padding(3) + Me.TabPage3.Size = New System.Drawing.Size(604, 366) + Me.TabPage3.TabIndex = 0 + Me.TabPage3.Text = "General" + Me.TabPage3.UseVisualStyleBackColor = True + ' + 'btnTVShowFrodo + ' + Me.btnTVShowFrodo.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.btnTVShowFrodo.Location = New System.Drawing.Point(22, 320) + Me.btnTVShowFrodo.Name = "btnTVShowFrodo" + Me.btnTVShowFrodo.Size = New System.Drawing.Size(116, 23) + Me.btnTVShowFrodo.TabIndex = 5 + Me.btnTVShowFrodo.Text = "XBMC Frodo" + Me.btnTVShowFrodo.UseVisualStyleBackColor = True + ' + 'lvTVSources + ' + Me.lvTVSources.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ColumnHeader1, Me.ColumnHeader2, Me.ColumnHeader3}) + Me.lvTVSources.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lvTVSources.FullRowSelect = True + Me.lvTVSources.HideSelection = False + Me.lvTVSources.Location = New System.Drawing.Point(6, 4) + Me.lvTVSources.Name = "lvTVSources" + Me.lvTVSources.Size = New System.Drawing.Size(483, 105) + Me.lvTVSources.Sorting = System.Windows.Forms.SortOrder.Ascending + Me.lvTVSources.TabIndex = 0 + Me.lvTVSources.UseCompatibleStateImageBehavior = False + Me.lvTVSources.View = System.Windows.Forms.View.Details + ' + 'ColumnHeader1 + ' + Me.ColumnHeader1.Width = 0 + ' + 'ColumnHeader2 + ' + Me.ColumnHeader2.Text = "Name" + Me.ColumnHeader2.Width = 94 + ' + 'ColumnHeader3 + ' + Me.ColumnHeader3.Text = "Path" + Me.ColumnHeader3.Width = 368 + ' + 'gbMiscTVSourceOpts + ' + Me.gbMiscTVSourceOpts.Controls.Add(Me.Label6) + Me.gbMiscTVSourceOpts.Controls.Add(Me.txtTVSkipLessThan) + Me.gbMiscTVSourceOpts.Controls.Add(Me.Label7) + Me.gbMiscTVSourceOpts.Controls.Add(Me.chkTVScanOrderModify) + Me.gbMiscTVSourceOpts.Controls.Add(Me.chkTVIgnoreLastScan) + Me.gbMiscTVSourceOpts.Controls.Add(Me.chkTVCleanDB) + Me.gbMiscTVSourceOpts.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.gbMiscTVSourceOpts.Location = New System.Drawing.Point(6, 110) + Me.gbMiscTVSourceOpts.Name = "gbMiscTVSourceOpts" + Me.gbMiscTVSourceOpts.Size = New System.Drawing.Size(151, 188) + Me.gbMiscTVSourceOpts.TabIndex = 4 + Me.gbMiscTVSourceOpts.TabStop = False + Me.gbMiscTVSourceOpts.Text = "Miscellaneous Options" + ' + 'Label6 + ' + Me.Label6.AutoSize = True + Me.Label6.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label6.Location = New System.Drawing.Point(114, 39) + Me.Label6.Name = "Label6" + Me.Label6.Size = New System.Drawing.Size(24, 13) + Me.Label6.TabIndex = 2 + Me.Label6.Text = "MB" + ' + 'txtTVSkipLessThan + ' + Me.txtTVSkipLessThan.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtTVSkipLessThan.Location = New System.Drawing.Point(11, 34) + Me.txtTVSkipLessThan.Name = "txtTVSkipLessThan" + Me.txtTVSkipLessThan.Size = New System.Drawing.Size(100, 22) + Me.txtTVSkipLessThan.TabIndex = 0 + ' + 'Label7 + ' + Me.Label7.AutoSize = True + Me.Label7.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label7.Location = New System.Drawing.Point(6, 18) + Me.Label7.Name = "Label7" + Me.Label7.Size = New System.Drawing.Size(122, 13) + Me.Label7.TabIndex = 1 + Me.Label7.Text = "Skip files smaller than:" + ' + 'chkTVScanOrderModify + ' + Me.chkTVScanOrderModify.CheckAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkTVScanOrderModify.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkTVScanOrderModify.Location = New System.Drawing.Point(4, 110) + Me.chkTVScanOrderModify.Name = "chkTVScanOrderModify" + Me.chkTVScanOrderModify.Size = New System.Drawing.Size(142, 43) + Me.chkTVScanOrderModify.TabIndex = 4 + Me.chkTVScanOrderModify.Text = "Scan in order of last write time" + Me.chkTVScanOrderModify.TextAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkTVScanOrderModify.UseVisualStyleBackColor = True + ' + 'chkTVIgnoreLastScan + ' + Me.chkTVIgnoreLastScan.CheckAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkTVIgnoreLastScan.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkTVIgnoreLastScan.Location = New System.Drawing.Point(4, 68) + Me.chkTVIgnoreLastScan.Name = "chkTVIgnoreLastScan" + Me.chkTVIgnoreLastScan.Size = New System.Drawing.Size(142, 43) + Me.chkTVIgnoreLastScan.TabIndex = 3 + Me.chkTVIgnoreLastScan.Text = "Ignore last scan time when updating library" + Me.chkTVIgnoreLastScan.TextAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkTVIgnoreLastScan.UseVisualStyleBackColor = True + ' + 'chkTVCleanDB + ' + Me.chkTVCleanDB.CheckAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkTVCleanDB.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkTVCleanDB.Location = New System.Drawing.Point(4, 152) + Me.chkTVCleanDB.Name = "chkTVCleanDB" + Me.chkTVCleanDB.Size = New System.Drawing.Size(142, 43) + Me.chkTVCleanDB.TabIndex = 5 + Me.chkTVCleanDB.Text = "Clean database after updating library" + Me.chkTVCleanDB.TextAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkTVCleanDB.UseVisualStyleBackColor = True + ' + 'btnAddTVSource + ' + Me.btnAddTVSource.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.btnAddTVSource.Image = CType(resources.GetObject("btnAddTVSource.Image"), System.Drawing.Image) + Me.btnAddTVSource.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnAddTVSource.Location = New System.Drawing.Point(494, 4) + Me.btnAddTVSource.Name = "btnAddTVSource" + Me.btnAddTVSource.Size = New System.Drawing.Size(104, 23) + Me.btnAddTVSource.TabIndex = 1 + Me.btnAddTVSource.Text = "Add Source" + Me.btnAddTVSource.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnAddTVSource.UseVisualStyleBackColor = True + ' + 'btnEditTVSource + ' + Me.btnEditTVSource.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.btnEditTVSource.Image = CType(resources.GetObject("btnEditTVSource.Image"), System.Drawing.Image) + Me.btnEditTVSource.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnEditTVSource.Location = New System.Drawing.Point(494, 33) + Me.btnEditTVSource.Name = "btnEditTVSource" + Me.btnEditTVSource.Size = New System.Drawing.Size(104, 23) + Me.btnEditTVSource.TabIndex = 2 + Me.btnEditTVSource.Text = "Edit Source" + Me.btnEditTVSource.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnEditTVSource.UseVisualStyleBackColor = True + ' + 'btnRemTVSource + ' + Me.btnRemTVSource.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.btnRemTVSource.Image = CType(resources.GetObject("btnRemTVSource.Image"), System.Drawing.Image) + Me.btnRemTVSource.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnRemTVSource.Location = New System.Drawing.Point(494, 86) + Me.btnRemTVSource.Name = "btnRemTVSource" + Me.btnRemTVSource.Size = New System.Drawing.Size(104, 23) + Me.btnRemTVSource.TabIndex = 3 + Me.btnRemTVSource.Text = "Remove" + Me.btnRemTVSource.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnRemTVSource.UseVisualStyleBackColor = True + ' + 'gbTVNaming + ' + Me.gbTVNaming.Controls.Add(Me.gbShowBanner) + Me.gbTVNaming.Controls.Add(Me.gbAllSeasonPoster) + Me.gbTVNaming.Controls.Add(Me.gbEpisodeFanart) + Me.gbTVNaming.Controls.Add(Me.gbEpisodePosters) + Me.gbTVNaming.Controls.Add(Me.gbSeasonFanart) + Me.gbTVNaming.Controls.Add(Me.gbSeasonPosters) + Me.gbTVNaming.Controls.Add(Me.gbShowFanart) + Me.gbTVNaming.Controls.Add(Me.gbShowPosters) + Me.gbTVNaming.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.gbTVNaming.Location = New System.Drawing.Point(161, 110) + Me.gbTVNaming.Name = "gbTVNaming" + Me.gbTVNaming.Size = New System.Drawing.Size(437, 253) + Me.gbTVNaming.TabIndex = 6 + Me.gbTVNaming.TabStop = False + Me.gbTVNaming.Text = "File Naming" + ' + 'gbShowBanner + ' + Me.gbShowBanner.Controls.Add(Me.chkShowBannerJPG) + Me.gbShowBanner.Location = New System.Drawing.Point(5, 204) + Me.gbShowBanner.Name = "gbShowBanner" + Me.gbShowBanner.Size = New System.Drawing.Size(133, 40) + Me.gbShowBanner.TabIndex = 2 + Me.gbShowBanner.TabStop = False + Me.gbShowBanner.Text = "Show Banner" + ' + 'chkShowBannerJPG + ' + Me.chkShowBannerJPG.AutoSize = True + Me.chkShowBannerJPG.Enabled = False + Me.chkShowBannerJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!) + Me.chkShowBannerJPG.Location = New System.Drawing.Point(6, 15) + Me.chkShowBannerJPG.Name = "chkShowBannerJPG" + Me.chkShowBannerJPG.Size = New System.Drawing.Size(83, 17) + Me.chkShowBannerJPG.TabIndex = 0 + Me.chkShowBannerJPG.Text = "banner.jpg" + Me.chkShowBannerJPG.UseVisualStyleBackColor = True + Me.chkShowBannerJPG.Visible = False + ' + 'gbAllSeasonPoster + ' + Me.gbAllSeasonPoster.Controls.Add(Me.chkSeasonAllPosterJPG) + Me.gbAllSeasonPoster.Controls.Add(Me.chkSeasonAllJPG) + Me.gbAllSeasonPoster.Controls.Add(Me.chkSeasonAllTBN) + Me.gbAllSeasonPoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.gbAllSeasonPoster.Location = New System.Drawing.Point(292, 162) + Me.gbAllSeasonPoster.Name = "gbAllSeasonPoster" + Me.gbAllSeasonPoster.Size = New System.Drawing.Size(140, 81) + Me.gbAllSeasonPoster.TabIndex = 7 + Me.gbAllSeasonPoster.TabStop = False + Me.gbAllSeasonPoster.Text = "All Season Posters" + ' + 'chkSeasonAllPosterJPG + ' + Me.chkSeasonAllPosterJPG.AutoSize = True + Me.chkSeasonAllPosterJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkSeasonAllPosterJPG.ForeColor = System.Drawing.SystemColors.ControlText + Me.chkSeasonAllPosterJPG.Location = New System.Drawing.Point(6, 49) + Me.chkSeasonAllPosterJPG.Name = "chkSeasonAllPosterJPG" + Me.chkSeasonAllPosterJPG.Size = New System.Drawing.Size(135, 17) + Me.chkSeasonAllPosterJPG.TabIndex = 2 + Me.chkSeasonAllPosterJPG.Text = "season-all-poster.jpg" + Me.chkSeasonAllPosterJPG.UseVisualStyleBackColor = True + ' + 'chkSeasonAllJPG + ' + Me.chkSeasonAllJPG.AutoSize = True + Me.chkSeasonAllJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkSeasonAllJPG.Location = New System.Drawing.Point(6, 34) + Me.chkSeasonAllJPG.Name = "chkSeasonAllJPG" + Me.chkSeasonAllJPG.Size = New System.Drawing.Size(98, 17) + Me.chkSeasonAllJPG.TabIndex = 1 + Me.chkSeasonAllJPG.Text = "season-all.jpg" + Me.chkSeasonAllJPG.UseVisualStyleBackColor = True + ' + 'chkSeasonAllTBN + ' + Me.chkSeasonAllTBN.AutoSize = True + Me.chkSeasonAllTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkSeasonAllTBN.Location = New System.Drawing.Point(6, 18) + Me.chkSeasonAllTBN.Name = "chkSeasonAllTBN" + Me.chkSeasonAllTBN.Size = New System.Drawing.Size(99, 17) + Me.chkSeasonAllTBN.TabIndex = 0 + Me.chkSeasonAllTBN.Text = "season-all.tbn" + Me.chkSeasonAllTBN.UseVisualStyleBackColor = True + ' + 'gbEpisodeFanart + ' + Me.gbEpisodeFanart.Controls.Add(Me.chkEpisodeDotFanart) + Me.gbEpisodeFanart.Controls.Add(Me.chkEpisodeDashFanart) + Me.gbEpisodeFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.gbEpisodeFanart.Location = New System.Drawing.Point(292, 97) + Me.gbEpisodeFanart.Name = "gbEpisodeFanart" + Me.gbEpisodeFanart.Size = New System.Drawing.Size(140, 52) + Me.gbEpisodeFanart.TabIndex = 6 + Me.gbEpisodeFanart.TabStop = False + Me.gbEpisodeFanart.Text = "Episode Fanart" + ' + 'chkEpisodeDotFanart + ' + Me.chkEpisodeDotFanart.AutoSize = True + Me.chkEpisodeDotFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkEpisodeDotFanart.Location = New System.Drawing.Point(5, 31) + Me.chkEpisodeDotFanart.Name = "chkEpisodeDotFanart" + Me.chkEpisodeDotFanart.Size = New System.Drawing.Size(137, 17) + Me.chkEpisodeDotFanart.TabIndex = 1 + Me.chkEpisodeDotFanart.Text = ".fanart.jpg" + Me.chkEpisodeDotFanart.UseVisualStyleBackColor = True + ' + 'chkEpisodeDashFanart + ' + Me.chkEpisodeDashFanart.AutoSize = True + Me.chkEpisodeDashFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkEpisodeDashFanart.Location = New System.Drawing.Point(5, 15) + Me.chkEpisodeDashFanart.Name = "chkEpisodeDashFanart" + Me.chkEpisodeDashFanart.Size = New System.Drawing.Size(138, 17) + Me.chkEpisodeDashFanart.TabIndex = 0 + Me.chkEpisodeDashFanart.Text = "-fanart.jpg" + Me.chkEpisodeDashFanart.UseVisualStyleBackColor = True + ' + 'gbEpisodePosters + ' + Me.gbEpisodePosters.Controls.Add(Me.chkEpisodeDashThumbJPG) + Me.gbEpisodePosters.Controls.Add(Me.chkEpisodeJPG) + Me.gbEpisodePosters.Controls.Add(Me.chkEpisodeTBN) + Me.gbEpisodePosters.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.gbEpisodePosters.Location = New System.Drawing.Point(292, 15) + Me.gbEpisodePosters.Name = "gbEpisodePosters" + Me.gbEpisodePosters.Size = New System.Drawing.Size(140, 74) + Me.gbEpisodePosters.TabIndex = 5 + Me.gbEpisodePosters.TabStop = False + Me.gbEpisodePosters.Text = "Episode Posters" + ' + 'chkEpisodeDashThumbJPG + ' + Me.chkEpisodeDashThumbJPG.AutoSize = True + Me.chkEpisodeDashThumbJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkEpisodeDashThumbJPG.ForeColor = System.Drawing.SystemColors.ControlText + Me.chkEpisodeDashThumbJPG.Location = New System.Drawing.Point(5, 49) + Me.chkEpisodeDashThumbJPG.Name = "chkEpisodeDashThumbJPG" + Me.chkEpisodeDashThumbJPG.Size = New System.Drawing.Size(141, 17) + Me.chkEpisodeDashThumbJPG.TabIndex = 2 + Me.chkEpisodeDashThumbJPG.Text = "-thumb.jpg" + Me.chkEpisodeDashThumbJPG.UseVisualStyleBackColor = True + ' + 'chkEpisodeJPG + ' + Me.chkEpisodeJPG.AutoSize = True + Me.chkEpisodeJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkEpisodeJPG.Location = New System.Drawing.Point(5, 31) + Me.chkEpisodeJPG.Name = "chkEpisodeJPG" + Me.chkEpisodeJPG.Size = New System.Drawing.Size(103, 17) + Me.chkEpisodeJPG.TabIndex = 1 + Me.chkEpisodeJPG.Text = ".jpg" + Me.chkEpisodeJPG.UseVisualStyleBackColor = True + ' + 'chkEpisodeTBN + ' + Me.chkEpisodeTBN.AutoSize = True + Me.chkEpisodeTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkEpisodeTBN.Location = New System.Drawing.Point(5, 15) + Me.chkEpisodeTBN.Name = "chkEpisodeTBN" + Me.chkEpisodeTBN.Size = New System.Drawing.Size(104, 17) + Me.chkEpisodeTBN.TabIndex = 0 + Me.chkEpisodeTBN.Text = ".tbn" + Me.chkEpisodeTBN.UseVisualStyleBackColor = True + ' + 'gbSeasonFanart + ' + Me.gbSeasonFanart.Controls.Add(Me.chkSeasonXXDashFanartJPG) + Me.gbSeasonFanart.Controls.Add(Me.chkSeasonDotFanart) + Me.gbSeasonFanart.Controls.Add(Me.chkSeasonDashFanart) + Me.gbSeasonFanart.Controls.Add(Me.chkSeasonFanartJPG) + Me.gbSeasonFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.gbSeasonFanart.Location = New System.Drawing.Point(143, 168) + Me.gbSeasonFanart.Name = "gbSeasonFanart" + Me.gbSeasonFanart.Size = New System.Drawing.Size(145, 81) + Me.gbSeasonFanart.TabIndex = 4 + Me.gbSeasonFanart.TabStop = False + Me.gbSeasonFanart.Text = "Season Fanart" + ' + 'chkSeasonXXDashFanartJPG + ' + Me.chkSeasonXXDashFanartJPG.AutoSize = True + Me.chkSeasonXXDashFanartJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkSeasonXXDashFanartJPG.ForeColor = System.Drawing.SystemColors.ControlText + Me.chkSeasonXXDashFanartJPG.Location = New System.Drawing.Point(6, 62) + Me.chkSeasonXXDashFanartJPG.Name = "chkSeasonXXDashFanartJPG" + Me.chkSeasonXXDashFanartJPG.Size = New System.Drawing.Size(129, 17) + Me.chkSeasonXXDashFanartJPG.TabIndex = 3 + Me.chkSeasonXXDashFanartJPG.Text = "seasonXX-fanart.jpg" + Me.chkSeasonXXDashFanartJPG.UseVisualStyleBackColor = True + ' + 'chkSeasonDotFanart + ' + Me.chkSeasonDotFanart.AutoSize = True + Me.chkSeasonDotFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkSeasonDotFanart.Location = New System.Drawing.Point(6, 47) + Me.chkSeasonDotFanart.Name = "chkSeasonDotFanart" + Me.chkSeasonDotFanart.Size = New System.Drawing.Size(132, 17) + Me.chkSeasonDotFanart.TabIndex = 2 + Me.chkSeasonDotFanart.Text = ".fanart.jpg" + Me.chkSeasonDotFanart.UseVisualStyleBackColor = True + ' + 'chkSeasonDashFanart + ' + Me.chkSeasonDashFanart.AutoSize = True + Me.chkSeasonDashFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkSeasonDashFanart.Location = New System.Drawing.Point(6, 31) + Me.chkSeasonDashFanart.Name = "chkSeasonDashFanart" + Me.chkSeasonDashFanart.Size = New System.Drawing.Size(133, 17) + Me.chkSeasonDashFanart.TabIndex = 1 + Me.chkSeasonDashFanart.Text = "-fanart.jpg" + Me.chkSeasonDashFanart.UseVisualStyleBackColor = True + ' + 'chkSeasonFanartJPG + ' + Me.chkSeasonFanartJPG.AutoSize = True + Me.chkSeasonFanartJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkSeasonFanartJPG.Location = New System.Drawing.Point(6, 15) + Me.chkSeasonFanartJPG.Name = "chkSeasonFanartJPG" + Me.chkSeasonFanartJPG.Size = New System.Drawing.Size(77, 17) + Me.chkSeasonFanartJPG.TabIndex = 0 + Me.chkSeasonFanartJPG.Text = "fanart.jpg" + Me.chkSeasonFanartJPG.UseVisualStyleBackColor = True + ' + 'gbSeasonPosters + ' + Me.gbSeasonPosters.Controls.Add(Me.chkSeasonXXDashPosterJPG) + Me.gbSeasonPosters.Controls.Add(Me.chkSeasonFolderJPG) + Me.gbSeasonPosters.Controls.Add(Me.chkSeasonNameJPG) + Me.gbSeasonPosters.Controls.Add(Me.chkSeasonNameTBN) + Me.gbSeasonPosters.Controls.Add(Me.chkSeasonPosterJPG) + Me.gbSeasonPosters.Controls.Add(Me.chkSeasonPosterTBN) + Me.gbSeasonPosters.Controls.Add(Me.chkSeasonXTBN) + Me.gbSeasonPosters.Controls.Add(Me.chkSeasonXXTBN) + Me.gbSeasonPosters.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.gbSeasonPosters.Location = New System.Drawing.Point(143, 15) + Me.gbSeasonPosters.Name = "gbSeasonPosters" + Me.gbSeasonPosters.Size = New System.Drawing.Size(145, 152) + Me.gbSeasonPosters.TabIndex = 3 + Me.gbSeasonPosters.TabStop = False + Me.gbSeasonPosters.Text = "Season Posters" + ' + 'chkSeasonXXDashPosterJPG + ' + Me.chkSeasonXXDashPosterJPG.AutoSize = True + Me.chkSeasonXXDashPosterJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkSeasonXXDashPosterJPG.ForeColor = System.Drawing.SystemColors.ControlText + Me.chkSeasonXXDashPosterJPG.Location = New System.Drawing.Point(6, 48) + Me.chkSeasonXXDashPosterJPG.Name = "chkSeasonXXDashPosterJPG" + Me.chkSeasonXXDashPosterJPG.Size = New System.Drawing.Size(131, 17) + Me.chkSeasonXXDashPosterJPG.TabIndex = 2 + Me.chkSeasonXXDashPosterJPG.Text = "seasonXX-poster.jpg" + Me.chkSeasonXXDashPosterJPG.UseVisualStyleBackColor = True + ' + 'chkSeasonFolderJPG + ' + Me.chkSeasonFolderJPG.AutoSize = True + Me.chkSeasonFolderJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkSeasonFolderJPG.Location = New System.Drawing.Point(6, 129) + Me.chkSeasonFolderJPG.Name = "chkSeasonFolderJPG" + Me.chkSeasonFolderJPG.Size = New System.Drawing.Size(77, 17) + Me.chkSeasonFolderJPG.TabIndex = 7 + Me.chkSeasonFolderJPG.Text = "folder.jpg" + Me.chkSeasonFolderJPG.UseVisualStyleBackColor = True + ' + 'chkSeasonNameJPG + ' + Me.chkSeasonNameJPG.AutoSize = True + Me.chkSeasonNameJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkSeasonNameJPG.Location = New System.Drawing.Point(6, 113) + Me.chkSeasonNameJPG.Name = "chkSeasonNameJPG" + Me.chkSeasonNameJPG.Size = New System.Drawing.Size(98, 17) + Me.chkSeasonNameJPG.TabIndex = 6 + Me.chkSeasonNameJPG.Text = ".jpg" + Me.chkSeasonNameJPG.UseVisualStyleBackColor = True + ' + 'chkSeasonNameTBN + ' + Me.chkSeasonNameTBN.AutoSize = True + Me.chkSeasonNameTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkSeasonNameTBN.Location = New System.Drawing.Point(6, 97) + Me.chkSeasonNameTBN.Name = "chkSeasonNameTBN" + Me.chkSeasonNameTBN.Size = New System.Drawing.Size(99, 17) + Me.chkSeasonNameTBN.TabIndex = 5 + Me.chkSeasonNameTBN.Text = ".tbn" + Me.chkSeasonNameTBN.UseVisualStyleBackColor = True + ' + 'chkSeasonPosterJPG + ' + Me.chkSeasonPosterJPG.AutoSize = True + Me.chkSeasonPosterJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkSeasonPosterJPG.Location = New System.Drawing.Point(6, 81) + Me.chkSeasonPosterJPG.Name = "chkSeasonPosterJPG" + Me.chkSeasonPosterJPG.Size = New System.Drawing.Size(79, 17) + Me.chkSeasonPosterJPG.TabIndex = 4 + Me.chkSeasonPosterJPG.Text = "poster.jpg" + Me.chkSeasonPosterJPG.UseVisualStyleBackColor = True + ' + 'chkSeasonPosterTBN + ' + Me.chkSeasonPosterTBN.AutoSize = True + Me.chkSeasonPosterTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkSeasonPosterTBN.Location = New System.Drawing.Point(6, 65) + Me.chkSeasonPosterTBN.Name = "chkSeasonPosterTBN" + Me.chkSeasonPosterTBN.Size = New System.Drawing.Size(80, 17) + Me.chkSeasonPosterTBN.TabIndex = 3 + Me.chkSeasonPosterTBN.Text = "poster.tbn" + Me.chkSeasonPosterTBN.UseVisualStyleBackColor = True + ' + 'chkSeasonXTBN + ' + Me.chkSeasonXTBN.AutoSize = True + Me.chkSeasonXTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkSeasonXTBN.Location = New System.Drawing.Point(6, 31) + Me.chkSeasonXTBN.Name = "chkSeasonXTBN" + Me.chkSeasonXTBN.Size = New System.Drawing.Size(89, 17) + Me.chkSeasonXTBN.TabIndex = 1 + Me.chkSeasonXTBN.Text = "seasonX.tbn" + Me.chkSeasonXTBN.UseVisualStyleBackColor = True + ' + 'chkSeasonXXTBN + ' + Me.chkSeasonXXTBN.AutoSize = True + Me.chkSeasonXXTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkSeasonXXTBN.Location = New System.Drawing.Point(6, 15) + Me.chkSeasonXXTBN.Name = "chkSeasonXXTBN" + Me.chkSeasonXXTBN.Size = New System.Drawing.Size(95, 17) + Me.chkSeasonXXTBN.TabIndex = 0 + Me.chkSeasonXXTBN.Text = "seasonXX.tbn" + Me.chkSeasonXXTBN.UseVisualStyleBackColor = True + ' + 'gbShowFanart + ' + Me.gbShowFanart.Controls.Add(Me.chkShowDotFanart) + Me.gbShowFanart.Controls.Add(Me.chkShowDashFanart) + Me.gbShowFanart.Controls.Add(Me.chkShowFanartJPG) + Me.gbShowFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.gbShowFanart.Location = New System.Drawing.Point(5, 120) + Me.gbShowFanart.Name = "gbShowFanart" + Me.gbShowFanart.Size = New System.Drawing.Size(133, 70) + Me.gbShowFanart.TabIndex = 1 + Me.gbShowFanart.TabStop = False + Me.gbShowFanart.Text = "Show Fanart" + ' + 'chkShowDotFanart + ' + Me.chkShowDotFanart.AutoSize = True + Me.chkShowDotFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkShowDotFanart.Location = New System.Drawing.Point(6, 51) + Me.chkShowDotFanart.Name = "chkShowDotFanart" + Me.chkShowDotFanart.Size = New System.Drawing.Size(124, 17) + Me.chkShowDotFanart.TabIndex = 2 + Me.chkShowDotFanart.Text = ".fanart.jpg" + Me.chkShowDotFanart.UseVisualStyleBackColor = True + ' + 'chkShowDashFanart + ' + Me.chkShowDashFanart.AutoSize = True + Me.chkShowDashFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkShowDashFanart.Location = New System.Drawing.Point(6, 35) + Me.chkShowDashFanart.Name = "chkShowDashFanart" + Me.chkShowDashFanart.Size = New System.Drawing.Size(125, 17) + Me.chkShowDashFanart.TabIndex = 1 + Me.chkShowDashFanart.Text = "-fanart.jpg" + Me.chkShowDashFanart.UseVisualStyleBackColor = True + ' + 'chkShowFanartJPG + ' + Me.chkShowFanartJPG.AutoSize = True + Me.chkShowFanartJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkShowFanartJPG.ForeColor = System.Drawing.SystemColors.ControlText + Me.chkShowFanartJPG.Location = New System.Drawing.Point(6, 19) + Me.chkShowFanartJPG.Name = "chkShowFanartJPG" + Me.chkShowFanartJPG.Size = New System.Drawing.Size(77, 17) + Me.chkShowFanartJPG.TabIndex = 0 + Me.chkShowFanartJPG.Text = "fanart.jpg" + Me.chkShowFanartJPG.UseVisualStyleBackColor = True + ' + 'gbShowPosters + ' + Me.gbShowPosters.Controls.Add(Me.chkShowJPG) + Me.gbShowPosters.Controls.Add(Me.chkShowTBN) + Me.gbShowPosters.Controls.Add(Me.chkShowPosterJPG) + Me.gbShowPosters.Controls.Add(Me.chkShowPosterTBN) + Me.gbShowPosters.Controls.Add(Me.chkShowFolderJPG) + Me.gbShowPosters.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.gbShowPosters.Location = New System.Drawing.Point(5, 15) + Me.gbShowPosters.Name = "gbShowPosters" + Me.gbShowPosters.Size = New System.Drawing.Size(133, 99) + Me.gbShowPosters.TabIndex = 0 + Me.gbShowPosters.TabStop = False + Me.gbShowPosters.Text = "Show Posters" + ' + 'chkShowJPG + ' + Me.chkShowJPG.AutoSize = True + Me.chkShowJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkShowJPG.Location = New System.Drawing.Point(6, 32) + Me.chkShowJPG.Name = "chkShowJPG" + Me.chkShowJPG.Size = New System.Drawing.Size(90, 17) + Me.chkShowJPG.TabIndex = 1 + Me.chkShowJPG.Text = ".jpg" + Me.chkShowJPG.UseVisualStyleBackColor = True + ' + 'chkShowTBN + ' + Me.chkShowTBN.AutoSize = True + Me.chkShowTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkShowTBN.Location = New System.Drawing.Point(6, 16) + Me.chkShowTBN.Name = "chkShowTBN" + Me.chkShowTBN.Size = New System.Drawing.Size(91, 17) + Me.chkShowTBN.TabIndex = 0 + Me.chkShowTBN.Text = ".tbn" + Me.chkShowTBN.UseVisualStyleBackColor = True + ' + 'chkShowPosterJPG + ' + Me.chkShowPosterJPG.AutoSize = True + Me.chkShowPosterJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkShowPosterJPG.ForeColor = System.Drawing.SystemColors.ControlText + Me.chkShowPosterJPG.Location = New System.Drawing.Point(6, 64) + Me.chkShowPosterJPG.Name = "chkShowPosterJPG" + Me.chkShowPosterJPG.Size = New System.Drawing.Size(79, 17) + Me.chkShowPosterJPG.TabIndex = 3 + Me.chkShowPosterJPG.Text = "poster.jpg" + Me.chkShowPosterJPG.UseVisualStyleBackColor = True + ' + 'chkShowPosterTBN + ' + Me.chkShowPosterTBN.AutoSize = True + Me.chkShowPosterTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkShowPosterTBN.Location = New System.Drawing.Point(6, 48) + Me.chkShowPosterTBN.Name = "chkShowPosterTBN" + Me.chkShowPosterTBN.Size = New System.Drawing.Size(80, 17) + Me.chkShowPosterTBN.TabIndex = 2 + Me.chkShowPosterTBN.Text = "poster.tbn" + Me.chkShowPosterTBN.UseVisualStyleBackColor = True + ' + 'chkShowFolderJPG + ' + Me.chkShowFolderJPG.AutoSize = True + Me.chkShowFolderJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkShowFolderJPG.Location = New System.Drawing.Point(6, 80) + Me.chkShowFolderJPG.Name = "chkShowFolderJPG" + Me.chkShowFolderJPG.Size = New System.Drawing.Size(77, 17) + Me.chkShowFolderJPG.TabIndex = 4 + Me.chkShowFolderJPG.Text = "folder.jpg" + Me.chkShowFolderJPG.UseVisualStyleBackColor = True + ' + 'TabPage4 + ' + Me.TabPage4.Controls.Add(Me.btnGetTVProfiles) + Me.TabPage4.Controls.Add(Me.btnRegexDown) + Me.TabPage4.Controls.Add(Me.btnRegexUp) + Me.TabPage4.Controls.Add(Me.btnResetShowRegex) + Me.TabPage4.Controls.Add(Me.gbShowRegex) + Me.TabPage4.Controls.Add(Me.btnEditShowRegex) + Me.TabPage4.Controls.Add(Me.btnRemoveShowRegex) + Me.TabPage4.Controls.Add(Me.lvShowRegex) + Me.TabPage4.Location = New System.Drawing.Point(4, 22) + Me.TabPage4.Name = "TabPage4" + Me.TabPage4.Padding = New System.Windows.Forms.Padding(3) + Me.TabPage4.Size = New System.Drawing.Size(604, 366) + Me.TabPage4.TabIndex = 1 + Me.TabPage4.Text = "Regex" + Me.TabPage4.UseVisualStyleBackColor = True + ' + 'btnGetTVProfiles + ' + Me.btnGetTVProfiles.Image = CType(resources.GetObject("btnGetTVProfiles.Image"), System.Drawing.Image) + Me.btnGetTVProfiles.Location = New System.Drawing.Point(550, 3) + Me.btnGetTVProfiles.Name = "btnGetTVProfiles" + Me.btnGetTVProfiles.Size = New System.Drawing.Size(23, 23) + Me.btnGetTVProfiles.TabIndex = 1 + Me.btnGetTVProfiles.UseVisualStyleBackColor = True + ' + 'btnRegexDown + ' + Me.btnRegexDown.Image = CType(resources.GetObject("btnRegexDown.Image"), System.Drawing.Image) + Me.btnRegexDown.Location = New System.Drawing.Point(304, 167) + Me.btnRegexDown.Name = "btnRegexDown" + Me.btnRegexDown.Size = New System.Drawing.Size(23, 23) + Me.btnRegexDown.TabIndex = 5 + Me.btnRegexDown.UseVisualStyleBackColor = True + ' + 'btnRegexUp + ' + Me.btnRegexUp.Image = CType(resources.GetObject("btnRegexUp.Image"), System.Drawing.Image) + Me.btnRegexUp.Location = New System.Drawing.Point(280, 167) + Me.btnRegexUp.Name = "btnRegexUp" + Me.btnRegexUp.Size = New System.Drawing.Size(23, 23) + Me.btnRegexUp.TabIndex = 4 + Me.btnRegexUp.UseVisualStyleBackColor = True + ' + 'btnResetShowRegex + ' + Me.btnResetShowRegex.Image = CType(resources.GetObject("btnResetShowRegex.Image"), System.Drawing.Image) + Me.btnResetShowRegex.Location = New System.Drawing.Point(576, 3) + Me.btnResetShowRegex.Name = "btnResetShowRegex" + Me.btnResetShowRegex.Size = New System.Drawing.Size(23, 23) + Me.btnResetShowRegex.TabIndex = 2 + Me.btnResetShowRegex.UseVisualStyleBackColor = True + ' + 'gbShowRegex + ' + Me.gbShowRegex.Controls.Add(Me.btnClearRegex) + Me.gbShowRegex.Controls.Add(Me.lblSeasonMatch) + Me.gbShowRegex.Controls.Add(Me.btnAddShowRegex) + Me.gbShowRegex.Controls.Add(Me.txtSeasonRegex) + Me.gbShowRegex.Controls.Add(Me.lblEpisodeRetrieve) + Me.gbShowRegex.Controls.Add(Me.cboSeasonRetrieve) + Me.gbShowRegex.Controls.Add(Me.lblSeasonRetrieve) + Me.gbShowRegex.Controls.Add(Me.txtEpRegex) + Me.gbShowRegex.Controls.Add(Me.lblEpisodeMatch) + Me.gbShowRegex.Controls.Add(Me.cboEpRetrieve) + Me.gbShowRegex.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.gbShowRegex.Location = New System.Drawing.Point(6, 196) + Me.gbShowRegex.Name = "gbShowRegex" + Me.gbShowRegex.Size = New System.Drawing.Size(592, 148) + Me.gbShowRegex.TabIndex = 7 + Me.gbShowRegex.TabStop = False + Me.gbShowRegex.Text = "Show Match Regex" + ' + 'btnClearRegex + ' + Me.btnClearRegex.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.btnClearRegex.Image = CType(resources.GetObject("btnClearRegex.Image"), System.Drawing.Image) + Me.btnClearRegex.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnClearRegex.Location = New System.Drawing.Point(10, 116) + Me.btnClearRegex.Name = "btnClearRegex" + Me.btnClearRegex.Size = New System.Drawing.Size(104, 23) + Me.btnClearRegex.TabIndex = 8 + Me.btnClearRegex.Text = "Clear" + Me.btnClearRegex.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnClearRegex.UseVisualStyleBackColor = True + ' + 'lblSeasonMatch + ' + Me.lblSeasonMatch.AutoSize = True + Me.lblSeasonMatch.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblSeasonMatch.Location = New System.Drawing.Point(8, 25) + Me.lblSeasonMatch.Name = "lblSeasonMatch" + Me.lblSeasonMatch.Size = New System.Drawing.Size(116, 13) + Me.lblSeasonMatch.TabIndex = 0 + Me.lblSeasonMatch.Text = "Season Match Regex:" + ' + 'btnAddShowRegex + ' + Me.btnAddShowRegex.Enabled = False + Me.btnAddShowRegex.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.btnAddShowRegex.Image = CType(resources.GetObject("btnAddShowRegex.Image"), System.Drawing.Image) + Me.btnAddShowRegex.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnAddShowRegex.Location = New System.Drawing.Point(482, 117) + Me.btnAddShowRegex.Name = "btnAddShowRegex" + Me.btnAddShowRegex.Size = New System.Drawing.Size(104, 23) + Me.btnAddShowRegex.TabIndex = 9 + Me.btnAddShowRegex.Text = "Add Regex" + Me.btnAddShowRegex.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnAddShowRegex.UseVisualStyleBackColor = True + ' + 'txtSeasonRegex + ' + Me.txtSeasonRegex.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtSeasonRegex.Location = New System.Drawing.Point(10, 40) + Me.txtSeasonRegex.Name = "txtSeasonRegex" + Me.txtSeasonRegex.Size = New System.Drawing.Size(417, 22) + Me.txtSeasonRegex.TabIndex = 1 + ' + 'lblEpisodeRetrieve + ' + Me.lblEpisodeRetrieve.AutoSize = True + Me.lblEpisodeRetrieve.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblEpisodeRetrieve.Location = New System.Drawing.Point(441, 69) + Me.lblEpisodeRetrieve.Name = "lblEpisodeRetrieve" + Me.lblEpisodeRetrieve.Size = New System.Drawing.Size(54, 13) + Me.lblEpisodeRetrieve.TabIndex = 6 + Me.lblEpisodeRetrieve.Text = "Apply To:" + ' + 'cboSeasonRetrieve + ' + Me.cboSeasonRetrieve.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cboSeasonRetrieve.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.cboSeasonRetrieve.FormattingEnabled = True + Me.cboSeasonRetrieve.Items.AddRange(New Object() {"Folder Name", "File Name"}) + Me.cboSeasonRetrieve.Location = New System.Drawing.Point(443, 40) + Me.cboSeasonRetrieve.Name = "cboSeasonRetrieve" + Me.cboSeasonRetrieve.Size = New System.Drawing.Size(135, 21) + Me.cboSeasonRetrieve.TabIndex = 3 + ' + 'lblSeasonRetrieve + ' + Me.lblSeasonRetrieve.AutoSize = True + Me.lblSeasonRetrieve.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblSeasonRetrieve.Location = New System.Drawing.Point(441, 25) + Me.lblSeasonRetrieve.Name = "lblSeasonRetrieve" + Me.lblSeasonRetrieve.Size = New System.Drawing.Size(54, 13) + Me.lblSeasonRetrieve.TabIndex = 2 + Me.lblSeasonRetrieve.Text = "Apply To:" + ' + 'txtEpRegex + ' + Me.txtEpRegex.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtEpRegex.Location = New System.Drawing.Point(10, 84) + Me.txtEpRegex.Name = "txtEpRegex" + Me.txtEpRegex.Size = New System.Drawing.Size(417, 22) + Me.txtEpRegex.TabIndex = 5 + ' + 'lblEpisodeMatch + ' + Me.lblEpisodeMatch.AutoSize = True + Me.lblEpisodeMatch.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblEpisodeMatch.Location = New System.Drawing.Point(8, 69) + Me.lblEpisodeMatch.Name = "lblEpisodeMatch" + Me.lblEpisodeMatch.Size = New System.Drawing.Size(120, 13) + Me.lblEpisodeMatch.TabIndex = 4 + Me.lblEpisodeMatch.Text = "Episode Match Regex:" + ' + 'cboEpRetrieve + ' + Me.cboEpRetrieve.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cboEpRetrieve.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.cboEpRetrieve.FormattingEnabled = True + Me.cboEpRetrieve.Items.AddRange(New Object() {"Folder Name", "File Name", "Season Result"}) + Me.cboEpRetrieve.Location = New System.Drawing.Point(443, 84) + Me.cboEpRetrieve.Name = "cboEpRetrieve" + Me.cboEpRetrieve.Size = New System.Drawing.Size(135, 21) + Me.cboEpRetrieve.TabIndex = 7 + ' + 'btnEditShowRegex + ' + Me.btnEditShowRegex.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.btnEditShowRegex.Image = CType(resources.GetObject("btnEditShowRegex.Image"), System.Drawing.Image) + Me.btnEditShowRegex.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnEditShowRegex.Location = New System.Drawing.Point(1, 167) + Me.btnEditShowRegex.Name = "btnEditShowRegex" + Me.btnEditShowRegex.Size = New System.Drawing.Size(104, 23) + Me.btnEditShowRegex.TabIndex = 3 + Me.btnEditShowRegex.Text = "Edit Regex" + Me.btnEditShowRegex.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnEditShowRegex.UseVisualStyleBackColor = True + ' + 'btnRemoveShowRegex + ' + Me.btnRemoveShowRegex.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.btnRemoveShowRegex.Image = CType(resources.GetObject("btnRemoveShowRegex.Image"), System.Drawing.Image) + Me.btnRemoveShowRegex.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnRemoveShowRegex.Location = New System.Drawing.Point(494, 167) + Me.btnRemoveShowRegex.Name = "btnRemoveShowRegex" + Me.btnRemoveShowRegex.Size = New System.Drawing.Size(104, 23) + Me.btnRemoveShowRegex.TabIndex = 6 + Me.btnRemoveShowRegex.Text = "Remove" + Me.btnRemoveShowRegex.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnRemoveShowRegex.UseVisualStyleBackColor = True + ' + 'lvShowRegex + ' + Me.lvShowRegex.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.colRegID, Me.colSeason, Me.colSeasonApply, Me.colEpisode, Me.colEpApply}) + Me.lvShowRegex.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lvShowRegex.FullRowSelect = True + Me.lvShowRegex.HideSelection = False + Me.lvShowRegex.Location = New System.Drawing.Point(0, 28) + Me.lvShowRegex.Name = "lvShowRegex" + Me.lvShowRegex.Size = New System.Drawing.Size(598, 135) + Me.lvShowRegex.Sorting = System.Windows.Forms.SortOrder.Ascending + Me.lvShowRegex.TabIndex = 0 + Me.lvShowRegex.UseCompatibleStateImageBehavior = False + Me.lvShowRegex.View = System.Windows.Forms.View.Details + ' + 'colRegID + ' + Me.colRegID.DisplayIndex = 4 + Me.colRegID.Width = 0 + ' + 'colSeason + ' + Me.colSeason.DisplayIndex = 0 + Me.colSeason.Text = "Season Regex" + Me.colSeason.Width = 224 + ' + 'colSeasonApply + ' + Me.colSeasonApply.DisplayIndex = 1 + Me.colSeasonApply.Text = "Apply To" + Me.colSeasonApply.Width = 70 + ' + 'colEpisode + ' + Me.colEpisode.DisplayIndex = 2 + Me.colEpisode.Text = "Episode Regex" + Me.colEpisode.Width = 219 + ' + 'colEpApply + ' + Me.colEpApply.DisplayIndex = 3 + Me.colEpApply.Text = "Apply To" + Me.colEpApply.Width = 70 + ' + 'pnlShows + ' + Me.pnlShows.BackColor = System.Drawing.Color.White + Me.pnlShows.Controls.Add(Me.gbTVListOptions) + Me.pnlShows.Controls.Add(Me.gbTVMisc) + Me.pnlShows.Controls.Add(Me.gbEpFilter) + Me.pnlShows.Controls.Add(Me.gbShowFilter) + Me.pnlShows.Location = New System.Drawing.Point(850, 750) + Me.pnlShows.Name = "pnlShows" + Me.pnlShows.Size = New System.Drawing.Size(617, 400) + Me.pnlShows.TabIndex = 20 + Me.pnlShows.Visible = False + ' + 'gbTVListOptions + ' + Me.gbTVListOptions.Controls.Add(Me.chkDisplayMissingEpisodes) + Me.gbTVListOptions.Controls.Add(Me.gbEpisodeListOptions) + Me.gbTVListOptions.Controls.Add(Me.gbSeasonListOptions) + Me.gbTVListOptions.Controls.Add(Me.gbShowListOptions) + Me.gbTVListOptions.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.gbTVListOptions.Location = New System.Drawing.Point(6, 143) + Me.gbTVListOptions.Name = "gbTVListOptions" + Me.gbTVListOptions.Size = New System.Drawing.Size(219, 252) + Me.gbTVListOptions.TabIndex = 1 + Me.gbTVListOptions.TabStop = False + Me.gbTVListOptions.Text = "Media List Options" + ' + 'chkDisplayMissingEpisodes + ' + Me.chkDisplayMissingEpisodes.AutoSize = True + Me.chkDisplayMissingEpisodes.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkDisplayMissingEpisodes.Location = New System.Drawing.Point(8, 231) + Me.chkDisplayMissingEpisodes.Name = "chkDisplayMissingEpisodes" + Me.chkDisplayMissingEpisodes.Size = New System.Drawing.Size(155, 17) + Me.chkDisplayMissingEpisodes.TabIndex = 3 + Me.chkDisplayMissingEpisodes.Text = "Display Missing Episodes" + Me.chkDisplayMissingEpisodes.UseVisualStyleBackColor = True + ' + 'gbEpisodeListOptions + ' + Me.gbEpisodeListOptions.Controls.Add(Me.chkEpisodeWatchedCol) + Me.gbEpisodeListOptions.Controls.Add(Me.chkEpisodeNfoCol) + Me.gbEpisodeListOptions.Controls.Add(Me.chkEpisodeFanartCol) + Me.gbEpisodeListOptions.Controls.Add(Me.chkEpisodePosterCol) + Me.gbEpisodeListOptions.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.gbEpisodeListOptions.Location = New System.Drawing.Point(10, 143) + Me.gbEpisodeListOptions.Name = "gbEpisodeListOptions" + Me.gbEpisodeListOptions.Size = New System.Drawing.Size(199, 86) + Me.gbEpisodeListOptions.TabIndex = 2 + Me.gbEpisodeListOptions.TabStop = False + Me.gbEpisodeListOptions.Text = "Episodes" + ' + 'chkEpisodeWatchedCol + ' + Me.chkEpisodeWatchedCol.AutoSize = True + Me.chkEpisodeWatchedCol.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkEpisodeWatchedCol.Location = New System.Drawing.Point(7, 64) + Me.chkEpisodeWatchedCol.Name = "chkEpisodeWatchedCol" + Me.chkEpisodeWatchedCol.Size = New System.Drawing.Size(142, 17) + Me.chkEpisodeWatchedCol.TabIndex = 3 + Me.chkEpisodeWatchedCol.Text = "Hide Watched Column" + Me.chkEpisodeWatchedCol.UseVisualStyleBackColor = True + ' + 'chkEpisodeNfoCol + ' + Me.chkEpisodeNfoCol.AutoSize = True + Me.chkEpisodeNfoCol.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkEpisodeNfoCol.Location = New System.Drawing.Point(7, 48) + Me.chkEpisodeNfoCol.Name = "chkEpisodeNfoCol" + Me.chkEpisodeNfoCol.Size = New System.Drawing.Size(117, 17) + Me.chkEpisodeNfoCol.TabIndex = 2 + Me.chkEpisodeNfoCol.Text = "Hide Info Column" + Me.chkEpisodeNfoCol.UseVisualStyleBackColor = True + ' + 'chkEpisodeFanartCol + ' + Me.chkEpisodeFanartCol.AutoSize = True + Me.chkEpisodeFanartCol.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkEpisodeFanartCol.Location = New System.Drawing.Point(7, 32) + Me.chkEpisodeFanartCol.Name = "chkEpisodeFanartCol" + Me.chkEpisodeFanartCol.Size = New System.Drawing.Size(129, 17) + Me.chkEpisodeFanartCol.TabIndex = 1 + Me.chkEpisodeFanartCol.Text = "Hide Fanart Column" + Me.chkEpisodeFanartCol.UseVisualStyleBackColor = True + ' + 'chkEpisodePosterCol + ' + Me.chkEpisodePosterCol.AutoSize = True + Me.chkEpisodePosterCol.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkEpisodePosterCol.Location = New System.Drawing.Point(7, 16) + Me.chkEpisodePosterCol.Name = "chkEpisodePosterCol" + Me.chkEpisodePosterCol.Size = New System.Drawing.Size(128, 17) + Me.chkEpisodePosterCol.TabIndex = 0 + Me.chkEpisodePosterCol.Text = "Hide Poster Column" + Me.chkEpisodePosterCol.UseVisualStyleBackColor = True + ' + 'gbSeasonListOptions + ' + Me.gbSeasonListOptions.Controls.Add(Me.chkSeasonFanartCol) + Me.gbSeasonListOptions.Controls.Add(Me.chkSeasonPosterCol) + Me.gbSeasonListOptions.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.gbSeasonListOptions.Location = New System.Drawing.Point(10, 87) + Me.gbSeasonListOptions.Name = "gbSeasonListOptions" + Me.gbSeasonListOptions.Size = New System.Drawing.Size(199, 52) + Me.gbSeasonListOptions.TabIndex = 1 + Me.gbSeasonListOptions.TabStop = False + Me.gbSeasonListOptions.Text = "Seasons" + ' + 'chkSeasonFanartCol + ' + Me.chkSeasonFanartCol.AutoSize = True + Me.chkSeasonFanartCol.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkSeasonFanartCol.Location = New System.Drawing.Point(7, 32) + Me.chkSeasonFanartCol.Name = "chkSeasonFanartCol" + Me.chkSeasonFanartCol.Size = New System.Drawing.Size(129, 17) + Me.chkSeasonFanartCol.TabIndex = 1 + Me.chkSeasonFanartCol.Text = "Hide Fanart Column" + Me.chkSeasonFanartCol.UseVisualStyleBackColor = True + ' + 'chkSeasonPosterCol + ' + Me.chkSeasonPosterCol.AutoSize = True + Me.chkSeasonPosterCol.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkSeasonPosterCol.Location = New System.Drawing.Point(7, 16) + Me.chkSeasonPosterCol.Name = "chkSeasonPosterCol" + Me.chkSeasonPosterCol.Size = New System.Drawing.Size(128, 17) + Me.chkSeasonPosterCol.TabIndex = 0 + Me.chkSeasonPosterCol.Text = "Hide Poster Column" + Me.chkSeasonPosterCol.UseVisualStyleBackColor = True + ' + 'gbShowListOptions + ' + Me.gbShowListOptions.Controls.Add(Me.chkShowNfoCol) + Me.gbShowListOptions.Controls.Add(Me.chkShowFanartCol) + Me.gbShowListOptions.Controls.Add(Me.chkShowPosterCol) + Me.gbShowListOptions.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.gbShowListOptions.Location = New System.Drawing.Point(9, 16) + Me.gbShowListOptions.Name = "gbShowListOptions" + Me.gbShowListOptions.Size = New System.Drawing.Size(199, 68) + Me.gbShowListOptions.TabIndex = 0 + Me.gbShowListOptions.TabStop = False + Me.gbShowListOptions.Text = "Shows" + ' + 'chkShowNfoCol + ' + Me.chkShowNfoCol.AutoSize = True + Me.chkShowNfoCol.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkShowNfoCol.Location = New System.Drawing.Point(7, 48) + Me.chkShowNfoCol.Name = "chkShowNfoCol" + Me.chkShowNfoCol.Size = New System.Drawing.Size(117, 17) + Me.chkShowNfoCol.TabIndex = 2 + Me.chkShowNfoCol.Text = "Hide Info Column" + Me.chkShowNfoCol.UseVisualStyleBackColor = True + ' + 'chkShowFanartCol + ' + Me.chkShowFanartCol.AutoSize = True + Me.chkShowFanartCol.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkShowFanartCol.Location = New System.Drawing.Point(7, 32) + Me.chkShowFanartCol.Name = "chkShowFanartCol" + Me.chkShowFanartCol.Size = New System.Drawing.Size(129, 17) + Me.chkShowFanartCol.TabIndex = 1 + Me.chkShowFanartCol.Text = "Hide Fanart Column" + Me.chkShowFanartCol.UseVisualStyleBackColor = True + ' + 'chkShowPosterCol + ' + Me.chkShowPosterCol.AutoSize = True + Me.chkShowPosterCol.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkShowPosterCol.Location = New System.Drawing.Point(7, 16) + Me.chkShowPosterCol.Name = "chkShowPosterCol" + Me.chkShowPosterCol.Size = New System.Drawing.Size(128, 17) + Me.chkShowPosterCol.TabIndex = 0 + Me.chkShowPosterCol.Text = "Hide Poster Column" + Me.chkShowPosterCol.UseVisualStyleBackColor = True + ' + 'gbTVMisc + ' + Me.gbTVMisc.Controls.Add(Me.chkMarkNewShows) + Me.gbTVMisc.Controls.Add(Me.chkMarkNewEpisodes) + Me.gbTVMisc.Controls.Add(Me.chkDisplayAllSeason) + Me.gbTVMisc.Controls.Add(Me.lblRatingRegion) + Me.gbTVMisc.Controls.Add(Me.cbRatingRegion) + Me.gbTVMisc.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.gbTVMisc.Location = New System.Drawing.Point(6, 7) + Me.gbTVMisc.Name = "gbTVMisc" + Me.gbTVMisc.Size = New System.Drawing.Size(219, 130) + Me.gbTVMisc.TabIndex = 0 + Me.gbTVMisc.TabStop = False + Me.gbTVMisc.Text = "Miscellaneous" + ' + 'chkMarkNewShows + ' + Me.chkMarkNewShows.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkMarkNewShows.Location = New System.Drawing.Point(8, 90) + Me.chkMarkNewShows.Name = "chkMarkNewShows" + Me.chkMarkNewShows.Size = New System.Drawing.Size(204, 17) + Me.chkMarkNewShows.TabIndex = 3 + Me.chkMarkNewShows.Text = "Mark New Shows" + Me.chkMarkNewShows.UseVisualStyleBackColor = True + ' + 'chkMarkNewEpisodes + ' + Me.chkMarkNewEpisodes.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkMarkNewEpisodes.Location = New System.Drawing.Point(8, 113) + Me.chkMarkNewEpisodes.Name = "chkMarkNewEpisodes" + Me.chkMarkNewEpisodes.Size = New System.Drawing.Size(204, 17) + Me.chkMarkNewEpisodes.TabIndex = 4 + Me.chkMarkNewEpisodes.Text = "Mark New Episodes" + Me.chkMarkNewEpisodes.UseVisualStyleBackColor = True + ' + 'chkDisplayAllSeason + ' + Me.chkDisplayAllSeason.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkDisplayAllSeason.Location = New System.Drawing.Point(8, 67) + Me.chkDisplayAllSeason.Name = "chkDisplayAllSeason" + Me.chkDisplayAllSeason.Size = New System.Drawing.Size(204, 17) + Me.chkDisplayAllSeason.TabIndex = 2 + Me.chkDisplayAllSeason.Text = "Display All Season Poster" + Me.chkDisplayAllSeason.UseVisualStyleBackColor = True + ' + 'lblRatingRegion + ' + Me.lblRatingRegion.AutoSize = True + Me.lblRatingRegion.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblRatingRegion.Location = New System.Drawing.Point(8, 21) + Me.lblRatingRegion.Name = "lblRatingRegion" + Me.lblRatingRegion.Size = New System.Drawing.Size(99, 13) + Me.lblRatingRegion.TabIndex = 0 + Me.lblRatingRegion.Text = "TV Rating Region:" + ' + 'cbRatingRegion + ' + Me.cbRatingRegion.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cbRatingRegion.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.cbRatingRegion.FormattingEnabled = True + Me.cbRatingRegion.Location = New System.Drawing.Point(8, 36) + Me.cbRatingRegion.Name = "cbRatingRegion" + Me.cbRatingRegion.Size = New System.Drawing.Size(163, 21) + Me.cbRatingRegion.TabIndex = 1 + ' + 'gbEpFilter + ' + Me.gbEpFilter.Controls.Add(Me.btnResetEpFilter) + Me.gbEpFilter.Controls.Add(Me.chkNoFilterEpisode) + Me.gbEpFilter.Controls.Add(Me.btnEpFilterDown) + Me.gbEpFilter.Controls.Add(Me.btnEpFilterUp) + Me.gbEpFilter.Controls.Add(Me.chkEpProperCase) + Me.gbEpFilter.Controls.Add(Me.btnRemoveEpFilter) + Me.gbEpFilter.Controls.Add(Me.btnAddEpFilter) + Me.gbEpFilter.Controls.Add(Me.txtEpFilter) + Me.gbEpFilter.Controls.Add(Me.lstEpFilters) + Me.gbEpFilter.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.gbEpFilter.Location = New System.Drawing.Point(229, 185) + Me.gbEpFilter.Name = "gbEpFilter" + Me.gbEpFilter.Size = New System.Drawing.Size(382, 205) + Me.gbEpFilter.TabIndex = 3 + Me.gbEpFilter.TabStop = False + Me.gbEpFilter.Text = "Episode Folder/File Name Filters" + ' + 'btnResetEpFilter + ' + Me.btnResetEpFilter.Image = CType(resources.GetObject("btnResetEpFilter.Image"), System.Drawing.Image) + Me.btnResetEpFilter.Location = New System.Drawing.Point(354, 38) + Me.btnResetEpFilter.Name = "btnResetEpFilter" + Me.btnResetEpFilter.Size = New System.Drawing.Size(23, 23) + Me.btnResetEpFilter.TabIndex = 3 + Me.btnResetEpFilter.UseVisualStyleBackColor = True + ' + 'chkNoFilterEpisode + ' + Me.chkNoFilterEpisode.CheckAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkNoFilterEpisode.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.chkNoFilterEpisode.Location = New System.Drawing.Point(6, 15) + Me.chkNoFilterEpisode.Name = "chkNoFilterEpisode" + Me.chkNoFilterEpisode.Size = New System.Drawing.Size(371, 21) + Me.chkNoFilterEpisode.TabIndex = 0 + Me.chkNoFilterEpisode.Text = "Build Episode Title Instead of Filtering" + Me.chkNoFilterEpisode.TextAlign = System.Drawing.ContentAlignment.TopLeft + Me.chkNoFilterEpisode.UseVisualStyleBackColor = True + ' + 'btnEpFilterDown + ' + Me.btnEpFilterDown.Image = CType(resources.GetObject("btnEpFilterDown.Image"), System.Drawing.Image) + Me.btnEpFilterDown.Location = New System.Drawing.Point(320, 176) + Me.btnEpFilterDown.Name = "btnEpFilterDown" + Me.btnEpFilterDown.Size = New System.Drawing.Size(23, 23) + Me.btnEpFilterDown.TabIndex = 7 + Me.btnEpFilterDown.UseVisualStyleBackColor = True + ' + 'btnEpFilterUp + ' + Me.btnEpFilterUp.Image = CType(resources.GetObject("btnEpFilterUp.Image"), System.Drawing.Image) + Me.btnEpFilterUp.Location = New System.Drawing.Point(296, 176) + Me.btnEpFilterUp.Name = "btnEpFilterUp" + Me.btnEpFilterUp.Size = New System.Drawing.Size(23, 23) + Me.btnEpFilterUp.TabIndex = 6 + Me.btnEpFilterUp.UseVisualStyleBackColor = True + ' + 'chkEpProperCase + ' + Me.chkEpProperCase.AutoSize = True + Me.chkEpProperCase.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkEpProperCase.Location = New System.Drawing.Point(6, 47) + Me.chkEpProperCase.Name = "chkEpProperCase" + Me.chkEpProperCase.Size = New System.Drawing.Size(181, 17) + Me.chkEpProperCase.TabIndex = 1 + Me.chkEpProperCase.Text = "Convert Names to Proper Case" + Me.chkEpProperCase.UseVisualStyleBackColor = True + ' + 'btnRemoveEpFilter + ' + Me.btnRemoveEpFilter.Image = CType(resources.GetObject("btnRemoveEpFilter.Image"), System.Drawing.Image) + Me.btnRemoveEpFilter.Location = New System.Drawing.Point(354, 176) + Me.btnRemoveEpFilter.Name = "btnRemoveEpFilter" + Me.btnRemoveEpFilter.Size = New System.Drawing.Size(23, 23) + Me.btnRemoveEpFilter.TabIndex = 8 + Me.btnRemoveEpFilter.UseVisualStyleBackColor = True + ' + 'btnAddEpFilter + ' + Me.btnAddEpFilter.Image = CType(resources.GetObject("btnAddEpFilter.Image"), System.Drawing.Image) + Me.btnAddEpFilter.Location = New System.Drawing.Point(260, 176) + Me.btnAddEpFilter.Name = "btnAddEpFilter" + Me.btnAddEpFilter.Size = New System.Drawing.Size(23, 23) + Me.btnAddEpFilter.TabIndex = 5 + Me.btnAddEpFilter.UseVisualStyleBackColor = True + ' + 'txtEpFilter + ' + Me.txtEpFilter.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtEpFilter.Location = New System.Drawing.Point(6, 177) + Me.txtEpFilter.Name = "txtEpFilter" + Me.txtEpFilter.Size = New System.Drawing.Size(252, 22) + Me.txtEpFilter.TabIndex = 4 + ' + 'lstEpFilters + ' + Me.lstEpFilters.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lstEpFilters.FormattingEnabled = True + Me.lstEpFilters.Location = New System.Drawing.Point(6, 64) + Me.lstEpFilters.Name = "lstEpFilters" + Me.lstEpFilters.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended + Me.lstEpFilters.Size = New System.Drawing.Size(371, 95) + Me.lstEpFilters.TabIndex = 2 + ' + 'gbShowFilter + ' + Me.gbShowFilter.Controls.Add(Me.btnResetShowFilters) + Me.gbShowFilter.Controls.Add(Me.btnShowFilterDown) + Me.gbShowFilter.Controls.Add(Me.btnShowFilterUp) + Me.gbShowFilter.Controls.Add(Me.chkShowProperCase) + Me.gbShowFilter.Controls.Add(Me.btnRemoveShowFilter) + Me.gbShowFilter.Controls.Add(Me.btnAddShowFilter) + Me.gbShowFilter.Controls.Add(Me.txtShowFilter) + Me.gbShowFilter.Controls.Add(Me.lstShowFilters) + Me.gbShowFilter.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.gbShowFilter.Location = New System.Drawing.Point(229, 7) + Me.gbShowFilter.Name = "gbShowFilter" + Me.gbShowFilter.Size = New System.Drawing.Size(382, 175) + Me.gbShowFilter.TabIndex = 2 + Me.gbShowFilter.TabStop = False + Me.gbShowFilter.Text = "Show Folder/File Name Filters" + ' + 'btnResetShowFilters + ' + Me.btnResetShowFilters.Image = CType(resources.GetObject("btnResetShowFilters.Image"), System.Drawing.Image) + Me.btnResetShowFilters.Location = New System.Drawing.Point(354, 9) + Me.btnResetShowFilters.Name = "btnResetShowFilters" + Me.btnResetShowFilters.Size = New System.Drawing.Size(23, 23) + Me.btnResetShowFilters.TabIndex = 2 + Me.btnResetShowFilters.UseVisualStyleBackColor = True + ' + 'btnShowFilterDown + ' + Me.btnShowFilterDown.Image = CType(resources.GetObject("btnShowFilterDown.Image"), System.Drawing.Image) + Me.btnShowFilterDown.Location = New System.Drawing.Point(320, 146) + Me.btnShowFilterDown.Name = "btnShowFilterDown" + Me.btnShowFilterDown.Size = New System.Drawing.Size(23, 23) + Me.btnShowFilterDown.TabIndex = 6 + Me.btnShowFilterDown.UseVisualStyleBackColor = True + ' + 'btnShowFilterUp + ' + Me.btnShowFilterUp.Image = CType(resources.GetObject("btnShowFilterUp.Image"), System.Drawing.Image) + Me.btnShowFilterUp.Location = New System.Drawing.Point(296, 146) + Me.btnShowFilterUp.Name = "btnShowFilterUp" + Me.btnShowFilterUp.Size = New System.Drawing.Size(23, 23) + Me.btnShowFilterUp.TabIndex = 5 + Me.btnShowFilterUp.UseVisualStyleBackColor = True + ' + 'chkShowProperCase + ' + Me.chkShowProperCase.AutoSize = True + Me.chkShowProperCase.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkShowProperCase.Location = New System.Drawing.Point(6, 17) + Me.chkShowProperCase.Name = "chkShowProperCase" + Me.chkShowProperCase.Size = New System.Drawing.Size(181, 17) + Me.chkShowProperCase.TabIndex = 0 + Me.chkShowProperCase.Text = "Convert Names to Proper Case" + Me.chkShowProperCase.UseVisualStyleBackColor = True + ' + 'btnRemoveShowFilter + ' + Me.btnRemoveShowFilter.Image = CType(resources.GetObject("btnRemoveShowFilter.Image"), System.Drawing.Image) + Me.btnRemoveShowFilter.Location = New System.Drawing.Point(354, 146) + Me.btnRemoveShowFilter.Name = "btnRemoveShowFilter" + Me.btnRemoveShowFilter.Size = New System.Drawing.Size(23, 23) + Me.btnRemoveShowFilter.TabIndex = 7 + Me.btnRemoveShowFilter.UseVisualStyleBackColor = True + ' + 'btnAddShowFilter + ' + Me.btnAddShowFilter.Image = CType(resources.GetObject("btnAddShowFilter.Image"), System.Drawing.Image) + Me.btnAddShowFilter.Location = New System.Drawing.Point(260, 146) + Me.btnAddShowFilter.Name = "btnAddShowFilter" + Me.btnAddShowFilter.Size = New System.Drawing.Size(23, 23) + Me.btnAddShowFilter.TabIndex = 4 + Me.btnAddShowFilter.UseVisualStyleBackColor = True + ' + 'txtShowFilter + ' + Me.txtShowFilter.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtShowFilter.Location = New System.Drawing.Point(6, 147) + Me.txtShowFilter.Name = "txtShowFilter" + Me.txtShowFilter.Size = New System.Drawing.Size(252, 22) + Me.txtShowFilter.TabIndex = 3 + ' + 'lstShowFilters + ' + Me.lstShowFilters.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lstShowFilters.FormattingEnabled = True + Me.lstShowFilters.Location = New System.Drawing.Point(6, 35) + Me.lstShowFilters.Name = "lstShowFilters" + Me.lstShowFilters.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended + Me.lstShowFilters.Size = New System.Drawing.Size(371, 95) + Me.lstShowFilters.TabIndex = 1 + ' + 'pnlTVImages + ' + Me.pnlTVImages.BackColor = System.Drawing.Color.White + Me.pnlTVImages.Controls.Add(Me.TabControl3) + Me.pnlTVImages.Location = New System.Drawing.Point(913, 685) + Me.pnlTVImages.Name = "pnlTVImages" + Me.pnlTVImages.Size = New System.Drawing.Size(617, 402) + Me.pnlTVImages.TabIndex = 16 + Me.pnlTVImages.Visible = False + ' + 'TabControl3 + ' + Me.TabControl3.Controls.Add(Me.TabPage5) + Me.TabControl3.Controls.Add(Me.TabPage6) + Me.TabControl3.Controls.Add(Me.TabPage7) + Me.TabControl3.Controls.Add(Me.TabPage8) + Me.TabControl3.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.TabControl3.Location = New System.Drawing.Point(5, 6) + Me.TabControl3.Name = "TabControl3" + Me.TabControl3.SelectedIndex = 0 + Me.TabControl3.Size = New System.Drawing.Size(609, 397) + Me.TabControl3.TabIndex = 0 + ' + 'TabPage5 + ' + Me.TabPage5.Controls.Add(Me.gbAllSPosterOpts) + Me.TabPage5.Controls.Add(Me.gbShowPosterOpts) + Me.TabPage5.Controls.Add(Me.gbShowFanartOpts) + Me.TabPage5.Location = New System.Drawing.Point(4, 22) + Me.TabPage5.Name = "TabPage5" + Me.TabPage5.Padding = New System.Windows.Forms.Padding(3) + Me.TabPage5.Size = New System.Drawing.Size(601, 371) + Me.TabPage5.TabIndex = 0 + Me.TabPage5.Text = "TV Show" + Me.TabPage5.UseVisualStyleBackColor = True + ' + 'gbAllSPosterOpts + ' + Me.gbAllSPosterOpts.Controls.Add(Me.rbAllSPoster) + Me.gbAllSPosterOpts.Controls.Add(Me.rbAllSBanner) + Me.gbAllSPosterOpts.Controls.Add(Me.txtAllSPosterWidth) + Me.gbAllSPosterOpts.Controls.Add(Me.txtAllSPosterHeight) + Me.gbAllSPosterOpts.Controls.Add(Me.lblAllSPosterQual) + Me.gbAllSPosterOpts.Controls.Add(Me.tbAllSPosterQual) + Me.gbAllSPosterOpts.Controls.Add(Me.lblAllSPosterQ) + Me.gbAllSPosterOpts.Controls.Add(Me.lblAllSPosterWidth) + Me.gbAllSPosterOpts.Controls.Add(Me.lblAllSPosterHeight) + Me.gbAllSPosterOpts.Controls.Add(Me.chkResizeAllSPoster) + Me.gbAllSPosterOpts.Controls.Add(Me.lblAllSPosterSize) + Me.gbAllSPosterOpts.Controls.Add(Me.cbAllSPosterSize) + Me.gbAllSPosterOpts.Controls.Add(Me.chkOverwriteAllSPoster) + Me.gbAllSPosterOpts.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.gbAllSPosterOpts.Location = New System.Drawing.Point(238, 5) + Me.gbAllSPosterOpts.Name = "gbAllSPosterOpts" + Me.gbAllSPosterOpts.Size = New System.Drawing.Size(228, 191) + Me.gbAllSPosterOpts.TabIndex = 0 + Me.gbAllSPosterOpts.TabStop = False + Me.gbAllSPosterOpts.Text = "All Season Posters" + ' + 'rbAllSPoster + ' + Me.rbAllSPoster.AutoSize = True + Me.rbAllSPoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.rbAllSPoster.Location = New System.Drawing.Point(93, 30) + Me.rbAllSPoster.Name = "rbAllSPoster" + Me.rbAllSPoster.Size = New System.Drawing.Size(57, 17) + Me.rbAllSPoster.TabIndex = 2 + Me.rbAllSPoster.TabStop = True + Me.rbAllSPoster.Text = "Poster" + Me.rbAllSPoster.UseVisualStyleBackColor = True + ' + 'rbAllSBanner + ' + Me.rbAllSBanner.AutoSize = True + Me.rbAllSBanner.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.rbAllSBanner.Location = New System.Drawing.Point(8, 30) + Me.rbAllSBanner.Name = "rbAllSBanner" + Me.rbAllSBanner.Size = New System.Drawing.Size(62, 17) + Me.rbAllSBanner.TabIndex = 1 + Me.rbAllSBanner.TabStop = True + Me.rbAllSBanner.Text = "Banner" + Me.rbAllSBanner.UseVisualStyleBackColor = True + ' + 'txtAllSPosterWidth + ' + Me.txtAllSPosterWidth.Enabled = False + Me.txtAllSPosterWidth.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtAllSPosterWidth.Location = New System.Drawing.Point(71, 113) + Me.txtAllSPosterWidth.Name = "txtAllSPosterWidth" + Me.txtAllSPosterWidth.Size = New System.Drawing.Size(40, 22) + Me.txtAllSPosterWidth.TabIndex = 7 + ' + 'txtAllSPosterHeight + ' + Me.txtAllSPosterHeight.Enabled = False + Me.txtAllSPosterHeight.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtAllSPosterHeight.Location = New System.Drawing.Point(182, 113) + Me.txtAllSPosterHeight.Name = "txtAllSPosterHeight" + Me.txtAllSPosterHeight.Size = New System.Drawing.Size(40, 22) + Me.txtAllSPosterHeight.TabIndex = 9 + ' + 'lblAllSPosterQual + ' + Me.lblAllSPosterQual.AutoSize = True + Me.lblAllSPosterQual.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblAllSPosterQual.Location = New System.Drawing.Point(183, 161) + Me.lblAllSPosterQual.Name = "lblAllSPosterQual" + Me.lblAllSPosterQual.Size = New System.Drawing.Size(29, 17) + Me.lblAllSPosterQual.TabIndex = 12 + Me.lblAllSPosterQual.Text = "100" + ' + 'tbAllSPosterQual + ' + Me.tbAllSPosterQual.AutoSize = False + Me.tbAllSPosterQual.BackColor = System.Drawing.Color.White + Me.tbAllSPosterQual.LargeChange = 10 + Me.tbAllSPosterQual.Location = New System.Drawing.Point(7, 154) + Me.tbAllSPosterQual.Maximum = 100 + Me.tbAllSPosterQual.Name = "tbAllSPosterQual" + Me.tbAllSPosterQual.Size = New System.Drawing.Size(179, 27) + Me.tbAllSPosterQual.TabIndex = 11 + Me.tbAllSPosterQual.TickFrequency = 10 + Me.tbAllSPosterQual.Value = 100 + ' + 'lblAllSPosterQ + ' + Me.lblAllSPosterQ.AutoSize = True + Me.lblAllSPosterQ.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblAllSPosterQ.Location = New System.Drawing.Point(3, 141) + Me.lblAllSPosterQ.Name = "lblAllSPosterQ" + Me.lblAllSPosterQ.Size = New System.Drawing.Size(46, 13) + Me.lblAllSPosterQ.TabIndex = 10 + Me.lblAllSPosterQ.Text = "Quality:" + ' + 'lblAllSPosterWidth + ' + Me.lblAllSPosterWidth.AutoSize = True + Me.lblAllSPosterWidth.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblAllSPosterWidth.Location = New System.Drawing.Point(3, 117) + Me.lblAllSPosterWidth.Name = "lblAllSPosterWidth" + Me.lblAllSPosterWidth.Size = New System.Drawing.Size(66, 13) + Me.lblAllSPosterWidth.TabIndex = 6 + Me.lblAllSPosterWidth.Text = "Max Width:" + ' + 'lblAllSPosterHeight + ' + Me.lblAllSPosterHeight.AutoSize = True + Me.lblAllSPosterHeight.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblAllSPosterHeight.Location = New System.Drawing.Point(112, 117) + Me.lblAllSPosterHeight.Name = "lblAllSPosterHeight" + Me.lblAllSPosterHeight.Size = New System.Drawing.Size(69, 13) + Me.lblAllSPosterHeight.TabIndex = 8 + Me.lblAllSPosterHeight.Text = "Max Height:" + ' + 'chkResizeAllSPoster + ' + Me.chkResizeAllSPoster.AutoSize = True + Me.chkResizeAllSPoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkResizeAllSPoster.Location = New System.Drawing.Point(6, 92) + Me.chkResizeAllSPoster.Name = "chkResizeAllSPoster" + Me.chkResizeAllSPoster.Size = New System.Drawing.Size(133, 17) + Me.chkResizeAllSPoster.TabIndex = 5 + Me.chkResizeAllSPoster.Text = "Automatically Resize:" + Me.chkResizeAllSPoster.UseVisualStyleBackColor = True + ' + 'lblAllSPosterSize + ' + Me.lblAllSPosterSize.AutoSize = True + Me.lblAllSPosterSize.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblAllSPosterSize.Location = New System.Drawing.Point(3, 14) + Me.lblAllSPosterSize.Name = "lblAllSPosterSize" + Me.lblAllSPosterSize.Size = New System.Drawing.Size(83, 13) + Me.lblAllSPosterSize.TabIndex = 0 + Me.lblAllSPosterSize.Text = "Preferred Type:" + ' + 'cbAllSPosterSize + ' + Me.cbAllSPosterSize.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cbAllSPosterSize.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.cbAllSPosterSize.FormattingEnabled = True + Me.cbAllSPosterSize.Location = New System.Drawing.Point(6, 52) + Me.cbAllSPosterSize.Name = "cbAllSPosterSize" + Me.cbAllSPosterSize.Size = New System.Drawing.Size(148, 21) + Me.cbAllSPosterSize.TabIndex = 3 + ' + 'chkOverwriteAllSPoster + ' + Me.chkOverwriteAllSPoster.AutoSize = True + Me.chkOverwriteAllSPoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkOverwriteAllSPoster.Location = New System.Drawing.Point(6, 76) + Me.chkOverwriteAllSPoster.Name = "chkOverwriteAllSPoster" + Me.chkOverwriteAllSPoster.Size = New System.Drawing.Size(119, 17) + Me.chkOverwriteAllSPoster.TabIndex = 4 + Me.chkOverwriteAllSPoster.Text = "Overwrite Existing" + Me.chkOverwriteAllSPoster.UseVisualStyleBackColor = True + ' + 'gbShowPosterOpts + ' + Me.gbShowPosterOpts.Controls.Add(Me.rbPoster) + Me.gbShowPosterOpts.Controls.Add(Me.rbBanner) + Me.gbShowPosterOpts.Controls.Add(Me.txtShowPosterWidth) + Me.gbShowPosterOpts.Controls.Add(Me.txtShowPosterHeight) + Me.gbShowPosterOpts.Controls.Add(Me.lblShowPosterQual) + Me.gbShowPosterOpts.Controls.Add(Me.tbShowPosterQual) + Me.gbShowPosterOpts.Controls.Add(Me.lblShowPosterQ) + Me.gbShowPosterOpts.Controls.Add(Me.lblShowPosterWidth) + Me.gbShowPosterOpts.Controls.Add(Me.lblShowPosterHeight) + Me.gbShowPosterOpts.Controls.Add(Me.chkResizeShowPoster) + Me.gbShowPosterOpts.Controls.Add(Me.lblShowPosterSize) + Me.gbShowPosterOpts.Controls.Add(Me.cbShowPosterSize) + Me.gbShowPosterOpts.Controls.Add(Me.chkOverwriteShowPoster) + Me.gbShowPosterOpts.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.gbShowPosterOpts.Location = New System.Drawing.Point(4, 5) + Me.gbShowPosterOpts.Name = "gbShowPosterOpts" + Me.gbShowPosterOpts.Size = New System.Drawing.Size(228, 191) + Me.gbShowPosterOpts.TabIndex = 0 + Me.gbShowPosterOpts.TabStop = False + Me.gbShowPosterOpts.Text = "Poster" + ' + 'rbPoster + ' + Me.rbPoster.AutoSize = True + Me.rbPoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.rbPoster.Location = New System.Drawing.Point(93, 30) + Me.rbPoster.Name = "rbPoster" + Me.rbPoster.Size = New System.Drawing.Size(57, 17) + Me.rbPoster.TabIndex = 2 + Me.rbPoster.TabStop = True + Me.rbPoster.Text = "Poster" + Me.rbPoster.UseVisualStyleBackColor = True + ' + 'rbBanner + ' + Me.rbBanner.AutoSize = True + Me.rbBanner.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.rbBanner.Location = New System.Drawing.Point(8, 30) + Me.rbBanner.Name = "rbBanner" + Me.rbBanner.Size = New System.Drawing.Size(62, 17) + Me.rbBanner.TabIndex = 1 + Me.rbBanner.TabStop = True + Me.rbBanner.Text = "Banner" + Me.rbBanner.UseVisualStyleBackColor = True + ' + 'txtShowPosterWidth + ' + Me.txtShowPosterWidth.Enabled = False + Me.txtShowPosterWidth.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtShowPosterWidth.Location = New System.Drawing.Point(71, 113) + Me.txtShowPosterWidth.Name = "txtShowPosterWidth" + Me.txtShowPosterWidth.Size = New System.Drawing.Size(40, 22) + Me.txtShowPosterWidth.TabIndex = 7 + ' + 'txtShowPosterHeight + ' + Me.txtShowPosterHeight.Enabled = False + Me.txtShowPosterHeight.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtShowPosterHeight.Location = New System.Drawing.Point(182, 113) + Me.txtShowPosterHeight.Name = "txtShowPosterHeight" + Me.txtShowPosterHeight.Size = New System.Drawing.Size(40, 22) + Me.txtShowPosterHeight.TabIndex = 9 + ' + 'lblShowPosterQual + ' + Me.lblShowPosterQual.AutoSize = True + Me.lblShowPosterQual.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblShowPosterQual.Location = New System.Drawing.Point(183, 161) + Me.lblShowPosterQual.Name = "lblShowPosterQual" + Me.lblShowPosterQual.Size = New System.Drawing.Size(29, 17) + Me.lblShowPosterQual.TabIndex = 12 + Me.lblShowPosterQual.Text = "100" + ' + 'tbShowPosterQual + ' + Me.tbShowPosterQual.AutoSize = False + Me.tbShowPosterQual.BackColor = System.Drawing.Color.White + Me.tbShowPosterQual.LargeChange = 10 + Me.tbShowPosterQual.Location = New System.Drawing.Point(7, 154) + Me.tbShowPosterQual.Maximum = 100 + Me.tbShowPosterQual.Name = "tbShowPosterQual" + Me.tbShowPosterQual.Size = New System.Drawing.Size(179, 27) + Me.tbShowPosterQual.TabIndex = 11 + Me.tbShowPosterQual.TickFrequency = 10 + Me.tbShowPosterQual.Value = 100 + ' + 'lblShowPosterQ + ' + Me.lblShowPosterQ.AutoSize = True + Me.lblShowPosterQ.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblShowPosterQ.Location = New System.Drawing.Point(3, 141) + Me.lblShowPosterQ.Name = "lblShowPosterQ" + Me.lblShowPosterQ.Size = New System.Drawing.Size(46, 13) + Me.lblShowPosterQ.TabIndex = 10 + Me.lblShowPosterQ.Text = "Quality:" + ' + 'lblShowPosterWidth + ' + Me.lblShowPosterWidth.AutoSize = True + Me.lblShowPosterWidth.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblShowPosterWidth.Location = New System.Drawing.Point(3, 117) + Me.lblShowPosterWidth.Name = "lblShowPosterWidth" + Me.lblShowPosterWidth.Size = New System.Drawing.Size(66, 13) + Me.lblShowPosterWidth.TabIndex = 6 + Me.lblShowPosterWidth.Text = "Max Width:" + ' + 'lblShowPosterHeight + ' + Me.lblShowPosterHeight.AutoSize = True + Me.lblShowPosterHeight.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblShowPosterHeight.Location = New System.Drawing.Point(112, 117) + Me.lblShowPosterHeight.Name = "lblShowPosterHeight" + Me.lblShowPosterHeight.Size = New System.Drawing.Size(69, 13) + Me.lblShowPosterHeight.TabIndex = 8 + Me.lblShowPosterHeight.Text = "Max Height:" + ' + 'chkResizeShowPoster + ' + Me.chkResizeShowPoster.AutoSize = True + Me.chkResizeShowPoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkResizeShowPoster.Location = New System.Drawing.Point(6, 92) + Me.chkResizeShowPoster.Name = "chkResizeShowPoster" + Me.chkResizeShowPoster.Size = New System.Drawing.Size(133, 17) + Me.chkResizeShowPoster.TabIndex = 5 + Me.chkResizeShowPoster.Text = "Automatically Resize:" + Me.chkResizeShowPoster.UseVisualStyleBackColor = True + ' + 'lblShowPosterSize + ' + Me.lblShowPosterSize.AutoSize = True + Me.lblShowPosterSize.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblShowPosterSize.Location = New System.Drawing.Point(3, 14) + Me.lblShowPosterSize.Name = "lblShowPosterSize" + Me.lblShowPosterSize.Size = New System.Drawing.Size(83, 13) + Me.lblShowPosterSize.TabIndex = 0 + Me.lblShowPosterSize.Text = "Preferred Type:" + ' + 'cbShowPosterSize + ' + Me.cbShowPosterSize.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cbShowPosterSize.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.cbShowPosterSize.FormattingEnabled = True + Me.cbShowPosterSize.Location = New System.Drawing.Point(6, 52) + Me.cbShowPosterSize.Name = "cbShowPosterSize" + Me.cbShowPosterSize.Size = New System.Drawing.Size(148, 21) + Me.cbShowPosterSize.TabIndex = 3 + ' + 'chkOverwriteShowPoster + ' + Me.chkOverwriteShowPoster.AutoSize = True + Me.chkOverwriteShowPoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkOverwriteShowPoster.Location = New System.Drawing.Point(6, 76) + Me.chkOverwriteShowPoster.Name = "chkOverwriteShowPoster" + Me.chkOverwriteShowPoster.Size = New System.Drawing.Size(119, 17) + Me.chkOverwriteShowPoster.TabIndex = 4 + Me.chkOverwriteShowPoster.Text = "Overwrite Existing" + Me.chkOverwriteShowPoster.UseVisualStyleBackColor = True + ' + 'gbShowFanartOpts + ' + Me.gbShowFanartOpts.Controls.Add(Me.txtShowFanartWidth) + Me.gbShowFanartOpts.Controls.Add(Me.txtShowFanartHeight) + Me.gbShowFanartOpts.Controls.Add(Me.lblShowFanartQual) + Me.gbShowFanartOpts.Controls.Add(Me.tbShowFanartQual) + Me.gbShowFanartOpts.Controls.Add(Me.lblShowFanartQ) + Me.gbShowFanartOpts.Controls.Add(Me.lblShowFanartWidth) + Me.gbShowFanartOpts.Controls.Add(Me.lblShowFanartHeight) + Me.gbShowFanartOpts.Controls.Add(Me.chkResizeShowFanart) + Me.gbShowFanartOpts.Controls.Add(Me.cbShowFanartSize) + Me.gbShowFanartOpts.Controls.Add(Me.lblShowFanartSize) + Me.gbShowFanartOpts.Controls.Add(Me.chkOverwriteShowFanart) + Me.gbShowFanartOpts.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.gbShowFanartOpts.Location = New System.Drawing.Point(4, 199) + Me.gbShowFanartOpts.Name = "gbShowFanartOpts" + Me.gbShowFanartOpts.Size = New System.Drawing.Size(228, 167) + Me.gbShowFanartOpts.TabIndex = 1 + Me.gbShowFanartOpts.TabStop = False + Me.gbShowFanartOpts.Text = "Fanart" + ' + 'txtShowFanartWidth + ' + Me.txtShowFanartWidth.Enabled = False + Me.txtShowFanartWidth.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtShowFanartWidth.Location = New System.Drawing.Point(71, 90) + Me.txtShowFanartWidth.Name = "txtShowFanartWidth" + Me.txtShowFanartWidth.Size = New System.Drawing.Size(40, 22) + Me.txtShowFanartWidth.TabIndex = 5 + ' + 'txtShowFanartHeight + ' + Me.txtShowFanartHeight.Enabled = False + Me.txtShowFanartHeight.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtShowFanartHeight.Location = New System.Drawing.Point(182, 90) + Me.txtShowFanartHeight.Name = "txtShowFanartHeight" + Me.txtShowFanartHeight.Size = New System.Drawing.Size(40, 22) + Me.txtShowFanartHeight.TabIndex = 7 + ' + 'lblShowFanartQual + ' + Me.lblShowFanartQual.AutoSize = True + Me.lblShowFanartQual.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblShowFanartQual.Location = New System.Drawing.Point(183, 138) + Me.lblShowFanartQual.Name = "lblShowFanartQual" + Me.lblShowFanartQual.Size = New System.Drawing.Size(29, 17) + Me.lblShowFanartQual.TabIndex = 10 + Me.lblShowFanartQual.Text = "100" + ' + 'tbShowFanartQual + ' + Me.tbShowFanartQual.AutoSize = False + Me.tbShowFanartQual.BackColor = System.Drawing.Color.White + Me.tbShowFanartQual.LargeChange = 10 + Me.tbShowFanartQual.Location = New System.Drawing.Point(7, 131) + Me.tbShowFanartQual.Maximum = 100 + Me.tbShowFanartQual.Name = "tbShowFanartQual" + Me.tbShowFanartQual.Size = New System.Drawing.Size(180, 27) + Me.tbShowFanartQual.TabIndex = 9 + Me.tbShowFanartQual.TickFrequency = 10 + Me.tbShowFanartQual.Value = 100 + ' + 'lblShowFanartQ + ' + Me.lblShowFanartQ.AutoSize = True + Me.lblShowFanartQ.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblShowFanartQ.Location = New System.Drawing.Point(3, 118) + Me.lblShowFanartQ.Name = "lblShowFanartQ" + Me.lblShowFanartQ.Size = New System.Drawing.Size(46, 13) + Me.lblShowFanartQ.TabIndex = 8 + Me.lblShowFanartQ.Text = "Quality:" + ' + 'lblShowFanartWidth + ' + Me.lblShowFanartWidth.AutoSize = True + Me.lblShowFanartWidth.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblShowFanartWidth.Location = New System.Drawing.Point(3, 94) + Me.lblShowFanartWidth.Name = "lblShowFanartWidth" + Me.lblShowFanartWidth.Size = New System.Drawing.Size(66, 13) + Me.lblShowFanartWidth.TabIndex = 4 + Me.lblShowFanartWidth.Text = "Max Width:" + ' + 'lblShowFanartHeight + ' + Me.lblShowFanartHeight.AutoSize = True + Me.lblShowFanartHeight.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblShowFanartHeight.Location = New System.Drawing.Point(112, 94) + Me.lblShowFanartHeight.Name = "lblShowFanartHeight" + Me.lblShowFanartHeight.Size = New System.Drawing.Size(69, 13) + Me.lblShowFanartHeight.TabIndex = 6 + Me.lblShowFanartHeight.Text = "Max Height:" + ' + 'chkResizeShowFanart + ' + Me.chkResizeShowFanart.AutoSize = True + Me.chkResizeShowFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkResizeShowFanart.Location = New System.Drawing.Point(6, 69) + Me.chkResizeShowFanart.Name = "chkResizeShowFanart" + Me.chkResizeShowFanart.Size = New System.Drawing.Size(133, 17) + Me.chkResizeShowFanart.TabIndex = 3 + Me.chkResizeShowFanart.Text = "Automatically Resize:" + Me.chkResizeShowFanart.UseVisualStyleBackColor = True + ' + 'cbShowFanartSize + ' + Me.cbShowFanartSize.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cbShowFanartSize.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.cbShowFanartSize.FormattingEnabled = True + Me.cbShowFanartSize.Location = New System.Drawing.Point(6, 29) + Me.cbShowFanartSize.Name = "cbShowFanartSize" + Me.cbShowFanartSize.Size = New System.Drawing.Size(148, 21) + Me.cbShowFanartSize.TabIndex = 1 + ' + 'lblShowFanartSize + ' + Me.lblShowFanartSize.AutoSize = True + Me.lblShowFanartSize.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblShowFanartSize.Location = New System.Drawing.Point(3, 14) + Me.lblShowFanartSize.Name = "lblShowFanartSize" + Me.lblShowFanartSize.Size = New System.Drawing.Size(80, 13) + Me.lblShowFanartSize.TabIndex = 0 + Me.lblShowFanartSize.Text = "Preferred Size:" + ' + 'chkOverwriteShowFanart + ' + Me.chkOverwriteShowFanart.AutoSize = True + Me.chkOverwriteShowFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkOverwriteShowFanart.Location = New System.Drawing.Point(6, 53) + Me.chkOverwriteShowFanart.Name = "chkOverwriteShowFanart" + Me.chkOverwriteShowFanart.Size = New System.Drawing.Size(119, 17) + Me.chkOverwriteShowFanart.TabIndex = 2 + Me.chkOverwriteShowFanart.Text = "Overwrite Existing" + Me.chkOverwriteShowFanart.UseVisualStyleBackColor = True + ' + 'TabPage6 + ' + Me.TabPage6.Controls.Add(Me.gbSeaPosterOpts) + Me.TabPage6.Controls.Add(Me.gbSeaFanartOpts) + Me.TabPage6.Location = New System.Drawing.Point(4, 22) + Me.TabPage6.Name = "TabPage6" + Me.TabPage6.Size = New System.Drawing.Size(601, 371) + Me.TabPage6.TabIndex = 2 + Me.TabPage6.Text = "TV Season" + Me.TabPage6.UseVisualStyleBackColor = True + ' + 'gbSeaPosterOpts + ' + Me.gbSeaPosterOpts.Controls.Add(Me.txtSeaPosterWidth) + Me.gbSeaPosterOpts.Controls.Add(Me.txtSeaPosterHeight) + Me.gbSeaPosterOpts.Controls.Add(Me.lblSeaPosterQual) + Me.gbSeaPosterOpts.Controls.Add(Me.tbSeaPosterQual) + Me.gbSeaPosterOpts.Controls.Add(Me.lblSeaPosterQ) + Me.gbSeaPosterOpts.Controls.Add(Me.lblSeaPosterWidth) + Me.gbSeaPosterOpts.Controls.Add(Me.lblSeaPosterHeight) + Me.gbSeaPosterOpts.Controls.Add(Me.chkSeaResizePoster) + Me.gbSeaPosterOpts.Controls.Add(Me.lblSeaPosterSize) + Me.gbSeaPosterOpts.Controls.Add(Me.cbSeaPosterSize) + Me.gbSeaPosterOpts.Controls.Add(Me.chkSeaOverwritePoster) + Me.gbSeaPosterOpts.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.gbSeaPosterOpts.Location = New System.Drawing.Point(4, 5) + Me.gbSeaPosterOpts.Name = "gbSeaPosterOpts" + Me.gbSeaPosterOpts.Size = New System.Drawing.Size(228, 167) + Me.gbSeaPosterOpts.TabIndex = 0 + Me.gbSeaPosterOpts.TabStop = False + Me.gbSeaPosterOpts.Text = "Poster" + ' + 'txtSeaPosterWidth + ' + Me.txtSeaPosterWidth.Enabled = False + Me.txtSeaPosterWidth.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtSeaPosterWidth.Location = New System.Drawing.Point(71, 90) + Me.txtSeaPosterWidth.Name = "txtSeaPosterWidth" + Me.txtSeaPosterWidth.Size = New System.Drawing.Size(40, 22) + Me.txtSeaPosterWidth.TabIndex = 5 + ' + 'txtSeaPosterHeight + ' + Me.txtSeaPosterHeight.Enabled = False + Me.txtSeaPosterHeight.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtSeaPosterHeight.Location = New System.Drawing.Point(182, 90) + Me.txtSeaPosterHeight.Name = "txtSeaPosterHeight" + Me.txtSeaPosterHeight.Size = New System.Drawing.Size(40, 22) + Me.txtSeaPosterHeight.TabIndex = 7 + ' + 'lblSeaPosterQual + ' + Me.lblSeaPosterQual.AutoSize = True + Me.lblSeaPosterQual.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblSeaPosterQual.Location = New System.Drawing.Point(183, 138) + Me.lblSeaPosterQual.Name = "lblSeaPosterQual" + Me.lblSeaPosterQual.Size = New System.Drawing.Size(29, 17) + Me.lblSeaPosterQual.TabIndex = 10 + Me.lblSeaPosterQual.Text = "100" + ' + 'tbSeaPosterQual + ' + Me.tbSeaPosterQual.AutoSize = False + Me.tbSeaPosterQual.BackColor = System.Drawing.Color.White + Me.tbSeaPosterQual.LargeChange = 10 + Me.tbSeaPosterQual.Location = New System.Drawing.Point(7, 131) + Me.tbSeaPosterQual.Maximum = 100 + Me.tbSeaPosterQual.Name = "tbSeaPosterQual" + Me.tbSeaPosterQual.Size = New System.Drawing.Size(179, 27) + Me.tbSeaPosterQual.TabIndex = 9 + Me.tbSeaPosterQual.TickFrequency = 10 + Me.tbSeaPosterQual.Value = 100 + ' + 'lblSeaPosterQ + ' + Me.lblSeaPosterQ.AutoSize = True + Me.lblSeaPosterQ.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblSeaPosterQ.Location = New System.Drawing.Point(3, 118) + Me.lblSeaPosterQ.Name = "lblSeaPosterQ" + Me.lblSeaPosterQ.Size = New System.Drawing.Size(46, 13) + Me.lblSeaPosterQ.TabIndex = 8 + Me.lblSeaPosterQ.Text = "Quality:" + ' + 'lblSeaPosterWidth + ' + Me.lblSeaPosterWidth.AutoSize = True + Me.lblSeaPosterWidth.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblSeaPosterWidth.Location = New System.Drawing.Point(3, 94) + Me.lblSeaPosterWidth.Name = "lblSeaPosterWidth" + Me.lblSeaPosterWidth.Size = New System.Drawing.Size(66, 13) + Me.lblSeaPosterWidth.TabIndex = 4 + Me.lblSeaPosterWidth.Text = "Max Width:" + ' + 'lblSeaPosterHeight + ' + Me.lblSeaPosterHeight.AutoSize = True + Me.lblSeaPosterHeight.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblSeaPosterHeight.Location = New System.Drawing.Point(112, 94) + Me.lblSeaPosterHeight.Name = "lblSeaPosterHeight" + Me.lblSeaPosterHeight.Size = New System.Drawing.Size(69, 13) + Me.lblSeaPosterHeight.TabIndex = 6 + Me.lblSeaPosterHeight.Text = "Max Height:" + ' + 'chkSeaResizePoster + ' + Me.chkSeaResizePoster.AutoSize = True + Me.chkSeaResizePoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkSeaResizePoster.Location = New System.Drawing.Point(6, 69) + Me.chkSeaResizePoster.Name = "chkSeaResizePoster" + Me.chkSeaResizePoster.Size = New System.Drawing.Size(133, 17) + Me.chkSeaResizePoster.TabIndex = 3 + Me.chkSeaResizePoster.Text = "Automatically Resize:" + Me.chkSeaResizePoster.UseVisualStyleBackColor = True + ' + 'lblSeaPosterSize + ' + Me.lblSeaPosterSize.AutoSize = True + Me.lblSeaPosterSize.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblSeaPosterSize.Location = New System.Drawing.Point(3, 14) + Me.lblSeaPosterSize.Name = "lblSeaPosterSize" + Me.lblSeaPosterSize.Size = New System.Drawing.Size(83, 13) + Me.lblSeaPosterSize.TabIndex = 0 + Me.lblSeaPosterSize.Text = "Preferred Type:" + ' + 'cbSeaPosterSize + ' + Me.cbSeaPosterSize.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cbSeaPosterSize.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.cbSeaPosterSize.FormattingEnabled = True + Me.cbSeaPosterSize.Location = New System.Drawing.Point(6, 29) + Me.cbSeaPosterSize.Name = "cbSeaPosterSize" + Me.cbSeaPosterSize.Size = New System.Drawing.Size(148, 21) + Me.cbSeaPosterSize.TabIndex = 1 + ' + 'chkSeaOverwritePoster + ' + Me.chkSeaOverwritePoster.AutoSize = True + Me.chkSeaOverwritePoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkSeaOverwritePoster.Location = New System.Drawing.Point(6, 53) + Me.chkSeaOverwritePoster.Name = "chkSeaOverwritePoster" + Me.chkSeaOverwritePoster.Size = New System.Drawing.Size(119, 17) + Me.chkSeaOverwritePoster.TabIndex = 2 + Me.chkSeaOverwritePoster.Text = "Overwrite Existing" + Me.chkSeaOverwritePoster.UseVisualStyleBackColor = True + ' + 'gbSeaFanartOpts + ' + Me.gbSeaFanartOpts.Controls.Add(Me.txtSeaFanartWidth) + Me.gbSeaFanartOpts.Controls.Add(Me.txtSeaFanartHeight) + Me.gbSeaFanartOpts.Controls.Add(Me.lblSeaFanartQual) + Me.gbSeaFanartOpts.Controls.Add(Me.tbSeaFanartQual) + Me.gbSeaFanartOpts.Controls.Add(Me.lblSeaFanartQ) + Me.gbSeaFanartOpts.Controls.Add(Me.lblSeaFanartWidth) + Me.gbSeaFanartOpts.Controls.Add(Me.lblSeaFanartHeight) + Me.gbSeaFanartOpts.Controls.Add(Me.chkSeaResizeFanart) + Me.gbSeaFanartOpts.Controls.Add(Me.cbSeaFanartSize) + Me.gbSeaFanartOpts.Controls.Add(Me.lblSeaFanartSize) + Me.gbSeaFanartOpts.Controls.Add(Me.chkSeaOverwriteFanart) + Me.gbSeaFanartOpts.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.gbSeaFanartOpts.Location = New System.Drawing.Point(238, 5) + Me.gbSeaFanartOpts.Name = "gbSeaFanartOpts" + Me.gbSeaFanartOpts.Size = New System.Drawing.Size(228, 167) + Me.gbSeaFanartOpts.TabIndex = 1 + Me.gbSeaFanartOpts.TabStop = False + Me.gbSeaFanartOpts.Text = "Fanart" + ' + 'txtSeaFanartWidth + ' + Me.txtSeaFanartWidth.Enabled = False + Me.txtSeaFanartWidth.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtSeaFanartWidth.Location = New System.Drawing.Point(71, 90) + Me.txtSeaFanartWidth.Name = "txtSeaFanartWidth" + Me.txtSeaFanartWidth.Size = New System.Drawing.Size(40, 22) + Me.txtSeaFanartWidth.TabIndex = 5 + ' + 'txtSeaFanartHeight + ' + Me.txtSeaFanartHeight.Enabled = False + Me.txtSeaFanartHeight.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtSeaFanartHeight.Location = New System.Drawing.Point(182, 90) + Me.txtSeaFanartHeight.Name = "txtSeaFanartHeight" + Me.txtSeaFanartHeight.Size = New System.Drawing.Size(40, 22) + Me.txtSeaFanartHeight.TabIndex = 7 + ' + 'lblSeaFanartQual + ' + Me.lblSeaFanartQual.AutoSize = True + Me.lblSeaFanartQual.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblSeaFanartQual.Location = New System.Drawing.Point(183, 138) + Me.lblSeaFanartQual.Name = "lblSeaFanartQual" + Me.lblSeaFanartQual.Size = New System.Drawing.Size(29, 17) + Me.lblSeaFanartQual.TabIndex = 10 + Me.lblSeaFanartQual.Text = "100" + ' + 'tbSeaFanartQual + ' + Me.tbSeaFanartQual.AutoSize = False + Me.tbSeaFanartQual.BackColor = System.Drawing.Color.White + Me.tbSeaFanartQual.LargeChange = 10 + Me.tbSeaFanartQual.Location = New System.Drawing.Point(7, 131) + Me.tbSeaFanartQual.Maximum = 100 + Me.tbSeaFanartQual.Name = "tbSeaFanartQual" + Me.tbSeaFanartQual.Size = New System.Drawing.Size(180, 27) + Me.tbSeaFanartQual.TabIndex = 9 + Me.tbSeaFanartQual.TickFrequency = 10 + Me.tbSeaFanartQual.Value = 100 + ' + 'lblSeaFanartQ + ' + Me.lblSeaFanartQ.AutoSize = True + Me.lblSeaFanartQ.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblSeaFanartQ.Location = New System.Drawing.Point(3, 118) + Me.lblSeaFanartQ.Name = "lblSeaFanartQ" + Me.lblSeaFanartQ.Size = New System.Drawing.Size(46, 13) + Me.lblSeaFanartQ.TabIndex = 8 + Me.lblSeaFanartQ.Text = "Quality:" + ' + 'lblSeaFanartWidth + ' + Me.lblSeaFanartWidth.AutoSize = True + Me.lblSeaFanartWidth.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblSeaFanartWidth.Location = New System.Drawing.Point(3, 94) + Me.lblSeaFanartWidth.Name = "lblSeaFanartWidth" + Me.lblSeaFanartWidth.Size = New System.Drawing.Size(66, 13) + Me.lblSeaFanartWidth.TabIndex = 4 + Me.lblSeaFanartWidth.Text = "Max Width:" + ' + 'lblSeaFanartHeight + ' + Me.lblSeaFanartHeight.AutoSize = True + Me.lblSeaFanartHeight.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblSeaFanartHeight.Location = New System.Drawing.Point(112, 94) + Me.lblSeaFanartHeight.Name = "lblSeaFanartHeight" + Me.lblSeaFanartHeight.Size = New System.Drawing.Size(69, 13) + Me.lblSeaFanartHeight.TabIndex = 6 + Me.lblSeaFanartHeight.Text = "Max Height:" + ' + 'chkSeaResizeFanart + ' + Me.chkSeaResizeFanart.AutoSize = True + Me.chkSeaResizeFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkSeaResizeFanart.Location = New System.Drawing.Point(6, 69) + Me.chkSeaResizeFanart.Name = "chkSeaResizeFanart" + Me.chkSeaResizeFanart.Size = New System.Drawing.Size(133, 17) + Me.chkSeaResizeFanart.TabIndex = 3 + Me.chkSeaResizeFanart.Text = "Automatically Resize:" + Me.chkSeaResizeFanart.UseVisualStyleBackColor = True + ' + 'cbSeaFanartSize + ' + Me.cbSeaFanartSize.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cbSeaFanartSize.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.cbSeaFanartSize.FormattingEnabled = True + Me.cbSeaFanartSize.Location = New System.Drawing.Point(6, 29) + Me.cbSeaFanartSize.Name = "cbSeaFanartSize" + Me.cbSeaFanartSize.Size = New System.Drawing.Size(148, 21) + Me.cbSeaFanartSize.TabIndex = 1 + ' + 'lblSeaFanartSize + ' + Me.lblSeaFanartSize.AutoSize = True + Me.lblSeaFanartSize.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblSeaFanartSize.Location = New System.Drawing.Point(3, 14) + Me.lblSeaFanartSize.Name = "lblSeaFanartSize" + Me.lblSeaFanartSize.Size = New System.Drawing.Size(80, 13) + Me.lblSeaFanartSize.TabIndex = 0 + Me.lblSeaFanartSize.Text = "Preferred Size:" + ' + 'chkSeaOverwriteFanart + ' + Me.chkSeaOverwriteFanart.AutoSize = True + Me.chkSeaOverwriteFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkSeaOverwriteFanart.Location = New System.Drawing.Point(6, 53) + Me.chkSeaOverwriteFanart.Name = "chkSeaOverwriteFanart" + Me.chkSeaOverwriteFanart.Size = New System.Drawing.Size(119, 17) + Me.chkSeaOverwriteFanart.TabIndex = 2 + Me.chkSeaOverwriteFanart.Text = "Overwrite Existing" + Me.chkSeaOverwriteFanart.UseVisualStyleBackColor = True + ' + 'TabPage7 + ' + Me.TabPage7.Controls.Add(Me.gbEpPosterOpts) + Me.TabPage7.Controls.Add(Me.gbEpFanartOpts) + Me.TabPage7.Location = New System.Drawing.Point(4, 22) + Me.TabPage7.Name = "TabPage7" + Me.TabPage7.Padding = New System.Windows.Forms.Padding(3) + Me.TabPage7.Size = New System.Drawing.Size(601, 371) + Me.TabPage7.TabIndex = 1 + Me.TabPage7.Text = "TV Episode" + Me.TabPage7.UseVisualStyleBackColor = True + ' + 'gbEpPosterOpts + ' + Me.gbEpPosterOpts.Controls.Add(Me.txtEpPosterWidth) + Me.gbEpPosterOpts.Controls.Add(Me.txtEpPosterHeight) + Me.gbEpPosterOpts.Controls.Add(Me.lblEpPosterQual) + Me.gbEpPosterOpts.Controls.Add(Me.tbEpPosterQual) + Me.gbEpPosterOpts.Controls.Add(Me.lblEpPosterQ) + Me.gbEpPosterOpts.Controls.Add(Me.lblEpPosterWidth) + Me.gbEpPosterOpts.Controls.Add(Me.lblEpPosterHeight) + Me.gbEpPosterOpts.Controls.Add(Me.chkResizeEpPoster) + Me.gbEpPosterOpts.Controls.Add(Me.chkOverwriteEpPoster) + Me.gbEpPosterOpts.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.gbEpPosterOpts.Location = New System.Drawing.Point(4, 5) + Me.gbEpPosterOpts.Name = "gbEpPosterOpts" + Me.gbEpPosterOpts.Size = New System.Drawing.Size(228, 135) + Me.gbEpPosterOpts.TabIndex = 0 + Me.gbEpPosterOpts.TabStop = False + Me.gbEpPosterOpts.Text = "Poster" + ' + 'txtEpPosterWidth + ' + Me.txtEpPosterWidth.Enabled = False + Me.txtEpPosterWidth.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtEpPosterWidth.Location = New System.Drawing.Point(71, 49) + Me.txtEpPosterWidth.Name = "txtEpPosterWidth" + Me.txtEpPosterWidth.Size = New System.Drawing.Size(40, 22) + Me.txtEpPosterWidth.TabIndex = 3 + ' + 'txtEpPosterHeight + ' + Me.txtEpPosterHeight.Enabled = False + Me.txtEpPosterHeight.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtEpPosterHeight.Location = New System.Drawing.Point(182, 49) + Me.txtEpPosterHeight.Name = "txtEpPosterHeight" + Me.txtEpPosterHeight.Size = New System.Drawing.Size(40, 22) + Me.txtEpPosterHeight.TabIndex = 5 + ' + 'lblEpPosterQual + ' + Me.lblEpPosterQual.AutoSize = True + Me.lblEpPosterQual.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblEpPosterQual.Location = New System.Drawing.Point(181, 98) + Me.lblEpPosterQual.Name = "lblEpPosterQual" + Me.lblEpPosterQual.Size = New System.Drawing.Size(29, 17) + Me.lblEpPosterQual.TabIndex = 8 + Me.lblEpPosterQual.Text = "100" + ' + 'tbEpPosterQual + ' + Me.tbEpPosterQual.AutoSize = False + Me.tbEpPosterQual.BackColor = System.Drawing.Color.White + Me.tbEpPosterQual.LargeChange = 10 + Me.tbEpPosterQual.Location = New System.Drawing.Point(5, 91) + Me.tbEpPosterQual.Maximum = 100 + Me.tbEpPosterQual.Name = "tbEpPosterQual" + Me.tbEpPosterQual.Size = New System.Drawing.Size(179, 27) + Me.tbEpPosterQual.TabIndex = 7 + Me.tbEpPosterQual.TickFrequency = 10 + Me.tbEpPosterQual.Value = 100 + ' + 'lblEpPosterQ + ' + Me.lblEpPosterQ.AutoSize = True + Me.lblEpPosterQ.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblEpPosterQ.Location = New System.Drawing.Point(1, 78) + Me.lblEpPosterQ.Name = "lblEpPosterQ" + Me.lblEpPosterQ.Size = New System.Drawing.Size(46, 13) + Me.lblEpPosterQ.TabIndex = 6 + Me.lblEpPosterQ.Text = "Quality:" + ' + 'lblEpPosterWidth + ' + Me.lblEpPosterWidth.AutoSize = True + Me.lblEpPosterWidth.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblEpPosterWidth.Location = New System.Drawing.Point(3, 53) + Me.lblEpPosterWidth.Name = "lblEpPosterWidth" + Me.lblEpPosterWidth.Size = New System.Drawing.Size(66, 13) + Me.lblEpPosterWidth.TabIndex = 2 + Me.lblEpPosterWidth.Text = "Max Width:" + ' + 'lblEpPosterHeight + ' + Me.lblEpPosterHeight.AutoSize = True + Me.lblEpPosterHeight.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblEpPosterHeight.Location = New System.Drawing.Point(112, 53) + Me.lblEpPosterHeight.Name = "lblEpPosterHeight" + Me.lblEpPosterHeight.Size = New System.Drawing.Size(69, 13) + Me.lblEpPosterHeight.TabIndex = 4 + Me.lblEpPosterHeight.Text = "Max Height:" + ' + 'chkResizeEpPoster + ' + Me.chkResizeEpPoster.AutoSize = True + Me.chkResizeEpPoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkResizeEpPoster.Location = New System.Drawing.Point(4, 30) + Me.chkResizeEpPoster.Name = "chkResizeEpPoster" + Me.chkResizeEpPoster.Size = New System.Drawing.Size(133, 17) + Me.chkResizeEpPoster.TabIndex = 1 + Me.chkResizeEpPoster.Text = "Automatically Resize:" + Me.chkResizeEpPoster.UseVisualStyleBackColor = True + ' + 'chkOverwriteEpPoster + ' + Me.chkOverwriteEpPoster.AutoSize = True + Me.chkOverwriteEpPoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkOverwriteEpPoster.Location = New System.Drawing.Point(4, 14) + Me.chkOverwriteEpPoster.Name = "chkOverwriteEpPoster" + Me.chkOverwriteEpPoster.Size = New System.Drawing.Size(119, 17) + Me.chkOverwriteEpPoster.TabIndex = 0 + Me.chkOverwriteEpPoster.Text = "Overwrite Existing" + Me.chkOverwriteEpPoster.UseVisualStyleBackColor = True + ' + 'gbEpFanartOpts + ' + Me.gbEpFanartOpts.Controls.Add(Me.txtEpFanartWidth) + Me.gbEpFanartOpts.Controls.Add(Me.txtEpFanartHeight) + Me.gbEpFanartOpts.Controls.Add(Me.lblEpFanartQual) + Me.gbEpFanartOpts.Controls.Add(Me.tbEpFanartQual) + Me.gbEpFanartOpts.Controls.Add(Me.lblEpFanartQ) + Me.gbEpFanartOpts.Controls.Add(Me.lblEpFanartWidth) + Me.gbEpFanartOpts.Controls.Add(Me.lblEpFanartHeight) + Me.gbEpFanartOpts.Controls.Add(Me.chkResizeEpFanart) + Me.gbEpFanartOpts.Controls.Add(Me.cbEpFanartSize) + Me.gbEpFanartOpts.Controls.Add(Me.lblEpFanartSize) + Me.gbEpFanartOpts.Controls.Add(Me.chkOverwriteEpFanart) + Me.gbEpFanartOpts.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.gbEpFanartOpts.Location = New System.Drawing.Point(238, 5) + Me.gbEpFanartOpts.Name = "gbEpFanartOpts" + Me.gbEpFanartOpts.Size = New System.Drawing.Size(228, 167) + Me.gbEpFanartOpts.TabIndex = 1 + Me.gbEpFanartOpts.TabStop = False + Me.gbEpFanartOpts.Text = "Fanart" + ' + 'txtEpFanartWidth + ' + Me.txtEpFanartWidth.Enabled = False + Me.txtEpFanartWidth.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtEpFanartWidth.Location = New System.Drawing.Point(71, 90) + Me.txtEpFanartWidth.Name = "txtEpFanartWidth" + Me.txtEpFanartWidth.Size = New System.Drawing.Size(40, 22) + Me.txtEpFanartWidth.TabIndex = 5 + ' + 'txtEpFanartHeight + ' + Me.txtEpFanartHeight.Enabled = False + Me.txtEpFanartHeight.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtEpFanartHeight.Location = New System.Drawing.Point(182, 90) + Me.txtEpFanartHeight.Name = "txtEpFanartHeight" + Me.txtEpFanartHeight.Size = New System.Drawing.Size(40, 22) + Me.txtEpFanartHeight.TabIndex = 7 + ' + 'lblEpFanartQual + ' + Me.lblEpFanartQual.AutoSize = True + Me.lblEpFanartQual.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblEpFanartQual.Location = New System.Drawing.Point(183, 138) + Me.lblEpFanartQual.Name = "lblEpFanartQual" + Me.lblEpFanartQual.Size = New System.Drawing.Size(29, 17) + Me.lblEpFanartQual.TabIndex = 10 + Me.lblEpFanartQual.Text = "100" + ' + 'tbEpFanartQual + ' + Me.tbEpFanartQual.AutoSize = False + Me.tbEpFanartQual.BackColor = System.Drawing.Color.White + Me.tbEpFanartQual.LargeChange = 10 + Me.tbEpFanartQual.Location = New System.Drawing.Point(7, 131) + Me.tbEpFanartQual.Maximum = 100 + Me.tbEpFanartQual.Name = "tbEpFanartQual" + Me.tbEpFanartQual.Size = New System.Drawing.Size(180, 27) + Me.tbEpFanartQual.TabIndex = 9 + Me.tbEpFanartQual.TickFrequency = 10 + Me.tbEpFanartQual.Value = 100 + ' + 'lblEpFanartQ + ' + Me.lblEpFanartQ.AutoSize = True + Me.lblEpFanartQ.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblEpFanartQ.Location = New System.Drawing.Point(3, 118) + Me.lblEpFanartQ.Name = "lblEpFanartQ" + Me.lblEpFanartQ.Size = New System.Drawing.Size(46, 13) + Me.lblEpFanartQ.TabIndex = 8 + Me.lblEpFanartQ.Text = "Quality:" + ' + 'lblEpFanartWidth + ' + Me.lblEpFanartWidth.AutoSize = True + Me.lblEpFanartWidth.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblEpFanartWidth.Location = New System.Drawing.Point(3, 94) + Me.lblEpFanartWidth.Name = "lblEpFanartWidth" + Me.lblEpFanartWidth.Size = New System.Drawing.Size(66, 13) + Me.lblEpFanartWidth.TabIndex = 4 + Me.lblEpFanartWidth.Text = "Max Width:" + ' + 'lblEpFanartHeight + ' + Me.lblEpFanartHeight.AutoSize = True + Me.lblEpFanartHeight.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblEpFanartHeight.Location = New System.Drawing.Point(112, 94) + Me.lblEpFanartHeight.Name = "lblEpFanartHeight" + Me.lblEpFanartHeight.Size = New System.Drawing.Size(69, 13) + Me.lblEpFanartHeight.TabIndex = 6 + Me.lblEpFanartHeight.Text = "Max Height:" + ' + 'chkResizeEpFanart + ' + Me.chkResizeEpFanart.AutoSize = True + Me.chkResizeEpFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkResizeEpFanart.Location = New System.Drawing.Point(6, 69) + Me.chkResizeEpFanart.Name = "chkResizeEpFanart" + Me.chkResizeEpFanart.Size = New System.Drawing.Size(133, 17) + Me.chkResizeEpFanart.TabIndex = 3 + Me.chkResizeEpFanart.Text = "Automatically Resize:" + Me.chkResizeEpFanart.UseVisualStyleBackColor = True + ' + 'cbEpFanartSize + ' + Me.cbEpFanartSize.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cbEpFanartSize.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.cbEpFanartSize.FormattingEnabled = True + Me.cbEpFanartSize.Location = New System.Drawing.Point(6, 29) + Me.cbEpFanartSize.Name = "cbEpFanartSize" + Me.cbEpFanartSize.Size = New System.Drawing.Size(148, 21) + Me.cbEpFanartSize.TabIndex = 1 + ' + 'lblEpFanartSize + ' + Me.lblEpFanartSize.AutoSize = True + Me.lblEpFanartSize.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblEpFanartSize.Location = New System.Drawing.Point(3, 14) + Me.lblEpFanartSize.Name = "lblEpFanartSize" + Me.lblEpFanartSize.Size = New System.Drawing.Size(80, 13) + Me.lblEpFanartSize.TabIndex = 0 + Me.lblEpFanartSize.Text = "Preferred Size:" + ' + 'chkOverwriteEpFanart + ' + Me.chkOverwriteEpFanart.AutoSize = True + Me.chkOverwriteEpFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkOverwriteEpFanart.Location = New System.Drawing.Point(6, 53) + Me.chkOverwriteEpFanart.Name = "chkOverwriteEpFanart" + Me.chkOverwriteEpFanart.Size = New System.Drawing.Size(119, 17) + Me.chkOverwriteEpFanart.TabIndex = 2 + Me.chkOverwriteEpFanart.Text = "Overwrite Existing" + Me.chkOverwriteEpFanart.UseVisualStyleBackColor = True + ' + 'TabPage8 + ' + Me.TabPage8.Controls.Add(Me.chkGetEnglishImages) + Me.TabPage8.Controls.Add(Me.chkOnlyTVImagesLanguage) + Me.TabPage8.Location = New System.Drawing.Point(4, 22) + Me.TabPage8.Name = "TabPage8" + Me.TabPage8.Size = New System.Drawing.Size(601, 371) + Me.TabPage8.TabIndex = 3 + Me.TabPage8.Text = "General" + Me.TabPage8.UseVisualStyleBackColor = True + ' + 'chkGetEnglishImages + ' + Me.chkGetEnglishImages.AutoSize = True + Me.chkGetEnglishImages.Enabled = False + Me.chkGetEnglishImages.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.chkGetEnglishImages.Location = New System.Drawing.Point(21, 32) + Me.chkGetEnglishImages.Name = "chkGetEnglishImages" + Me.chkGetEnglishImages.Size = New System.Drawing.Size(149, 17) + Me.chkGetEnglishImages.TabIndex = 1 + Me.chkGetEnglishImages.Text = "Also Get English Images" + Me.chkGetEnglishImages.UseVisualStyleBackColor = True + ' + 'chkOnlyTVImagesLanguage + ' + Me.chkOnlyTVImagesLanguage.AutoSize = True + Me.chkOnlyTVImagesLanguage.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.chkOnlyTVImagesLanguage.Location = New System.Drawing.Point(8, 14) + Me.chkOnlyTVImagesLanguage.Name = "chkOnlyTVImagesLanguage" + Me.chkOnlyTVImagesLanguage.Size = New System.Drawing.Size(248, 17) + Me.chkOnlyTVImagesLanguage.TabIndex = 0 + Me.chkOnlyTVImagesLanguage.Text = "Only Get Images for the Selected Language" + Me.chkOnlyTVImagesLanguage.UseVisualStyleBackColor = True + ' + 'pnlTVScraper + ' + Me.pnlTVScraper.BackColor = System.Drawing.Color.White + Me.pnlTVScraper.Controls.Add(Me.GroupBox32) + Me.pnlTVScraper.Controls.Add(Me.GroupBox33) + Me.pnlTVScraper.Controls.Add(Me.GroupBox31) + Me.pnlTVScraper.Controls.Add(Me.gbTVScraperOptions) + Me.pnlTVScraper.Location = New System.Drawing.Point(717, 746) + Me.pnlTVScraper.Name = "pnlTVScraper" + Me.pnlTVScraper.Size = New System.Drawing.Size(617, 400) + Me.pnlTVScraper.TabIndex = 19 + Me.pnlTVScraper.Visible = False + ' + 'GroupBox32 + ' + Me.GroupBox32.Controls.Add(Me.GroupBox35) + Me.GroupBox32.Controls.Add(Me.GroupBox34) + Me.GroupBox32.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.GroupBox32.Location = New System.Drawing.Point(208, 252) + Me.GroupBox32.Name = "GroupBox32" + Me.GroupBox32.Size = New System.Drawing.Size(403, 114) + Me.GroupBox32.TabIndex = 3 + Me.GroupBox32.TabStop = False + Me.GroupBox32.Text = "Scraper Fields" + ' + 'GroupBox35 + ' + Me.GroupBox35.Controls.Add(Me.chkScraperShowRating) + Me.GroupBox35.Controls.Add(Me.chkScraperShowActors) + Me.GroupBox35.Controls.Add(Me.chkScraperShowStudio) + Me.GroupBox35.Controls.Add(Me.chkScraperShowPremiered) + Me.GroupBox35.Controls.Add(Me.chkScraperShowEGU) + Me.GroupBox35.Controls.Add(Me.chkScraperShowMPAA) + Me.GroupBox35.Controls.Add(Me.chkScraperShowPlot) + Me.GroupBox35.Controls.Add(Me.chkScraperShowGenre) + Me.GroupBox35.Controls.Add(Me.chkScraperShowTitle) + Me.GroupBox35.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.GroupBox35.Location = New System.Drawing.Point(3, 14) + Me.GroupBox35.Name = "GroupBox35" + Me.GroupBox35.Size = New System.Drawing.Size(213, 96) + Me.GroupBox35.TabIndex = 0 + Me.GroupBox35.TabStop = False + Me.GroupBox35.Text = "Show" + ' + 'chkScraperShowRating + ' + Me.chkScraperShowRating.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkScraperShowRating.Location = New System.Drawing.Point(130, 29) + Me.chkScraperShowRating.Name = "chkScraperShowRating" + Me.chkScraperShowRating.Size = New System.Drawing.Size(78, 17) + Me.chkScraperShowRating.TabIndex = 6 + Me.chkScraperShowRating.Text = "Rating" + Me.chkScraperShowRating.UseVisualStyleBackColor = True + ' + 'chkScraperShowActors + ' + Me.chkScraperShowActors.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkScraperShowActors.Location = New System.Drawing.Point(130, 61) + Me.chkScraperShowActors.Name = "chkScraperShowActors" + Me.chkScraperShowActors.Size = New System.Drawing.Size(78, 17) + Me.chkScraperShowActors.TabIndex = 8 + Me.chkScraperShowActors.Text = "Actors" + Me.chkScraperShowActors.UseVisualStyleBackColor = True + ' + 'chkScraperShowStudio + ' + Me.chkScraperShowStudio.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkScraperShowStudio.Location = New System.Drawing.Point(130, 45) + Me.chkScraperShowStudio.Name = "chkScraperShowStudio" + Me.chkScraperShowStudio.Size = New System.Drawing.Size(78, 17) + Me.chkScraperShowStudio.TabIndex = 7 + Me.chkScraperShowStudio.Text = "Studio" + Me.chkScraperShowStudio.UseVisualStyleBackColor = True + ' + 'chkScraperShowPremiered + ' + Me.chkScraperShowPremiered.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkScraperShowPremiered.Location = New System.Drawing.Point(130, 13) + Me.chkScraperShowPremiered.Name = "chkScraperShowPremiered" + Me.chkScraperShowPremiered.Size = New System.Drawing.Size(78, 17) + Me.chkScraperShowPremiered.TabIndex = 5 + Me.chkScraperShowPremiered.Text = "Premiered" + Me.chkScraperShowPremiered.UseVisualStyleBackColor = True + ' + 'chkScraperShowEGU + ' + Me.chkScraperShowEGU.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkScraperShowEGU.Location = New System.Drawing.Point(6, 29) + Me.chkScraperShowEGU.Name = "chkScraperShowEGU" + Me.chkScraperShowEGU.Size = New System.Drawing.Size(118, 17) + Me.chkScraperShowEGU.TabIndex = 1 + Me.chkScraperShowEGU.Text = "EpisodeGuideURL" + Me.chkScraperShowEGU.UseVisualStyleBackColor = True + ' + 'chkScraperShowMPAA + ' + Me.chkScraperShowMPAA.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkScraperShowMPAA.Location = New System.Drawing.Point(6, 61) + Me.chkScraperShowMPAA.Name = "chkScraperShowMPAA" + Me.chkScraperShowMPAA.Size = New System.Drawing.Size(119, 17) + Me.chkScraperShowMPAA.TabIndex = 3 + Me.chkScraperShowMPAA.Text = "MPAA" + Me.chkScraperShowMPAA.UseVisualStyleBackColor = True + ' + 'chkScraperShowPlot + ' + Me.chkScraperShowPlot.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkScraperShowPlot.Location = New System.Drawing.Point(6, 77) + Me.chkScraperShowPlot.Name = "chkScraperShowPlot" + Me.chkScraperShowPlot.Size = New System.Drawing.Size(119, 17) + Me.chkScraperShowPlot.TabIndex = 4 + Me.chkScraperShowPlot.Text = "Plot" + Me.chkScraperShowPlot.UseVisualStyleBackColor = True + ' + 'chkScraperShowGenre + ' + Me.chkScraperShowGenre.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkScraperShowGenre.Location = New System.Drawing.Point(6, 45) + Me.chkScraperShowGenre.Name = "chkScraperShowGenre" + Me.chkScraperShowGenre.Size = New System.Drawing.Size(118, 17) + Me.chkScraperShowGenre.TabIndex = 2 + Me.chkScraperShowGenre.Text = "Genre" + Me.chkScraperShowGenre.UseVisualStyleBackColor = True + ' + 'chkScraperShowTitle + ' + Me.chkScraperShowTitle.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkScraperShowTitle.Location = New System.Drawing.Point(6, 13) + Me.chkScraperShowTitle.Name = "chkScraperShowTitle" + Me.chkScraperShowTitle.Size = New System.Drawing.Size(118, 17) + Me.chkScraperShowTitle.TabIndex = 0 + Me.chkScraperShowTitle.Text = "Title" + Me.chkScraperShowTitle.UseVisualStyleBackColor = True + ' + 'GroupBox34 + ' + Me.GroupBox34.Controls.Add(Me.chkScraperEpActors) + Me.GroupBox34.Controls.Add(Me.chkScraperEpCredits) + Me.GroupBox34.Controls.Add(Me.chkScraperEpDirector) + Me.GroupBox34.Controls.Add(Me.chkScraperEpPlot) + Me.GroupBox34.Controls.Add(Me.chkScraperEpRating) + Me.GroupBox34.Controls.Add(Me.chkScraperEpAired) + Me.GroupBox34.Controls.Add(Me.chkScraperEpTitle) + Me.GroupBox34.Controls.Add(Me.chkScraperEpEpisode) + Me.GroupBox34.Controls.Add(Me.chkScraperEpSeason) + Me.GroupBox34.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.GroupBox34.Location = New System.Drawing.Point(219, 14) + Me.GroupBox34.Name = "GroupBox34" + Me.GroupBox34.Size = New System.Drawing.Size(181, 96) + Me.GroupBox34.TabIndex = 1 + Me.GroupBox34.TabStop = False + Me.GroupBox34.Text = "Episode" + ' + 'chkScraperEpActors + ' + Me.chkScraperEpActors.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkScraperEpActors.Location = New System.Drawing.Point(94, 60) + Me.chkScraperEpActors.Name = "chkScraperEpActors" + Me.chkScraperEpActors.Size = New System.Drawing.Size(67, 17) + Me.chkScraperEpActors.TabIndex = 0 + Me.chkScraperEpActors.Text = "Actors" + Me.chkScraperEpActors.UseVisualStyleBackColor = True + ' + 'chkScraperEpCredits + ' + Me.chkScraperEpCredits.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkScraperEpCredits.Location = New System.Drawing.Point(94, 44) + Me.chkScraperEpCredits.Name = "chkScraperEpCredits" + Me.chkScraperEpCredits.Size = New System.Drawing.Size(67, 17) + Me.chkScraperEpCredits.TabIndex = 8 + Me.chkScraperEpCredits.Text = "Credits" + Me.chkScraperEpCredits.UseVisualStyleBackColor = True + ' + 'chkScraperEpDirector + ' + Me.chkScraperEpDirector.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkScraperEpDirector.Location = New System.Drawing.Point(94, 28) + Me.chkScraperEpDirector.Name = "chkScraperEpDirector" + Me.chkScraperEpDirector.Size = New System.Drawing.Size(67, 17) + Me.chkScraperEpDirector.TabIndex = 7 + Me.chkScraperEpDirector.Text = "Director" + Me.chkScraperEpDirector.UseVisualStyleBackColor = True + ' + 'chkScraperEpPlot + ' + Me.chkScraperEpPlot.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkScraperEpPlot.Location = New System.Drawing.Point(94, 12) + Me.chkScraperEpPlot.Name = "chkScraperEpPlot" + Me.chkScraperEpPlot.Size = New System.Drawing.Size(67, 17) + Me.chkScraperEpPlot.TabIndex = 6 + Me.chkScraperEpPlot.Text = "Plot" + Me.chkScraperEpPlot.UseVisualStyleBackColor = True + ' + 'chkScraperEpRating + ' + Me.chkScraperEpRating.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkScraperEpRating.Location = New System.Drawing.Point(6, 77) + Me.chkScraperEpRating.Name = "chkScraperEpRating" + Me.chkScraperEpRating.Size = New System.Drawing.Size(67, 17) + Me.chkScraperEpRating.TabIndex = 5 + Me.chkScraperEpRating.Text = "Rating" + Me.chkScraperEpRating.UseVisualStyleBackColor = True + ' + 'chkScraperEpAired + ' + Me.chkScraperEpAired.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkScraperEpAired.Location = New System.Drawing.Point(6, 61) + Me.chkScraperEpAired.Name = "chkScraperEpAired" + Me.chkScraperEpAired.Size = New System.Drawing.Size(67, 17) + Me.chkScraperEpAired.TabIndex = 4 + Me.chkScraperEpAired.Text = "Aired" + Me.chkScraperEpAired.UseVisualStyleBackColor = True + ' + 'chkScraperEpTitle + ' + Me.chkScraperEpTitle.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkScraperEpTitle.Location = New System.Drawing.Point(6, 13) + Me.chkScraperEpTitle.Name = "chkScraperEpTitle" + Me.chkScraperEpTitle.Size = New System.Drawing.Size(67, 17) + Me.chkScraperEpTitle.TabIndex = 0 + Me.chkScraperEpTitle.Text = "Title" + Me.chkScraperEpTitle.UseVisualStyleBackColor = True + ' + 'chkScraperEpEpisode + ' + Me.chkScraperEpEpisode.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkScraperEpEpisode.Location = New System.Drawing.Point(6, 45) + Me.chkScraperEpEpisode.Name = "chkScraperEpEpisode" + Me.chkScraperEpEpisode.Size = New System.Drawing.Size(67, 17) + Me.chkScraperEpEpisode.TabIndex = 3 + Me.chkScraperEpEpisode.Text = "Episode" + Me.chkScraperEpEpisode.UseVisualStyleBackColor = True + ' + 'chkScraperEpSeason + ' + Me.chkScraperEpSeason.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkScraperEpSeason.Location = New System.Drawing.Point(6, 29) + Me.chkScraperEpSeason.Name = "chkScraperEpSeason" + Me.chkScraperEpSeason.Size = New System.Drawing.Size(67, 17) + Me.chkScraperEpSeason.TabIndex = 2 + Me.chkScraperEpSeason.Text = "Season" + Me.chkScraperEpSeason.UseVisualStyleBackColor = True + ' + 'GroupBox33 + ' + Me.GroupBox33.Controls.Add(Me.gbEpLocks) + Me.GroupBox33.Controls.Add(Me.gbShowLocks) + Me.GroupBox33.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.GroupBox33.Location = New System.Drawing.Point(208, 6) + Me.GroupBox33.Name = "GroupBox33" + Me.GroupBox33.Size = New System.Drawing.Size(191, 243) + Me.GroupBox33.TabIndex = 1 + Me.GroupBox33.TabStop = False + Me.GroupBox33.Text = "Global Locks" + ' + 'gbEpLocks + ' + Me.gbEpLocks.Controls.Add(Me.chkEpLockTitle) + Me.gbEpLocks.Controls.Add(Me.chkEpLockRating) + Me.gbEpLocks.Controls.Add(Me.chkEpLockPlot) + Me.gbEpLocks.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.gbEpLocks.Location = New System.Drawing.Point(5, 112) + Me.gbEpLocks.Name = "gbEpLocks" + Me.gbEpLocks.Size = New System.Drawing.Size(181, 66) + Me.gbEpLocks.TabIndex = 1 + Me.gbEpLocks.TabStop = False + Me.gbEpLocks.Text = "Episode" + ' + 'chkEpLockTitle + ' + Me.chkEpLockTitle.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkEpLockTitle.Location = New System.Drawing.Point(6, 15) + Me.chkEpLockTitle.Name = "chkEpLockTitle" + Me.chkEpLockTitle.Size = New System.Drawing.Size(166, 17) + Me.chkEpLockTitle.TabIndex = 0 + Me.chkEpLockTitle.Text = "Lock Title" + Me.chkEpLockTitle.UseVisualStyleBackColor = True + ' + 'chkEpLockRating + ' + Me.chkEpLockRating.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkEpLockRating.Location = New System.Drawing.Point(6, 47) + Me.chkEpLockRating.Name = "chkEpLockRating" + Me.chkEpLockRating.Size = New System.Drawing.Size(168, 17) + Me.chkEpLockRating.TabIndex = 2 + Me.chkEpLockRating.Text = "Lock Rating" + Me.chkEpLockRating.UseVisualStyleBackColor = True + ' + 'chkEpLockPlot + ' + Me.chkEpLockPlot.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkEpLockPlot.Location = New System.Drawing.Point(6, 31) + Me.chkEpLockPlot.Name = "chkEpLockPlot" + Me.chkEpLockPlot.Size = New System.Drawing.Size(166, 17) + Me.chkEpLockPlot.TabIndex = 1 + Me.chkEpLockPlot.Text = "Lock Plot" + Me.chkEpLockPlot.UseVisualStyleBackColor = True + ' + 'gbShowLocks + ' + Me.gbShowLocks.Controls.Add(Me.chkShowLockPlot) + Me.gbShowLocks.Controls.Add(Me.chkShowLockGenre) + Me.gbShowLocks.Controls.Add(Me.chkShowLockStudio) + Me.gbShowLocks.Controls.Add(Me.chkShowLockRating) + Me.gbShowLocks.Controls.Add(Me.chkShowLockTitle) + Me.gbShowLocks.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.gbShowLocks.Location = New System.Drawing.Point(5, 13) + Me.gbShowLocks.Name = "gbShowLocks" + Me.gbShowLocks.Size = New System.Drawing.Size(181, 96) + Me.gbShowLocks.TabIndex = 0 + Me.gbShowLocks.TabStop = False + Me.gbShowLocks.Text = "Show" + ' + 'chkShowLockPlot + ' + Me.chkShowLockPlot.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkShowLockPlot.Location = New System.Drawing.Point(6, 29) + Me.chkShowLockPlot.Name = "chkShowLockPlot" + Me.chkShowLockPlot.Size = New System.Drawing.Size(168, 17) + Me.chkShowLockPlot.TabIndex = 1 + Me.chkShowLockPlot.Text = "Lock Plot" + Me.chkShowLockPlot.UseVisualStyleBackColor = True + ' + 'chkShowLockGenre + ' + Me.chkShowLockGenre.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkShowLockGenre.Location = New System.Drawing.Point(6, 61) + Me.chkShowLockGenre.Name = "chkShowLockGenre" + Me.chkShowLockGenre.Size = New System.Drawing.Size(168, 17) + Me.chkShowLockGenre.TabIndex = 3 + Me.chkShowLockGenre.Text = "Lock Genre" + Me.chkShowLockGenre.UseVisualStyleBackColor = True + ' + 'chkShowLockStudio + ' + Me.chkShowLockStudio.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkShowLockStudio.Location = New System.Drawing.Point(6, 77) + Me.chkShowLockStudio.Name = "chkShowLockStudio" + Me.chkShowLockStudio.Size = New System.Drawing.Size(168, 17) + Me.chkShowLockStudio.TabIndex = 4 + Me.chkShowLockStudio.Text = "Lock Studio" + Me.chkShowLockStudio.UseVisualStyleBackColor = True + ' + 'chkShowLockRating + ' + Me.chkShowLockRating.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkShowLockRating.Location = New System.Drawing.Point(6, 45) + Me.chkShowLockRating.Name = "chkShowLockRating" + Me.chkShowLockRating.Size = New System.Drawing.Size(168, 17) + Me.chkShowLockRating.TabIndex = 2 + Me.chkShowLockRating.Text = "Lock Rating" + Me.chkShowLockRating.UseVisualStyleBackColor = True + ' + 'chkShowLockTitle + ' + Me.chkShowLockTitle.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkShowLockTitle.Location = New System.Drawing.Point(6, 13) + Me.chkShowLockTitle.Name = "chkShowLockTitle" + Me.chkShowLockTitle.Size = New System.Drawing.Size(168, 17) + Me.chkShowLockTitle.TabIndex = 0 + Me.chkShowLockTitle.Text = "Lock Title" + Me.chkShowLockTitle.UseVisualStyleBackColor = True + ' + 'GroupBox31 + ' + Me.GroupBox31.Controls.Add(Me.gbTVMIDefaults) + Me.GroupBox31.Controls.Add(Me.cboTVMetaDataOverlay) + Me.GroupBox31.Controls.Add(Me.Label50) + Me.GroupBox31.Controls.Add(Me.chkTVScanMetaData) + Me.GroupBox31.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.GroupBox31.Location = New System.Drawing.Point(403, 6) + Me.GroupBox31.Name = "GroupBox31" + Me.GroupBox31.Size = New System.Drawing.Size(208, 243) + Me.GroupBox31.TabIndex = 2 + Me.GroupBox31.TabStop = False + Me.GroupBox31.Text = "Meta Data" + ' + 'gbTVMIDefaults + ' + Me.gbTVMIDefaults.Controls.Add(Me.lstTVMetaData) + Me.gbTVMIDefaults.Controls.Add(Me.txtTVDefFIExt) + Me.gbTVMIDefaults.Controls.Add(Me.Label49) + Me.gbTVMIDefaults.Controls.Add(Me.btnRemoveTVMetaDataFT) + Me.gbTVMIDefaults.Controls.Add(Me.btnEditTVMetaDataFT) + Me.gbTVMIDefaults.Controls.Add(Me.btnNewTVMetaDataFT) + Me.gbTVMIDefaults.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.gbTVMIDefaults.Location = New System.Drawing.Point(12, 93) + Me.gbTVMIDefaults.Name = "gbTVMIDefaults" + Me.gbTVMIDefaults.Size = New System.Drawing.Size(183, 144) + Me.gbTVMIDefaults.TabIndex = 3 + Me.gbTVMIDefaults.TabStop = False + Me.gbTVMIDefaults.Text = "Defaults by File Type" + ' + 'lstTVMetaData + ' + Me.lstTVMetaData.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lstTVMetaData.FormattingEnabled = True + Me.lstTVMetaData.Location = New System.Drawing.Point(10, 16) + Me.lstTVMetaData.Name = "lstTVMetaData" + Me.lstTVMetaData.Size = New System.Drawing.Size(165, 95) + Me.lstTVMetaData.TabIndex = 0 + ' + 'txtTVDefFIExt + ' + Me.txtTVDefFIExt.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtTVDefFIExt.Location = New System.Drawing.Point(73, 116) + Me.txtTVDefFIExt.Name = "txtTVDefFIExt" + Me.txtTVDefFIExt.Size = New System.Drawing.Size(35, 22) + Me.txtTVDefFIExt.TabIndex = 2 + ' + 'Label49 + ' + Me.Label49.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label49.Location = New System.Drawing.Point(8, 116) + Me.Label49.Name = "Label49" + Me.Label49.Size = New System.Drawing.Size(66, 19) + Me.Label49.TabIndex = 1 + Me.Label49.Text = "File Type" + Me.Label49.TextAlign = System.Drawing.ContentAlignment.MiddleRight + ' + 'btnRemoveTVMetaDataFT + ' + Me.btnRemoveTVMetaDataFT.Enabled = False + Me.btnRemoveTVMetaDataFT.Image = CType(resources.GetObject("btnRemoveTVMetaDataFT.Image"), System.Drawing.Image) + Me.btnRemoveTVMetaDataFT.Location = New System.Drawing.Point(153, 115) + Me.btnRemoveTVMetaDataFT.Name = "btnRemoveTVMetaDataFT" + Me.btnRemoveTVMetaDataFT.Size = New System.Drawing.Size(23, 23) + Me.btnRemoveTVMetaDataFT.TabIndex = 4 + Me.btnRemoveTVMetaDataFT.UseVisualStyleBackColor = True + ' + 'btnEditTVMetaDataFT + ' + Me.btnEditTVMetaDataFT.Enabled = False + Me.btnEditTVMetaDataFT.Image = CType(resources.GetObject("btnEditTVMetaDataFT.Image"), System.Drawing.Image) + Me.btnEditTVMetaDataFT.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnEditTVMetaDataFT.Location = New System.Drawing.Point(130, 115) + Me.btnEditTVMetaDataFT.Name = "btnEditTVMetaDataFT" + Me.btnEditTVMetaDataFT.Size = New System.Drawing.Size(23, 23) + Me.btnEditTVMetaDataFT.TabIndex = 3 + Me.btnEditTVMetaDataFT.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnEditTVMetaDataFT.UseVisualStyleBackColor = True + ' + 'btnNewTVMetaDataFT + ' + Me.btnNewTVMetaDataFT.Enabled = False + Me.btnNewTVMetaDataFT.Image = CType(resources.GetObject("btnNewTVMetaDataFT.Image"), System.Drawing.Image) + Me.btnNewTVMetaDataFT.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnNewTVMetaDataFT.Location = New System.Drawing.Point(108, 115) + Me.btnNewTVMetaDataFT.Name = "btnNewTVMetaDataFT" + Me.btnNewTVMetaDataFT.Size = New System.Drawing.Size(23, 23) + Me.btnNewTVMetaDataFT.TabIndex = 29 + Me.btnNewTVMetaDataFT.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnNewTVMetaDataFT.UseVisualStyleBackColor = True + ' + 'cboTVMetaDataOverlay + ' + Me.cboTVMetaDataOverlay.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cboTVMetaDataOverlay.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.cboTVMetaDataOverlay.FormattingEnabled = True + Me.cboTVMetaDataOverlay.Location = New System.Drawing.Point(13, 62) + Me.cboTVMetaDataOverlay.Name = "cboTVMetaDataOverlay" + Me.cboTVMetaDataOverlay.Size = New System.Drawing.Size(182, 21) + Me.cboTVMetaDataOverlay.Sorted = True + Me.cboTVMetaDataOverlay.TabIndex = 2 + ' + 'Label50 + ' + Me.Label50.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label50.Location = New System.Drawing.Point(4, 35) + Me.Label50.Name = "Label50" + Me.Label50.Size = New System.Drawing.Size(202, 29) + Me.Label50.TabIndex = 1 + Me.Label50.Text = "Display Overlay if Video Contains an Audio Stream With the Following Language:" + Me.Label50.TextAlign = System.Drawing.ContentAlignment.TopCenter + ' + 'chkTVScanMetaData + ' + Me.chkTVScanMetaData.AutoSize = True + Me.chkTVScanMetaData.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkTVScanMetaData.Location = New System.Drawing.Point(5, 16) + Me.chkTVScanMetaData.Name = "chkTVScanMetaData" + Me.chkTVScanMetaData.Size = New System.Drawing.Size(106, 17) + Me.chkTVScanMetaData.TabIndex = 0 + Me.chkTVScanMetaData.Text = "Scan Meta Data" + Me.chkTVScanMetaData.UseVisualStyleBackColor = True + ' + 'gbTVScraperOptions + ' + Me.gbTVScraperOptions.Controls.Add(Me.lblOrdering) + Me.gbTVScraperOptions.Controls.Add(Me.cbOrdering) + Me.gbTVScraperOptions.Controls.Add(Me.lblTVUpdate) + Me.gbTVScraperOptions.Controls.Add(Me.cboTVUpdate) + Me.gbTVScraperOptions.Controls.Add(Me.lblAPIKey) + Me.gbTVScraperOptions.Controls.Add(Me.lblTVDBMirror) + Me.gbTVScraperOptions.Controls.Add(Me.txtAPIKey) + Me.gbTVScraperOptions.Controls.Add(Me.txtTVDBMirror) + Me.gbTVScraperOptions.Controls.Add(Me.gbLanguage) + Me.gbTVScraperOptions.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.gbTVScraperOptions.Location = New System.Drawing.Point(5, 6) + Me.gbTVScraperOptions.Name = "gbTVScraperOptions" + Me.gbTVScraperOptions.Size = New System.Drawing.Size(200, 359) + Me.gbTVScraperOptions.TabIndex = 0 + Me.gbTVScraperOptions.TabStop = False + Me.gbTVScraperOptions.Text = "Options" + ' + 'lblOrdering + ' + Me.lblOrdering.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblOrdering.Location = New System.Drawing.Point(12, 284) + Me.lblOrdering.Name = "lblOrdering" + Me.lblOrdering.Size = New System.Drawing.Size(177, 13) + Me.lblOrdering.TabIndex = 7 + Me.lblOrdering.Text = "Default Episode Ordering:" + Me.lblOrdering.TextAlign = System.Drawing.ContentAlignment.TopCenter + ' + 'cbOrdering + ' + Me.cbOrdering.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cbOrdering.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.cbOrdering.FormattingEnabled = True + Me.cbOrdering.Location = New System.Drawing.Point(17, 304) + Me.cbOrdering.Name = "cbOrdering" + Me.cbOrdering.Size = New System.Drawing.Size(166, 21) + Me.cbOrdering.TabIndex = 8 + ' + 'lblTVUpdate + ' + Me.lblTVUpdate.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblTVUpdate.Location = New System.Drawing.Point(5, 217) + Me.lblTVUpdate.Name = "lblTVUpdate" + Me.lblTVUpdate.Size = New System.Drawing.Size(190, 31) + Me.lblTVUpdate.TabIndex = 5 + Me.lblTVUpdate.Text = "Re-download Show Information Every:" + Me.lblTVUpdate.TextAlign = System.Drawing.ContentAlignment.TopCenter + ' + 'cboTVUpdate + ' + Me.cboTVUpdate.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cboTVUpdate.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.cboTVUpdate.FormattingEnabled = True + Me.cboTVUpdate.Location = New System.Drawing.Point(17, 248) + Me.cboTVUpdate.Name = "cboTVUpdate" + Me.cboTVUpdate.Size = New System.Drawing.Size(166, 21) + Me.cboTVUpdate.TabIndex = 6 + ' + 'lblAPIKey + ' + Me.lblAPIKey.AutoSize = True + Me.lblAPIKey.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblAPIKey.Location = New System.Drawing.Point(4, 60) + Me.lblAPIKey.Name = "lblAPIKey" + Me.lblAPIKey.Size = New System.Drawing.Size(73, 13) + Me.lblAPIKey.TabIndex = 2 + Me.lblAPIKey.Text = "TVDB APIKey:" + ' + 'lblTVDBMirror + ' + Me.lblTVDBMirror.AutoSize = True + Me.lblTVDBMirror.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblTVDBMirror.Location = New System.Drawing.Point(4, 17) + Me.lblTVDBMirror.Name = "lblTVDBMirror" + Me.lblTVDBMirror.Size = New System.Drawing.Size(72, 13) + Me.lblTVDBMirror.TabIndex = 0 + Me.lblTVDBMirror.Text = "TVDB Mirror:" + ' + 'txtAPIKey + ' + Me.txtAPIKey.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtAPIKey.Location = New System.Drawing.Point(6, 75) + Me.txtAPIKey.Name = "txtAPIKey" + Me.txtAPIKey.Size = New System.Drawing.Size(189, 22) + Me.txtAPIKey.TabIndex = 3 + ' + 'txtTVDBMirror + ' + Me.txtTVDBMirror.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtTVDBMirror.Location = New System.Drawing.Point(6, 32) + Me.txtTVDBMirror.Name = "txtTVDBMirror" + Me.txtTVDBMirror.Size = New System.Drawing.Size(189, 22) + Me.txtTVDBMirror.TabIndex = 1 + ' + 'gbLanguage + ' + Me.gbLanguage.Controls.Add(Me.lblTVLanguagePreferred) + Me.gbLanguage.Controls.Add(Me.btnTVLanguageFetch) + Me.gbLanguage.Controls.Add(Me.cbTVLanguage) + Me.gbLanguage.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.gbLanguage.Location = New System.Drawing.Point(5, 104) + Me.gbLanguage.Name = "gbLanguage" + Me.gbLanguage.Size = New System.Drawing.Size(190, 100) + Me.gbLanguage.TabIndex = 4 + Me.gbLanguage.TabStop = False + Me.gbLanguage.Text = "Language" + ' + 'lblTVLanguagePreferred + ' + Me.lblTVLanguagePreferred.AutoSize = True + Me.lblTVLanguagePreferred.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblTVLanguagePreferred.Location = New System.Drawing.Point(10, 24) + Me.lblTVLanguagePreferred.Name = "lblTVLanguagePreferred" + Me.lblTVLanguagePreferred.Size = New System.Drawing.Size(111, 13) + Me.lblTVLanguagePreferred.TabIndex = 0 + Me.lblTVLanguagePreferred.Text = "Preferred Language:" + ' + 'btnTVLanguageFetch + ' + Me.btnTVLanguageFetch.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.btnTVLanguageFetch.Location = New System.Drawing.Point(12, 68) + Me.btnTVLanguageFetch.Name = "btnTVLanguageFetch" + Me.btnTVLanguageFetch.Size = New System.Drawing.Size(166, 23) + Me.btnTVLanguageFetch.TabIndex = 2 + Me.btnTVLanguageFetch.Text = "Fetch Available Languages" + Me.btnTVLanguageFetch.UseVisualStyleBackColor = True + ' + 'cbTVLanguage + ' + Me.cbTVLanguage.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cbTVLanguage.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.cbTVLanguage.Location = New System.Drawing.Point(12, 39) + Me.cbTVLanguage.Name = "cbTVLanguage" + Me.cbTVLanguage.Size = New System.Drawing.Size(166, 21) + Me.cbTVLanguage.TabIndex = 1 + ' + 'gbOptions + ' + Me.gbOptions.Controls.Add(Me.chkCertification) + Me.gbOptions.Controls.Add(Me.chkTop250) + Me.gbOptions.Controls.Add(Me.chkCountry) + Me.gbOptions.Controls.Add(Me.txtGenreLimit) + Me.gbOptions.Controls.Add(Me.lblLimit2) + Me.gbOptions.Controls.Add(Me.txtActorLimit) + Me.gbOptions.Controls.Add(Me.lblLimit) + Me.gbOptions.Controls.Add(Me.chkCrew) + Me.gbOptions.Controls.Add(Me.chkMusicBy) + Me.gbOptions.Controls.Add(Me.chkProducers) + Me.gbOptions.Controls.Add(Me.chkWriters) + Me.gbOptions.Controls.Add(Me.chkStudio) + Me.gbOptions.Controls.Add(Me.chkRuntime) + Me.gbOptions.Controls.Add(Me.chkPlot) + Me.gbOptions.Controls.Add(Me.chkOutline) + Me.gbOptions.Controls.Add(Me.chkGenre) + Me.gbOptions.Controls.Add(Me.chkDirector) + Me.gbOptions.Controls.Add(Me.chkTagline) + Me.gbOptions.Controls.Add(Me.chkCast) + Me.gbOptions.Controls.Add(Me.chkVotes) + Me.gbOptions.Controls.Add(Me.chkTrailer) + Me.gbOptions.Controls.Add(Me.chkRating) + Me.gbOptions.Controls.Add(Me.chkRelease) + Me.gbOptions.Controls.Add(Me.chkMPAA) + Me.gbOptions.Controls.Add(Me.chkYear) + Me.gbOptions.Controls.Add(Me.chkTitle) + Me.gbOptions.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.gbOptions.Location = New System.Drawing.Point(8, 227) + Me.gbOptions.Name = "gbOptions" + Me.gbOptions.Size = New System.Drawing.Size(302, 170) + Me.gbOptions.TabIndex = 67 + Me.gbOptions.TabStop = False + Me.gbOptions.Text = "Scraper Fields - Global" + ' + 'chkCertification + ' + Me.chkCertification.AutoSize = True + Me.chkCertification.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkCertification.Location = New System.Drawing.Point(6, 76) + Me.chkCertification.Name = "chkCertification" + Me.chkCertification.Size = New System.Drawing.Size(89, 17) + Me.chkCertification.TabIndex = 24 + Me.chkCertification.Text = "Certification" + Me.chkCertification.UseVisualStyleBackColor = True + ' + 'chkTop250 + ' + Me.chkTop250.AutoSize = True + Me.chkTop250.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkTop250.Location = New System.Drawing.Point(205, 133) + Me.chkTop250.Name = "chkTop250" + Me.chkTop250.Size = New System.Drawing.Size(66, 17) + Me.chkTop250.TabIndex = 23 + Me.chkTop250.Text = "Top 250" + Me.chkTop250.UseVisualStyleBackColor = True + ' + 'chkCountry + ' + Me.chkCountry.AutoSize = True + Me.chkCountry.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkCountry.Location = New System.Drawing.Point(205, 152) + Me.chkCountry.Name = "chkCountry" + Me.chkCountry.Size = New System.Drawing.Size(67, 17) + Me.chkCountry.TabIndex = 25 + Me.chkCountry.Text = "Country" + Me.chkCountry.UseVisualStyleBackColor = True + ' + 'txtGenreLimit + ' + Me.txtGenreLimit.Enabled = False + Me.txtGenreLimit.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtGenreLimit.Location = New System.Drawing.Point(255, 55) + Me.txtGenreLimit.Name = "txtGenreLimit" + Me.txtGenreLimit.Size = New System.Drawing.Size(39, 22) + Me.txtGenreLimit.TabIndex = 21 + ' + 'lblLimit2 + ' + Me.lblLimit2.AutoSize = True + Me.lblLimit2.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblLimit2.Location = New System.Drawing.Point(223, 58) + Me.lblLimit2.Name = "lblLimit2" + Me.lblLimit2.Size = New System.Drawing.Size(34, 13) + Me.lblLimit2.TabIndex = 22 + Me.lblLimit2.Text = "Limit:" + Me.lblLimit2.TextAlign = System.Drawing.ContentAlignment.MiddleRight + ' + 'txtActorLimit + ' + Me.txtActorLimit.Enabled = False + Me.txtActorLimit.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtActorLimit.Location = New System.Drawing.Point(151, 112) + Me.txtActorLimit.Name = "txtActorLimit" + Me.txtActorLimit.Size = New System.Drawing.Size(39, 22) + Me.txtActorLimit.TabIndex = 19 + ' + 'lblLimit + ' + Me.lblLimit.AutoSize = True + Me.lblLimit.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblLimit.Location = New System.Drawing.Point(118, 115) + Me.lblLimit.Name = "lblLimit" + Me.lblLimit.Size = New System.Drawing.Size(34, 13) + Me.lblLimit.TabIndex = 20 + Me.lblLimit.Text = "Limit:" + Me.lblLimit.TextAlign = System.Drawing.ContentAlignment.MiddleRight + ' + 'chkCrew + ' + Me.chkCrew.AutoSize = True + Me.chkCrew.Enabled = False + Me.chkCrew.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkCrew.Location = New System.Drawing.Point(205, 114) + Me.chkCrew.Name = "chkCrew" + Me.chkCrew.Size = New System.Drawing.Size(85, 17) + Me.chkCrew.TabIndex = 18 + Me.chkCrew.Text = "Other Crew" + Me.chkCrew.UseVisualStyleBackColor = True + ' + 'chkMusicBy + ' + Me.chkMusicBy.AutoSize = True + Me.chkMusicBy.Enabled = False + Me.chkMusicBy.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkMusicBy.Location = New System.Drawing.Point(205, 95) + Me.chkMusicBy.Name = "chkMusicBy" + Me.chkMusicBy.Size = New System.Drawing.Size(71, 17) + Me.chkMusicBy.TabIndex = 17 + Me.chkMusicBy.Text = "Music By" + Me.chkMusicBy.UseVisualStyleBackColor = True + ' + 'chkProducers + ' + Me.chkProducers.AutoSize = True + Me.chkProducers.Enabled = False + Me.chkProducers.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkProducers.Location = New System.Drawing.Point(205, 19) + Me.chkProducers.Name = "chkProducers" + Me.chkProducers.Size = New System.Drawing.Size(77, 17) + Me.chkProducers.TabIndex = 16 + Me.chkProducers.Text = "Producers" + Me.chkProducers.UseVisualStyleBackColor = True + ' + 'chkWriters + ' + Me.chkWriters.AutoSize = True + Me.chkWriters.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkWriters.Location = New System.Drawing.Point(101, 152) + Me.chkWriters.Name = "chkWriters" + Me.chkWriters.Size = New System.Drawing.Size(63, 17) + Me.chkWriters.TabIndex = 15 + Me.chkWriters.Text = "Writers" + Me.chkWriters.UseVisualStyleBackColor = True + ' + 'chkStudio + ' + Me.chkStudio.AutoSize = True + Me.chkStudio.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkStudio.Location = New System.Drawing.Point(101, 19) + Me.chkStudio.Name = "chkStudio" + Me.chkStudio.Size = New System.Drawing.Size(60, 17) + Me.chkStudio.TabIndex = 14 + Me.chkStudio.Text = "Studio" + Me.chkStudio.UseVisualStyleBackColor = True + ' + 'chkRuntime + ' + Me.chkRuntime.AutoSize = True + Me.chkRuntime.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkRuntime.Location = New System.Drawing.Point(6, 114) + Me.chkRuntime.Name = "chkRuntime" + Me.chkRuntime.Size = New System.Drawing.Size(69, 17) + Me.chkRuntime.TabIndex = 13 + Me.chkRuntime.Text = "Runtime" + Me.chkRuntime.UseVisualStyleBackColor = True + ' + 'chkPlot + ' + Me.chkPlot.AutoSize = True + Me.chkPlot.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkPlot.Location = New System.Drawing.Point(101, 76) + Me.chkPlot.Name = "chkPlot" + Me.chkPlot.Size = New System.Drawing.Size(46, 17) + Me.chkPlot.TabIndex = 12 + Me.chkPlot.Text = "Plot" + Me.chkPlot.UseVisualStyleBackColor = True + ' + 'chkOutline + ' + Me.chkOutline.AutoSize = True + Me.chkOutline.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkOutline.Location = New System.Drawing.Point(101, 57) + Me.chkOutline.Name = "chkOutline" + Me.chkOutline.Size = New System.Drawing.Size(65, 17) + Me.chkOutline.TabIndex = 11 + Me.chkOutline.Text = "Outline" + Me.chkOutline.UseVisualStyleBackColor = True + ' + 'chkGenre + ' + Me.chkGenre.AutoSize = True + Me.chkGenre.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkGenre.Location = New System.Drawing.Point(205, 38) + Me.chkGenre.Name = "chkGenre" + Me.chkGenre.Size = New System.Drawing.Size(57, 17) + Me.chkGenre.TabIndex = 10 + Me.chkGenre.Text = "Genre" + Me.chkGenre.UseVisualStyleBackColor = True + ' + 'chkDirector + ' + Me.chkDirector.AutoSize = True + Me.chkDirector.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkDirector.Location = New System.Drawing.Point(101, 133) + Me.chkDirector.Name = "chkDirector" + Me.chkDirector.Size = New System.Drawing.Size(67, 17) + Me.chkDirector.TabIndex = 9 + Me.chkDirector.Text = "Director" + Me.chkDirector.UseVisualStyleBackColor = True + ' + 'chkTagline + ' + Me.chkTagline.AutoSize = True + Me.chkTagline.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkTagline.Location = New System.Drawing.Point(101, 38) + Me.chkTagline.Name = "chkTagline" + Me.chkTagline.Size = New System.Drawing.Size(63, 17) + Me.chkTagline.TabIndex = 8 + Me.chkTagline.Text = "Tagline" + Me.chkTagline.UseVisualStyleBackColor = True + ' + 'chkCast + ' + Me.chkCast.AutoSize = True + Me.chkCast.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkCast.Location = New System.Drawing.Point(101, 95) + Me.chkCast.Name = "chkCast" + Me.chkCast.Size = New System.Drawing.Size(48, 17) + Me.chkCast.TabIndex = 7 + Me.chkCast.Text = "Cast" + Me.chkCast.UseVisualStyleBackColor = True + ' + 'chkVotes + ' + Me.chkVotes.AutoSize = True + Me.chkVotes.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkVotes.Location = New System.Drawing.Point(6, 152) + Me.chkVotes.Name = "chkVotes" + Me.chkVotes.Size = New System.Drawing.Size(55, 17) + Me.chkVotes.TabIndex = 6 + Me.chkVotes.Text = "Votes" + Me.chkVotes.UseVisualStyleBackColor = True + ' + 'chkTrailer + ' + Me.chkTrailer.AutoSize = True + Me.chkTrailer.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkTrailer.Location = New System.Drawing.Point(205, 76) + Me.chkTrailer.Name = "chkTrailer" + Me.chkTrailer.Size = New System.Drawing.Size(57, 17) + Me.chkTrailer.TabIndex = 5 + Me.chkTrailer.Text = "Trailer" + Me.chkTrailer.UseVisualStyleBackColor = True + ' + 'chkRating + ' + Me.chkRating.AutoSize = True + Me.chkRating.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkRating.Location = New System.Drawing.Point(6, 133) + Me.chkRating.Name = "chkRating" + Me.chkRating.Size = New System.Drawing.Size(60, 17) + Me.chkRating.TabIndex = 4 + Me.chkRating.Text = "Rating" + Me.chkRating.UseVisualStyleBackColor = True + ' + 'chkRelease + ' + Me.chkRelease.AutoSize = True + Me.chkRelease.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkRelease.Location = New System.Drawing.Point(6, 95) + Me.chkRelease.Name = "chkRelease" + Me.chkRelease.Size = New System.Drawing.Size(92, 17) + Me.chkRelease.TabIndex = 3 + Me.chkRelease.Text = "Release Date" + Me.chkRelease.UseVisualStyleBackColor = True + ' + 'chkMPAA + ' + Me.chkMPAA.AutoSize = True + Me.chkMPAA.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkMPAA.Location = New System.Drawing.Point(6, 57) + Me.chkMPAA.Name = "chkMPAA" + Me.chkMPAA.Size = New System.Drawing.Size(56, 17) + Me.chkMPAA.TabIndex = 2 + Me.chkMPAA.Text = "MPAA" + Me.chkMPAA.UseVisualStyleBackColor = True + ' + 'chkYear + ' + Me.chkYear.AutoSize = True + Me.chkYear.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkYear.Location = New System.Drawing.Point(6, 38) + Me.chkYear.Name = "chkYear" + Me.chkYear.Size = New System.Drawing.Size(47, 17) + Me.chkYear.TabIndex = 1 + Me.chkYear.Text = "Year" + Me.chkYear.UseVisualStyleBackColor = True + ' + 'chkTitle + ' + Me.chkTitle.AutoSize = True + Me.chkTitle.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkTitle.Location = New System.Drawing.Point(6, 19) + Me.chkTitle.Name = "chkTitle" + Me.chkTitle.Size = New System.Drawing.Size(47, 17) + Me.chkTitle.TabIndex = 0 + Me.chkTitle.Text = "Title" + Me.chkTitle.UseVisualStyleBackColor = True + ' + 'GroupBox26 + ' + Me.GroupBox26.Controls.Add(Me.GroupBox28) + Me.GroupBox26.Controls.Add(Me.chkIFOScan) + Me.GroupBox26.Controls.Add(Me.cbLanguages) + Me.GroupBox26.Controls.Add(Me.Label31) + Me.GroupBox26.Controls.Add(Me.gbRTFormat) + Me.GroupBox26.Controls.Add(Me.chkScanMediaInfo) + Me.GroupBox26.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.GroupBox26.Location = New System.Drawing.Point(168, 6) + Me.GroupBox26.Name = "GroupBox26" + Me.GroupBox26.Size = New System.Drawing.Size(434, 176) + Me.GroupBox26.TabIndex = 63 + Me.GroupBox26.TabStop = False + Me.GroupBox26.Text = "Meta Data" + ' + 'GroupBox28 + ' + Me.GroupBox28.Controls.Add(Me.lstMetaData) + Me.GroupBox28.Controls.Add(Me.txtDefFIExt) + Me.GroupBox28.Controls.Add(Me.Label34) + Me.GroupBox28.Controls.Add(Me.btnRemoveMetaDataFT) + Me.GroupBox28.Controls.Add(Me.btnEditMetaDataFT) + Me.GroupBox28.Controls.Add(Me.btnNewMetaDataFT) + Me.GroupBox28.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.GroupBox28.Location = New System.Drawing.Point(249, 10) + Me.GroupBox28.Name = "GroupBox28" + Me.GroupBox28.Size = New System.Drawing.Size(183, 144) + Me.GroupBox28.TabIndex = 8 + Me.GroupBox28.TabStop = False + Me.GroupBox28.Text = "Defaults by File Type" + ' + 'lstMetaData + ' + Me.lstMetaData.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lstMetaData.FormattingEnabled = True + Me.lstMetaData.Location = New System.Drawing.Point(9, 15) + Me.lstMetaData.Name = "lstMetaData" + Me.lstMetaData.Size = New System.Drawing.Size(165, 95) + Me.lstMetaData.TabIndex = 34 + ' + 'txtDefFIExt + ' + Me.txtDefFIExt.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtDefFIExt.Location = New System.Drawing.Point(72, 115) + Me.txtDefFIExt.Name = "txtDefFIExt" + Me.txtDefFIExt.Size = New System.Drawing.Size(35, 22) + Me.txtDefFIExt.TabIndex = 33 + ' + 'Label34 + ' + Me.Label34.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label34.Location = New System.Drawing.Point(7, 118) + Me.Label34.Name = "Label34" + Me.Label34.Size = New System.Drawing.Size(63, 19) + Me.Label34.TabIndex = 32 + Me.Label34.Text = "File Type:" + Me.Label34.TextAlign = System.Drawing.ContentAlignment.MiddleRight + ' + 'btnRemoveMetaDataFT + ' + Me.btnRemoveMetaDataFT.Enabled = False + Me.btnRemoveMetaDataFT.Image = CType(resources.GetObject("btnRemoveMetaDataFT.Image"), System.Drawing.Image) + Me.btnRemoveMetaDataFT.Location = New System.Drawing.Point(152, 114) + Me.btnRemoveMetaDataFT.Name = "btnRemoveMetaDataFT" + Me.btnRemoveMetaDataFT.Size = New System.Drawing.Size(23, 23) + Me.btnRemoveMetaDataFT.TabIndex = 31 + Me.btnRemoveMetaDataFT.UseVisualStyleBackColor = True + ' + 'btnEditMetaDataFT + ' + Me.btnEditMetaDataFT.Enabled = False + Me.btnEditMetaDataFT.Image = CType(resources.GetObject("btnEditMetaDataFT.Image"), System.Drawing.Image) + Me.btnEditMetaDataFT.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnEditMetaDataFT.Location = New System.Drawing.Point(129, 114) + Me.btnEditMetaDataFT.Name = "btnEditMetaDataFT" + Me.btnEditMetaDataFT.Size = New System.Drawing.Size(23, 23) + Me.btnEditMetaDataFT.TabIndex = 30 + Me.btnEditMetaDataFT.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnEditMetaDataFT.UseVisualStyleBackColor = True + ' + 'btnNewMetaDataFT + ' + Me.btnNewMetaDataFT.Enabled = False + Me.btnNewMetaDataFT.Image = CType(resources.GetObject("btnNewMetaDataFT.Image"), System.Drawing.Image) + Me.btnNewMetaDataFT.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnNewMetaDataFT.Location = New System.Drawing.Point(107, 114) + Me.btnNewMetaDataFT.Name = "btnNewMetaDataFT" + Me.btnNewMetaDataFT.Size = New System.Drawing.Size(23, 23) + Me.btnNewMetaDataFT.TabIndex = 29 + Me.btnNewMetaDataFT.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnNewMetaDataFT.UseVisualStyleBackColor = True + ' + 'chkIFOScan + ' + Me.chkIFOScan.AutoSize = True + Me.chkIFOScan.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkIFOScan.Location = New System.Drawing.Point(6, 33) + Me.chkIFOScan.Name = "chkIFOScan" + Me.chkIFOScan.Size = New System.Drawing.Size(123, 17) + Me.chkIFOScan.TabIndex = 18 + Me.chkIFOScan.Text = "Enable IFO Parsing" + Me.chkIFOScan.UseVisualStyleBackColor = True + ' + 'cbLanguages + ' + Me.cbLanguages.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cbLanguages.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.cbLanguages.FormattingEnabled = True + Me.cbLanguages.Location = New System.Drawing.Point(38, 147) + Me.cbLanguages.Name = "cbLanguages" + Me.cbLanguages.Size = New System.Drawing.Size(174, 21) + Me.cbLanguages.Sorted = True + Me.cbLanguages.TabIndex = 17 + ' + 'Label31 + ' + Me.Label31.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label31.Location = New System.Drawing.Point(2, 117) + Me.Label31.Name = "Label31" + Me.Label31.Size = New System.Drawing.Size(245, 29) + Me.Label31.TabIndex = 16 + Me.Label31.Text = "Display Overlay if Video Contains an Audio Stream With the Following Language:" + Me.Label31.TextAlign = System.Drawing.ContentAlignment.TopCenter + ' + 'gbRTFormat + ' + Me.gbRTFormat.Controls.Add(Me.Label51) + Me.gbRTFormat.Controls.Add(Me.txtRuntimeFormat) + Me.gbRTFormat.Controls.Add(Me.chkUseMIDuration) + Me.gbRTFormat.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.gbRTFormat.Location = New System.Drawing.Point(6, 50) + Me.gbRTFormat.Name = "gbRTFormat" + Me.gbRTFormat.Size = New System.Drawing.Size(234, 64) + Me.gbRTFormat.TabIndex = 9 + Me.gbRTFormat.TabStop = False + Me.gbRTFormat.Text = "Duration Format" + ' + 'Label51 + ' + Me.Label51.Font = New System.Drawing.Font("Segoe UI", 7.0!) + Me.Label51.Location = New System.Drawing.Point(160, 10) + Me.Label51.Name = "Label51" + Me.Label51.Size = New System.Drawing.Size(72, 50) + Me.Label51.TabIndex = 23 + Me.Label51.Text = "=Hours" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "=Minutes" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "=Seconds" + Me.Label51.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + ' + 'txtRuntimeFormat + ' + Me.txtRuntimeFormat.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtRuntimeFormat.Location = New System.Drawing.Point(5, 34) + Me.txtRuntimeFormat.Name = "txtRuntimeFormat" + Me.txtRuntimeFormat.Size = New System.Drawing.Size(145, 22) + Me.txtRuntimeFormat.TabIndex = 22 + ' + 'chkUseMIDuration + ' + Me.chkUseMIDuration.AutoSize = True + Me.chkUseMIDuration.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkUseMIDuration.Location = New System.Drawing.Point(5, 15) + Me.chkUseMIDuration.Name = "chkUseMIDuration" + Me.chkUseMIDuration.Size = New System.Drawing.Size(158, 17) + Me.chkUseMIDuration.TabIndex = 8 + Me.chkUseMIDuration.Text = "Use Duration for Runtime" + Me.chkUseMIDuration.UseVisualStyleBackColor = True + ' + 'chkScanMediaInfo + ' + Me.chkScanMediaInfo.AutoSize = True + Me.chkScanMediaInfo.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkScanMediaInfo.Location = New System.Drawing.Point(6, 16) + Me.chkScanMediaInfo.Name = "chkScanMediaInfo" + Me.chkScanMediaInfo.Size = New System.Drawing.Size(106, 17) + Me.chkScanMediaInfo.TabIndex = 7 + Me.chkScanMediaInfo.Text = "Scan Meta Data" + Me.chkScanMediaInfo.UseVisualStyleBackColor = True + ' + 'GroupBox10 + ' + Me.GroupBox10.Controls.Add(Me.chkLockSubtitle) + Me.GroupBox10.Controls.Add(Me.chkLockMPAA) + Me.GroupBox10.Controls.Add(Me.chkLockLanguageA) + Me.GroupBox10.Controls.Add(Me.chkLockLanguageV) + Me.GroupBox10.Controls.Add(Me.chkLockOutline) + Me.GroupBox10.Controls.Add(Me.chkLockPlot) + Me.GroupBox10.Controls.Add(Me.chkLockTrailer) + Me.GroupBox10.Controls.Add(Me.chkLockGenre) + Me.GroupBox10.Controls.Add(Me.chkLockRealStudio) + Me.GroupBox10.Controls.Add(Me.chkLockRating) + Me.GroupBox10.Controls.Add(Me.chkLockTagline) + Me.GroupBox10.Controls.Add(Me.chkLockTitle) + Me.GroupBox10.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.GroupBox10.Location = New System.Drawing.Point(8, 6) + Me.GroupBox10.Name = "GroupBox10" + Me.GroupBox10.Size = New System.Drawing.Size(156, 224) + Me.GroupBox10.TabIndex = 1 + Me.GroupBox10.TabStop = False + Me.GroupBox10.Text = "Global Locks" + ' + 'chkLockSubtitle + ' + Me.chkLockSubtitle.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkLockSubtitle.Location = New System.Drawing.Point(6, 203) + Me.chkLockSubtitle.Name = "chkLockSubtitle" + Me.chkLockSubtitle.Size = New System.Drawing.Size(129, 17) + Me.chkLockSubtitle.TabIndex = 50 + Me.chkLockSubtitle.Text = "Lock Subtitle" + Me.chkLockSubtitle.UseVisualStyleBackColor = True + ' + 'chkLockMPAA + ' + Me.chkLockMPAA.AutoSize = True + Me.chkLockMPAA.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkLockMPAA.Location = New System.Drawing.Point(6, 186) + Me.chkLockMPAA.Name = "chkLockMPAA" + Me.chkLockMPAA.Size = New System.Drawing.Size(149, 17) + Me.chkLockMPAA.TabIndex = 49 + Me.chkLockMPAA.Text = "Lock MPAA/Certification" + Me.chkLockMPAA.UseVisualStyleBackColor = True + ' + 'chkLockLanguageA + ' + Me.chkLockLanguageA.AutoSize = True + Me.chkLockLanguageA.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkLockLanguageA.Location = New System.Drawing.Point(6, 169) + Me.chkLockLanguageA.Name = "chkLockLanguageA" + Me.chkLockLanguageA.Size = New System.Drawing.Size(142, 17) + Me.chkLockLanguageA.TabIndex = 48 + Me.chkLockLanguageA.Text = "Lock Language (audio)" + Me.chkLockLanguageA.UseVisualStyleBackColor = True + ' + 'chkLockLanguageV + ' + Me.chkLockLanguageV.AutoSize = True + Me.chkLockLanguageV.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkLockLanguageV.Location = New System.Drawing.Point(6, 152) + Me.chkLockLanguageV.Name = "chkLockLanguageV" + Me.chkLockLanguageV.Size = New System.Drawing.Size(140, 17) + Me.chkLockLanguageV.TabIndex = 47 + Me.chkLockLanguageV.Text = "Lock Language (video)" + Me.chkLockLanguageV.UseVisualStyleBackColor = True + ' + 'chkLockOutline + ' + Me.chkLockOutline.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkLockOutline.Location = New System.Drawing.Point(6, 50) + Me.chkLockOutline.Name = "chkLockOutline" + Me.chkLockOutline.Size = New System.Drawing.Size(129, 17) + Me.chkLockOutline.TabIndex = 1 + Me.chkLockOutline.Text = "Lock Outline" + Me.chkLockOutline.UseVisualStyleBackColor = True + ' + 'chkLockPlot + ' + Me.chkLockPlot.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkLockPlot.Location = New System.Drawing.Point(6, 33) + Me.chkLockPlot.Name = "chkLockPlot" + Me.chkLockPlot.Size = New System.Drawing.Size(76, 17) + Me.chkLockPlot.TabIndex = 0 + Me.chkLockPlot.Text = "Lock Plot" + Me.chkLockPlot.UseVisualStyleBackColor = True + ' + 'chkLockTrailer + ' + Me.chkLockTrailer.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkLockTrailer.Location = New System.Drawing.Point(6, 135) + Me.chkLockTrailer.Name = "chkLockTrailer" + Me.chkLockTrailer.Size = New System.Drawing.Size(129, 17) + Me.chkLockTrailer.TabIndex = 46 + Me.chkLockTrailer.Text = "Lock Trailer" + Me.chkLockTrailer.UseVisualStyleBackColor = True + ' + 'chkLockGenre + ' + Me.chkLockGenre.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkLockGenre.Location = New System.Drawing.Point(6, 118) + Me.chkLockGenre.Name = "chkLockGenre" + Me.chkLockGenre.Size = New System.Drawing.Size(129, 17) + Me.chkLockGenre.TabIndex = 7 + Me.chkLockGenre.Text = "Lock Genre" + Me.chkLockGenre.UseVisualStyleBackColor = True + ' + 'chkLockRealStudio + ' + Me.chkLockRealStudio.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkLockRealStudio.Location = New System.Drawing.Point(6, 101) + Me.chkLockRealStudio.Name = "chkLockRealStudio" + Me.chkLockRealStudio.Size = New System.Drawing.Size(129, 17) + Me.chkLockRealStudio.TabIndex = 5 + Me.chkLockRealStudio.Text = "Lock Studio" + Me.chkLockRealStudio.UseVisualStyleBackColor = True + ' + 'chkLockRating + ' + Me.chkLockRating.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkLockRating.Location = New System.Drawing.Point(6, 84) + Me.chkLockRating.Name = "chkLockRating" + Me.chkLockRating.Size = New System.Drawing.Size(129, 17) + Me.chkLockRating.TabIndex = 4 + Me.chkLockRating.Text = "Lock Rating" + Me.chkLockRating.UseVisualStyleBackColor = True + ' + 'chkLockTagline + ' + Me.chkLockTagline.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkLockTagline.Location = New System.Drawing.Point(6, 67) + Me.chkLockTagline.Name = "chkLockTagline" + Me.chkLockTagline.Size = New System.Drawing.Size(129, 17) + Me.chkLockTagline.TabIndex = 3 + Me.chkLockTagline.Text = "Lock Tagline" + Me.chkLockTagline.UseVisualStyleBackColor = True + ' + 'chkLockTitle + ' + Me.chkLockTitle.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkLockTitle.Location = New System.Drawing.Point(6, 16) + Me.chkLockTitle.Name = "chkLockTitle" + Me.chkLockTitle.Size = New System.Drawing.Size(129, 17) + Me.chkLockTitle.TabIndex = 2 + Me.chkLockTitle.Text = "Lock Title" + Me.chkLockTitle.UseVisualStyleBackColor = True + ' + 'GroupBox1 + ' + Me.GroupBox1.Controls.Add(Me.chkUseMPAAFSK) + Me.GroupBox1.Controls.Add(Me.chkOnlyValueForCert) + Me.GroupBox1.Controls.Add(Me.cbForce) + Me.GroupBox1.Controls.Add(Me.chkForceTitle) + Me.GroupBox1.Controls.Add(Me.chkOutlineForPlot) + Me.GroupBox1.Controls.Add(Me.chkCastWithImg) + Me.GroupBox1.Controls.Add(Me.chkUseCertForMPAA) + Me.GroupBox1.Controls.Add(Me.chkFullCast) + Me.GroupBox1.Controls.Add(Me.chkFullCrew) + Me.GroupBox1.Controls.Add(Me.cbCert) + Me.GroupBox1.Controls.Add(Me.chkCert) + Me.GroupBox1.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.GroupBox1.Location = New System.Drawing.Point(313, 187) + Me.GroupBox1.Name = "GroupBox1" + Me.GroupBox1.Size = New System.Drawing.Size(289, 210) + Me.GroupBox1.TabIndex = 0 + Me.GroupBox1.TabStop = False + Me.GroupBox1.Text = "Miscellaneous" + ' + 'chkUseMPAAFSK + ' + Me.chkUseMPAAFSK.AutoSize = True + Me.chkUseMPAAFSK.Enabled = False + Me.chkUseMPAAFSK.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkUseMPAAFSK.Location = New System.Drawing.Point(25, 163) + Me.chkUseMPAAFSK.Name = "chkUseMPAAFSK" + Me.chkUseMPAAFSK.Size = New System.Drawing.Size(213, 17) + Me.chkUseMPAAFSK.TabIndex = 67 + Me.chkUseMPAAFSK.Text = "Use MPAA as Fallback for FSK Rating" + Me.chkUseMPAAFSK.UseVisualStyleBackColor = True + ' + 'chkOnlyValueForCert + ' + Me.chkOnlyValueForCert.AutoSize = True + Me.chkOnlyValueForCert.Enabled = False + Me.chkOnlyValueForCert.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkOnlyValueForCert.Location = New System.Drawing.Point(25, 142) + Me.chkOnlyValueForCert.Name = "chkOnlyValueForCert" + Me.chkOnlyValueForCert.Size = New System.Drawing.Size(168, 17) + Me.chkOnlyValueForCert.TabIndex = 66 + Me.chkOnlyValueForCert.Text = "Only Save the Value to NFO" + Me.chkOnlyValueForCert.UseVisualStyleBackColor = True + ' + 'cbForce + ' + Me.cbForce.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cbForce.Enabled = False + Me.cbForce.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.cbForce.FormattingEnabled = True + Me.cbForce.Location = New System.Drawing.Point(139, 183) + Me.cbForce.Name = "cbForce" + Me.cbForce.Size = New System.Drawing.Size(144, 21) + Me.cbForce.Sorted = True + Me.cbForce.TabIndex = 65 + ' + 'chkForceTitle + ' + Me.chkForceTitle.AutoSize = True + Me.chkForceTitle.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkForceTitle.Location = New System.Drawing.Point(6, 184) + Me.chkForceTitle.Name = "chkForceTitle" + Me.chkForceTitle.Size = New System.Drawing.Size(135, 17) + Me.chkForceTitle.TabIndex = 64 + Me.chkForceTitle.Text = "Force Title Language:" + Me.chkForceTitle.UseVisualStyleBackColor = True + ' + 'chkOutlineForPlot + ' + Me.chkOutlineForPlot.AutoSize = True + Me.chkOutlineForPlot.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkOutlineForPlot.Location = New System.Drawing.Point(6, 82) + Me.chkOutlineForPlot.Name = "chkOutlineForPlot" + Me.chkOutlineForPlot.Size = New System.Drawing.Size(206, 17) + Me.chkOutlineForPlot.TabIndex = 3 + Me.chkOutlineForPlot.Text = "Use Outline for Plot if Plot is Empty" + Me.chkOutlineForPlot.UseVisualStyleBackColor = True + ' + 'chkCastWithImg + ' + Me.chkCastWithImg.AutoSize = True + Me.chkCastWithImg.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkCastWithImg.Location = New System.Drawing.Point(6, 40) + Me.chkCastWithImg.Name = "chkCastWithImg" + Me.chkCastWithImg.Size = New System.Drawing.Size(189, 17) + Me.chkCastWithImg.TabIndex = 1 + Me.chkCastWithImg.Text = "Scrape Only Actors With Images" + Me.chkCastWithImg.UseVisualStyleBackColor = True + ' + 'chkUseCertForMPAA + ' + Me.chkUseCertForMPAA.AutoSize = True + Me.chkUseCertForMPAA.Enabled = False + Me.chkUseCertForMPAA.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkUseCertForMPAA.Location = New System.Drawing.Point(6, 124) + Me.chkUseCertForMPAA.Name = "chkUseCertForMPAA" + Me.chkUseCertForMPAA.Size = New System.Drawing.Size(162, 17) + Me.chkUseCertForMPAA.TabIndex = 6 + Me.chkUseCertForMPAA.Text = "Use Certification for MPAA" + Me.chkUseCertForMPAA.UseVisualStyleBackColor = True + ' + 'chkFullCast + ' + Me.chkFullCast.AutoSize = True + Me.chkFullCast.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkFullCast.Location = New System.Drawing.Point(6, 19) + Me.chkFullCast.Name = "chkFullCast" + Me.chkFullCast.Size = New System.Drawing.Size(107, 17) + Me.chkFullCast.TabIndex = 0 + Me.chkFullCast.Text = "Scrape Full Cast" + Me.chkFullCast.UseVisualStyleBackColor = True + ' + 'chkFullCrew + ' + Me.chkFullCrew.AutoSize = True + Me.chkFullCrew.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkFullCrew.Location = New System.Drawing.Point(6, 61) + Me.chkFullCrew.Name = "chkFullCrew" + Me.chkFullCrew.Size = New System.Drawing.Size(111, 17) + Me.chkFullCrew.TabIndex = 2 + Me.chkFullCrew.Text = "Scrape Full Crew" + Me.chkFullCrew.UseVisualStyleBackColor = True + ' + 'cbCert + ' + Me.cbCert.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cbCert.Enabled = False + Me.cbCert.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.cbCert.FormattingEnabled = True + Me.cbCert.Items.AddRange(New Object() {"Argentina", "Australia", "Belgium", "Brazil", "Canada", "Finland", "France", "Germany", "Hong Kong", "Iceland", "Ireland", "Netherlands", "New Zealand", "Peru", "Portugal", "Singapore", "South Korea", "Spain", "Sweden", "Switzerland", "UK", "USA"}) + Me.cbCert.Location = New System.Drawing.Point(175, 102) + Me.cbCert.Name = "cbCert" + Me.cbCert.Size = New System.Drawing.Size(108, 21) + Me.cbCert.Sorted = True + Me.cbCert.TabIndex = 5 + ' + 'chkCert + ' + Me.chkCert.AutoSize = True + Me.chkCert.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkCert.Location = New System.Drawing.Point(6, 103) + Me.chkCert.Name = "chkCert" + Me.chkCert.Size = New System.Drawing.Size(168, 17) + Me.chkCert.TabIndex = 4 + Me.chkCert.Text = "Use Certification Language:" + Me.chkCert.UseVisualStyleBackColor = True + ' + 'pnlScraper + ' + Me.pnlScraper.BackColor = System.Drawing.Color.White + Me.pnlScraper.Controls.Add(Me.GroupBox10) + Me.pnlScraper.Controls.Add(Me.gbOptions) + Me.pnlScraper.Controls.Add(Me.GroupBox1) + Me.pnlScraper.Controls.Add(Me.GroupBox26) + Me.pnlScraper.Location = New System.Drawing.Point(902, 202) + Me.pnlScraper.Name = "pnlScraper" + Me.pnlScraper.Size = New System.Drawing.Size(617, 400) + Me.pnlScraper.TabIndex = 14 + Me.pnlScraper.Visible = False + ' + 'ToolStrip1 + ' + Me.ToolStrip1.AllowMerge = False + Me.ToolStrip1.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden + Me.ToolStrip1.ImageScalingSize = New System.Drawing.Size(32, 32) + Me.ToolStrip1.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.HorizontalStackWithOverflow + Me.ToolStrip1.Location = New System.Drawing.Point(0, 64) + Me.ToolStrip1.Name = "ToolStrip1" + Me.ToolStrip1.Size = New System.Drawing.Size(892, 25) + Me.ToolStrip1.Stretch = True + Me.ToolStrip1.TabIndex = 4 + Me.ToolStrip1.Text = "ToolStrip1" + ' + 'pnlMain + ' + Me.pnlMain.AutoScroll = True + Me.pnlMain.BackColor = System.Drawing.Color.White + Me.pnlMain.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.pnlMain.Location = New System.Drawing.Point(251, 147) + Me.pnlMain.Name = "pnlMain" + Me.pnlMain.Size = New System.Drawing.Size(636, 402) + Me.pnlMain.TabIndex = 9 + ' + 'gbHelp + ' + Me.gbHelp.BackColor = System.Drawing.Color.White + Me.gbHelp.Controls.Add(Me.PictureBox2) + Me.gbHelp.Controls.Add(Me.lblHelp) + Me.gbHelp.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.gbHelp.Location = New System.Drawing.Point(3, 3) + Me.gbHelp.Name = "gbHelp" + Me.gbHelp.Size = New System.Drawing.Size(628, 62) + Me.gbHelp.TabIndex = 0 + Me.gbHelp.TabStop = False + Me.gbHelp.Text = " Help" + ' + 'PictureBox2 + ' + Me.PictureBox2.Image = CType(resources.GetObject("PictureBox2.Image"), System.Drawing.Image) + Me.PictureBox2.Location = New System.Drawing.Point(6, -2) + Me.PictureBox2.Name = "PictureBox2" + Me.PictureBox2.Size = New System.Drawing.Size(16, 16) + Me.PictureBox2.TabIndex = 1 + Me.PictureBox2.TabStop = False + ' + 'lblHelp + ' + Me.lblHelp.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblHelp.Location = New System.Drawing.Point(3, 14) + Me.lblHelp.Name = "lblHelp" + Me.lblHelp.Size = New System.Drawing.Size(622, 43) + Me.lblHelp.TabIndex = 0 + ' + 'Panel2 + ' + Me.Panel2.BackColor = System.Drawing.Color.White + Me.Panel2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.Panel2.Controls.Add(Me.gbHelp) + Me.Panel2.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Panel2.Location = New System.Drawing.Point(5, 555) + Me.Panel2.Name = "Panel2" + Me.Panel2.Size = New System.Drawing.Size(636, 69) + Me.Panel2.TabIndex = 8 + ' + 'dlgSettings + ' + Me.AcceptButton = Me.btnOK + Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi + Me.CancelButton = Me.btnCancel + Me.ClientSize = New System.Drawing.Size(892, 628) + Me.Controls.Add(Me.pnlShows) + Me.Controls.Add(Me.pnlSources) + Me.Controls.Add(Me.pnlTVSources) + Me.Controls.Add(Me.pnlImages) + Me.Controls.Add(Me.pnlScraper) + Me.Controls.Add(Me.Panel2) + Me.Controls.Add(Me.ToolStrip1) + Me.Controls.Add(Me.Panel1) + Me.Controls.Add(Me.pnlCurrent) + Me.Controls.Add(Me.tvSettings) + Me.Controls.Add(Me.pnlTop) + Me.Controls.Add(Me.btnCancel) + Me.Controls.Add(Me.btnApply) + Me.Controls.Add(Me.btnOK) + Me.Controls.Add(Me.pnlMovies) + Me.Controls.Add(Me.pnlTVImages) + Me.Controls.Add(Me.pnlExtensions) + Me.Controls.Add(Me.pnlXBMCCom) + Me.Controls.Add(Me.pnlMain) + Me.Controls.Add(Me.pnlTVScraper) + Me.DoubleBuffered = True + Me.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "dlgSettings" + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "ss" + Me.GroupBox4.ResumeLayout(False) + Me.GroupBox4.PerformLayout() + Me.GroupBox29.ResumeLayout(False) + Me.GroupBox29.PerformLayout() + Me.GroupBox3.ResumeLayout(False) + Me.tcCleaner.ResumeLayout(False) + Me.tpStandard.ResumeLayout(False) + Me.tpStandard.PerformLayout() + Me.tpExpert.ResumeLayout(False) + Me.tpExpert.PerformLayout() + Me.GroupBox12.ResumeLayout(False) + Me.GroupBox12.PerformLayout() + Me.GroupBox2.ResumeLayout(False) + Me.GroupBox2.PerformLayout() + Me.GroupBox25.ResumeLayout(False) + Me.GroupBox25.PerformLayout() + Me.GroupBox8.ResumeLayout(False) + Me.GroupBox21.ResumeLayout(False) + Me.GroupBox21.PerformLayout() + Me.GroupBox7.ResumeLayout(False) + Me.GroupBox7.PerformLayout() + Me.GroupBox6.ResumeLayout(False) + Me.GroupBox6.PerformLayout() + Me.GroupBox5.ResumeLayout(False) + Me.GroupBox5.PerformLayout() + Me.GroupBox14.ResumeLayout(False) + Me.GroupBox14.PerformLayout() + CType(Me.tbPosterQual, System.ComponentModel.ISupportInitialize).EndInit() + Me.GroupBox13.ResumeLayout(False) + Me.GroupBox13.PerformLayout() + CType(Me.tbFanartQual, System.ComponentModel.ISupportInitialize).EndInit() + Me.GroupBox9.ResumeLayout(False) + Me.GroupBox17.ResumeLayout(False) + Me.GroupBox17.PerformLayout() + Me.pnlTop.ResumeLayout(False) + Me.pnlTop.PerformLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() + Me.pnlGeneral.ResumeLayout(False) + Me.gbInterface.ResumeLayout(False) + Me.gbInterface.PerformLayout() + Me.pnlXBMCCom.ResumeLayout(False) + Me.gbProxy.ResumeLayout(False) + Me.gbProxy.PerformLayout() + Me.gbCreds.ResumeLayout(False) + Me.gbCreds.PerformLayout() + Me.pnlMovies.ResumeLayout(False) + Me.gbGenreFilter.ResumeLayout(False) + Me.gbFilters.ResumeLayout(False) + Me.gbFilters.PerformLayout() + Me.GroupBox27.ResumeLayout(False) + Me.GroupBox16.ResumeLayout(False) + Me.GroupBox16.PerformLayout() + Me.Panel1.ResumeLayout(False) + CType(Me.pbCurrent, System.ComponentModel.ISupportInitialize).EndInit() + Me.pnlExtensions.ResumeLayout(False) + Me.GroupBox22.ResumeLayout(False) + Me.GroupBox22.PerformLayout() + Me.GroupBox18.ResumeLayout(False) + Me.GroupBox18.PerformLayout() + Me.pnlSources.ResumeLayout(False) + Me.GroupBox19.ResumeLayout(False) + Me.GroupBox19.PerformLayout() + Me.pnlImages.ResumeLayout(False) + Me.GroupBox15.ResumeLayout(False) + Me.GroupBox15.PerformLayout() + Me.GroupBox23.ResumeLayout(False) + Me.GroupBox23.PerformLayout() + Me.GroupBox24.ResumeLayout(False) + Me.GroupBox24.PerformLayout() + Me.pnlTVSources.ResumeLayout(False) + Me.TabControl2.ResumeLayout(False) + Me.TabPage3.ResumeLayout(False) + Me.gbMiscTVSourceOpts.ResumeLayout(False) + Me.gbMiscTVSourceOpts.PerformLayout() + Me.gbTVNaming.ResumeLayout(False) + Me.gbShowBanner.ResumeLayout(False) + Me.gbShowBanner.PerformLayout() + Me.gbAllSeasonPoster.ResumeLayout(False) + Me.gbAllSeasonPoster.PerformLayout() + Me.gbEpisodeFanart.ResumeLayout(False) + Me.gbEpisodeFanart.PerformLayout() + Me.gbEpisodePosters.ResumeLayout(False) + Me.gbEpisodePosters.PerformLayout() + Me.gbSeasonFanart.ResumeLayout(False) + Me.gbSeasonFanart.PerformLayout() + Me.gbSeasonPosters.ResumeLayout(False) + Me.gbSeasonPosters.PerformLayout() + Me.gbShowFanart.ResumeLayout(False) + Me.gbShowFanart.PerformLayout() + Me.gbShowPosters.ResumeLayout(False) + Me.gbShowPosters.PerformLayout() + Me.TabPage4.ResumeLayout(False) + Me.gbShowRegex.ResumeLayout(False) + Me.gbShowRegex.PerformLayout() + Me.pnlShows.ResumeLayout(False) + Me.gbTVListOptions.ResumeLayout(False) + Me.gbTVListOptions.PerformLayout() + Me.gbEpisodeListOptions.ResumeLayout(False) + Me.gbEpisodeListOptions.PerformLayout() + Me.gbSeasonListOptions.ResumeLayout(False) + Me.gbSeasonListOptions.PerformLayout() + Me.gbShowListOptions.ResumeLayout(False) + Me.gbShowListOptions.PerformLayout() + Me.gbTVMisc.ResumeLayout(False) + Me.gbTVMisc.PerformLayout() + Me.gbEpFilter.ResumeLayout(False) + Me.gbEpFilter.PerformLayout() + Me.gbShowFilter.ResumeLayout(False) + Me.gbShowFilter.PerformLayout() + Me.pnlTVImages.ResumeLayout(False) + Me.TabControl3.ResumeLayout(False) + Me.TabPage5.ResumeLayout(False) + Me.gbAllSPosterOpts.ResumeLayout(False) + Me.gbAllSPosterOpts.PerformLayout() + CType(Me.tbAllSPosterQual, System.ComponentModel.ISupportInitialize).EndInit() + Me.gbShowPosterOpts.ResumeLayout(False) + Me.gbShowPosterOpts.PerformLayout() + CType(Me.tbShowPosterQual, System.ComponentModel.ISupportInitialize).EndInit() + Me.gbShowFanartOpts.ResumeLayout(False) + Me.gbShowFanartOpts.PerformLayout() + CType(Me.tbShowFanartQual, System.ComponentModel.ISupportInitialize).EndInit() + Me.TabPage6.ResumeLayout(False) + Me.gbSeaPosterOpts.ResumeLayout(False) + Me.gbSeaPosterOpts.PerformLayout() + CType(Me.tbSeaPosterQual, System.ComponentModel.ISupportInitialize).EndInit() + Me.gbSeaFanartOpts.ResumeLayout(False) + Me.gbSeaFanartOpts.PerformLayout() + CType(Me.tbSeaFanartQual, System.ComponentModel.ISupportInitialize).EndInit() + Me.TabPage7.ResumeLayout(False) + Me.gbEpPosterOpts.ResumeLayout(False) + Me.gbEpPosterOpts.PerformLayout() + CType(Me.tbEpPosterQual, System.ComponentModel.ISupportInitialize).EndInit() + Me.gbEpFanartOpts.ResumeLayout(False) + Me.gbEpFanartOpts.PerformLayout() + CType(Me.tbEpFanartQual, System.ComponentModel.ISupportInitialize).EndInit() + Me.TabPage8.ResumeLayout(False) + Me.TabPage8.PerformLayout() + Me.pnlTVScraper.ResumeLayout(False) + Me.GroupBox32.ResumeLayout(False) + Me.GroupBox35.ResumeLayout(False) + Me.GroupBox34.ResumeLayout(False) + Me.GroupBox33.ResumeLayout(False) + Me.gbEpLocks.ResumeLayout(False) + Me.gbShowLocks.ResumeLayout(False) + Me.GroupBox31.ResumeLayout(False) + Me.GroupBox31.PerformLayout() + Me.gbTVMIDefaults.ResumeLayout(False) + Me.gbTVMIDefaults.PerformLayout() + Me.gbTVScraperOptions.ResumeLayout(False) + Me.gbTVScraperOptions.PerformLayout() + Me.gbLanguage.ResumeLayout(False) + Me.gbLanguage.PerformLayout() + Me.gbOptions.ResumeLayout(False) + Me.gbOptions.PerformLayout() + Me.GroupBox26.ResumeLayout(False) + Me.GroupBox26.PerformLayout() + Me.GroupBox28.ResumeLayout(False) + Me.GroupBox28.PerformLayout() + Me.gbRTFormat.ResumeLayout(False) + Me.gbRTFormat.PerformLayout() + Me.GroupBox10.ResumeLayout(False) + Me.GroupBox10.PerformLayout() + Me.GroupBox1.ResumeLayout(False) + Me.GroupBox1.PerformLayout() + Me.pnlScraper.ResumeLayout(False) + Me.gbHelp.ResumeLayout(False) + CType(Me.PictureBox2, System.ComponentModel.ISupportInitialize).EndInit() + Me.Panel2.ResumeLayout(False) + Me.ResumeLayout(False) + Me.PerformLayout() - End Sub + End Sub Friend WithEvents btnOK As System.Windows.Forms.Button Friend WithEvents btnApply As System.Windows.Forms.Button Friend WithEvents btnCancel As System.Windows.Forms.Button @@ -7925,7 +8061,7 @@ Partial Class dlgSettings Friend WithEvents btnGetTVProfiles As System.Windows.Forms.Button Friend WithEvents chkAskCheckboxScrape As System.Windows.Forms.CheckBox Friend WithEvents chkClickScrape As System.Windows.Forms.CheckBox - Friend WithEvents chkActorCache As System.Windows.Forms.CheckBox + Friend WithEvents chkScraperActorThumbs As System.Windows.Forms.CheckBox Friend WithEvents chkPosterOnly As System.Windows.Forms.CheckBox Friend WithEvents gbShowBanner As System.Windows.Forms.GroupBox Friend WithEvents chkShowBannerJPG As System.Windows.Forms.CheckBox @@ -7936,4 +8072,14 @@ Partial Class dlgSettings Friend WithEvents chkMovieNameDashPosterJPG As System.Windows.Forms.CheckBox Friend WithEvents btnMovieFrodo As System.Windows.Forms.Button Friend WithEvents btnTVShowFrodo As System.Windows.Forms.Button + Friend WithEvents chkVideoTSParentXBMC As System.Windows.Forms.CheckBox + Friend WithEvents chkMovieNameNFOStack As System.Windows.Forms.CheckBox + Friend WithEvents chkSpecialDateAdd As System.Windows.Forms.CheckBox + Friend WithEvents chkLockLanguageV As System.Windows.Forms.CheckBox + Friend WithEvents chkLockLanguageA As System.Windows.Forms.CheckBox + Friend WithEvents chkLockMPAA As System.Windows.Forms.CheckBox + Friend WithEvents chkUseMPAAFSK As System.Windows.Forms.CheckBox + Friend WithEvents chkMovieWatchedCol As System.Windows.Forms.CheckBox + Friend WithEvents chkLockSubtitle As System.Windows.Forms.CheckBox + Friend WithEvents chkEpisodeWatchedCol As System.Windows.Forms.CheckBox End Class \ No newline at end of file diff --git a/Ember Media Manager/dlgSettings.resx b/Ember Media Manager/dlgSettings.resx index 3cec402..0fc1e2c 100644 --- a/Ember Media Manager/dlgSettings.resx +++ b/Ember Media Manager/dlgSettings.resx @@ -120,197 +120,195 @@ - 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 - MV5njhcGgLEAAAAASUVORK5CYII= + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAArpAAAK6QH9dc7TAAABnElE + QVQ4T6XSS0sCYRQG4BEXERG46UI3yCRNnZmw/AGZFUagJO2rZSFEJi6MFtFNhAxBBSlokW7NQIlIKLvJ + FyJtBKEoqKCCfsPpO2pD1repFs9wfM87x81wAPAvzBDt3QxYdvOibzcv+KI3pjFWBzFDtJPrfQyTRgiT + BtjOia+sDmKGKER0xa2rJkB0vmd1EDNEgWxvwXfRCiiQFe9YHSQNQWLqC5FhW5AMWUPXFqv/yvi0lukA + tHnZ/xImo9YgGaZGbOHrEWPVAe+5oXk100PL+goeVk41sHyiKsEZs8/9akYL62f6FunAUlrftZhWw0+a + L6p3nuNulXTAc2Rsc6Z0MJ/USpypalW7pA7ch2K7dADNHRjsjoTgohbQbJx/m4nrAdH53bFPc5TgXbQ7 + ESU7pfekA99NxYTCZIyHMuGW1UHMENkjQnE8wkOZ8PvvwOwXHwb9PCCzX3hmdRAn50oUVCeloXgZx6m1 + U8oNg7sni3TTSi9muKt0sKsoHcAH/SGnaqhaqo6qp3dl0r8AJ8OsssMOduXSgb8D7gMxXmeO6KXG2gAA + AABJRU5ErkJggg== - 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 - MV5njhcGgLEAAAAASUVORK5CYII= + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAArpAAAK6QH9dc7TAAABnElE + QVQ4T6XSS0sCYRQG4BEXERG46UI3yCRNnZmw/AGZFUagJO2rZSFEJi6MFtFNhAxBBSlokW7NQIlIKLvJ + FyJtBKEoqKCCfsPpO2pD1repFs9wfM87x81wAPAvzBDt3QxYdvOibzcv+KI3pjFWBzFDtJPrfQyTRgiT + BtjOia+sDmKGKER0xa2rJkB0vmd1EDNEgWxvwXfRCiiQFe9YHSQNQWLqC5FhW5AMWUPXFqv/yvi0lukA + tHnZ/xImo9YgGaZGbOHrEWPVAe+5oXk100PL+goeVk41sHyiKsEZs8/9akYL62f6FunAUlrftZhWw0+a + L6p3nuNulXTAc2Rsc6Z0MJ/USpypalW7pA7ch2K7dADNHRjsjoTgohbQbJx/m4nrAdH53bFPc5TgXbQ7 + ESU7pfekA99NxYTCZIyHMuGW1UHMENkjQnE8wkOZ8PvvwOwXHwb9PCCzX3hmdRAn50oUVCeloXgZx6m1 + U8oNg7sni3TTSi9muKt0sKsoHcAH/SGnaqhaqo6qp3dl0r8AJ8OsssMOduXSgb8D7gMxXmeO6KXG2gAA + AABJRU5ErkJggg== - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK6QAA - CukB/XXO0wAAAetJREFUOE9j+P//PwMlGEXzfQdj37t2Bs24DLxnZ5B5z96oEFkebsAtV7OIKwaq/y9p - Kfy/bqW7Bd2QG3YGjZd1lf9f1lH6f8PesPf/wZmMIDVgA656WHGd1lH+f1xRGoxPqcv9v2iJMOSyrUHj - aW0loJwUGJ/SVPx/3kzbFG7ATk4uxgOK0j0HlGX+gzFQ0SE1uf9nLHVXnLM3rDmqrfh/P1AMLq8kvf+A - rAQ33ACYc3cqy/TuUJL+vxOIdyhI/d8DdMk+LcX/2xUkIWIQuf1LNBVZYHowYmAj0JANQIVgDLR1PdAg - GH+jkvTe+doqrFgDEVlwhZL08RXAsEDD7zaZGsBtxumCBYrSDQsVpP4A8X90vEBRaiN67KB4YYaidONM - oEYYngFkgzCqmPSW/0+/w/WBGRNU5RkmKkg1TJSX+g/DE0BsBenNkxSku8BsZKwgtWWSihwHPBZ61RS4 - OuUl/6Ph/bX6qkwgRV0KUr0daPJditJmKNHYoSSb2AS0pUlO8j+Q3vctwBusGYab5aW6wXJA3KIoM/2x - sxVYnoGZAYwFgBRvnKRofba02BZuFmYDIF8HKG4MwkA2iK+QIik6N1NafCGQLQLEfHAXABUxAzHYT2BB - BgZOIJ8XGQPFeJDk2UB6MFIiOdkaALyqHwCXXFYvAAAAAElFTkSuQmCC + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAArpAAAK6QH9dc7TAAAB7UlE + QVQ4T6WQQUgbQRSG18YWjbV4UNudicnMxiiahK4VAwaaFEqhUAoeeyoIXsSTd0WjHmzagHpRD1KFHnKr + 0UANWJMWiqBFaWOpFNSDePWol8Lzzeisu3vUw7fz3v+/98/uagBwKxzN0bPO1wcJc9yu2TlMmP2HySeD + ds0q/r2IvdkzQ/C7ncHfeDRvHxLsJ8xUORqEcsSA/WRHBr7NVwhdmn9exr3bkSBscirZavXDr+7rkPJT + M7UdNtAjkq02DruxcJcVUKj2VpQ4/VAK+kCCQ99b/PCzO5rdSXYM/QhzKKJm+QYtlpoe1VgBikLQl1kz + KBSQNUZgHd9ko53DF6Zfapde8VMbr1Q7jgBBDkOWcVCCt37GINXnDPr1Y7j5rn3esazIGnQzi//CxelK + l2ndrHA0gkVOR5cY+Y+Am0VOcu55RzPHaWoeBxVzVzg1moeTc2fAVCigTTMyOh0goJgSJ6OrM4ymZW2H + kfxMs7/KCsi0MO+7gA4uisOPQ3eEn2YkM+ny05zGrADBpNHUO4bpY34d8Nw463kllxXjAfJeesgE980e + P49LX/Nokjo8at/qDSMDtDFfU+kxsY+g3inAWvSsT29Y6KcPl7CuRx7IAPHAIQ8iv0mKmlaNfa0d1O7b + /HuoeWStxJsB2gW8qh8AcaOVUQAAAABJRU5ErkJggg== - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK6QAA - CukB/XXO0wAAArRJREFUOE+l01tIU3EAx/GBlAQVCkVvTZMI1B6SijCkhx566MIqJbEVFZqplTmVSZa2 - zOsslWLdzMjMJCjDaWoPywdzrfA+15zOy9zV7cw5zXbO2fj13wFHom8e+HI48P9/zv+c/zk8ALz1FJjs - maqKpI1PEhiTLJ42Pye9iKcttfG0tc5fgsf86thaN+IA92BeKGuWsV7bS3hna+G1v4bX8QY+qgE+ZyN8 - riauP+ZPpTNObPwf4oD5vuxwxvAI7MxDsMYqsKYasObH8Fpk8FqfwQ/7Zp9iwdIFB7VotNtnJU4nFeyf - ywFOVQafniwBM/mAVARmqphUCma6HKxBysFeYxncpk643B5QlAME2RcA7N3JfHq8EMx4Ppix2+R8F4y+ - AMzEPZKEQ9mJO5g3yDE3/xcOh32aIBsCgK1LyPeMikFrRaB/Z5FzNujRXECXD4wRiKCs7iZck82gXEt+ - IG/5PXCPYPp6jr80IoJnOJ2UBlqdDnbkBgaHBPg1dIKgGXBrSkDZraCccx6y/G0rgMnWeP5CfyYWeq9i - sTcFbN81MAPpkKnCUKHcjsVBIZZ0TXC6fbDZrI2rdmH042n+3M/rcCmTQfVcgk6ZCK0qCTXfI1HeHQG1 - SgDtcBEsZAWm/nfFqwD1+1N8e3caXF1XoP52BpmKMOQoIlCg2INCUo5iNzI6t0Cp/wCPpqViFfCj7ni4 - QZEKU8dFaNoTUNl2kEvUGo1MeRSkbTGo7IxDx4Acmp666lXAwFtBiPZLCjPy+Ty0zUkwtFzAlFyI1IYY - JNZHQ992FvoOCbTynHpr+8ldK4AgHndsFl/eL6jOjSuUZh2WVN6KLaoUxd4/WrLXeKQs2i3JPiQVC6PE - ZFwEKYzMCSeFBL4DchG05o+yI3RryIGdoYEt4/E2kbH+gpfnrOtX9sP/AIt1021BwrQaAAAAAElFTkSu - QmCC + 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 - YII= + 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 + gIb9N9+QzUUyILFUAAAAAElFTkSuQmCC @@ -320,8 +318,8 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 - ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADk - VgAAAk1TRnQBSQFMAgEBCwEAAQwBBgEMAQYBGAEAARgBAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFg + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADI + VgAAAk1TRnQBSQFMAgEBCwEAAZQBBgGUAQYBGAEAARgBAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFg AwABSAMAAQEBAAEgBgABbP8AowADAQQCBAMBBAMDBAQBBQMEAQYDBAEGAwQBBQMAAQEDBAEGAwQBBgME AQUDBAEFAwMBBAcAAQEDAAEB/wAxAAMBAQIDCAELAw0BEgMRARcDEwEaAxQBHAMWAR4DFwEgAxgBIQMY ASIDFgEfAxMBGgMTARoDGAEhAxcBIAMWAR8DEAEWAw0BEQMPARQDDgETAwoBDQMCAQP/ACkAAwMBBAMS @@ -331,546 +329,544 @@ ASIDIwEzAyMBMwMYASIDLAFEAzwBZgMYASIDIwEzAyMBMwMjATMDIwEzAxgBIgMYASIDGAEiAw0BERgA Aw0BEQMYASIDDQERAyMBMwMsAUQDGAEiAyMBMwMjATMDIwEzAyMBMwMjATMDIwEzAxgBIgMsAUQDLAFE Aw0BEQMNAREDDQEReAADUgGhAwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8CAAGMAf8CAAGM - Af8CAAGRAf8CAAEJAf8CAAGOAf8CAAGOAf8CAAGDAf8DAAH/A1sBywMMARAYAAMNAREDDQERAw0BEQMY - ASIDDQERAzUBVQFWAWEBVgHuAQABhAEFAf8DQwF3Aw0BEQMYASIDGAEiAxgBIgMNAREDDQERAw0BESAA - Aw0BEQMjATMCWgFeAd0CAAFAAf8DSQGIBAADGAEiAxgBIgMYASIDGAEiAw0BEQMsAUQCVgFhAe4CVgFh - Ae4DPAFmfAADHAEnAwAF/wMAAf8BpQGmAagB/wHSAdMB1AH/AwAF/wMAAf8BnwGgAZ0B/wG4AboB4QH/ - AgABjgH/AgABlAH/AgABmAH/AgABlQH/AgABmAH/AwAB/wL9AfUB/wMAAf8DNQFVKAADLAFEAVYBYQFW - Ae4BAAGVARMB/wEAAZUBEwH/AVoBXgFaAd0DDQEROAADIwEzAloBXgHdAgABgwH/AgABgwH/AgABgwH/ - AzwBZhAAAyMBMwJaAV4B3QIAAYMB/wIAAYMB/wJWAWEB7gM1AVV4AAMiATEDAAH/AwAB/wMAAf8DAAH/ - AwAB/wMAAf8DAAH/AwAB/wMAAf8CAAEMAf8CAAGgAf8CAAGdAf8CAAGdAf8CAAGdAf8CAAGiAf8CAAEG - Af8DAAH/AwAB/wM6AWEkAAMsAUQBVgFhAVcB7gEAAZ0BHQH/AQABnQEdAf8BAAGdAR0B/wEAAZ0BHQH/ - A04BmTgAA04BmQIAAYoB/wIAAYoB/wIAAYoB/wIAAYoB/wIAAYoB/wM8AWYIAAMjATMCWgFeAd0CAAGK - Af8CAAGKAf8CAAGKAf8CAAGKAf8CWgFeAd0DDQERdAADIgExAwAB/wGOAY8BkQH/ApkBmwH/ApYBmAH/ - ApUBlwH/ApkBmwH/ApgBlgH/AZUBlgGaAf8CAAGXAf8CAAGjAf8CAAGmAf8CAAGmAf8CAAGmAf8CAAGm - Af8CAAGmAf8CAAGpAf8CAAGaAf8DAAH/AzoBYCAAAywBRAFWAmEB7gEAAagBKgH/AQABqQEqAf8BAAGp - ASoB/wEAAakBKgH/AQABqQEqAf8BVgJhAe4DLAFENAADNQFVAgABlAH/AgABlAH/AgABlAH/AgABlAH/ - AgABigH/AgABigH/AzwBZgMjATMCWgFeAd0CAAGKAf8CAAGUAf8CAAGUAf8CAAGUAf8CAAGUAf8DSQGI - eAADIgExAwAB/wKtAa4B/wOsAf8BrAGrAawB/wKrAawB/wKuAawB/wGYAZkBrQH/AgABsgH/AgABsgH/ - AgABsQH/AgABsQH/AgABrwH/AgABrgH/AgABrgH/AgABsAH/AgABsQH/AgABtAH/AgABrwH/AzoBYBwA - AywBRAFWAmEB7gEAAbEBMwH/AQABsQEzAf8BAAGwATMB/wEAAbEBMwH/AQABsQEzAf8BAAGxATMB/wEA - AbEBMwH/AVoCXgHdAw0BETQAAzUBVQIAAZQB/wIAAZQB/wIAAZQB/wIAAZQB/wIAAZQB/wIAAZQB/wJW - AWEB7gIAAZQB/wIAAZQB/wIAAZQB/wIAAZQB/wIAAZQB/wNOAZl8AAMiATEDAAH/Aq8BsAH/Aq4BrwH/ - Aq4BrwH/Aq4BrwH/ArABrwH/AZ0BngGwAf8CAAG7Af8CAAG8Af8CAAG9Af8CAAHBAf8CAAHCAf8CAAG1 - Af8CAAG8Af8CAAHEAf8CAAG+Af8CAAHAAf8CAAGgAf8DOgFgGAADLAFEAVYCYQHuAQABtQE6Af8BAAG1 - AToB/wEAAbUBOgH/AQABuAFBAf8BVgJhAe4BAAG4AUEB/wEAAbUBOgH/AQABtQE6Af8BAAG1AToB/wNJ - AYg4AAM1AVUCAAGcAf8CAAGcAf8CAAGcAf8CAAGcAf8CAAGcAf8CAAGcAf8CAAGcAf8CAAGcAf8CAAGc - Af8CAAGcAf8DTgGZgAADIgExAwAB/wK5AboB/wK4AbkB/wK4AbkB/wK4AbkB/wK4AbkB/wK6AbkB/wHB - Ab8BuAH/AcABvwG3Af8CwAG3Af8BvQG8AbAB/wIAAbAB/wIAAcIB/wIAAcgB/wK2AboB/wHCAcEBuAH/ - AsgBwAH/AwAB/wM6AWAYAANJAYgBAAG9AUYB/wEAAbwBQwH/AQABvAFDAf8BAAG9AUYB/wNTAaoDDQER - A1MBqgEAAbwBQwH/AQABvAFDAf8BAAG8AUMB/wEAAbwBQwH/AywBRDgAAzUBVQJWAWEB7gIAAacB/wIA - AacB/wIAAacB/wIAAacB/wIAAacB/wIAAacB/wIAAZwB/wNJAYiEAAMiATEDAAH/AsIBwwH/AcIBwQHC - Af8CwQHCAf8CwQHCAf8CwQHCAf8CwQHCAf8CwQHCAf8CwQHCAf8CwgHDAf8CwAG4Af8CAAGPAf8CAAHR - Af8CAAHKAf8BzAHLAcIB/wLCAcMB/wLKAcsB/wMAAf8DOgFgGAADIwEzAVoCXgHdAQABwwGGAf8BAAHD - AYYB/wFXAlgBuwMNAREEAAMYASIBVgJhAe4BAAG+AUYB/wEAAb8BgQH/AQABvwGBAf8BWgJeAd0DDQER - OAADQwF3AgABpwH/AgABpwH/AgABpwH/AgABpwH/AgABpwH/AgABpwH/AlcBWAG7iAADIgExAwAB/wLM - Ac0B/wLMAc0B/wLLAcwB/wLLAcwB/wLLAcwB/wLLAcwB/wLLAcwB/wLLAcwB/wLMAc0B/wLHAcQB/wIA - AYEB/wIAAd0B/wGVAZoB0AH/AdMB0gHLAf8CywHMAf8B1AHTAdQB/wMAAf8DOgFgHAADGAEiAVcCWAG7 - A1MBqgMNAREMAAM8AWYBAAHEAYoB/wEAAcEBhQH/AQABwgGFAf8BAAHBAYUB/wNTAao0AAMjATMCWgFe - Ad0CAAGtAf8CAAGtAf8CAAGtAf8CAAGtAf8CAAGtAf8CAAGtAf8CVgFhAe4DPAFmhAADIgExAwAB/wLV - AdYB/wLVAdYB/wLUAdUB/wLUAdUB/wLUAdUB/wLUAdUB/wLUAdUB/wLUAdUB/wLVAdYB/wLMAc0B/wGB - AYIBgQH/AaMBpwHeAf8CywHVAf8D1QH/AtQB1QH/At0B3gH/AwAB/wM6AWAgAAMNAREYAANTAaoBAAHE - AYoB/wEAAcUBjQH/AQABxAGKAf8BAAHEAYoB/wNJAYgsAAMjATMCVgFhAe4CAAG0Af8CAAG0Af8CAAG0 - Af8CAAG0Af8CAAG0Af8CAAG0Af8CAAG0Af8CAAG0Af8CAAG0Af8DPAFmgAADIgExAwAB/wHgAeEB4gH/ - At0B3gH/At0B3gH/At0B3gH/At0B3gH/At0B3gH/At0B3gH/At0B3gH/At4B3wH/AtYB2AH/AYYBhwGK - Af8C7AHlAf8D3gH/At0B3gH/At0B3gH/AucB6AH/AgABAgH/AzoBYDwAAxgBIgFaAlwBzAEAAcUBjQH/ - AQABxQGNAf8BAAHFAY0B/wEAAcUBjQH/A0kBiCQAAyMBMwJWAWEB7gIAAb8B/wIAAb8B/wIAAb8B/wIA - AbQB/wIAAcYB/wIAAcUB/wIAAbQB/wIAAb8B/wIAAb8B/wIAAb8B/wIAAb8B/wM8AWZ8AAMiATEDAAH/ - AuwB7QH/A/UB/wLyAfQB/wLyAfMB/wLzAfQB/wLyAfMB/wPzAf8D8wH/A/UB/wLgAeIB/wEKAQsBgQH/ - AvMB9AH/A/MB/wPyAf8D8wH/A/gB/wMAAf8DOgFgQAADLAFEAQABzAGZAf8BAAHIAZIB/wEAAcYBkQH/ - AQAByAGUAf8BWgJcAcwDDQERHAADIwEzAloBXgHdAgABvwH/AgABvwH/AgABvwH/AgABvwH/AgABxgH/ - A0kBiAM1AVUCAAHFAf8CAAG/Af8CAAG/Af8CAAG/Af8CAAG/Af8CAAG/Af8DPAFmeAADIgExAwAB/wMA - Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8CAAECAf8CAAEDAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA - Af8DAAH/AwAB/wM6AWBEAAM1AVUBAAHMAZkB/wEAAcwBmwH/AVcCWAG7AyMBMyAAA04BmQIAAcYB/wIA - AcYB/wIAAcYB/wIAAcYB/wIAAcsB/wNOAZkIAAM1AVUCAAHOAf8CAAHGAf8CAAHGAf8CAAHGAf8CAAHG - Af8CWgFeAd0DDQERdAADHwEtAwAB/wPxAf8DAAH/AaMBpAGmAf8CyQHKAf8DAAH/AvUB9gH/AQIBAwEF - Af8BpAGlAacB/wHMAs0B/wMAAf8D9wH/AQkBCgEMAf8BnwGgAaIB/wLQAdEB/wMAAf8C5wHoAf8BBgEH - AQoB/wM4AV1IAAMsAUQDPAFmKAADLAFEAlYBYQHuAgABzQH/AgABzQH/AgABywH/A04BmRAAAzUBVQIA - AdQB/wIAAc0B/wIAAc0B/wIAAc4B/wNDAXd4AAMGAQgDXgHZAZ4BnwGhAf8DAAH/AQsBDAGBAf8BlAGV - AZcB/wMAAf8CsAGxAf8DAAH/AocBigH/AZ0BngGgAf8DAAH/Aq4BsAH/AwAB/wINAYEB/wGUAZUBlwH/ - AwAB/wGaAZsBnQH/A20B9wMcASh8AAMsAUQCVgFhAe4CAAHYAf8DTgGZGAADNQFVAgAB2AH/AgAB2AH/ - A0kBiIAAAxABFgNOAZkDWAHBA1oBvQNaAb0DWgG9A1oBvQNaAb0DWgG9A1oBvQNaAb0DWgG9A1oBvQNa - Ab0DWgG9A1oBwANUAawDIAEuhAADIwEzAzUBVSAAAyMBMwMsAUT/AP8A/wD/AP8A2AAEAQQCAQMDAgQD - AQQDAwEEAwMBBAMDAQQDAwEEAwIBAwMCAQMDAQECAwABAR8AAQEDAAEBAwAEAQECAwEEAgEDAwIBAwMC - AQMDAgQDAQQDAwEEAwMBBAMCAQMDAgEDAwIBAwMBAQIDAQECAwEBAgMAAQEDAAEB0AADBAEGAwgBCwMF - AQcDBQQHAQoDCQEMAwoBDgMLAQ8DDAEQAw0BEQMNAREDDQERAwsBDwMLAQ8DCgENAwgBCwMHAQkDBgEI - AwkBDAMIAQsDAgEDCAADAgEDAwsBDwMSARgDFQEdAxgBIQMaASQDGwEmAxwBKAMdASkDHQEpAx0BKgMd - ASoDHQEqAx0BKQMcASgDHAEnAxoBJAMYASIDFgEfAxMBGgMNARIDBAEGEAADAwEEAxIBGAMVAR0DFAQc - AScDHQEpAx4BKwMfASwDHwEtAyABLgMfAS0DHwEsAx0BKgMcASgDFQEdAxYBHgMUARsDBQEHEAADAwEE - AwkBDAMBAQIDAwQEAQYDBwEJAwgBCwMJAQwDCgENAwoBDgMLAQ8DCwEPAwoBDgMKAQ0DCQEMAwoBDQMS - ARkDEQEXAw8BFAMNAREDCQEMAwMBBAgAAwEBAgMPARQDHQEpA0ABcQNLAY4DTAGPA0wBkANNAZEDTAGS - A0wBkgNMAZMDTAGTA0wBkwNMAZIDTAGSA00BkQNMAZADTAGQA0YBfgMnATsDFQEdAwgBCwgAAwMBBAMP - ARQDGAEhA0ABbgNOAZUDTgGYA04BmQNQAZsDUAGbA1EBnANRAZwDUQGcA1EBnANQAZsDUAGbA1ABmgNO - AZgDTwGXA0cBgAMkATUDEgEYAwYBCBAAAwIBAwMNAREDIwE0A1sBxgFhAl0B4gNhAeEDYQHhA2EB4QNh - AeEDYQHhA2EB4QNhAeEDYQHhAWECXQHiA1wByQMnAToDDgETAwQBBRAAAwgBCwMRARcDRAF6A1gBuwNZ - Ab8DWgHAA1gBwQNYAcEDWAHBA1kBwgNZAcIDWQHCA1sBwwNZAcIDWQG/A0gBhAMbASYDHwEtAyIBMQMd - ASoDFwEgAwgBCwwAAwUBBwNWAbED2wH/AtwB3QH/At8B4AH/AuIB4wH/AuQB5QH/AuYB5wH/AugB6QH/ - A+kB/wLpAeoB/wLpAeoB/wLpAeoB/wLnAegB/wLmAecB/wLkAeUB/wLiAeMB/wPiAf8BYQJeAdoDDAEQ - EAADCgENA1YBsQMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA - Af8DAAH/AwAB/wMAAf8DXgHQAxIBGBwAA04BlQLOAc8B/wLSAdMB/wLVAdYB/wLXAdgB/wLZAdoB/wLa - AdsB/wLaAdsB/wLaAdsB/wLZAdoB/wLXAdgB/wPWAf8C0wHUAf8DUAGeHAADJgE4AQABtwHYAf8BAAG0 - AdcB/wEAAawB0gH/AQABrwHVAf8BAAGwAdcB/wEAAbEB2QH/AQABsgHbAf8BAAG0AdwB/wEAAbUB3wH/ - AQABtgHgAf8BAAG3AeIB/wEAAbkB5gH/AQABtAHXAf8BAAGxAcoB/wM7AWQDEAEWAwABARgAAysBQgLR - AdIB/wLRAdIB/wLUAdUB/wLXAdgB/wLaAdsB/wLdAd4B/wLfAeAB/wLgAeEB/wLgAeEB/wLhAeIB/wLh - AeIB/wLgAeEB/wLgAeEB/wLfAeAB/wLdAd4B/wLbAdwB/wLYAdkB/wLXAdgB/wM/AW0QAAMqAUABUgFX - AXUB/gIAAaEB/wIAAdQB/wIAAdUB/wIAAdUB/wIAAdYB/wIAAdYB/wIAAdYB/wIAAdYB/wIAAdYB/wIA - AdYB/wIAAdUB/wIAAbAB/wMAAf8DAAH/AQABpAHRAf8CAAGcAf8DAAH/Az0BaBwAA1QBrALTAdQB/wLX - AdgB/wLaAdsB/wLdAd4B/wLeAd8B/wLfAeAB/wLfAeAB/wLfAeAB/wLfAeAB/wLdAd4B/wLbAdwB/wLY - AdkB/wNVAbAcAAM7AWMBAAG8Ad4B/wEAAbgB3QH/AQABsQHaAf8BAAGzAd0B/wEAAbQB3gH/AQABtQHg - Af8BAAG2AeIB/wEAAbgB4wH/AQABuQHlAf8BAAG6AeYB/wEAAbsB5wH/AQABvAHqAf8BAAG7AeMB/wHJ - AdQB2wH/AY4BwwHUAf8DXgHVAwIBAxgAAzABSwLSAdMB/wLWAdgB/wLaAd0B/wHeAd8B4QH/AeEB4gHj - Af8B4gHjAeUB/wHiAeQB5QH/AeMB5AHmAf8B4wHlAeYB/wHkAeUB5gH/AeQB5QHmAf8B4wHlAeYB/wHj - AeQB5gH/AeIB5AHlAf8B4gHjAeQB/wLhAeMB/wLeAd8B/wLaAdsB/wNFAX0QAAMyAVABUgFXAXgB/gIA - Ab4B/wEAAYEB6AH/AQABgQHoAf8BAAGBAegB/wEAAYEB6AH/AQABgQHoAf8BAAGBAegB/wEAAYEB6AH/ - AQABgQHoAf8BAAGBAegB/wEAAYEB6AH/AgAB1gH/AwAB/wIAAZEB/wGYAdkB+QH/AQABgQG5Af8DAAH/ - A0UBfBwAA1IBqQLaAdsB/wLeAd8B/wLgAeEB/wHhAuIB/wLiAeMB/wHiAuMB/wHiAuMB/wHiAuMB/wHi - AuMB/wHhAuIB/wHgAuEB/wHeAt8B/wNVAa0cAAM6AWABAAHBAeYB/wEAAb4B5gH/AQABtwHkAf8BAAG5 - AeYB/wEAAboB5wH/AQABuwHoAf8BAAG8AekB/wEAAb0B6gH/AQABvgHqAf8BAAG+AeoB/wEAAb8B6wH/ - AQABwAHtAf8BAAG8AeQB/wHZAd4B5gL/AeEBtQH/A2EB7gMHAQkYAAMvAUoC1wHaAf8C2wHdAf8B3QHc - AdUB/wHeAdwB1gH/Ad0B2QHUAf8B3wHbAdYB/wHfAdsB1gH/AeAB3AHXAf8B4AHcAdgB/wHhAd0B2AH/ - AeEB3QHYAf8B4AHcAdgB/wHgAdwB1wH/Ad8B2wHWAf8B3wHcAdYB/wHgAd8B2AH/AuEB4gH/Ad8B4AHj - Af8DRAF7EAADMgFQAVMBVwF6Af4CAAHAAf8BAAGHAeoB/wEAAYcB6gH/AQABhwHqAf8BAAGHAeoB/wEA - AYcB6gH/AQABhwHqAf8BAAGHAeoB/wEAAYcB6gH/AQABhwHqAf8BAAGHAeoB/wIAAdcB/wMAAf8DAAH/ - AgABkAH/AwAB/wMAAf8DRQF8HAADUgGpAt8B4AH/AuIB4wH/AuMB5AH/AuQB5QH/AeQC5QH/AuUB5gH/ - AeUC5gH/AuUB5gH/AuUB5gH/AuQB5QH/AuMB5AH/AuIB4wH/A1UBrRwAAzoBYAEAAcUB7AH/AQABwwHr - Af8BAAG8AekB/wEAAb4B6gH/AQABvwHrAf8BAAHAAesB/wEAAcEB6wH/AQABwQHsAf8BAAHCAe0B/wEA - AcMB7QH/AQABxAHuAf8BAAHFAfAB/wEAAcMB6QH/AeAB4gHkAf8B9QLwAf8DYgHpAwcBCRgAAy8BSgLa - AdkB/wHKAb8BAAH/AcQBuAEAAf8BugGcAQAB/wGkAgAB/wGmAgAB/wGmAgAB/wGmAgAB/wGmAgAB/wGm - AgAB/wGmAgAB/wGmAgAB/wGmAgAB/wGkAgAB/wGyAYYBAAH/AcUBuQEAAf8ByAG7AQAB/wHeAd0B1AH/ - A0QBexAAAzIBUAFTAVgBfAH+AgABwgH/AQABjQHsAf8BAAGNAewB/wEAAY0B7AH/AQABjQHsAf8BAAGN - AewB/wEAAY0B7AH/AQABjQHsAf8BAAGNAewB/wEAAY0B7AH/AQABjQHsAf8BAAGBAdkB/wMAAf8CAAGL - Af8BAAGvAdsB/wIAAacB/wMAAf8DRQF8HAADUgGpAuIB4wH/AeMC5AH/AuUB5gH/AeYC5wH/AecC6AH/ - AecC6AH/AugB6QH/AugB6QH/AecC6AH/AeYC5wH/AeUC5gH/AuQB5QH/A1UBrRwAAzoBYAEAAckB7gH/ - AQABxgHuAf8BAAHBAewB/wEAAcIB7QH/AQABwwHtAf8BAAHEAe4B/wEAAcUB7wH/AQABxQHvAf8BAAHG - AfAB/wEAAccB8AH/AQAByAHxAf8BAAHJAfMB/wEAAcUB6gH/AeIB5AHlAf8B8gHsAeoB/wNiAekDBwEJ - GAADLwFKAdgB1AG4Af8BwAGxAQAB/wHCAbUBAAH/Ab4BqQEAAf8BqAIAAf8BqAIAAf8BqAIAAf8BqAIA - Af8BqAIAAf8BqAIAAf8BqAIAAf8BqAIAAf8BqAIAAf8BpwIAAf8BvQGiAQAB/wHDAbYBAAH/Ab8BsAEA - Af8B2QHVAbIB/wNEAXsQAAMyAVABUwFYAX4B/gIAAcMB/wEAAZQB7QH/AQABlAHtAf8BAAGUAe0B/wEA - AZQB7QH/AQABlAHtAf8BAAGUAe0B/wEAAZQB7QH/AQABlAHtAf8BAAGUAe0B/wEAAZQB7QH/AQABhwHa - Af8DAAH/AgABjwH/AYQByAH3Af8CAAGzAf8DAAH/A0UBfBwAA1IBqQLkAeUB/wLmAecB/wHnAugB/wHp - AuoB/wHqAusB/wLrAewB/wLrAewB/wLrAewB/wHqAusB/wHpAuoB/wHoAukB/wHmAucB/wNVAa0cAAM6 - AWABAAHMAfAB/wEAAcoB8QH/AQABxQHvAf8BAAHHAfAB/wEAAcgB8AH/AQAByAHxAf8BAAHJAfIB/wEA - AcoB8gH/AQABywHzAf8BAAHLAfMB/wEAAcwB8wH/AQABzgH1Af8BAAHLAe4B/wHqAewB7QH/AfAB6wHp - Af8DZAHnAwQBBhgAAy8BSgHaAdYBuwH/AcEBsQEAAf8BwgGzAQAB/wHDAbgBAAH/AbgBjwEAAf8BrQIA - Af8BrgIAAf8BrgIAAf8BrgIAAf8BrgIAAf8BrgIAAf8BrgIAAf8BrAIAAf8BtQGEAQAB/wHDAbgBAAH/ - AcIBswEAAf8BwAGxAQAB/wHaAdYBtQH/A0QBexAAAzIBUAFTAVgBfwH+AgABxAH/AQABmwHuAf8BAAGb - Ae4B/wEAAZsB7gH/AQABmwHuAf8BAAGbAe4B/wEAAZsB7gH/AQABmwHuAf8BAAGbAe4B/wEAAZsB7gH/ - AQABmwHuAf8BAAGNAdwB/wMAAf8DAAH/AgABjwH/AwAB/wMAAf8DRQF8HAADUgGpAuYB5wH/AegC6QH/ - AeoC6wH/AesC7AH/AewB7QHuAf8B6wLtAf8B7ALtAf8B6wLtAf8B6wLsAf8B6wLsAf8B6gLrAf8B6ALp - Af8DVQGtHAADOgFgAQAB0AHzAf8BAAHOAfMB/wEAAckB8gH/AQABywHzAf8BAAHMAfMB/wEAAc0B9AH/ - AQABzgH0Af8BAAHOAfUB/wEAAc8B9QH/AQAB0AH2Af8BAAHRAfcB/wEAAdIB+QH/AQABzQHwAf8B5wHp - AeoB/wHyAvEB/wNkAfEDCgEOGAADLwFKAdoB1wG8Af8BwQGxAQAB/wHCAbMBAAH/AcIBswEAAf8BwwG1 - AQAB/wG5AYoBAAH/AbMCAAH/AbMCAAH/AbMCAAH/AbMCAAH/AbMCAAH/AbMCAAH/AbgBggEAAf8BwgGy - AQAB/wHCAbQBAAH/AcIBswEAAf8BwAGxAQAB/wHcAdgBtgH/A0QBexAAAzIBUAFUAVkBfwH+AQABggHG - Af8BAAGiAfAB/wEAAaIB8AH/AQABogHwAf8BAAGiAfAB/wEAAaIB8AH/AQABogHwAf8BAAGiAfAB/wEA - AaIB8AH/AQABogHwAf8BAAGiAfAB/wEAAZMB3gH/AwAB/wIAAZQB/wEAAbsB5AH/AgABsAH/AwAB/wNF - AXwcAANSAakB5wLoAf8B6gLrAf8B6wLsAf8B7AHtAe4B/wHqAekB5wH/AeEB2wHSAf8B4gHdAdQB/wLr - AeoB/wHrAuwB/wHrAuwB/wHrAuwB/wLrAewB/wNVAa0cAAM6AWABAAHTAfUB/wEAAdIB9gH/AQABzgH1 - Af8BAAHPAfYB/wEAAdEB9gH/AQAB0QH3Af8BAAHSAfcB/wEAAdMB+AH/AQAB0wH4Af8BAAHUAfkB/wEA - AdQB+QH/AQAB1gH6Af8BAAHRAfMB/wHwAu0B/wHuAu0B/wPtAf8DOgFiGAADLwFKAdsB2AG9Af8BwQGx - AQAB/wHCAbMBAAH/AcIBswEAAf8BwgG0AQAB/wHDAbkBAAH/Ab8BnAEAAf8BuAIAAf8BuAIAAf8BuAIA - Af8BuAIAAf8BvQGSAQAB/wHDAbgBAAH/AcIBtAEAAf8BwgGzAQAB/wHCAbMBAAH/AcABsQEAAf8B3AHZ - AbgB/wNEAXsQAAMyAVABVAFZAX8B/gEAAYYByAH/AQABqAHxAf8BAAGoAfEB/wEAAagB8QH/AQABqAHx - Af8BAAGoAfEB/wEAAagB8QH/AQABqAHxAf8BAAGoAfEB/wEAAagB8QH/AQABqAHxAf8BAAGZAd8B/wMA - Af8CAAGLAf8BAAG1Ae8B/wIAAaoB/wMAAf8DRQF8HAADUgGpAekC6gH/AesC7AH/AesC7AH/AewB7QHu - Af8B3QHWAc0B/wHrAuoB/wHlAeMB3gH/AeIB3gHXAf8C7gHwAf8B6wLsAf8B6wLsAf8B6wLsAf8DVQGt - HAADOgFgAQAB1wH4Af8BAAHVAfkB/wEAAdIB+AH/AQAB1AH5Af8BAAHUAfkB/wEAAdUB+QH/AQAB1QH5 - Af8BAAHVAfkB/wEAAdYB+QH/AQAB1gH5Af8BAAHXAfkB/wEAAdgB+gH/AQAB1AH2Af8BrgHXAegB/wH0 - AvMB/wHsAe0B7AH/A14BzhgAAy8BSgHcAdkBwAH/AcMBtAEAAf8BxAG2AQAB/wHEAbYBAAH/AcQBtgEA - Af8BxAG4AQAB/wHBAY8BAAH/Ab4CAAH/Ab4CAAH/Ab4CAAH/Ab4CAAH/AcABhgEAAf8BxAG1AQAB/wHE - AbYBAAH/AcQBtgEAAf8BxAG2AQAB/wHCAbQBAAH/Ad4B2gG7Af8DRAF7EAADMgFQAVQBWQF/Af4BAAGL - AckB/wEAAa8B8wH/AQABrwHzAf8BAAGvAfMB/wEAAa8B8wH/AQABrwHzAf8BAAGvAfMB/wEAAa8B8wH/ - AQABrwHzAf8BAAGvAfMB/wEAAa8B8wH/AQABngHhAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNFAXwcAANS - AakB6gLrAf8B6wLsAf8B7wHxAfIB/wHbAdcB0QH/AdoB1QHOAf8B8wH2AfkB/wHZAdQBzQH/Ad8B3AHW - Af8B7gHvAfEB/wLsAe0B/wHrAuwB/wHrAuwB/wNVAa0cAAM6AWABAAHaAfkB/wEAAdkB+gH/AQAB1gH5 - Af8BAAHWAfkB/wEAAdcB+QH/AQAB1wH5Af8BAAHYAfkB/wEAAdgB+QH/AQAB2QH5Af8BAAHZAfkB/wEA - AdoB+QH/AQAB2gH5Af8BAAHbAfoB/wEAAdUB+AH/AcMB3gHpAf8B9gHzAfEB/wHrAuwB/wMlATcUAAMv - AUoB3gHbAcQB/wHIAboBAAH/AckBuwEAAf8ByQG7AQAB/wHJAb4BAAH/AccBqQEAAf8BwwIAAf8BxAIA - Af8BxAIAAf8BxAIAAf8BxAIAAf8BwwIAAf8BxwGlAQAB/wHJAb4BAAH/AckBuwEAAf8ByQG7AQAB/wHH - AbkBAAH/AeAB3QHAAf8DRAF7EAADMgFQAVQBWQF/Af4BAAGQAcoB/wEAAbYB9QH/AQABtQH1Af8BAAG1 - AfUB/wEAAbUB9QH/AQABtQH1Af8BAAG1AfUB/wEAAbUB9QH/AQABtQH1Af8BAAG1AfUB/wEAAbUB9QH/ - AQABpgHjAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNFAXwcAANSAakB6wLsAf8B6wLtAf8B6wLsAf8BwwG8 - Aa4B/wHsAu0B/wPqAf8BxAG8Aa8B/wLuAe8B/wHsAe0B7gH/Au0B7gH/Au0B7gH/AewC7QH/A1UBrRwA - AzoBYAEAAdsB+QH/AQAB2wH6Af8BAAHYAfkB/wEAAdkB+QH/AQAB2QH5Af8BAAHaAfkB/wEAAdoB+QH/ - AQAB2wH6Af8BAAHbAfoB/wEAAdsB+gH/AQAB3AH6Af8BAAHcAfoB/wEAAd0B+gH/AQAB2wH6Af8BvAHg - Ae4B/wH1Ae8B7QH/AewC7QH/A1IBpBQAAy8BSgHgAd0BxwH/AcwBvwEAAf8BzQHAAQAB/wHNAcABAAH/ - Ac0BwwEAAf8BzQGlAQAB/wHKAgAB/wHKAYEBAAH/AcoBgQEAAf8BygGBAQAB/wHKAYEBAAH/AcoCAAH/ - AcwBnQEAAf8BzQHEAQAB/wHNAcABAAH/Ac0BwAEAAf8BzAG+AQAB/wHiAd8BxAH/A0QBexAAAzABSwFU - AVkBfwH+AQABjgHCAf8BAAHFAfcB/wEAAcYB9wH/AQABxgH3Af8BAAHGAfcB/wEAAcYB9wH/AQABxgH3 - Af8BAAHGAfcB/wEAAcYB9wH/AQABxgH3Af8BAAHGAfcB/wEAAZ0B1wH/AwAB/wMAAf8DAAH/AwAB/wMA - Af8DQwF4HAADUgGpAesC7AH/AfIB9AH2Af8ByAHDAbkB/wHMAccBvgH/AfkB/AL/AcUBvgG0Af8B0QHN - AcYB/wHyAfMB9QH/AvAB8QH/Ae4C8AH/AuoB6wH/AegB6QHqAf8DVwG3HAADOgFgAYEB3gH5Af8BAAHd - AfoB/wEAAdsB+gH/AQAB2wH6Af8BAAHcAfoB/wEAAdwB+gH/AQAB3QH6Af8BAAHdAfoB/wGBAd4B+gH/ - AYEB3gH6Af8BggHfAfoB/wGDAd8B+gH/AYQB3wH6Af8BAAHdAfoB/wG/AeIB7wH/AfoB9gH1Af8C7QHu - Af8BbQJSAfcDEQEXEAADLwFKAeEB3gHLAf8B0AHEAQAB/wHRAcUBAAH/AdEBxQEAAf8B0QHIAQAB/wHS - AbMBAAH/AdIBiAEAAf8BzgGFAQAB/wHPAYYBAAH/Ac8BhgEAAf8BzgGFAQAB/wHRAYYBAAH/AdIBsAEA - Af8B0QHIAQAB/wHRAcUBAAH/AdEBxQEAAf8B0AHDAQAB/wHkAeAByAH/A0QBexAAAw4BEwNbAcsBVQFo - AX8B/gIAAZwB/wIAAaAB/wIAAaIB/wIAAaQB/wIAAaUB/wIAAacB/wIAAagB/wIAAagB/wIAAagB/wIA - AaUB/wIAAYMB/wMAAf8DAAH/AwAB/wFXAVwBfwH+A2AB3gMZASMcAANSAakB7AHtAe4B/wPnAf8BqQGg - AY8B/wHvAfAB8QH/AeYB5QHkAf8BqwGiAZEB/wLxAfMB/wPxAf8C2wHcAf8BoAGhAaIB/wGgAaEBogH/ - AqoBqwH/AzYBWBwAAzoBYAGFAeAB+gH/AYMB3wH6Af8BAAHdAfoB/wGBAd4B+gH/AYIB3gH6Af8BgwHf - AfoB/wGEAd8B+gH/AYUB4AH6Af8BhgHgAfoB/wGHAeEB+gH/AYgB4QH6Af8BiQHhAfoB/wGLAeIB+wH/ - AYMB4AH7Af8BvwHhAe0B/wHzAe0B7AH/AvAB8QH/Ae0C7gH/A0QBehAAAy8BSgHiAeABzgH/AdQByAEA - Af8B1QHJAQAB/wHVAckBAAH/AdUBygGBAf8B1QHJAQAB/wHZAaEBAAH/AdcBjAEAAf8B0wGJAQAB/wHT - AYkBAAH/AdYBiwEAAf8B2wGdAQAB/wHVAcYBAAH/AdUBygGBAf8B1QHJAQAB/wHVAckBAAH/AdQBxwEA - Af8B5QHiAcwB/wNEAXsUAAMaASQDQgFzA00BkQNMAZIDTAGSA0wBkgNMAZIDVAGuA2UB9AMrAfwDXQHK - A0wBkwNMAZIDTAGSA0wBkgNMAZIDRwGBAygBPCAAA1IBqQHzAfUB9wH/AbYBrwGjAf8BxQHAAbcB/wH7 - Af0C/wGuAacBmAH/AcoBxQG+Af8B9AH1AfgB/wLyAfMB/wKnAagB/wGHAYgBiQH/ApoBmwH/AzgBXCAA - AzoBYAGKAeEB+gH/AYkB4QH6Af8BhQHgAfoB/wGHAeAB+gH/AYgB4QH6Af8BiQHhAfoB/wGKAeIB+wH/ - AYwB4wH7Af8BjQHjAfsB/wGPAeQB+wH/AZAB5AH7Af8BkQHlAfsB/wGTAeYB+wH/AYwB5AH7Af8BxQHm - AfIB/wH6AfYB9AH/Ae8C8AH/AesC7AH/A0cBgRAAAy8BSgHjAeEB0QH/AdkBzQGJAf8B2gHOAYwB/wHa - Ac4BjAH/AdoBzgGMAf8B2gHQAZAB/wHZAckBgQH/Ad8BrwEAAf8B3gGaAQAB/wHeAZkBAAH/Ad8BqwEA - Af8B2gHFAQAB/wHZAdABkQH/AdoBzgGMAf8B2gHOAYwB/wHaAc4BjAH/AdgBzQGHAf8B5gHjAdAB/wNE - AXssAAMCAQMDVwG6A0oBigMyAVEDYQHaAyUBNzgAA1QBrgLkAeIB/wGfAZcBhgH/Ae4B7wHwAf8C7gHw - Af8BzQHKAcMB/wHsAu0B/wHtAu4B/wHvAvAB/wGkAaUBpgH/AZQBlQGWAf8DOAFcJAADOgFgAY8B4wH6 - Af8BjgHkAfsB/wGMAeMB+wH/AY4B5AH7Af8BkAHkAfsB/wGRAeUB+wH/AZMB5gH7Af8BlAHnAfsB/wGW - AecB/AH/AZcB6AH8Af8BmQHoAfwB/wGaAekB/AH/AZwB6gH8Af8BlQHpAfwB/wHFAeQB7wH/AfIB7AHr - Af8DZQHlA0gBhAMHAQoQAAMwAUwB5AHhAdMB/wHfAdUBnAH/Ad4B0wGZAf8B3gHTAZkB/wHeAdMBmQH/ - Ad4B0wGZAf8B3gHUAZsB/wHdAdUBngH/Ad0BzgGNAf8B3gHNAYwB/wHdAdQBnAH/Ad0B1AGcAf8B3gHT - AZkB/wHeAdMBmQH/Ad4B0wGZAf8B3gHTAZkB/wHgAdYBngH/AecB5QHUAf8DRgF+JAADIgEyA0IBcwNZ - Ab8DTAGQAw0BEQQAAzoBYQNZAb8DRAF5AzEBTwMHAQksAANCAXYBywHJAcMB/wGwAaoBngH/AfYB+AH6 - Af8B6wLsAf8B+QH6Af4B/wHtAe4B7wH/Au0B7gH/Au4B7wH/AasBrAGtAf8DNwFbKAADOgFhAZYB5wH7 - Af8BlgHnAfsB/wGVAecB/AH/AZcB6AH8Af8BmQHoAfwB/wGaAekB/AH/AZwB6gH8Af8BnQHrAfwB/wGf - AesB/AH/AaAB7AH8Af8BogHtAf0B/wGjAe0B/QH/AaUB7gH9Af8BogHuAf0B/wNdAdIDOQFfAwcBChgA - AyYBOALjAd0B/wHlAdwBsgH/AecB3wG0Af8B5wHfAbUB/wHnAd4BtQH/AecB3gG1Af8B5wHeAbUB/wHn - Ad4BtQH/AecB3wG3Af8B5wHfAbcB/wHnAd4BtQH/AecB3gG1Af8B5wHeAbUB/wHnAd4BtQH/AecB3gG1 - Af8B5wHeAbUB/wHlAdwBrwH/AecB5gHbAf8DOAFeJAADVQGwAXQCfwH+AWMCfwH+AxYBHwgAAwoBDgNW - AbYBAAG/AeYB/wNhAdoDIgExMAADQAFxAV4CWwHZA0UBfANHAYIDXwHjA0wBkwNIAYMDSAGFAzABTCwA - AxgBIQFnAlkB8gGdAesB/AH/AZ0B6wH8Af8BnwHrAfwB/wGhAewB/AH/AaIB7QH8Af8BpAHtAf0B/wGl - Ae4B/QH/AacB7wH9Af8BqAHwAf0B/wGqAfAB/QH/AasB8QH9Af8BrQHyAf0B/wNkAfEDEQEXIAADAQEC - A0kBiAHlAeQB3AH/AecB5AHWAf8B6QHnAdgB/wHpAecB2AH/AekB5wHYAf8B6QHnAdkB/wHpAecB2QH/ - AekB5wHZAf8B6QHnAdkB/wHpAecB2QH/AekB5wHZAf8B6QHnAdkB/wHpAecB2QH/AekB5wHYAf8B6QHm - AdgB/wHoAecB3QH/A1UBtQMFAQckAANQAZ4DfwH+A14B3QMDAQQLAAEBA0wBkAN/Af4DXAHRAxwBKDQA - A0ABbgNCAXMDRgF/AzcBWkAAAxgBIQM6AWEDOwFkAzsBYwM7AWMDOwFjAzsBYwM7AWMDOwFjAzsBYwM7 - AWMDOwFkAzoBYQMYASEoAAMFAQcDQwF4A1ABngNQAZsDUAGbA1ABmwNQAZsDUAGbA1ABmwNQAZsDUAGb - A1ABmwNQAZsDUAGbA1ABmwNQAZ0DSgGJAxMBGigAAw4BEwMtAUYDDQESEAADCAELAzABTAMcAScDAAEB - OAADHgErAxYBH/8A/wD/AP8A/wCIAAEBAwQBBgMBAQIDAAEBAwIBAwMEAQUDBAEGAwUBBwMEAQYDBAEF - AwMBBAMAAQEDAAEBAwQBBQMBAQIgAAMDAQQDCQEMAw0BEQMPARQDEQEXAxIBGQMTARoDFAEcAxYBHgMT - ARoDDQESAw0BEQMUARwDFQEdAxQBHAMTARoDEgEZAxEBFwMPARQDDQERAwkBDAMDAQRvAAEBAwIBAwMC - AQMDAQQCBAMEBAEGAwQBBgMFAQcDBQEHAwUBBwMFAQcDBAEGAwQBBgMEAQUDAgEDAwEBAgMBBAIBAwMA - AQEQAAMEAQYDFgEfAzoBYgNKAYsDSgGMA0sBjgNLAY4DTAGPA0wBjwNLAY4DSgGNA0oBjANCAXYDHwEt - AwkBDCAAAwkBDAMXASADHQEqAyIBMQMkATUDIwE0AxwBKAMeASsDJgE5Ay4BSANcAckDWAG7AykBPgMn - AToDHQEqAxwBKAMkATYDJAE1AyIBMQMdASoDFwEgAwgBCxcABAEEAgQDAQQDAwQEAQUDBAEFAwQBBQME - AQUDBAEFAwQBBQMDAQQDAwEEAwIBAwMBAQIYAAMEAQUDFAEbAxYBHwMkATUDMAFLAzEBTQMxAU8DMgFR - AzMBUgMzAVMDMwFTAzMBUwMzAVMDMwFSAzIBUQMxAU8DMQFNAzABTAMoATwDFwEgAxUBHQMFAQcQAAMv - AUoC1wHYAf8C1gHXAf8C1wHYAf8C2gHbAf8C2wHcAf8C3AHdAf8B3AHdAd4B/wLbAdwB/wLeAd8B/wLg - AeEB/wLkAeUB/wNJAYgwAAMBAQIDAQECAxEBFwNSAacDRgF+BAADLAFEAwAB/wMAAf8DFwEgBAADTQGR - A1ABmgMJAQwDAQECAwEBAhQAAwkBDAMXASADHQEqAyEBMAMjATQDJgE4AycBOgMnATsDKAE9AykBPgMp - AT4DKQE+AykBPgMoAT0DJwE7AycBOgMkATYDGgElAzMBUgMjATMDFgEeAwgBCwsAAQEEAANAAXEDWQHy - AwAB/wNAAf0DQAH9A0AB/QNAAf0DQAH9A0AB/QNAAf0DQAH9A0AB/QNAAf0DQAH9A0AB/QFSAVEBVAH+ - A0cB+QNQAZoDBAEFAwABARAAA0EBcgLRAdIB/wKyAbMB/wKuAa8B/wGwAbEBsgH/AbEBsgGzAf8CsgGz - Af8CsgGzAf8CrwGwAf8CxQHGAf8C3QHeAf8C4gHjAf8DVQGtAwABAQMEAQYDAgQDBAQBBgMAAQEgAAM9 - AWcDAAH/AwAB/wNKAYoDWAG7AwAB/wMAAf8BUwJRAaUDTAGTAwAB/wMAAf8DKQE/HAADAwEEAwoEDQER - AxABFQMSARgDEwEaAxQBHAMVAR0DFgEeAxYBHwMWAR8DFgEfAxYBHwMWAR4DFQEdAxIBGAMHAQkDTAGP - AgAB5wH/AyMBMwMFAQcDAwEEDAADFQEdA1wB+APyAf8DAAH/AZgBmgGcAf8BwwHEAcUB/wMAAf8D+QH/ - AwAB/wGRAZMBlQH/AsUBxgH/AwAB/wP1Af8DAAH/AZABkgGUAf8CzQHOAf8DAAH/AecC6AH/AwAB/wMu - AUgUAANAAW8C1wHYAf8BxAHFAcYB/wHCAcMBxAH/AsQBxQH/AcQBxQHGAf8CxQHGAf8CxAHFAf8CyQHK - Af8C5AHlAf8C4gHjAf8C5wHoAf8DXgHOAz4BawNAAXEDQAFwAzIBUAMWAR4DBwEJIAADEAEVA00B+gEA - AYEBggH/AQACgQH/AQACgQH/AQABgQGCAf8BAAGBAYIB/wEAAoEB/wEAAoEB/wEAAYEBggH/A2EB5mAA - A1ABnQEAAYMB6wH/A1wBzxgAAyIBMQMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wIAAYEB/wMAAf8DAAH/ - AwAB/wMAAf8BAAGBAYMB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wM6AWAUAANAAW8C3gHfAf8CvwHA - Af8BuQG6AbsB/wG7ArwB/wG7AbwBvQH/AbsBvAG9Af8BuwG8Ab0B/wG3AbgBuQH/AbICswH/AsoBywH/ - AuYB5wH/AtwB3QH/AtMB1AH/AtIB0wH/AtEB0gH/AW0CUgH3AzABTAMAAQEUAAMQARUDUgGnA0cBgANC - AXMBhAFAAYAB/QKFAYcB/wGDAYQBhgH/AYMBhAGGAf8BhgGHAYgB/wKGAYgB/wKDAYUB/wGDAYQBhgH/ - AoUBhwH/A18B8wM6AWADTAGPA04BlgMHAQk0AAMIAQsDCAELAwgBCwMIAQsDCAELAxgBIQNbAcMBAAGH - AeoB/wEAAYgB6gH/A0QBehgAAyIBMQMAAf8DAAH/AoEBggH/AwAB/wMAAf8CgQGCAf8DAAH/AQABgQGC - Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AQABgQGCAf8DAAH/AwAB/wM6AWAUAANAAW8C4AHh - Af8CuwG8Af8BtAG1AbYB/wG2AbcBuAH/AbcCuAH/AbYBtwG4Af8BuQK6Af8B5ALlAf8B6QLqAf8C5QHm - Af8C6AHpAf8C0AHRAf8BpQGmAacB/wK4AbkB/wLLAcwB/wLKAcsB/wNRAaIYAAM7AWMBiQGKAYwB/wGJ - AYoBiwH/AYkBigGLAf8BiQGKAYwB/wKIAYoB/wKQAZIB/wNfAdsDUgGjA1IBpwNhAeQBjgGPAZAB/wGI - AYkBigH/AYkBigGMAf8BiQGKAYsB/wGJAYoBiwH/AYkBigGMAf8DLAFEGAADEAEWAyEBMAwAAz4BawNh - AdwDYQHuA2EB7gNhAe4DYQHuA2EB7gFHAmoB+QEAAY4B7AH/AQABjgHsAf8BAAGOAewB/wNhAeYDTgGV - AwMBBBAAAyIBMQMAAf8BsQGwAbEB/wKvAbAB/wOvAf8DrwH/Aa8BrgGvAf8BrwGuAa8B/wGvAa4BrwH/ - Aq4BrwH/Aq8BsAH/AqcBqAH/AwAB/wG1AbQBtQH/A68B/wKvAbAB/wKvAbAB/wK3AbgB/wMAAf8DOgFg - FAADQAFvAeIC4wH/AcYBxwHLAf8BwgHFAckB/wHEAcgBywH/AcUByAHMAf8BxAHHAcsB/wHDAcUBxgH/ - AckCygH/AdMB1AHVAf8B6gLrAf8B6gLrAf8B0wLUAf8CsQGzAf8CywHMAf8CzwHQAf8CygHLAf8DUgGh - GAADEgEZA1sBwwKPAZEB/wKPAZEB/wGNAY4BjwH/AZcBmAGZAf8DQgF1AwEBAggAAwgBCwNMAY8ClQGX - Af8BjQGOAY8B/wKPAZEB/wN/Af4DVgGxAwoBDRgAAyUBNwMAAf8DPgFrBAADFAEbAQABlAHsAf8BAAGT - Ae0B/wEAAZQB7QH/AQABlAHtAf8BAAGUAe0B/wEAAZQB7QH/AQABlAHtAf8BAAGUAe0B/wEAAZQB7QH/ - AQABlAHtAf8BAAGUAe0B/wEAAZMB7QH/AQABkwHtAf8DNQFXEAADIgExAwAB/wKtAa4B/wKsAa0B/wKs - Aa0B/wKsAa0B/wKsAa0B/wKsAa0B/wKsAa0B/wKsAa0B/wKtAa4B/wKlAaYB/wMAAf8CsgGzAf8CrQGu - Af8CrQGuAf8CrQGuAf8CtAG1Af8DAAH/AzoBYBQAA0ABbwHmAucB/wHaAdcBxgH/AdIBxQGyAf8B1AHH - AbUB/wHTAcUBtQH/AdYBywG3Af8C4AHXAf8C4wHlAf8D5QH/AesC7AH/AewC7QH/AtUB1gH/Aa0BrgGv - Af8CtAG1Af8CvwHAAf8CzwHQAf8DUQGgHAADFgEeAZMBlAGVAf8BkwGUAZUB/wGWAZcBmAH/A0oBixgA - A1QBrgGUAZUBlgH/AZMBlAGVAf8DXAH4JAADYAHWAwAB/wNIAYYDHAEoAQABmwHwAf8BAAGaAe4B/wEA - AZoB7gH/AQABmgHuAf8BAAGaAe4B/wEAAZoB7gH/AQABmgHuAf8BAAGaAe4B/wEAAZoB7gH/AQABmgHu - Af8BAAGaAe4B/wEAAZoB7gH/AQABmgHuAf8DQAFuEAADIgExAwAB/wK2AbcB/wK1AbYB/wK1AbYB/wK1 - AbYB/wK1AbYB/wK1AbYB/wK1AbYB/wK1AbYB/wK2AbcB/wKuAa8B/wMAAf8CuwG8Af8CtgG3Af8CtgG3 - Af8CtgG3Af8DvgH/AwAB/wM6AWAUAANAAW8B5wHoAeUB/wHHAbkBAAH/Aa4CAAH/AakCAAH/AakCAAH/ - AbUBjgEAAf8B3AHWAZ4B/wHoAfAB9gH/AeoB7QHsAf8B6wLsAf8B7gLvAf8B1QLWAf8CvgG/Af8CwQHC - Af8CxgHHAf8C0QHSAf8DUQGgFAADDwEUA0kBhwNcAckCmQGbAf8BlwGYAZkB/wNcAfgDEAEWGAADJAE1 - A38B/gGXAZgBmgH/A38B/gNYAbkDRAF6AwcBCRQAAwoBDQNTAagDAAH/AwAB/wNeAdoDKwH8AQABoAHw - Af8BAAGgAfAB/wEAAaAB8AH/AQABoAHwAf8BAAGgAfAB/wEAAaAB8AH/AQABoAHwAf8BAAGgAfAB/wEA - AaAB8AH/AQABoAHwAf8BAAGgAfAB/wEAAaAB8AH/Az4BahAAAyIBMQMAAf8CvwHAAf8CvgG/Af8CvgG/ - Af8CvgG/Af8CvgG/Af8CvgG/Af8CvgG/Af8CvgG/Af8CvwHAAf8CtwG4Af8DAAH/AsQBxQH/Ar8BwAH/ - Ar8BwAH/Ar8BwAH/AscByAH/AwAB/wM6AWAUAANAAW8C6AHlAf8ByQG/AQAB/wHBAaUBAAH/AbsCAAH/ - Ab0BggEAAf8BwgGzAQAB/wHiAdQBoQH/AZcB4AHQAf8BygHmAd4B/wH2Ae4B8QH/Ae0B7wHuAf8B2wHZ - AdoB/wHKAccByQH/As8B0AH/AtYB1wH/AtIB0wH/A1EBoBQAA0cBgQGdAZ4BnwH/AZ0BngGfAf8CngGf - Af8BnAGdAZ4B/wNcAd8cAAMOARMDagH5AZwBnQGeAf8CngGfAf8BnQGeAZ8B/wGdAZ4BnwH/AzYBWBAA - AxgBIgNhAeQDAAH/AwAB/wGBAgAB/wMAAf8BAAGrAfoB/wEAAaYB8QH/AQABpgHxAf8BAAGmAfEB/wEA - AaYB8QH/AQABpgHxAf8BAAGmAfEB/wEAAaYB8QH/AQABpgHxAf8BAAGmAfEB/wEAAaYB8QH/AQABpgHx - Af8BAAGmAfEB/wM+AWoQAAMiATEDAAH/AskBygH/AskBygH/AsgByQH/AsgByQH/AsgByQH/AsgByQH/ - AsgByQH/AsgByQH/AskBygH/AsABwQH/AwAB/wPOAf8CyAHJAf8CyAHJAf8CyAHJAf8C0AHRAf8DAAH/ - AzoBYBQAA0ABbwHpAeoB5wH/AdMBygGBAf8BzgGtAQAB/wHMAgAB/wHNAYwBAAH/Ac0BvgEAAf8B6wHc - AbcB/wEAAdcBugH/AQABywGaAf8B2AHpAeQB/wH9AfEB9gH/Ac8B3wHbAf8BrwHAAbwB/wHJAccByAH/ - AtYB1wH/AtQB1QH/A1EBoBQAAyIBMQNZAccBZwJZAfICowGkAf8CogGkAf8DXQHwAwcBChgAAxoBJQGm - AZ4BnwH9AaIBowGkAf8CowGkAf8DXQHtA1kBvgMWAR8QAAM/AW0BhQIAAf8BhQIAAf8BhQIAAf8BjQIA - Af8CAAGCAf8BAAGxAfsB/wEAAawB8gH/AQABrAHyAf8BAAGsAfIB/wEAAawB8gH/AQABrAHyAf8BAAGs - AfIB/wEAAawB8gH/AQABrAHyAf8BAAGsAfIB/wEAAawB8gH/AQABrAHyAf8BAAGsAfIB/wM+AWoQAAMi - ATEDAAH/AtIB0wH/AtIB0wH/AtEB0gH/AtEB0gH/AtEB0gH/AtEB0gH/AtEB0gH/AtEB0gH/AtIB0wH/ - AskBygH/AgABgQH/AtcB2AH/AtEB0gH/AtEB0gH/AtEB0gH/A9oB/wMAAf8DOgFgFAADQAFvAeoB6wHp - Af8B3wHWAaMB/wHdAdEBkQH/Ad8BugEAAf8B3gHFAQAB/wHcAdIBlAH/AfAB4wHLAf8BrwHgAc8B/wEA - Ab0BAAH/AQABxgGOAf8BigHYAbsB/wEAAdUBrwH/AYYB1gG9Af8B6QHeAeMB/wHYAdkB2gH/AtYB1wH/ - A1EBoBwAAyIBMQKoAakB/wKoAakB/wKoAaoB/wM6AWAYAANJAYcCqAGpAf8CqAGpAf8DXAH4AxEBFxgA - Az4BagGRAgAB/wGRAgAB/wGRAgAB/wGZAgAB/wIAAY4B/wEAAbcB/AH/AQABsQH0Af8BAAGxAfQB/wEA - AbEB9AH/AQABsQH0Af8BAAGxAfQB/wEAAbEB9AH/AQABsQH0Af8BAAGxAfQB/wEAAbEB9AH/AQABsQH0 - Af8BAAGxAfQB/wEAAbEB9AH/Az4BaxAAAyIBMQMAAf8C2wHcAf8D2gH/AtkB2gH/AtkB2gH/AtkB2gH/ - AtkB2gH/AtkB2gH/AtkB2gH/AtoB2wH/AtEB0wH/AYMBhAGGAf8C3wHgAf8C2QHaAf8C2QHaAf8C2QHa - Af8C4gHjAf8DAAH/AzoBYBQAA0ABbwHqAewB6wH/AesB6QHiAf8B6wHpAeAB/wHrAe0B5wH/AuwB5QH/ - AewB6gHgAf8B8QHuAewB/wHdAeMB4QH/AQABsgEAAf8BAAG6AQAB/wEAAb0BAAH/AQABwAGBAf8BAAHL - AZwB/wHbAt0B/wHcAdsB3AH/AtgB2QH/A1EBoBgAAwQBBQNKAY0CrQGuAf8CrQGuAf8CrQGuAf8DZAHx - AycBOhAAAzMBUwMrAfwCrQGuAf8CrQGuAf8DKwH8A0ABbxgAAz4BagGdAgAB/wGdAgAB/wGdAgAB/wGk - AgAB/wIAAZMB/wEAAcAC/wEAAbgB9QH/AQABtwH1Af8BAAG3AfUB/wEAAbcB9QH/AQABtwH1Af8BAAG3 - AfUB/wEAAbcB9QH/AQABtwH1Af8BAAG3AfUB/wEAAbcB9QH/AQABtwH1Af8BAAG6AfUB/wM8AWYQAAMi - ATEDAAH/AvUB9gH/A/cB/wP2Af8D9gH/AvUB9gH/AvUB9gH/A/UB/wP1Af8D9gH/AugB6QH/AYcBiAGK - Af8C+gH7Af8C9QH2Af8C9QH2Af8D9gX/AwAB/wM6AWAUAANAAXAB6gLrAf8B6wHtAe4B/wHsAe0B8AH/ - AewB7QHvAf8B7QHuAfAB/wHtAe4B8QH/AvIB9AH/AdIBzgHRAf8BAAGRAYkB/wEAAakBAAH/AQABtAEA - Af8BAAG5AQAB/wEAAb0BAAH/AbMB2AHKAf8B5AHeAeIB/wLaAdsB/wNRAaAYAAM4AV4CsgGzAf8BsgGz - AbQB/wGzAbQBtQH/AbEBsgGzAf8BsQGyAbMB/wN/Af4DUAGeAzgBXgM6AWIDVAGsAa8BsAGxAf8BsQGy - AbMB/wGxAbIBswH/AbMBtAG1Af8BsQGyAbMB/wGyAbMBtAH/AygBPRQAAz4BagGpAQABhAH/AakBAAGE - Af8BqQEAAYQB/wGqAQABgwH/AaoBAAGCAf8BAAGrAdMB/wEAAccB/gH/AQABxQH8Af8BAAHFAfsB/wEA - AcUB+wH/AQABxQH7Af8BAAHEAfsB/wEAAcMB+AH/AQABwwH3Af8BAAHDAfcB/wEAAcMB9wH/AQABwwH3 - Af8DXAHMAw4BExAAAyIBMQMAAf8DAAH/ApQBlwH/AY8BkAGSAf8BjwGQAZIB/wGYAZkBmwH/AZABkQGT - Af8CmgGdAf8BlwGYAZoB/wGXAZgBmgH/AYsBjAGOAf8DAAH/AZABkQGTAf8BkQGSAZQB/wGLAYwBjwH/ - AZMBlAGWAf8BhAGFAYgB/wMAAf8DOgFgFAADQAFuAekC6gH/AesC7AH/AesC7AH/AuwB7QH/AewC7QH/ - AewC7QH/AvEB8gH/AcoBywHNAf8BmwGSAZQB/wGfAaYBAAH/AQABngEAAf8BAAGvAQAB/wEAAcYBmgH/ - AckB3wHXAf8B5QHhAeQB/wLcAd0B/wNSAacYAAMgAS8DYQHhA1kBvwNVAbIDfwH+ArcBuAH/ArcBuAH/ - ArYBtwH/ArQBtQH/ArQBtgH/ArYBtwH/ArcBuAH/ArcBuAH/A18B+wNSAacDXAHPA2AB1AMUARsUAAM+ - AWoBtAGJAZIB/wG1AYkBkgH/AbUBiQGSAf8BtAGJAZIB/wG4AYgBkAH/AbYBhwGPAf8BlAGWAacB/wGR - AZkBqwH/AZIBmAGqAf8BkgGYAaoB/wGSAZgBqgH/AZIBmAGqAf8DOAFcAx0BKgMfASwDHwEsAxsBJhgA - AyEBMAMAAf8BsAGxAbIB/wMAAf8CAAGBAf8BmAGZAZsB/wMAAf8CuQG7Af8DAAH/AYMBhAGHAf8BngGf - AaEB/wMAAf8BvwHAAcEB/wMAAf8CAAGBAf8BmwGdAZ4B/wMAAf8BqAGpAasB/wMAAf8DOgFgFAADFgEf - A10B1wNfAfsDXwH7A00B+gGoAqAB/QLsAe0B/wLvAfAB/wHPAdAB0wH/AcsBxgG5Af8BzgHWAbMB/wG5 - Ac8BrAH/Ad0B4gHSAf8B7QHmAewB/wG4AbUBtwH/AaUBpgGnAf8BrAGtAa4B/wM6AWEcAAMCAQMEAAMI - AQsDXwH7AbsBvAG9Af8CvAG9Af8CvAG+Af8CvAG+Af8CvAG9Af8CvAG+Af8CvAG+Af8BuwG8Ab0B/wFh - Al0B4iQAAz4BawHDAZwBpAH/Ab8BlgGeAf8BvwGXAZ8B/wG/AZcBnwH/Ab8BlwGfAf8BwQGWAZ4B/wHH - AZQBmgH/AcgBlAGZAf8ByAGUAZoB/wHIAZQBmQH/AccBkwGZAf8BzAGbAaEB/wMaASUoAAMRARcDUgH0 - AeEC4gH/AwAB/wGeAZ8BoQH/AcIBwwHEAf8DAAH/A+sB/wMAAf8CowGlAf8CxwHJAf8DAAH/A+gB/wMA - Af8CnAGfAf8CxwHIAf8DAAH/AdoC2wH/AwAB/wMqAUAYAAMKAQ0DGgEkAxoBJAMZASMDTgGVAdkB2AHa - Af8C3QHeAf8C3gHfAf8B4QHiAeMB/wHnAeYB6gH/Ae4B6gHuAf8B7gHtAe8B/wG9Ab4BvwH/AYcBiAGJ - Af8DfwH+Az8BbSgAAzsBYwLBAcIB/wLBAcIB/wNaAcUDYQHkAcEBwAHCAf8BwQHAAcIB/wNeAdgDXAHR - AsEBwgH/AsEBwgH/AycBOiAAAxYBHgNhAdwB0wGxAbgB/wHSAbABtwH/AdMBsAG3Af8B0wGwAbcB/wHT - AbABtwH/AdMBsAG3Af8B0wGwAbcB/wHTAbABtwH/AdMBsAG3Af8B0wGxAbgB/wNUAa8DAgEDLAADLQFF - A2AB3gNSAfcDWQH1A1kB9QNZAfUDWQH1A1kB9QNZAfUDWQH1A1kB9QNZAfUDWQH1A1kB9QNZAfUDUgH3 - A10B7QM+AWosAANIAYMC1AHVAf8C2QHaAf8C3AHdAf8C3gHfAf8C4AHhAf8C4gHjAf8C5wHoAf8BswG0 - AbUB/wGLAYwBjQH/Az8BbSwAAyIBMQNgAd4DVgGzBAADNAFUAsYBxwH/AsYBxwH/Ax0BKQMDAQQDXAHM - A2AB1AMSARkkAAMGAQgDHQEpAx0BKQMdASkDHQEpAx0BKQMdASkDHQEpAx0BKQMdASkDHAEnNAADBQEH - A0ABbwNQAZoDTwGXA08BlwNPAZcDTwGXA08BlwNPAZcDTwGXA08BlwNPAZcDTwGXA08BlwNPAZcDUAGa - A0gBgwMRARcsAAMsAUMDfwH+AtcB2AH/AtoB2wH/AtwB3QH/At4B3wH/At4B3wH/AuIB4wH/ArgBuQH/ - Az0BaTQAAwEBAggAAxgBIQNcAeoDXQHXAwgBC/8ACQADAgEDA0ABcANQAZ4DUAGbA1ABmwNQAZsDUAGb - A1ABngNGAX5IAAMJAQwDBAEG/wD/AM4AAUIBTQE+BwABPgMAASgDAAFgAwABSAMAAQEBAAEBBQABYAED - FgAD/wEACf8DAAHwAQABJwb/AwABgAEAAQEG/wMAAYABAAEBBv8DAAHgAQABBwHgAQABBwHgAQABBwMA - AeABAAEDAfABAAEPAfABQAEfAwABwAEAAQMB/wEDAf8B8AE8AQ8DAAHAAQABAwH+AQMB/wHwARgBBwMA - AcABAAEDAfwBAQH/AfABAAEPAwABwAEAAQMB+AEAAf8B+AEAAR8DAAHAAQABAwHwAQAB/wH8AQABPwMA - AcABAAEDAfABAAF/Af4BAAF/AwABwAEAAQMB8AEgAT8B/wEAAf8DAAHAAQABAwH4AXABPwH+AQABfwMA - AcABAAEDAf0B+AEfAfwBAAE/AwABwAEAAQMB/wH4AQ8B+AEAAR8DAAHAAQABAwH/AfwBBwHwAQABDwMA - AcABAAEDAf8B/gEPAfABGAEHAwABwAEAAQMC/wE/AfABPAEPAwABwAEAAQMD/wH4AX4BHwMAAeABAAEH - A/8B/AH/AT8DAAn/AwAJ/wMACf8DAAb/AfwBAAEfAcABAAEDBv8BwAEAAQEBgAEAAQEB4AEAAQcBgAEA - AQEBgAEAAQEBgAEAAQEB4AEAAQcBgAEAAQEBwAEAAQMBwAEAAQMB+AEAAR8BwAEAAQ8BwAEAAQMBwAEA - AQMB+AEAAR8BwAEAAQ8BwAEAAQMBwAEAAQMB+AEAAR8BwAEAAQ8BwAEAAQMBwAEAAQMB+AEAAR8BwAEA - AQ8BwAEAAQMBwAEAAQMB+AEAAR8BwAEAAQ8BwAEAAQMBwAEAAQMB+AEAAR8BwAEAAQ8BwAEAAQMBwAEA - AQMB+AEAAR8BwAEAAQ8BwAEAAQMBwAEAAQMB+AEAAR8BwAEAAQ8BwAEAAQMBwAEAAQMB+AEAAR8BwAEA - AQ8BwAEAAQMBwAEAAQMB+AEAAR8BwAEAAQcBwAEAAQMBwAEAAQMB+AEAAR8BwAEAAQcBwAEAAQMBwAEA - AQMB+AEAAR8BwAEAAQMBwAEAAQMBwAEAAQMB+AEAAR8BwAEAAQMBwAEAAQMB4AEAAQcB+AEAAT8BwAEA - AQMBwAEAAQMB/wGBAf8B+AEAAX8BwAEAAQMBwAEAAQMB/gEIAT8B+AEAAf8BwAEAAQ8BwAEAAQMB/gEY - AT8B/AEBAf8BwAEAAT8BwAEAAQMB/gEYAT8B/gEfAf8B4AEAAX8B4AEAAQcB/gE8AT8B/wE/K/8BwAEA - AX8BgAEAAQED/wHAAQABAwHAAQABfwGAAQABAQHwAQABHwGAAQABAQHgAQAB/wHwAUIBDwGAAQABAQGg - AQABAQHgAQABAwH8AQABPwGAAQABAQHAAQABAwHgAQABAwH8AQABfwL/AY8BwAEAAQMB4AEAAQMB4AEA - AQcB/wHAAQ8BwAEAAQMB4AEAAQcB4AEAAQcB5wEAAQMBwAEAAQMB4AEAAQcB4AEYAQcB4gEAAQMBwAEA - AQMB4AEAAQcB8AF+AR8B8AEAAQMBwAEAAQMB4AEAAQcBwAF+AQMB4AEAAQMBwAEAAQMB4AEAAQcBwAH+ - AQMBwAEAAQMBwAEAAQMB4AEAAQcBwAF+AQMBwAEAAQMBwAEAAQMB4AEAAQcB8AF+AQ8BwAEAAQMBwAEA - AQMB4AEAAQcB4AE8AQ8BwAEAAQMBwAEAAQMB4AEAAQcB4AEAAQcBwAEAAQMBwAEAAQMB4AEAAQcB4AEA - AQcBwAEAAQ8BwAEAAQMB4AEAAQcB9AEAAX8BwAEAAf8BwAEAAQMB8AEAAQ8B/AEAAT8BwAEAAf8B4AEA - AQcB/wEAAR8B/AFAAT8B4AEDAf8B4AEAAQcB/wEAAT8B/gHDCP8BAAF/Af8B5xb/Cw== + Af8CAAGRAf8DAAH/AgABjgH/AgABjgH/AgABgwH/AwAB/wNbAcsDDAEQGAADDQERAw0BEQMNAREDGAEi + Aw0BEQM1AVUBVgFhAVYB7gEAAYQBAAH/A0MBdwMNAREDGAEiAxgBIgMYASIDDQERAw0BEQMNAREgAAMN + AREDIwEzAloBXgHdAgABLwH/A0kBiAQAAxgBIgMYASIDGAEiAxgBIgMNAREDLAFEAlYBYQHuAlYBYQHu + AzwBZnwAAxwBJwMABf8DAAH/AaUBpgGoAf8B0gHTAdQB/wMABf8DAAH/AZ8BoAGdAf8BuAG6AeEB/wIA + AY4B/wIAAZQB/wIAAZgB/wIAAZUB/wIAAZgB/wMAAf8C/QH1Af8DAAH/AzUBVSgAAywBRAFWAWEBVgHu + AQABlQECAf8BAAGVAQIB/wFaAV4BWgHdAw0BETgAAyMBMwJaAV4B3QIAAYMB/wIAAYMB/wIAAYMB/wM8 + AWYQAAMjATMCWgFeAd0CAAGDAf8CAAGDAf8CVgFhAe4DNQFVeAADIgExAwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wIAAaAB/wIAAZ0B/wIAAZ0B/wIAAZ0B/wIAAaIB/wMAAf8DAAH/ + AwAB/wM6AWEkAAMsAUQBVgFhAVcB7gEAAZ0BDAH/AQABnQEMAf8BAAGdAQwB/wEAAZ0BDAH/A04BmTgA + A04BmQIAAYoB/wIAAYoB/wIAAYoB/wIAAYoB/wIAAYoB/wM8AWYIAAMjATMCWgFeAd0CAAGKAf8CAAGK + Af8CAAGKAf8CAAGKAf8CWgFeAd0DDQERdAADIgExAwAB/wGOAY8BkQH/ApkBmwH/ApYBmAH/ApUBlwH/ + ApkBmwH/ApgBlgH/AZUBlgGaAf8CAAGXAf8CAAGjAf8CAAGmAf8CAAGmAf8CAAGmAf8CAAGmAf8CAAGm + Af8CAAGpAf8CAAGaAf8DAAH/AzoBYCAAAywBRAFWAmEB7gEAAagBGQH/AQABqQEZAf8BAAGpARkB/wEA + AakBGQH/AQABqQEZAf8BVgJhAe4DLAFENAADNQFVAgABlAH/AgABlAH/AgABlAH/AgABlAH/AgABigH/ + AgABigH/AzwBZgMjATMCWgFeAd0CAAGKAf8CAAGUAf8CAAGUAf8CAAGUAf8CAAGUAf8DSQGIeAADIgEx + AwAB/wKtAa4B/wOsAf8BrAGrAawB/wKrAawB/wKuAawB/wGYAZkBrQH/AgABsgH/AgABsgH/AgABsQH/ + AgABsQH/AgABrwH/AgABrgH/AgABrgH/AgABsAH/AgABsQH/AgABtAH/AgABrwH/AzoBYBwAAywBRAFW + AmEB7gEAAbEBIgH/AQABsQEiAf8BAAGwASIB/wEAAbEBIgH/AQABsQEiAf8BAAGxASIB/wEAAbEBIgH/ + AVoCXgHdAw0BETQAAzUBVQIAAZQB/wIAAZQB/wIAAZQB/wIAAZQB/wIAAZQB/wIAAZQB/wJWAWEB7gIA + AZQB/wIAAZQB/wIAAZQB/wIAAZQB/wIAAZQB/wNOAZl8AAMiATEDAAH/Aq8BsAH/Aq4BrwH/Aq4BrwH/ + Aq4BrwH/ArABrwH/AZ0BngGwAf8CAAG7Af8CAAG8Af8CAAG9Af8CAAHBAf8CAAHCAf8CAAG1Af8CAAG8 + Af8CAAHEAf8CAAG+Af8CAAHAAf8CAAGgAf8DOgFgGAADLAFEAVYCYQHuAQABtQEpAf8BAAG1ASkB/wEA + AbUBKQH/AQABuAEwAf8BVgJhAe4BAAG4ATAB/wEAAbUBKQH/AQABtQEpAf8BAAG1ASkB/wNJAYg4AAM1 + AVUCAAGcAf8CAAGcAf8CAAGcAf8CAAGcAf8CAAGcAf8CAAGcAf8CAAGcAf8CAAGcAf8CAAGcAf8CAAGc + Af8DTgGZgAADIgExAwAB/wK5AboB/wK4AbkB/wK4AbkB/wK4AbkB/wK4AbkB/wK6AbkB/wHBAb8BuAH/ + AcABvwG3Af8CwAG3Af8BvQG8AbAB/wIAAbAB/wIAAcIB/wIAAcgB/wK2AboB/wHCAcEBuAH/AsgBwAH/ + AwAB/wM6AWAYAANJAYgBAAG9ATUB/wEAAbwBMgH/AQABvAEyAf8BAAG9ATUB/wNTAaoDDQERA1MBqgEA + AbwBMgH/AQABvAEyAf8BAAG8ATIB/wEAAbwBMgH/AywBRDgAAzUBVQJWAWEB7gIAAacB/wIAAacB/wIA + AacB/wIAAacB/wIAAacB/wIAAacB/wIAAZwB/wNJAYiEAAMiATEDAAH/AsIBwwH/AcIBwQHCAf8CwQHC + Af8CwQHCAf8CwQHCAf8CwQHCAf8CwQHCAf8CwQHCAf8CwgHDAf8CwAG4Af8CAAGPAf8CAAHRAf8CAAHK + Af8BzAHLAcIB/wLCAcMB/wLKAcsB/wMAAf8DOgFgGAADIwEzAVoCXgHdAQABwwGGAf8BAAHDAYYB/wFX + AlgBuwMNAREEAAMYASIBVgJhAe4BAAG+ATUB/wEAAb8BgQH/AQABvwGBAf8BWgJeAd0DDQEROAADQwF3 + AgABpwH/AgABpwH/AgABpwH/AgABpwH/AgABpwH/AgABpwH/AlcBWAG7iAADIgExAwAB/wLMAc0B/wLM + Ac0B/wLLAcwB/wLLAcwB/wLLAcwB/wLLAcwB/wLLAcwB/wLLAcwB/wLMAc0B/wLHAcQB/wIAAYEB/wIA + Ad0B/wGVAZoB0AH/AdMB0gHLAf8CywHMAf8B1AHTAdQB/wMAAf8DOgFgHAADGAEiAVcCWAG7A1MBqgMN + AREMAAM8AWYBAAHEAYoB/wEAAcEBhQH/AQABwgGFAf8BAAHBAYUB/wNTAao0AAMjATMCWgFeAd0CAAGt + Af8CAAGtAf8CAAGtAf8CAAGtAf8CAAGtAf8CAAGtAf8CVgFhAe4DPAFmhAADIgExAwAB/wLVAdYB/wLV + AdYB/wLUAdUB/wLUAdUB/wLUAdUB/wLUAdUB/wLUAdUB/wLUAdUB/wLVAdYB/wLMAc0B/wGBAYIBgQH/ + AaMBpwHeAf8CywHVAf8D1QH/AtQB1QH/At0B3gH/AwAB/wM6AWAgAAMNAREYAANTAaoBAAHEAYoB/wEA + AcUBjQH/AQABxAGKAf8BAAHEAYoB/wNJAYgsAAMjATMCVgFhAe4CAAG0Af8CAAG0Af8CAAG0Af8CAAG0 + Af8CAAG0Af8CAAG0Af8CAAG0Af8CAAG0Af8CAAG0Af8DPAFmgAADIgExAwAB/wHgAeEB4gH/At0B3gH/ + At0B3gH/At0B3gH/At0B3gH/At0B3gH/At0B3gH/At0B3gH/At4B3wH/AtYB2AH/AYYBhwGKAf8C7AHl + Af8D3gH/At0B3gH/At0B3gH/AucB6AH/AwAB/wM6AWA8AAMYASIBWgJcAcwBAAHFAY0B/wEAAcUBjQH/ + AQABxQGNAf8BAAHFAY0B/wNJAYgkAAMjATMCVgFhAe4CAAG/Af8CAAG/Af8CAAG/Af8CAAG0Af8CAAHG + Af8CAAHFAf8CAAG0Af8CAAG/Af8CAAG/Af8CAAG/Af8CAAG/Af8DPAFmfAADIgExAwAB/wLsAe0B/wP1 + Af8C8gH0Af8C8gHzAf8C8wH0Af8C8gHzAf8D8wH/A/MB/wP1Af8C4AHiAf8CAAGBAf8C8wH0Af8D8wH/ + A/IB/wPzAf8D+AH/AwAB/wM6AWBAAAMsAUQBAAHMAZkB/wEAAcgBkgH/AQABxgGRAf8BAAHIAZQB/wFa + AlwBzAMNAREcAAMjATMCWgFeAd0CAAG/Af8CAAG/Af8CAAG/Af8CAAG/Af8CAAHGAf8DSQGIAzUBVQIA + AcUB/wIAAb8B/wIAAb8B/wIAAb8B/wIAAb8B/wIAAb8B/wM8AWZ4AAMiATEDAAH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DOgFg + RAADNQFVAQABzAGZAf8BAAHMAZsB/wFXAlgBuwMjATMgAANOAZkCAAHGAf8CAAHGAf8CAAHGAf8CAAHG + Af8CAAHLAf8DTgGZCAADNQFVAgABzgH/AgABxgH/AgABxgH/AgABxgH/AgABxgH/AloBXgHdAw0BEXQA + Ax8BLQMAAf8D8QH/AwAB/wGjAaQBpgH/AskBygH/AwAB/wL1AfYB/wMAAf8BpAGlAacB/wHMAs0B/wMA + Af8D9wH/AwAB/wGfAaABogH/AtAB0QH/AwAB/wLnAegB/wMAAf8DOAFdSAADLAFEAzwBZigAAywBRAJW + AWEB7gIAAc0B/wIAAc0B/wIAAcsB/wNOAZkQAAM1AVUCAAHUAf8CAAHNAf8CAAHNAf8CAAHOAf8DQwF3 + eAADBgEIA14B2QGeAZ8BoQH/AwAB/wIAAYEB/wGUAZUBlwH/AwAB/wKwAbEB/wMAAf8ChwGKAf8BnQGe + AaAB/wMAAf8CrgGwAf8DAAH/AgABgQH/AZQBlQGXAf8DAAH/AZoBmwGdAf8DbQH3AxwBKHwAAywBRAJW + AWEB7gIAAdgB/wNOAZkYAAM1AVUCAAHYAf8CAAHYAf8DSQGIgAADEAEWA04BmQNYAcEDWgG9A1oBvQNa + Ab0DWgG9A1oBvQNaAb0DWgG9A1oBvQNaAb0DWgG9A1oBvQNaAb0DWgHAA1QBrAMgAS6EAAMjATMDNQFV + IAADIwEzAywBRP8A/wD/AP8A/wDYAAQBBAIBAwMCBAMBBAMDAQQDAwEEAwMBBAMDAQQDAgEDAwIBAwMB + AQIDAAEBHwABAQMAAQEDAAQBAQIDAQQCAQMDAgEDAwIBAwMCBAMBBAMDAQQDAwEEAwIBAwMCAQMDAgED + AwEBAgMBAQIDAQECAwABAQMAAQHQAAMEAQYDCAELAwUBBwMFBAcBCgMJAQwDCgEOAwsBDwMMARADDQER + Aw0BEQMNAREDCwEPAwsBDwMKAQ0DCAELAwcBCQMGAQgDCQEMAwgBCwMCAQMIAAMCAQMDCwEPAxIBGAMV + AR0DGAEhAxoBJAMbASYDHAEoAx0BKQMdASkDHQEqAx0BKgMdASoDHQEpAxwBKAMcAScDGgEkAxgBIgMW + AR8DEwEaAw0BEgMEAQYQAAMDAQQDEgEYAxUBHQMUBBwBJwMdASkDHgErAx8BLAMfAS0DIAEuAx8BLQMf + ASwDHQEqAxwBKAMVAR0DFgEeAxQBGwMFAQcQAAMDAQQDCQEMAwEBAgMDBAQBBgMHAQkDCAELAwkBDAMK + AQ0DCgEOAwsBDwMLAQ8DCgEOAwoBDQMJAQwDCgENAxIBGQMRARcDDwEUAw0BEQMJAQwDAwEECAADAQEC + Aw8BFAMdASkDQAFxA0sBjgNMAY8DTAGQA00BkQNMAZIDTAGSA0wBkwNMAZMDTAGTA0wBkgNMAZIDTQGR + A0wBkANMAZADRgF+AycBOwMVAR0DCAELCAADAwEEAw8BFAMYASEDQAFuA04BlQNOAZgDTgGZA1ABmwNQ + AZsDUQGcA1EBnANRAZwDUQGcA1ABmwNQAZsDUAGaA04BmANPAZcDRwGAAyQBNQMSARgDBgEIEAADAgED + Aw0BEQMjATQDWwHGAWECXQHiA2EB4QNhAeEDYQHhA2EB4QNhAeEDYQHhA2EB4QNhAeEBYQJdAeIDXAHJ + AycBOgMOARMDBAEFEAADCAELAxEBFwNEAXoDWAG7A1kBvwNaAcADWAHBA1gBwQNYAcEDWQHCA1kBwgNZ + AcIDWwHDA1kBwgNZAb8DSAGEAxsBJgMfAS0DIgExAx0BKgMXASADCAELDAADBQEHA1YBsQPbAf8C3AHd + Af8C3wHgAf8C4gHjAf8C5AHlAf8C5gHnAf8C6AHpAf8D6QH/AukB6gH/AukB6gH/AukB6gH/AucB6AH/ + AuYB5wH/AuQB5QH/AuIB4wH/A+IB/wFhAl4B2gMMARAQAAMKAQ0DVgGxAwAB/wMAAf8DAAH/AwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNeAdADEgEYHAADTgGV + As4BzwH/AtIB0wH/AtUB1gH/AtcB2AH/AtkB2gH/AtoB2wH/AtoB2wH/AtoB2wH/AtkB2gH/AtcB2AH/ + A9YB/wLTAdQB/wNQAZ4cAAMmATgBAAG3AdgB/wEAAbQB1wH/AQABrAHSAf8BAAGvAdUB/wEAAbAB1wH/ + AQABsQHZAf8BAAGyAdsB/wEAAbQB3AH/AQABtQHfAf8BAAG2AeAB/wEAAbcB4gH/AQABuQHmAf8BAAG0 + AdcB/wEAAbEBygH/AzsBZAMQARYDAAEBGAADKwFCAtEB0gH/AtEB0gH/AtQB1QH/AtcB2AH/AtoB2wH/ + At0B3gH/At8B4AH/AuAB4QH/AuAB4QH/AuEB4gH/AuEB4gH/AuAB4QH/AuAB4QH/At8B4AH/At0B3gH/ + AtsB3AH/AtgB2QH/AtcB2AH/Az8BbRAAAyoBQAFSAVcBdQH+AgABoQH/AgAB1AH/AgAB1QH/AgAB1QH/ + AgAB1gH/AgAB1gH/AgAB1gH/AgAB1gH/AgAB1gH/AgAB1gH/AgAB1QH/AgABsAH/AwAB/wMAAf8BAAGk + AdEB/wIAAZwB/wMAAf8DPQFoHAADVAGsAtMB1AH/AtcB2AH/AtoB2wH/At0B3gH/At4B3wH/At8B4AH/ + At8B4AH/At8B4AH/At8B4AH/At0B3gH/AtsB3AH/AtgB2QH/A1UBsBwAAzsBYwEAAbwB3gH/AQABuAHd + Af8BAAGxAdoB/wEAAbMB3QH/AQABtAHeAf8BAAG1AeAB/wEAAbYB4gH/AQABuAHjAf8BAAG5AeUB/wEA + AboB5gH/AQABuwHnAf8BAAG8AeoB/wEAAbsB4wH/AckB1AHbAf8BjgHDAdQB/wNeAdUDAgEDGAADMAFL + AtIB0wH/AtYB2AH/AtoB3QH/Ad4B3wHhAf8B4QHiAeMB/wHiAeMB5QH/AeIB5AHlAf8B4wHkAeYB/wHj + AeUB5gH/AeQB5QHmAf8B5AHlAeYB/wHjAeUB5gH/AeMB5AHmAf8B4gHkAeUB/wHiAeMB5AH/AuEB4wH/ + At4B3wH/AtoB2wH/A0UBfRAAAzIBUAFSAVcBeAH+AgABvgH/AQABgQHoAf8BAAGBAegB/wEAAYEB6AH/ + AQABgQHoAf8BAAGBAegB/wEAAYEB6AH/AQABgQHoAf8BAAGBAegB/wEAAYEB6AH/AQABgQHoAf8CAAHW + Af8DAAH/AgABkQH/AZgB2QH5Af8BAAGBAbkB/wMAAf8DRQF8HAADUgGpAtoB2wH/At4B3wH/AuAB4QH/ + AeEC4gH/AuIB4wH/AeIC4wH/AeIC4wH/AeIC4wH/AeIC4wH/AeEC4gH/AeAC4QH/Ad4C3wH/A1UBrRwA + AzoBYAEAAcEB5gH/AQABvgHmAf8BAAG3AeQB/wEAAbkB5gH/AQABugHnAf8BAAG7AegB/wEAAbwB6QH/ + AQABvQHqAf8BAAG+AeoB/wEAAb4B6gH/AQABvwHrAf8BAAHAAe0B/wEAAbwB5AH/AdkB3gHmAv8B4QG1 + Af8DYQHuAwcBCRgAAy8BSgLXAdoB/wLbAd0B/wHdAdwB1QH/Ad4B3AHWAf8B3QHZAdQB/wHfAdsB1gH/ + Ad8B2wHWAf8B4AHcAdcB/wHgAdwB2AH/AeEB3QHYAf8B4QHdAdgB/wHgAdwB2AH/AeAB3AHXAf8B3wHb + AdYB/wHfAdwB1gH/AeAB3wHYAf8C4QHiAf8B3wHgAeMB/wNEAXsQAAMyAVABUwFXAXoB/gIAAcAB/wEA + AYcB6gH/AQABhwHqAf8BAAGHAeoB/wEAAYcB6gH/AQABhwHqAf8BAAGHAeoB/wEAAYcB6gH/AQABhwHq + Af8BAAGHAeoB/wEAAYcB6gH/AgAB1wH/AwAB/wMAAf8CAAGQAf8DAAH/AwAB/wNFAXwcAANSAakC3wHg + Af8C4gHjAf8C4wHkAf8C5AHlAf8B5ALlAf8C5QHmAf8B5QLmAf8C5QHmAf8C5QHmAf8C5AHlAf8C4wHk + Af8C4gHjAf8DVQGtHAADOgFgAQABxQHsAf8BAAHDAesB/wEAAbwB6QH/AQABvgHqAf8BAAG/AesB/wEA + AcAB6wH/AQABwQHrAf8BAAHBAewB/wEAAcIB7QH/AQABwwHtAf8BAAHEAe4B/wEAAcUB8AH/AQABwwHp + Af8B4AHiAeQB/wH1AvAB/wNiAekDBwEJGAADLwFKAtoB2QH/AcoBvwEAAf8BxAG4AQAB/wG6AZwBAAH/ + AaQCAAH/AaYCAAH/AaYCAAH/AaYCAAH/AaYCAAH/AaYCAAH/AaYCAAH/AaYCAAH/AaYCAAH/AaQCAAH/ + AbIBhgEAAf8BxQG5AQAB/wHIAbsBAAH/Ad4B3QHUAf8DRAF7EAADMgFQAVMBWAF8Af4CAAHCAf8BAAGN + AewB/wEAAY0B7AH/AQABjQHsAf8BAAGNAewB/wEAAY0B7AH/AQABjQHsAf8BAAGNAewB/wEAAY0B7AH/ + AQABjQHsAf8BAAGNAewB/wEAAYEB2QH/AwAB/wIAAYsB/wEAAa8B2wH/AgABpwH/AwAB/wNFAXwcAANS + AakC4gHjAf8B4wLkAf8C5QHmAf8B5gLnAf8B5wLoAf8B5wLoAf8C6AHpAf8C6AHpAf8B5wLoAf8B5gLn + Af8B5QLmAf8C5AHlAf8DVQGtHAADOgFgAQAByQHuAf8BAAHGAe4B/wEAAcEB7AH/AQABwgHtAf8BAAHD + Ae0B/wEAAcQB7gH/AQABxQHvAf8BAAHFAe8B/wEAAcYB8AH/AQABxwHwAf8BAAHIAfEB/wEAAckB8wH/ + AQABxQHqAf8B4gHkAeUB/wHyAewB6gH/A2IB6QMHAQkYAAMvAUoB2AHUAbgB/wHAAbEBAAH/AcIBtQEA + Af8BvgGpAQAB/wGoAgAB/wGoAgAB/wGoAgAB/wGoAgAB/wGoAgAB/wGoAgAB/wGoAgAB/wGoAgAB/wGo + AgAB/wGnAgAB/wG9AaIBAAH/AcMBtgEAAf8BvwGwAQAB/wHZAdUBsgH/A0QBexAAAzIBUAFTAVgBfgH+ + AgABwwH/AQABlAHtAf8BAAGUAe0B/wEAAZQB7QH/AQABlAHtAf8BAAGUAe0B/wEAAZQB7QH/AQABlAHt + Af8BAAGUAe0B/wEAAZQB7QH/AQABlAHtAf8BAAGHAdoB/wMAAf8CAAGPAf8BhAHIAfcB/wIAAbMB/wMA + Af8DRQF8HAADUgGpAuQB5QH/AuYB5wH/AecC6AH/AekC6gH/AeoC6wH/AusB7AH/AusB7AH/AusB7AH/ + AeoC6wH/AekC6gH/AegC6QH/AeYC5wH/A1UBrRwAAzoBYAEAAcwB8AH/AQABygHxAf8BAAHFAe8B/wEA + AccB8AH/AQAByAHwAf8BAAHIAfEB/wEAAckB8gH/AQABygHyAf8BAAHLAfMB/wEAAcsB8wH/AQABzAHz + Af8BAAHOAfUB/wEAAcsB7gH/AeoB7AHtAf8B8AHrAekB/wNkAecDBAEGGAADLwFKAdoB1gG7Af8BwQGx + AQAB/wHCAbMBAAH/AcMBuAEAAf8BuAGPAQAB/wGtAgAB/wGuAgAB/wGuAgAB/wGuAgAB/wGuAgAB/wGu + AgAB/wGuAgAB/wGsAgAB/wG1AYQBAAH/AcMBuAEAAf8BwgGzAQAB/wHAAbEBAAH/AdoB1gG1Af8DRAF7 + EAADMgFQAVMBWAF/Af4CAAHEAf8BAAGbAe4B/wEAAZsB7gH/AQABmwHuAf8BAAGbAe4B/wEAAZsB7gH/ + AQABmwHuAf8BAAGbAe4B/wEAAZsB7gH/AQABmwHuAf8BAAGbAe4B/wEAAY0B3AH/AwAB/wMAAf8CAAGP + Af8DAAH/AwAB/wNFAXwcAANSAakC5gHnAf8B6ALpAf8B6gLrAf8B6wLsAf8B7AHtAe4B/wHrAu0B/wHs + Au0B/wHrAu0B/wHrAuwB/wHrAuwB/wHqAusB/wHoAukB/wNVAa0cAAM6AWABAAHQAfMB/wEAAc4B8wH/ + AQAByQHyAf8BAAHLAfMB/wEAAcwB8wH/AQABzQH0Af8BAAHOAfQB/wEAAc4B9QH/AQABzwH1Af8BAAHQ + AfYB/wEAAdEB9wH/AQAB0gH5Af8BAAHNAfAB/wHnAekB6gH/AfIC8QH/A2QB8QMKAQ4YAAMvAUoB2gHX + AbwB/wHBAbEBAAH/AcIBswEAAf8BwgGzAQAB/wHDAbUBAAH/AbkBigEAAf8BswIAAf8BswIAAf8BswIA + Af8BswIAAf8BswIAAf8BswIAAf8BuAGCAQAB/wHCAbIBAAH/AcIBtAEAAf8BwgGzAQAB/wHAAbEBAAH/ + AdwB2AG2Af8DRAF7EAADMgFQAVQBWQF/Af4BAAGCAcYB/wEAAaIB8AH/AQABogHwAf8BAAGiAfAB/wEA + AaIB8AH/AQABogHwAf8BAAGiAfAB/wEAAaIB8AH/AQABogHwAf8BAAGiAfAB/wEAAaIB8AH/AQABkwHe + Af8DAAH/AgABlAH/AQABuwHkAf8CAAGwAf8DAAH/A0UBfBwAA1IBqQHnAugB/wHqAusB/wHrAuwB/wHs + Ae0B7gH/AeoB6QHnAf8B4QHbAdIB/wHiAd0B1AH/AusB6gH/AesC7AH/AesC7AH/AesC7AH/AusB7AH/ + A1UBrRwAAzoBYAEAAdMB9QH/AQAB0gH2Af8BAAHOAfUB/wEAAc8B9gH/AQAB0QH2Af8BAAHRAfcB/wEA + AdIB9wH/AQAB0wH4Af8BAAHTAfgB/wEAAdQB+QH/AQAB1AH5Af8BAAHWAfoB/wEAAdEB8wH/AfAC7QH/ + Ae4C7QH/A+0B/wM6AWIYAAMvAUoB2wHYAb0B/wHBAbEBAAH/AcIBswEAAf8BwgGzAQAB/wHCAbQBAAH/ + AcMBuQEAAf8BvwGcAQAB/wG4AgAB/wG4AgAB/wG4AgAB/wG4AgAB/wG9AZIBAAH/AcMBuAEAAf8BwgG0 + AQAB/wHCAbMBAAH/AcIBswEAAf8BwAGxAQAB/wHcAdkBuAH/A0QBexAAAzIBUAFUAVkBfwH+AQABhgHI + Af8BAAGoAfEB/wEAAagB8QH/AQABqAHxAf8BAAGoAfEB/wEAAagB8QH/AQABqAHxAf8BAAGoAfEB/wEA + AagB8QH/AQABqAHxAf8BAAGoAfEB/wEAAZkB3wH/AwAB/wIAAYsB/wEAAbUB7wH/AgABqgH/AwAB/wNF + AXwcAANSAakB6QLqAf8B6wLsAf8B6wLsAf8B7AHtAe4B/wHdAdYBzQH/AesC6gH/AeUB4wHeAf8B4gHe + AdcB/wLuAfAB/wHrAuwB/wHrAuwB/wHrAuwB/wNVAa0cAAM6AWABAAHXAfgB/wEAAdUB+QH/AQAB0gH4 + Af8BAAHUAfkB/wEAAdQB+QH/AQAB1QH5Af8BAAHVAfkB/wEAAdUB+QH/AQAB1gH5Af8BAAHWAfkB/wEA + AdcB+QH/AQAB2AH6Af8BAAHUAfYB/wGuAdcB6AH/AfQC8wH/AewB7QHsAf8DXgHOGAADLwFKAdwB2QHA + Af8BwwG0AQAB/wHEAbYBAAH/AcQBtgEAAf8BxAG2AQAB/wHEAbgBAAH/AcEBjwEAAf8BvgIAAf8BvgIA + Af8BvgIAAf8BvgIAAf8BwAGGAQAB/wHEAbUBAAH/AcQBtgEAAf8BxAG2AQAB/wHEAbYBAAH/AcIBtAEA + Af8B3gHaAbsB/wNEAXsQAAMyAVABVAFZAX8B/gEAAYsByQH/AQABrwHzAf8BAAGvAfMB/wEAAa8B8wH/ + AQABrwHzAf8BAAGvAfMB/wEAAa8B8wH/AQABrwHzAf8BAAGvAfMB/wEAAa8B8wH/AQABrwHzAf8BAAGe + AeEB/wMAAf8DAAH/AwAB/wMAAf8DAAH/A0UBfBwAA1IBqQHqAusB/wHrAuwB/wHvAfEB8gH/AdsB1wHR + Af8B2gHVAc4B/wHzAfYB+QH/AdkB1AHNAf8B3wHcAdYB/wHuAe8B8QH/AuwB7QH/AesC7AH/AesC7AH/ + A1UBrRwAAzoBYAEAAdoB+QH/AQAB2QH6Af8BAAHWAfkB/wEAAdYB+QH/AQAB1wH5Af8BAAHXAfkB/wEA + AdgB+QH/AQAB2AH5Af8BAAHZAfkB/wEAAdkB+QH/AQAB2gH5Af8BAAHaAfkB/wEAAdsB+gH/AQAB1QH4 + Af8BwwHeAekB/wH2AfMB8QH/AesC7AH/AyUBNxQAAy8BSgHeAdsBxAH/AcgBugEAAf8ByQG7AQAB/wHJ + AbsBAAH/AckBvgEAAf8BxwGpAQAB/wHDAgAB/wHEAgAB/wHEAgAB/wHEAgAB/wHEAgAB/wHDAgAB/wHH + AaUBAAH/AckBvgEAAf8ByQG7AQAB/wHJAbsBAAH/AccBuQEAAf8B4AHdAcAB/wNEAXsQAAMyAVABVAFZ + AX8B/gEAAZABygH/AQABtgH1Af8BAAG1AfUB/wEAAbUB9QH/AQABtQH1Af8BAAG1AfUB/wEAAbUB9QH/ + AQABtQH1Af8BAAG1AfUB/wEAAbUB9QH/AQABtQH1Af8BAAGmAeMB/wMAAf8DAAH/AwAB/wMAAf8DAAH/ + A0UBfBwAA1IBqQHrAuwB/wHrAu0B/wHrAuwB/wHDAbwBrgH/AewC7QH/A+oB/wHEAbwBrwH/Au4B7wH/ + AewB7QHuAf8C7QHuAf8C7QHuAf8B7ALtAf8DVQGtHAADOgFgAQAB2wH5Af8BAAHbAfoB/wEAAdgB+QH/ + AQAB2QH5Af8BAAHZAfkB/wEAAdoB+QH/AQAB2gH5Af8BAAHbAfoB/wEAAdsB+gH/AQAB2wH6Af8BAAHc + AfoB/wEAAdwB+gH/AQAB3QH6Af8BAAHbAfoB/wG8AeAB7gH/AfUB7wHtAf8B7ALtAf8DUgGkFAADLwFK + AeAB3QHHAf8BzAG/AQAB/wHNAcABAAH/Ac0BwAEAAf8BzQHDAQAB/wHNAaUBAAH/AcoCAAH/AcoBgQEA + Af8BygGBAQAB/wHKAYEBAAH/AcoBgQEAAf8BygIAAf8BzAGdAQAB/wHNAcQBAAH/Ac0BwAEAAf8BzQHA + AQAB/wHMAb4BAAH/AeIB3wHEAf8DRAF7EAADMAFLAVQBWQF/Af4BAAGOAcIB/wEAAcUB9wH/AQABxgH3 + Af8BAAHGAfcB/wEAAcYB9wH/AQABxgH3Af8BAAHGAfcB/wEAAcYB9wH/AQABxgH3Af8BAAHGAfcB/wEA + AcYB9wH/AQABnQHXAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wNDAXgcAANSAakB6wLsAf8B8gH0AfYB/wHI + AcMBuQH/AcwBxwG+Af8B+QH8Av8BxQG+AbQB/wHRAc0BxgH/AfIB8wH1Af8C8AHxAf8B7gLwAf8C6gHr + Af8B6AHpAeoB/wNXAbccAAM6AWABgQHeAfkB/wEAAd0B+gH/AQAB2wH6Af8BAAHbAfoB/wEAAdwB+gH/ + AQAB3AH6Af8BAAHdAfoB/wEAAd0B+gH/AYEB3gH6Af8BgQHeAfoB/wGCAd8B+gH/AYMB3wH6Af8BhAHf + AfoB/wEAAd0B+gH/Ab8B4gHvAf8B+gH2AfUB/wLtAe4B/wFtAlIB9wMRARcQAAMvAUoB4QHeAcsB/wHQ + AcQBAAH/AdEBxQEAAf8B0QHFAQAB/wHRAcgBAAH/AdIBswEAAf8B0gGIAQAB/wHOAYUBAAH/Ac8BhgEA + Af8BzwGGAQAB/wHOAYUBAAH/AdEBhgEAAf8B0gGwAQAB/wHRAcgBAAH/AdEBxQEAAf8B0QHFAQAB/wHQ + AcMBAAH/AeQB4AHIAf8DRAF7EAADDgETA1sBywFVAWgBfwH+AgABnAH/AgABoAH/AgABogH/AgABpAH/ + AgABpQH/AgABpwH/AgABqAH/AgABqAH/AgABqAH/AgABpQH/AgABgwH/AwAB/wMAAf8DAAH/AVcBXAF/ + Af4DYAHeAxkBIxwAA1IBqQHsAe0B7gH/A+cB/wGpAaABjwH/Ae8B8AHxAf8B5gHlAeQB/wGrAaIBkQH/ + AvEB8wH/A/EB/wLbAdwB/wGgAaEBogH/AaABoQGiAf8CqgGrAf8DNgFYHAADOgFgAYUB4AH6Af8BgwHf + AfoB/wEAAd0B+gH/AYEB3gH6Af8BggHeAfoB/wGDAd8B+gH/AYQB3wH6Af8BhQHgAfoB/wGGAeAB+gH/ + AYcB4QH6Af8BiAHhAfoB/wGJAeEB+gH/AYsB4gH7Af8BgwHgAfsB/wG/AeEB7QH/AfMB7QHsAf8C8AHx + Af8B7QLuAf8DRAF6EAADLwFKAeIB4AHOAf8B1AHIAQAB/wHVAckBAAH/AdUByQEAAf8B1QHKAYEB/wHV + AckBAAH/AdkBoQEAAf8B1wGMAQAB/wHTAYkBAAH/AdMBiQEAAf8B1gGLAQAB/wHbAZ0BAAH/AdUBxgEA + Af8B1QHKAYEB/wHVAckBAAH/AdUByQEAAf8B1AHHAQAB/wHlAeIBzAH/A0QBexQAAxoBJANCAXMDTQGR + A0wBkgNMAZIDTAGSA0wBkgNUAa4DZQH0AysB/ANdAcoDTAGTA0wBkgNMAZIDTAGSA0wBkgNHAYEDKAE8 + IAADUgGpAfMB9QH3Af8BtgGvAaMB/wHFAcABtwH/AfsB/QL/Aa4BpwGYAf8BygHFAb4B/wH0AfUB+AH/ + AvIB8wH/AqcBqAH/AYcBiAGJAf8CmgGbAf8DOAFcIAADOgFgAYoB4QH6Af8BiQHhAfoB/wGFAeAB+gH/ + AYcB4AH6Af8BiAHhAfoB/wGJAeEB+gH/AYoB4gH7Af8BjAHjAfsB/wGNAeMB+wH/AY8B5AH7Af8BkAHk + AfsB/wGRAeUB+wH/AZMB5gH7Af8BjAHkAfsB/wHFAeYB8gH/AfoB9gH0Af8B7wLwAf8B6wLsAf8DRwGB + EAADLwFKAeMB4QHRAf8B2QHNAYkB/wHaAc4BjAH/AdoBzgGMAf8B2gHOAYwB/wHaAdABkAH/AdkByQGB + Af8B3wGvAQAB/wHeAZoBAAH/Ad4BmQEAAf8B3wGrAQAB/wHaAcUBAAH/AdkB0AGRAf8B2gHOAYwB/wHa + Ac4BjAH/AdoBzgGMAf8B2AHNAYcB/wHmAeMB0AH/A0QBeywAAwIBAwNXAboDSgGKAzIBUQNhAdoDJQE3 + OAADVAGuAuQB4gH/AZ8BlwGGAf8B7gHvAfAB/wLuAfAB/wHNAcoBwwH/AewC7QH/Ae0C7gH/Ae8C8AH/ + AaQBpQGmAf8BlAGVAZYB/wM4AVwkAAM6AWABjwHjAfoB/wGOAeQB+wH/AYwB4wH7Af8BjgHkAfsB/wGQ + AeQB+wH/AZEB5QH7Af8BkwHmAfsB/wGUAecB+wH/AZYB5wH8Af8BlwHoAfwB/wGZAegB/AH/AZoB6QH8 + Af8BnAHqAfwB/wGVAekB/AH/AcUB5AHvAf8B8gHsAesB/wNlAeUDSAGEAwcBChAAAzABTAHkAeEB0wH/ + Ad8B1QGcAf8B3gHTAZkB/wHeAdMBmQH/Ad4B0wGZAf8B3gHTAZkB/wHeAdQBmwH/Ad0B1QGeAf8B3QHO + AY0B/wHeAc0BjAH/Ad0B1AGcAf8B3QHUAZwB/wHeAdMBmQH/Ad4B0wGZAf8B3gHTAZkB/wHeAdMBmQH/ + AeAB1gGeAf8B5wHlAdQB/wNGAX4kAAMiATIDQgFzA1kBvwNMAZADDQERBAADOgFhA1kBvwNEAXkDMQFP + AwcBCSwAA0IBdgHLAckBwwH/AbABqgGeAf8B9gH4AfoB/wHrAuwB/wH5AfoB/gH/Ae0B7gHvAf8C7QHu + Af8C7gHvAf8BqwGsAa0B/wM3AVsoAAM6AWEBlgHnAfsB/wGWAecB+wH/AZUB5wH8Af8BlwHoAfwB/wGZ + AegB/AH/AZoB6QH8Af8BnAHqAfwB/wGdAesB/AH/AZ8B6wH8Af8BoAHsAfwB/wGiAe0B/QH/AaMB7QH9 + Af8BpQHuAf0B/wGiAe4B/QH/A10B0gM5AV8DBwEKGAADJgE4AuMB3QH/AeUB3AGyAf8B5wHfAbQB/wHn + Ad8BtQH/AecB3gG1Af8B5wHeAbUB/wHnAd4BtQH/AecB3gG1Af8B5wHfAbcB/wHnAd8BtwH/AecB3gG1 + Af8B5wHeAbUB/wHnAd4BtQH/AecB3gG1Af8B5wHeAbUB/wHnAd4BtQH/AeUB3AGvAf8B5wHmAdsB/wM4 + AV4kAANVAbABdAJ/Af4BYwJ/Af4DFgEfCAADCgEOA1YBtgEAAb8B5gH/A2EB2gMiATEwAANAAXEBXgJb + AdkDRQF8A0cBggNfAeMDTAGTA0gBgwNIAYUDMAFMLAADGAEhAWcCWQHyAZ0B6wH8Af8BnQHrAfwB/wGf + AesB/AH/AaEB7AH8Af8BogHtAfwB/wGkAe0B/QH/AaUB7gH9Af8BpwHvAf0B/wGoAfAB/QH/AaoB8AH9 + Af8BqwHxAf0B/wGtAfIB/QH/A2QB8QMRARcgAAMBAQIDSQGIAeUB5AHcAf8B5wHkAdYB/wHpAecB2AH/ + AekB5wHYAf8B6QHnAdgB/wHpAecB2QH/AekB5wHZAf8B6QHnAdkB/wHpAecB2QH/AekB5wHZAf8B6QHn + AdkB/wHpAecB2QH/AekB5wHZAf8B6QHnAdgB/wHpAeYB2AH/AegB5wHdAf8DVQG1AwUBByQAA1ABngN/ + Af4DXgHdAwMBBAsAAQEDTAGQA38B/gNcAdEDHAEoNAADQAFuA0IBcwNGAX8DNwFaQAADGAEhAzoBYQM7 + AWQDOwFjAzsBYwM7AWMDOwFjAzsBYwM7AWMDOwFjAzsBYwM7AWQDOgFhAxgBISgAAwUBBwNDAXgDUAGe + A1ABmwNQAZsDUAGbA1ABmwNQAZsDUAGbA1ABmwNQAZsDUAGbA1ABmwNQAZsDUAGbA1ABnQNKAYkDEwEa + KAADDgETAy0BRgMNARIQAAMIAQsDMAFMAxwBJwMAAQE4AAMeASsDFgEf/wD/AP8A/wD/AIgAAQEDBAEG + AwEBAgMAAQEDAgEDAwQBBQMEAQYDBQEHAwQBBgMEAQUDAwEEAwABAQMAAQEDBAEFAwEBAiAAAwMBBAMJ + AQwDDQERAw8BFAMRARcDEgEZAxMBGgMUARwDFgEeAxMBGgMNARIDDQERAxQBHAMVAR0DFAEcAxMBGgMS + ARkDEQEXAw8BFAMNAREDCQEMAwMBBG8AAQEDAgEDAwIBAwMBBAIEAwQEAQYDBAEGAwUBBwMFAQcDBQEH + AwUBBwMEAQYDBAEGAwQBBQMCAQMDAQECAwEEAgEDAwABARAAAwQBBgMWAR8DOgFiA0oBiwNKAYwDSwGO + A0sBjgNMAY8DTAGPA0sBjgNKAY0DSgGMA0IBdgMfAS0DCQEMIAADCQEMAxcBIAMdASoDIgExAyQBNQMj + ATQDHAEoAx4BKwMmATkDLgFIA1wByQNYAbsDKQE+AycBOgMdASoDHAEoAyQBNgMkATUDIgExAx0BKgMX + ASADCAELFwAEAQQCBAMBBAMDBAQBBQMEAQUDBAEFAwQBBQMEAQUDBAEFAwMBBAMDAQQDAgEDAwEBAhgA + AwQBBQMUARsDFgEfAyQBNQMwAUsDMQFNAzEBTwMyAVEDMwFSAzMBUwMzAVMDMwFTAzMBUwMzAVIDMgFR + AzEBTwMxAU0DMAFMAygBPAMXASADFQEdAwUBBxAAAy8BSgLXAdgB/wLWAdcB/wLXAdgB/wLaAdsB/wLb + AdwB/wLcAd0B/wHcAd0B3gH/AtsB3AH/At4B3wH/AuAB4QH/AuQB5QH/A0kBiDAAAwEBAgMBAQIDEQEX + A1IBpwNGAX4EAAMsAUQDAAH/AwAB/wMXASAEAANNAZEDUAGaAwkBDAMBAQIDAQECFAADCQEMAxcBIAMd + ASoDIQEwAyMBNAMmATgDJwE6AycBOwMoAT0DKQE+AykBPgMpAT4DKQE+AygBPQMnATsDJwE6AyQBNgMa + ASUDMwFSAyMBMwMWAR4DCAELCwABAQQAA0ABcQNZAfIDAAH/A0AB/QNAAf0DQAH9A0AB/QNAAf0DQAH9 + A0AB/QNAAf0DQAH9A0AB/QNAAf0DQAH9AVIBUQFUAf4DRwH5A1ABmgMEAQUDAAEBEAADQQFyAtEB0gH/ + ArIBswH/Aq4BrwH/AbABsQGyAf8BsQGyAbMB/wKyAbMB/wKyAbMB/wKvAbAB/wLFAcYB/wLdAd4B/wLi + AeMB/wNVAa0DAAEBAwQBBgMCBAMEBAEGAwABASAAAz0BZwMAAf8DAAH/A0oBigNYAbsDAAH/AwAB/wFT + AlEBpQNMAZMDAAH/AwAB/wMpAT8cAAMDAQQDCgQNAREDEAEVAxIBGAMTARoDFAEcAxUBHQMWAR4DFgEf + AxYBHwMWAR8DFgEfAxYBHgMVAR0DEgEYAwcBCQNMAY8CAAHnAf8DIwEzAwUBBwMDAQQMAAMVAR0DXAH4 + A/IB/wMAAf8BmAGaAZwB/wHDAcQBxQH/AwAB/wP5Af8DAAH/AZEBkwGVAf8CxQHGAf8DAAH/A/UB/wMA + Af8BkAGSAZQB/wLNAc4B/wMAAf8B5wLoAf8DAAH/Ay4BSBQAA0ABbwLXAdgB/wHEAcUBxgH/AcIBwwHE + Af8CxAHFAf8BxAHFAcYB/wLFAcYB/wLEAcUB/wLJAcoB/wLkAeUB/wLiAeMB/wLnAegB/wNeAc4DPgFr + A0ABcQNAAXADMgFQAxYBHgMHAQkgAAMQARUDTQH6AQABgQGCAf8BAAKBAf8BAAKBAf8BAAGBAYIB/wEA + AYEBggH/AQACgQH/AQACgQH/AQABgQGCAf8DYQHmYAADUAGdAQABgwHrAf8DXAHPGAADIgExAwAB/wMA + Af8DAAH/AwAB/wMAAf8DAAH/AgABgQH/AwAB/wMAAf8DAAH/AwAB/wEAAYEBgwH/AwAB/wMAAf8DAAH/ + AwAB/wMAAf8DAAH/AzoBYBQAA0ABbwLeAd8B/wK/AcAB/wG5AboBuwH/AbsCvAH/AbsBvAG9Af8BuwG8 + Ab0B/wG7AbwBvQH/AbcBuAG5Af8BsgKzAf8CygHLAf8C5gHnAf8C3AHdAf8C0wHUAf8C0gHTAf8C0QHS + Af8BbQJSAfcDMAFMAwABARQAAxABFQNSAacDRwGAA0IBcwGEAUABgAH9AoUBhwH/AYMBhAGGAf8BgwGE + AYYB/wGGAYcBiAH/AoYBiAH/AoMBhQH/AYMBhAGGAf8ChQGHAf8DXwHzAzoBYANMAY8DTgGWAwcBCTQA + AwgBCwMIAQsDCAELAwgBCwMIAQsDGAEhA1sBwwEAAYcB6gH/AQABiAHqAf8DRAF6GAADIgExAwAB/wMA + Af8CgQGCAf8DAAH/AwAB/wKBAYIB/wMAAf8BAAGBAYIB/wMAAf8DAAH/AwAB/wMAAf8DAAH/AwAB/wMA + Af8BAAGBAYIB/wMAAf8DAAH/AzoBYBQAA0ABbwLgAeEB/wK7AbwB/wG0AbUBtgH/AbYBtwG4Af8BtwK4 + Af8BtgG3AbgB/wG5AroB/wHkAuUB/wHpAuoB/wLlAeYB/wLoAekB/wLQAdEB/wGlAaYBpwH/ArgBuQH/ + AssBzAH/AsoBywH/A1EBohgAAzsBYwGJAYoBjAH/AYkBigGLAf8BiQGKAYsB/wGJAYoBjAH/AogBigH/ + ApABkgH/A18B2wNSAaMDUgGnA2EB5AGOAY8BkAH/AYgBiQGKAf8BiQGKAYwB/wGJAYoBiwH/AYkBigGL + Af8BiQGKAYwB/wMsAUQYAAMQARYDIQEwDAADPgFrA2EB3ANhAe4DYQHuA2EB7gNhAe4DYQHuAUcCagH5 + AQABjgHsAf8BAAGOAewB/wEAAY4B7AH/A2EB5gNOAZUDAwEEEAADIgExAwAB/wGxAbABsQH/Aq8BsAH/ + A68B/wOvAf8BrwGuAa8B/wGvAa4BrwH/Aa8BrgGvAf8CrgGvAf8CrwGwAf8CpwGoAf8DAAH/AbUBtAG1 + Af8DrwH/Aq8BsAH/Aq8BsAH/ArcBuAH/AwAB/wM6AWAUAANAAW8B4gLjAf8BxgHHAcsB/wHCAcUByQH/ + AcQByAHLAf8BxQHIAcwB/wHEAccBywH/AcMBxQHGAf8ByQLKAf8B0wHUAdUB/wHqAusB/wHqAusB/wHT + AtQB/wKxAbMB/wLLAcwB/wLPAdAB/wLKAcsB/wNSAaEYAAMSARkDWwHDAo8BkQH/Ao8BkQH/AY0BjgGP + Af8BlwGYAZkB/wNCAXUDAQECCAADCAELA0wBjwKVAZcB/wGNAY4BjwH/Ao8BkQH/A38B/gNWAbEDCgEN + GAADJQE3AwAB/wM+AWsEAAMUARsBAAGUAewB/wEAAZMB7QH/AQABlAHtAf8BAAGUAe0B/wEAAZQB7QH/ + AQABlAHtAf8BAAGUAe0B/wEAAZQB7QH/AQABlAHtAf8BAAGUAe0B/wEAAZQB7QH/AQABkwHtAf8BAAGT + Ae0B/wM1AVcQAAMiATEDAAH/Aq0BrgH/AqwBrQH/AqwBrQH/AqwBrQH/AqwBrQH/AqwBrQH/AqwBrQH/ + AqwBrQH/Aq0BrgH/AqUBpgH/AwAB/wKyAbMB/wKtAa4B/wKtAa4B/wKtAa4B/wK0AbUB/wMAAf8DOgFg + FAADQAFvAeYC5wH/AdoB1wHGAf8B0gHFAbIB/wHUAccBtQH/AdMBxQG1Af8B1gHLAbcB/wLgAdcB/wLj + AeUB/wPlAf8B6wLsAf8B7ALtAf8C1QHWAf8BrQGuAa8B/wK0AbUB/wK/AcAB/wLPAdAB/wNRAaAcAAMW + AR4BkwGUAZUB/wGTAZQBlQH/AZYBlwGYAf8DSgGLGAADVAGuAZQBlQGWAf8BkwGUAZUB/wNcAfgkAANg + AdYDAAH/A0gBhgMcASgBAAGbAfAB/wEAAZoB7gH/AQABmgHuAf8BAAGaAe4B/wEAAZoB7gH/AQABmgHu + Af8BAAGaAe4B/wEAAZoB7gH/AQABmgHuAf8BAAGaAe4B/wEAAZoB7gH/AQABmgHuAf8BAAGaAe4B/wNA + AW4QAAMiATEDAAH/ArYBtwH/ArUBtgH/ArUBtgH/ArUBtgH/ArUBtgH/ArUBtgH/ArUBtgH/ArUBtgH/ + ArYBtwH/Aq4BrwH/AwAB/wK7AbwB/wK2AbcB/wK2AbcB/wK2AbcB/wO+Af8DAAH/AzoBYBQAA0ABbwHn + AegB5QH/AccBuQEAAf8BrgIAAf8BqQIAAf8BqQIAAf8BtQGOAQAB/wHcAdYBngH/AegB8AH2Af8B6gHt + AewB/wHrAuwB/wHuAu8B/wHVAtYB/wK+Ab8B/wLBAcIB/wLGAccB/wLRAdIB/wNRAaAUAAMPARQDSQGH + A1wByQKZAZsB/wGXAZgBmQH/A1wB+AMQARYYAAMkATUDfwH+AZcBmAGaAf8DfwH+A1gBuQNEAXoDBwEJ + FAADCgENA1MBqAMAAf8DAAH/A14B2gMrAfwBAAGgAfAB/wEAAaAB8AH/AQABoAHwAf8BAAGgAfAB/wEA + AaAB8AH/AQABoAHwAf8BAAGgAfAB/wEAAaAB8AH/AQABoAHwAf8BAAGgAfAB/wEAAaAB8AH/AQABoAHw + Af8DPgFqEAADIgExAwAB/wK/AcAB/wK+Ab8B/wK+Ab8B/wK+Ab8B/wK+Ab8B/wK+Ab8B/wK+Ab8B/wK+ + Ab8B/wK/AcAB/wK3AbgB/wMAAf8CxAHFAf8CvwHAAf8CvwHAAf8CvwHAAf8CxwHIAf8DAAH/AzoBYBQA + A0ABbwLoAeUB/wHJAb8BAAH/AcEBpQEAAf8BuwIAAf8BvQGCAQAB/wHCAbMBAAH/AeIB1AGhAf8BlwHg + AdAB/wHKAeYB3gH/AfYB7gHxAf8B7QHvAe4B/wHbAdkB2gH/AcoBxwHJAf8CzwHQAf8C1gHXAf8C0gHT + Af8DUQGgFAADRwGBAZ0BngGfAf8BnQGeAZ8B/wKeAZ8B/wGcAZ0BngH/A1wB3xwAAw4BEwNqAfkBnAGd + AZ4B/wKeAZ8B/wGdAZ4BnwH/AZ0BngGfAf8DNgFYEAADGAEiA2EB5AMAAf8DAAH/AYECAAH/AwAB/wEA + AasB+gH/AQABpgHxAf8BAAGmAfEB/wEAAaYB8QH/AQABpgHxAf8BAAGmAfEB/wEAAaYB8QH/AQABpgHx + Af8BAAGmAfEB/wEAAaYB8QH/AQABpgHxAf8BAAGmAfEB/wEAAaYB8QH/Az4BahAAAyIBMQMAAf8CyQHK + Af8CyQHKAf8CyAHJAf8CyAHJAf8CyAHJAf8CyAHJAf8CyAHJAf8CyAHJAf8CyQHKAf8CwAHBAf8DAAH/ + A84B/wLIAckB/wLIAckB/wLIAckB/wLQAdEB/wMAAf8DOgFgFAADQAFvAekB6gHnAf8B0wHKAYEB/wHO + Aa0BAAH/AcwCAAH/Ac0BjAEAAf8BzQG+AQAB/wHrAdwBtwH/AQAB1wG6Af8BAAHLAZoB/wHYAekB5AH/ + Af0B8QH2Af8BzwHfAdsB/wGvAcABvAH/AckBxwHIAf8C1gHXAf8C1AHVAf8DUQGgFAADIgExA1kBxwFn + AlkB8gKjAaQB/wKiAaQB/wNdAfADBwEKGAADGgElAaYBngGfAf0BogGjAaQB/wKjAaQB/wNdAe0DWQG+ + AxYBHxAAAz8BbQGFAgAB/wGFAgAB/wGFAgAB/wGNAgAB/wIAAYIB/wEAAbEB+wH/AQABrAHyAf8BAAGs + AfIB/wEAAawB8gH/AQABrAHyAf8BAAGsAfIB/wEAAawB8gH/AQABrAHyAf8BAAGsAfIB/wEAAawB8gH/ + AQABrAHyAf8BAAGsAfIB/wEAAawB8gH/Az4BahAAAyIBMQMAAf8C0gHTAf8C0gHTAf8C0QHSAf8C0QHS + Af8C0QHSAf8C0QHSAf8C0QHSAf8C0QHSAf8C0gHTAf8CyQHKAf8CAAGBAf8C1wHYAf8C0QHSAf8C0QHS + Af8C0QHSAf8D2gH/AwAB/wM6AWAUAANAAW8B6gHrAekB/wHfAdYBowH/Ad0B0QGRAf8B3wG6AQAB/wHe + AcUBAAH/AdwB0gGUAf8B8AHjAcsB/wGvAeABzwH/AQABvQEAAf8BAAHGAY4B/wGKAdgBuwH/AQAB1QGv + Af8BhgHWAb0B/wHpAd4B4wH/AdgB2QHaAf8C1gHXAf8DUQGgHAADIgExAqgBqQH/AqgBqQH/AqgBqgH/ + AzoBYBgAA0kBhwKoAakB/wKoAakB/wNcAfgDEQEXGAADPgFqAZECAAH/AZECAAH/AZECAAH/AZkCAAH/ + AgABjgH/AQABtwH8Af8BAAGxAfQB/wEAAbEB9AH/AQABsQH0Af8BAAGxAfQB/wEAAbEB9AH/AQABsQH0 + Af8BAAGxAfQB/wEAAbEB9AH/AQABsQH0Af8BAAGxAfQB/wEAAbEB9AH/AQABsQH0Af8DPgFrEAADIgEx + AwAB/wLbAdwB/wPaAf8C2QHaAf8C2QHaAf8C2QHaAf8C2QHaAf8C2QHaAf8C2QHaAf8C2gHbAf8C0QHT + Af8BgwGEAYYB/wLfAeAB/wLZAdoB/wLZAdoB/wLZAdoB/wLiAeMB/wMAAf8DOgFgFAADQAFvAeoB7AHr + Af8B6wHpAeIB/wHrAekB4AH/AesB7QHnAf8C7AHlAf8B7AHqAeAB/wHxAe4B7AH/Ad0B4wHhAf8BAAGy + AQAB/wEAAboBAAH/AQABvQEAAf8BAAHAAYEB/wEAAcsBnAH/AdsC3QH/AdwB2wHcAf8C2AHZAf8DUQGg + GAADBAEFA0oBjQKtAa4B/wKtAa4B/wKtAa4B/wNkAfEDJwE6EAADMwFTAysB/AKtAa4B/wKtAa4B/wMr + AfwDQAFvGAADPgFqAZ0CAAH/AZ0CAAH/AZ0CAAH/AaQCAAH/AgABkwH/AQABwAL/AQABuAH1Af8BAAG3 + AfUB/wEAAbcB9QH/AQABtwH1Af8BAAG3AfUB/wEAAbcB9QH/AQABtwH1Af8BAAG3AfUB/wEAAbcB9QH/ + AQABtwH1Af8BAAG3AfUB/wEAAboB9QH/AzwBZhAAAyIBMQMAAf8C9QH2Af8D9wH/A/YB/wP2Af8C9QH2 + Af8C9QH2Af8D9QH/A/UB/wP2Af8C6AHpAf8BhwGIAYoB/wL6AfsB/wL1AfYB/wL1AfYB/wP2Bf8DAAH/ + AzoBYBQAA0ABcAHqAusB/wHrAe0B7gH/AewB7QHwAf8B7AHtAe8B/wHtAe4B8AH/Ae0B7gHxAf8C8gH0 + Af8B0gHOAdEB/wEAAZEBiQH/AQABqQEAAf8BAAG0AQAB/wEAAbkBAAH/AQABvQEAAf8BswHYAcoB/wHk + Ad4B4gH/AtoB2wH/A1EBoBgAAzgBXgKyAbMB/wGyAbMBtAH/AbMBtAG1Af8BsQGyAbMB/wGxAbIBswH/ + A38B/gNQAZ4DOAFeAzoBYgNUAawBrwGwAbEB/wGxAbIBswH/AbEBsgGzAf8BswG0AbUB/wGxAbIBswH/ + AbIBswG0Af8DKAE9FAADPgFqAakBAAGEAf8BqQEAAYQB/wGpAQABhAH/AaoBAAGDAf8BqgEAAYIB/wEA + AasB0wH/AQABxwH+Af8BAAHFAfwB/wEAAcUB+wH/AQABxQH7Af8BAAHFAfsB/wEAAcQB+wH/AQABwwH4 + Af8BAAHDAfcB/wEAAcMB9wH/AQABwwH3Af8BAAHDAfcB/wNcAcwDDgETEAADIgExAwAB/wMAAf8ClAGX + Af8BjwGQAZIB/wGPAZABkgH/AZgBmQGbAf8BkAGRAZMB/wKaAZ0B/wGXAZgBmgH/AZcBmAGaAf8BiwGM + AY4B/wMAAf8BkAGRAZMB/wGRAZIBlAH/AYsBjAGPAf8BkwGUAZYB/wGEAYUBiAH/AwAB/wM6AWAUAANA + AW4B6QLqAf8B6wLsAf8B6wLsAf8C7AHtAf8B7ALtAf8B7ALtAf8C8QHyAf8BygHLAc0B/wGbAZIBlAH/ + AZ8BpgEAAf8BAAGeAQAB/wEAAa8BAAH/AQABxgGaAf8ByQHfAdcB/wHlAeEB5AH/AtwB3QH/A1IBpxgA + AyABLwNhAeEDWQG/A1UBsgN/Af4CtwG4Af8CtwG4Af8CtgG3Af8CtAG1Af8CtAG2Af8CtgG3Af8CtwG4 + Af8CtwG4Af8DXwH7A1IBpwNcAc8DYAHUAxQBGxQAAz4BagG0AYkBkgH/AbUBiQGSAf8BtQGJAZIB/wG0 + AYkBkgH/AbgBiAGQAf8BtgGHAY8B/wGUAZYBpwH/AZEBmQGrAf8BkgGYAaoB/wGSAZgBqgH/AZIBmAGq + Af8BkgGYAaoB/wM4AVwDHQEqAx8BLAMfASwDGwEmGAADIQEwAwAB/wGwAbEBsgH/AwAB/wIAAYEB/wGY + AZkBmwH/AwAB/wK5AbsB/wMAAf8BgwGEAYcB/wGeAZ8BoQH/AwAB/wG/AcABwQH/AwAB/wIAAYEB/wGb + AZ0BngH/AwAB/wGoAakBqwH/AwAB/wM6AWAUAAMWAR8DXQHXA18B+wNfAfsDTQH6AagCoAH9AuwB7QH/ + Au8B8AH/Ac8B0AHTAf8BywHGAbkB/wHOAdYBswH/AbkBzwGsAf8B3QHiAdIB/wHtAeYB7AH/AbgBtQG3 + Af8BpQGmAacB/wGsAa0BrgH/AzoBYRwAAwIBAwQAAwgBCwNfAfsBuwG8Ab0B/wK8Ab0B/wK8Ab4B/wK8 + Ab4B/wK8Ab0B/wK8Ab4B/wK8Ab4B/wG7AbwBvQH/AWECXQHiJAADPgFrAcMBnAGkAf8BvwGWAZ4B/wG/ + AZcBnwH/Ab8BlwGfAf8BvwGXAZ8B/wHBAZYBngH/AccBlAGaAf8ByAGUAZkB/wHIAZQBmgH/AcgBlAGZ + Af8BxwGTAZkB/wHMAZsBoQH/AxoBJSgAAxEBFwNSAfQB4QLiAf8DAAH/AZ4BnwGhAf8BwgHDAcQB/wMA + Af8D6wH/AwAB/wKjAaUB/wLHAckB/wMAAf8D6AH/AwAB/wKcAZ8B/wLHAcgB/wMAAf8B2gLbAf8DAAH/ + AyoBQBgAAwoBDQMaASQDGgEkAxkBIwNOAZUB2QHYAdoB/wLdAd4B/wLeAd8B/wHhAeIB4wH/AecB5gHq + Af8B7gHqAe4B/wHuAe0B7wH/Ab0BvgG/Af8BhwGIAYkB/wN/Af4DPwFtKAADOwFjAsEBwgH/AsEBwgH/ + A1oBxQNhAeQBwQHAAcIB/wHBAcABwgH/A14B2ANcAdECwQHCAf8CwQHCAf8DJwE6IAADFgEeA2EB3AHT + AbEBuAH/AdIBsAG3Af8B0wGwAbcB/wHTAbABtwH/AdMBsAG3Af8B0wGwAbcB/wHTAbABtwH/AdMBsAG3 + Af8B0wGwAbcB/wHTAbEBuAH/A1QBrwMCAQMsAAMtAUUDYAHeA1IB9wNZAfUDWQH1A1kB9QNZAfUDWQH1 + A1kB9QNZAfUDWQH1A1kB9QNZAfUDWQH1A1kB9QNSAfcDXQHtAz4BaiwAA0gBgwLUAdUB/wLZAdoB/wLc + Ad0B/wLeAd8B/wLgAeEB/wLiAeMB/wLnAegB/wGzAbQBtQH/AYsBjAGNAf8DPwFtLAADIgExA2AB3gNW + AbMEAAM0AVQCxgHHAf8CxgHHAf8DHQEpAwMBBANcAcwDYAHUAxIBGSQAAwYBCAMdASkDHQEpAx0BKQMd + ASkDHQEpAx0BKQMdASkDHQEpAx0BKQMcASc0AAMFAQcDQAFvA1ABmgNPAZcDTwGXA08BlwNPAZcDTwGX + A08BlwNPAZcDTwGXA08BlwNPAZcDTwGXA08BlwNQAZoDSAGDAxEBFywAAywBQwN/Af4C1wHYAf8C2gHb + Af8C3AHdAf8C3gHfAf8C3gHfAf8C4gHjAf8CuAG5Af8DPQFpNAADAQECCAADGAEhA1wB6gNdAdcDCAEL + /wAJAAMCAQMDQAFwA1ABngNQAZsDUAGbA1ABmwNQAZsDUAGeA0YBfkgAAwkBDAMEAQb/AP8AzgABQgFN + AT4HAAE+AwABKAMAAWADAAFIAwABAQEAAQEFAAFgAQMWAAP/AQAJ/wMAAfABAAEnBv8DAAGAAQABAQb/ + AwABgAEAAQEG/wMAAeABAAEHAeABAAEHAeABAAEHAwAB4AEAAQMB8AEAAQ8B8AFAAR8DAAHAAQABAwH/ + AQMB/wHwATwBDwMAAcABAAEDAf4BAwH/AfABGAEHAwABwAEAAQMB/AEBAf8B8AEAAQ8DAAHAAQABAwH4 + AQAB/wH4AQABHwMAAcABAAEDAfABAAH/AfwBAAE/AwABwAEAAQMB8AEAAX8B/gEAAX8DAAHAAQABAwHw + ASABPwH/AQAB/wMAAcABAAEDAfgBcAE/Af4BAAF/AwABwAEAAQMB/QH4AR8B/AEAAT8DAAHAAQABAwH/ + AfgBDwH4AQABHwMAAcABAAEDAf8B/AEHAfABAAEPAwABwAEAAQMB/wH+AQ8B8AEYAQcDAAHAAQABAwL/ + AT8B8AE8AQ8DAAHAAQABAwP/AfgBfgEfAwAB4AEAAQcD/wH8Af8BPwMACf8DAAn/AwAJ/wMABv8B/AEA + AR8BwAEAAQMG/wHAAQABAQGAAQABAQHgAQABBwGAAQABAQGAAQABAQGAAQABAQHgAQABBwGAAQABAQHA + AQABAwHAAQABAwH4AQABHwHAAQABDwHAAQABAwHAAQABAwH4AQABHwHAAQABDwHAAQABAwHAAQABAwH4 + AQABHwHAAQABDwHAAQABAwHAAQABAwH4AQABHwHAAQABDwHAAQABAwHAAQABAwH4AQABHwHAAQABDwHA + AQABAwHAAQABAwH4AQABHwHAAQABDwHAAQABAwHAAQABAwH4AQABHwHAAQABDwHAAQABAwHAAQABAwH4 + AQABHwHAAQABDwHAAQABAwHAAQABAwH4AQABHwHAAQABDwHAAQABAwHAAQABAwH4AQABHwHAAQABBwHA + AQABAwHAAQABAwH4AQABHwHAAQABBwHAAQABAwHAAQABAwH4AQABHwHAAQABAwHAAQABAwHAAQABAwH4 + AQABHwHAAQABAwHAAQABAwHgAQABBwH4AQABPwHAAQABAwHAAQABAwH/AYEB/wH4AQABfwHAAQABAwHA + AQABAwH+AQgBPwH4AQAB/wHAAQABDwHAAQABAwH+ARgBPwH8AQEB/wHAAQABPwHAAQABAwH+ARgBPwH+ + AR8B/wHgAQABfwHgAQABBwH+ATwBPwH/AT8r/wHAAQABfwGAAQABAQP/AcABAAEDAcABAAF/AYABAAEB + AfABAAEfAYABAAEBAeABAAH/AfABQgEPAYABAAEBAaABAAEBAeABAAEDAfwBAAE/AYABAAEBAcABAAED + AeABAAEDAfwBAAF/Av8BjwHAAQABAwHgAQABAwHgAQABBwH/AcABDwHAAQABAwHgAQABBwHgAQABBwHn + AQABAwHAAQABAwHgAQABBwHgARgBBwHiAQABAwHAAQABAwHgAQABBwHwAX4BHwHwAQABAwHAAQABAwHg + AQABBwHAAX4BAwHgAQABAwHAAQABAwHgAQABBwHAAf4BAwHAAQABAwHAAQABAwHgAQABBwHAAX4BAwHA + AQABAwHAAQABAwHgAQABBwHwAX4BDwHAAQABAwHAAQABAwHgAQABBwHgATwBDwHAAQABAwHAAQABAwHg + AQABBwHgAQABBwHAAQABAwHAAQABAwHgAQABBwHgAQABBwHAAQABDwHAAQABAwHgAQABBwH0AQABfwHA + AQAB/wHAAQABAwHwAQABDwH8AQABPwHAAQAB/wHgAQABBwH/AQABHwH8AUABPwHgAQMB/wHgAQABBwH/ + AQABPwH+AcMI/wEAAX8B/wHnFv8L - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK/wAA - Cv8BNGKaggAAAsJJREFUOE99kktPE1EUx+9OMDExIaIGYnAhQdEgBIJIontd+BHURMNDoh9BA4lLS6c0 - PATdgxToc9pKXzCEdjrttPb9hCLyHQT8e+6FYnTh4j/33nN//3POnBlWLBYYV6lUZOVSiVUq5Z6dnepk - rbYb2dur1Uj03FUpZiyXS72c43yhcCJxOE1wjgDD7u7Oz2qlAgJRKOSFSsUiqtUK6O6QihiJbzhLQCZe - vYEgK+2RzWaQTqWQTv8jimUzGXCGEjhIjbwbVq6UWb6QN+TzOSSTib+VSCCTSXOD6CSV+oZEQgdn6Wyi - rhjL5bJdmXT6SI/HEY/FoOtxYUroOiVLwm6zwmySMG2egtfjRpKScpY8x9RtD6OAFI/HoKoRaNEowuFt - TEkSNjc3KFEG7yfG0X27E08eP0IoGKAimmC5hzo2s2hU1bgpvL1NwTjm52bRdasD4+/eIp/LYYLWB/cH - MNjfh4+zs4LhLPeQV2dbW8q+omyCS9OieDP2Cnc62vH50wJi9EorlmXMzUzjbudNjI0OC6bOk/eAhULB - 76FgELQiEgljbGQYN9quUbUZmodOg0vh08I82ik2OvQSkXBYsKeeAxYI+GN+nw9cW4oihnW99Sq1fQ/S - pAEm4yQeDg6greUKpmiYnKnz5E2wYDBg8no8+Or1CgUDAbweHUHr5SZcungBzaSW5ibqbAhkOOO4h9hp - pihKt+xyHZPA5XG74Vtfh2Q04MXzZ6SnMBo+YJ1i/K7O0fprIxTqZfTpGBkku80Gh91+IoddVPLRa3Hx - PY/V721WK4+bNU1jzO/38QSNdOlYW12FdW3tv+KMy+mUVVU9Tz8eYy6Xk8luF3O75QYySysWy6FleRlC - 9AmF/pyPiDHTEBt551xMloWZuWWZUReMgD6LxWL6srSkLS0u7pN+0D5GicxUvd/pcPCOWVRVRYLfkN7p - ErGspUwAAAAASUVORK5CYII= + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr/AAAK/wE0YpqCAAACv0lE + QVQ4T32SW08TURSFz5tgYmJCRA3E4IMERYMQCCKJvuuDP0FNNFwk+hM0kPho6ZSGi4DvIAV6nbbSGwyh + nU47xd6vtIj8BwGX+xwtXh58WJ1z9vnW3qtnhhUKeaFiscBKxSIrl0s9e3uVyVqtGtnfr9VI9FtVqWYs + lYq9nON8Pv9TfzY4Q4ChWt37VimXQXvk8zmhYqGASqUMOjuiIUbiG04bkImbGwiy0hqZTBqpZBKp1D+i + WiadBmeogYPUyNOwUrnEcvmcIZfLYnc38bcSCaTTKW4QSZLJz0gkdHCW9iZKxVg2m+lKp1LHejyOeCwG + XY8LU0LXqcku7DYrzCYJ0+YpeD1u0ZSz5DmhtD2MClI8HoOqRqBFowiHdzAlSdja2qRGabydGEf3zU48 + evgAoWCAhmiC5R5KaWbRqKpxU3hnh4pxzM/NoutGB8bfvEYum8UEPe/dHcBgfx/ez84KhrPcQ16dbW8r + B4qyBS5Ni+LV2Avc6mjHh8UFxOgvrVpWMDczjdud1zE2OiyYOk/eQxYKBb+EgkHQE5FIGGMjw7jWdoWm + zdB96HRxSSwuzKOdaqNDzxEJhwX7y3PIAgF/zO/zgWtbUcRlXW29TLHvQJo0wGScxP3BAbS1XMIUXSZn + 6jx5EywYDJi8Hg8+eb1CwUAAL0dH0HqxCRfOn0MzqaW5iZINccMpxz3ETjNFUbpll+uEBC6P2w3fxgYk + owHPnj4hPYbR8A4bVONndY70fTMU6mX06hgZJLvNBofd/lMOu5jio5hcfM1r9XOb1crrZk3TGPP7fbxB + Ix041tfWYF1f/68443I6ZVVVz9KHx5jL5WSy28XcbrmBAGnVYjmyrKxAiF6h0O/9MTFmusBGnpyLybIw + M7csM0rBCOizWCymj8vL2vLS0gHpK61jZDbT9H6nw8ETs6iqUoMo+wGQ3ukSwrHlrAAAAABJRU5ErkJg + gg== - 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 + rkJggg== - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK8gAA - CvIBPVL3EQAAAo1JREFUOE+lkW1IU1EYx5+lbi0jKk2EDKlMJ5eZEFlRyKBUwg/lB3sBSYllRC218K3A - ptvSSpfMtKRIU0vzSviCuU0xnXozKVNn06lzTklJ+yDCwA+yp7ObDeUaBB34cd7+53cezgFEhP/BdXje - PgqfZ19C3/diMM2/hqlFLbSMx117Z4rK+PbjBb/blgXvx2XQbcsHx5pLNxSYf9LQO3M/rvzrMXtZ/2FH - m0WWzszk/Jugf/Y5dE7J4572Uajp9SZ4YUmfCBtHE+S6iaS/V7BgH4OBuUrQjafFF30KwYIeX1QzfiwF - jC8RUVhtjM1hph+vezPXZMFu3tw2qZKqmYOY1+WHD7v91/GArOX3UNgwmqR0OFZ4fx7eJWi1qC7n94Sh - /MNuVHTuRVXnflSu8nu8D7M79qDKIEL9hCKEI5he/CJsMt8JrRxMiFR/lBiy2gOILIjlXvsBzO06ZK0Y - uBRJm26GLy7PenAEc0tD0G5VQ6tFA4XM2ZrUlgDM0AWzpGuDUNFxfLBhJBv0ljxYXllyVe4aGKxVoDUX - g36sFPI6ztA3GgIxqYlikTUG413dCSNtVABtzAHGVssVaCefQfNYCTSbSiFbH0NLa0V4tU7McoWm8HZT - uPFNvwqqh5TwdkTJFUgzz0EBnQlaSwWk1sfQsWUivPhKzHK+nMLEGiIYegS5dclwJELMFQBpAgEf0tTX - IaX+Ql2URoTRxWKW00UUxledHE59kgjCLQJnlCtwA+DxANw3Ac/jVObRWklRKEoKV9GEYoQqbJjv5i4g - GYEzy/kFsuhG8CKBQOFWvsQnZGeyN7XdSYqPeMetbbs8o8leMMn4O7MbCYBsuBOEJOhBqiTdOpwXeBL4 - ayv4Ba5+NdG8cgGAAAAAAElFTkSuQmCC + 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 - MV5njhcGgLEAAAAASUVORK5CYII= + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAArpAAAK6QH9dc7TAAABnElE + QVQ4T6XSS0sCYRQG4BEXERG46UI3yCRNnZmw/AGZFUagJO2rZSFEJi6MFtFNhAxBBSlokW7NQIlIKLvJ + FyJtBKEoqKCCfsPpO2pD1repFs9wfM87x81wAPAvzBDt3QxYdvOibzcv+KI3pjFWBzFDtJPrfQyTRgiT + BtjOia+sDmKGKER0xa2rJkB0vmd1EDNEgWxvwXfRCiiQFe9YHSQNQWLqC5FhW5AMWUPXFqv/yvi0lukA + tHnZ/xImo9YgGaZGbOHrEWPVAe+5oXk100PL+goeVk41sHyiKsEZs8/9akYL62f6FunAUlrftZhWw0+a + L6p3nuNulXTAc2Rsc6Z0MJ/USpypalW7pA7ch2K7dADNHRjsjoTgohbQbJx/m4nrAdH53bFPc5TgXbQ7 + ESU7pfekA99NxYTCZIyHMuGW1UHMENkjQnE8wkOZ8PvvwOwXHwb9PCCzX3hmdRAn50oUVCeloXgZx6m1 + U8oNg7sni3TTSi9muKt0sKsoHcAH/SGnaqhaqo6qp3dl0r8AJ8OsssMOduXSgb8D7gMxXmeO6KXG2gAA + AABJRU5ErkJggg== - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK6QAA - CukB/XXO0wAAAetJREFUOE9j+P//PwMlGEXzfQdj37t2Bs24DLxnZ5B5z96oEFkebsAtV7OIKwaq/y9p - Kfy/bqW7Bd2QG3YGjZd1lf9f1lH6f8PesPf/wZmMIDVgA656WHGd1lH+f1xRGoxPqcv9v2iJMOSyrUHj - aW0loJwUGJ/SVPx/3kzbFG7ATk4uxgOK0j0HlGX+gzFQ0SE1uf9nLHVXnLM3rDmqrfh/P1AMLq8kvf+A - rAQ33ACYc3cqy/TuUJL+vxOIdyhI/d8DdMk+LcX/2xUkIWIQuf1LNBVZYHowYmAj0JANQIVgDLR1PdAg - GH+jkvTe+doqrFgDEVlwhZL08RXAsEDD7zaZGsBtxumCBYrSDQsVpP4A8X90vEBRaiN67KB4YYaidONM - oEYYngFkgzCqmPSW/0+/w/WBGRNU5RkmKkg1TJSX+g/DE0BsBenNkxSku8BsZKwgtWWSihwHPBZ61RS4 - OuUl/6Ph/bX6qkwgRV0KUr0daPJditJmKNHYoSSb2AS0pUlO8j+Q3vctwBusGYab5aW6wXJA3KIoM/2x - sxVYnoGZAYwFgBRvnKRofba02BZuFmYDIF8HKG4MwkA2iK+QIik6N1NafCGQLQLEfHAXABUxAzHYT2BB - BgZOIJ8XGQPFeJDk2UB6MFIiOdkaALyqHwCXXFYvAAAAAElFTkSuQmCC + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAArpAAAK6QH9dc7TAAAB7UlE + QVQ4T6WQQUgbQRSG18YWjbV4UNudicnMxiiahK4VAwaaFEqhUAoeeyoIXsSTd0WjHmzagHpRD1KFHnKr + 0UANWJMWiqBFaWOpFNSDePWol8Lzzeisu3vUw7fz3v+/98/uagBwKxzN0bPO1wcJc9yu2TlMmP2HySeD + ds0q/r2IvdkzQ/C7ncHfeDRvHxLsJ8xUORqEcsSA/WRHBr7NVwhdmn9exr3bkSBscirZavXDr+7rkPJT + M7UdNtAjkq02DruxcJcVUKj2VpQ4/VAK+kCCQ99b/PCzO5rdSXYM/QhzKKJm+QYtlpoe1VgBikLQl1kz + KBSQNUZgHd9ko53DF6Zfapde8VMbr1Q7jgBBDkOWcVCCt37GINXnDPr1Y7j5rn3esazIGnQzi//CxelK + l2ndrHA0gkVOR5cY+Y+Am0VOcu55RzPHaWoeBxVzVzg1moeTc2fAVCigTTMyOh0goJgSJ6OrM4ymZW2H + kfxMs7/KCsi0MO+7gA4uisOPQ3eEn2YkM+ny05zGrADBpNHUO4bpY34d8Nw463kllxXjAfJeesgE980e + P49LX/Nokjo8at/qDSMDtDFfU+kxsY+g3inAWvSsT29Y6KcPl7CuRx7IAPHAIQ8iv0mKmlaNfa0d1O7b + /HuoeWStxJsB2gW8qh8AcaOVUQAAAABJRU5ErkJggg== - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK6QAA - CukB/XXO0wAAAZlJREFUOE9j+P//PwMlGKfmJRcdPRec1+9ecF6ve+lFJx9cluA0YO5Zg8fTT4n9n35K - 9P+cs/ovSTZg2intmxOOi/8HYSD7PskGTDphcK37qPR/EJ50Qv8uQQOmnnIynnbKLWDqKVf/aac9/fuP - mz5pOyT3H4T7jpm8mH7Ky3/qKTcgdg+YftrdFGYgOAw6jxhJtB7SBCrWgWLd/y0HNf43HVABYxC77ZAu - XL71kNb/9sM6UiC9YAPq9uoo1+xV/4+JNYBiMIwqX71HTQVuQPUuU5nibdr/i7ZqwXHxNq3/yBhFbqv2 - //Id+rJwA0CMgk1Gwbkb9UqBuASEs9frvspar/MfhIHst7kbgOIgvFG3FKg2dOmpuWDX40wHicv0riUs - 0/0PwXp3CMYCuoLgWXo3g2bp/odgPdLTgUu//gPnft3/IOzSr/cUpwuYGRgYgFgAiBWBWAOIdRkZGNS1 - EpU6jMo1T4CwdpJSJ0gMJAdVA1IrAA8DIIcZiNmBmBOIuYGYF2guIyKxMDCCxKByIDUgtcx4A5HYLA4A - MV5njhcGgLEAAAAASUVORK5CYII= + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAArpAAAK6QH9dc7TAAABnElE + QVQ4T6XSS0sCYRQG4BEXERG46UI3yCRNnZmw/AGZFUagJO2rZSFEJi6MFtFNhAxBBSlokW7NQIlIKLvJ + FyJtBKEoqKCCfsPpO2pD1repFs9wfM87x81wAPAvzBDt3QxYdvOibzcv+KI3pjFWBzFDtJPrfQyTRgiT + BtjOia+sDmKGKER0xa2rJkB0vmd1EDNEgWxvwXfRCiiQFe9YHSQNQWLqC5FhW5AMWUPXFqv/yvi0lukA + tHnZ/xImo9YgGaZGbOHrEWPVAe+5oXk100PL+goeVk41sHyiKsEZs8/9akYL62f6FunAUlrftZhWw0+a + L6p3nuNulXTAc2Rsc6Z0MJ/USpypalW7pA7ch2K7dADNHRjsjoTgohbQbJx/m4nrAdH53bFPc5TgXbQ7 + ESU7pfekA99NxYTCZIyHMuGW1UHMENkjQnE8wkOZ8PvvwOwXHwb9PCCzX3hmdRAn50oUVCeloXgZx6m1 + U8oNg7sni3TTSi9muKt0sKsoHcAH/SGnaqhaqo6qp3dl0r8AJ8OsssMOduXSgb8D7gMxXmeO6KXG2gAA + AABJRU5ErkJggg== - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK/wAA - Cv8BNGKaggAAAsJJREFUOE99kktPE1EUx+9OMDExIaIGYnAhQdEgBIJIontd+BHURMNDoh9BA4lLS6c0 - PATdgxToc9pKXzCEdjrttPb9hCLyHQT8e+6FYnTh4j/33nN//3POnBlWLBYYV6lUZOVSiVUq5Z6dnepk - rbYb2dur1Uj03FUpZiyXS72c43yhcCJxOE1wjgDD7u7Oz2qlAgJRKOSFSsUiqtUK6O6QihiJbzhLQCZe - vYEgK+2RzWaQTqWQTv8jimUzGXCGEjhIjbwbVq6UWb6QN+TzOSSTib+VSCCTSXOD6CSV+oZEQgdn6Wyi - rhjL5bJdmXT6SI/HEY/FoOtxYUroOiVLwm6zwmySMG2egtfjRpKScpY8x9RtD6OAFI/HoKoRaNEowuFt - TEkSNjc3KFEG7yfG0X27E08eP0IoGKAimmC5hzo2s2hU1bgpvL1NwTjm52bRdasD4+/eIp/LYYLWB/cH - MNjfh4+zs4LhLPeQV2dbW8q+omyCS9OieDP2Cnc62vH50wJi9EorlmXMzUzjbudNjI0OC6bOk/eAhULB - 76FgELQiEgljbGQYN9quUbUZmodOg0vh08I82ik2OvQSkXBYsKeeAxYI+GN+nw9cW4oihnW99Sq1fQ/S - pAEm4yQeDg6greUKpmiYnKnz5E2wYDBg8no8+Or1CgUDAbweHUHr5SZcungBzaSW5ibqbAhkOOO4h9hp - pihKt+xyHZPA5XG74Vtfh2Q04MXzZ6SnMBo+YJ1i/K7O0fprIxTqZfTpGBkku80Gh91+IoddVPLRa3Hx - PY/V721WK4+bNU1jzO/38QSNdOlYW12FdW3tv+KMy+mUVVU9Tz8eYy6Xk8luF3O75QYySysWy6FleRlC - 9AmF/pyPiDHTEBt551xMloWZuWWZUReMgD6LxWL6srSkLS0u7pN+0D5GicxUvd/pcPCOWVRVRYLfkN7p - ErGspUwAAAAASUVORK5CYII= + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr/AAAK/wE0YpqCAAACv0lE + QVQ4T32SW08TURSFz5tgYmJCRA3E4IMERYMQCCKJvuuDP0FNNFwk+hM0kPho6ZSGi4DvIAV6nbbSGwyh + nU47xd6vtIj8BwGX+xwtXh58WJ1z9vnW3qtnhhUKeaFiscBKxSIrl0s9e3uVyVqtGtnfr9VI9FtVqWYs + lYq9nON8Pv9TfzY4Q4ChWt37VimXQXvk8zmhYqGASqUMOjuiIUbiG04bkImbGwiy0hqZTBqpZBKp1D+i + WiadBmeogYPUyNOwUrnEcvmcIZfLYnc38bcSCaTTKW4QSZLJz0gkdHCW9iZKxVg2m+lKp1LHejyOeCwG + XY8LU0LXqcku7DYrzCYJ0+YpeD1u0ZSz5DmhtD2MClI8HoOqRqBFowiHdzAlSdja2qRGabydGEf3zU48 + evgAoWCAhmiC5R5KaWbRqKpxU3hnh4pxzM/NoutGB8bfvEYum8UEPe/dHcBgfx/ez84KhrPcQ16dbW8r + B4qyBS5Ni+LV2Avc6mjHh8UFxOgvrVpWMDczjdud1zE2OiyYOk/eQxYKBb+EgkHQE5FIGGMjw7jWdoWm + zdB96HRxSSwuzKOdaqNDzxEJhwX7y3PIAgF/zO/zgWtbUcRlXW29TLHvQJo0wGScxP3BAbS1XMIUXSZn + 6jx5EywYDJi8Hg8+eb1CwUAAL0dH0HqxCRfOn0MzqaW5iZINccMpxz3ETjNFUbpll+uEBC6P2w3fxgYk + owHPnj4hPYbR8A4bVONndY70fTMU6mX06hgZJLvNBofd/lMOu5jio5hcfM1r9XOb1crrZk3TGPP7fbxB + Ix041tfWYF1f/68443I6ZVVVz9KHx5jL5WSy28XcbrmBAGnVYjmyrKxAiF6h0O/9MTFmusBGnpyLybIw + M7csM0rBCOizWCymj8vL2vLS0gHpK61jZDbT9H6nw8ETs6iqUoMo+wGQ3ukSwrHlrAAAAABJRU5ErkJg + gg== - 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 - MV5njhcGgLEAAAAASUVORK5CYII= + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAArpAAAK6QH9dc7TAAABnElE + QVQ4T6XSS0sCYRQG4BEXERG46UI3yCRNnZmw/AGZFUagJO2rZSFEJi6MFtFNhAxBBSlokW7NQIlIKLvJ + FyJtBKEoqKCCfsPpO2pD1repFs9wfM87x81wAPAvzBDt3QxYdvOibzcv+KI3pjFWBzFDtJPrfQyTRgiT + BtjOia+sDmKGKER0xa2rJkB0vmd1EDNEgWxvwXfRCiiQFe9YHSQNQWLqC5FhW5AMWUPXFqv/yvi0lukA + tHnZ/xImo9YgGaZGbOHrEWPVAe+5oXk100PL+goeVk41sHyiKsEZs8/9akYL62f6FunAUlrftZhWw0+a + L6p3nuNulXTAc2Rsc6Z0MJ/USpypalW7pA7ch2K7dADNHRjsjoTgohbQbJx/m4nrAdH53bFPc5TgXbQ7 + ESU7pfekA99NxYTCZIyHMuGW1UHMENkjQnE8wkOZ8PvvwOwXHwb9PCCzX3hmdRAn50oUVCeloXgZx6m1 + U8oNg7sni3TTSi9muKt0sKsoHcAH/SGnaqhaqo6qp3dl0r8AJ8OsssMOduXSgb8D7gMxXmeO6KXG2gAA + AABJRU5ErkJggg== - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK8gAA - CvIBPVL3EQAAAoRJREFUOE+lk11Ik1EYx5+md7XEMHPmB4tyZBEmESaW0kV64UV4EYZGCAoFaurFIrAQ - hCKFMgsKJMKbKEmI8CLCPkArLXXOuU03nfvAnHNu6faq78f277yWc2FdeeAH5zzw/53ncM4hALQd1sOh - oOM/2AlhH833NGsMV9Tahe46la/3Di0Pd1Jg7MV69reAc/2TsOCloKU/cbQyw2iqiIfjhua7p+vakeB4 - F3Hm7k1BWPhJWxCDrPYjRtf78t1gbQEmK5SYqU7AeNV+v/NZTa77TfOmAKKb/sZDkHwkWUpbF01XYbdN - wHKvEvpSJQZL4vG1TFM/XJ0bJVi1EiJMEYQ5kuzaKsGYB8laCMFcBM+cHgNtN/H58nEz59QlhcXFKAHv - JGwg+Sk025bPj2Xzoq0c/MghiBPnIbpqYTE8989O6jJFzk1rS64oQShAkIFE4cBgMq8/YRNtl8DrNBCM - hRAdNZDmGwHu40VxbZkEboFCq74oAWcmrFgpvDykFAxn+sTpC2AdQDDkQ7SWQZwpR2ipmxl4FpIBra54 - o67Ra6bQopUER18xb25iu54EP5rNWi8Br8+C5Lr+im2/HvB6nNR0S0upKaqoDlbcJPnZmVwDTYL1E4Sp - dgimYqx92YWQ8bQe8MYHAn5qbblNqqR9tDEiD+np43aaMo3S+9edbznrB8A/Cyz1A/YiT9DTc/huy31S - p6dGgjFsJhMRKBQKatQ27Gyor5vr7HgEn23IM/Jt4GFHx5MDWceObgluEcjCPXG7886dLZjOzcl5kJaS - corVVAw1Q8MCGYyDDDUjlZHAiI10IC/kYuwO2ssCSjmsIEpjtfQ/yHM5mMxIZMQxYiKC7XznX8JFYFou - bf5cAAAAAElFTkSuQmCC + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAryAAAK8gE9UvcRAAACf0lE + QVQ4T6WPW0jTURzHf6lvtcQwc+aFRTm6ECYRJpbSQ/rgQ/gQhkYICgVq6sMisBCEIoUyCwokwpcoSYjw + IcIuoJWWOufcppvOXTDnnFu6Tf3f9u38TbeR9VIHPufy4/f9nHMIwH+xPkkB+1+wEUJemu9pVusvqzQL + 3XVKb+9tWh7uJP/Y8yhB0PlHQryHAub+pNHKTIOxIgH26+pv7q6rhwPjXRQ0dUcEIf7HVoQAW7/Hantf + vB2sLcBkhQIz1YkYr9rrczytyXW9bo4IILh+w00QvSSaS1sXjVdgs07AfLcSulIFBksS8KVMXT9cnRsl + WLVEMUXg50i0aap4Qx5ESyF4UxHcczoMtN3Ap0vHTEGHNjkkLEYJOEcE0UfSbFs+N5bNCdZycCMHIEyc + g+CshVn/zDc7qT0kBF20tuSMEkj+X0CkkH8whdMdtwrWi+C0avCGQgj2GojzjUDwwwVhbZn44AJJq94o + QdBEWLFQaHlIwetP9wnT58FeAF6fD8FSBmGmHNJSNzNwrF8GtLriiQgkj4mkRQvx9r5iztTEbj0BbjSb + Pb0EnC4LovPaS3b9eq/H7aCmmxpKS1VGBFhxkehjf3IONPGWj+Cn2sEbi7H2eQckwykd4Enw+33U2nKL + lMl7aHOEBU8etdOUcZTevep8E7S8B3yzwFI/YCtyB9w9B++03CNVRtpGjCh2g7AgJiaGGjUN2xvq6+Y6 + Ox7Cax1yj3wdeNDR8Xhf1tEj6yF5bAa3COTzrvideWfPFEzn5uTcT09NPclqSoaKoWbNmYz9DBUjjZHI + iAsL5INcjNtGu1lAIYdjiNJZLWMDeS8HUxhJjHhGbFjw74B+AsJFYFrRskcjAAAAAElFTkSuQmCC @@ -881,464 +877,453 @@ - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK6QAA - CukB/XXO0wAAArRJREFUOE+l01tIU3EAx/GBlAQVCkVvTZMI1B6SijCkhx566MIqJbEVFZqplTmVSZa2 - zOsslWLdzMjMJCjDaWoPywdzrfA+15zOy9zV7cw5zXbO2fj13wFHom8e+HI48P9/zv+c/zk8ALz1FJjs - maqKpI1PEhiTLJ42Pye9iKcttfG0tc5fgsf86thaN+IA92BeKGuWsV7bS3hna+G1v4bX8QY+qgE+ZyN8 - riauP+ZPpTNObPwf4oD5vuxwxvAI7MxDsMYqsKYasObH8Fpk8FqfwQ/7Zp9iwdIFB7VotNtnJU4nFeyf - ywFOVQafniwBM/mAVARmqphUCma6HKxBysFeYxncpk643B5QlAME2RcA7N3JfHq8EMx4Ppix2+R8F4y+ - AMzEPZKEQ9mJO5g3yDE3/xcOh32aIBsCgK1LyPeMikFrRaB/Z5FzNujRXECXD4wRiKCs7iZck82gXEt+ - IG/5PXCPYPp6jr80IoJnOJ2UBlqdDnbkBgaHBPg1dIKgGXBrSkDZraCccx6y/G0rgMnWeP5CfyYWeq9i - sTcFbN81MAPpkKnCUKHcjsVBIZZ0TXC6fbDZrI2rdmH042n+3M/rcCmTQfVcgk6ZCK0qCTXfI1HeHQG1 - SgDtcBEsZAWm/nfFqwD1+1N8e3caXF1XoP52BpmKMOQoIlCg2INCUo5iNzI6t0Cp/wCPpqViFfCj7ni4 - QZEKU8dFaNoTUNl2kEvUGo1MeRSkbTGo7IxDx4Acmp666lXAwFtBiPZLCjPy+Ty0zUkwtFzAlFyI1IYY - JNZHQ992FvoOCbTynHpr+8ldK4AgHndsFl/eL6jOjSuUZh2WVN6KLaoUxd4/WrLXeKQs2i3JPiQVC6PE - ZFwEKYzMCSeFBL4DchG05o+yI3RryIGdoYEt4/E2kbH+gpfnrOtX9sP/AIt1021BwrQaAAAAAElFTkSu - QmCC + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAArpAAAK6QH9dc7TAAACrUlE + QVQ4T6XOXUhTYRzH8YGUBBUKRXdNkwjMLpKKMKSLLrroBatJYhYVmqmVORUlS1vm61YqxXozIzOToAyn + qV0sL8y1wve55nRO5zY3tzPnNNs5Z+PXs8EOyq6iA9/zPA88/w8PD8B/xW3c0zXRtPFxImOSCmjzM9Jz + AT1XL6AtDb4S3eaXR1cPBvL/XMOF4axZynqsL+CZr4fH9goe+2t4qSZ4Hc3wOlv8/TZ/rJh1YH0QsDiQ + G8kYHoKdfQDWWAPWVAfW/AieOSk8lqfwwd75J1ia64GdWjbabPMih4MK5QCHMotP68vB6O+TSsFMl5Eq + wMxUgTWI/bDHWAmXqRtOlxsUZQdB9nKArTeVT0+WgJksAjNxi6x3wOiKwUzdJYn8KDt1G4sGGRYW/8Bu + t80QZB0HWHtS+O7xAtAaIehfOWTNBT2eD2iLgAkCEZTV3oBT3wrKueIDCn1zHGD6cpa/MiaEezSTlAFa + lQl27DqGRxLwc+Q4QbPgUpeDsllAORbc5Plb1gD6dgF/aTAbS/1XsNyfBnbgKpihTEiVEahWbMXycApW + tC1wuLywWi3NgWEOGP9wir/w4xqcilRQfRehVSRBo0xG3bdoVPVGQaVMgGa0FHPkBabBt2VBgOrdSb6t + NwPOnstQfT2NbHkE8uRRKJbvQgkpT74TWd2boNC9h1vdVh0EfG84FmmQp8PUdQHqzkRIOg74E7bHIFu2 + G+KOWEi649E1JIO6r6E2CBh6kxCm+ZzGjH06B01rMgxt5zEtS0F6UyySGmOg6zgDXZcIGlleo6XzxI41 + QAjP/20suLQvoTY/vkScc0gkuRlXKhHG3TtSvsd4uDLGJco9KC5I2V1A7kWRIshMJCmMewE5hKxWA/G2 + hW8O2789nDvzeBvIXV+hgZmgoX8LvL+LddNtLbmnwgAAAABJRU5ErkJggg== - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK8gAA - CvIBPVL3EQAAAoRJREFUOE+lk11Ik1EYx5+md7XEMHPmB4tyZBEmESaW0kV64UV4EYZGCAoFaurFIrAQ - hCKFMgsKJMKbKEmI8CLCPkArLXXOuU03nfvAnHNu6faq78f277yWc2FdeeAH5zzw/53ncM4hALQd1sOh - oOM/2AlhH833NGsMV9Tahe46la/3Di0Pd1Jg7MV69reAc/2TsOCloKU/cbQyw2iqiIfjhua7p+vakeB4 - F3Hm7k1BWPhJWxCDrPYjRtf78t1gbQEmK5SYqU7AeNV+v/NZTa77TfOmAKKb/sZDkHwkWUpbF01XYbdN - wHKvEvpSJQZL4vG1TFM/XJ0bJVi1EiJMEYQ5kuzaKsGYB8laCMFcBM+cHgNtN/H58nEz59QlhcXFKAHv - JGwg+Sk025bPj2Xzoq0c/MghiBPnIbpqYTE8989O6jJFzk1rS64oQShAkIFE4cBgMq8/YRNtl8DrNBCM - hRAdNZDmGwHu40VxbZkEboFCq74oAWcmrFgpvDykFAxn+sTpC2AdQDDkQ7SWQZwpR2ipmxl4FpIBra54 - o67Ra6bQopUER18xb25iu54EP5rNWi8Br8+C5Lr+im2/HvB6nNR0S0upKaqoDlbcJPnZmVwDTYL1E4Sp - dgimYqx92YWQ8bQe8MYHAn5qbblNqqR9tDEiD+np43aaMo3S+9edbznrB8A/Cyz1A/YiT9DTc/huy31S - p6dGgjFsJhMRKBQKatQ27Gyor5vr7HgEn23IM/Jt4GFHx5MDWceObgluEcjCPXG7886dLZjOzcl5kJaS - corVVAw1Q8MCGYyDDDUjlZHAiI10IC/kYuwO2ssCSjmsIEpjtfQ/yHM5mMxIZMQxYiKC7XznX8JFYFou - bf5cAAAAAElFTkSuQmCC + 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 - XgJwIDJGN7ducgAAAABJRU5ErkJggg== + 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 + rkJggg== - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK8gAA - CvIBPVL3EQAAAo1JREFUOE+lkW1IU1EYx5+lbi0jKk2EDKlMJ5eZEFlRyKBUwg/lB3sBSYllRC218K3A - ptvSSpfMtKRIU0vzSviCuU0xnXozKVNn06lzTklJ+yDCwA+yp7ObDeUaBB34cd7+53cezgFEhP/BdXje - PgqfZ19C3/diMM2/hqlFLbSMx117Z4rK+PbjBb/blgXvx2XQbcsHx5pLNxSYf9LQO3M/rvzrMXtZ/2FH - m0WWzszk/Jugf/Y5dE7J4572Uajp9SZ4YUmfCBtHE+S6iaS/V7BgH4OBuUrQjafFF30KwYIeX1QzfiwF - jC8RUVhtjM1hph+vezPXZMFu3tw2qZKqmYOY1+WHD7v91/GArOX3UNgwmqR0OFZ4fx7eJWi1qC7n94Sh - /MNuVHTuRVXnflSu8nu8D7M79qDKIEL9hCKEI5he/CJsMt8JrRxMiFR/lBiy2gOILIjlXvsBzO06ZK0Y - uBRJm26GLy7PenAEc0tD0G5VQ6tFA4XM2ZrUlgDM0AWzpGuDUNFxfLBhJBv0ljxYXllyVe4aGKxVoDUX - g36sFPI6ztA3GgIxqYlikTUG413dCSNtVABtzAHGVssVaCefQfNYCTSbSiFbH0NLa0V4tU7McoWm8HZT - uPFNvwqqh5TwdkTJFUgzz0EBnQlaSwWk1sfQsWUivPhKzHK+nMLEGiIYegS5dclwJELMFQBpAgEf0tTX - IaX+Ql2URoTRxWKW00UUxledHE59kgjCLQJnlCtwA+DxANw3Ac/jVObRWklRKEoKV9GEYoQqbJjv5i4g - GYEzy/kFsuhG8CKBQOFWvsQnZGeyN7XdSYqPeMetbbs8o8leMMn4O7MbCYBsuBOEJOhBqiTdOpwXeBL4 - ayv4Ba5+NdG8cgGAAAAAAElFTkSuQmCC + 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 - ErGspUwAAAAASUVORK5CYII= + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr/AAAK/wE0YpqCAAACv0lE + QVQ4T32SW08TURSFz5tgYmJCRA3E4IMERYMQCCKJvuuDP0FNNFwk+hM0kPho6ZSGi4DvIAV6nbbSGwyh + nU47xd6vtIj8BwGX+xwtXh58WJ1z9vnW3qtnhhUKeaFiscBKxSIrl0s9e3uVyVqtGtnfr9VI9FtVqWYs + lYq9nON8Pv9TfzY4Q4ChWt37VimXQXvk8zmhYqGASqUMOjuiIUbiG04bkImbGwiy0hqZTBqpZBKp1D+i + WiadBmeogYPUyNOwUrnEcvmcIZfLYnc38bcSCaTTKW4QSZLJz0gkdHCW9iZKxVg2m+lKp1LHejyOeCwG + XY8LU0LXqcku7DYrzCYJ0+YpeD1u0ZSz5DmhtD2MClI8HoOqRqBFowiHdzAlSdja2qRGabydGEf3zU48 + evgAoWCAhmiC5R5KaWbRqKpxU3hnh4pxzM/NoutGB8bfvEYum8UEPe/dHcBgfx/ez84KhrPcQ16dbW8r + B4qyBS5Ni+LV2Avc6mjHh8UFxOgvrVpWMDczjdud1zE2OiyYOk/eQxYKBb+EgkHQE5FIGGMjw7jWdoWm + zdB96HRxSSwuzKOdaqNDzxEJhwX7y3PIAgF/zO/zgWtbUcRlXW29TLHvQJo0wGScxP3BAbS1XMIUXSZn + 6jx5EywYDJi8Hg8+eb1CwUAAL0dH0HqxCRfOn0MzqaW5iZINccMpxz3ETjNFUbpll+uEBC6P2w3fxgYk + owHPnj4hPYbR8A4bVONndY70fTMU6mX06hgZJLvNBofd/lMOu5jio5hcfM1r9XOb1crrZk3TGPP7fbxB + Ix041tfWYF1f/68443I6ZVVVz9KHx5jL5WSy28XcbrmBAGnVYjmyrKxAiF6h0O/9MTFmusBGnpyLybIw + M7csM0rBCOizWCymj8vL2vLS0gHpK61jZDbT9H6nw8ETs6iqUoMo+wGQ3ukSwrHlrAAAAABJRU5ErkJg + gg== - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK/wAA - Cv8BNGKaggAAAv1JREFUOE9j+P//PwMlGK75yacTDPvvlUusvx4pvuN2PuP++80MN9+sVdt1J7Xg7rv9 - DKuuljEsuVDEsPv2bIbPP97B9cEZZ58tZFh2KXzW1FPWh+ef95+76mpK0YorMYunnDL6ePjRJM4NN2oZ - VlwqY9h/dz7Dj99fMA24+XYvw8YbjWYzT8WkTjoe2tmyz2Vd9U67E8VbLW6Wb3V+ULnd81zNDv8tU4/m - Nx2/v40f5m24SZ9/vmD48P0Jw8EHRfY7bycmb7sVm7jxWkLq6ssxxfNPh/X1HnDeX7PF5mTjlryaxSen - Yhpw7/02htNPuj2nnJT8P+es+uvZZ1R+zTqj8GveOY23s8/I/19y0eD2rLPS/w/cz0u6+mo+phf23C0D - eiHevfsI//81V0PTll3ymLDkouuy5Ze9Euafs9yy9VaGR+dhnv/rroVnHXnYgmnA/vvtDDvuVCi2H5L+ - P/+8Z/HiCwEdc8+5rpx91ill4QWfVcsuhYU2HxD5v+lGjteRRxMwDdhxp5Fhy60qoaYDyv8XnA+vm37a - vW7mGe9V0097pE477b5g6aX4+Ib98v+33KpW3XOvC9OAbTfbGLbebGOp3avzY8bp8M6pJ4OLJ53wWz3x - uE9a3zH36fPOJWbX7NX+s+VmC/u2Wx2YBmy42sWw8Vo3Q8UO82dt+32mTj+Rmt1+wG91237f9N5DYX39 - R6LKKrabv9h1awbDzlvTMQ1Yd7OXYd21fobCjfYXy7a4LejYF59QtzNwVfV2n7SOfXHNtTv8G0o2O1/Y - fmc2w/b7MzENsHI3ZCifmM6Qtc5jX/7qgI01m+NjitYFr6vcFFNQsi6stmJj1KTCzYFbKydmM9h7WWAa - wMDAwAjELOZx2k0eM0z/+8yw+uI+1eS/13Tzf97TLX56zTT7YxWtXwJSA1KLkRKZGRiYmRgYpICmqImq - CiaIaPOXimgLFAFxsYiOQImIskAsUE4VqEYCpBabAQxACTagAjagDSAAchEyBnHYgWpYgRjuBQBD4TbN - MxoArgAAAABJRU5ErkJggg== + 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 - QmCC + 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 - bf5cAAAAAElFTkSuQmCC + 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 - ErGspUwAAAAASUVORK5CYII= + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr/AAAK/wE0YpqCAAACv0lE + QVQ4T32SW08TURSFz5tgYmJCRA3E4IMERYMQCCKJvuuDP0FNNFwk+hM0kPho6ZSGi4DvIAV6nbbSGwyh + nU47xd6vtIj8BwGX+xwtXh58WJ1z9vnW3qtnhhUKeaFiscBKxSIrl0s9e3uVyVqtGtnfr9VI9FtVqWYs + lYq9nON8Pv9TfzY4Q4ChWt37VimXQXvk8zmhYqGASqUMOjuiIUbiG04bkImbGwiy0hqZTBqpZBKp1D+i + WiadBmeogYPUyNOwUrnEcvmcIZfLYnc38bcSCaTTKW4QSZLJz0gkdHCW9iZKxVg2m+lKp1LHejyOeCwG + XY8LU0LXqcku7DYrzCYJ0+YpeD1u0ZSz5DmhtD2MClI8HoOqRqBFowiHdzAlSdja2qRGabydGEf3zU48 + evgAoWCAhmiC5R5KaWbRqKpxU3hnh4pxzM/NoutGB8bfvEYum8UEPe/dHcBgfx/ez84KhrPcQ16dbW8r + B4qyBS5Ni+LV2Avc6mjHh8UFxOgvrVpWMDczjdud1zE2OiyYOk/eQxYKBb+EgkHQE5FIGGMjw7jWdoWm + zdB96HRxSSwuzKOdaqNDzxEJhwX7y3PIAgF/zO/zgWtbUcRlXW29TLHvQJo0wGScxP3BAbS1XMIUXSZn + 6jx5EywYDJi8Hg8+eb1CwUAAL0dH0HqxCRfOn0MzqaW5iZINccMpxz3ETjNFUbpll+uEBC6P2w3fxgYk + owHPnj4hPYbR8A4bVONndY70fTMU6mX06hgZJLvNBofd/lMOu5jio5hcfM1r9XOb1crrZk3TGPP7fbxB + Ix041tfWYF1f/68443I6ZVVVz9KHx5jL5WSy28XcbrmBAGnVYjmyrKxAiF6h0O/9MTFmusBGnpyLybIw + M7csM0rBCOizWCymj8vL2vLS0gHpK61jZDbT9H6nw8ETs6iqUoMo+wGQ3ukSwrHlrAAAAABJRU5ErkJg + gg== - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK8gAA - CvIBPVL3EQAAApRJREFUOE+l0GtIU2EYB/DHC0Ve2lDsIppZ2TQ9UwPJsCAJirDsQ/lhlHT5YFCWXbDm - Xam0vMGm4mVeppApXiDSckynNc2pa5jTbOmWqSEtA6WUwuTpOSeS5PitAz94zvs+7/+9ACLC/1hZbF3Q - A+vrohEGZ+Rh5XqvikqDj4JVpveo7J/OjFpa/gaLS1bO301XihFrFbBMs7XQaoqmRSKseB3AUeh9sWkk - QmeafQyj1hoOL6B3KhNY/Z9y4dGbg02yXiEW6Nw48l4XNmRE8+EWdFiuc3gBPZM5wNJNy6Bm8HBDbs9m - zH/lwcnr2YrFA2JjhyUJ2s1SDi9AO5ED2olcOoUcqgxHGrK07pjd7cV5qPXEgr5go9qcAqrxRHg+dnuN - K0yWw8sJOXR/LIJS/bGGjK5teO/FTs7dLm86SYixbSwNnr1Ppk0U/ICp+VHoMJdAu0UGxQOR9SmaHZje - KeKkaXzoJPuHWkzp8GT0Pnz/OccPmJ57a9dqyvOsNlwNzNYeVce37Uapyo9zRyXCDE3omNIQG1g3JPWd - //HFhvcGzcMPLqaqw5cTVGF4szUI4576r3KjRYyJqgMobQvF5uEsMS/g84JFUK1PSoiu3Y4xjQF4qZFZ - JYb+z9ftwnT1ybK5XzP2vIDBdzrQjjeDwpAUH1UlQokyACXVzB9KBqOUfpjReaaksi8ZWjRN/DcA+ty2 - COFCrARS6y/HRZYHYkQRgxGFDJ5QiPFKzalCybXjsMldyLbyA+wAbGjcnjg4OzjZ7pMwqYfygzBcFowh - 5/aUCgQb2TlHsp7t5V2BBu2IK/GjpGBq9HXxEJx29RaepdqfxvbSHEO82N61AoAm7MkG4mRLaCGVYEu1 - IxXOxIGs+/cEvwG4WS+MPfOKlQAAAABJRU5ErkJggg== + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAryAAAK8gE9UvcRAAAChklE + QVQ4T6XOaUjTcRjA8ceDIo82FDtEMyubppsaSIYFSVCEHS/KF6Ok44VBWXZgzVuptLxgU/GYxxQyxQMi + Lcd0WtM2dQ1zmi11mRrSMlBKKUyenv0MQ/6+6w8fePgd3/8PEPG/rAyWeT3zbcEI/dOysDK9V3mFwUdu + Var3qOidyohcXPoOC4sWhhMYslQyppkaaDFF0SUBlr8JYOR6X2wcitCZZp7AsKWa4QS0kxlM7+ccePz2 + YKNUy8d8nRsj07pYI0Pqj7eh3XyD4QS6J7IZ3ZQUqvsP1+d0b8a81x5MbvdWLOoTGdvNidA2JmE4Ac14 + NsmhV8ig0nCkPlPjjlldXswjjSfm9wQbVWPJoBxNgBcjd7gB7UQZvBqXQdenQijRH6tP79yG91/uZO51 + etNLQoytI6nw/EMS/UTODUzODUP7WDG0maVQ1HeyLlm9A9M6BEyq2odesn+g2ZQGT4cfwI9fs9zA1Ow7 + uxZTrmeV4VpgluaoKq51N0qUfsxdpQDT1aEjCkNMYO2AxHfu51cbTqBp8OGlFFX4UrwyDG+1BGHsM/9V + bjaLMEF5ACWtodg0mCniBL7Mm3lV+sT4qJrtGN0QgJcbhKtEkwu1uzBNdap09ve0PSfQ/14HmtEmkBsS + 4yIrBShWBKC4SrhMIcRIhR+md5wtruhJgmZ148q9fwN9blv4cDFGDCl1V2JPlgViRKEQIwqEeEIuwqvV + pwvE14/DJnc+O8sJ2AHY0Lo9cXB2cLLdJxamHMoLwnBpMIac31PC42207jmS9dazawXsiCvxo1IwHfR1 + 8eCdcfXmn6PZn9b20p6QeFnPrhWwsicbiJMtWV4CW5odaXAmDmQd+fsChD+4WS+MAxa1eQAAAABJRU5E + rkJggg== - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK8gAA - CvIBPVL3EQAAAo1JREFUOE+lkW1IU1EYx5+lbi0jKk2EDKlMJ5eZEFlRyKBUwg/lB3sBSYllRC218K3A - ptvSSpfMtKRIU0vzSviCuU0xnXozKVNn06lzTklJ+yDCwA+yp7ObDeUaBB34cd7+53cezgFEhP/BdXje - PgqfZ19C3/diMM2/hqlFLbSMx117Z4rK+PbjBb/blgXvx2XQbcsHx5pLNxSYf9LQO3M/rvzrMXtZ/2FH - m0WWzszk/Jugf/Y5dE7J4572Uajp9SZ4YUmfCBtHE+S6iaS/V7BgH4OBuUrQjafFF30KwYIeX1QzfiwF - jC8RUVhtjM1hph+vezPXZMFu3tw2qZKqmYOY1+WHD7v91/GArOX3UNgwmqR0OFZ4fx7eJWi1qC7n94Sh - /MNuVHTuRVXnflSu8nu8D7M79qDKIEL9hCKEI5he/CJsMt8JrRxMiFR/lBiy2gOILIjlXvsBzO06ZK0Y - uBRJm26GLy7PenAEc0tD0G5VQ6tFA4XM2ZrUlgDM0AWzpGuDUNFxfLBhJBv0ljxYXllyVe4aGKxVoDUX - g36sFPI6ztA3GgIxqYlikTUG413dCSNtVABtzAHGVssVaCefQfNYCTSbSiFbH0NLa0V4tU7McoWm8HZT - uPFNvwqqh5TwdkTJFUgzz0EBnQlaSwWk1sfQsWUivPhKzHK+nMLEGiIYegS5dclwJELMFQBpAgEf0tTX - IaX+Ql2URoTRxWKW00UUxledHE59kgjCLQJnlCtwA+DxANw3Ac/jVObRWklRKEoKV9GEYoQqbJjv5i4g - GYEzy/kFsuhG8CKBQOFWvsQnZGeyN7XdSYqPeMetbbs8o8leMMn4O7MbCYBsuBOEJOhBqiTdOpwXeBL4 - ayv4Ba5+NdG8cgGAAAAAAElFTkSuQmCC + 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 - MV5njhcGgLEAAAAASUVORK5CYII= + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAArpAAAK6QH9dc7TAAABnElE + QVQ4T6XSS0sCYRQG4BEXERG46UI3yCRNnZmw/AGZFUagJO2rZSFEJi6MFtFNhAxBBSlokW7NQIlIKLvJ + FyJtBKEoqKCCfsPpO2pD1repFs9wfM87x81wAPAvzBDt3QxYdvOibzcv+KI3pjFWBzFDtJPrfQyTRgiT + BtjOia+sDmKGKER0xa2rJkB0vmd1EDNEgWxvwXfRCiiQFe9YHSQNQWLqC5FhW5AMWUPXFqv/yvi0lukA + tHnZ/xImo9YgGaZGbOHrEWPVAe+5oXk100PL+goeVk41sHyiKsEZs8/9akYL62f6FunAUlrftZhWw0+a + L6p3nuNulXTAc2Rsc6Z0MJ/USpypalW7pA7ch2K7dADNHRjsjoTgohbQbJx/m4nrAdH53bFPc5TgXbQ7 + ESU7pfekA99NxYTCZIyHMuGW1UHMENkjQnE8wkOZ8PvvwOwXHwb9PCCzX3hmdRAn50oUVCeloXgZx6m1 + U8oNg7sni3TTSi9muKt0sKsoHcAH/SGnaqhaqo6qp3dl0r8AJ8OsssMOduXSgb8D7gMxXmeO6KXG2gAA + AABJRU5ErkJggg== - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK/wAA - Cv8BNGKaggAAAsJJREFUOE99kktPE1EUx+9OMDExIaIGYnAhQdEgBIJIontd+BHURMNDoh9BA4lLS6c0 - PATdgxToc9pKXzCEdjrttPb9hCLyHQT8e+6FYnTh4j/33nN//3POnBlWLBYYV6lUZOVSiVUq5Z6dnepk - rbYb2dur1Uj03FUpZiyXS72c43yhcCJxOE1wjgDD7u7Oz2qlAgJRKOSFSsUiqtUK6O6QihiJbzhLQCZe - vYEgK+2RzWaQTqWQTv8jimUzGXCGEjhIjbwbVq6UWb6QN+TzOSSTib+VSCCTSXOD6CSV+oZEQgdn6Wyi - rhjL5bJdmXT6SI/HEY/FoOtxYUroOiVLwm6zwmySMG2egtfjRpKScpY8x9RtD6OAFI/HoKoRaNEowuFt - TEkSNjc3KFEG7yfG0X27E08eP0IoGKAimmC5hzo2s2hU1bgpvL1NwTjm52bRdasD4+/eIp/LYYLWB/cH - MNjfh4+zs4LhLPeQV2dbW8q+omyCS9OieDP2Cnc62vH50wJi9EorlmXMzUzjbudNjI0OC6bOk/eAhULB - 76FgELQiEgljbGQYN9quUbUZmodOg0vh08I82ik2OvQSkXBYsKeeAxYI+GN+nw9cW4oihnW99Sq1fQ/S - pAEm4yQeDg6greUKpmiYnKnz5E2wYDBg8no8+Or1CgUDAbweHUHr5SZcungBzaSW5ibqbAhkOOO4h9hp - pihKt+xyHZPA5XG74Vtfh2Q04MXzZ6SnMBo+YJ1i/K7O0fprIxTqZfTpGBkku80Gh91+IoddVPLRa3Hx - PY/V721WK4+bNU1jzO/38QSNdOlYW12FdW3tv+KMy+mUVVU9Tz8eYy6Xk8luF3O75QYySysWy6FleRlC - 9AmF/pyPiDHTEBt551xMloWZuWWZUReMgD6LxWL6srSkLS0u7pN+0D5GicxUvd/pcPCOWVRVRYLfkN7p - ErGspUwAAAAASUVORK5CYII= + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAr/AAAK/wE0YpqCAAACv0lE + QVQ4T32SW08TURSFz5tgYmJCRA3E4IMERYMQCCKJvuuDP0FNNFwk+hM0kPho6ZSGi4DvIAV6nbbSGwyh + nU47xd6vtIj8BwGX+xwtXh58WJ1z9vnW3qtnhhUKeaFiscBKxSIrl0s9e3uVyVqtGtnfr9VI9FtVqWYs + lYq9nON8Pv9TfzY4Q4ChWt37VimXQXvk8zmhYqGASqUMOjuiIUbiG04bkImbGwiy0hqZTBqpZBKp1D+i + WiadBmeogYPUyNOwUrnEcvmcIZfLYnc38bcSCaTTKW4QSZLJz0gkdHCW9iZKxVg2m+lKp1LHejyOeCwG + XY8LU0LXqcku7DYrzCYJ0+YpeD1u0ZSz5DmhtD2MClI8HoOqRqBFowiHdzAlSdja2qRGabydGEf3zU48 + evgAoWCAhmiC5R5KaWbRqKpxU3hnh4pxzM/NoutGB8bfvEYum8UEPe/dHcBgfx/ez84KhrPcQ16dbW8r + B4qyBS5Ni+LV2Avc6mjHh8UFxOgvrVpWMDczjdud1zE2OiyYOk/eQxYKBb+EgkHQE5FIGGMjw7jWdoWm + zdB96HRxSSwuzKOdaqNDzxEJhwX7y3PIAgF/zO/zgWtbUcRlXW29TLHvQJo0wGScxP3BAbS1XMIUXSZn + 6jx5EywYDJi8Hg8+eb1CwUAAL0dH0HqxCRfOn0MzqaW5iZINccMpxz3ETjNFUbpll+uEBC6P2w3fxgYk + owHPnj4hPYbR8A4bVONndY70fTMU6mX06hgZJLvNBofd/lMOu5jio5hcfM1r9XOb1crrZk3TGPP7fbxB + Ix041tfWYF1f/68443I6ZVVVz9KHx5jL5WSy28XcbrmBAGnVYjmyrKxAiF6h0O/9MTFmusBGnpyLybIw + M7csM0rBCOizWCymj8vL2vLS0gHpK61jZDbT9H6nw8ETs6iqUoMo+wGQ3ukSwrHlrAAAAABJRU5ErkJg + gg== - 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 + rkJggg== - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK8gAA - CvIBPVL3EQAAAo1JREFUOE+lkW1IU1EYx5+lbi0jKk2EDKlMJ5eZEFlRyKBUwg/lB3sBSYllRC218K3A - ptvSSpfMtKRIU0vzSviCuU0xnXozKVNn06lzTklJ+yDCwA+yp7ObDeUaBB34cd7+53cezgFEhP/BdXje - PgqfZ19C3/diMM2/hqlFLbSMx117Z4rK+PbjBb/blgXvx2XQbcsHx5pLNxSYf9LQO3M/rvzrMXtZ/2FH - m0WWzszk/Jugf/Y5dE7J4572Uajp9SZ4YUmfCBtHE+S6iaS/V7BgH4OBuUrQjafFF30KwYIeX1QzfiwF - jC8RUVhtjM1hph+vezPXZMFu3tw2qZKqmYOY1+WHD7v91/GArOX3UNgwmqR0OFZ4fx7eJWi1qC7n94Sh - /MNuVHTuRVXnflSu8nu8D7M79qDKIEL9hCKEI5he/CJsMt8JrRxMiFR/lBiy2gOILIjlXvsBzO06ZK0Y - uBRJm26GLy7PenAEc0tD0G5VQ6tFA4XM2ZrUlgDM0AWzpGuDUNFxfLBhJBv0ljxYXllyVe4aGKxVoDUX - g36sFPI6ztA3GgIxqYlikTUG413dCSNtVABtzAHGVssVaCefQfNYCTSbSiFbH0NLa0V4tU7McoWm8HZT - uPFNvwqqh5TwdkTJFUgzz0EBnQlaSwWk1sfQsWUivPhKzHK+nMLEGiIYegS5dclwJELMFQBpAgEf0tTX - IaX+Ql2URoTRxWKW00UUxledHE59kgjCLQJnlCtwA+DxANw3Ac/jVObRWklRKEoKV9GEYoQqbJjv5i4g - GYEzy/kFsuhG8CKBQOFWvsQnZGeyN7XdSYqPeMetbbs8o8leMMn4O7MbCYBsuBOEJOhBqiTdOpwXeBL4 - ayv4Ba5+NdG8cgGAAAAAAElFTkSuQmCC + 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 - MV5njhcGgLEAAAAASUVORK5CYII= + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAArpAAAK6QH9dc7TAAABnElE + QVQ4T6XSS0sCYRQG4BEXERG46UI3yCRNnZmw/AGZFUagJO2rZSFEJi6MFtFNhAxBBSlokW7NQIlIKLvJ + FyJtBKEoqKCCfsPpO2pD1repFs9wfM87x81wAPAvzBDt3QxYdvOibzcv+KI3pjFWBzFDtJPrfQyTRgiT + BtjOia+sDmKGKER0xa2rJkB0vmd1EDNEgWxvwXfRCiiQFe9YHSQNQWLqC5FhW5AMWUPXFqv/yvi0lukA + tHnZ/xImo9YgGaZGbOHrEWPVAe+5oXk100PL+goeVk41sHyiKsEZs8/9akYL62f6FunAUlrftZhWw0+a + L6p3nuNulXTAc2Rsc6Z0MJ/USpypalW7pA7ch2K7dADNHRjsjoTgohbQbJx/m4nrAdH53bFPc5TgXbQ7 + ESU7pfekA99NxYTCZIyHMuGW1UHMENkjQnE8wkOZ8PvvwOwXHwb9PCCzX3hmdRAn50oUVCeloXgZx6m1 + U8oNg7sni3TTSi9muKt0sKsoHcAH/SGnaqhaqo6qp3dl0r8AJ8OsssMOduXSgb8D7gMxXmeO6KXG2gAA + AABJRU5ErkJggg== - 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 - bf5cAAAAAElFTkSuQmCC + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAryAAAK8gE9UvcRAAACf0lE + QVQ4T6WPW0jTURzHf6lvtcQwc+aFRTm6ECYRJpbSQ/rgQ/gQhkYICgVq6sMisBCEIoUyCwokwpcoSYjw + IcIuoJWWOufcppvOXTDnnFu6Tf3f9u38TbeR9VIHPufy4/f9nHMIwH+xPkkB+1+wEUJemu9pVusvqzQL + 3XVKb+9tWh7uJP/Y8yhB0PlHQryHAub+pNHKTIOxIgH26+pv7q6rhwPjXRQ0dUcEIf7HVoQAW7/Hantf + vB2sLcBkhQIz1YkYr9rrczytyXW9bo4IILh+w00QvSSaS1sXjVdgs07AfLcSulIFBksS8KVMXT9cnRsl + WLVEMUXg50i0aap4Qx5ESyF4UxHcczoMtN3Ap0vHTEGHNjkkLEYJOEcE0UfSbFs+N5bNCdZycCMHIEyc + g+CshVn/zDc7qT0kBF20tuSMEkj+X0CkkH8whdMdtwrWi+C0avCGQgj2GojzjUDwwwVhbZn44AJJq94o + QdBEWLFQaHlIwetP9wnT58FeAF6fD8FSBmGmHNJSNzNwrF8GtLriiQgkj4mkRQvx9r5iztTEbj0BbjSb + Pb0EnC4LovPaS3b9eq/H7aCmmxpKS1VGBFhxkehjf3IONPGWj+Cn2sEbi7H2eQckwykd4Enw+33U2nKL + lMl7aHOEBU8etdOUcZTevep8E7S8B3yzwFI/YCtyB9w9B++03CNVRtpGjCh2g7AgJiaGGjUN2xvq6+Y6 + Ox7Cax1yj3wdeNDR8Xhf1tEj6yF5bAa3COTzrvideWfPFEzn5uTcT09NPclqSoaKoWbNmYz9DBUjjZHI + iAsL5INcjNtGu1lAIYdjiNJZLWMDeS8HUxhJjHhGbFjw74B+AsJFYFrRskcjAAAAAElFTkSuQmCC - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK6QAA - CukB/XXO0wAAAZlJREFUOE9j+P//PwMlGKfmJRcdPRec1+9ecF6ve+lFJx9cluA0YO5Zg8fTT4n9n35K - 9P+cs/ovSTZg2intmxOOi/8HYSD7PskGTDphcK37qPR/EJ50Qv8uQQOmnnIynnbKLWDqKVf/aac9/fuP - mz5pOyT3H4T7jpm8mH7Ky3/qKTcgdg+YftrdFGYgOAw6jxhJtB7SBCrWgWLd/y0HNf43HVABYxC77ZAu - XL71kNb/9sM6UiC9YAPq9uoo1+xV/4+JNYBiMIwqX71HTQVuQPUuU5nibdr/i7ZqwXHxNq3/yBhFbqv2 - //Id+rJwA0CMgk1Gwbkb9UqBuASEs9frvspar/MfhIHst7kbgOIgvFG3FKg2dOmpuWDX40wHicv0riUs - 0/0PwXp3CMYCuoLgWXo3g2bp/odgPdLTgUu//gPnft3/IOzSr/cUpwuYGRgYgFgAiBWBWAOIdRkZGNS1 - EpU6jMo1T4CwdpJSJ0gMJAdVA1IrAA8DIIcZiNmBmBOIuYGYF2guIyKxMDCCxKByIDUgtcx4A5HYLA4A - MV5njhcGgLEAAAAASUVORK5CYII= + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAArpAAAK6QH9dc7TAAABnElE + QVQ4T6XSS0sCYRQG4BEXERG46UI3yCRNnZmw/AGZFUagJO2rZSFEJi6MFtFNhAxBBSlokW7NQIlIKLvJ + FyJtBKEoqKCCfsPpO2pD1repFs9wfM87x81wAPAvzBDt3QxYdvOibzcv+KI3pjFWBzFDtJPrfQyTRgiT + BtjOia+sDmKGKER0xa2rJkB0vmd1EDNEgWxvwXfRCiiQFe9YHSQNQWLqC5FhW5AMWUPXFqv/yvi0lukA + tHnZ/xImo9YgGaZGbOHrEWPVAe+5oXk100PL+goeVk41sHyiKsEZs8/9akYL62f6FunAUlrftZhWw0+a + L6p3nuNulXTAc2Rsc6Z0MJ/USpypalW7pA7ch2K7dADNHRjsjoTgohbQbJx/m4nrAdH53bFPc5TgXbQ7 + ESU7pfekA99NxYTCZIyHMuGW1UHMENkjQnE8wkOZ8PvvwOwXHwb9PCCzX3hmdRAn50oUVCeloXgZx6m1 + U8oNg7sni3TTSi9muKt0sKsoHcAH/SGnaqhaqo6qp3dl0r8AJ8OsssMOduXSgb8D7gMxXmeO6KXG2gAA + AABJRU5ErkJggg== - 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 - bf5cAAAAAElFTkSuQmCC + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAryAAAK8gE9UvcRAAACf0lE + QVQ4T6WPW0jTURzHf6lvtcQwc+aFRTm6ECYRJpbSQ/rgQ/gQhkYICgVq6sMisBCEIoUyCwokwpcoSYjw + IcIuoJWWOufcppvOXTDnnFu6Tf3f9u38TbeR9VIHPufy4/f9nHMIwH+xPkkB+1+wEUJemu9pVusvqzQL + 3XVKb+9tWh7uJP/Y8yhB0PlHQryHAub+pNHKTIOxIgH26+pv7q6rhwPjXRQ0dUcEIf7HVoQAW7/Hantf + vB2sLcBkhQIz1YkYr9rrczytyXW9bo4IILh+w00QvSSaS1sXjVdgs07AfLcSulIFBksS8KVMXT9cnRsl + WLVEMUXg50i0aap4Qx5ESyF4UxHcczoMtN3Ap0vHTEGHNjkkLEYJOEcE0UfSbFs+N5bNCdZycCMHIEyc + g+CshVn/zDc7qT0kBF20tuSMEkj+X0CkkH8whdMdtwrWi+C0avCGQgj2GojzjUDwwwVhbZn44AJJq94o + QdBEWLFQaHlIwetP9wnT58FeAF6fD8FSBmGmHNJSNzNwrF8GtLriiQgkj4mkRQvx9r5iztTEbj0BbjSb + Pb0EnC4LovPaS3b9eq/H7aCmmxpKS1VGBFhxkehjf3IONPGWj+Cn2sEbi7H2eQckwykd4Enw+33U2nKL + lMl7aHOEBU8etdOUcZTevep8E7S8B3yzwFI/YCtyB9w9B++03CNVRtpGjCh2g7AgJiaGGjUN2xvq6+Y6 + Ox7Cax1yj3wdeNDR8Xhf1tEj6yF5bAa3COTzrvideWfPFEzn5uTcT09NPclqSoaKoWbNmYz9DBUjjZHI + iAsL5INcjNtGu1lAIYdjiNJZLWMDeS8HUxhJjHhGbFjw74B+AsJFYFrRskcjAAAAAElFTkSuQmCC - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK6QAA - CukB/XXO0wAAAZlJREFUOE9j+P//PwMlGKfmJRcdPRec1+9ecF6ve+lFJx9cluA0YO5Zg8fTT4n9n35K - 9P+cs/ovSTZg2intmxOOi/8HYSD7PskGTDphcK37qPR/EJ50Qv8uQQOmnnIynnbKLWDqKVf/aac9/fuP - mz5pOyT3H4T7jpm8mH7Ky3/qKTcgdg+YftrdFGYgOAw6jxhJtB7SBCrWgWLd/y0HNf43HVABYxC77ZAu - XL71kNb/9sM6UiC9YAPq9uoo1+xV/4+JNYBiMIwqX71HTQVuQPUuU5nibdr/i7ZqwXHxNq3/yBhFbqv2 - //Id+rJwA0CMgk1Gwbkb9UqBuASEs9frvspar/MfhIHst7kbgOIgvFG3FKg2dOmpuWDX40wHicv0riUs - 0/0PwXp3CMYCuoLgWXo3g2bp/odgPdLTgUu//gPnft3/IOzSr/cUpwuYGRgYgFgAiBWBWAOIdRkZGNS1 - EpU6jMo1T4CwdpJSJ0gMJAdVA1IrAA8DIIcZiNmBmBOIuYGYF2guIyKxMDCCxKByIDUgtcx4A5HYLA4A - MV5njhcGgLEAAAAASUVORK5CYII= + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAArpAAAK6QH9dc7TAAABnElE + QVQ4T6XSS0sCYRQG4BEXERG46UI3yCRNnZmw/AGZFUagJO2rZSFEJi6MFtFNhAxBBSlokW7NQIlIKLvJ + FyJtBKEoqKCCfsPpO2pD1repFs9wfM87x81wAPAvzBDt3QxYdvOibzcv+KI3pjFWBzFDtJPrfQyTRgiT + BtjOia+sDmKGKER0xa2rJkB0vmd1EDNEgWxvwXfRCiiQFe9YHSQNQWLqC5FhW5AMWUPXFqv/yvi0lukA + tHnZ/xImo9YgGaZGbOHrEWPVAe+5oXk100PL+goeVk41sHyiKsEZs8/9akYL62f6FunAUlrftZhWw0+a + L6p3nuNulXTAc2Rsc6Z0MJ/USpypalW7pA7ch2K7dADNHRjsjoTgohbQbJx/m4nrAdH53bFPc5TgXbQ7 + ESU7pfekA99NxYTCZIyHMuGW1UHMENkjQnE8wkOZ8PvvwOwXHwb9PCCzX3hmdRAn50oUVCeloXgZx6m1 + U8oNg7sni3TTSi9muKt0sKsoHcAH/SGnaqhaqo6qp3dl0r8AJ8OsssMOduXSgb8D7gMxXmeO6KXG2gAA + AABJRU5ErkJggg== @@ -1346,20 +1331,20 @@ - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK6QAA - CukB/XXO0wAAAZxJREFUOE9j+P//PwMlGKdm4a6zeoJdZ5IEu8+kC3WdtcVlCYYB0tPvsfK1n17F0Xzi - P0vDsf8s9Uf/szcd/8/TfvqsSNd5KXSDMAzgaTwyh6X64H+Gsr3/GSv23WSs2H+IoXzvf6bKA/+5Go4c - STyD6mUUA4SqdguwF2//z5y3+T9r/patMNtYC7b2Mudt+c9WtO0/X8UuFFegGCBYuJmHLX3VM7a0lf85 - 01bowAxgT1s5Cyj+Hyj+jyt7rTCyNzC8wBUzV4QrYaEmTBFH7LxWjrgF/zni5v/njJs/mWAYICvgCp0y - mSts2n/u0Cn/ucKmLscWEzijkc+3W5vXt+c/r2/3f16/7tlERyNMIZ9zQyC/S8N/EJa0KGAn2QBB53o+ - IbvKtYJ2lRX4UipOL4jqZ8iKGmbtEjHIWi5ikMlDsgtE9TOLRPXS/ovqpf8XN8xxJMoAZgYGYSBWZmJg - UOUS0fUS1oy9IawRdZKNW8IUKK4BxCpALAbEcJejeAEowQ7EfEAsBFTDC8QcQMwOxAIgMSDmB2IOnAaQ - k60BK0Rr5wDzb+4AAAAASUVORK5CYII= + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAArpAAAK6QH9dc7TAAABrElE + QVQ4T6XOyS8DYRjH8dFtxminpjNjjROSCrocJC4kwklSiQMH0QaHlhKqEloOLSKSlpMtsTvRJk62hNSW + 2qKNKxdHf4bH+x5GTPs6iMMnmefbXydDAcC/ECMmRNIWPpLq46MpjymSbiBtsKxQuvau5eaf48zsI2jC + 96AJ3QE98wD6+ee0GHkpydwrDkw/ndzUTN0ANZ6AnMDlW07g6paaSIAqeA1sOJnsTSn3isM0eZFPj52B + evgItCPHJ3LX+k4W1cPHoPOfAhc4V3zF9wPGjx7pdZ74h84dg1z3QY3caXdsHXVA/ZMdPBR+/uf7QcZ2 + b4lsz16VfDPO7TnGtQuMawdyXTtLP7eY4sjEdiwvsZ2rkNexDGznyj5pkxVknCNabXAsgMERBUNbdIO0 + wYgR45rD7caWMGDF9T6atMGIEeObQ5ypMXjINwYDpN9lxIhJ1v4yye49F23efdE2oCdtMGLEJOuAX7K4 + QbJ4oNA+1ETaYIpDTVECUq6iqEpWrG0VqpyvgrnrSZdXVIe6GalACpBfX0AjHGJCGwPCIDSSjxtiRBiE + /IK/A+oLK0Rr5wubW8gAAAAASUVORK5CYII= - 53 + 25 diff --git a/Ember Media Manager/dlgSettings.vb b/Ember Media Manager/dlgSettings.vb index c3682a9..806d1a0 100644 --- a/Ember Media Manager/dlgSettings.vb +++ b/Ember Media Manager/dlgSettings.vb @@ -243,7 +243,8 @@ Public Class dlgSettings Me.SettingsPanels.Add(tPanel) ModuleCounter += 1 AddHandler s.ProcessorModule.ScraperSetupChanged, AddressOf Handle_ModuleSetupChanged - AddHandler s.ProcessorModule.ModuleSettingsChanged, AddressOf Handle_ModuleSettingsChanged + AddHandler s.ProcessorModule.ModuleSettingsChanged, AddressOf Handle_ModuleSettingsChanged + AddHandler s.ProcessorModule.SetupNeedsRestart, AddressOf Handle_SetupNeedsRestart Me.AddHelpHandlers(tPanel.Panel, tPanel.Prefix) Next ModuleCounter = 1 @@ -254,7 +255,8 @@ Public Class dlgSettings ModuleCounter += 1 AddHandler s.ProcessorModule.PostScraperSetupChanged, AddressOf Handle_ModuleSetupChanged AddHandler s.ProcessorModule.ModuleSettingsChanged, AddressOf Handle_ModuleSettingsChanged - Me.AddHelpHandlers(tPanel.Panel, tPanel.Prefix) + AddHandler s.ProcessorModule.SetupNeedsRestart, AddressOf Handle_SetupNeedsRestart + Me.AddHelpHandlers(tPanel.Panel, tPanel.Prefix) Next ModuleCounter = 1 For Each s As ModulesManager._externalTVScraperModuleClass In ModulesManager.Instance.externalTVScrapersModules.Where(Function(y) y.ProcessorModule.IsScraper).OrderBy(Function(x) x.ScraperOrder) @@ -264,7 +266,7 @@ Public Class dlgSettings ModuleCounter += 1 AddHandler s.ProcessorModule.SetupScraperChanged, AddressOf Handle_ModuleSetupChanged AddHandler s.ProcessorModule.ModuleSettingsChanged, AddressOf Handle_ModuleSettingsChanged - Me.AddHelpHandlers(tPanel.Panel, tPanel.Prefix) + Me.AddHelpHandlers(tPanel.Panel, tPanel.Prefix) Next ModuleCounter = 1 For Each s As ModulesManager._externalTVScraperModuleClass In ModulesManager.Instance.externalTVScrapersModules.Where(Function(y) y.ProcessorModule.IsPostScraper).OrderBy(Function(x) x.PostScraperOrder) @@ -298,33 +300,40 @@ Public Class dlgSettings For Each s As ModulesManager._externalScraperModuleClass In ModulesManager.Instance.externalScrapersModules.Where(Function(y) y.ProcessorModule.IsScraper).OrderBy(Function(x) x.ScraperOrder) RemoveHandler s.ProcessorModule.ScraperSetupChanged, AddressOf Handle_ModuleSetupChanged RemoveHandler s.ProcessorModule.ModuleSettingsChanged, AddressOf Handle_ModuleSettingsChanged - Next - For Each s As ModulesManager._externalScraperModuleClass In ModulesManager.Instance.externalScrapersModules.Where(Function(y) y.ProcessorModule.IsPostScraper).OrderBy(Function(x) x.PostScraperOrder) - RemoveHandler s.ProcessorModule.PostScraperSetupChanged, AddressOf Handle_ModuleSetupChanged - RemoveHandler s.ProcessorModule.ModuleSettingsChanged, AddressOf Handle_ModuleSettingsChanged - Next - For Each s As ModulesManager._externalTVScraperModuleClass In ModulesManager.Instance.externalTVScrapersModules.Where(Function(y) y.ProcessorModule.IsPostScraper).OrderBy(Function(x) x.ScraperOrder) - RemoveHandler s.ProcessorModule.ModuleSettingsChanged, AddressOf Handle_ModuleSettingsChanged - Next - For Each s As ModulesManager._externalTVScraperModuleClass In ModulesManager.Instance.externalTVScrapersModules.Where(Function(y) y.ProcessorModule.IsPostScraper).OrderBy(Function(x) x.PostScraperOrder) - RemoveHandler s.ProcessorModule.ModuleSettingsChanged, AddressOf Handle_ModuleSettingsChanged - Next - For Each s As ModulesManager._externalGenericModuleClass In ModulesManager.Instance.externalProcessorModules - RemoveHandler s.ProcessorModule.ModuleSetupChanged, AddressOf Handle_ModuleSetupChanged - RemoveHandler s.ProcessorModule.ModuleSettingsChanged, AddressOf Handle_ModuleSettingsChanged - Next - End Sub - - Private Sub btnAddEpFilter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAddEpFilter.Click - If Not String.IsNullOrEmpty(Me.txtEpFilter.Text) Then - Me.lstEpFilters.Items.Add(Me.txtEpFilter.Text) - Me.txtEpFilter.Text = String.Empty - Me.SetApplyButton(True) - Me.sResult.NeedsUpdate = True - End If - - Me.txtEpFilter.Focus() - End Sub + RemoveHandler s.ProcessorModule.SetupNeedsRestart, AddressOf Handle_SetupNeedsRestart + Next + For Each s As ModulesManager._externalScraperModuleClass In ModulesManager.Instance.externalScrapersModules.Where(Function(y) y.ProcessorModule.IsPostScraper).OrderBy(Function(x) x.PostScraperOrder) + RemoveHandler s.ProcessorModule.PostScraperSetupChanged, AddressOf Handle_ModuleSetupChanged + RemoveHandler s.ProcessorModule.ModuleSettingsChanged, AddressOf Handle_ModuleSettingsChanged + RemoveHandler s.ProcessorModule.SetupNeedsRestart, AddressOf Handle_SetupNeedsRestart + Next + For Each s As ModulesManager._externalTVScraperModuleClass In ModulesManager.Instance.externalTVScrapersModules.Where(Function(y) y.ProcessorModule.IsPostScraper).OrderBy(Function(x) x.ScraperOrder) + RemoveHandler s.ProcessorModule.ModuleSettingsChanged, AddressOf Handle_ModuleSettingsChanged + Next + For Each s As ModulesManager._externalTVScraperModuleClass In ModulesManager.Instance.externalTVScrapersModules.Where(Function(y) y.ProcessorModule.IsPostScraper).OrderBy(Function(x) x.PostScraperOrder) + RemoveHandler s.ProcessorModule.ModuleSettingsChanged, AddressOf Handle_ModuleSettingsChanged + Next + For Each s As ModulesManager._externalGenericModuleClass In ModulesManager.Instance.externalProcessorModules + RemoveHandler s.ProcessorModule.ModuleSetupChanged, AddressOf Handle_ModuleSetupChanged + RemoveHandler s.ProcessorModule.ModuleSettingsChanged, AddressOf Handle_ModuleSettingsChanged + Next + End Sub + + Private Sub Handle_SetupNeedsRestart() + Me.sResult.NeedsRestart = True + End Sub + + + Private Sub btnAddEpFilter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAddEpFilter.Click + If Not String.IsNullOrEmpty(Me.txtEpFilter.Text) Then + Me.lstEpFilters.Items.Add(Me.txtEpFilter.Text) + Me.txtEpFilter.Text = String.Empty + Me.SetApplyButton(True) + Me.sResult.NeedsUpdate = True + End If + + Me.txtEpFilter.Focus() + End Sub Private Sub btnAddFilter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAddFilter.Click If Not String.IsNullOrEmpty(Me.txtFilter.Text) Then @@ -861,12 +870,14 @@ Public Class dlgSettings Me.chkMovieNameDotFanartJPG.Checked = False Me.chkMovieNameFanartJPG.Checked = True Me.chkMovieNameJPG.Checked = False - Me.chkMovieNameNFO.Checked = True + Me.chkMovieNameNFO.Checked = False + Me.chkMovieNameNFOStack.Checked = True Me.chkMovieNameTBN.Checked = False Me.chkMovieNFO.Checked = False Me.chkMovieTBN.Checked = False Me.chkPosterJPG.Checked = False Me.chkPosterTBN.Checked = False + Me.chkVideoTSParentXBMC.Checked = True Me.rbDashTrailer.Checked = True End Sub @@ -891,7 +902,7 @@ Public Class dlgSettings Me.chkSeasonXXDashFanartJPG.Checked = True Me.chkSeasonXXDashPosterJPG.Checked = True Me.chkSeasonXXTBN.Checked = False - 'Me.chkShowBannerJPG.Checked = True (banners not implemented at time) + 'Me.chkShowBannerJPG.Checked = True (banners not implemented atm) Me.chkShowDashFanart.Checked = False Me.chkShowDotFanart.Checked = False Me.chkShowFanartJPG.Checked = True @@ -920,6 +931,9 @@ Public Class dlgSettings Private Sub cbIntLang_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbIntLang.SelectedIndexChanged Me.SetApplyButton(True) + If Not Me.cbIntLang.SelectedItem.ToString = Master.eSettings.Language Then + Handle_SetupNeedsRestart() + End If End Sub Private Sub cbLanguages_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbLanguages.SelectedIndexChanged @@ -1013,6 +1027,10 @@ Public Class dlgSettings Me.SetApplyButton(True) End Sub + Private Sub chkVideoTSParentXBMC_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkVideoTSParentXBMC.CheckedChanged + Me.SetApplyButton(True) + End Sub + Private Sub chkAutoETSize_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkAutoETSize.CheckedChanged Me.SetApplyButton(True) Me.cbAutoETSize.Enabled = Me.chkAutoETSize.Checked @@ -1058,8 +1076,11 @@ Public Class dlgSettings Me.chkUseCertForMPAA.Enabled = Me.chkCert.Checked If Not Me.chkCert.Checked Then Me.chkUseCertForMPAA.Checked = False + Me.chkOnlyValueForCert.Checked = False Me.chkOnlyValueForCert.Enabled = False + Me.chkUseMPAAFSK.Checked = False + Me.chkUseMPAAFSK.Enabled = False End If Me.SetApplyButton(True) End Sub @@ -1226,6 +1247,10 @@ Public Class dlgSettings Me.SetApplyButton(True) End Sub + Private Sub chkEpisodeWatchedCol_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkEpisodeWatchedCol.CheckedChanged + Me.SetApplyButton(True) + End Sub + Private Sub chkEpisodePosterCol_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkEpisodePosterCol.CheckedChanged Me.SetApplyButton(True) End Sub @@ -1431,6 +1456,10 @@ Public Class dlgSettings Me.SetApplyButton(True) End Sub + Private Sub chkMovieNameNFOStack_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkMovieNameNFOStack.CheckedChanged + Me.SetApplyButton(True) + End Sub + Private Sub chkMovieNameTBN_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkMovieNameTBN.CheckedChanged Me.SetApplyButton(True) End Sub @@ -1455,6 +1484,10 @@ Public Class dlgSettings Me.SetApplyButton(True) End Sub + Private Sub chkMovieWatchedCol_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkMovieWatchedCol.CheckedChanged + Me.SetApplyButton(True) + End Sub + Private Sub chkMPAA_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkMPAA.CheckedChanged Me.SetApplyButton(True) @@ -1529,6 +1562,10 @@ Public Class dlgSettings Me.SetApplyButton(True) End Sub + Private Sub chkUseMPAAFSK_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkUseMPAAFSK.CheckedChanged + Me.SetApplyButton(True) + End Sub + Private Sub chkOutlineForPlot_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkOutlineForPlot.CheckedChanged Me.SetApplyButton(True) End Sub @@ -1559,7 +1596,11 @@ Public Class dlgSettings Private Sub chkOverwriteNfo_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkOverwriteNfo.CheckedChanged Me.SetApplyButton(True) End Sub - + 'cocotus 20130303 Special DateAddvalue + Private Sub chkSpecialDateAdd_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkSpecialDateAdd.CheckedChanged + Me.SetApplyButton(True) + End Sub + 'cocotus end Private Sub chkOverwritePoster_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkOverwritePoster.CheckedChanged Me.SetApplyButton(True) End Sub @@ -1705,6 +1746,10 @@ Public Class dlgSettings Me.SetApplyButton(True) End Sub + Private Sub chkScraperActorThumbs_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkScraperActorThumbs.CheckedChanged + Me.SetApplyButton(True) + End Sub + Private Sub chkScraperEpActors_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkScraperEpActors.CheckedChanged Me.SetApplyButton(True) End Sub @@ -2032,8 +2077,10 @@ Public Class dlgSettings Me.SetApplyButton(True) Me.chkOnlyValueForCert.Enabled = Me.chkUseCertForMPAA.Checked + Me.chkUseMPAAFSK.Enabled = Me.chkUseCertForMPAA.Checked If Not Me.chkUseCertForMPAA.Checked Then Me.chkOnlyValueForCert.Checked = False + If Not Me.chkUseCertForMPAA.Checked Then Me.chkUseMPAAFSK.Checked = False End Sub Private Sub chkUseETasFA_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkUseETasFA.CheckedChanged @@ -2192,6 +2239,9 @@ Public Class dlgSettings Me.chkWhitelistVideo.Checked = Master.eSettings.CleanWhitelistVideo Me.lstWhitelist.Items.AddRange(Master.eSettings.CleanWhitelistExts.ToArray) Me.chkOverwriteNfo.Checked = Master.eSettings.OverwriteNfo + 'cocotus 20130303 Special DateAddvalue + Me.chkSpecialDateAdd.Checked = Master.eSettings.UseSpecialDateAddvalue + 'cocotus end 'Me.chkYAMJCompatibleSets.Checked = Master.eSettings.YAMJSetsCompatible Me.chkLogErrors.Checked = Master.eSettings.LogErrors Me.lstNoStack.Items.AddRange(Master.eSettings.NoStackExts.ToArray) @@ -2221,6 +2271,7 @@ Public Class dlgSettings Me.chkMovieTrailerCol.Checked = Master.eSettings.MovieTrailerCol Me.chkMovieSubCol.Checked = Master.eSettings.MovieSubCol Me.chkMovieExtraCol.Checked = Master.eSettings.MovieExtraCol + Me.chkMovieWatchedCol.Checked = Master.eSettings.MovieWatchedCol Me.cbPosterSize.SelectedIndex = Master.eSettings.PreferredPosterSize Me.cbFanartSize.SelectedIndex = Master.eSettings.PreferredFanartSize @@ -2277,6 +2328,7 @@ Public Class dlgSettings Me.chkMovieNameDotFanartJPG.Checked = Master.eSettings.MovieNameDotFanartJPG Me.chkMovieNFO.Checked = Master.eSettings.MovieNFO Me.chkMovieNameNFO.Checked = Master.eSettings.MovieNameNFO + Me.chkMovieNameNFOStack.Checked = Master.eSettings.MovieNameNFOStack Me.chkMovieNameMultiOnly.Checked = Master.eSettings.MovieNameMultiOnly Me.rbDashTrailer.Checked = Master.eSettings.DashTrailer Me.rbBracketTrailer.Checked = Not Master.eSettings.DashTrailer @@ -2287,6 +2339,11 @@ Public Class dlgSettings Me.chkLockTagline.Checked = Master.eSettings.LockTagline Me.chkLockRating.Checked = Master.eSettings.LockRating Me.chkLockRealStudio.Checked = Master.eSettings.LockStudio + Me.chkLockLanguageA.Checked = Master.eSettings.LockLanguageA + Me.chkLockLanguageV.Checked = Master.eSettings.LockLanguageV + Me.chkLockSubtitle.Checked = Master.eSettings.LockSubtitle + Me.chkLockMPAA.Checked = Master.eSettings.LockMPAA + Me.chkUseMPAAFSK.Checked = Master.eSettings.UseMPAAForFSK Me.chkLockGenre.Checked = Master.eSettings.LockGenre Me.chkLockTrailer.Checked = Master.eSettings.LockTrailer Me.chkSingleScrapeImages.Checked = Master.eSettings.SingleScrapeImages @@ -2401,6 +2458,7 @@ Public Class dlgSettings Me.txtCheckTitleTol.Text = Master.eSettings.LevTolerance.ToString End If Me.chkAutoDetectVTS.Checked = Master.eSettings.AutoDetectVTS + Me.chkVideoTSParentXBMC.Checked = Master.eSettings.VideoTSParentXBMC Me.cbLanguages.SelectedItem = If(String.IsNullOrEmpty(Master.eSettings.FlagLang), Master.eLang.Disabled, Master.eSettings.FlagLang) Me.cboTVMetaDataOverlay.SelectedItem = If(String.IsNullOrEmpty(Master.eSettings.TVFlagLang), Master.eLang.Disabled, Master.eSettings.TVFlagLang) Me.cbIntLang.SelectedItem = Master.eSettings.Language @@ -2490,6 +2548,7 @@ Public Class dlgSettings Me.chkEpisodePosterCol.Checked = Master.eSettings.EpisodePosterCol Me.chkEpisodeFanartCol.Checked = Master.eSettings.EpisodeFanartCol Me.chkEpisodeNfoCol.Checked = Master.eSettings.EpisodeNfoCol + Me.chkEpisodeWatchedCol.Checked = Master.eSettings.EpisodeWatchedCol Me.chkSourceFromFolder.Checked = Master.eSettings.SourceFromFolder Me.chkSortBeforeScan.Checked = Master.eSettings.SortBeforeScan Me.tLangList.Clear() @@ -2551,7 +2610,7 @@ Public Class dlgSettings Me.chkMarkNewEpisodes.Checked = Master.eSettings.MarkNewEpisodes Me.cbOrdering.SelectedIndex = Master.eSettings.OrderDefault Me.chkOnlyValueForCert.Checked = Master.eSettings.OnlyValueForCert - Me.chkActorCache.Checked = AdvancedSettings.GetBooleanSetting("ScrapeActorsThumbs", False) + Me.chkScraperActorThumbs.Checked = Master.eSettings.ScraperActorThumbs Me.RefreshSources() Me.RefreshTVSources() Me.RefreshShowFilters() @@ -3288,6 +3347,9 @@ Public Class dlgSettings End If Master.eSettings.LogErrors = Me.chkLogErrors.Checked Master.eSettings.OverwriteNfo = Me.chkOverwriteNfo.Checked + 'cocotus 20130303 Special DateAddvalue + Master.eSettings.UseSpecialDateAddvalue = Me.chkSpecialDateAdd.Checked + 'cocotus end Master.eSettings.ValidExts.Clear() Master.eSettings.ValidExts.AddRange(lstMovieExts.Items.OfType(Of String).ToList) Master.eSettings.NoStackExts.Clear() @@ -3301,6 +3363,7 @@ Public Class dlgSettings Else Master.eSettings.UseCertForMPAA = False End If + Master.eSettings.ForceTitle = Me.cbForce.Text Master.eSettings.ScanMediaInfo = Me.chkScanMediaInfo.Checked Master.eSettings.ScanTVMediaInfo = Me.chkTVScanMetaData.Checked @@ -3313,6 +3376,7 @@ Public Class dlgSettings Master.eSettings.MovieTrailerCol = Me.chkMovieTrailerCol.Checked Master.eSettings.MovieSubCol = Me.chkMovieSubCol.Checked Master.eSettings.MovieExtraCol = Me.chkMovieExtraCol.Checked + Master.eSettings.MovieWatchedCol = Me.chkMovieWatchedCol.Checked Master.eSettings.PreferredPosterSize = DirectCast(Me.cbPosterSize.SelectedIndex, Enums.PosterSize) Master.eSettings.PreferredFanartSize = DirectCast(Me.cbFanartSize.SelectedIndex, Enums.FanartSize) @@ -3369,6 +3433,7 @@ Public Class dlgSettings Master.eSettings.MovieNameDotFanartJPG = Me.chkMovieNameDotFanartJPG.Checked Master.eSettings.MovieNFO = Me.chkMovieNFO.Checked Master.eSettings.MovieNameNFO = Me.chkMovieNameNFO.Checked + Master.eSettings.MovieNameNFOStack = Me.chkMovieNameNFOStack.Checked Master.eSettings.MovieNameMultiOnly = Me.chkMovieNameMultiOnly.Checked Master.eSettings.DashTrailer = Me.rbDashTrailer.Checked 'Master.eSettings.VideoTSParent = Me.chkVideoTSParent.Checked @@ -3377,6 +3442,11 @@ Public Class dlgSettings Master.eSettings.LockTitle = Me.chkLockTitle.Checked Master.eSettings.LockTagline = Me.chkLockTagline.Checked Master.eSettings.LockRating = Me.chkLockRating.Checked + Master.eSettings.LockLanguageV = Me.chkLockLanguageV.Checked + Master.eSettings.LockLanguageA = Me.chkLockLanguageA.Checked + Master.eSettings.LockSubtitle = Me.chkLockSubtitle.Checked + Master.eSettings.LockMPAA = Me.chkLockMPAA.Checked + Master.eSettings.UseMPAAForFSK = Me.chkUseMPAAFSK.Checked Master.eSettings.LockStudio = Me.chkLockRealStudio.Checked Master.eSettings.LockGenre = Me.chkLockGenre.Checked Master.eSettings.LockTrailer = Me.chkLockTrailer.Checked @@ -3487,6 +3557,7 @@ Public Class dlgSettings Master.eSettings.LevTolerance = If(Not String.IsNullOrEmpty(Me.txtCheckTitleTol.Text), Convert.ToInt32(Me.txtCheckTitleTol.Text), 0) Master.eSettings.AutoDetectVTS = Me.chkAutoDetectVTS.Checked + Master.eSettings.VideoTSParentXBMC = Me.chkVideoTSParentXBMC.Checked Master.eSettings.FlagLang = If(Me.cbLanguages.Text = Master.eLang.Disabled, String.Empty, Me.cbLanguages.Text) Master.eSettings.TVFlagLang = If(Me.cboTVMetaDataOverlay.Text = Master.eLang.Disabled, String.Empty, Me.cboTVMetaDataOverlay.Text) Master.eSettings.Language = Me.cbIntLang.Text @@ -3590,6 +3661,7 @@ Public Class dlgSettings Master.eSettings.EpisodePosterCol = Me.chkEpisodePosterCol.Checked Master.eSettings.EpisodeFanartCol = Me.chkEpisodeFanartCol.Checked Master.eSettings.EpisodeNfoCol = Me.chkEpisodeNfoCol.Checked + Master.eSettings.EpisodeWatchedCol = Me.chkEpisodeWatchedCol.Checked Master.eSettings.SourceFromFolder = Me.chkSourceFromFolder.Checked Master.eSettings.SortBeforeScan = Me.chkSortBeforeScan.Checked If tLangList.Count > 0 Then @@ -3664,7 +3736,7 @@ Public Class dlgSettings Master.eSettings.MarkNewEpisodes = Me.chkMarkNewEpisodes.Checked Master.eSettings.OrderDefault = DirectCast(Me.cbOrdering.SelectedIndex, Enums.Ordering) Master.eSettings.OnlyValueForCert = Me.chkOnlyValueForCert.Checked - AdvancedSettings.SetBooleanSetting("ScrapeActorsThumbs", Me.chkActorCache.Checked) + Master.eSettings.ScraperActorThumbs = Me.chkScraperActorThumbs.Checked For Each s As ModulesManager._externalScraperModuleClass In ModulesManager.Instance.externalScrapersModules Try If s.ProcessorModule.IsScraper Then s.ProcessorModule.SaveSetupScraper(Not isApply) @@ -3708,6 +3780,9 @@ Public Class dlgSettings Me.chkInfoPanelAnim.Text = Master.eLang.GetString(431, "Enable Panel Animation") Me.chkUpdates.Text = Master.eLang.GetString(432, "Check for Updates") Me.chkOverwriteNfo.Text = Master.eLang.GetString(433, "Overwrite Non-conforming nfos") + 'cocotus 20130303 + Me.chkSpecialDateAdd.Text = Master.eLang.GetString(874, "Use FileCreated information of videofile") + 'cocotus end Me.Label5.Text = Master.eLang.GetString(434, "(If unchecked, non-conforming nfos will be renamed to .info)") Me.chkLogErrors.Text = Master.eLang.GetString(435, "Log Errors to File") Me.Label31.Text = Master.eLang.GetString(436, "Display Overlay if Video Contains an Audio Stream With the Following Language:") @@ -3737,6 +3812,7 @@ Public Class dlgSettings Me.chkMovieExtraCol.Text = Master.eLang.GetString(465, "Hide Extrathumb Column") Me.chkMovieSubCol.Text = Master.eLang.GetString(466, "Hide Sub Column") Me.chkMovieTrailerCol.Text = Master.eLang.GetString(467, "Hide Trailer Column") + Me.chkMovieWatchedCol.Text = Master.eLang.GetString(884, "Hide Watched Column") Me.chkMovieInfoCol.Text = Master.eLang.GetString(468, "Hide Info Column") Me.chkMovieFanartCol.Text = Master.eLang.GetString(469, "Hide Fanart Column") Me.chkMoviePosterCol.Text = Master.eLang.GetString(470, "Hide Poster Column") @@ -3784,7 +3860,11 @@ Public Class dlgSettings Me.GroupBox9.Text = Master.eLang.GetString(497, "Images") Me.chkNoSaveImagesToNfo.Text = Master.eLang.GetString(498, "Do Not Save URLs to Nfo") Me.chkSingleScrapeImages.Text = Master.eLang.GetString(499, "Get on Single Scrape") - + Me.chkLockLanguageV.Text = Master.eLang.GetString(879, "Lock Language (video)") + Me.chkLockLanguageA.Text = Master.eLang.GetString(880, "Lock Language (audio)") + Me.chkLockSubtitle.Text = Master.eLang.GetString(885, "Lock Subtitle") + Me.chkLockMPAA.Text = Master.eLang.GetString(881, "Lock MPAA/Certification") + Me.chkUseMPAAFSK.Text = Master.eLang.GetString(882, "Use MPAA as Fallback for FSK Rating") Me.chkUseETasFA.Text = Master.eLang.GetString(503, "Use if no Fanart Found") Me.chkNoSpoilers.Text = Master.eLang.GetString(505, "No Spoilers") Me.Label15.Text = Master.eLang.GetString(506, "Number To Create:") @@ -3826,6 +3906,7 @@ Public Class dlgSettings Me.GroupBox19.Text = Master.eLang.GetString(536, "Miscellaneous Options") Me.gbMiscTVSourceOpts.Text = Master.eLang.GetString(536, "Miscellaneous Options") Me.chkAutoDetectVTS.Text = Master.eLang.GetString(537, "Automatically Detect VIDEO_TS Folders Even if They Are Not Named ""VIDEO_TS""") + Me.chkVideoTSParentXBMC.Text = Master.eLang.GetString(474, "Frodo Compatible VIDEO_TS File Placement/Naming") Me.chkSkipStackedSizeCheck.Text = Master.eLang.GetString(538, "Skip Size Check of Stacked Files") Me.Label21.Text = Master.eLang.GetString(539, "MB") Me.Label20.Text = Master.eLang.GetString(540, "Skip files smaller than:") @@ -3937,6 +4018,7 @@ Public Class dlgSettings Me.chkEpisodeFanartCol.Text = Me.chkMovieFanartCol.Text Me.chkShowNfoCol.Text = Me.chkMovieInfoCol.Text Me.chkEpisodeNfoCol.Text = Me.chkMovieInfoCol.Text + Me.chkEpisodeWatchedCol.Text = Master.eLang.GetString(884, "Hide Watched Column") Me.gbShowPosters.Text = Master.eLang.GetString(683, "Show Posters") Me.gbShowFanart.Text = Master.eLang.GetString(684, "Show Fanart") Me.gbSeasonPosters.Text = Master.eLang.GetString(685, "Season Posters") @@ -4031,7 +4113,7 @@ Public Class dlgSettings Me.chkMarkNewEpisodes.Text = Master.eLang.GetString(621, "Mark New Episodes") Me.lblOrdering.Text = Master.eLang.GetString(797, "Default Episode Ordering:") Me.chkOnlyValueForCert.Text = Master.eLang.GetString(835, "Only Save the Value to NFO") - Me.chkActorCache.Text = Master.eLang.GetString(828, "Enable Actors Cache") + Me.chkScraperActorThumbs.Text = Master.eLang.GetString(828, "Enable Actor Thumbs") Me.rbBanner.Text = Master.eLang.GetString(838, "Banner") Me.rbPoster.Text = Me.GroupBox5.Text Me.rbAllSBanner.Text = Me.rbBanner.Text @@ -4045,10 +4127,10 @@ Public Class dlgSettings Me.lblAllSPosterQ.Text = Me.Label24.Text Me.btnClearRegex.Text = Master.eLang.GetString(123, "Clear") Me.chkAskCheckboxScrape.Text = Master.eLang.GetString(852, "Ask On Click Scrape") - Me.btnMovieFrodo.Text = Master.eLang.GetString(867, "XBMC Frodo") - Me.btnTVShowFrodo.Text = Master.eLang.GetString(867, "XBMC Frodo") + Me.btnMovieFrodo.Text = Master.eLang.GetString(867, "XBMC Frodo") + Me.btnTVShowFrodo.Text = Master.eLang.GetString(867, "XBMC Frodo") - Me.lvTVSources.Columns(1).Text = Master.eLang.GetString(232, "Name") + Me.lvTVSources.Columns(1).Text = Master.eLang.GetString(232, "Name") Me.lvTVSources.Columns(2).Text = Master.eLang.GetString(410, "Path") Me.lvShowRegex.Columns(1).Text = Master.eLang.GetString(696, "Show Regex") @@ -4565,6 +4647,21 @@ Public Class dlgSettings Me.SetApplyButton(True) End Sub + Private Sub chkLockSubtitle_CheckedChanged(sender As Object, e As EventArgs) Handles chkLockSubtitle.CheckedChanged + Me.SetApplyButton(True) + End Sub + + Private Sub chkLockMPAA_CheckedChanged(sender As Object, e As EventArgs) Handles chkLockMPAA.CheckedChanged + Me.SetApplyButton(True) + End Sub + + Private Sub chkLockLanguageA_CheckedChanged(sender As Object, e As EventArgs) Handles chkLockLanguageA.CheckedChanged + Me.SetApplyButton(True) + End Sub + + Private Sub chkLockLanguageV_CheckedChanged(sender As Object, e As EventArgs) Handles chkLockLanguageV.CheckedChanged + Me.SetApplyButton(True) + End Sub Private Sub txtTVDefFIExt_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtTVDefFIExt.TextChanged btnNewTVMetaDataFT.Enabled = Not String.IsNullOrEmpty(txtTVDefFIExt.Text) AndAlso Not Me.lstTVMetaData.Items.Contains(If(txtTVDefFIExt.Text.StartsWith("."), txtTVDefFIExt.Text, String.Concat(".", txtTVDefFIExt.Text))) If btnNewTVMetaDataFT.Enabled Then @@ -4592,12 +4689,14 @@ Public Class dlgSettings Public Sub New(ByVal column As Integer) col = column End Sub - Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer _ - Implements IComparer.Compare - Return [String].Compare(CType(x, ListViewItem).SubItems(col).Text, CType(y, ListViewItem).SubItems(col).Text) - End Function + + Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer _ + Implements IComparer.Compare + Return [String].Compare(CType(x, ListViewItem).SubItems(col).Text, CType(y, ListViewItem).SubItems(col).Text) + End Function End Class -#End Region 'Methods +#End Region 'Methods + End Class \ No newline at end of file diff --git a/Ember Media Manager/dlgWizard.Designer.vb b/Ember Media Manager/dlgWizard.Designer.vb index a9fa021..74c7550 100644 --- a/Ember Media Manager/dlgWizard.Designer.vb +++ b/Ember Media Manager/dlgWizard.Designer.vb @@ -22,1370 +22,1395 @@ Partial Class dlgWizard 'Do not modify it using the code editor. _ Private Sub InitializeComponent() - Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(dlgWizard)) - Me.OK_Button = New System.Windows.Forms.Button() - Me.Cancel_Button = New System.Windows.Forms.Button() - Me.btnBack = New System.Windows.Forms.Button() - Me.btnNext = New System.Windows.Forms.Button() - Me.Panel1 = New System.Windows.Forms.Panel() - Me.Label32 = New System.Windows.Forms.Label() - Me.cbIntLang = New System.Windows.Forms.ComboBox() - Me.Label2 = New System.Windows.Forms.Label() - Me.Label1 = New System.Windows.Forms.Label() - Me.Panel3 = New System.Windows.Forms.Panel() - Me.btnMovieFrodo = New System.Windows.Forms.Button() - Me.chkMovieNameMultiOnly = New System.Windows.Forms.CheckBox() - Me.GroupBox7 = New System.Windows.Forms.GroupBox() - Me.chkMovieNameNFO = New System.Windows.Forms.CheckBox() - Me.chkMovieNFO = New System.Windows.Forms.CheckBox() - Me.GroupBox6 = New System.Windows.Forms.GroupBox() - Me.chkMovieNameDotFanartJPG = New System.Windows.Forms.CheckBox() - Me.chkMovieNameFanartJPG = New System.Windows.Forms.CheckBox() - Me.chkFanartJPG = New System.Windows.Forms.CheckBox() - Me.GroupBox5 = New System.Windows.Forms.GroupBox() - Me.chkFolderJPG = New System.Windows.Forms.CheckBox() - Me.chkPosterJPG = New System.Windows.Forms.CheckBox() - Me.chkPosterTBN = New System.Windows.Forms.CheckBox() - Me.chkMovieNameJPG = New System.Windows.Forms.CheckBox() - Me.chkMovieJPG = New System.Windows.Forms.CheckBox() - Me.chkMovieNameTBN = New System.Windows.Forms.CheckBox() - Me.chkMovieTBN = New System.Windows.Forms.CheckBox() - Me.Label5 = New System.Windows.Forms.Label() - Me.Label4 = New System.Windows.Forms.Label() - Me.PictureBox1 = New System.Windows.Forms.PictureBox() - Me.Panel2 = New System.Windows.Forms.Panel() - Me.lvMovies = New System.Windows.Forms.ListView() - Me.colID = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) - Me.colName = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) - Me.colPath = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) - Me.colRecur = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) - Me.colFolder = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) - Me.colSingle = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) - Me.btnMovieRem = New System.Windows.Forms.Button() - Me.btnMovieAddFolder = New System.Windows.Forms.Button() - Me.Label3 = New System.Windows.Forms.Label() - Me.Panel6 = New System.Windows.Forms.Panel() - Me.Label8 = New System.Windows.Forms.Label() - Me.Label6 = New System.Windows.Forms.Label() - Me.Label7 = New System.Windows.Forms.Label() - Me.Panel4 = New System.Windows.Forms.Panel() - Me.Label10 = New System.Windows.Forms.Label() - Me.btnTVLanguageFetch = New System.Windows.Forms.Button() - Me.lvTVSources = New System.Windows.Forms.ListView() - Me.ColumnHeader1 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) - Me.ColumnHeader2 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) - Me.ColumnHeader3 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) - Me.cbTVLanguage = New System.Windows.Forms.ComboBox() - Me.btnTVRemoveSource = New System.Windows.Forms.Button() - Me.btnTVAddSource = New System.Windows.Forms.Button() - Me.Label9 = New System.Windows.Forms.Label() - Me.Panel5 = New System.Windows.Forms.Panel() - Me.btnTVShowFrodo = New System.Windows.Forms.Button() - Me.gbAllSeasonPoster = New System.Windows.Forms.GroupBox() - Me.chkSeasonAllPosterJPG = New System.Windows.Forms.CheckBox() - Me.chkSeasonAllJPG = New System.Windows.Forms.CheckBox() - Me.chkSeasonAllTBN = New System.Windows.Forms.CheckBox() - Me.lblInsideSeason = New System.Windows.Forms.Label() - Me.gbSeasonFanart = New System.Windows.Forms.GroupBox() - Me.chkSeasonXXDashFanartJPG = New System.Windows.Forms.CheckBox() - Me.chkSeasonDotFanart = New System.Windows.Forms.CheckBox() - Me.chkSeasonDashFanart = New System.Windows.Forms.CheckBox() - Me.chkSeasonFanartJPG = New System.Windows.Forms.CheckBox() - Me.gbSeasonPosters = New System.Windows.Forms.GroupBox() - Me.chkSeasonXXDashPosterJPG = New System.Windows.Forms.CheckBox() - Me.chkSeasonFolderJPG = New System.Windows.Forms.CheckBox() - Me.chkSeasonNameJPG = New System.Windows.Forms.CheckBox() - Me.chkSeasonNameTBN = New System.Windows.Forms.CheckBox() - Me.chkSeasonPosterJPG = New System.Windows.Forms.CheckBox() - Me.chkSeasonPosterTBN = New System.Windows.Forms.CheckBox() - Me.chkSeasonXTBN = New System.Windows.Forms.CheckBox() - Me.chkSeasonXXTBN = New System.Windows.Forms.CheckBox() - Me.gbEpisodePosters = New System.Windows.Forms.GroupBox() - Me.chkEpisodeDashThumbJPG = New System.Windows.Forms.CheckBox() - Me.chkEpisodeJPG = New System.Windows.Forms.CheckBox() - Me.chkEpisodeTBN = New System.Windows.Forms.CheckBox() - Me.gbShowFanart = New System.Windows.Forms.GroupBox() - Me.chkShowDotFanart = New System.Windows.Forms.CheckBox() - Me.chkShowDashFanart = New System.Windows.Forms.CheckBox() - Me.chkShowFanartJPG = New System.Windows.Forms.CheckBox() - Me.gbEpisodeFanart = New System.Windows.Forms.GroupBox() - Me.chkEpisodeDotFanart = New System.Windows.Forms.CheckBox() - Me.chkEpisodeDashFanart = New System.Windows.Forms.CheckBox() - Me.gbShowPosters = New System.Windows.Forms.GroupBox() - Me.chkShowJPG = New System.Windows.Forms.CheckBox() - Me.chkShowTBN = New System.Windows.Forms.CheckBox() - Me.chkShowPosterJPG = New System.Windows.Forms.CheckBox() - Me.chkShowPosterTBN = New System.Windows.Forms.CheckBox() - Me.chkShowFolderJPG = New System.Windows.Forms.CheckBox() - Me.Label11 = New System.Windows.Forms.Label() - Me.chkMovieNameDashPosterJPG = New System.Windows.Forms.CheckBox() - Me.GroupBox21 = New System.Windows.Forms.GroupBox() - Me.rbBracketTrailer = New System.Windows.Forms.RadioButton() - Me.rbDashTrailer = New System.Windows.Forms.RadioButton() - Me.Panel1.SuspendLayout() - Me.Panel3.SuspendLayout() - Me.GroupBox7.SuspendLayout() - Me.GroupBox6.SuspendLayout() - Me.GroupBox5.SuspendLayout() - CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() - Me.Panel2.SuspendLayout() - Me.Panel6.SuspendLayout() - Me.Panel4.SuspendLayout() - Me.Panel5.SuspendLayout() - Me.gbAllSeasonPoster.SuspendLayout() - Me.gbSeasonFanart.SuspendLayout() - Me.gbSeasonPosters.SuspendLayout() - Me.gbEpisodePosters.SuspendLayout() - Me.gbShowFanart.SuspendLayout() - Me.gbEpisodeFanart.SuspendLayout() - Me.gbShowPosters.SuspendLayout() - Me.GroupBox21.SuspendLayout() - Me.SuspendLayout() - ' - 'OK_Button - ' - Me.OK_Button.DialogResult = System.Windows.Forms.DialogResult.OK - Me.OK_Button.Enabled = False - Me.OK_Button.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.OK_Button.Location = New System.Drawing.Point(402, 337) - Me.OK_Button.Name = "OK_Button" - Me.OK_Button.Size = New System.Drawing.Size(67, 23) - Me.OK_Button.TabIndex = 0 - Me.OK_Button.Text = "OK" - ' - 'Cancel_Button - ' - Me.Cancel_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel - Me.Cancel_Button.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.Cancel_Button.Location = New System.Drawing.Point(475, 337) - Me.Cancel_Button.Name = "Cancel_Button" - Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) - Me.Cancel_Button.TabIndex = 1 - Me.Cancel_Button.Text = "Cancel" - ' - 'btnBack - ' - Me.btnBack.Enabled = False - Me.btnBack.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.btnBack.Location = New System.Drawing.Point(219, 337) - Me.btnBack.Name = "btnBack" - Me.btnBack.Size = New System.Drawing.Size(67, 23) - Me.btnBack.TabIndex = 3 - Me.btnBack.Text = "< Back" - ' - 'btnNext - ' - Me.btnNext.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.btnNext.Location = New System.Drawing.Point(292, 337) - Me.btnNext.Name = "btnNext" - Me.btnNext.Size = New System.Drawing.Size(67, 23) - Me.btnNext.TabIndex = 2 - Me.btnNext.Text = "Next >" - ' - 'Panel1 - ' - Me.Panel1.BackColor = System.Drawing.Color.White - Me.Panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.Panel1.Controls.Add(Me.Label32) - Me.Panel1.Controls.Add(Me.cbIntLang) - Me.Panel1.Controls.Add(Me.Label2) - Me.Panel1.Controls.Add(Me.Label1) - Me.Panel1.Location = New System.Drawing.Point(166, 7) - Me.Panel1.Name = "Panel1" - Me.Panel1.Size = New System.Drawing.Size(376, 323) - Me.Panel1.TabIndex = 4 - ' - 'Label32 - ' - Me.Label32.AutoSize = True - Me.Label32.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.Label32.Location = New System.Drawing.Point(108, 260) - Me.Label32.Name = "Label32" - Me.Label32.Size = New System.Drawing.Size(110, 13) - Me.Label32.TabIndex = 2 - Me.Label32.Text = "Interface Language:" - ' - 'cbIntLang - ' - Me.cbIntLang.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList - Me.cbIntLang.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.cbIntLang.FormattingEnabled = True - Me.cbIntLang.Location = New System.Drawing.Point(110, 275) - Me.cbIntLang.Name = "cbIntLang" - Me.cbIntLang.Size = New System.Drawing.Size(148, 21) - Me.cbIntLang.TabIndex = 3 - ' - 'Label2 - ' - Me.Label2.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.Label2.Location = New System.Drawing.Point(17, 46) - Me.Label2.Name = "Label2" - Me.Label2.Size = New System.Drawing.Size(337, 201) - Me.Label2.TabIndex = 1 - Me.Label2.Text = resources.GetString("Label2.Text") - Me.Label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter - ' - 'Label1 - ' - Me.Label1.AutoSize = True - Me.Label1.Font = New System.Drawing.Font("Segoe UI", 14.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.Label1.Location = New System.Drawing.Point(15, 15) - Me.Label1.Name = "Label1" - Me.Label1.Size = New System.Drawing.Size(325, 25) - Me.Label1.TabIndex = 0 - Me.Label1.Text = "Welcome to Ember Media Manager" - ' - 'Panel3 - ' - Me.Panel3.BackColor = System.Drawing.Color.White - Me.Panel3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.Panel3.Controls.Add(Me.GroupBox21) - Me.Panel3.Controls.Add(Me.chkMovieNameMultiOnly) - Me.Panel3.Controls.Add(Me.btnMovieFrodo) - Me.Panel3.Controls.Add(Me.GroupBox7) - Me.Panel3.Controls.Add(Me.GroupBox6) - Me.Panel3.Controls.Add(Me.GroupBox5) - Me.Panel3.Controls.Add(Me.Label5) - Me.Panel3.Controls.Add(Me.Label4) - Me.Panel3.Location = New System.Drawing.Point(959, 7) - Me.Panel3.Name = "Panel3" - Me.Panel3.Size = New System.Drawing.Size(376, 323) - Me.Panel3.TabIndex = 6 - Me.Panel3.Visible = False - ' - 'btnMovieFrodo - ' - Me.btnMovieFrodo.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.btnMovieFrodo.Location = New System.Drawing.Point(121, 219) - Me.btnMovieFrodo.Name = "btnMovieFrodo" - Me.btnMovieFrodo.Size = New System.Drawing.Size(91, 23) - Me.btnMovieFrodo.TabIndex = 6 - Me.btnMovieFrodo.Text = "XBMC Frodo" - Me.btnMovieFrodo.UseVisualStyleBackColor = True - ' - 'chkMovieNameMultiOnly - ' - Me.chkMovieNameMultiOnly.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkMovieNameMultiOnly.Location = New System.Drawing.Point(121, 247) - Me.chkMovieNameMultiOnly.Name = "chkMovieNameMultiOnly" - Me.chkMovieNameMultiOnly.Size = New System.Drawing.Size(236, 34) - Me.chkMovieNameMultiOnly.TabIndex = 3 - Me.chkMovieNameMultiOnly.Text = "Use Only for Folders with Multiple Movies" - Me.chkMovieNameMultiOnly.UseVisualStyleBackColor = True - ' - 'GroupBox7 - ' - Me.GroupBox7.Controls.Add(Me.chkMovieNameNFO) - Me.GroupBox7.Controls.Add(Me.chkMovieNFO) - Me.GroupBox7.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.GroupBox7.Location = New System.Drawing.Point(218, 187) - Me.GroupBox7.Name = "GroupBox7" - Me.GroupBox7.Size = New System.Drawing.Size(139, 54) - Me.GroupBox7.TabIndex = 4 - Me.GroupBox7.TabStop = False - Me.GroupBox7.Text = "NFO" - ' - 'chkMovieNameNFO - ' - Me.chkMovieNameNFO.AutoSize = True - Me.chkMovieNameNFO.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.chkMovieNameNFO.Location = New System.Drawing.Point(6, 34) - Me.chkMovieNameNFO.Name = "chkMovieNameNFO" - Me.chkMovieNameNFO.Size = New System.Drawing.Size(93, 17) - Me.chkMovieNameNFO.TabIndex = 1 - Me.chkMovieNameNFO.Text = ".nfo" - Me.chkMovieNameNFO.UseVisualStyleBackColor = True - ' - 'chkMovieNFO - ' - Me.chkMovieNFO.AutoSize = True - Me.chkMovieNFO.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.chkMovieNFO.Location = New System.Drawing.Point(6, 18) - Me.chkMovieNFO.Name = "chkMovieNFO" - Me.chkMovieNFO.Size = New System.Drawing.Size(77, 17) - Me.chkMovieNFO.TabIndex = 0 - Me.chkMovieNFO.Text = "movie.nfo" - Me.chkMovieNFO.UseVisualStyleBackColor = True - ' - 'GroupBox6 - ' - Me.GroupBox6.Controls.Add(Me.chkMovieNameDotFanartJPG) - Me.GroupBox6.Controls.Add(Me.chkMovieNameFanartJPG) - Me.GroupBox6.Controls.Add(Me.chkFanartJPG) - Me.GroupBox6.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.GroupBox6.Location = New System.Drawing.Point(218, 111) - Me.GroupBox6.Name = "GroupBox6" - Me.GroupBox6.Size = New System.Drawing.Size(139, 70) - Me.GroupBox6.TabIndex = 2 - Me.GroupBox6.TabStop = False - Me.GroupBox6.Text = "Fanart" - ' - 'chkMovieNameDotFanartJPG - ' - Me.chkMovieNameDotFanartJPG.AutoSize = True - Me.chkMovieNameDotFanartJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.chkMovieNameDotFanartJPG.Location = New System.Drawing.Point(6, 51) - Me.chkMovieNameDotFanartJPG.Name = "chkMovieNameDotFanartJPG" - Me.chkMovieNameDotFanartJPG.Size = New System.Drawing.Size(126, 17) - Me.chkMovieNameDotFanartJPG.TabIndex = 2 - Me.chkMovieNameDotFanartJPG.Text = ".fanart.jpg" - Me.chkMovieNameDotFanartJPG.UseVisualStyleBackColor = True - ' - 'chkMovieNameFanartJPG - ' - Me.chkMovieNameFanartJPG.AutoSize = True - Me.chkMovieNameFanartJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.chkMovieNameFanartJPG.Location = New System.Drawing.Point(6, 35) - Me.chkMovieNameFanartJPG.Name = "chkMovieNameFanartJPG" - Me.chkMovieNameFanartJPG.Size = New System.Drawing.Size(127, 17) - Me.chkMovieNameFanartJPG.TabIndex = 1 - Me.chkMovieNameFanartJPG.Text = "-fanart.jpg" - Me.chkMovieNameFanartJPG.UseVisualStyleBackColor = True - ' - 'chkFanartJPG - ' - Me.chkFanartJPG.AutoSize = True - Me.chkFanartJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.chkFanartJPG.Location = New System.Drawing.Point(6, 19) - Me.chkFanartJPG.Name = "chkFanartJPG" - Me.chkFanartJPG.Size = New System.Drawing.Size(77, 17) - Me.chkFanartJPG.TabIndex = 0 - Me.chkFanartJPG.Text = "fanart.jpg" - Me.chkFanartJPG.UseVisualStyleBackColor = True - ' - 'GroupBox5 - ' - Me.GroupBox5.Controls.Add(Me.chkMovieNameDashPosterJPG) - Me.GroupBox5.Controls.Add(Me.chkFolderJPG) - Me.GroupBox5.Controls.Add(Me.chkPosterJPG) - Me.GroupBox5.Controls.Add(Me.chkPosterTBN) - Me.GroupBox5.Controls.Add(Me.chkMovieNameJPG) - Me.GroupBox5.Controls.Add(Me.chkMovieJPG) - Me.GroupBox5.Controls.Add(Me.chkMovieNameTBN) - Me.GroupBox5.Controls.Add(Me.chkMovieTBN) - Me.GroupBox5.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.GroupBox5.Location = New System.Drawing.Point(13, 111) - Me.GroupBox5.Name = "GroupBox5" - Me.GroupBox5.Size = New System.Drawing.Size(199, 104) - Me.GroupBox5.TabIndex = 1 - Me.GroupBox5.TabStop = False - Me.GroupBox5.Text = "Posters" - ' - 'chkFolderJPG - ' - Me.chkFolderJPG.AutoSize = True - Me.chkFolderJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.chkFolderJPG.Location = New System.Drawing.Point(10, 65) - Me.chkFolderJPG.Name = "chkFolderJPG" - Me.chkFolderJPG.Size = New System.Drawing.Size(77, 17) - Me.chkFolderJPG.TabIndex = 3 - Me.chkFolderJPG.Text = "folder.jpg" - Me.chkFolderJPG.UseVisualStyleBackColor = True - ' - 'chkPosterJPG - ' - Me.chkPosterJPG.AutoSize = True - Me.chkPosterJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.chkPosterJPG.Location = New System.Drawing.Point(100, 49) - Me.chkPosterJPG.Name = "chkPosterJPG" - Me.chkPosterJPG.Size = New System.Drawing.Size(79, 17) - Me.chkPosterJPG.TabIndex = 6 - Me.chkPosterJPG.Text = "poster.jpg" - Me.chkPosterJPG.UseVisualStyleBackColor = True - ' - 'chkPosterTBN - ' - Me.chkPosterTBN.AutoSize = True - Me.chkPosterTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.chkPosterTBN.Location = New System.Drawing.Point(10, 49) - Me.chkPosterTBN.Name = "chkPosterTBN" - Me.chkPosterTBN.Size = New System.Drawing.Size(80, 17) - Me.chkPosterTBN.TabIndex = 2 - Me.chkPosterTBN.Text = "poster.tbn" - Me.chkPosterTBN.UseVisualStyleBackColor = True - ' - 'chkMovieNameJPG - ' - Me.chkMovieNameJPG.AutoSize = True - Me.chkMovieNameJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.chkMovieNameJPG.Location = New System.Drawing.Point(100, 33) - Me.chkMovieNameJPG.Name = "chkMovieNameJPG" - Me.chkMovieNameJPG.Size = New System.Drawing.Size(92, 17) - Me.chkMovieNameJPG.TabIndex = 5 - Me.chkMovieNameJPG.Text = ".jpg" - Me.chkMovieNameJPG.UseVisualStyleBackColor = True - ' - 'chkMovieJPG - ' - Me.chkMovieJPG.AutoSize = True - Me.chkMovieJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.chkMovieJPG.Location = New System.Drawing.Point(10, 33) - Me.chkMovieJPG.Name = "chkMovieJPG" - Me.chkMovieJPG.Size = New System.Drawing.Size(76, 17) - Me.chkMovieJPG.TabIndex = 1 - Me.chkMovieJPG.Text = "movie.jpg" - Me.chkMovieJPG.UseVisualStyleBackColor = True - ' - 'chkMovieNameTBN - ' - Me.chkMovieNameTBN.AutoSize = True - Me.chkMovieNameTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.chkMovieNameTBN.Location = New System.Drawing.Point(100, 17) - Me.chkMovieNameTBN.Name = "chkMovieNameTBN" - Me.chkMovieNameTBN.Size = New System.Drawing.Size(93, 17) - Me.chkMovieNameTBN.TabIndex = 4 - Me.chkMovieNameTBN.Text = ".tbn" - Me.chkMovieNameTBN.UseVisualStyleBackColor = True - ' - 'chkMovieTBN - ' - Me.chkMovieTBN.AutoSize = True - Me.chkMovieTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.chkMovieTBN.Location = New System.Drawing.Point(10, 17) - Me.chkMovieTBN.Name = "chkMovieTBN" - Me.chkMovieTBN.Size = New System.Drawing.Size(77, 17) - Me.chkMovieTBN.TabIndex = 0 - Me.chkMovieTBN.Text = "movie.tbn" - Me.chkMovieTBN.UseVisualStyleBackColor = True - ' - 'Label5 - ' - Me.Label5.Font = New System.Drawing.Font("Segoe UI", 6.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label5.Location = New System.Drawing.Point(45, 284) - Me.Label5.Name = "Label5" - Me.Label5.Size = New System.Drawing.Size(286, 30) - Me.Label5.TabIndex = 5 - Me.Label5.Text = "TIP: Selections containing the text means that Ember Media Manager will u" & _ - "se the filename of the movie." - Me.Label5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter - ' - 'Label4 - ' - Me.Label4.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.Label4.Location = New System.Drawing.Point(13, 15) - Me.Label4.Name = "Label4" - Me.Label4.Size = New System.Drawing.Size(341, 93) - Me.Label4.TabIndex = 0 - Me.Label4.Text = resources.GetString("Label4.Text") - Me.Label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter - ' - 'PictureBox1 - ' - Me.PictureBox1.BackColor = System.Drawing.Color.White - Me.PictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.PictureBox1.Image = Global.Ember_Media_Manager.My.Resources.Resources.Wizard - Me.PictureBox1.Location = New System.Drawing.Point(3, 7) - Me.PictureBox1.Name = "PictureBox1" - Me.PictureBox1.Size = New System.Drawing.Size(157, 353) - Me.PictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage - Me.PictureBox1.TabIndex = 0 - Me.PictureBox1.TabStop = False - ' - 'Panel2 - ' - Me.Panel2.BackColor = System.Drawing.Color.White - Me.Panel2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.Panel2.Controls.Add(Me.lvMovies) - Me.Panel2.Controls.Add(Me.btnMovieRem) - Me.Panel2.Controls.Add(Me.btnMovieAddFolder) - Me.Panel2.Controls.Add(Me.Label3) - Me.Panel2.Location = New System.Drawing.Point(566, 7) - Me.Panel2.Name = "Panel2" - Me.Panel2.Size = New System.Drawing.Size(376, 323) - Me.Panel2.TabIndex = 5 - Me.Panel2.Visible = False - ' - 'lvMovies - ' - Me.lvMovies.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.colID, Me.colName, Me.colPath, Me.colRecur, Me.colFolder, Me.colSingle}) - Me.lvMovies.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lvMovies.FullRowSelect = True - Me.lvMovies.HideSelection = False - Me.lvMovies.Location = New System.Drawing.Point(6, 124) - Me.lvMovies.Name = "lvMovies" - Me.lvMovies.Size = New System.Drawing.Size(362, 105) - Me.lvMovies.Sorting = System.Windows.Forms.SortOrder.Ascending - Me.lvMovies.TabIndex = 1 - Me.lvMovies.UseCompatibleStateImageBehavior = False - Me.lvMovies.View = System.Windows.Forms.View.Details - ' - 'colID - ' - Me.colID.Width = 0 - ' - 'colName - ' - Me.colName.Text = "Name" - Me.colName.Width = 50 - ' - 'colPath - ' - Me.colPath.Text = "Path" - Me.colPath.Width = 125 - ' - 'colRecur - ' - Me.colRecur.Text = "Recursive" - ' - 'colFolder - ' - Me.colFolder.Text = "Use Folder Name" - ' - 'colSingle - ' - Me.colSingle.Text = "Single Video" - ' - 'btnMovieRem - ' - Me.btnMovieRem.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.btnMovieRem.Image = CType(resources.GetObject("btnMovieRem.Image"), System.Drawing.Image) - Me.btnMovieRem.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnMovieRem.Location = New System.Drawing.Point(264, 236) - Me.btnMovieRem.Name = "btnMovieRem" - Me.btnMovieRem.Size = New System.Drawing.Size(104, 23) - Me.btnMovieRem.TabIndex = 3 - Me.btnMovieRem.Text = "Remove" - Me.btnMovieRem.TextAlign = System.Drawing.ContentAlignment.MiddleRight - Me.btnMovieRem.UseVisualStyleBackColor = True - ' - 'btnMovieAddFolder - ' - Me.btnMovieAddFolder.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.btnMovieAddFolder.Image = CType(resources.GetObject("btnMovieAddFolder.Image"), System.Drawing.Image) - Me.btnMovieAddFolder.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnMovieAddFolder.Location = New System.Drawing.Point(4, 236) - Me.btnMovieAddFolder.Name = "btnMovieAddFolder" - Me.btnMovieAddFolder.Size = New System.Drawing.Size(104, 23) - Me.btnMovieAddFolder.TabIndex = 2 - Me.btnMovieAddFolder.Text = "Add Source" - Me.btnMovieAddFolder.TextAlign = System.Drawing.ContentAlignment.MiddleRight - Me.btnMovieAddFolder.UseVisualStyleBackColor = True - ' - 'Label3 - ' - Me.Label3.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.Label3.Location = New System.Drawing.Point(19, 15) - Me.Label3.Name = "Label3" - Me.Label3.Size = New System.Drawing.Size(332, 93) - Me.Label3.TabIndex = 0 - Me.Label3.Text = "First, let's tell Ember Media Manager where to locate all your movies. You can ad" & _ - "d as many sources as you wish." - Me.Label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter - ' - 'Panel6 - ' - Me.Panel6.BackColor = System.Drawing.Color.White - Me.Panel6.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.Panel6.Controls.Add(Me.Label8) - Me.Panel6.Controls.Add(Me.Label6) - Me.Panel6.Controls.Add(Me.Label7) - Me.Panel6.Location = New System.Drawing.Point(959, 406) - Me.Panel6.Name = "Panel6" - Me.Panel6.Size = New System.Drawing.Size(376, 323) - Me.Panel6.TabIndex = 9 - Me.Panel6.Visible = False - ' - 'Label8 - ' - Me.Label8.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.Label8.Location = New System.Drawing.Point(3, 105) - Me.Label8.Name = "Label8" - Me.Label8.Size = New System.Drawing.Size(369, 216) - Me.Label8.TabIndex = 2 - Me.Label8.Text = resources.GetString("Label8.Text") - ' - 'Label6 - ' - Me.Label6.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.Label6.Location = New System.Drawing.Point(17, 57) - Me.Label6.Name = "Label6" - Me.Label6.Size = New System.Drawing.Size(337, 46) - Me.Label6.TabIndex = 1 - Me.Label6.Text = "That wasn't so hard was it? As mentioned earlier, you can change these or any ot" & _ - "her options in the Settings dialog." - Me.Label6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter - ' - 'Label7 - ' - Me.Label7.AutoSize = True - Me.Label7.Font = New System.Drawing.Font("Segoe UI", 14.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.Label7.Location = New System.Drawing.Point(36, 5) - Me.Label7.Name = "Label7" - Me.Label7.Size = New System.Drawing.Size(297, 50) - Me.Label7.TabIndex = 0 - Me.Label7.Text = "That's it!" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "Ember Media Manager is Ready!" - Me.Label7.TextAlign = System.Drawing.ContentAlignment.MiddleCenter - ' - 'Panel4 - ' - Me.Panel4.BackColor = System.Drawing.Color.White - Me.Panel4.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.Panel4.Controls.Add(Me.Label10) - Me.Panel4.Controls.Add(Me.btnTVLanguageFetch) - Me.Panel4.Controls.Add(Me.lvTVSources) - Me.Panel4.Controls.Add(Me.cbTVLanguage) - Me.Panel4.Controls.Add(Me.btnTVRemoveSource) - Me.Panel4.Controls.Add(Me.btnTVAddSource) - Me.Panel4.Controls.Add(Me.Label9) - Me.Panel4.Location = New System.Drawing.Point(166, 406) - Me.Panel4.Name = "Panel4" - Me.Panel4.Size = New System.Drawing.Size(376, 323) - Me.Panel4.TabIndex = 7 - Me.Panel4.Visible = False - ' - 'Label10 - ' - Me.Label10.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.Label10.Location = New System.Drawing.Point(18, 220) - Me.Label10.Name = "Label10" - Me.Label10.Size = New System.Drawing.Size(332, 41) - Me.Label10.TabIndex = 4 - Me.Label10.Text = "Now select the default language you would like Ember to look for when scraping TV" & _ - " Show items." - Me.Label10.TextAlign = System.Drawing.ContentAlignment.MiddleCenter - ' - 'btnTVLanguageFetch - ' - Me.btnTVLanguageFetch.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.btnTVLanguageFetch.Location = New System.Drawing.Point(101, 293) - Me.btnTVLanguageFetch.Name = "btnTVLanguageFetch" - Me.btnTVLanguageFetch.Size = New System.Drawing.Size(166, 23) - Me.btnTVLanguageFetch.TabIndex = 5 - Me.btnTVLanguageFetch.Text = "Fetch Available Languages" - Me.btnTVLanguageFetch.UseVisualStyleBackColor = True - ' - 'lvTVSources - ' - Me.lvTVSources.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ColumnHeader1, Me.ColumnHeader2, Me.ColumnHeader3}) - Me.lvTVSources.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lvTVSources.FullRowSelect = True - Me.lvTVSources.HideSelection = False - Me.lvTVSources.Location = New System.Drawing.Point(6, 82) - Me.lvTVSources.Name = "lvTVSources" - Me.lvTVSources.Size = New System.Drawing.Size(360, 105) - Me.lvTVSources.Sorting = System.Windows.Forms.SortOrder.Ascending - Me.lvTVSources.TabIndex = 1 - Me.lvTVSources.UseCompatibleStateImageBehavior = False - Me.lvTVSources.View = System.Windows.Forms.View.Details - ' - 'ColumnHeader1 - ' - Me.ColumnHeader1.Width = 0 - ' - 'ColumnHeader2 - ' - Me.ColumnHeader2.Text = "Name" - Me.ColumnHeader2.Width = 94 - ' - 'ColumnHeader3 - ' - Me.ColumnHeader3.Text = "Path" - Me.ColumnHeader3.Width = 261 - ' - 'cbTVLanguage - ' - Me.cbTVLanguage.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList - Me.cbTVLanguage.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.cbTVLanguage.Location = New System.Drawing.Point(101, 268) - Me.cbTVLanguage.Name = "cbTVLanguage" - Me.cbTVLanguage.Size = New System.Drawing.Size(166, 21) - Me.cbTVLanguage.TabIndex = 6 - ' - 'btnTVRemoveSource - ' - Me.btnTVRemoveSource.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.btnTVRemoveSource.Image = CType(resources.GetObject("btnTVRemoveSource.Image"), System.Drawing.Image) - Me.btnTVRemoveSource.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnTVRemoveSource.Location = New System.Drawing.Point(264, 194) - Me.btnTVRemoveSource.Name = "btnTVRemoveSource" - Me.btnTVRemoveSource.Size = New System.Drawing.Size(104, 23) - Me.btnTVRemoveSource.TabIndex = 3 - Me.btnTVRemoveSource.Text = "Remove" - Me.btnTVRemoveSource.TextAlign = System.Drawing.ContentAlignment.MiddleRight - Me.btnTVRemoveSource.UseVisualStyleBackColor = True - ' - 'btnTVAddSource - ' - Me.btnTVAddSource.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.btnTVAddSource.Image = CType(resources.GetObject("btnTVAddSource.Image"), System.Drawing.Image) - Me.btnTVAddSource.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnTVAddSource.Location = New System.Drawing.Point(4, 194) - Me.btnTVAddSource.Name = "btnTVAddSource" - Me.btnTVAddSource.Size = New System.Drawing.Size(104, 23) - Me.btnTVAddSource.TabIndex = 2 - Me.btnTVAddSource.Text = "Add Source" - Me.btnTVAddSource.TextAlign = System.Drawing.ContentAlignment.MiddleRight - Me.btnTVAddSource.UseVisualStyleBackColor = True - ' - 'Label9 - ' - Me.Label9.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.Label9.Location = New System.Drawing.Point(19, 15) - Me.Label9.Name = "Label9" - Me.Label9.Size = New System.Drawing.Size(332, 64) - Me.Label9.TabIndex = 0 - Me.Label9.Text = "Next, let's tell Ember Media Manager where to locate all your TV Shows. You can a" & _ - "dd as many sources as you wish." - Me.Label9.TextAlign = System.Drawing.ContentAlignment.MiddleCenter - ' - 'Panel5 - ' - Me.Panel5.BackColor = System.Drawing.Color.White - Me.Panel5.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.Panel5.Controls.Add(Me.btnTVShowFrodo) - Me.Panel5.Controls.Add(Me.gbAllSeasonPoster) - Me.Panel5.Controls.Add(Me.lblInsideSeason) - Me.Panel5.Controls.Add(Me.gbSeasonFanart) - Me.Panel5.Controls.Add(Me.gbSeasonPosters) - Me.Panel5.Controls.Add(Me.gbEpisodePosters) - Me.Panel5.Controls.Add(Me.gbShowFanart) - Me.Panel5.Controls.Add(Me.gbEpisodeFanart) - Me.Panel5.Controls.Add(Me.gbShowPosters) - Me.Panel5.Controls.Add(Me.Label11) - Me.Panel5.Location = New System.Drawing.Point(566, 406) - Me.Panel5.Name = "Panel5" - Me.Panel5.Size = New System.Drawing.Size(376, 323) - Me.Panel5.TabIndex = 8 - Me.Panel5.Visible = False - ' - 'btnTVShowFrodo - ' - Me.btnTVShowFrodo.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.btnTVShowFrodo.Location = New System.Drawing.Point(3, 170) - Me.btnTVShowFrodo.Name = "btnTVShowFrodo" - Me.btnTVShowFrodo.Size = New System.Drawing.Size(98, 32) - Me.btnTVShowFrodo.TabIndex = 9 - Me.btnTVShowFrodo.Text = "XBMC Frodo" - Me.btnTVShowFrodo.UseVisualStyleBackColor = True - ' - 'gbAllSeasonPoster - ' - Me.gbAllSeasonPoster.Controls.Add(Me.chkSeasonAllPosterJPG) - Me.gbAllSeasonPoster.Controls.Add(Me.chkSeasonAllJPG) - Me.gbAllSeasonPoster.Controls.Add(Me.chkSeasonAllTBN) - Me.gbAllSeasonPoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.gbAllSeasonPoster.Location = New System.Drawing.Point(4, 207) - Me.gbAllSeasonPoster.Name = "gbAllSeasonPoster" - Me.gbAllSeasonPoster.Size = New System.Drawing.Size(217, 54) - Me.gbAllSeasonPoster.TabIndex = 3 - Me.gbAllSeasonPoster.TabStop = False - Me.gbAllSeasonPoster.Text = "All Season Posters" - ' - 'chkSeasonAllPosterJPG - ' - Me.chkSeasonAllPosterJPG.AutoSize = True - Me.chkSeasonAllPosterJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkSeasonAllPosterJPG.ForeColor = System.Drawing.SystemColors.ControlText - Me.chkSeasonAllPosterJPG.Location = New System.Drawing.Point(6, 16) - Me.chkSeasonAllPosterJPG.Name = "chkSeasonAllPosterJPG" - Me.chkSeasonAllPosterJPG.Size = New System.Drawing.Size(135, 17) - Me.chkSeasonAllPosterJPG.TabIndex = 7 - Me.chkSeasonAllPosterJPG.Text = "season-all-poster.jpg" - Me.chkSeasonAllPosterJPG.UseVisualStyleBackColor = True - ' - 'chkSeasonAllJPG - ' - Me.chkSeasonAllJPG.AutoSize = True - Me.chkSeasonAllJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkSeasonAllJPG.Location = New System.Drawing.Point(6, 35) - Me.chkSeasonAllJPG.Name = "chkSeasonAllJPG" - Me.chkSeasonAllJPG.Size = New System.Drawing.Size(98, 17) - Me.chkSeasonAllJPG.TabIndex = 1 - Me.chkSeasonAllJPG.Text = "season-all.jpg" - Me.chkSeasonAllJPG.UseVisualStyleBackColor = True - ' - 'chkSeasonAllTBN - ' - Me.chkSeasonAllTBN.AutoSize = True - Me.chkSeasonAllTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkSeasonAllTBN.Location = New System.Drawing.Point(112, 35) - Me.chkSeasonAllTBN.Name = "chkSeasonAllTBN" - Me.chkSeasonAllTBN.Size = New System.Drawing.Size(99, 17) - Me.chkSeasonAllTBN.TabIndex = 0 - Me.chkSeasonAllTBN.Text = "season-all.tbn" - Me.chkSeasonAllTBN.UseVisualStyleBackColor = True - ' - 'lblInsideSeason - ' - Me.lblInsideSeason.Font = New System.Drawing.Font("Microsoft Sans Serif", 6.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblInsideSeason.Location = New System.Drawing.Point(232, 305) - Me.lblInsideSeason.Name = "lblInsideSeason" - Me.lblInsideSeason.Size = New System.Drawing.Size(144, 12) - Me.lblInsideSeason.TabIndex = 8 - Me.lblInsideSeason.Text = " * Inside Season directory" - Me.lblInsideSeason.TextAlign = System.Drawing.ContentAlignment.MiddleLeft - ' - 'gbSeasonFanart - ' - Me.gbSeasonFanart.Controls.Add(Me.chkSeasonXXDashFanartJPG) - Me.gbSeasonFanart.Controls.Add(Me.chkSeasonDotFanart) - Me.gbSeasonFanart.Controls.Add(Me.chkSeasonDashFanart) - Me.gbSeasonFanart.Controls.Add(Me.chkSeasonFanartJPG) - Me.gbSeasonFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.gbSeasonFanart.Location = New System.Drawing.Point(226, 218) - Me.gbSeasonFanart.Name = "gbSeasonFanart" - Me.gbSeasonFanart.Size = New System.Drawing.Size(145, 84) - Me.gbSeasonFanart.TabIndex = 7 - Me.gbSeasonFanart.TabStop = False - Me.gbSeasonFanart.Text = "Season Fanart" - ' - 'chkSeasonXXDashFanartJPG - ' - Me.chkSeasonXXDashFanartJPG.AutoSize = True - Me.chkSeasonXXDashFanartJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkSeasonXXDashFanartJPG.ForeColor = System.Drawing.SystemColors.ControlText - Me.chkSeasonXXDashFanartJPG.Location = New System.Drawing.Point(6, 64) - Me.chkSeasonXXDashFanartJPG.Name = "chkSeasonXXDashFanartJPG" - Me.chkSeasonXXDashFanartJPG.Size = New System.Drawing.Size(129, 17) - Me.chkSeasonXXDashFanartJPG.TabIndex = 4 - Me.chkSeasonXXDashFanartJPG.Text = "seasonXX-fanart.jpg" - Me.chkSeasonXXDashFanartJPG.UseVisualStyleBackColor = True - ' - 'chkSeasonDotFanart - ' - Me.chkSeasonDotFanart.AutoSize = True - Me.chkSeasonDotFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkSeasonDotFanart.Location = New System.Drawing.Point(6, 47) - Me.chkSeasonDotFanart.Name = "chkSeasonDotFanart" - Me.chkSeasonDotFanart.Size = New System.Drawing.Size(137, 17) - Me.chkSeasonDotFanart.TabIndex = 2 - Me.chkSeasonDotFanart.Text = ".fanart.jpg*" - Me.chkSeasonDotFanart.UseVisualStyleBackColor = True - ' - 'chkSeasonDashFanart - ' - Me.chkSeasonDashFanart.AutoSize = True - Me.chkSeasonDashFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkSeasonDashFanart.Location = New System.Drawing.Point(6, 31) - Me.chkSeasonDashFanart.Name = "chkSeasonDashFanart" - Me.chkSeasonDashFanart.Size = New System.Drawing.Size(138, 17) - Me.chkSeasonDashFanart.TabIndex = 1 - Me.chkSeasonDashFanart.Text = "-fanart.jpg*" - Me.chkSeasonDashFanart.UseVisualStyleBackColor = True - ' - 'chkSeasonFanartJPG - ' - Me.chkSeasonFanartJPG.AutoSize = True - Me.chkSeasonFanartJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkSeasonFanartJPG.Location = New System.Drawing.Point(6, 15) - Me.chkSeasonFanartJPG.Name = "chkSeasonFanartJPG" - Me.chkSeasonFanartJPG.Size = New System.Drawing.Size(82, 17) - Me.chkSeasonFanartJPG.TabIndex = 0 - Me.chkSeasonFanartJPG.Text = "fanart.jpg*" - Me.chkSeasonFanartJPG.UseVisualStyleBackColor = True - ' - 'gbSeasonPosters - ' - Me.gbSeasonPosters.Controls.Add(Me.chkSeasonXXDashPosterJPG) - Me.gbSeasonPosters.Controls.Add(Me.chkSeasonFolderJPG) - Me.gbSeasonPosters.Controls.Add(Me.chkSeasonNameJPG) - Me.gbSeasonPosters.Controls.Add(Me.chkSeasonNameTBN) - Me.gbSeasonPosters.Controls.Add(Me.chkSeasonPosterJPG) - Me.gbSeasonPosters.Controls.Add(Me.chkSeasonPosterTBN) - Me.gbSeasonPosters.Controls.Add(Me.chkSeasonXTBN) - Me.gbSeasonPosters.Controls.Add(Me.chkSeasonXXTBN) - Me.gbSeasonPosters.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.gbSeasonPosters.Location = New System.Drawing.Point(233, 69) - Me.gbSeasonPosters.Name = "gbSeasonPosters" - Me.gbSeasonPosters.Size = New System.Drawing.Size(138, 150) - Me.gbSeasonPosters.TabIndex = 6 - Me.gbSeasonPosters.TabStop = False - Me.gbSeasonPosters.Text = "Season Posters" - ' - 'chkSeasonXXDashPosterJPG - ' - Me.chkSeasonXXDashPosterJPG.AutoSize = True - Me.chkSeasonXXDashPosterJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkSeasonXXDashPosterJPG.ForeColor = System.Drawing.SystemColors.ControlText - Me.chkSeasonXXDashPosterJPG.Location = New System.Drawing.Point(6, 128) - Me.chkSeasonXXDashPosterJPG.Name = "chkSeasonXXDashPosterJPG" - Me.chkSeasonXXDashPosterJPG.Size = New System.Drawing.Size(131, 17) - Me.chkSeasonXXDashPosterJPG.TabIndex = 7 - Me.chkSeasonXXDashPosterJPG.Text = "seasonXX-poster.jpg" - Me.chkSeasonXXDashPosterJPG.UseVisualStyleBackColor = True - ' - 'chkSeasonFolderJPG - ' - Me.chkSeasonFolderJPG.AutoSize = True - Me.chkSeasonFolderJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkSeasonFolderJPG.Location = New System.Drawing.Point(6, 111) - Me.chkSeasonFolderJPG.Name = "chkSeasonFolderJPG" - Me.chkSeasonFolderJPG.Size = New System.Drawing.Size(82, 17) - Me.chkSeasonFolderJPG.TabIndex = 6 - Me.chkSeasonFolderJPG.Text = "folder.jpg*" - Me.chkSeasonFolderJPG.UseVisualStyleBackColor = True - ' - 'chkSeasonNameJPG - ' - Me.chkSeasonNameJPG.AutoSize = True - Me.chkSeasonNameJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkSeasonNameJPG.Location = New System.Drawing.Point(6, 95) - Me.chkSeasonNameJPG.Name = "chkSeasonNameJPG" - Me.chkSeasonNameJPG.Size = New System.Drawing.Size(103, 17) - Me.chkSeasonNameJPG.TabIndex = 5 - Me.chkSeasonNameJPG.Text = ".jpg*" - Me.chkSeasonNameJPG.UseVisualStyleBackColor = True - ' - 'chkSeasonNameTBN - ' - Me.chkSeasonNameTBN.AutoSize = True - Me.chkSeasonNameTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkSeasonNameTBN.Location = New System.Drawing.Point(6, 79) - Me.chkSeasonNameTBN.Name = "chkSeasonNameTBN" - Me.chkSeasonNameTBN.Size = New System.Drawing.Size(104, 17) - Me.chkSeasonNameTBN.TabIndex = 4 - Me.chkSeasonNameTBN.Text = ".tbn*" - Me.chkSeasonNameTBN.UseVisualStyleBackColor = True - ' - 'chkSeasonPosterJPG - ' - Me.chkSeasonPosterJPG.AutoSize = True - Me.chkSeasonPosterJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkSeasonPosterJPG.Location = New System.Drawing.Point(6, 63) - Me.chkSeasonPosterJPG.Name = "chkSeasonPosterJPG" - Me.chkSeasonPosterJPG.Size = New System.Drawing.Size(84, 17) - Me.chkSeasonPosterJPG.TabIndex = 3 - Me.chkSeasonPosterJPG.Text = "poster.jpg*" - Me.chkSeasonPosterJPG.UseVisualStyleBackColor = True - ' - 'chkSeasonPosterTBN - ' - Me.chkSeasonPosterTBN.AutoSize = True - Me.chkSeasonPosterTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkSeasonPosterTBN.Location = New System.Drawing.Point(6, 47) - Me.chkSeasonPosterTBN.Name = "chkSeasonPosterTBN" - Me.chkSeasonPosterTBN.Size = New System.Drawing.Size(85, 17) - Me.chkSeasonPosterTBN.TabIndex = 2 - Me.chkSeasonPosterTBN.Text = "poster.tbn*" - Me.chkSeasonPosterTBN.UseVisualStyleBackColor = True - ' - 'chkSeasonXTBN - ' - Me.chkSeasonXTBN.AutoSize = True - Me.chkSeasonXTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkSeasonXTBN.Location = New System.Drawing.Point(6, 31) - Me.chkSeasonXTBN.Name = "chkSeasonXTBN" - Me.chkSeasonXTBN.Size = New System.Drawing.Size(89, 17) - Me.chkSeasonXTBN.TabIndex = 1 - Me.chkSeasonXTBN.Text = "seasonX.tbn" - Me.chkSeasonXTBN.UseVisualStyleBackColor = True - ' - 'chkSeasonXXTBN - ' - Me.chkSeasonXXTBN.AutoSize = True - Me.chkSeasonXXTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkSeasonXXTBN.Location = New System.Drawing.Point(6, 15) - Me.chkSeasonXXTBN.Name = "chkSeasonXXTBN" - Me.chkSeasonXXTBN.Size = New System.Drawing.Size(95, 17) - Me.chkSeasonXXTBN.TabIndex = 0 - Me.chkSeasonXXTBN.Text = "seasonXX.tbn" - Me.chkSeasonXXTBN.UseVisualStyleBackColor = True - ' - 'gbEpisodePosters - ' - Me.gbEpisodePosters.Controls.Add(Me.chkEpisodeDashThumbJPG) - Me.gbEpisodePosters.Controls.Add(Me.chkEpisodeJPG) - Me.gbEpisodePosters.Controls.Add(Me.chkEpisodeTBN) - Me.gbEpisodePosters.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.gbEpisodePosters.Location = New System.Drawing.Point(105, 121) - Me.gbEpisodePosters.Name = "gbEpisodePosters" - Me.gbEpisodePosters.Size = New System.Drawing.Size(124, 70) - Me.gbEpisodePosters.TabIndex = 4 - Me.gbEpisodePosters.TabStop = False - Me.gbEpisodePosters.Text = "Episode Posters" - ' - 'chkEpisodeDashThumbJPG - ' - Me.chkEpisodeDashThumbJPG.AutoSize = True - Me.chkEpisodeDashThumbJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkEpisodeDashThumbJPG.ForeColor = System.Drawing.SystemColors.ControlText - Me.chkEpisodeDashThumbJPG.Location = New System.Drawing.Point(6, 49) - Me.chkEpisodeDashThumbJPG.Name = "chkEpisodeDashThumbJPG" - Me.chkEpisodeDashThumbJPG.Size = New System.Drawing.Size(113, 17) - Me.chkEpisodeDashThumbJPG.TabIndex = 3 - Me.chkEpisodeDashThumbJPG.Text = "-thumb.jpg" - Me.chkEpisodeDashThumbJPG.UseVisualStyleBackColor = True - ' - 'chkEpisodeJPG - ' - Me.chkEpisodeJPG.AutoSize = True - Me.chkEpisodeJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkEpisodeJPG.Location = New System.Drawing.Point(6, 31) - Me.chkEpisodeJPG.Name = "chkEpisodeJPG" - Me.chkEpisodeJPG.Size = New System.Drawing.Size(75, 17) - Me.chkEpisodeJPG.TabIndex = 1 - Me.chkEpisodeJPG.Text = ".jpg" - Me.chkEpisodeJPG.UseVisualStyleBackColor = True - ' - 'chkEpisodeTBN - ' - Me.chkEpisodeTBN.AutoSize = True - Me.chkEpisodeTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkEpisodeTBN.Location = New System.Drawing.Point(6, 15) - Me.chkEpisodeTBN.Name = "chkEpisodeTBN" - Me.chkEpisodeTBN.Size = New System.Drawing.Size(76, 17) - Me.chkEpisodeTBN.TabIndex = 0 - Me.chkEpisodeTBN.Text = ".tbn" - Me.chkEpisodeTBN.UseVisualStyleBackColor = True - ' - 'gbShowFanart - ' - Me.gbShowFanart.Controls.Add(Me.chkShowDotFanart) - Me.gbShowFanart.Controls.Add(Me.chkShowDashFanart) - Me.gbShowFanart.Controls.Add(Me.chkShowFanartJPG) - Me.gbShowFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.gbShowFanart.Location = New System.Drawing.Point(5, 265) - Me.gbShowFanart.Name = "gbShowFanart" - Me.gbShowFanart.Size = New System.Drawing.Size(221, 50) - Me.gbShowFanart.TabIndex = 2 - Me.gbShowFanart.TabStop = False - Me.gbShowFanart.Text = "Show Fanart" - ' - 'chkShowDotFanart - ' - Me.chkShowDotFanart.AutoSize = True - Me.chkShowDotFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkShowDotFanart.Location = New System.Drawing.Point(6, 31) - Me.chkShowDotFanart.Name = "chkShowDotFanart" - Me.chkShowDotFanart.Size = New System.Drawing.Size(124, 17) - Me.chkShowDotFanart.TabIndex = 1 - Me.chkShowDotFanart.Text = ".fanart.jpg" - Me.chkShowDotFanart.UseVisualStyleBackColor = True - ' - 'chkShowDashFanart - ' - Me.chkShowDashFanart.AutoSize = True - Me.chkShowDashFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkShowDashFanart.Location = New System.Drawing.Point(6, 15) - Me.chkShowDashFanart.Name = "chkShowDashFanart" - Me.chkShowDashFanart.Size = New System.Drawing.Size(125, 17) - Me.chkShowDashFanart.TabIndex = 0 - Me.chkShowDashFanart.Text = "-fanart.jpg" - Me.chkShowDashFanart.UseVisualStyleBackColor = True - ' - 'chkShowFanartJPG - ' - Me.chkShowFanartJPG.AutoSize = True - Me.chkShowFanartJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkShowFanartJPG.Location = New System.Drawing.Point(134, 15) - Me.chkShowFanartJPG.Name = "chkShowFanartJPG" - Me.chkShowFanartJPG.Size = New System.Drawing.Size(77, 17) - Me.chkShowFanartJPG.TabIndex = 2 - Me.chkShowFanartJPG.Text = "fanart.jpg" - Me.chkShowFanartJPG.UseVisualStyleBackColor = True - ' - 'gbEpisodeFanart - ' - Me.gbEpisodeFanart.Controls.Add(Me.chkEpisodeDotFanart) - Me.gbEpisodeFanart.Controls.Add(Me.chkEpisodeDashFanart) - Me.gbEpisodeFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.gbEpisodeFanart.Location = New System.Drawing.Point(105, 67) - Me.gbEpisodeFanart.Name = "gbEpisodeFanart" - Me.gbEpisodeFanart.Size = New System.Drawing.Size(124, 52) - Me.gbEpisodeFanart.TabIndex = 5 - Me.gbEpisodeFanart.TabStop = False - Me.gbEpisodeFanart.Text = "Episode Fanart" - ' - 'chkEpisodeDotFanart - ' - Me.chkEpisodeDotFanart.AutoSize = True - Me.chkEpisodeDotFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkEpisodeDotFanart.Location = New System.Drawing.Point(5, 31) - Me.chkEpisodeDotFanart.Name = "chkEpisodeDotFanart" - Me.chkEpisodeDotFanart.Size = New System.Drawing.Size(109, 17) - Me.chkEpisodeDotFanart.TabIndex = 1 - Me.chkEpisodeDotFanart.Text = ".fanart.jpg" - Me.chkEpisodeDotFanart.UseVisualStyleBackColor = True - ' - 'chkEpisodeDashFanart - ' - Me.chkEpisodeDashFanart.AutoSize = True - Me.chkEpisodeDashFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkEpisodeDashFanart.Location = New System.Drawing.Point(5, 15) - Me.chkEpisodeDashFanart.Name = "chkEpisodeDashFanart" - Me.chkEpisodeDashFanart.Size = New System.Drawing.Size(110, 17) - Me.chkEpisodeDashFanart.TabIndex = 0 - Me.chkEpisodeDashFanart.Text = "-fanart.jpg" - Me.chkEpisodeDashFanart.UseVisualStyleBackColor = True - ' - 'gbShowPosters - ' - Me.gbShowPosters.Controls.Add(Me.chkShowJPG) - Me.gbShowPosters.Controls.Add(Me.chkShowTBN) - Me.gbShowPosters.Controls.Add(Me.chkShowPosterJPG) - Me.gbShowPosters.Controls.Add(Me.chkShowPosterTBN) - Me.gbShowPosters.Controls.Add(Me.chkShowFolderJPG) - Me.gbShowPosters.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.gbShowPosters.Location = New System.Drawing.Point(3, 67) - Me.gbShowPosters.Name = "gbShowPosters" - Me.gbShowPosters.Size = New System.Drawing.Size(98, 98) - Me.gbShowPosters.TabIndex = 1 - Me.gbShowPosters.TabStop = False - Me.gbShowPosters.Text = "Show Posters" - ' - 'chkShowJPG - ' - Me.chkShowJPG.AutoSize = True - Me.chkShowJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkShowJPG.Location = New System.Drawing.Point(6, 32) - Me.chkShowJPG.Name = "chkShowJPG" - Me.chkShowJPG.Size = New System.Drawing.Size(90, 17) - Me.chkShowJPG.TabIndex = 1 - Me.chkShowJPG.Text = ".jpg" - Me.chkShowJPG.UseVisualStyleBackColor = True - ' - 'chkShowTBN - ' - Me.chkShowTBN.AutoSize = True - Me.chkShowTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkShowTBN.Location = New System.Drawing.Point(6, 16) - Me.chkShowTBN.Name = "chkShowTBN" - Me.chkShowTBN.Size = New System.Drawing.Size(91, 17) - Me.chkShowTBN.TabIndex = 0 - Me.chkShowTBN.Text = ".tbn" - Me.chkShowTBN.UseVisualStyleBackColor = True - ' - 'chkShowPosterJPG - ' - Me.chkShowPosterJPG.AutoSize = True - Me.chkShowPosterJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkShowPosterJPG.Location = New System.Drawing.Point(6, 63) - Me.chkShowPosterJPG.Name = "chkShowPosterJPG" - Me.chkShowPosterJPG.Size = New System.Drawing.Size(79, 17) - Me.chkShowPosterJPG.TabIndex = 3 - Me.chkShowPosterJPG.Text = "poster.jpg" - Me.chkShowPosterJPG.UseVisualStyleBackColor = True - ' - 'chkShowPosterTBN - ' - Me.chkShowPosterTBN.AutoSize = True - Me.chkShowPosterTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkShowPosterTBN.Location = New System.Drawing.Point(6, 48) - Me.chkShowPosterTBN.Name = "chkShowPosterTBN" - Me.chkShowPosterTBN.Size = New System.Drawing.Size(80, 17) - Me.chkShowPosterTBN.TabIndex = 2 - Me.chkShowPosterTBN.Text = "poster.tbn" - Me.chkShowPosterTBN.UseVisualStyleBackColor = True - ' - 'chkShowFolderJPG - ' - Me.chkShowFolderJPG.AutoSize = True - Me.chkShowFolderJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkShowFolderJPG.Location = New System.Drawing.Point(6, 79) - Me.chkShowFolderJPG.Name = "chkShowFolderJPG" - Me.chkShowFolderJPG.Size = New System.Drawing.Size(77, 17) - Me.chkShowFolderJPG.TabIndex = 4 - Me.chkShowFolderJPG.Text = "folder.jpg" - Me.chkShowFolderJPG.UseVisualStyleBackColor = True - ' - 'Label11 - ' - Me.Label11.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.Label11.Location = New System.Drawing.Point(14, 4) - Me.Label11.Name = "Label11" - Me.Label11.Size = New System.Drawing.Size(341, 58) - Me.Label11.TabIndex = 0 - Me.Label11.Text = resources.GetString("Label11.Text") - Me.Label11.TextAlign = System.Drawing.ContentAlignment.MiddleCenter - ' - 'chkMovieNameDashPosterJPG - ' - Me.chkMovieNameDashPosterJPG.AutoSize = True - Me.chkMovieNameDashPosterJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkMovieNameDashPosterJPG.ForeColor = System.Drawing.SystemColors.ControlText - Me.chkMovieNameDashPosterJPG.Location = New System.Drawing.Point(10, 81) - Me.chkMovieNameDashPosterJPG.Name = "chkMovieNameDashPosterJPG" - Me.chkMovieNameDashPosterJPG.Size = New System.Drawing.Size(129, 17) - Me.chkMovieNameDashPosterJPG.TabIndex = 8 - Me.chkMovieNameDashPosterJPG.Text = "-poster.jpg" - Me.chkMovieNameDashPosterJPG.UseVisualStyleBackColor = True - ' - 'GroupBox21 - ' - Me.GroupBox21.Controls.Add(Me.rbBracketTrailer) - Me.GroupBox21.Controls.Add(Me.rbDashTrailer) - Me.GroupBox21.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.GroupBox21.Location = New System.Drawing.Point(13, 218) - Me.GroupBox21.Name = "GroupBox21" - Me.GroupBox21.Size = New System.Drawing.Size(102, 59) - Me.GroupBox21.TabIndex = 7 - Me.GroupBox21.TabStop = False - Me.GroupBox21.Text = "Trailer" - ' - 'rbBracketTrailer - ' - Me.rbBracketTrailer.AutoSize = True - Me.rbBracketTrailer.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.rbBracketTrailer.Location = New System.Drawing.Point(10, 33) - Me.rbBracketTrailer.Name = "rbBracketTrailer" - Me.rbBracketTrailer.Size = New System.Drawing.Size(61, 17) - Me.rbBracketTrailer.TabIndex = 1 - Me.rbBracketTrailer.TabStop = True - Me.rbBracketTrailer.Text = "[trailer]" - Me.rbBracketTrailer.UseVisualStyleBackColor = True - ' - 'rbDashTrailer - ' - Me.rbDashTrailer.AutoSize = True - Me.rbDashTrailer.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.rbDashTrailer.ForeColor = System.Drawing.SystemColors.ControlText - Me.rbDashTrailer.Location = New System.Drawing.Point(10, 17) - Me.rbDashTrailer.Name = "rbDashTrailer" - Me.rbDashTrailer.Size = New System.Drawing.Size(59, 17) - Me.rbDashTrailer.TabIndex = 0 - Me.rbDashTrailer.TabStop = True - Me.rbDashTrailer.Text = "-trailer" - Me.rbDashTrailer.UseVisualStyleBackColor = True - ' - 'dlgWizard - ' - Me.AcceptButton = Me.OK_Button - Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi - Me.CancelButton = Me.Cancel_Button - Me.ClientSize = New System.Drawing.Size(546, 364) - Me.Controls.Add(Me.PictureBox1) - Me.Controls.Add(Me.btnBack) - Me.Controls.Add(Me.btnNext) - Me.Controls.Add(Me.OK_Button) - Me.Controls.Add(Me.Cancel_Button) - Me.Controls.Add(Me.Panel4) - Me.Controls.Add(Me.Panel2) - Me.Controls.Add(Me.Panel6) - Me.Controls.Add(Me.Panel5) - Me.Controls.Add(Me.Panel1) - Me.Controls.Add(Me.Panel3) - Me.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog - Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) - Me.MaximizeBox = False - Me.MinimizeBox = False - Me.Name = "dlgWizard" - Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent - Me.Text = "Ember Startup Wizard" - Me.TopMost = True - Me.Panel1.ResumeLayout(False) - Me.Panel1.PerformLayout() - Me.Panel3.ResumeLayout(False) - Me.GroupBox7.ResumeLayout(False) - Me.GroupBox7.PerformLayout() - Me.GroupBox6.ResumeLayout(False) - Me.GroupBox6.PerformLayout() - Me.GroupBox5.ResumeLayout(False) - Me.GroupBox5.PerformLayout() - CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() - Me.Panel2.ResumeLayout(False) - Me.Panel6.ResumeLayout(False) - Me.Panel6.PerformLayout() - Me.Panel4.ResumeLayout(False) - Me.Panel5.ResumeLayout(False) - Me.gbAllSeasonPoster.ResumeLayout(False) - Me.gbAllSeasonPoster.PerformLayout() - Me.gbSeasonFanart.ResumeLayout(False) - Me.gbSeasonFanart.PerformLayout() - Me.gbSeasonPosters.ResumeLayout(False) - Me.gbSeasonPosters.PerformLayout() - Me.gbEpisodePosters.ResumeLayout(False) - Me.gbEpisodePosters.PerformLayout() - Me.gbShowFanart.ResumeLayout(False) - Me.gbShowFanart.PerformLayout() - Me.gbEpisodeFanart.ResumeLayout(False) - Me.gbEpisodeFanart.PerformLayout() - Me.gbShowPosters.ResumeLayout(False) - Me.gbShowPosters.PerformLayout() - Me.GroupBox21.ResumeLayout(False) - Me.GroupBox21.PerformLayout() - Me.ResumeLayout(False) + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(dlgWizard)) + Me.OK_Button = New System.Windows.Forms.Button() + Me.Cancel_Button = New System.Windows.Forms.Button() + Me.btnBack = New System.Windows.Forms.Button() + Me.btnNext = New System.Windows.Forms.Button() + Me.Panel1 = New System.Windows.Forms.Panel() + Me.Panel3 = New System.Windows.Forms.Panel() + Me.GroupBox7 = New System.Windows.Forms.GroupBox() + Me.chkMovieNameNFOStack = New System.Windows.Forms.CheckBox() + Me.chkMovieNameNFO = New System.Windows.Forms.CheckBox() + Me.chkMovieNFO = New System.Windows.Forms.CheckBox() + Me.chkVideoTSParentXBMC = New System.Windows.Forms.CheckBox() + Me.GroupBox21 = New System.Windows.Forms.GroupBox() + Me.rbBracketTrailer = New System.Windows.Forms.RadioButton() + Me.rbDashTrailer = New System.Windows.Forms.RadioButton() + Me.chkMovieNameMultiOnly = New System.Windows.Forms.CheckBox() + Me.btnMovieFrodo = New System.Windows.Forms.Button() + Me.GroupBox6 = New System.Windows.Forms.GroupBox() + Me.chkMovieNameDotFanartJPG = New System.Windows.Forms.CheckBox() + Me.chkMovieNameFanartJPG = New System.Windows.Forms.CheckBox() + Me.chkFanartJPG = New System.Windows.Forms.CheckBox() + Me.GroupBox5 = New System.Windows.Forms.GroupBox() + Me.chkMovieNameDashPosterJPG = New System.Windows.Forms.CheckBox() + Me.chkFolderJPG = New System.Windows.Forms.CheckBox() + Me.chkPosterJPG = New System.Windows.Forms.CheckBox() + Me.chkPosterTBN = New System.Windows.Forms.CheckBox() + Me.chkMovieNameJPG = New System.Windows.Forms.CheckBox() + Me.chkMovieJPG = New System.Windows.Forms.CheckBox() + Me.chkMovieNameTBN = New System.Windows.Forms.CheckBox() + Me.chkMovieTBN = New System.Windows.Forms.CheckBox() + Me.Label5 = New System.Windows.Forms.Label() + Me.Label4 = New System.Windows.Forms.Label() + Me.Label32 = New System.Windows.Forms.Label() + Me.cbIntLang = New System.Windows.Forms.ComboBox() + Me.Label2 = New System.Windows.Forms.Label() + Me.Label1 = New System.Windows.Forms.Label() + Me.PictureBox1 = New System.Windows.Forms.PictureBox() + Me.Panel2 = New System.Windows.Forms.Panel() + Me.lvMovies = New System.Windows.Forms.ListView() + Me.colID = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.colName = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.colPath = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.colRecur = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.colFolder = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.colSingle = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.btnMovieRem = New System.Windows.Forms.Button() + Me.btnMovieAddFolder = New System.Windows.Forms.Button() + Me.Label3 = New System.Windows.Forms.Label() + Me.Panel6 = New System.Windows.Forms.Panel() + Me.Label8 = New System.Windows.Forms.Label() + Me.Label6 = New System.Windows.Forms.Label() + Me.Label7 = New System.Windows.Forms.Label() + Me.Panel4 = New System.Windows.Forms.Panel() + Me.Label10 = New System.Windows.Forms.Label() + Me.btnTVLanguageFetch = New System.Windows.Forms.Button() + Me.lvTVSources = New System.Windows.Forms.ListView() + Me.ColumnHeader1 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ColumnHeader2 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ColumnHeader3 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.cbTVLanguage = New System.Windows.Forms.ComboBox() + Me.btnTVRemoveSource = New System.Windows.Forms.Button() + Me.btnTVAddSource = New System.Windows.Forms.Button() + Me.Label9 = New System.Windows.Forms.Label() + Me.Panel5 = New System.Windows.Forms.Panel() + Me.btnTVShowFrodo = New System.Windows.Forms.Button() + Me.gbAllSeasonPoster = New System.Windows.Forms.GroupBox() + Me.chkSeasonAllPosterJPG = New System.Windows.Forms.CheckBox() + Me.chkSeasonAllJPG = New System.Windows.Forms.CheckBox() + Me.chkSeasonAllTBN = New System.Windows.Forms.CheckBox() + Me.lblInsideSeason = New System.Windows.Forms.Label() + Me.gbSeasonFanart = New System.Windows.Forms.GroupBox() + Me.chkSeasonXXDashFanartJPG = New System.Windows.Forms.CheckBox() + Me.chkSeasonDotFanart = New System.Windows.Forms.CheckBox() + Me.chkSeasonDashFanart = New System.Windows.Forms.CheckBox() + Me.chkSeasonFanartJPG = New System.Windows.Forms.CheckBox() + Me.gbSeasonPosters = New System.Windows.Forms.GroupBox() + Me.chkSeasonXXDashPosterJPG = New System.Windows.Forms.CheckBox() + Me.chkSeasonFolderJPG = New System.Windows.Forms.CheckBox() + Me.chkSeasonNameJPG = New System.Windows.Forms.CheckBox() + Me.chkSeasonNameTBN = New System.Windows.Forms.CheckBox() + Me.chkSeasonPosterJPG = New System.Windows.Forms.CheckBox() + Me.chkSeasonPosterTBN = New System.Windows.Forms.CheckBox() + Me.chkSeasonXTBN = New System.Windows.Forms.CheckBox() + Me.chkSeasonXXTBN = New System.Windows.Forms.CheckBox() + Me.gbEpisodePosters = New System.Windows.Forms.GroupBox() + Me.chkEpisodeDashThumbJPG = New System.Windows.Forms.CheckBox() + Me.chkEpisodeJPG = New System.Windows.Forms.CheckBox() + Me.chkEpisodeTBN = New System.Windows.Forms.CheckBox() + Me.gbShowFanart = New System.Windows.Forms.GroupBox() + Me.chkShowDotFanart = New System.Windows.Forms.CheckBox() + Me.chkShowDashFanart = New System.Windows.Forms.CheckBox() + Me.chkShowFanartJPG = New System.Windows.Forms.CheckBox() + Me.gbEpisodeFanart = New System.Windows.Forms.GroupBox() + Me.chkEpisodeDotFanart = New System.Windows.Forms.CheckBox() + Me.chkEpisodeDashFanart = New System.Windows.Forms.CheckBox() + Me.gbShowPosters = New System.Windows.Forms.GroupBox() + Me.chkShowJPG = New System.Windows.Forms.CheckBox() + Me.chkShowTBN = New System.Windows.Forms.CheckBox() + Me.chkShowPosterJPG = New System.Windows.Forms.CheckBox() + Me.chkShowPosterTBN = New System.Windows.Forms.CheckBox() + Me.chkShowFolderJPG = New System.Windows.Forms.CheckBox() + Me.Label11 = New System.Windows.Forms.Label() + Me.Panel1.SuspendLayout() + Me.Panel3.SuspendLayout() + Me.GroupBox7.SuspendLayout() + Me.GroupBox21.SuspendLayout() + Me.GroupBox6.SuspendLayout() + Me.GroupBox5.SuspendLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.Panel2.SuspendLayout() + Me.Panel6.SuspendLayout() + Me.Panel4.SuspendLayout() + Me.Panel5.SuspendLayout() + Me.gbAllSeasonPoster.SuspendLayout() + Me.gbSeasonFanart.SuspendLayout() + Me.gbSeasonPosters.SuspendLayout() + Me.gbEpisodePosters.SuspendLayout() + Me.gbShowFanart.SuspendLayout() + Me.gbEpisodeFanart.SuspendLayout() + Me.gbShowPosters.SuspendLayout() + Me.SuspendLayout() + ' + 'OK_Button + ' + Me.OK_Button.DialogResult = System.Windows.Forms.DialogResult.OK + Me.OK_Button.Enabled = False + Me.OK_Button.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.OK_Button.Location = New System.Drawing.Point(402, 337) + Me.OK_Button.Name = "OK_Button" + Me.OK_Button.Size = New System.Drawing.Size(67, 23) + Me.OK_Button.TabIndex = 0 + Me.OK_Button.Text = "OK" + ' + 'Cancel_Button + ' + Me.Cancel_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.Cancel_Button.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Cancel_Button.Location = New System.Drawing.Point(475, 337) + Me.Cancel_Button.Name = "Cancel_Button" + Me.Cancel_Button.Size = New System.Drawing.Size(67, 23) + Me.Cancel_Button.TabIndex = 1 + Me.Cancel_Button.Text = "Cancel" + ' + 'btnBack + ' + Me.btnBack.Enabled = False + Me.btnBack.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.btnBack.Location = New System.Drawing.Point(219, 337) + Me.btnBack.Name = "btnBack" + Me.btnBack.Size = New System.Drawing.Size(67, 23) + Me.btnBack.TabIndex = 3 + Me.btnBack.Text = "< Back" + ' + 'btnNext + ' + Me.btnNext.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.btnNext.Location = New System.Drawing.Point(292, 337) + Me.btnNext.Name = "btnNext" + Me.btnNext.Size = New System.Drawing.Size(67, 23) + Me.btnNext.TabIndex = 2 + Me.btnNext.Text = "Next >" + ' + 'Panel1 + ' + Me.Panel1.BackColor = System.Drawing.Color.White + Me.Panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.Panel1.Controls.Add(Me.Label32) + Me.Panel1.Controls.Add(Me.cbIntLang) + Me.Panel1.Controls.Add(Me.Label2) + Me.Panel1.Controls.Add(Me.Label1) + Me.Panel1.Location = New System.Drawing.Point(166, 7) + Me.Panel1.Name = "Panel1" + Me.Panel1.Size = New System.Drawing.Size(376, 323) + Me.Panel1.TabIndex = 4 + ' + 'Panel3 + ' + Me.Panel3.BackColor = System.Drawing.Color.White + Me.Panel3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.Panel3.Controls.Add(Me.GroupBox7) + Me.Panel3.Controls.Add(Me.chkVideoTSParentXBMC) + Me.Panel3.Controls.Add(Me.GroupBox21) + Me.Panel3.Controls.Add(Me.chkMovieNameMultiOnly) + Me.Panel3.Controls.Add(Me.btnMovieFrodo) + Me.Panel3.Controls.Add(Me.GroupBox6) + Me.Panel3.Controls.Add(Me.GroupBox5) + Me.Panel3.Controls.Add(Me.Label5) + Me.Panel3.Controls.Add(Me.Label4) + Me.Panel3.Location = New System.Drawing.Point(666, 7) + Me.Panel3.Name = "Panel3" + Me.Panel3.Size = New System.Drawing.Size(376, 323) + Me.Panel3.TabIndex = 6 + Me.Panel3.Visible = False + ' + 'GroupBox7 + ' + Me.GroupBox7.Controls.Add(Me.chkMovieNameNFOStack) + Me.GroupBox7.Controls.Add(Me.chkMovieNameNFO) + Me.GroupBox7.Controls.Add(Me.chkMovieNFO) + Me.GroupBox7.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.GroupBox7.Location = New System.Drawing.Point(218, 181) + Me.GroupBox7.Name = "GroupBox7" + Me.GroupBox7.Size = New System.Drawing.Size(139, 74) + Me.GroupBox7.TabIndex = 3 + Me.GroupBox7.TabStop = False + Me.GroupBox7.Text = "NFO" + ' + 'chkMovieNameNFOStack + ' + Me.chkMovieNameNFOStack.AutoSize = True + Me.chkMovieNameNFOStack.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.chkMovieNameNFOStack.Location = New System.Drawing.Point(6, 53) + Me.chkMovieNameNFOStack.Name = "chkMovieNameNFOStack" + Me.chkMovieNameNFOStack.Size = New System.Drawing.Size(129, 17) + Me.chkMovieNameNFOStack.TabIndex = 2 + Me.chkMovieNameNFOStack.Text = ".nfo (Stack)" + Me.chkMovieNameNFOStack.UseVisualStyleBackColor = True + ' + 'chkMovieNameNFO + ' + Me.chkMovieNameNFO.AutoSize = True + Me.chkMovieNameNFO.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.chkMovieNameNFO.Location = New System.Drawing.Point(6, 34) + Me.chkMovieNameNFO.Name = "chkMovieNameNFO" + Me.chkMovieNameNFO.Size = New System.Drawing.Size(93, 17) + Me.chkMovieNameNFO.TabIndex = 1 + Me.chkMovieNameNFO.Text = ".nfo" + Me.chkMovieNameNFO.UseVisualStyleBackColor = True + ' + 'chkMovieNFO + ' + Me.chkMovieNFO.AutoSize = True + Me.chkMovieNFO.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.chkMovieNFO.Location = New System.Drawing.Point(6, 18) + Me.chkMovieNFO.Name = "chkMovieNFO" + Me.chkMovieNFO.Size = New System.Drawing.Size(77, 17) + Me.chkMovieNFO.TabIndex = 0 + Me.chkMovieNFO.Text = "movie.nfo" + Me.chkMovieNFO.UseVisualStyleBackColor = True + ' + 'chkVideoTSParentXBMC + ' + Me.chkVideoTSParentXBMC.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkVideoTSParentXBMC.Location = New System.Drawing.Point(20, 269) + Me.chkVideoTSParentXBMC.Name = "chkVideoTSParentXBMC" + Me.chkVideoTSParentXBMC.Size = New System.Drawing.Size(337, 26) + Me.chkVideoTSParentXBMC.TabIndex = 7 + Me.chkVideoTSParentXBMC.Text = "Frodo Compatible VIDEO_TS File Placement/Naming" + Me.chkVideoTSParentXBMC.UseVisualStyleBackColor = True + ' + 'GroupBox21 + ' + Me.GroupBox21.Controls.Add(Me.rbBracketTrailer) + Me.GroupBox21.Controls.Add(Me.rbDashTrailer) + Me.GroupBox21.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.GroupBox21.Location = New System.Drawing.Point(13, 205) + Me.GroupBox21.Name = "GroupBox21" + Me.GroupBox21.Size = New System.Drawing.Size(102, 59) + Me.GroupBox21.TabIndex = 4 + Me.GroupBox21.TabStop = False + Me.GroupBox21.Text = "Trailer" + ' + 'rbBracketTrailer + ' + Me.rbBracketTrailer.AutoSize = True + Me.rbBracketTrailer.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.rbBracketTrailer.Location = New System.Drawing.Point(10, 33) + Me.rbBracketTrailer.Name = "rbBracketTrailer" + Me.rbBracketTrailer.Size = New System.Drawing.Size(61, 17) + Me.rbBracketTrailer.TabIndex = 1 + Me.rbBracketTrailer.TabStop = True + Me.rbBracketTrailer.Text = "[trailer]" + Me.rbBracketTrailer.UseVisualStyleBackColor = True + ' + 'rbDashTrailer + ' + Me.rbDashTrailer.AutoSize = True + Me.rbDashTrailer.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.rbDashTrailer.ForeColor = System.Drawing.SystemColors.ControlText + Me.rbDashTrailer.Location = New System.Drawing.Point(10, 17) + Me.rbDashTrailer.Name = "rbDashTrailer" + Me.rbDashTrailer.Size = New System.Drawing.Size(59, 17) + Me.rbDashTrailer.TabIndex = 0 + Me.rbDashTrailer.TabStop = True + Me.rbDashTrailer.Text = "-trailer" + Me.rbDashTrailer.UseVisualStyleBackColor = True + ' + 'chkMovieNameMultiOnly + ' + Me.chkMovieNameMultiOnly.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkMovieNameMultiOnly.Location = New System.Drawing.Point(121, 236) + Me.chkMovieNameMultiOnly.Name = "chkMovieNameMultiOnly" + Me.chkMovieNameMultiOnly.Size = New System.Drawing.Size(236, 34) + Me.chkMovieNameMultiOnly.TabIndex = 6 + Me.chkMovieNameMultiOnly.Text = "Use Only for Folders with Multiple Movies" + Me.chkMovieNameMultiOnly.UseVisualStyleBackColor = True + ' + 'btnMovieFrodo + ' + Me.btnMovieFrodo.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.btnMovieFrodo.Location = New System.Drawing.Point(121, 213) + Me.btnMovieFrodo.Name = "btnMovieFrodo" + Me.btnMovieFrodo.Size = New System.Drawing.Size(91, 23) + Me.btnMovieFrodo.TabIndex = 5 + Me.btnMovieFrodo.Text = "XBMC Frodo" + Me.btnMovieFrodo.UseVisualStyleBackColor = True + ' + 'GroupBox6 + ' + Me.GroupBox6.Controls.Add(Me.chkMovieNameDotFanartJPG) + Me.GroupBox6.Controls.Add(Me.chkMovieNameFanartJPG) + Me.GroupBox6.Controls.Add(Me.chkFanartJPG) + Me.GroupBox6.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.GroupBox6.Location = New System.Drawing.Point(218, 107) + Me.GroupBox6.Name = "GroupBox6" + Me.GroupBox6.Size = New System.Drawing.Size(139, 70) + Me.GroupBox6.TabIndex = 2 + Me.GroupBox6.TabStop = False + Me.GroupBox6.Text = "Fanart" + ' + 'chkMovieNameDotFanartJPG + ' + Me.chkMovieNameDotFanartJPG.AutoSize = True + Me.chkMovieNameDotFanartJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.chkMovieNameDotFanartJPG.Location = New System.Drawing.Point(6, 51) + Me.chkMovieNameDotFanartJPG.Name = "chkMovieNameDotFanartJPG" + Me.chkMovieNameDotFanartJPG.Size = New System.Drawing.Size(126, 17) + Me.chkMovieNameDotFanartJPG.TabIndex = 2 + Me.chkMovieNameDotFanartJPG.Text = ".fanart.jpg" + Me.chkMovieNameDotFanartJPG.UseVisualStyleBackColor = True + ' + 'chkMovieNameFanartJPG + ' + Me.chkMovieNameFanartJPG.AutoSize = True + Me.chkMovieNameFanartJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.chkMovieNameFanartJPG.Location = New System.Drawing.Point(6, 35) + Me.chkMovieNameFanartJPG.Name = "chkMovieNameFanartJPG" + Me.chkMovieNameFanartJPG.Size = New System.Drawing.Size(127, 17) + Me.chkMovieNameFanartJPG.TabIndex = 1 + Me.chkMovieNameFanartJPG.Text = "-fanart.jpg" + Me.chkMovieNameFanartJPG.UseVisualStyleBackColor = True + ' + 'chkFanartJPG + ' + Me.chkFanartJPG.AutoSize = True + Me.chkFanartJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.chkFanartJPG.Location = New System.Drawing.Point(6, 19) + Me.chkFanartJPG.Name = "chkFanartJPG" + Me.chkFanartJPG.Size = New System.Drawing.Size(77, 17) + Me.chkFanartJPG.TabIndex = 0 + Me.chkFanartJPG.Text = "fanart.jpg" + Me.chkFanartJPG.UseVisualStyleBackColor = True + ' + 'GroupBox5 + ' + Me.GroupBox5.Controls.Add(Me.chkMovieNameDashPosterJPG) + Me.GroupBox5.Controls.Add(Me.chkFolderJPG) + Me.GroupBox5.Controls.Add(Me.chkPosterJPG) + Me.GroupBox5.Controls.Add(Me.chkPosterTBN) + Me.GroupBox5.Controls.Add(Me.chkMovieNameJPG) + Me.GroupBox5.Controls.Add(Me.chkMovieJPG) + Me.GroupBox5.Controls.Add(Me.chkMovieNameTBN) + Me.GroupBox5.Controls.Add(Me.chkMovieTBN) + Me.GroupBox5.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.GroupBox5.Location = New System.Drawing.Point(13, 107) + Me.GroupBox5.Name = "GroupBox5" + Me.GroupBox5.Size = New System.Drawing.Size(199, 104) + Me.GroupBox5.TabIndex = 1 + Me.GroupBox5.TabStop = False + Me.GroupBox5.Text = "Posters" + ' + 'chkMovieNameDashPosterJPG + ' + Me.chkMovieNameDashPosterJPG.AutoSize = True + Me.chkMovieNameDashPosterJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkMovieNameDashPosterJPG.ForeColor = System.Drawing.SystemColors.ControlText + Me.chkMovieNameDashPosterJPG.Location = New System.Drawing.Point(10, 81) + Me.chkMovieNameDashPosterJPG.Name = "chkMovieNameDashPosterJPG" + Me.chkMovieNameDashPosterJPG.Size = New System.Drawing.Size(129, 17) + Me.chkMovieNameDashPosterJPG.TabIndex = 8 + Me.chkMovieNameDashPosterJPG.Text = "-poster.jpg" + Me.chkMovieNameDashPosterJPG.UseVisualStyleBackColor = True + ' + 'chkFolderJPG + ' + Me.chkFolderJPG.AutoSize = True + Me.chkFolderJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.chkFolderJPG.Location = New System.Drawing.Point(10, 65) + Me.chkFolderJPG.Name = "chkFolderJPG" + Me.chkFolderJPG.Size = New System.Drawing.Size(77, 17) + Me.chkFolderJPG.TabIndex = 3 + Me.chkFolderJPG.Text = "folder.jpg" + Me.chkFolderJPG.UseVisualStyleBackColor = True + ' + 'chkPosterJPG + ' + Me.chkPosterJPG.AutoSize = True + Me.chkPosterJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.chkPosterJPG.Location = New System.Drawing.Point(100, 49) + Me.chkPosterJPG.Name = "chkPosterJPG" + Me.chkPosterJPG.Size = New System.Drawing.Size(79, 17) + Me.chkPosterJPG.TabIndex = 6 + Me.chkPosterJPG.Text = "poster.jpg" + Me.chkPosterJPG.UseVisualStyleBackColor = True + ' + 'chkPosterTBN + ' + Me.chkPosterTBN.AutoSize = True + Me.chkPosterTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.chkPosterTBN.Location = New System.Drawing.Point(10, 49) + Me.chkPosterTBN.Name = "chkPosterTBN" + Me.chkPosterTBN.Size = New System.Drawing.Size(80, 17) + Me.chkPosterTBN.TabIndex = 2 + Me.chkPosterTBN.Text = "poster.tbn" + Me.chkPosterTBN.UseVisualStyleBackColor = True + ' + 'chkMovieNameJPG + ' + Me.chkMovieNameJPG.AutoSize = True + Me.chkMovieNameJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.chkMovieNameJPG.Location = New System.Drawing.Point(100, 33) + Me.chkMovieNameJPG.Name = "chkMovieNameJPG" + Me.chkMovieNameJPG.Size = New System.Drawing.Size(92, 17) + Me.chkMovieNameJPG.TabIndex = 5 + Me.chkMovieNameJPG.Text = ".jpg" + Me.chkMovieNameJPG.UseVisualStyleBackColor = True + ' + 'chkMovieJPG + ' + Me.chkMovieJPG.AutoSize = True + Me.chkMovieJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.chkMovieJPG.Location = New System.Drawing.Point(10, 33) + Me.chkMovieJPG.Name = "chkMovieJPG" + Me.chkMovieJPG.Size = New System.Drawing.Size(76, 17) + Me.chkMovieJPG.TabIndex = 1 + Me.chkMovieJPG.Text = "movie.jpg" + Me.chkMovieJPG.UseVisualStyleBackColor = True + ' + 'chkMovieNameTBN + ' + Me.chkMovieNameTBN.AutoSize = True + Me.chkMovieNameTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.chkMovieNameTBN.Location = New System.Drawing.Point(100, 17) + Me.chkMovieNameTBN.Name = "chkMovieNameTBN" + Me.chkMovieNameTBN.Size = New System.Drawing.Size(93, 17) + Me.chkMovieNameTBN.TabIndex = 4 + Me.chkMovieNameTBN.Text = ".tbn" + Me.chkMovieNameTBN.UseVisualStyleBackColor = True + ' + 'chkMovieTBN + ' + Me.chkMovieTBN.AutoSize = True + Me.chkMovieTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.chkMovieTBN.Location = New System.Drawing.Point(10, 17) + Me.chkMovieTBN.Name = "chkMovieTBN" + Me.chkMovieTBN.Size = New System.Drawing.Size(77, 17) + Me.chkMovieTBN.TabIndex = 0 + Me.chkMovieTBN.Text = "movie.tbn" + Me.chkMovieTBN.UseVisualStyleBackColor = True + ' + 'Label5 + ' + Me.Label5.Font = New System.Drawing.Font("Segoe UI", 6.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label5.Location = New System.Drawing.Point(45, 292) + Me.Label5.Name = "Label5" + Me.Label5.Size = New System.Drawing.Size(286, 30) + Me.Label5.TabIndex = 5 + Me.Label5.Text = "TIP: Selections containing the text means that Ember Media Manager will u" & _ + "se the filename of the movie." + Me.Label5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter + ' + 'Label4 + ' + Me.Label4.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Label4.Location = New System.Drawing.Point(13, 15) + Me.Label4.Name = "Label4" + Me.Label4.Size = New System.Drawing.Size(341, 93) + Me.Label4.TabIndex = 0 + Me.Label4.Text = resources.GetString("Label4.Text") + Me.Label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter + ' + 'Label32 + ' + Me.Label32.AutoSize = True + Me.Label32.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Label32.Location = New System.Drawing.Point(108, 260) + Me.Label32.Name = "Label32" + Me.Label32.Size = New System.Drawing.Size(110, 13) + Me.Label32.TabIndex = 2 + Me.Label32.Text = "Interface Language:" + ' + 'cbIntLang + ' + Me.cbIntLang.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cbIntLang.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.cbIntLang.FormattingEnabled = True + Me.cbIntLang.Location = New System.Drawing.Point(110, 275) + Me.cbIntLang.Name = "cbIntLang" + Me.cbIntLang.Size = New System.Drawing.Size(148, 21) + Me.cbIntLang.TabIndex = 3 + ' + 'Label2 + ' + Me.Label2.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Label2.Location = New System.Drawing.Point(17, 46) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(337, 201) + Me.Label2.TabIndex = 1 + Me.Label2.Text = resources.GetString("Label2.Text") + Me.Label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Font = New System.Drawing.Font("Segoe UI", 14.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Label1.Location = New System.Drawing.Point(15, 15) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(325, 25) + Me.Label1.TabIndex = 0 + Me.Label1.Text = "Welcome to Ember Media Manager" + ' + 'PictureBox1 + ' + Me.PictureBox1.BackColor = System.Drawing.Color.White + Me.PictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.PictureBox1.Image = Global.Ember_Media_Manager.My.Resources.Resources.Wizard + Me.PictureBox1.Location = New System.Drawing.Point(3, 7) + Me.PictureBox1.Name = "PictureBox1" + Me.PictureBox1.Size = New System.Drawing.Size(157, 353) + Me.PictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage + Me.PictureBox1.TabIndex = 0 + Me.PictureBox1.TabStop = False + ' + 'Panel2 + ' + Me.Panel2.BackColor = System.Drawing.Color.White + Me.Panel2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.Panel2.Controls.Add(Me.lvMovies) + Me.Panel2.Controls.Add(Me.btnMovieRem) + Me.Panel2.Controls.Add(Me.btnMovieAddFolder) + Me.Panel2.Controls.Add(Me.Label3) + Me.Panel2.Location = New System.Drawing.Point(566, 7) + Me.Panel2.Name = "Panel2" + Me.Panel2.Size = New System.Drawing.Size(376, 323) + Me.Panel2.TabIndex = 5 + Me.Panel2.Visible = False + ' + 'lvMovies + ' + Me.lvMovies.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.colID, Me.colName, Me.colPath, Me.colRecur, Me.colFolder, Me.colSingle}) + Me.lvMovies.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lvMovies.FullRowSelect = True + Me.lvMovies.HideSelection = False + Me.lvMovies.Location = New System.Drawing.Point(6, 124) + Me.lvMovies.Name = "lvMovies" + Me.lvMovies.Size = New System.Drawing.Size(362, 105) + Me.lvMovies.Sorting = System.Windows.Forms.SortOrder.Ascending + Me.lvMovies.TabIndex = 1 + Me.lvMovies.UseCompatibleStateImageBehavior = False + Me.lvMovies.View = System.Windows.Forms.View.Details + ' + 'colID + ' + Me.colID.Width = 0 + ' + 'colName + ' + Me.colName.Text = "Name" + Me.colName.Width = 50 + ' + 'colPath + ' + Me.colPath.Text = "Path" + Me.colPath.Width = 125 + ' + 'colRecur + ' + Me.colRecur.Text = "Recursive" + ' + 'colFolder + ' + Me.colFolder.Text = "Use Folder Name" + ' + 'colSingle + ' + Me.colSingle.Text = "Single Video" + ' + 'btnMovieRem + ' + Me.btnMovieRem.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.btnMovieRem.Image = CType(resources.GetObject("btnMovieRem.Image"), System.Drawing.Image) + Me.btnMovieRem.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnMovieRem.Location = New System.Drawing.Point(264, 236) + Me.btnMovieRem.Name = "btnMovieRem" + Me.btnMovieRem.Size = New System.Drawing.Size(104, 23) + Me.btnMovieRem.TabIndex = 3 + Me.btnMovieRem.Text = "Remove" + Me.btnMovieRem.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnMovieRem.UseVisualStyleBackColor = True + ' + 'btnMovieAddFolder + ' + Me.btnMovieAddFolder.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.btnMovieAddFolder.Image = CType(resources.GetObject("btnMovieAddFolder.Image"), System.Drawing.Image) + Me.btnMovieAddFolder.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnMovieAddFolder.Location = New System.Drawing.Point(4, 236) + Me.btnMovieAddFolder.Name = "btnMovieAddFolder" + Me.btnMovieAddFolder.Size = New System.Drawing.Size(104, 23) + Me.btnMovieAddFolder.TabIndex = 2 + Me.btnMovieAddFolder.Text = "Add Source" + Me.btnMovieAddFolder.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnMovieAddFolder.UseVisualStyleBackColor = True + ' + 'Label3 + ' + Me.Label3.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Label3.Location = New System.Drawing.Point(19, 15) + Me.Label3.Name = "Label3" + Me.Label3.Size = New System.Drawing.Size(332, 93) + Me.Label3.TabIndex = 0 + Me.Label3.Text = "First, let's tell Ember Media Manager where to locate all your movies. You can ad" & _ + "d as many sources as you wish." + Me.Label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter + ' + 'Panel6 + ' + Me.Panel6.BackColor = System.Drawing.Color.White + Me.Panel6.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.Panel6.Controls.Add(Me.Label8) + Me.Panel6.Controls.Add(Me.Label6) + Me.Panel6.Controls.Add(Me.Label7) + Me.Panel6.Location = New System.Drawing.Point(959, 406) + Me.Panel6.Name = "Panel6" + Me.Panel6.Size = New System.Drawing.Size(376, 323) + Me.Panel6.TabIndex = 9 + Me.Panel6.Visible = False + ' + 'Label8 + ' + Me.Label8.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Label8.Location = New System.Drawing.Point(3, 105) + Me.Label8.Name = "Label8" + Me.Label8.Size = New System.Drawing.Size(369, 216) + Me.Label8.TabIndex = 2 + Me.Label8.Text = resources.GetString("Label8.Text") + ' + 'Label6 + ' + Me.Label6.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Label6.Location = New System.Drawing.Point(17, 57) + Me.Label6.Name = "Label6" + Me.Label6.Size = New System.Drawing.Size(337, 46) + Me.Label6.TabIndex = 1 + Me.Label6.Text = "That wasn't so hard was it? As mentioned earlier, you can change these or any ot" & _ + "her options in the Settings dialog." + Me.Label6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter + ' + 'Label7 + ' + Me.Label7.AutoSize = True + Me.Label7.Font = New System.Drawing.Font("Segoe UI", 14.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Label7.Location = New System.Drawing.Point(36, 5) + Me.Label7.Name = "Label7" + Me.Label7.Size = New System.Drawing.Size(297, 50) + Me.Label7.TabIndex = 0 + Me.Label7.Text = "That's it!" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "Ember Media Manager is Ready!" + Me.Label7.TextAlign = System.Drawing.ContentAlignment.MiddleCenter + ' + 'Panel4 + ' + Me.Panel4.BackColor = System.Drawing.Color.White + Me.Panel4.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.Panel4.Controls.Add(Me.Label10) + Me.Panel4.Controls.Add(Me.btnTVLanguageFetch) + Me.Panel4.Controls.Add(Me.lvTVSources) + Me.Panel4.Controls.Add(Me.cbTVLanguage) + Me.Panel4.Controls.Add(Me.btnTVRemoveSource) + Me.Panel4.Controls.Add(Me.btnTVAddSource) + Me.Panel4.Controls.Add(Me.Label9) + Me.Panel4.Location = New System.Drawing.Point(166, 406) + Me.Panel4.Name = "Panel4" + Me.Panel4.Size = New System.Drawing.Size(376, 323) + Me.Panel4.TabIndex = 7 + Me.Panel4.Visible = False + ' + 'Label10 + ' + Me.Label10.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Label10.Location = New System.Drawing.Point(18, 220) + Me.Label10.Name = "Label10" + Me.Label10.Size = New System.Drawing.Size(332, 41) + Me.Label10.TabIndex = 4 + Me.Label10.Text = "Now select the default language you would like Ember to look for when scraping TV" & _ + " Show items." + Me.Label10.TextAlign = System.Drawing.ContentAlignment.MiddleCenter + ' + 'btnTVLanguageFetch + ' + Me.btnTVLanguageFetch.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.btnTVLanguageFetch.Location = New System.Drawing.Point(101, 293) + Me.btnTVLanguageFetch.Name = "btnTVLanguageFetch" + Me.btnTVLanguageFetch.Size = New System.Drawing.Size(166, 23) + Me.btnTVLanguageFetch.TabIndex = 5 + Me.btnTVLanguageFetch.Text = "Fetch Available Languages" + Me.btnTVLanguageFetch.UseVisualStyleBackColor = True + ' + 'lvTVSources + ' + Me.lvTVSources.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ColumnHeader1, Me.ColumnHeader2, Me.ColumnHeader3}) + Me.lvTVSources.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lvTVSources.FullRowSelect = True + Me.lvTVSources.HideSelection = False + Me.lvTVSources.Location = New System.Drawing.Point(6, 82) + Me.lvTVSources.Name = "lvTVSources" + Me.lvTVSources.Size = New System.Drawing.Size(360, 105) + Me.lvTVSources.Sorting = System.Windows.Forms.SortOrder.Ascending + Me.lvTVSources.TabIndex = 1 + Me.lvTVSources.UseCompatibleStateImageBehavior = False + Me.lvTVSources.View = System.Windows.Forms.View.Details + ' + 'ColumnHeader1 + ' + Me.ColumnHeader1.Width = 0 + ' + 'ColumnHeader2 + ' + Me.ColumnHeader2.Text = "Name" + Me.ColumnHeader2.Width = 94 + ' + 'ColumnHeader3 + ' + Me.ColumnHeader3.Text = "Path" + Me.ColumnHeader3.Width = 261 + ' + 'cbTVLanguage + ' + Me.cbTVLanguage.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cbTVLanguage.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.cbTVLanguage.Location = New System.Drawing.Point(101, 268) + Me.cbTVLanguage.Name = "cbTVLanguage" + Me.cbTVLanguage.Size = New System.Drawing.Size(166, 21) + Me.cbTVLanguage.TabIndex = 6 + ' + 'btnTVRemoveSource + ' + Me.btnTVRemoveSource.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.btnTVRemoveSource.Image = CType(resources.GetObject("btnTVRemoveSource.Image"), System.Drawing.Image) + Me.btnTVRemoveSource.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnTVRemoveSource.Location = New System.Drawing.Point(264, 194) + Me.btnTVRemoveSource.Name = "btnTVRemoveSource" + Me.btnTVRemoveSource.Size = New System.Drawing.Size(104, 23) + Me.btnTVRemoveSource.TabIndex = 3 + Me.btnTVRemoveSource.Text = "Remove" + Me.btnTVRemoveSource.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnTVRemoveSource.UseVisualStyleBackColor = True + ' + 'btnTVAddSource + ' + Me.btnTVAddSource.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.btnTVAddSource.Image = CType(resources.GetObject("btnTVAddSource.Image"), System.Drawing.Image) + Me.btnTVAddSource.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnTVAddSource.Location = New System.Drawing.Point(4, 194) + Me.btnTVAddSource.Name = "btnTVAddSource" + Me.btnTVAddSource.Size = New System.Drawing.Size(104, 23) + Me.btnTVAddSource.TabIndex = 2 + Me.btnTVAddSource.Text = "Add Source" + Me.btnTVAddSource.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnTVAddSource.UseVisualStyleBackColor = True + ' + 'Label9 + ' + Me.Label9.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Label9.Location = New System.Drawing.Point(19, 15) + Me.Label9.Name = "Label9" + Me.Label9.Size = New System.Drawing.Size(332, 64) + Me.Label9.TabIndex = 0 + Me.Label9.Text = "Next, let's tell Ember Media Manager where to locate all your TV Shows. You can a" & _ + "dd as many sources as you wish." + Me.Label9.TextAlign = System.Drawing.ContentAlignment.MiddleCenter + ' + 'Panel5 + ' + Me.Panel5.BackColor = System.Drawing.Color.White + Me.Panel5.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.Panel5.Controls.Add(Me.btnTVShowFrodo) + Me.Panel5.Controls.Add(Me.gbAllSeasonPoster) + Me.Panel5.Controls.Add(Me.lblInsideSeason) + Me.Panel5.Controls.Add(Me.gbSeasonFanart) + Me.Panel5.Controls.Add(Me.gbSeasonPosters) + Me.Panel5.Controls.Add(Me.gbEpisodePosters) + Me.Panel5.Controls.Add(Me.gbShowFanart) + Me.Panel5.Controls.Add(Me.gbEpisodeFanart) + Me.Panel5.Controls.Add(Me.gbShowPosters) + Me.Panel5.Controls.Add(Me.Label11) + Me.Panel5.Location = New System.Drawing.Point(566, 406) + Me.Panel5.Name = "Panel5" + Me.Panel5.Size = New System.Drawing.Size(376, 323) + Me.Panel5.TabIndex = 8 + Me.Panel5.Visible = False + ' + 'btnTVShowFrodo + ' + Me.btnTVShowFrodo.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.btnTVShowFrodo.Location = New System.Drawing.Point(3, 170) + Me.btnTVShowFrodo.Name = "btnTVShowFrodo" + Me.btnTVShowFrodo.Size = New System.Drawing.Size(98, 32) + Me.btnTVShowFrodo.TabIndex = 9 + Me.btnTVShowFrodo.Text = "XBMC Frodo" + Me.btnTVShowFrodo.UseVisualStyleBackColor = True + ' + 'gbAllSeasonPoster + ' + Me.gbAllSeasonPoster.Controls.Add(Me.chkSeasonAllPosterJPG) + Me.gbAllSeasonPoster.Controls.Add(Me.chkSeasonAllJPG) + Me.gbAllSeasonPoster.Controls.Add(Me.chkSeasonAllTBN) + Me.gbAllSeasonPoster.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.gbAllSeasonPoster.Location = New System.Drawing.Point(4, 207) + Me.gbAllSeasonPoster.Name = "gbAllSeasonPoster" + Me.gbAllSeasonPoster.Size = New System.Drawing.Size(217, 54) + Me.gbAllSeasonPoster.TabIndex = 3 + Me.gbAllSeasonPoster.TabStop = False + Me.gbAllSeasonPoster.Text = "All Season Posters" + ' + 'chkSeasonAllPosterJPG + ' + Me.chkSeasonAllPosterJPG.AutoSize = True + Me.chkSeasonAllPosterJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkSeasonAllPosterJPG.ForeColor = System.Drawing.SystemColors.ControlText + Me.chkSeasonAllPosterJPG.Location = New System.Drawing.Point(6, 16) + Me.chkSeasonAllPosterJPG.Name = "chkSeasonAllPosterJPG" + Me.chkSeasonAllPosterJPG.Size = New System.Drawing.Size(135, 17) + Me.chkSeasonAllPosterJPG.TabIndex = 7 + Me.chkSeasonAllPosterJPG.Text = "season-all-poster.jpg" + Me.chkSeasonAllPosterJPG.UseVisualStyleBackColor = True + ' + 'chkSeasonAllJPG + ' + Me.chkSeasonAllJPG.AutoSize = True + Me.chkSeasonAllJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkSeasonAllJPG.Location = New System.Drawing.Point(6, 35) + Me.chkSeasonAllJPG.Name = "chkSeasonAllJPG" + Me.chkSeasonAllJPG.Size = New System.Drawing.Size(98, 17) + Me.chkSeasonAllJPG.TabIndex = 1 + Me.chkSeasonAllJPG.Text = "season-all.jpg" + Me.chkSeasonAllJPG.UseVisualStyleBackColor = True + ' + 'chkSeasonAllTBN + ' + Me.chkSeasonAllTBN.AutoSize = True + Me.chkSeasonAllTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkSeasonAllTBN.Location = New System.Drawing.Point(112, 35) + Me.chkSeasonAllTBN.Name = "chkSeasonAllTBN" + Me.chkSeasonAllTBN.Size = New System.Drawing.Size(99, 17) + Me.chkSeasonAllTBN.TabIndex = 0 + Me.chkSeasonAllTBN.Text = "season-all.tbn" + Me.chkSeasonAllTBN.UseVisualStyleBackColor = True + ' + 'lblInsideSeason + ' + Me.lblInsideSeason.Font = New System.Drawing.Font("Microsoft Sans Serif", 6.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblInsideSeason.Location = New System.Drawing.Point(232, 305) + Me.lblInsideSeason.Name = "lblInsideSeason" + Me.lblInsideSeason.Size = New System.Drawing.Size(144, 12) + Me.lblInsideSeason.TabIndex = 8 + Me.lblInsideSeason.Text = " * Inside Season directory" + Me.lblInsideSeason.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + ' + 'gbSeasonFanart + ' + Me.gbSeasonFanart.Controls.Add(Me.chkSeasonXXDashFanartJPG) + Me.gbSeasonFanart.Controls.Add(Me.chkSeasonDotFanart) + Me.gbSeasonFanart.Controls.Add(Me.chkSeasonDashFanart) + Me.gbSeasonFanart.Controls.Add(Me.chkSeasonFanartJPG) + Me.gbSeasonFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.gbSeasonFanart.Location = New System.Drawing.Point(226, 218) + Me.gbSeasonFanart.Name = "gbSeasonFanart" + Me.gbSeasonFanart.Size = New System.Drawing.Size(145, 84) + Me.gbSeasonFanart.TabIndex = 7 + Me.gbSeasonFanart.TabStop = False + Me.gbSeasonFanart.Text = "Season Fanart" + ' + 'chkSeasonXXDashFanartJPG + ' + Me.chkSeasonXXDashFanartJPG.AutoSize = True + Me.chkSeasonXXDashFanartJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkSeasonXXDashFanartJPG.ForeColor = System.Drawing.SystemColors.ControlText + Me.chkSeasonXXDashFanartJPG.Location = New System.Drawing.Point(6, 64) + Me.chkSeasonXXDashFanartJPG.Name = "chkSeasonXXDashFanartJPG" + Me.chkSeasonXXDashFanartJPG.Size = New System.Drawing.Size(129, 17) + Me.chkSeasonXXDashFanartJPG.TabIndex = 4 + Me.chkSeasonXXDashFanartJPG.Text = "seasonXX-fanart.jpg" + Me.chkSeasonXXDashFanartJPG.UseVisualStyleBackColor = True + ' + 'chkSeasonDotFanart + ' + Me.chkSeasonDotFanart.AutoSize = True + Me.chkSeasonDotFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkSeasonDotFanart.Location = New System.Drawing.Point(6, 47) + Me.chkSeasonDotFanart.Name = "chkSeasonDotFanart" + Me.chkSeasonDotFanart.Size = New System.Drawing.Size(137, 17) + Me.chkSeasonDotFanart.TabIndex = 2 + Me.chkSeasonDotFanart.Text = ".fanart.jpg*" + Me.chkSeasonDotFanart.UseVisualStyleBackColor = True + ' + 'chkSeasonDashFanart + ' + Me.chkSeasonDashFanart.AutoSize = True + Me.chkSeasonDashFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkSeasonDashFanart.Location = New System.Drawing.Point(6, 31) + Me.chkSeasonDashFanart.Name = "chkSeasonDashFanart" + Me.chkSeasonDashFanart.Size = New System.Drawing.Size(138, 17) + Me.chkSeasonDashFanart.TabIndex = 1 + Me.chkSeasonDashFanart.Text = "-fanart.jpg*" + Me.chkSeasonDashFanart.UseVisualStyleBackColor = True + ' + 'chkSeasonFanartJPG + ' + Me.chkSeasonFanartJPG.AutoSize = True + Me.chkSeasonFanartJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkSeasonFanartJPG.Location = New System.Drawing.Point(6, 15) + Me.chkSeasonFanartJPG.Name = "chkSeasonFanartJPG" + Me.chkSeasonFanartJPG.Size = New System.Drawing.Size(82, 17) + Me.chkSeasonFanartJPG.TabIndex = 0 + Me.chkSeasonFanartJPG.Text = "fanart.jpg*" + Me.chkSeasonFanartJPG.UseVisualStyleBackColor = True + ' + 'gbSeasonPosters + ' + Me.gbSeasonPosters.Controls.Add(Me.chkSeasonXXDashPosterJPG) + Me.gbSeasonPosters.Controls.Add(Me.chkSeasonFolderJPG) + Me.gbSeasonPosters.Controls.Add(Me.chkSeasonNameJPG) + Me.gbSeasonPosters.Controls.Add(Me.chkSeasonNameTBN) + Me.gbSeasonPosters.Controls.Add(Me.chkSeasonPosterJPG) + Me.gbSeasonPosters.Controls.Add(Me.chkSeasonPosterTBN) + Me.gbSeasonPosters.Controls.Add(Me.chkSeasonXTBN) + Me.gbSeasonPosters.Controls.Add(Me.chkSeasonXXTBN) + Me.gbSeasonPosters.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.gbSeasonPosters.Location = New System.Drawing.Point(233, 69) + Me.gbSeasonPosters.Name = "gbSeasonPosters" + Me.gbSeasonPosters.Size = New System.Drawing.Size(138, 150) + Me.gbSeasonPosters.TabIndex = 6 + Me.gbSeasonPosters.TabStop = False + Me.gbSeasonPosters.Text = "Season Posters" + ' + 'chkSeasonXXDashPosterJPG + ' + Me.chkSeasonXXDashPosterJPG.AutoSize = True + Me.chkSeasonXXDashPosterJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkSeasonXXDashPosterJPG.ForeColor = System.Drawing.SystemColors.ControlText + Me.chkSeasonXXDashPosterJPG.Location = New System.Drawing.Point(6, 128) + Me.chkSeasonXXDashPosterJPG.Name = "chkSeasonXXDashPosterJPG" + Me.chkSeasonXXDashPosterJPG.Size = New System.Drawing.Size(131, 17) + Me.chkSeasonXXDashPosterJPG.TabIndex = 7 + Me.chkSeasonXXDashPosterJPG.Text = "seasonXX-poster.jpg" + Me.chkSeasonXXDashPosterJPG.UseVisualStyleBackColor = True + ' + 'chkSeasonFolderJPG + ' + Me.chkSeasonFolderJPG.AutoSize = True + Me.chkSeasonFolderJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkSeasonFolderJPG.Location = New System.Drawing.Point(6, 111) + Me.chkSeasonFolderJPG.Name = "chkSeasonFolderJPG" + Me.chkSeasonFolderJPG.Size = New System.Drawing.Size(82, 17) + Me.chkSeasonFolderJPG.TabIndex = 6 + Me.chkSeasonFolderJPG.Text = "folder.jpg*" + Me.chkSeasonFolderJPG.UseVisualStyleBackColor = True + ' + 'chkSeasonNameJPG + ' + Me.chkSeasonNameJPG.AutoSize = True + Me.chkSeasonNameJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkSeasonNameJPG.Location = New System.Drawing.Point(6, 95) + Me.chkSeasonNameJPG.Name = "chkSeasonNameJPG" + Me.chkSeasonNameJPG.Size = New System.Drawing.Size(103, 17) + Me.chkSeasonNameJPG.TabIndex = 5 + Me.chkSeasonNameJPG.Text = ".jpg*" + Me.chkSeasonNameJPG.UseVisualStyleBackColor = True + ' + 'chkSeasonNameTBN + ' + Me.chkSeasonNameTBN.AutoSize = True + Me.chkSeasonNameTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkSeasonNameTBN.Location = New System.Drawing.Point(6, 79) + Me.chkSeasonNameTBN.Name = "chkSeasonNameTBN" + Me.chkSeasonNameTBN.Size = New System.Drawing.Size(104, 17) + Me.chkSeasonNameTBN.TabIndex = 4 + Me.chkSeasonNameTBN.Text = ".tbn*" + Me.chkSeasonNameTBN.UseVisualStyleBackColor = True + ' + 'chkSeasonPosterJPG + ' + Me.chkSeasonPosterJPG.AutoSize = True + Me.chkSeasonPosterJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkSeasonPosterJPG.Location = New System.Drawing.Point(6, 63) + Me.chkSeasonPosterJPG.Name = "chkSeasonPosterJPG" + Me.chkSeasonPosterJPG.Size = New System.Drawing.Size(84, 17) + Me.chkSeasonPosterJPG.TabIndex = 3 + Me.chkSeasonPosterJPG.Text = "poster.jpg*" + Me.chkSeasonPosterJPG.UseVisualStyleBackColor = True + ' + 'chkSeasonPosterTBN + ' + Me.chkSeasonPosterTBN.AutoSize = True + Me.chkSeasonPosterTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkSeasonPosterTBN.Location = New System.Drawing.Point(6, 47) + Me.chkSeasonPosterTBN.Name = "chkSeasonPosterTBN" + Me.chkSeasonPosterTBN.Size = New System.Drawing.Size(85, 17) + Me.chkSeasonPosterTBN.TabIndex = 2 + Me.chkSeasonPosterTBN.Text = "poster.tbn*" + Me.chkSeasonPosterTBN.UseVisualStyleBackColor = True + ' + 'chkSeasonXTBN + ' + Me.chkSeasonXTBN.AutoSize = True + Me.chkSeasonXTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkSeasonXTBN.Location = New System.Drawing.Point(6, 31) + Me.chkSeasonXTBN.Name = "chkSeasonXTBN" + Me.chkSeasonXTBN.Size = New System.Drawing.Size(89, 17) + Me.chkSeasonXTBN.TabIndex = 1 + Me.chkSeasonXTBN.Text = "seasonX.tbn" + Me.chkSeasonXTBN.UseVisualStyleBackColor = True + ' + 'chkSeasonXXTBN + ' + Me.chkSeasonXXTBN.AutoSize = True + Me.chkSeasonXXTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkSeasonXXTBN.Location = New System.Drawing.Point(6, 15) + Me.chkSeasonXXTBN.Name = "chkSeasonXXTBN" + Me.chkSeasonXXTBN.Size = New System.Drawing.Size(95, 17) + Me.chkSeasonXXTBN.TabIndex = 0 + Me.chkSeasonXXTBN.Text = "seasonXX.tbn" + Me.chkSeasonXXTBN.UseVisualStyleBackColor = True + ' + 'gbEpisodePosters + ' + Me.gbEpisodePosters.Controls.Add(Me.chkEpisodeDashThumbJPG) + Me.gbEpisodePosters.Controls.Add(Me.chkEpisodeJPG) + Me.gbEpisodePosters.Controls.Add(Me.chkEpisodeTBN) + Me.gbEpisodePosters.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.gbEpisodePosters.Location = New System.Drawing.Point(105, 121) + Me.gbEpisodePosters.Name = "gbEpisodePosters" + Me.gbEpisodePosters.Size = New System.Drawing.Size(124, 70) + Me.gbEpisodePosters.TabIndex = 4 + Me.gbEpisodePosters.TabStop = False + Me.gbEpisodePosters.Text = "Episode Posters" + ' + 'chkEpisodeDashThumbJPG + ' + Me.chkEpisodeDashThumbJPG.AutoSize = True + Me.chkEpisodeDashThumbJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkEpisodeDashThumbJPG.ForeColor = System.Drawing.SystemColors.ControlText + Me.chkEpisodeDashThumbJPG.Location = New System.Drawing.Point(6, 49) + Me.chkEpisodeDashThumbJPG.Name = "chkEpisodeDashThumbJPG" + Me.chkEpisodeDashThumbJPG.Size = New System.Drawing.Size(113, 17) + Me.chkEpisodeDashThumbJPG.TabIndex = 3 + Me.chkEpisodeDashThumbJPG.Text = "-thumb.jpg" + Me.chkEpisodeDashThumbJPG.UseVisualStyleBackColor = True + ' + 'chkEpisodeJPG + ' + Me.chkEpisodeJPG.AutoSize = True + Me.chkEpisodeJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkEpisodeJPG.Location = New System.Drawing.Point(6, 31) + Me.chkEpisodeJPG.Name = "chkEpisodeJPG" + Me.chkEpisodeJPG.Size = New System.Drawing.Size(75, 17) + Me.chkEpisodeJPG.TabIndex = 1 + Me.chkEpisodeJPG.Text = ".jpg" + Me.chkEpisodeJPG.UseVisualStyleBackColor = True + ' + 'chkEpisodeTBN + ' + Me.chkEpisodeTBN.AutoSize = True + Me.chkEpisodeTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkEpisodeTBN.Location = New System.Drawing.Point(6, 15) + Me.chkEpisodeTBN.Name = "chkEpisodeTBN" + Me.chkEpisodeTBN.Size = New System.Drawing.Size(76, 17) + Me.chkEpisodeTBN.TabIndex = 0 + Me.chkEpisodeTBN.Text = ".tbn" + Me.chkEpisodeTBN.UseVisualStyleBackColor = True + ' + 'gbShowFanart + ' + Me.gbShowFanart.Controls.Add(Me.chkShowDotFanart) + Me.gbShowFanart.Controls.Add(Me.chkShowDashFanart) + Me.gbShowFanart.Controls.Add(Me.chkShowFanartJPG) + Me.gbShowFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.gbShowFanart.Location = New System.Drawing.Point(5, 265) + Me.gbShowFanart.Name = "gbShowFanart" + Me.gbShowFanart.Size = New System.Drawing.Size(221, 50) + Me.gbShowFanart.TabIndex = 2 + Me.gbShowFanart.TabStop = False + Me.gbShowFanart.Text = "Show Fanart" + ' + 'chkShowDotFanart + ' + Me.chkShowDotFanart.AutoSize = True + Me.chkShowDotFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkShowDotFanart.Location = New System.Drawing.Point(6, 31) + Me.chkShowDotFanart.Name = "chkShowDotFanart" + Me.chkShowDotFanart.Size = New System.Drawing.Size(124, 17) + Me.chkShowDotFanart.TabIndex = 1 + Me.chkShowDotFanart.Text = ".fanart.jpg" + Me.chkShowDotFanart.UseVisualStyleBackColor = True + ' + 'chkShowDashFanart + ' + Me.chkShowDashFanart.AutoSize = True + Me.chkShowDashFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkShowDashFanart.Location = New System.Drawing.Point(6, 15) + Me.chkShowDashFanart.Name = "chkShowDashFanart" + Me.chkShowDashFanart.Size = New System.Drawing.Size(125, 17) + Me.chkShowDashFanart.TabIndex = 0 + Me.chkShowDashFanart.Text = "-fanart.jpg" + Me.chkShowDashFanart.UseVisualStyleBackColor = True + ' + 'chkShowFanartJPG + ' + Me.chkShowFanartJPG.AutoSize = True + Me.chkShowFanartJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkShowFanartJPG.Location = New System.Drawing.Point(134, 15) + Me.chkShowFanartJPG.Name = "chkShowFanartJPG" + Me.chkShowFanartJPG.Size = New System.Drawing.Size(77, 17) + Me.chkShowFanartJPG.TabIndex = 2 + Me.chkShowFanartJPG.Text = "fanart.jpg" + Me.chkShowFanartJPG.UseVisualStyleBackColor = True + ' + 'gbEpisodeFanart + ' + Me.gbEpisodeFanart.Controls.Add(Me.chkEpisodeDotFanart) + Me.gbEpisodeFanart.Controls.Add(Me.chkEpisodeDashFanart) + Me.gbEpisodeFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.gbEpisodeFanart.Location = New System.Drawing.Point(105, 67) + Me.gbEpisodeFanart.Name = "gbEpisodeFanart" + Me.gbEpisodeFanart.Size = New System.Drawing.Size(124, 52) + Me.gbEpisodeFanart.TabIndex = 5 + Me.gbEpisodeFanart.TabStop = False + Me.gbEpisodeFanart.Text = "Episode Fanart" + ' + 'chkEpisodeDotFanart + ' + Me.chkEpisodeDotFanart.AutoSize = True + Me.chkEpisodeDotFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkEpisodeDotFanart.Location = New System.Drawing.Point(5, 31) + Me.chkEpisodeDotFanart.Name = "chkEpisodeDotFanart" + Me.chkEpisodeDotFanart.Size = New System.Drawing.Size(109, 17) + Me.chkEpisodeDotFanart.TabIndex = 1 + Me.chkEpisodeDotFanart.Text = ".fanart.jpg" + Me.chkEpisodeDotFanart.UseVisualStyleBackColor = True + ' + 'chkEpisodeDashFanart + ' + Me.chkEpisodeDashFanart.AutoSize = True + Me.chkEpisodeDashFanart.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkEpisodeDashFanart.Location = New System.Drawing.Point(5, 15) + Me.chkEpisodeDashFanart.Name = "chkEpisodeDashFanart" + Me.chkEpisodeDashFanart.Size = New System.Drawing.Size(110, 17) + Me.chkEpisodeDashFanart.TabIndex = 0 + Me.chkEpisodeDashFanart.Text = "-fanart.jpg" + Me.chkEpisodeDashFanart.UseVisualStyleBackColor = True + ' + 'gbShowPosters + ' + Me.gbShowPosters.Controls.Add(Me.chkShowJPG) + Me.gbShowPosters.Controls.Add(Me.chkShowTBN) + Me.gbShowPosters.Controls.Add(Me.chkShowPosterJPG) + Me.gbShowPosters.Controls.Add(Me.chkShowPosterTBN) + Me.gbShowPosters.Controls.Add(Me.chkShowFolderJPG) + Me.gbShowPosters.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.gbShowPosters.Location = New System.Drawing.Point(3, 67) + Me.gbShowPosters.Name = "gbShowPosters" + Me.gbShowPosters.Size = New System.Drawing.Size(98, 98) + Me.gbShowPosters.TabIndex = 1 + Me.gbShowPosters.TabStop = False + Me.gbShowPosters.Text = "Show Posters" + ' + 'chkShowJPG + ' + Me.chkShowJPG.AutoSize = True + Me.chkShowJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkShowJPG.Location = New System.Drawing.Point(6, 32) + Me.chkShowJPG.Name = "chkShowJPG" + Me.chkShowJPG.Size = New System.Drawing.Size(90, 17) + Me.chkShowJPG.TabIndex = 1 + Me.chkShowJPG.Text = ".jpg" + Me.chkShowJPG.UseVisualStyleBackColor = True + ' + 'chkShowTBN + ' + Me.chkShowTBN.AutoSize = True + Me.chkShowTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkShowTBN.Location = New System.Drawing.Point(6, 16) + Me.chkShowTBN.Name = "chkShowTBN" + Me.chkShowTBN.Size = New System.Drawing.Size(91, 17) + Me.chkShowTBN.TabIndex = 0 + Me.chkShowTBN.Text = ".tbn" + Me.chkShowTBN.UseVisualStyleBackColor = True + ' + 'chkShowPosterJPG + ' + Me.chkShowPosterJPG.AutoSize = True + Me.chkShowPosterJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkShowPosterJPG.Location = New System.Drawing.Point(6, 63) + Me.chkShowPosterJPG.Name = "chkShowPosterJPG" + Me.chkShowPosterJPG.Size = New System.Drawing.Size(79, 17) + Me.chkShowPosterJPG.TabIndex = 3 + Me.chkShowPosterJPG.Text = "poster.jpg" + Me.chkShowPosterJPG.UseVisualStyleBackColor = True + ' + 'chkShowPosterTBN + ' + Me.chkShowPosterTBN.AutoSize = True + Me.chkShowPosterTBN.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkShowPosterTBN.Location = New System.Drawing.Point(6, 48) + Me.chkShowPosterTBN.Name = "chkShowPosterTBN" + Me.chkShowPosterTBN.Size = New System.Drawing.Size(80, 17) + Me.chkShowPosterTBN.TabIndex = 2 + Me.chkShowPosterTBN.Text = "poster.tbn" + Me.chkShowPosterTBN.UseVisualStyleBackColor = True + ' + 'chkShowFolderJPG + ' + Me.chkShowFolderJPG.AutoSize = True + Me.chkShowFolderJPG.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkShowFolderJPG.Location = New System.Drawing.Point(6, 79) + Me.chkShowFolderJPG.Name = "chkShowFolderJPG" + Me.chkShowFolderJPG.Size = New System.Drawing.Size(77, 17) + Me.chkShowFolderJPG.TabIndex = 4 + Me.chkShowFolderJPG.Text = "folder.jpg" + Me.chkShowFolderJPG.UseVisualStyleBackColor = True + ' + 'Label11 + ' + Me.Label11.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Label11.Location = New System.Drawing.Point(14, 4) + Me.Label11.Name = "Label11" + Me.Label11.Size = New System.Drawing.Size(341, 58) + Me.Label11.TabIndex = 0 + Me.Label11.Text = resources.GetString("Label11.Text") + Me.Label11.TextAlign = System.Drawing.ContentAlignment.MiddleCenter + ' + 'dlgWizard + ' + Me.AcceptButton = Me.OK_Button + Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi + Me.CancelButton = Me.Cancel_Button + Me.ClientSize = New System.Drawing.Size(546, 364) + Me.Controls.Add(Me.Panel3) + Me.Controls.Add(Me.PictureBox1) + Me.Controls.Add(Me.btnBack) + Me.Controls.Add(Me.btnNext) + Me.Controls.Add(Me.OK_Button) + Me.Controls.Add(Me.Cancel_Button) + Me.Controls.Add(Me.Panel4) + Me.Controls.Add(Me.Panel2) + Me.Controls.Add(Me.Panel6) + Me.Controls.Add(Me.Panel5) + Me.Controls.Add(Me.Panel1) + Me.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "dlgWizard" + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "Ember Startup Wizard" + Me.TopMost = True + Me.Panel1.ResumeLayout(False) + Me.Panel1.PerformLayout() + Me.Panel3.ResumeLayout(False) + Me.GroupBox7.ResumeLayout(False) + Me.GroupBox7.PerformLayout() + Me.GroupBox21.ResumeLayout(False) + Me.GroupBox21.PerformLayout() + Me.GroupBox6.ResumeLayout(False) + Me.GroupBox6.PerformLayout() + Me.GroupBox5.ResumeLayout(False) + Me.GroupBox5.PerformLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() + Me.Panel2.ResumeLayout(False) + Me.Panel6.ResumeLayout(False) + Me.Panel6.PerformLayout() + Me.Panel4.ResumeLayout(False) + Me.Panel5.ResumeLayout(False) + Me.gbAllSeasonPoster.ResumeLayout(False) + Me.gbAllSeasonPoster.PerformLayout() + Me.gbSeasonFanart.ResumeLayout(False) + Me.gbSeasonFanart.PerformLayout() + Me.gbSeasonPosters.ResumeLayout(False) + Me.gbSeasonPosters.PerformLayout() + Me.gbEpisodePosters.ResumeLayout(False) + Me.gbEpisodePosters.PerformLayout() + Me.gbShowFanart.ResumeLayout(False) + Me.gbShowFanart.PerformLayout() + Me.gbEpisodeFanart.ResumeLayout(False) + Me.gbEpisodeFanart.PerformLayout() + Me.gbShowPosters.ResumeLayout(False) + Me.gbShowPosters.PerformLayout() + Me.ResumeLayout(False) - End Sub - Friend WithEvents OK_Button As System.Windows.Forms.Button - Friend WithEvents Cancel_Button As System.Windows.Forms.Button - Friend WithEvents btnBack As System.Windows.Forms.Button - Friend WithEvents btnNext As System.Windows.Forms.Button - Friend WithEvents Panel1 As System.Windows.Forms.Panel - Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox - Friend WithEvents Label2 As System.Windows.Forms.Label - Friend WithEvents Label1 As System.Windows.Forms.Label - Friend WithEvents Panel2 As System.Windows.Forms.Panel - Friend WithEvents Panel3 As System.Windows.Forms.Panel - Friend WithEvents Label3 As System.Windows.Forms.Label - Friend WithEvents btnMovieRem As System.Windows.Forms.Button - Friend WithEvents btnMovieAddFolder As System.Windows.Forms.Button - Friend WithEvents Label5 As System.Windows.Forms.Label - Friend WithEvents Label4 As System.Windows.Forms.Label - Friend WithEvents GroupBox7 As System.Windows.Forms.GroupBox - Friend WithEvents chkMovieNameNFO As System.Windows.Forms.CheckBox - Friend WithEvents chkMovieNFO As System.Windows.Forms.CheckBox - Friend WithEvents GroupBox6 As System.Windows.Forms.GroupBox - Friend WithEvents chkMovieNameDotFanartJPG As System.Windows.Forms.CheckBox - Friend WithEvents chkMovieNameFanartJPG As System.Windows.Forms.CheckBox - Friend WithEvents chkFanartJPG As System.Windows.Forms.CheckBox - Friend WithEvents GroupBox5 As System.Windows.Forms.GroupBox - Friend WithEvents chkFolderJPG As System.Windows.Forms.CheckBox - Friend WithEvents chkPosterJPG As System.Windows.Forms.CheckBox - Friend WithEvents chkPosterTBN As System.Windows.Forms.CheckBox - Friend WithEvents chkMovieNameJPG As System.Windows.Forms.CheckBox - Friend WithEvents chkMovieJPG As System.Windows.Forms.CheckBox - Friend WithEvents chkMovieNameTBN As System.Windows.Forms.CheckBox - Friend WithEvents chkMovieTBN As System.Windows.Forms.CheckBox - Friend WithEvents Panel6 As System.Windows.Forms.Panel - Friend WithEvents Label6 As System.Windows.Forms.Label - Friend WithEvents Label7 As System.Windows.Forms.Label - Friend WithEvents Label8 As System.Windows.Forms.Label - Friend WithEvents lvMovies As System.Windows.Forms.ListView - Friend WithEvents colID As System.Windows.Forms.ColumnHeader - Friend WithEvents colName As System.Windows.Forms.ColumnHeader - Friend WithEvents colPath As System.Windows.Forms.ColumnHeader - Friend WithEvents colRecur As System.Windows.Forms.ColumnHeader - Friend WithEvents colFolder As System.Windows.Forms.ColumnHeader - Friend WithEvents colSingle As System.Windows.Forms.ColumnHeader - Friend WithEvents chkMovieNameMultiOnly As System.Windows.Forms.CheckBox - Friend WithEvents Label32 As System.Windows.Forms.Label - Friend WithEvents cbIntLang As System.Windows.Forms.ComboBox - Friend WithEvents Panel4 As System.Windows.Forms.Panel - Friend WithEvents btnTVRemoveSource As System.Windows.Forms.Button - Friend WithEvents btnTVAddSource As System.Windows.Forms.Button - Friend WithEvents Label9 As System.Windows.Forms.Label - Friend WithEvents lvTVSources As System.Windows.Forms.ListView - Friend WithEvents ColumnHeader1 As System.Windows.Forms.ColumnHeader - Friend WithEvents ColumnHeader2 As System.Windows.Forms.ColumnHeader - Friend WithEvents ColumnHeader3 As System.Windows.Forms.ColumnHeader - Friend WithEvents Panel5 As System.Windows.Forms.Panel - Friend WithEvents Label11 As System.Windows.Forms.Label - Friend WithEvents gbAllSeasonPoster As System.Windows.Forms.GroupBox - Friend WithEvents chkSeasonAllJPG As System.Windows.Forms.CheckBox - Friend WithEvents chkSeasonAllTBN As System.Windows.Forms.CheckBox - Friend WithEvents lblInsideSeason As System.Windows.Forms.Label - Friend WithEvents gbEpisodeFanart As System.Windows.Forms.GroupBox - Friend WithEvents chkEpisodeDotFanart As System.Windows.Forms.CheckBox - Friend WithEvents chkEpisodeDashFanart As System.Windows.Forms.CheckBox - Friend WithEvents gbEpisodePosters As System.Windows.Forms.GroupBox - Friend WithEvents chkEpisodeJPG As System.Windows.Forms.CheckBox - Friend WithEvents chkEpisodeTBN As System.Windows.Forms.CheckBox - Friend WithEvents gbSeasonFanart As System.Windows.Forms.GroupBox - Friend WithEvents chkSeasonDotFanart As System.Windows.Forms.CheckBox - Friend WithEvents chkSeasonDashFanart As System.Windows.Forms.CheckBox - Friend WithEvents chkSeasonFanartJPG As System.Windows.Forms.CheckBox - Friend WithEvents gbSeasonPosters As System.Windows.Forms.GroupBox - Friend WithEvents chkSeasonFolderJPG As System.Windows.Forms.CheckBox - Friend WithEvents chkSeasonNameJPG As System.Windows.Forms.CheckBox - Friend WithEvents chkSeasonNameTBN As System.Windows.Forms.CheckBox - Friend WithEvents chkSeasonPosterJPG As System.Windows.Forms.CheckBox - Friend WithEvents chkSeasonPosterTBN As System.Windows.Forms.CheckBox - Friend WithEvents chkSeasonXTBN As System.Windows.Forms.CheckBox - Friend WithEvents chkSeasonXXTBN As System.Windows.Forms.CheckBox - Friend WithEvents gbShowFanart As System.Windows.Forms.GroupBox - Friend WithEvents chkShowDotFanart As System.Windows.Forms.CheckBox - Friend WithEvents chkShowDashFanart As System.Windows.Forms.CheckBox - Friend WithEvents chkShowFanartJPG As System.Windows.Forms.CheckBox - Friend WithEvents gbShowPosters As System.Windows.Forms.GroupBox - Friend WithEvents chkShowJPG As System.Windows.Forms.CheckBox - Friend WithEvents chkShowTBN As System.Windows.Forms.CheckBox - Friend WithEvents chkShowPosterJPG As System.Windows.Forms.CheckBox - Friend WithEvents chkShowPosterTBN As System.Windows.Forms.CheckBox - Friend WithEvents chkShowFolderJPG As System.Windows.Forms.CheckBox - Friend WithEvents Label10 As System.Windows.Forms.Label - Friend WithEvents btnTVLanguageFetch As System.Windows.Forms.Button + End Sub + Friend WithEvents OK_Button As System.Windows.Forms.Button + Friend WithEvents Cancel_Button As System.Windows.Forms.Button + Friend WithEvents btnBack As System.Windows.Forms.Button + Friend WithEvents btnNext As System.Windows.Forms.Button + Friend WithEvents Panel1 As System.Windows.Forms.Panel + Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox + Friend WithEvents Label2 As System.Windows.Forms.Label + Friend WithEvents Label1 As System.Windows.Forms.Label + Friend WithEvents Panel2 As System.Windows.Forms.Panel + Friend WithEvents Panel3 As System.Windows.Forms.Panel + Friend WithEvents Label3 As System.Windows.Forms.Label + Friend WithEvents btnMovieRem As System.Windows.Forms.Button + Friend WithEvents btnMovieAddFolder As System.Windows.Forms.Button + Friend WithEvents Label5 As System.Windows.Forms.Label + Friend WithEvents Label4 As System.Windows.Forms.Label + Friend WithEvents GroupBox7 As System.Windows.Forms.GroupBox + Friend WithEvents chkMovieNameNFO As System.Windows.Forms.CheckBox + Friend WithEvents chkMovieNFO As System.Windows.Forms.CheckBox + Friend WithEvents GroupBox6 As System.Windows.Forms.GroupBox + Friend WithEvents chkMovieNameDotFanartJPG As System.Windows.Forms.CheckBox + Friend WithEvents chkMovieNameFanartJPG As System.Windows.Forms.CheckBox + Friend WithEvents chkFanartJPG As System.Windows.Forms.CheckBox + Friend WithEvents GroupBox5 As System.Windows.Forms.GroupBox + Friend WithEvents chkFolderJPG As System.Windows.Forms.CheckBox + Friend WithEvents chkPosterJPG As System.Windows.Forms.CheckBox + Friend WithEvents chkPosterTBN As System.Windows.Forms.CheckBox + Friend WithEvents chkMovieNameJPG As System.Windows.Forms.CheckBox + Friend WithEvents chkMovieJPG As System.Windows.Forms.CheckBox + Friend WithEvents chkMovieNameTBN As System.Windows.Forms.CheckBox + Friend WithEvents chkMovieTBN As System.Windows.Forms.CheckBox + Friend WithEvents Panel6 As System.Windows.Forms.Panel + Friend WithEvents Label6 As System.Windows.Forms.Label + Friend WithEvents Label7 As System.Windows.Forms.Label + Friend WithEvents Label8 As System.Windows.Forms.Label + Friend WithEvents lvMovies As System.Windows.Forms.ListView + Friend WithEvents colID As System.Windows.Forms.ColumnHeader + Friend WithEvents colName As System.Windows.Forms.ColumnHeader + Friend WithEvents colPath As System.Windows.Forms.ColumnHeader + Friend WithEvents colRecur As System.Windows.Forms.ColumnHeader + Friend WithEvents colFolder As System.Windows.Forms.ColumnHeader + Friend WithEvents colSingle As System.Windows.Forms.ColumnHeader + Friend WithEvents chkMovieNameMultiOnly As System.Windows.Forms.CheckBox + Friend WithEvents Label32 As System.Windows.Forms.Label + Friend WithEvents cbIntLang As System.Windows.Forms.ComboBox + Friend WithEvents Panel4 As System.Windows.Forms.Panel + Friend WithEvents btnTVRemoveSource As System.Windows.Forms.Button + Friend WithEvents btnTVAddSource As System.Windows.Forms.Button + Friend WithEvents Label9 As System.Windows.Forms.Label + Friend WithEvents lvTVSources As System.Windows.Forms.ListView + Friend WithEvents ColumnHeader1 As System.Windows.Forms.ColumnHeader + Friend WithEvents ColumnHeader2 As System.Windows.Forms.ColumnHeader + Friend WithEvents ColumnHeader3 As System.Windows.Forms.ColumnHeader + Friend WithEvents Panel5 As System.Windows.Forms.Panel + Friend WithEvents Label11 As System.Windows.Forms.Label + Friend WithEvents gbAllSeasonPoster As System.Windows.Forms.GroupBox + Friend WithEvents chkSeasonAllJPG As System.Windows.Forms.CheckBox + Friend WithEvents chkSeasonAllTBN As System.Windows.Forms.CheckBox + Friend WithEvents lblInsideSeason As System.Windows.Forms.Label + Friend WithEvents gbEpisodeFanart As System.Windows.Forms.GroupBox + Friend WithEvents chkEpisodeDotFanart As System.Windows.Forms.CheckBox + Friend WithEvents chkEpisodeDashFanart As System.Windows.Forms.CheckBox + Friend WithEvents gbEpisodePosters As System.Windows.Forms.GroupBox + Friend WithEvents chkEpisodeJPG As System.Windows.Forms.CheckBox + Friend WithEvents chkEpisodeTBN As System.Windows.Forms.CheckBox + Friend WithEvents gbSeasonFanart As System.Windows.Forms.GroupBox + Friend WithEvents chkSeasonDotFanart As System.Windows.Forms.CheckBox + Friend WithEvents chkSeasonDashFanart As System.Windows.Forms.CheckBox + Friend WithEvents chkSeasonFanartJPG As System.Windows.Forms.CheckBox + Friend WithEvents gbSeasonPosters As System.Windows.Forms.GroupBox + Friend WithEvents chkSeasonFolderJPG As System.Windows.Forms.CheckBox + Friend WithEvents chkSeasonNameJPG As System.Windows.Forms.CheckBox + Friend WithEvents chkSeasonNameTBN As System.Windows.Forms.CheckBox + Friend WithEvents chkSeasonPosterJPG As System.Windows.Forms.CheckBox + Friend WithEvents chkSeasonPosterTBN As System.Windows.Forms.CheckBox + Friend WithEvents chkSeasonXTBN As System.Windows.Forms.CheckBox + Friend WithEvents chkSeasonXXTBN As System.Windows.Forms.CheckBox + Friend WithEvents gbShowFanart As System.Windows.Forms.GroupBox + Friend WithEvents chkShowDotFanart As System.Windows.Forms.CheckBox + Friend WithEvents chkShowDashFanart As System.Windows.Forms.CheckBox + Friend WithEvents chkShowFanartJPG As System.Windows.Forms.CheckBox + Friend WithEvents gbShowPosters As System.Windows.Forms.GroupBox + Friend WithEvents chkShowJPG As System.Windows.Forms.CheckBox + Friend WithEvents chkShowTBN As System.Windows.Forms.CheckBox + Friend WithEvents chkShowPosterJPG As System.Windows.Forms.CheckBox + Friend WithEvents chkShowPosterTBN As System.Windows.Forms.CheckBox + Friend WithEvents chkShowFolderJPG As System.Windows.Forms.CheckBox + Friend WithEvents Label10 As System.Windows.Forms.Label + Friend WithEvents btnTVLanguageFetch As System.Windows.Forms.Button Friend WithEvents cbTVLanguage As System.Windows.Forms.ComboBox Friend WithEvents btnTVShowFrodo As System.Windows.Forms.Button Friend WithEvents chkEpisodeDashThumbJPG As System.Windows.Forms.CheckBox @@ -1397,5 +1422,6 @@ Partial Class dlgWizard Friend WithEvents GroupBox21 As System.Windows.Forms.GroupBox Friend WithEvents rbBracketTrailer As System.Windows.Forms.RadioButton Friend WithEvents rbDashTrailer As System.Windows.Forms.RadioButton - + Friend WithEvents chkVideoTSParentXBMC As System.Windows.Forms.CheckBox + Friend WithEvents chkMovieNameNFOStack As System.Windows.Forms.CheckBox End Class diff --git a/Ember Media Manager/dlgWizard.resx b/Ember Media Manager/dlgWizard.resx index 493e645..5ed5eb6 100644 --- a/Ember Media Manager/dlgWizard.resx +++ b/Ember Media Manager/dlgWizard.resx @@ -130,34 +130,33 @@ Only a handful of settings will be covered in this wizard. You can change these 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 - QmCC + CukB/XXO0wAAAq1JREFUOE+lzl1IU2Ecx/GBlAQVCkV3TZMIzC6SijCkiy666AWrSWIWFZqplTkVJUtb + 5utWKsV6MyMzk6AMp6ldLC/MtcL3ueZ0Tuc2N7cz5zTbOWfj17PBDsquogPf8zwPPP8PDw/Af8Vt3NM1 + 0bTxcSJjkgpo8zPScwE9Vy+gLQ2+Et3ml0dXDwby/1zDheGsWcp6rC/gma+Hx/YKHvtreKkmeB3N8Dpb + /P02f6yYdWB9ELA4kBvJGB6CnX0A1lgD1lQH1vwInjkpPJan8MHe+SdYmuuBnVo22mzzIoeDCuUAhzKL + T+vLwejvk0rBTJeRKsDMVIE1iP2wx1gJl6kbTpcbFGUHQfZygK03lU9PloCZLAIzcYusd8DoisFM3SWJ + /Cg7dRuLBhkWFv/AbrfNEGQdB1h7Uvju8QLQGiHoXzlkzQU9ng9oi4AJAhGU1d6AU98KyrniAwp9cxxg + +nKWvzImhHs0k5QBWpUJduw6hkcS8HPkOEGz4FKXg7JZQDkW3OT5W9YA+nYBf2kwG0v9V7DcnwZ24CqY + oUxIlRGoVmzF8nAKVrQtcLi8sFotzYFhDhj/cIq/8OManIpUUH0XoVUkQaNMRt23aFT1RkGlTIBmtBRz + 5AWmwbdlQYDq3Um+rTcDzp7LUH09jWx5BPLkUSiW70IJKU++E1ndm6DQvYdb3VYdBHxvOBZpkKfD1HUB + 6s5ESDoO+BO2xyBbthvijlhIuuPRNSSDuq+hNggYepMQpvmcxox9OgdNazIMbecxLUtBelMskhpjoOs4 + A12XCBpZXqOl88SONUAIz/9tLLi0L6E2P75EnHNIJLkZVyoRxt07Ur7HeLgyxiXKPSguSNldQO5FkSLI + TCQpjHsBOYSsVgPxtoVvDtu/PZw783gbyF1foYGZoKF/C7y/i3XTbS25p8IAAAAASUVORK5CYII= @@ -173,34 +172,33 @@ Locks - This section allows you to "lock" certain information so it does not get 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 - QmCC + CukB/XXO0wAAAq1JREFUOE+lzl1IU2Ecx/GBlAQVCkV3TZMIzC6SijCkiy666AWrSWIWFZqplTkVJUtb + 5utWKsV6MyMzk6AMp6ldLC/MtcL3ueZ0Tuc2N7cz5zTbOWfj17PBDsquogPf8zwPPP8PDw/Af8Vt3NM1 + 0bTxcSJjkgpo8zPScwE9Vy+gLQ2+Et3ml0dXDwby/1zDheGsWcp6rC/gma+Hx/YKHvtreKkmeB3N8Dpb + /P02f6yYdWB9ELA4kBvJGB6CnX0A1lgD1lQH1vwInjkpPJan8MHe+SdYmuuBnVo22mzzIoeDCuUAhzKL + T+vLwejvk0rBTJeRKsDMVIE1iP2wx1gJl6kbTpcbFGUHQfZygK03lU9PloCZLAIzcYusd8DoisFM3SWJ + /Cg7dRuLBhkWFv/AbrfNEGQdB1h7Uvju8QLQGiHoXzlkzQU9ng9oi4AJAhGU1d6AU98KyrniAwp9cxxg + +nKWvzImhHs0k5QBWpUJduw6hkcS8HPkOEGz4FKXg7JZQDkW3OT5W9YA+nYBf2kwG0v9V7DcnwZ24CqY + oUxIlRGoVmzF8nAKVrQtcLi8sFotzYFhDhj/cIq/8OManIpUUH0XoVUkQaNMRt23aFT1RkGlTIBmtBRz + 5AWmwbdlQYDq3Um+rTcDzp7LUH09jWx5BPLkUSiW70IJKU++E1ndm6DQvYdb3VYdBHxvOBZpkKfD1HUB + 6s5ESDoO+BO2xyBbthvijlhIuuPRNSSDuq+hNggYepMQpvmcxox9OgdNazIMbecxLUtBelMskhpjoOs4 + A12XCBpZXqOl88SONUAIz/9tLLi0L6E2P75EnHNIJLkZVyoRxt07Ur7HeLgyxiXKPSguSNldQO5FkSLI + TCQpjHsBOYSsVgPxtoVvDtu/PZw783gbyF1foYGZoKF/C7y/i3XTbS25p8IAAAAASUVORK5CYII= diff --git a/Ember Media Manager/dlgWizard.vb b/Ember Media Manager/dlgWizard.vb index 3a4add6..4706c92 100644 --- a/Ember Media Manager/dlgWizard.vb +++ b/Ember Media Manager/dlgWizard.vb @@ -142,7 +142,9 @@ Public Class dlgWizard Me.chkMovieNameDotFanartJPG.Checked = Master.eSettings.MovieNameDotFanartJPG Me.chkMovieNFO.Checked = Master.eSettings.MovieNFO Me.chkMovieNameNFO.Checked = Master.eSettings.MovieNameNFO + Me.chkMovieNameNFOStack.Checked = Master.eSettings.MovieNameNFOStack Me.chkMovieNameMultiOnly.Checked = Master.eSettings.MovieNameMultiOnly + Me.chkVideoTSParentXBMC.Checked = Master.eSettings.VideoTSParentXBMC Me.cbIntLang.SelectedItem = Master.eSettings.Language Me.chkSeasonAllTBN.Checked = Master.eSettings.SeasonAllTBN Me.chkSeasonAllJPG.Checked = Master.eSettings.SeasonAllJPG @@ -165,7 +167,8 @@ Public Class dlgWizard Me.chkSeasonDashFanart.Checked = Master.eSettings.SeasonDashFanart Me.chkSeasonDotFanart.Checked = Master.eSettings.SeasonDotFanart Me.chkEpisodeTBN.Checked = Master.eSettings.EpisodeTBN - Me.chkEpisodeJPG.Checked = Master.eSettings.EpisodeJPG + Me.chkEpisodeJPG.Checked = Master.eSettings.EpisodeJPG + Me.chkEpisodeDashThumbJPG.Checked = Master.eSettings.EpisodeDashThumbJPG Me.chkEpisodeDashFanart.Checked = Master.eSettings.EpisodeDashFanart Me.chkEpisodeDotFanart.Checked = Master.eSettings.EpisodeDotFanart Me.tLangList.Clear() @@ -328,7 +331,6 @@ Public Class dlgWizard Master.eSettings.MovieNameDashPosterJPG = Me.chkMovieNameDashPosterJPG.Checked Master.eSettings.DashTrailer = Me.rbDashTrailer.Checked Master.eSettings.SeasonXXDashFanartJPG = Me.chkSeasonXXDashFanartJPG.Checked - Master.eSettings.MovieTBN = Me.chkMovieTBN.Checked Master.eSettings.MovieNameTBN = Me.chkMovieNameTBN.Checked Master.eSettings.MovieJPG = Me.chkMovieJPG.Checked @@ -341,7 +343,9 @@ Public Class dlgWizard Master.eSettings.MovieNameDotFanartJPG = Me.chkMovieNameDotFanartJPG.Checked Master.eSettings.MovieNFO = Me.chkMovieNFO.Checked Master.eSettings.MovieNameNFO = Me.chkMovieNameNFO.Checked + Master.eSettings.MovieNameNFOStack = Me.chkMovieNameNFOStack.Checked Master.eSettings.MovieNameMultiOnly = Me.chkMovieNameMultiOnly.Checked + Master.eSettings.VideoTSParentXBMC = Me.chkVideoTSParentXBMC.Checked Master.eSettings.Language = Me.cbIntLang.Text Master.eSettings.SeasonAllTBN = Me.chkSeasonAllTBN.Checked Master.eSettings.SeasonAllJPG = Me.chkSeasonAllJPG.Checked @@ -364,7 +368,8 @@ Public Class dlgWizard Master.eSettings.SeasonDashFanart = Me.chkSeasonDashFanart.Checked Master.eSettings.SeasonDotFanart = Me.chkSeasonDotFanart.Checked Master.eSettings.EpisodeTBN = Me.chkEpisodeTBN.Checked - Master.eSettings.EpisodeJPG = Me.chkEpisodeJPG.Checked + Master.eSettings.EpisodeJPG = Me.chkEpisodeJPG.Checked + Master.eSettings.EpisodeDashThumbJPG = Me.chkEpisodeDashThumbJPG.Checked Master.eSettings.EpisodeDashFanart = Me.chkEpisodeDashFanart.Checked Master.eSettings.EpisodeDotFanart = Me.chkEpisodeDotFanart.Checked If tLangList.Count > 0 Then @@ -383,6 +388,7 @@ Public Class dlgWizard Private Sub SetUp() Me.btnMovieFrodo.Text = Master.eLang.GetString(867, "XBMC Frodo") Me.btnTVShowFrodo.Text = Master.eLang.GetString(867, "XBMC Frodo") + Me.chkVideoTSParentXBMC.Text = Master.eLang.GetString(474, "Frodo Compatible VIDEO_TS File Placement/Naming") Me.Text = Master.eLang.GetString(402, "Ember Startup Wizard") Me.OK_Button.Text = Master.eLang.GetString(179, "OK") Me.Cancel_Button.Text = Master.eLang.GetString(167, "Cancel") @@ -424,8 +430,8 @@ Public Class dlgWizard Me.Panel1.Location = New Point(166, 7) Me.Panel1.Visible = True Me.Panel2.Visible = False - Me.Panel3.Visible = False - Me.Panel4.Visible = False + Me.Panel3.Visible = False + Me.Panel4.Visible = False Me.Panel5.Visible = False Me.Panel6.Visible = False Me.Panel2.Location = New Point(166, 7) @@ -453,20 +459,22 @@ Public Class dlgWizard Me.chkMovieNameDotFanartJPG.Checked = False Me.chkMovieNameFanartJPG.Checked = True Me.chkMovieNameJPG.Checked = False - Me.chkMovieNameNFO.Checked = True + Me.chkMovieNameNFO.Checked = False + Me.chkMovieNameNFOStack.Checked = True Me.chkMovieNameTBN.Checked = False Me.chkMovieNFO.Checked = False Me.chkMovieTBN.Checked = False Me.chkPosterJPG.Checked = False Me.chkPosterTBN.Checked = False Me.rbDashTrailer.Checked = True + Me.chkVideoTSParentXBMC.Checked = True End Sub Private Sub btnTVShowFrodo_Click(sender As Object, e As EventArgs) Handles btnTVShowFrodo.Click Me.chkEpisodeDashFanart.Checked = False Me.chkEpisodeDashThumbJPG.Checked = True Me.chkEpisodeDotFanart.Checked = False - Me.chkEpisodeJPG.Checked = False + Me.chkEpisodeJPG.Checked = False Me.chkEpisodeTBN.Checked = False Me.chkSeasonAllJPG.Checked = False Me.chkSeasonAllPosterJPG.Checked = True @@ -496,7 +504,4 @@ Public Class dlgWizard #End Region 'Methods - Private Sub chkSeasonAllTBN_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles chkSeasonAllTBN.CheckedChanged - - End Sub End Class \ No newline at end of file diff --git a/Ember Media Manager/frmMain.Designer.vb b/Ember Media Manager/frmMain.Designer.vb index c99a2e5..faf79f9 100644 --- a/Ember Media Manager/frmMain.Designer.vb +++ b/Ember Media Manager/frmMain.Designer.vb @@ -22,4529 +22,4556 @@ Partial Class frmMain 'Do not modify it using the code editor. _ Private Sub InitializeComponent() - Me.components = New System.ComponentModel.Container() - Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmMain)) - Dim DataGridViewCellStyle1 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle() - Dim DataGridViewCellStyle2 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle() - Dim DataGridViewCellStyle3 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle() - Dim DataGridViewCellStyle4 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle() - Me.BottomToolStripPanel = New System.Windows.Forms.ToolStripPanel() - Me.TopToolStripPanel = New System.Windows.Forms.ToolStripPanel() - Me.RightToolStripPanel = New System.Windows.Forms.ToolStripPanel() - Me.LeftToolStripPanel = New System.Windows.Forms.ToolStripPanel() - Me.ContentPanel = New System.Windows.Forms.ToolStripContentPanel() - Me.FileToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.ExitToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.EditToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.SettingsToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.HelpToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.WikiStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.ToolStripSeparator18 = New System.Windows.Forms.ToolStripSeparator() - Me.VersionsToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.CheckUpdatesToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.ToolStripSeparator19 = New System.Windows.Forms.ToolStripSeparator() - Me.AboutToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.StatusStrip = New System.Windows.Forms.StatusStrip() - Me.tslStatus = New System.Windows.Forms.ToolStripStatusLabel() - Me.tsSpring = New System.Windows.Forms.ToolStripStatusLabel() - Me.tslLoading = New System.Windows.Forms.ToolStripStatusLabel() - Me.tspbLoading = New System.Windows.Forms.ToolStripProgressBar() - Me.tmrAni = New System.Windows.Forms.Timer(Me.components) - Me.MenuStrip = New System.Windows.Forms.MenuStrip() - Me.ToolsToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.CleanFoldersToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.ConvertFileSourceToFolderSourceToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.CopyExistingFanartToBackdropsFolderToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.ToolStripSeparator4 = New System.Windows.Forms.ToolStripSeparator() - Me.SetsManagerToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.ToolStripMenuItem3 = New System.Windows.Forms.ToolStripSeparator() - Me.ClearAllCachesToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.RefreshAllMoviesToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.CleanDatabaseToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.ToolStripSeparator5 = New System.Windows.Forms.ToolStripSeparator() - Me.DonateToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.ErrorToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.scMain = New System.Windows.Forms.SplitContainer() - Me.pnlFilterGenre = New System.Windows.Forms.Panel() - Me.clbFilterGenres = New System.Windows.Forms.CheckedListBox() - Me.lblGFilClose = New System.Windows.Forms.Label() - Me.Label4 = New System.Windows.Forms.Label() - Me.pnlFilterSource = New System.Windows.Forms.Panel() - Me.lblSFilClose = New System.Windows.Forms.Label() - Me.Label8 = New System.Windows.Forms.Label() - Me.clbFilterSource = New System.Windows.Forms.CheckedListBox() - Me.dgvMediaList = New System.Windows.Forms.DataGridView() - Me.mnuMediaList = New System.Windows.Forms.ContextMenuStrip(Me.components) - Me.cmnuTitle = New System.Windows.Forms.ToolStripMenuItem() - Me.ToolStripSeparator3 = New System.Windows.Forms.ToolStripSeparator() - Me.cmnuRefresh = New System.Windows.Forms.ToolStripMenuItem() - Me.cmnuMark = New System.Windows.Forms.ToolStripMenuItem() - Me.cmnuLock = New System.Windows.Forms.ToolStripMenuItem() - Me.ToolStripMenuItem1 = New System.Windows.Forms.ToolStripSeparator() - Me.cmnuEditMovie = New System.Windows.Forms.ToolStripMenuItem() - Me.cmnuMetaData = New System.Windows.Forms.ToolStripMenuItem() - Me.GenresToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.LblGenreStripMenuItem2 = New System.Windows.Forms.ToolStripMenuItem() - Me.GenreListToolStripComboBox = New System.Windows.Forms.ToolStripComboBox() - Me.AddGenreToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.SetGenreToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.RemoveGenreToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.cmnuSep = New System.Windows.Forms.ToolStripSeparator() - Me.ScrapingToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.ToolStripMenuItem5 = New System.Windows.Forms.ToolStripMenuItem() - Me.SelectAllAutoToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.SelectNfoAutoToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.SelectPosterAutoToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.SelectFanartAutoToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.SelectExtraAutoToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.SelectTrailerAutoToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.SelectMetaAutoToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.ToolStripMenuItem13 = New System.Windows.Forms.ToolStripMenuItem() - Me.SelectAllAskToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.SelectNfoAskToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.SelectPosterÃskToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.SelectFanartAskToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.SelectExtraAskToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.ToolStripAskMenuItem19 = New System.Windows.Forms.ToolStripMenuItem() - Me.SelectMeEtaAskToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.cmnuRescrape = New System.Windows.Forms.ToolStripMenuItem() - Me.cmnuSearchNew = New System.Windows.Forms.ToolStripMenuItem() - Me.cmnuSep2 = New System.Windows.Forms.ToolStripSeparator() - Me.OpenContainingFolderToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.ToolStripSeparator1 = New System.Windows.Forms.ToolStripSeparator() - Me.RemoveToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.RemoveFromDatabaseToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.DeleteMovieToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.scTV = New System.Windows.Forms.SplitContainer() - Me.dgvTVShows = New System.Windows.Forms.DataGridView() - Me.mnuShows = New System.Windows.Forms.ContextMenuStrip(Me.components) - Me.cmnuShowTitle = New System.Windows.Forms.ToolStripMenuItem() - Me.ToolStripMenuItem2 = New System.Windows.Forms.ToolStripSeparator() - Me.cmnuReloadShow = New System.Windows.Forms.ToolStripMenuItem() - Me.cmnuMarkShow = New System.Windows.Forms.ToolStripMenuItem() - Me.cmnuLockShow = New System.Windows.Forms.ToolStripMenuItem() - Me.ToolStripSeparator8 = New System.Windows.Forms.ToolStripSeparator() - Me.cmnuEditShow = New System.Windows.Forms.ToolStripMenuItem() - Me.ToolStripSeparator7 = New System.Windows.Forms.ToolStripSeparator() - Me.cmnuRescrapeShow = New System.Windows.Forms.ToolStripMenuItem() - Me.cmnuChangeShow = New System.Windows.Forms.ToolStripMenuItem() - Me.ToolStripSeparator11 = New System.Windows.Forms.ToolStripSeparator() - Me.cmnuShowOpenFolder = New System.Windows.Forms.ToolStripMenuItem() - Me.ToolStripSeparator20 = New System.Windows.Forms.ToolStripSeparator() - Me.RemoveShowToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.cmnuRemoveTVShow = New System.Windows.Forms.ToolStripMenuItem() - Me.cmnuDeleteTVShow = New System.Windows.Forms.ToolStripMenuItem() - Me.SplitContainer2 = New System.Windows.Forms.SplitContainer() - Me.dgvTVSeasons = New System.Windows.Forms.DataGridView() - Me.mnuSeasons = New System.Windows.Forms.ContextMenuStrip(Me.components) - Me.cmnuSeasonTitle = New System.Windows.Forms.ToolStripMenuItem() - Me.ToolStripSeparator17 = New System.Windows.Forms.ToolStripSeparator() - Me.cmnuReloadSeason = New System.Windows.Forms.ToolStripMenuItem() - Me.cmnuMarkSeason = New System.Windows.Forms.ToolStripMenuItem() - Me.cmnuLockSeason = New System.Windows.Forms.ToolStripMenuItem() - Me.ToolStripSeparator16 = New System.Windows.Forms.ToolStripSeparator() - Me.cmnuSeasonChangeImages = New System.Windows.Forms.ToolStripMenuItem() - Me.ToolStripSeparator14 = New System.Windows.Forms.ToolStripSeparator() - Me.cmnuSeasonRescrape = New System.Windows.Forms.ToolStripMenuItem() - Me.ToolStripSeparator15 = New System.Windows.Forms.ToolStripSeparator() - Me.cmnuSeasonOpenFolder = New System.Windows.Forms.ToolStripMenuItem() - Me.ToolStripSeparator27 = New System.Windows.Forms.ToolStripSeparator() - Me.cmnuSeasonRemove = New System.Windows.Forms.ToolStripMenuItem() - Me.cmnuRemoveSeasonFromDB = New System.Windows.Forms.ToolStripMenuItem() - Me.cmnuDeleteSeason = New System.Windows.Forms.ToolStripMenuItem() - Me.dgvTVEpisodes = New System.Windows.Forms.DataGridView() - Me.mnuEpisodes = New System.Windows.Forms.ContextMenuStrip(Me.components) - Me.cmnuEpTitle = New System.Windows.Forms.ToolStripMenuItem() - Me.ToolStripSeparator6 = New System.Windows.Forms.ToolStripSeparator() - Me.cmnuReloadEp = New System.Windows.Forms.ToolStripMenuItem() - Me.cmnuMarkEp = New System.Windows.Forms.ToolStripMenuItem() - Me.cmnuLockEp = New System.Windows.Forms.ToolStripMenuItem() - Me.ToolStripSeparator9 = New System.Windows.Forms.ToolStripSeparator() - Me.cmnuEditEpisode = New System.Windows.Forms.ToolStripMenuItem() - Me.ToolStripSeparator10 = New System.Windows.Forms.ToolStripSeparator() - Me.cmnuRescrapeEp = New System.Windows.Forms.ToolStripMenuItem() - Me.cmnuChangeEp = New System.Windows.Forms.ToolStripMenuItem() - Me.ToolStripSeparator12 = New System.Windows.Forms.ToolStripSeparator() - Me.cmnuEpOpenFolder = New System.Windows.Forms.ToolStripMenuItem() - Me.ToolStripSeparator28 = New System.Windows.Forms.ToolStripSeparator() - Me.RemoveEpToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.cmnuRemoveTVEp = New System.Windows.Forms.ToolStripMenuItem() - Me.cmnuDeleteTVEp = New System.Windows.Forms.ToolStripMenuItem() - Me.pnlListTop = New System.Windows.Forms.Panel() - Me.btnMarkAll = New System.Windows.Forms.Button() - Me.pnlSearch = New System.Windows.Forms.Panel() - Me.cbSearch = New System.Windows.Forms.ComboBox() - Me.picSearch = New System.Windows.Forms.PictureBox() - Me.txtSearch = New System.Windows.Forms.TextBox() - Me.tabsMain = New System.Windows.Forms.TabControl() - Me.tabMovies = New System.Windows.Forms.TabPage() - Me.tabTV = New System.Windows.Forms.TabPage() - Me.pnlFilter = New System.Windows.Forms.Panel() - Me.GroupBox1 = New System.Windows.Forms.GroupBox() - Me.btnIMDBRating = New System.Windows.Forms.Button() - Me.btnSortTitle = New System.Windows.Forms.Button() - Me.btnSortDate = New System.Windows.Forms.Button() - Me.btnClearFilters = New System.Windows.Forms.Button() - Me.GroupBox3 = New System.Windows.Forms.GroupBox() - Me.chkFilterTolerance = New System.Windows.Forms.CheckBox() - Me.chkFilterMissing = New System.Windows.Forms.CheckBox() - Me.chkFilterDupe = New System.Windows.Forms.CheckBox() - Me.gbSpecific = New System.Windows.Forms.GroupBox() - Me.txtFilterSource = New System.Windows.Forms.TextBox() - Me.Label6 = New System.Windows.Forms.Label() - Me.cbFilterFileSource = New System.Windows.Forms.ComboBox() - Me.chkFilterLock = New System.Windows.Forms.CheckBox() - Me.GroupBox2 = New System.Windows.Forms.GroupBox() - Me.rbFilterAnd = New System.Windows.Forms.RadioButton() - Me.rbFilterOr = New System.Windows.Forms.RadioButton() - Me.chkFilterNew = New System.Windows.Forms.CheckBox() - Me.cbFilterYear = New System.Windows.Forms.ComboBox() - Me.chkFilterMark = New System.Windows.Forms.CheckBox() - Me.cbFilterYearMod = New System.Windows.Forms.ComboBox() - Me.Label5 = New System.Windows.Forms.Label() - Me.txtFilterGenre = New System.Windows.Forms.TextBox() - Me.Label2 = New System.Windows.Forms.Label() - Me.Label3 = New System.Windows.Forms.Label() - Me.btnFilterDown = New System.Windows.Forms.Button() - Me.btnFilterUp = New System.Windows.Forms.Button() - Me.lblFilter = New System.Windows.Forms.Label() - Me.pnlTop = New System.Windows.Forms.Panel() - Me.lblTitle = New System.Windows.Forms.Label() - Me.pnlInfoIcons = New System.Windows.Forms.Panel() - Me.lblOriginalTitle = New System.Windows.Forms.Label() - Me.lblStudio = New System.Windows.Forms.Label() - Me.pbVType = New System.Windows.Forms.PictureBox() - Me.pbStudio = New System.Windows.Forms.PictureBox() - Me.pbVideo = New System.Windows.Forms.PictureBox() - Me.pbAudio = New System.Windows.Forms.PictureBox() - Me.pbResolution = New System.Windows.Forms.PictureBox() - Me.pbChannels = New System.Windows.Forms.PictureBox() - Me.lblRuntime = New System.Windows.Forms.Label() - Me.lblTagline = New System.Windows.Forms.Label() - Me.pnlRating = New System.Windows.Forms.Panel() - Me.pbStar5 = New System.Windows.Forms.PictureBox() - Me.pbStar4 = New System.Windows.Forms.PictureBox() - Me.pbStar3 = New System.Windows.Forms.PictureBox() - Me.pbStar2 = New System.Windows.Forms.PictureBox() - Me.pbStar1 = New System.Windows.Forms.PictureBox() - Me.lblVotes = New System.Windows.Forms.Label() - Me.pnlCancel = New System.Windows.Forms.Panel() - Me.pbCanceling = New System.Windows.Forms.ProgressBar() - Me.lblCanceling = New System.Windows.Forms.Label() - Me.btnCancel = New System.Windows.Forms.Button() - Me.pnlAllSeason = New System.Windows.Forms.Panel() - Me.pbAllSeason = New System.Windows.Forms.PictureBox() - Me.pbAllSeasonCache = New System.Windows.Forms.PictureBox() - Me.pnlNoInfo = New System.Windows.Forms.Panel() - Me.Panel2 = New System.Windows.Forms.Panel() - Me.PictureBox1 = New System.Windows.Forms.PictureBox() - Me.Label1 = New System.Windows.Forms.Label() - Me.pnlInfoPanel = New System.Windows.Forms.Panel() - Me.txtCerts = New System.Windows.Forms.TextBox() - Me.lblCertsHeader = New System.Windows.Forms.Label() - Me.lblReleaseDate = New System.Windows.Forms.Label() - Me.lblReleaseDateHeader = New System.Windows.Forms.Label() - Me.btnMid = New System.Windows.Forms.Button() - Me.pbMILoading = New System.Windows.Forms.PictureBox() - Me.btnMetaDataRefresh = New System.Windows.Forms.Button() - Me.lblMetaDataHeader = New System.Windows.Forms.Label() - Me.txtMetaData = New System.Windows.Forms.TextBox() - Me.btnPlay = New System.Windows.Forms.Button() - Me.txtFilePath = New System.Windows.Forms.TextBox() - Me.lblFilePathHeader = New System.Windows.Forms.Label() - Me.txtIMDBID = New System.Windows.Forms.TextBox() - Me.lblIMDBHeader = New System.Windows.Forms.Label() - Me.lblDirector = New System.Windows.Forms.Label() - Me.lblDirectorHeader = New System.Windows.Forms.Label() - Me.pnlActors = New System.Windows.Forms.Panel() - Me.pbActLoad = New System.Windows.Forms.PictureBox() - Me.lstActors = New System.Windows.Forms.ListBox() - Me.pbActors = New System.Windows.Forms.PictureBox() - Me.lblActorsHeader = New System.Windows.Forms.Label() - Me.lblOutlineHeader = New System.Windows.Forms.Label() - Me.txtOutline = New System.Windows.Forms.TextBox() - Me.pnlTop250 = New System.Windows.Forms.Panel() - Me.lblTop250 = New System.Windows.Forms.Label() - Me.pbTop250 = New System.Windows.Forms.PictureBox() - Me.lblPlotHeader = New System.Windows.Forms.Label() - Me.txtPlot = New System.Windows.Forms.TextBox() - Me.btnDown = New System.Windows.Forms.Button() - Me.btnUp = New System.Windows.Forms.Button() - Me.lblInfoPanelHeader = New System.Windows.Forms.Label() - Me.pnlPoster = New System.Windows.Forms.Panel() - Me.pbPoster = New System.Windows.Forms.PictureBox() - Me.pbPosterCache = New System.Windows.Forms.PictureBox() - Me.pnlMPAA = New System.Windows.Forms.Panel() - Me.pbMPAA = New System.Windows.Forms.PictureBox() - Me.pbFanartCache = New System.Windows.Forms.PictureBox() - Me.pbFanart = New System.Windows.Forms.PictureBox() - Me.tsMain = New System.Windows.Forms.ToolStrip() - Me.tsbAutoPilot = New System.Windows.Forms.ToolStripDropDownButton() - Me.FullToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.FullAutoToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuAllAutoAll = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuAllAutoNfo = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuAllAutoPoster = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuAllAutoFanart = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuAllAutoExtra = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuAllAutoTrailer = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuAllAutoMI = New System.Windows.Forms.ToolStripMenuItem() - Me.FullAskToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuAllAskAll = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuAllAskNfo = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuAllAskPoster = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuAllAskFanart = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuAllAskExtra = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuAllAskTrailer = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuAllAskMI = New System.Windows.Forms.ToolStripMenuItem() - Me.FullSkipToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuAllSkipAll = New System.Windows.Forms.ToolStripMenuItem() - Me.UpdateOnlyToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.UpdateAutoToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuMissAutoAll = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuMissAutoNfo = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuMissAutoPoster = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuMissAutoFanart = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuMissAutoExtra = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuMissAutoTrailer = New System.Windows.Forms.ToolStripMenuItem() - Me.UpdateAskToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuMissAskAll = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuMissAskNfo = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuMissAskPoster = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuMissAskFanart = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuMissAskExtra = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuMissAskTrailer = New System.Windows.Forms.ToolStripMenuItem() - Me.NewMoviesToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.AutomaticForceBestMatchToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuNewAutoAll = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuNewAutoNfo = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuNewAutoPoster = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuNewAutoFanart = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuNewAutoExtra = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuNewAutoTrailer = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuNewAutoMI = New System.Windows.Forms.ToolStripMenuItem() - Me.AskRequireInputToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuNewAskAll = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuNewAskNfo = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuNewAskPoster = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuNewAskFanart = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuNewAskExtra = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuNewAskTrailer = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuNewAskMI = New System.Windows.Forms.ToolStripMenuItem() - Me.MarkedMoviesToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.AutomaticForceBestMatchToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuMarkAutoAll = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuMarkAutoNfo = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuMarkAutoPoster = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuMarkAutoFanart = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuMarkAutoExtra = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuMarkAutoTrailer = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuMarkAutoMI = New System.Windows.Forms.ToolStripMenuItem() - Me.AskRequireInputIfNoExactMatchToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuMarkAskAll = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuMarkAskNfo = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuMarkAskPoster = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuMarkAskFanart = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuMarkAskExtra = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuMarkAskTrailer = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuMarkAskMI = New System.Windows.Forms.ToolStripMenuItem() - Me.CurrentFilterToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.AutomaticForceBestMatchToolStripMenuItem2 = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuFilterAutoAll = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuFilterAutoNfo = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuFilterAutoPoster = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuFilterAutoFanart = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuFilterAutoExtra = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuFilterAutoTrailer = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuFilterAutoMI = New System.Windows.Forms.ToolStripMenuItem() - Me.AskRequireInputIfNoExactMatchToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuFilterAskAll = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuFilterAskNfo = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuFilterAskPoster = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuFilterAskFanart = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuFilterAskExtra = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuFilterAskTrailer = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuFilterAskMI = New System.Windows.Forms.ToolStripMenuItem() - Me.CustomUpdaterToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.tsbRefreshMedia = New System.Windows.Forms.ToolStripSplitButton() - Me.mnuMoviesUpdate = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTVShowUpdate = New System.Windows.Forms.ToolStripMenuItem() - Me.tsbMediaCenters = New System.Windows.Forms.ToolStripSplitButton() - Me.ilColumnIcons = New System.Windows.Forms.ImageList(Me.components) - Me.tmrWait = New System.Windows.Forms.Timer(Me.components) - Me.tmrLoad = New System.Windows.Forms.Timer(Me.components) - Me.tmrSearchWait = New System.Windows.Forms.Timer(Me.components) - Me.tmrSearch = New System.Windows.Forms.Timer(Me.components) - Me.tmrFilterAni = New System.Windows.Forms.Timer(Me.components) - Me.ToolTips = New System.Windows.Forms.ToolTip(Me.components) - Me.tmrWaitShow = New System.Windows.Forms.Timer(Me.components) - Me.tmrLoadShow = New System.Windows.Forms.Timer(Me.components) - Me.tmrWaitSeason = New System.Windows.Forms.Timer(Me.components) - Me.tmrLoadSeason = New System.Windows.Forms.Timer(Me.components) - Me.tmrWaitEp = New System.Windows.Forms.Timer(Me.components) - Me.tmrLoadEp = New System.Windows.Forms.Timer(Me.components) - Me.cmnuTrayIcon = New System.Windows.Forms.ContextMenuStrip(Me.components) - Me.cmnuTrayIconTitle = New System.Windows.Forms.ToolStripMenuItem() - Me.ToolStripSeparator21 = New System.Windows.Forms.ToolStripSeparator() - Me.cmnuTrayIconUpdateMedia = New System.Windows.Forms.ToolStripMenuItem() - Me.cmnuTrayIconUpdateMovies = New System.Windows.Forms.ToolStripMenuItem() - Me.cmnuTrayIconUpdateTV = New System.Windows.Forms.ToolStripMenuItem() - Me.cmnuTrayIconScrapeMedia = New System.Windows.Forms.ToolStripMenuItem() - Me.TrayFullToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.TrayFullAutoToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayAllAutoAll = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayAllAutoNfo = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayAllAutoPoster = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayAllAutoFanart = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayAllAutoExtra = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayAllAutoTrailer = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayAllAutoMI = New System.Windows.Forms.ToolStripMenuItem() - Me.TrayFullAskToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayAllAskAll = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayAllAskNfo = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayAllAskPoster = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayAllAskFanart = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayAllAskExtra = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayAllAskTrailer = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayAllAskMI = New System.Windows.Forms.ToolStripMenuItem() - Me.TrayUpdateOnlyToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.TrayUpdateAutoToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayMissAutoAll = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayMissAutoNfo = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayMissAutoPoster = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayMissAutoFanart = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayMissAutoExtra = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayMissAutoTrailer = New System.Windows.Forms.ToolStripMenuItem() - Me.TrayUpdateAskToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayMissAskAll = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayMissAskNfo = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayMissAskPoster = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayMissAskFanart = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayMissAskExtra = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayMissAskTrailer = New System.Windows.Forms.ToolStripMenuItem() - Me.TrayNewMoviesToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.TrayAutomaticForceBestMatchToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayNewAutoAll = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayNewAutoNfo = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayNewAutoPoster = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayNewAutoFanart = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayNewAutoExtra = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayNewAutoTrailer = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayNewAutoMI = New System.Windows.Forms.ToolStripMenuItem() - Me.TrayAskRequireInputToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayNewAskAll = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayNewAskNfo = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayNewAskPoster = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayNewAskFanart = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayNewAskExtra = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayNewAskTrailer = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayNewAskMI = New System.Windows.Forms.ToolStripMenuItem() - Me.TrayMarkedMoviesToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.TrayAutomaticForceBestMatchToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayMarkAutoAll = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayMarkAutoNfo = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayMarkAutoPoster = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayMarkAutoFanart = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayMarkAutoExtra = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayMarkAutoTrailer = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayMarkAutoMI = New System.Windows.Forms.ToolStripMenuItem() - Me.TrayAskRequireInputIfNoExactMatchToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayMarkAskAll = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayMarkAskNfo = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayMarkAskPoster = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayMarkAskFanart = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayMarkAskExtra = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayMarkAskTrailer = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayMarkAskMI = New System.Windows.Forms.ToolStripMenuItem() - Me.TrayCurrentFilterToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.TrayAutomaticForceBestMatchToolStripMenuItem2 = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayFilterAutoAll = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayFilterAutoNfo = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayFilterAutoPoster = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayFilterAutoFanart = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayFilterAutoExtra = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayFilterAutoTrailer = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayFilterAutoMI = New System.Windows.Forms.ToolStripMenuItem() - Me.TrayAskRequireInputIfNoExactMatchToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayFilterAskAll = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayFilterAskNfo = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayFilterAskPoster = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayFilterAskFanart = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayFilterAskExtra = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayFilterAskTrailer = New System.Windows.Forms.ToolStripMenuItem() - Me.mnuTrayFilterAskMI = New System.Windows.Forms.ToolStripMenuItem() - Me.TrayCustomUpdaterToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.cmnuTrayIconMediaCenters = New System.Windows.Forms.ToolStripMenuItem() - Me.ToolStripSeparator23 = New System.Windows.Forms.ToolStripSeparator() - Me.cmnuTrayIconTools = New System.Windows.Forms.ToolStripMenuItem() - Me.CleanFilesToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.SortFilesIntoFoldersToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.CopyExistingFanartToBackdropsFolderToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem() - Me.ToolStripSeparator24 = New System.Windows.Forms.ToolStripSeparator() - Me.SetsManagerToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem() - Me.ToolStripSeparator25 = New System.Windows.Forms.ToolStripSeparator() - Me.ClearAllCachesToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem() - Me.ReloadAllMoviesToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.CleanDatabaseToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem() - Me.ToolStripSeparator26 = New System.Windows.Forms.ToolStripSeparator() - Me.ToolStripSeparator22 = New System.Windows.Forms.ToolStripSeparator() - Me.cmnuTrayIconSettings = New System.Windows.Forms.ToolStripMenuItem() - Me.ToolStripSeparator13 = New System.Windows.Forms.ToolStripSeparator() - Me.cmnuTrayIconExit = New System.Windows.Forms.ToolStripMenuItem() - Me.Panel3 = New System.Windows.Forms.Panel() - Me.PictureBox2 = New System.Windows.Forms.PictureBox() - Me.Label7 = New System.Windows.Forms.Label() - Me.ProgressBar1 = New System.Windows.Forms.ProgressBar() - Me.pnlLoadingSettings = New System.Windows.Forms.Panel() - Me.tmrAppExit = New System.Windows.Forms.Timer(Me.components) - Me.tmrKeyBuffer = New System.Windows.Forms.Timer(Me.components) - Me.StatusStrip.SuspendLayout() - Me.MenuStrip.SuspendLayout() - Me.scMain.Panel1.SuspendLayout() - Me.scMain.Panel2.SuspendLayout() - Me.scMain.SuspendLayout() - Me.pnlFilterGenre.SuspendLayout() - Me.pnlFilterSource.SuspendLayout() - CType(Me.dgvMediaList, System.ComponentModel.ISupportInitialize).BeginInit() - Me.mnuMediaList.SuspendLayout() - Me.scTV.Panel1.SuspendLayout() - Me.scTV.Panel2.SuspendLayout() - Me.scTV.SuspendLayout() - CType(Me.dgvTVShows, System.ComponentModel.ISupportInitialize).BeginInit() - Me.mnuShows.SuspendLayout() - Me.SplitContainer2.Panel1.SuspendLayout() - Me.SplitContainer2.Panel2.SuspendLayout() - Me.SplitContainer2.SuspendLayout() - CType(Me.dgvTVSeasons, System.ComponentModel.ISupportInitialize).BeginInit() - Me.mnuSeasons.SuspendLayout() - CType(Me.dgvTVEpisodes, System.ComponentModel.ISupportInitialize).BeginInit() - Me.mnuEpisodes.SuspendLayout() - Me.pnlListTop.SuspendLayout() - Me.pnlSearch.SuspendLayout() - CType(Me.picSearch, System.ComponentModel.ISupportInitialize).BeginInit() - Me.tabsMain.SuspendLayout() - Me.pnlFilter.SuspendLayout() - Me.GroupBox1.SuspendLayout() - Me.GroupBox3.SuspendLayout() - Me.gbSpecific.SuspendLayout() - Me.GroupBox2.SuspendLayout() - Me.pnlTop.SuspendLayout() - Me.pnlInfoIcons.SuspendLayout() - CType(Me.pbVType, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.pbStudio, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.pbVideo, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.pbAudio, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.pbResolution, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.pbChannels, System.ComponentModel.ISupportInitialize).BeginInit() - Me.pnlRating.SuspendLayout() - CType(Me.pbStar5, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.pbStar4, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.pbStar3, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.pbStar2, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.pbStar1, System.ComponentModel.ISupportInitialize).BeginInit() - Me.pnlCancel.SuspendLayout() - Me.pnlAllSeason.SuspendLayout() - CType(Me.pbAllSeason, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.pbAllSeasonCache, System.ComponentModel.ISupportInitialize).BeginInit() - Me.pnlNoInfo.SuspendLayout() - Me.Panel2.SuspendLayout() - CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() - Me.pnlInfoPanel.SuspendLayout() - CType(Me.pbMILoading, System.ComponentModel.ISupportInitialize).BeginInit() - Me.pnlActors.SuspendLayout() - CType(Me.pbActLoad, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.pbActors, System.ComponentModel.ISupportInitialize).BeginInit() - Me.pnlTop250.SuspendLayout() - CType(Me.pbTop250, System.ComponentModel.ISupportInitialize).BeginInit() - Me.pnlPoster.SuspendLayout() - CType(Me.pbPoster, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.pbPosterCache, System.ComponentModel.ISupportInitialize).BeginInit() - Me.pnlMPAA.SuspendLayout() - CType(Me.pbMPAA, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.pbFanartCache, System.ComponentModel.ISupportInitialize).BeginInit() - CType(Me.pbFanart, System.ComponentModel.ISupportInitialize).BeginInit() - Me.tsMain.SuspendLayout() - Me.cmnuTrayIcon.SuspendLayout() - Me.Panel3.SuspendLayout() - CType(Me.PictureBox2, System.ComponentModel.ISupportInitialize).BeginInit() - Me.pnlLoadingSettings.SuspendLayout() - Me.SuspendLayout() - ' - 'BottomToolStripPanel - ' - Me.BottomToolStripPanel.Location = New System.Drawing.Point(0, 0) - Me.BottomToolStripPanel.Name = "BottomToolStripPanel" - Me.BottomToolStripPanel.Orientation = System.Windows.Forms.Orientation.Horizontal - Me.BottomToolStripPanel.RowMargin = New System.Windows.Forms.Padding(3, 0, 0, 0) - Me.BottomToolStripPanel.Size = New System.Drawing.Size(0, 0) - ' - 'TopToolStripPanel - ' - Me.TopToolStripPanel.Location = New System.Drawing.Point(0, 0) - Me.TopToolStripPanel.Name = "TopToolStripPanel" - Me.TopToolStripPanel.Orientation = System.Windows.Forms.Orientation.Horizontal - Me.TopToolStripPanel.RowMargin = New System.Windows.Forms.Padding(3, 0, 0, 0) - Me.TopToolStripPanel.Size = New System.Drawing.Size(0, 0) - ' - 'RightToolStripPanel - ' - Me.RightToolStripPanel.Location = New System.Drawing.Point(0, 0) - Me.RightToolStripPanel.Name = "RightToolStripPanel" - Me.RightToolStripPanel.Orientation = System.Windows.Forms.Orientation.Horizontal - Me.RightToolStripPanel.RowMargin = New System.Windows.Forms.Padding(3, 0, 0, 0) - Me.RightToolStripPanel.Size = New System.Drawing.Size(0, 0) - ' - 'LeftToolStripPanel - ' - Me.LeftToolStripPanel.Location = New System.Drawing.Point(0, 0) - Me.LeftToolStripPanel.Name = "LeftToolStripPanel" - Me.LeftToolStripPanel.Orientation = System.Windows.Forms.Orientation.Horizontal - Me.LeftToolStripPanel.RowMargin = New System.Windows.Forms.Padding(3, 0, 0, 0) - Me.LeftToolStripPanel.Size = New System.Drawing.Size(0, 0) - ' - 'ContentPanel - ' - Me.ContentPanel.Size = New System.Drawing.Size(150, 175) - ' - 'FileToolStripMenuItem - ' - Me.FileToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ExitToolStripMenuItem}) - Me.FileToolStripMenuItem.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.FileToolStripMenuItem.Name = "FileToolStripMenuItem" - Me.FileToolStripMenuItem.Size = New System.Drawing.Size(37, 20) - Me.FileToolStripMenuItem.Text = "&File" - ' - 'ExitToolStripMenuItem - ' - Me.ExitToolStripMenuItem.Image = CType(resources.GetObject("ExitToolStripMenuItem.Image"), System.Drawing.Image) - Me.ExitToolStripMenuItem.Name = "ExitToolStripMenuItem" - Me.ExitToolStripMenuItem.Size = New System.Drawing.Size(92, 22) - Me.ExitToolStripMenuItem.Text = "E&xit" - ' - 'EditToolStripMenuItem - ' - Me.EditToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.SettingsToolStripMenuItem}) - Me.EditToolStripMenuItem.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.EditToolStripMenuItem.Name = "EditToolStripMenuItem" - Me.EditToolStripMenuItem.Size = New System.Drawing.Size(39, 20) - Me.EditToolStripMenuItem.Text = "&Edit" - ' - 'SettingsToolStripMenuItem - ' - Me.SettingsToolStripMenuItem.Image = CType(resources.GetObject("SettingsToolStripMenuItem.Image"), System.Drawing.Image) - Me.SettingsToolStripMenuItem.Name = "SettingsToolStripMenuItem" - Me.SettingsToolStripMenuItem.Size = New System.Drawing.Size(125, 22) - Me.SettingsToolStripMenuItem.Text = "&Settings..." - ' - 'HelpToolStripMenuItem - ' - Me.HelpToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.WikiStripMenuItem, Me.ToolStripSeparator18, Me.VersionsToolStripMenuItem, Me.CheckUpdatesToolStripMenuItem, Me.ToolStripSeparator19, Me.AboutToolStripMenuItem}) - Me.HelpToolStripMenuItem.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.HelpToolStripMenuItem.Name = "HelpToolStripMenuItem" - Me.HelpToolStripMenuItem.Size = New System.Drawing.Size(43, 20) - Me.HelpToolStripMenuItem.Text = "&Help" - ' - 'WikiStripMenuItem - ' - Me.WikiStripMenuItem.Image = CType(resources.GetObject("WikiStripMenuItem.Image"), System.Drawing.Image) - Me.WikiStripMenuItem.Name = "WikiStripMenuItem" - Me.WikiStripMenuItem.Size = New System.Drawing.Size(185, 22) - Me.WikiStripMenuItem.Text = "EmberMM.com &Wiki..." - ' - 'ToolStripSeparator18 - ' - Me.ToolStripSeparator18.Name = "ToolStripSeparator18" - Me.ToolStripSeparator18.Size = New System.Drawing.Size(182, 6) - ' - 'VersionsToolStripMenuItem - ' - Me.VersionsToolStripMenuItem.Image = CType(resources.GetObject("VersionsToolStripMenuItem.Image"), System.Drawing.Image) - Me.VersionsToolStripMenuItem.Name = "VersionsToolStripMenuItem" - Me.VersionsToolStripMenuItem.Size = New System.Drawing.Size(185, 22) - Me.VersionsToolStripMenuItem.Text = "&Versions..." - ' - 'CheckUpdatesToolStripMenuItem - ' - Me.CheckUpdatesToolStripMenuItem.Enabled = False - Me.CheckUpdatesToolStripMenuItem.Image = CType(resources.GetObject("CheckUpdatesToolStripMenuItem.Image"), System.Drawing.Image) - Me.CheckUpdatesToolStripMenuItem.Name = "CheckUpdatesToolStripMenuItem" - Me.CheckUpdatesToolStripMenuItem.Size = New System.Drawing.Size(185, 22) - Me.CheckUpdatesToolStripMenuItem.Text = "Check For Updates" - Me.CheckUpdatesToolStripMenuItem.Visible = False - ' - 'ToolStripSeparator19 - ' - Me.ToolStripSeparator19.Name = "ToolStripSeparator19" - Me.ToolStripSeparator19.Size = New System.Drawing.Size(182, 6) - ' - 'AboutToolStripMenuItem - ' - Me.AboutToolStripMenuItem.Image = CType(resources.GetObject("AboutToolStripMenuItem.Image"), System.Drawing.Image) - Me.AboutToolStripMenuItem.Name = "AboutToolStripMenuItem" - Me.AboutToolStripMenuItem.Size = New System.Drawing.Size(185, 22) - Me.AboutToolStripMenuItem.Text = "&About..." - ' - 'StatusStrip - ' - Me.StatusStrip.GripStyle = System.Windows.Forms.ToolStripGripStyle.Visible - Me.StatusStrip.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.tslStatus, Me.tsSpring, Me.tslLoading, Me.tspbLoading}) - Me.StatusStrip.Location = New System.Drawing.Point(0, 866) - Me.StatusStrip.Name = "StatusStrip" - Me.StatusStrip.Size = New System.Drawing.Size(1477, 22) - Me.StatusStrip.TabIndex = 6 - Me.StatusStrip.Text = "StatusStrip" - ' - 'tslStatus - ' - Me.tslStatus.Name = "tslStatus" - Me.tslStatus.Size = New System.Drawing.Size(0, 17) - Me.tslStatus.TextAlign = System.Drawing.ContentAlignment.MiddleLeft - ' - 'tsSpring - ' - Me.tsSpring.Name = "tsSpring" - Me.tsSpring.Size = New System.Drawing.Size(1462, 17) - Me.tsSpring.Spring = True - Me.tsSpring.Text = " " - ' - 'tslLoading - ' - Me.tslLoading.AutoSize = False - Me.tslLoading.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.tslLoading.Name = "tslLoading" - Me.tslLoading.Size = New System.Drawing.Size(424, 17) - Me.tslLoading.Text = "Loading Media:" - Me.tslLoading.TextAlign = System.Drawing.ContentAlignment.MiddleRight - Me.tslLoading.Visible = False - ' - 'tspbLoading - ' - Me.tspbLoading.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right - Me.tspbLoading.AutoSize = False - Me.tspbLoading.MarqueeAnimationSpeed = 25 - Me.tspbLoading.Name = "tspbLoading" - Me.tspbLoading.Size = New System.Drawing.Size(150, 16) - Me.tspbLoading.Style = System.Windows.Forms.ProgressBarStyle.Continuous - Me.tspbLoading.Visible = False - ' - 'tmrAni - ' - Me.tmrAni.Interval = 1 - ' - 'MenuStrip - ' - Me.MenuStrip.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.FileToolStripMenuItem, Me.EditToolStripMenuItem, Me.ToolsToolStripMenuItem, Me.HelpToolStripMenuItem, Me.DonateToolStripMenuItem, Me.ErrorToolStripMenuItem}) - Me.MenuStrip.Location = New System.Drawing.Point(0, 0) - Me.MenuStrip.Name = "MenuStrip" - Me.MenuStrip.Size = New System.Drawing.Size(1477, 24) - Me.MenuStrip.TabIndex = 0 - Me.MenuStrip.Text = "MenuStrip" - ' - 'ToolsToolStripMenuItem - ' - Me.ToolsToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.CleanFoldersToolStripMenuItem, Me.ConvertFileSourceToFolderSourceToolStripMenuItem, Me.CopyExistingFanartToBackdropsFolderToolStripMenuItem, Me.ToolStripSeparator4, Me.SetsManagerToolStripMenuItem, Me.ToolStripMenuItem3, Me.ClearAllCachesToolStripMenuItem, Me.RefreshAllMoviesToolStripMenuItem, Me.CleanDatabaseToolStripMenuItem, Me.ToolStripSeparator5}) - Me.ToolsToolStripMenuItem.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.ToolsToolStripMenuItem.Name = "ToolsToolStripMenuItem" - Me.ToolsToolStripMenuItem.Size = New System.Drawing.Size(46, 20) - Me.ToolsToolStripMenuItem.Text = "&Tools" - ' - 'CleanFoldersToolStripMenuItem - ' - Me.CleanFoldersToolStripMenuItem.Image = CType(resources.GetObject("CleanFoldersToolStripMenuItem.Image"), System.Drawing.Image) - Me.CleanFoldersToolStripMenuItem.Name = "CleanFoldersToolStripMenuItem" - Me.CleanFoldersToolStripMenuItem.ShortcutKeys = CType(((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.Alt) _ - Or System.Windows.Forms.Keys.C), System.Windows.Forms.Keys) - Me.CleanFoldersToolStripMenuItem.Size = New System.Drawing.Size(349, 22) - Me.CleanFoldersToolStripMenuItem.Text = "&Clean Files" - ' - 'ConvertFileSourceToFolderSourceToolStripMenuItem - ' - Me.ConvertFileSourceToFolderSourceToolStripMenuItem.Image = CType(resources.GetObject("ConvertFileSourceToFolderSourceToolStripMenuItem.Image"), System.Drawing.Image) - Me.ConvertFileSourceToFolderSourceToolStripMenuItem.Name = "ConvertFileSourceToFolderSourceToolStripMenuItem" - Me.ConvertFileSourceToFolderSourceToolStripMenuItem.ShortcutKeys = CType(((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.Alt) _ - Or System.Windows.Forms.Keys.S), System.Windows.Forms.Keys) - Me.ConvertFileSourceToFolderSourceToolStripMenuItem.Size = New System.Drawing.Size(349, 22) - Me.ConvertFileSourceToFolderSourceToolStripMenuItem.Text = "&Sort Files Into Folders" - ' - 'CopyExistingFanartToBackdropsFolderToolStripMenuItem - ' - Me.CopyExistingFanartToBackdropsFolderToolStripMenuItem.Image = CType(resources.GetObject("CopyExistingFanartToBackdropsFolderToolStripMenuItem.Image"), System.Drawing.Image) - Me.CopyExistingFanartToBackdropsFolderToolStripMenuItem.Name = "CopyExistingFanartToBackdropsFolderToolStripMenuItem" - Me.CopyExistingFanartToBackdropsFolderToolStripMenuItem.ShortcutKeys = CType(((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.Alt) _ - Or System.Windows.Forms.Keys.B), System.Windows.Forms.Keys) - Me.CopyExistingFanartToBackdropsFolderToolStripMenuItem.Size = New System.Drawing.Size(349, 22) - Me.CopyExistingFanartToBackdropsFolderToolStripMenuItem.Text = "Copy Existing Fanart To &Backdrops Folder" - ' - 'ToolStripSeparator4 - ' - Me.ToolStripSeparator4.Name = "ToolStripSeparator4" - Me.ToolStripSeparator4.Size = New System.Drawing.Size(346, 6) - ' - 'SetsManagerToolStripMenuItem - ' - Me.SetsManagerToolStripMenuItem.Image = CType(resources.GetObject("SetsManagerToolStripMenuItem.Image"), System.Drawing.Image) - Me.SetsManagerToolStripMenuItem.Name = "SetsManagerToolStripMenuItem" - Me.SetsManagerToolStripMenuItem.ShortcutKeys = CType(((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.Alt) _ - Or System.Windows.Forms.Keys.M), System.Windows.Forms.Keys) - Me.SetsManagerToolStripMenuItem.Size = New System.Drawing.Size(349, 22) - Me.SetsManagerToolStripMenuItem.Text = "Sets &Manager" - ' - 'ToolStripMenuItem3 - ' - Me.ToolStripMenuItem3.Name = "ToolStripMenuItem3" - Me.ToolStripMenuItem3.Size = New System.Drawing.Size(346, 6) - ' - 'ClearAllCachesToolStripMenuItem - ' - Me.ClearAllCachesToolStripMenuItem.Image = CType(resources.GetObject("ClearAllCachesToolStripMenuItem.Image"), System.Drawing.Image) - Me.ClearAllCachesToolStripMenuItem.Name = "ClearAllCachesToolStripMenuItem" - Me.ClearAllCachesToolStripMenuItem.ShortcutKeys = CType(((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.Alt) _ - Or System.Windows.Forms.Keys.A), System.Windows.Forms.Keys) - Me.ClearAllCachesToolStripMenuItem.Size = New System.Drawing.Size(349, 22) - Me.ClearAllCachesToolStripMenuItem.Text = "Clear &All Caches" - ' - 'RefreshAllMoviesToolStripMenuItem - ' - Me.RefreshAllMoviesToolStripMenuItem.Image = CType(resources.GetObject("RefreshAllMoviesToolStripMenuItem.Image"), System.Drawing.Image) - Me.RefreshAllMoviesToolStripMenuItem.Name = "RefreshAllMoviesToolStripMenuItem" - Me.RefreshAllMoviesToolStripMenuItem.ShortcutKeys = CType(((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.Alt) _ - Or System.Windows.Forms.Keys.L), System.Windows.Forms.Keys) - Me.RefreshAllMoviesToolStripMenuItem.Size = New System.Drawing.Size(349, 22) - Me.RefreshAllMoviesToolStripMenuItem.Text = "Re&load All Movies" - ' - 'CleanDatabaseToolStripMenuItem - ' - Me.CleanDatabaseToolStripMenuItem.Image = CType(resources.GetObject("CleanDatabaseToolStripMenuItem.Image"), System.Drawing.Image) - Me.CleanDatabaseToolStripMenuItem.Name = "CleanDatabaseToolStripMenuItem" - Me.CleanDatabaseToolStripMenuItem.ShortcutKeys = CType(((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.Alt) _ - Or System.Windows.Forms.Keys.D), System.Windows.Forms.Keys) - Me.CleanDatabaseToolStripMenuItem.Size = New System.Drawing.Size(349, 22) - Me.CleanDatabaseToolStripMenuItem.Text = "Clean Database" - ' - 'ToolStripSeparator5 - ' - Me.ToolStripSeparator5.Name = "ToolStripSeparator5" - Me.ToolStripSeparator5.Size = New System.Drawing.Size(346, 6) - ' - 'DonateToolStripMenuItem - ' - Me.DonateToolStripMenuItem.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.DonateToolStripMenuItem.Image = CType(resources.GetObject("DonateToolStripMenuItem.Image"), System.Drawing.Image) - Me.DonateToolStripMenuItem.Name = "DonateToolStripMenuItem" - Me.DonateToolStripMenuItem.Size = New System.Drawing.Size(73, 20) - Me.DonateToolStripMenuItem.Text = "Donate" - ' - 'ErrorToolStripMenuItem - ' - Me.ErrorToolStripMenuItem.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right - Me.ErrorToolStripMenuItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image - Me.ErrorToolStripMenuItem.Image = CType(resources.GetObject("ErrorToolStripMenuItem.Image"), System.Drawing.Image) - Me.ErrorToolStripMenuItem.Name = "ErrorToolStripMenuItem" - Me.ErrorToolStripMenuItem.Size = New System.Drawing.Size(28, 20) - Me.ErrorToolStripMenuItem.ToolTipText = "An Error Has Occurred" - Me.ErrorToolStripMenuItem.Visible = False - ' - 'scMain - ' - Me.scMain.Dock = System.Windows.Forms.DockStyle.Fill - Me.scMain.FixedPanel = System.Windows.Forms.FixedPanel.Panel1 - Me.scMain.Location = New System.Drawing.Point(0, 24) - Me.scMain.Name = "scMain" - ' - 'scMain.Panel1 - ' - Me.scMain.Panel1.BackColor = System.Drawing.Color.Gainsboro - Me.scMain.Panel1.Controls.Add(Me.pnlFilterGenre) - Me.scMain.Panel1.Controls.Add(Me.pnlFilterSource) - Me.scMain.Panel1.Controls.Add(Me.dgvMediaList) - Me.scMain.Panel1.Controls.Add(Me.scTV) - Me.scMain.Panel1.Controls.Add(Me.pnlListTop) - Me.scMain.Panel1.Controls.Add(Me.pnlFilter) - Me.scMain.Panel1.Margin = New System.Windows.Forms.Padding(3) - Me.scMain.Panel1MinSize = 165 - ' - 'scMain.Panel2 - ' - Me.scMain.Panel2.BackColor = System.Drawing.Color.DimGray - Me.scMain.Panel2.Controls.Add(Me.pnlTop) - Me.scMain.Panel2.Controls.Add(Me.pnlCancel) - Me.scMain.Panel2.Controls.Add(Me.pnlAllSeason) - Me.scMain.Panel2.Controls.Add(Me.pbAllSeasonCache) - Me.scMain.Panel2.Controls.Add(Me.pnlNoInfo) - Me.scMain.Panel2.Controls.Add(Me.pnlInfoPanel) - Me.scMain.Panel2.Controls.Add(Me.pnlPoster) - Me.scMain.Panel2.Controls.Add(Me.pbPosterCache) - Me.scMain.Panel2.Controls.Add(Me.pnlMPAA) - Me.scMain.Panel2.Controls.Add(Me.pbFanartCache) - Me.scMain.Panel2.Controls.Add(Me.pbFanart) - Me.scMain.Panel2.Controls.Add(Me.tsMain) - Me.scMain.Panel2.Margin = New System.Windows.Forms.Padding(3) - Me.scMain.Size = New System.Drawing.Size(1477, 842) - Me.scMain.SplitterDistance = 364 - Me.scMain.TabIndex = 7 - Me.scMain.TabStop = False - ' - 'pnlFilterGenre - ' - Me.pnlFilterGenre.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.pnlFilterGenre.Controls.Add(Me.clbFilterGenres) - Me.pnlFilterGenre.Controls.Add(Me.lblGFilClose) - Me.pnlFilterGenre.Controls.Add(Me.Label4) - Me.pnlFilterGenre.Location = New System.Drawing.Point(186, 444) - Me.pnlFilterGenre.Name = "pnlFilterGenre" - Me.pnlFilterGenre.Size = New System.Drawing.Size(166, 146) - Me.pnlFilterGenre.TabIndex = 15 - Me.pnlFilterGenre.Visible = False - ' - 'clbFilterGenres - ' - Me.clbFilterGenres.CheckOnClick = True - Me.clbFilterGenres.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.clbFilterGenres.FormattingEnabled = True - Me.clbFilterGenres.Location = New System.Drawing.Point(1, 20) - Me.clbFilterGenres.Name = "clbFilterGenres" - Me.clbFilterGenres.Size = New System.Drawing.Size(162, 123) - Me.clbFilterGenres.TabIndex = 8 - Me.clbFilterGenres.TabStop = False - ' - 'lblGFilClose - ' - Me.lblGFilClose.AutoSize = True - Me.lblGFilClose.BackColor = System.Drawing.Color.DimGray - Me.lblGFilClose.Cursor = System.Windows.Forms.Cursors.Hand - Me.lblGFilClose.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Underline, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblGFilClose.ForeColor = System.Drawing.Color.White - Me.lblGFilClose.Location = New System.Drawing.Point(130, 2) - Me.lblGFilClose.Name = "lblGFilClose" - Me.lblGFilClose.Size = New System.Drawing.Size(35, 13) - Me.lblGFilClose.TabIndex = 24 - Me.lblGFilClose.Text = "Close" - ' - 'Label4 - ' - Me.Label4.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ - Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.Label4.BackColor = System.Drawing.SystemColors.ControlDarkDark - Me.Label4.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.Label4.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.Label4.ForeColor = System.Drawing.SystemColors.HighlightText - Me.Label4.Location = New System.Drawing.Point(1, 1) - Me.Label4.Name = "Label4" - Me.Label4.Size = New System.Drawing.Size(162, 17) - Me.Label4.TabIndex = 23 - Me.Label4.Text = "Genres" - Me.Label4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft - ' - 'pnlFilterSource - ' - Me.pnlFilterSource.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.pnlFilterSource.Controls.Add(Me.lblSFilClose) - Me.pnlFilterSource.Controls.Add(Me.Label8) - Me.pnlFilterSource.Controls.Add(Me.clbFilterSource) - Me.pnlFilterSource.Location = New System.Drawing.Point(186, 515) - Me.pnlFilterSource.Name = "pnlFilterSource" - Me.pnlFilterSource.Size = New System.Drawing.Size(166, 146) - Me.pnlFilterSource.TabIndex = 16 - Me.pnlFilterSource.Visible = False - ' - 'lblSFilClose - ' - Me.lblSFilClose.AutoSize = True - Me.lblSFilClose.BackColor = System.Drawing.Color.DimGray - Me.lblSFilClose.Cursor = System.Windows.Forms.Cursors.Hand - Me.lblSFilClose.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Underline, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblSFilClose.ForeColor = System.Drawing.Color.White - Me.lblSFilClose.Location = New System.Drawing.Point(130, 2) - Me.lblSFilClose.Name = "lblSFilClose" - Me.lblSFilClose.Size = New System.Drawing.Size(33, 13) - Me.lblSFilClose.TabIndex = 24 - Me.lblSFilClose.Text = "Close" - ' - 'Label8 - ' - Me.Label8.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ - Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.Label8.BackColor = System.Drawing.SystemColors.ControlDarkDark - Me.Label8.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.Label8.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label8.ForeColor = System.Drawing.SystemColors.HighlightText - Me.Label8.Location = New System.Drawing.Point(1, 1) - Me.Label8.Name = "Label8" - Me.Label8.Size = New System.Drawing.Size(162, 17) - Me.Label8.TabIndex = 23 - Me.Label8.Text = "Sources" - Me.Label8.TextAlign = System.Drawing.ContentAlignment.MiddleLeft - ' - 'clbFilterSource - ' - Me.clbFilterSource.CheckOnClick = True - Me.clbFilterSource.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.clbFilterSource.FormattingEnabled = True - Me.clbFilterSource.Location = New System.Drawing.Point(1, 20) - Me.clbFilterSource.Name = "clbFilterSource" - Me.clbFilterSource.Size = New System.Drawing.Size(162, 123) - Me.clbFilterSource.TabIndex = 8 - Me.clbFilterSource.TabStop = False - ' - 'dgvMediaList - ' - Me.dgvMediaList.AllowUserToAddRows = False - Me.dgvMediaList.AllowUserToDeleteRows = False - Me.dgvMediaList.AllowUserToResizeRows = False - DataGridViewCellStyle1.BackColor = System.Drawing.Color.FromArgb(CType(CType(230, Byte), Integer), CType(CType(230, Byte), Integer), CType(CType(230, Byte), Integer)) - Me.dgvMediaList.AlternatingRowsDefaultCellStyle = DataGridViewCellStyle1 - Me.dgvMediaList.BackgroundColor = System.Drawing.Color.White - Me.dgvMediaList.BorderStyle = System.Windows.Forms.BorderStyle.None - Me.dgvMediaList.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.SingleHorizontal - Me.dgvMediaList.ClipboardCopyMode = System.Windows.Forms.DataGridViewClipboardCopyMode.Disable - Me.dgvMediaList.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize - Me.dgvMediaList.ContextMenuStrip = Me.mnuMediaList - Me.dgvMediaList.Dock = System.Windows.Forms.DockStyle.Fill - Me.dgvMediaList.GridColor = System.Drawing.Color.FromArgb(CType(CType(240, Byte), Integer), CType(CType(240, Byte), Integer), CType(CType(240, Byte), Integer)) - Me.dgvMediaList.Location = New System.Drawing.Point(0, 56) - Me.dgvMediaList.Name = "dgvMediaList" - Me.dgvMediaList.ReadOnly = True - Me.dgvMediaList.RowHeadersVisible = False - Me.dgvMediaList.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect - Me.dgvMediaList.ShowCellErrors = False - Me.dgvMediaList.ShowRowErrors = False - Me.dgvMediaList.Size = New System.Drawing.Size(364, 606) - Me.dgvMediaList.StandardTab = True - Me.dgvMediaList.TabIndex = 0 - ' - 'mnuMediaList - ' - Me.mnuMediaList.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.cmnuTitle, Me.ToolStripSeparator3, Me.cmnuRefresh, Me.cmnuMark, Me.cmnuLock, Me.ToolStripMenuItem1, Me.cmnuEditMovie, Me.cmnuMetaData, Me.GenresToolStripMenuItem, Me.cmnuSep, Me.ScrapingToolStripMenuItem, Me.cmnuRescrape, Me.cmnuSearchNew, Me.cmnuSep2, Me.OpenContainingFolderToolStripMenuItem, Me.ToolStripSeparator1, Me.RemoveToolStripMenuItem}) - Me.mnuMediaList.Name = "mnuMediaList" - Me.mnuMediaList.Size = New System.Drawing.Size(245, 298) - ' - 'cmnuTitle - ' - Me.cmnuTitle.Enabled = False - Me.cmnuTitle.Image = CType(resources.GetObject("cmnuTitle.Image"), System.Drawing.Image) - Me.cmnuTitle.Name = "cmnuTitle" - Me.cmnuTitle.Size = New System.Drawing.Size(244, 22) - Me.cmnuTitle.Text = "Title" - ' - 'ToolStripSeparator3 - ' - Me.ToolStripSeparator3.Name = "ToolStripSeparator3" - Me.ToolStripSeparator3.Size = New System.Drawing.Size(241, 6) - ' - 'cmnuRefresh - ' - Me.cmnuRefresh.Image = CType(resources.GetObject("cmnuRefresh.Image"), System.Drawing.Image) - Me.cmnuRefresh.Name = "cmnuRefresh" - Me.cmnuRefresh.ShortcutKeys = System.Windows.Forms.Keys.F5 - Me.cmnuRefresh.Size = New System.Drawing.Size(244, 22) - Me.cmnuRefresh.Text = "Reload" - ' - 'cmnuMark - ' - Me.cmnuMark.Image = CType(resources.GetObject("cmnuMark.Image"), System.Drawing.Image) - Me.cmnuMark.Name = "cmnuMark" - Me.cmnuMark.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.M), System.Windows.Forms.Keys) - Me.cmnuMark.Size = New System.Drawing.Size(244, 22) - Me.cmnuMark.Text = "Mark" - ' - 'cmnuLock - ' - Me.cmnuLock.Image = CType(resources.GetObject("cmnuLock.Image"), System.Drawing.Image) - Me.cmnuLock.Name = "cmnuLock" - Me.cmnuLock.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.L), System.Windows.Forms.Keys) - Me.cmnuLock.Size = New System.Drawing.Size(244, 22) - Me.cmnuLock.Text = "Lock" - ' - 'ToolStripMenuItem1 - ' - Me.ToolStripMenuItem1.Name = "ToolStripMenuItem1" - Me.ToolStripMenuItem1.Size = New System.Drawing.Size(241, 6) - ' - 'cmnuEditMovie - ' - Me.cmnuEditMovie.Image = CType(resources.GetObject("cmnuEditMovie.Image"), System.Drawing.Image) - Me.cmnuEditMovie.Name = "cmnuEditMovie" - Me.cmnuEditMovie.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.E), System.Windows.Forms.Keys) - Me.cmnuEditMovie.Size = New System.Drawing.Size(244, 22) - Me.cmnuEditMovie.Text = "Edit Movie" - ' - 'cmnuMetaData - ' - Me.cmnuMetaData.Image = CType(resources.GetObject("cmnuMetaData.Image"), System.Drawing.Image) - Me.cmnuMetaData.Name = "cmnuMetaData" - Me.cmnuMetaData.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.D), System.Windows.Forms.Keys) - Me.cmnuMetaData.Size = New System.Drawing.Size(244, 22) - Me.cmnuMetaData.Text = "Edit Meta Data" - ' - 'GenresToolStripMenuItem - ' - Me.GenresToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.LblGenreStripMenuItem2, Me.GenreListToolStripComboBox, Me.AddGenreToolStripMenuItem, Me.SetGenreToolStripMenuItem, Me.RemoveGenreToolStripMenuItem}) - Me.GenresToolStripMenuItem.Image = CType(resources.GetObject("GenresToolStripMenuItem.Image"), System.Drawing.Image) - Me.GenresToolStripMenuItem.Name = "GenresToolStripMenuItem" - Me.GenresToolStripMenuItem.Size = New System.Drawing.Size(244, 22) - Me.GenresToolStripMenuItem.Text = "Genres" - ' - 'LblGenreStripMenuItem2 - ' - Me.LblGenreStripMenuItem2.Enabled = False - Me.LblGenreStripMenuItem2.Name = "LblGenreStripMenuItem2" - Me.LblGenreStripMenuItem2.Size = New System.Drawing.Size(195, 22) - Me.LblGenreStripMenuItem2.Text = ">> Select Genre <<" - ' - 'GenreListToolStripComboBox - ' - Me.GenreListToolStripComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList - Me.GenreListToolStripComboBox.FlatStyle = System.Windows.Forms.FlatStyle.Standard - Me.GenreListToolStripComboBox.Name = "GenreListToolStripComboBox" - Me.GenreListToolStripComboBox.Size = New System.Drawing.Size(135, 23) - Me.GenreListToolStripComboBox.Sorted = True - ' - 'AddGenreToolStripMenuItem - ' - Me.AddGenreToolStripMenuItem.Name = "AddGenreToolStripMenuItem" - Me.AddGenreToolStripMenuItem.Size = New System.Drawing.Size(195, 22) - Me.AddGenreToolStripMenuItem.Text = "Add" - ' - 'SetGenreToolStripMenuItem - ' - Me.SetGenreToolStripMenuItem.Name = "SetGenreToolStripMenuItem" - Me.SetGenreToolStripMenuItem.Size = New System.Drawing.Size(195, 22) - Me.SetGenreToolStripMenuItem.Text = "Set" - ' - 'RemoveGenreToolStripMenuItem - ' - Me.RemoveGenreToolStripMenuItem.Name = "RemoveGenreToolStripMenuItem" - Me.RemoveGenreToolStripMenuItem.Size = New System.Drawing.Size(195, 22) - Me.RemoveGenreToolStripMenuItem.Text = "Remove" - ' - 'cmnuSep - ' - Me.cmnuSep.Name = "cmnuSep" - Me.cmnuSep.Size = New System.Drawing.Size(241, 6) - ' - 'ScrapingToolStripMenuItem - ' - Me.ScrapingToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripMenuItem5, Me.ToolStripMenuItem13}) - Me.ScrapingToolStripMenuItem.Image = CType(resources.GetObject("ScrapingToolStripMenuItem.Image"), System.Drawing.Image) - Me.ScrapingToolStripMenuItem.Name = "ScrapingToolStripMenuItem" - Me.ScrapingToolStripMenuItem.Size = New System.Drawing.Size(244, 22) - Me.ScrapingToolStripMenuItem.Text = "(Re)Scrape Selected Movies" - ' - 'ToolStripMenuItem5 - ' - Me.ToolStripMenuItem5.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.SelectAllAutoToolStripMenuItem, Me.SelectNfoAutoToolStripMenuItem, Me.SelectPosterAutoToolStripMenuItem, Me.SelectFanartAutoToolStripMenuItem, Me.SelectExtraAutoToolStripMenuItem, Me.SelectTrailerAutoToolStripMenuItem, Me.SelectMetaAutoToolStripMenuItem}) - Me.ToolStripMenuItem5.Name = "ToolStripMenuItem5" - Me.ToolStripMenuItem5.Size = New System.Drawing.Size(271, 22) - Me.ToolStripMenuItem5.Text = "Automatic (Force Best Match)" - ' - 'SelectAllAutoToolStripMenuItem - ' - Me.SelectAllAutoToolStripMenuItem.Name = "SelectAllAutoToolStripMenuItem" - Me.SelectAllAutoToolStripMenuItem.Size = New System.Drawing.Size(168, 22) - Me.SelectAllAutoToolStripMenuItem.Text = "All Items" - ' - 'SelectNfoAutoToolStripMenuItem - ' - Me.SelectNfoAutoToolStripMenuItem.Name = "SelectNfoAutoToolStripMenuItem" - Me.SelectNfoAutoToolStripMenuItem.Size = New System.Drawing.Size(168, 22) - Me.SelectNfoAutoToolStripMenuItem.Text = "NFO Only" - ' - 'SelectPosterAutoToolStripMenuItem - ' - Me.SelectPosterAutoToolStripMenuItem.Name = "SelectPosterAutoToolStripMenuItem" - Me.SelectPosterAutoToolStripMenuItem.Size = New System.Drawing.Size(168, 22) - Me.SelectPosterAutoToolStripMenuItem.Text = "Poster Only" - ' - 'SelectFanartAutoToolStripMenuItem - ' - Me.SelectFanartAutoToolStripMenuItem.Name = "SelectFanartAutoToolStripMenuItem" - Me.SelectFanartAutoToolStripMenuItem.Size = New System.Drawing.Size(168, 22) - Me.SelectFanartAutoToolStripMenuItem.Text = "Fanart Only" - ' - 'SelectExtraAutoToolStripMenuItem - ' - Me.SelectExtraAutoToolStripMenuItem.Name = "SelectExtraAutoToolStripMenuItem" - Me.SelectExtraAutoToolStripMenuItem.Size = New System.Drawing.Size(168, 22) - Me.SelectExtraAutoToolStripMenuItem.Text = "Extrathumbs Only" - ' - 'SelectTrailerAutoToolStripMenuItem - ' - Me.SelectTrailerAutoToolStripMenuItem.Name = "SelectTrailerAutoToolStripMenuItem" - Me.SelectTrailerAutoToolStripMenuItem.Size = New System.Drawing.Size(168, 22) - Me.SelectTrailerAutoToolStripMenuItem.Text = "Trailer Only" - ' - 'SelectMetaAutoToolStripMenuItem - ' - Me.SelectMetaAutoToolStripMenuItem.Name = "SelectMetaAutoToolStripMenuItem" - Me.SelectMetaAutoToolStripMenuItem.Size = New System.Drawing.Size(168, 22) - Me.SelectMetaAutoToolStripMenuItem.Text = "Meta Data Only" - ' - 'ToolStripMenuItem13 - ' - Me.ToolStripMenuItem13.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.SelectAllAskToolStripMenuItem, Me.SelectNfoAskToolStripMenuItem, Me.SelectPosterÃskToolStripMenuItem, Me.SelectFanartAskToolStripMenuItem, Me.SelectExtraAskToolStripMenuItem, Me.ToolStripAskMenuItem19, Me.SelectMeEtaAskToolStripMenuItem}) - Me.ToolStripMenuItem13.Name = "ToolStripMenuItem13" - Me.ToolStripMenuItem13.Size = New System.Drawing.Size(271, 22) - Me.ToolStripMenuItem13.Text = "Ask (Require Input If No Exact Match)" - ' - 'SelectAllAskToolStripMenuItem - ' - Me.SelectAllAskToolStripMenuItem.Name = "SelectAllAskToolStripMenuItem" - Me.SelectAllAskToolStripMenuItem.Size = New System.Drawing.Size(168, 22) - Me.SelectAllAskToolStripMenuItem.Text = "All Items" - ' - 'SelectNfoAskToolStripMenuItem - ' - Me.SelectNfoAskToolStripMenuItem.Name = "SelectNfoAskToolStripMenuItem" - Me.SelectNfoAskToolStripMenuItem.Size = New System.Drawing.Size(168, 22) - Me.SelectNfoAskToolStripMenuItem.Text = "NFO Only" - ' - 'SelectPosterÃskToolStripMenuItem - ' - Me.SelectPosterÃskToolStripMenuItem.Name = "SelectPosterÃskToolStripMenuItem" - Me.SelectPosterÃskToolStripMenuItem.Size = New System.Drawing.Size(168, 22) - Me.SelectPosterÃskToolStripMenuItem.Text = "Poster Only" - ' - 'SelectFanartAskToolStripMenuItem - ' - Me.SelectFanartAskToolStripMenuItem.Name = "SelectFanartAskToolStripMenuItem" - Me.SelectFanartAskToolStripMenuItem.Size = New System.Drawing.Size(168, 22) - Me.SelectFanartAskToolStripMenuItem.Text = "Fanart Only" - ' - 'SelectExtraAskToolStripMenuItem - ' - Me.SelectExtraAskToolStripMenuItem.Name = "SelectExtraAskToolStripMenuItem" - Me.SelectExtraAskToolStripMenuItem.Size = New System.Drawing.Size(168, 22) - Me.SelectExtraAskToolStripMenuItem.Text = "Extrathumbs Only" - ' - 'ToolStripAskMenuItem19 - ' - Me.ToolStripAskMenuItem19.Name = "ToolStripAskMenuItem19" - Me.ToolStripAskMenuItem19.Size = New System.Drawing.Size(168, 22) - Me.ToolStripAskMenuItem19.Text = "Trailer Only" - ' - 'SelectMeEtaAskToolStripMenuItem - ' - Me.SelectMeEtaAskToolStripMenuItem.Name = "SelectMeEtaAskToolStripMenuItem" - Me.SelectMeEtaAskToolStripMenuItem.Size = New System.Drawing.Size(168, 22) - Me.SelectMeEtaAskToolStripMenuItem.Text = "Meta Data Only" - ' - 'cmnuRescrape - ' - Me.cmnuRescrape.Image = CType(resources.GetObject("cmnuRescrape.Image"), System.Drawing.Image) - Me.cmnuRescrape.Name = "cmnuRescrape" - Me.cmnuRescrape.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.I), System.Windows.Forms.Keys) - Me.cmnuRescrape.Size = New System.Drawing.Size(244, 22) - Me.cmnuRescrape.Text = "(Re)Scrape Movie" - ' - 'cmnuSearchNew - ' - Me.cmnuSearchNew.Image = CType(resources.GetObject("cmnuSearchNew.Image"), System.Drawing.Image) - Me.cmnuSearchNew.Name = "cmnuSearchNew" - Me.cmnuSearchNew.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.C), System.Windows.Forms.Keys) - Me.cmnuSearchNew.Size = New System.Drawing.Size(244, 22) - Me.cmnuSearchNew.Text = "Change Movie" - ' - 'cmnuSep2 - ' - Me.cmnuSep2.Name = "cmnuSep2" - Me.cmnuSep2.Size = New System.Drawing.Size(241, 6) - ' - 'OpenContainingFolderToolStripMenuItem - ' - Me.OpenContainingFolderToolStripMenuItem.Image = CType(resources.GetObject("OpenContainingFolderToolStripMenuItem.Image"), System.Drawing.Image) - Me.OpenContainingFolderToolStripMenuItem.Name = "OpenContainingFolderToolStripMenuItem" - Me.OpenContainingFolderToolStripMenuItem.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.O), System.Windows.Forms.Keys) - Me.OpenContainingFolderToolStripMenuItem.Size = New System.Drawing.Size(244, 22) - Me.OpenContainingFolderToolStripMenuItem.Text = "Open Containing Folder" - ' - 'ToolStripSeparator1 - ' - Me.ToolStripSeparator1.Name = "ToolStripSeparator1" - Me.ToolStripSeparator1.Size = New System.Drawing.Size(241, 6) - ' - 'RemoveToolStripMenuItem - ' - Me.RemoveToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.RemoveFromDatabaseToolStripMenuItem, Me.DeleteMovieToolStripMenuItem}) - Me.RemoveToolStripMenuItem.Image = CType(resources.GetObject("RemoveToolStripMenuItem.Image"), System.Drawing.Image) - Me.RemoveToolStripMenuItem.Name = "RemoveToolStripMenuItem" - Me.RemoveToolStripMenuItem.Size = New System.Drawing.Size(244, 22) - Me.RemoveToolStripMenuItem.Text = "Remove" - ' - 'RemoveFromDatabaseToolStripMenuItem - ' - Me.RemoveFromDatabaseToolStripMenuItem.Image = CType(resources.GetObject("RemoveFromDatabaseToolStripMenuItem.Image"), System.Drawing.Image) - Me.RemoveFromDatabaseToolStripMenuItem.Name = "RemoveFromDatabaseToolStripMenuItem" - Me.RemoveFromDatabaseToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Delete - Me.RemoveFromDatabaseToolStripMenuItem.Size = New System.Drawing.Size(221, 22) - Me.RemoveFromDatabaseToolStripMenuItem.Text = "Remove from Database" - ' - 'DeleteMovieToolStripMenuItem - ' - Me.DeleteMovieToolStripMenuItem.Image = CType(resources.GetObject("DeleteMovieToolStripMenuItem.Image"), System.Drawing.Image) - Me.DeleteMovieToolStripMenuItem.Name = "DeleteMovieToolStripMenuItem" - Me.DeleteMovieToolStripMenuItem.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.Delete), System.Windows.Forms.Keys) - Me.DeleteMovieToolStripMenuItem.Size = New System.Drawing.Size(221, 22) - Me.DeleteMovieToolStripMenuItem.Text = "Delete Movie" - ' - 'scTV - ' - Me.scTV.BackColor = System.Drawing.Color.Gainsboro - Me.scTV.Dock = System.Windows.Forms.DockStyle.Fill - Me.scTV.Location = New System.Drawing.Point(0, 56) - Me.scTV.Name = "scTV" - Me.scTV.Orientation = System.Windows.Forms.Orientation.Horizontal - ' - 'scTV.Panel1 - ' - Me.scTV.Panel1.BackColor = System.Drawing.Color.Gainsboro - Me.scTV.Panel1.Controls.Add(Me.dgvTVShows) - ' - 'scTV.Panel2 - ' - Me.scTV.Panel2.Controls.Add(Me.SplitContainer2) - Me.scTV.Size = New System.Drawing.Size(364, 606) - Me.scTV.SplitterDistance = 154 - Me.scTV.TabIndex = 3 - Me.scTV.TabStop = False - ' - 'dgvTVShows - ' - Me.dgvTVShows.AllowUserToAddRows = False - Me.dgvTVShows.AllowUserToDeleteRows = False - Me.dgvTVShows.AllowUserToResizeRows = False - DataGridViewCellStyle2.BackColor = System.Drawing.Color.FromArgb(CType(CType(249, Byte), Integer), CType(CType(249, Byte), Integer), CType(CType(249, Byte), Integer)) - Me.dgvTVShows.AlternatingRowsDefaultCellStyle = DataGridViewCellStyle2 - Me.dgvTVShows.BackgroundColor = System.Drawing.Color.White - Me.dgvTVShows.BorderStyle = System.Windows.Forms.BorderStyle.None - Me.dgvTVShows.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.SingleHorizontal - Me.dgvTVShows.ClipboardCopyMode = System.Windows.Forms.DataGridViewClipboardCopyMode.Disable - Me.dgvTVShows.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize - Me.dgvTVShows.ContextMenuStrip = Me.mnuShows - Me.dgvTVShows.Dock = System.Windows.Forms.DockStyle.Fill - Me.dgvTVShows.GridColor = System.Drawing.Color.FromArgb(CType(CType(240, Byte), Integer), CType(CType(240, Byte), Integer), CType(CType(240, Byte), Integer)) - Me.dgvTVShows.Location = New System.Drawing.Point(0, 0) - Me.dgvTVShows.Name = "dgvTVShows" - Me.dgvTVShows.ReadOnly = True - Me.dgvTVShows.RowHeadersVisible = False - Me.dgvTVShows.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect - Me.dgvTVShows.ShowCellErrors = False - Me.dgvTVShows.ShowRowErrors = False - Me.dgvTVShows.Size = New System.Drawing.Size(364, 154) - Me.dgvTVShows.StandardTab = True - Me.dgvTVShows.TabIndex = 0 - ' - 'mnuShows - ' - Me.mnuShows.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.cmnuShowTitle, Me.ToolStripMenuItem2, Me.cmnuReloadShow, Me.cmnuMarkShow, Me.cmnuLockShow, Me.ToolStripSeparator8, Me.cmnuEditShow, Me.ToolStripSeparator7, Me.cmnuRescrapeShow, Me.cmnuChangeShow, Me.ToolStripSeparator11, Me.cmnuShowOpenFolder, Me.ToolStripSeparator20, Me.RemoveShowToolStripMenuItem}) - Me.mnuShows.Name = "mnuShows" - Me.mnuShows.Size = New System.Drawing.Size(245, 232) - ' - 'cmnuShowTitle - ' - Me.cmnuShowTitle.Enabled = False - Me.cmnuShowTitle.Image = CType(resources.GetObject("cmnuShowTitle.Image"), System.Drawing.Image) - Me.cmnuShowTitle.Name = "cmnuShowTitle" - Me.cmnuShowTitle.Size = New System.Drawing.Size(244, 22) - Me.cmnuShowTitle.Text = "Title" - ' - 'ToolStripMenuItem2 - ' - Me.ToolStripMenuItem2.Name = "ToolStripMenuItem2" - Me.ToolStripMenuItem2.Size = New System.Drawing.Size(241, 6) - ' - 'cmnuReloadShow - ' - Me.cmnuReloadShow.Image = CType(resources.GetObject("cmnuReloadShow.Image"), System.Drawing.Image) - Me.cmnuReloadShow.Name = "cmnuReloadShow" - Me.cmnuReloadShow.ShortcutKeys = System.Windows.Forms.Keys.F5 - Me.cmnuReloadShow.Size = New System.Drawing.Size(244, 22) - Me.cmnuReloadShow.Text = "Reload" - ' - 'cmnuMarkShow - ' - Me.cmnuMarkShow.Image = CType(resources.GetObject("cmnuMarkShow.Image"), System.Drawing.Image) - Me.cmnuMarkShow.Name = "cmnuMarkShow" - Me.cmnuMarkShow.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.M), System.Windows.Forms.Keys) - Me.cmnuMarkShow.Size = New System.Drawing.Size(244, 22) - Me.cmnuMarkShow.Text = "Mark" - ' - 'cmnuLockShow - ' - Me.cmnuLockShow.Image = CType(resources.GetObject("cmnuLockShow.Image"), System.Drawing.Image) - Me.cmnuLockShow.Name = "cmnuLockShow" - Me.cmnuLockShow.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.L), System.Windows.Forms.Keys) - Me.cmnuLockShow.Size = New System.Drawing.Size(244, 22) - Me.cmnuLockShow.Text = "Lock" - ' - 'ToolStripSeparator8 - ' - Me.ToolStripSeparator8.Name = "ToolStripSeparator8" - Me.ToolStripSeparator8.Size = New System.Drawing.Size(241, 6) - ' - 'cmnuEditShow - ' - Me.cmnuEditShow.Image = CType(resources.GetObject("cmnuEditShow.Image"), System.Drawing.Image) - Me.cmnuEditShow.Name = "cmnuEditShow" - Me.cmnuEditShow.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.E), System.Windows.Forms.Keys) - Me.cmnuEditShow.Size = New System.Drawing.Size(244, 22) - Me.cmnuEditShow.Text = "Edit Show" - ' - 'ToolStripSeparator7 - ' - Me.ToolStripSeparator7.Name = "ToolStripSeparator7" - Me.ToolStripSeparator7.Size = New System.Drawing.Size(241, 6) - ' - 'cmnuRescrapeShow - ' - Me.cmnuRescrapeShow.Image = CType(resources.GetObject("cmnuRescrapeShow.Image"), System.Drawing.Image) - Me.cmnuRescrapeShow.Name = "cmnuRescrapeShow" - Me.cmnuRescrapeShow.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.I), System.Windows.Forms.Keys) - Me.cmnuRescrapeShow.Size = New System.Drawing.Size(244, 22) - Me.cmnuRescrapeShow.Text = "Re-scrape theTVDB" - ' - 'cmnuChangeShow - ' - Me.cmnuChangeShow.Image = CType(resources.GetObject("cmnuChangeShow.Image"), System.Drawing.Image) - Me.cmnuChangeShow.Name = "cmnuChangeShow" - Me.cmnuChangeShow.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.C), System.Windows.Forms.Keys) - Me.cmnuChangeShow.Size = New System.Drawing.Size(244, 22) - Me.cmnuChangeShow.Text = "Change Show" - ' - 'ToolStripSeparator11 - ' - Me.ToolStripSeparator11.Name = "ToolStripSeparator11" - Me.ToolStripSeparator11.Size = New System.Drawing.Size(241, 6) - ' - 'cmnuShowOpenFolder - ' - Me.cmnuShowOpenFolder.Image = CType(resources.GetObject("cmnuShowOpenFolder.Image"), System.Drawing.Image) - Me.cmnuShowOpenFolder.Name = "cmnuShowOpenFolder" - Me.cmnuShowOpenFolder.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.O), System.Windows.Forms.Keys) - Me.cmnuShowOpenFolder.Size = New System.Drawing.Size(244, 22) - Me.cmnuShowOpenFolder.Text = "Open Containing Folder" - ' - 'ToolStripSeparator20 - ' - Me.ToolStripSeparator20.Name = "ToolStripSeparator20" - Me.ToolStripSeparator20.Size = New System.Drawing.Size(241, 6) - ' - 'RemoveShowToolStripMenuItem - ' - Me.RemoveShowToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.cmnuRemoveTVShow, Me.cmnuDeleteTVShow}) - Me.RemoveShowToolStripMenuItem.Image = CType(resources.GetObject("RemoveShowToolStripMenuItem.Image"), System.Drawing.Image) - Me.RemoveShowToolStripMenuItem.Name = "RemoveShowToolStripMenuItem" - Me.RemoveShowToolStripMenuItem.Size = New System.Drawing.Size(244, 22) - Me.RemoveShowToolStripMenuItem.Text = "Remove" - ' - 'cmnuRemoveTVShow - ' - Me.cmnuRemoveTVShow.Image = CType(resources.GetObject("cmnuRemoveTVShow.Image"), System.Drawing.Image) - Me.cmnuRemoveTVShow.Name = "cmnuRemoveTVShow" - Me.cmnuRemoveTVShow.ShortcutKeys = System.Windows.Forms.Keys.Delete - Me.cmnuRemoveTVShow.Size = New System.Drawing.Size(221, 22) - Me.cmnuRemoveTVShow.Text = "Remove from Database" - ' - 'cmnuDeleteTVShow - ' - Me.cmnuDeleteTVShow.Image = CType(resources.GetObject("cmnuDeleteTVShow.Image"), System.Drawing.Image) - Me.cmnuDeleteTVShow.Name = "cmnuDeleteTVShow" - Me.cmnuDeleteTVShow.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.Delete), System.Windows.Forms.Keys) - Me.cmnuDeleteTVShow.Size = New System.Drawing.Size(221, 22) - Me.cmnuDeleteTVShow.Text = "Delete TV Show" - ' - 'SplitContainer2 - ' - Me.SplitContainer2.Dock = System.Windows.Forms.DockStyle.Fill - Me.SplitContainer2.Location = New System.Drawing.Point(0, 0) - Me.SplitContainer2.Name = "SplitContainer2" - Me.SplitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal - ' - 'SplitContainer2.Panel1 - ' - Me.SplitContainer2.Panel1.BackColor = System.Drawing.Color.Gainsboro - Me.SplitContainer2.Panel1.Controls.Add(Me.dgvTVSeasons) - ' - 'SplitContainer2.Panel2 - ' - Me.SplitContainer2.Panel2.Controls.Add(Me.dgvTVEpisodes) - Me.SplitContainer2.Size = New System.Drawing.Size(364, 448) - Me.SplitContainer2.SplitterDistance = 154 - Me.SplitContainer2.TabIndex = 0 - Me.SplitContainer2.TabStop = False - ' - 'dgvTVSeasons - ' - Me.dgvTVSeasons.AllowUserToAddRows = False - Me.dgvTVSeasons.AllowUserToDeleteRows = False - Me.dgvTVSeasons.AllowUserToResizeRows = False - DataGridViewCellStyle3.BackColor = System.Drawing.Color.FromArgb(CType(CType(249, Byte), Integer), CType(CType(249, Byte), Integer), CType(CType(249, Byte), Integer)) - Me.dgvTVSeasons.AlternatingRowsDefaultCellStyle = DataGridViewCellStyle3 - Me.dgvTVSeasons.BackgroundColor = System.Drawing.Color.White - Me.dgvTVSeasons.BorderStyle = System.Windows.Forms.BorderStyle.None - Me.dgvTVSeasons.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.SingleHorizontal - Me.dgvTVSeasons.ClipboardCopyMode = System.Windows.Forms.DataGridViewClipboardCopyMode.Disable - Me.dgvTVSeasons.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize - Me.dgvTVSeasons.ContextMenuStrip = Me.mnuSeasons - Me.dgvTVSeasons.Dock = System.Windows.Forms.DockStyle.Fill - Me.dgvTVSeasons.GridColor = System.Drawing.Color.FromArgb(CType(CType(240, Byte), Integer), CType(CType(240, Byte), Integer), CType(CType(240, Byte), Integer)) - Me.dgvTVSeasons.Location = New System.Drawing.Point(0, 0) - Me.dgvTVSeasons.Name = "dgvTVSeasons" - Me.dgvTVSeasons.ReadOnly = True - Me.dgvTVSeasons.RowHeadersVisible = False - Me.dgvTVSeasons.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect - Me.dgvTVSeasons.ShowCellErrors = False - Me.dgvTVSeasons.ShowRowErrors = False - Me.dgvTVSeasons.Size = New System.Drawing.Size(364, 154) - Me.dgvTVSeasons.StandardTab = True - Me.dgvTVSeasons.TabIndex = 0 - ' - 'mnuSeasons - ' - Me.mnuSeasons.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.cmnuSeasonTitle, Me.ToolStripSeparator17, Me.cmnuReloadSeason, Me.cmnuMarkSeason, Me.cmnuLockSeason, Me.ToolStripSeparator16, Me.cmnuSeasonChangeImages, Me.ToolStripSeparator14, Me.cmnuSeasonRescrape, Me.ToolStripSeparator15, Me.cmnuSeasonOpenFolder, Me.ToolStripSeparator27, Me.cmnuSeasonRemove}) - Me.mnuSeasons.Name = "mnuSeasons" - Me.mnuSeasons.Size = New System.Drawing.Size(245, 210) - ' - 'cmnuSeasonTitle - ' - Me.cmnuSeasonTitle.Enabled = False - Me.cmnuSeasonTitle.Image = CType(resources.GetObject("cmnuSeasonTitle.Image"), System.Drawing.Image) - Me.cmnuSeasonTitle.Name = "cmnuSeasonTitle" - Me.cmnuSeasonTitle.Size = New System.Drawing.Size(244, 22) - Me.cmnuSeasonTitle.Text = "Title" - ' - 'ToolStripSeparator17 - ' - Me.ToolStripSeparator17.Name = "ToolStripSeparator17" - Me.ToolStripSeparator17.Size = New System.Drawing.Size(241, 6) - ' - 'cmnuReloadSeason - ' - Me.cmnuReloadSeason.Image = CType(resources.GetObject("cmnuReloadSeason.Image"), System.Drawing.Image) - Me.cmnuReloadSeason.Name = "cmnuReloadSeason" - Me.cmnuReloadSeason.ShortcutKeys = System.Windows.Forms.Keys.F5 - Me.cmnuReloadSeason.Size = New System.Drawing.Size(244, 22) - Me.cmnuReloadSeason.Text = "Reload" - ' - 'cmnuMarkSeason - ' - Me.cmnuMarkSeason.Image = CType(resources.GetObject("cmnuMarkSeason.Image"), System.Drawing.Image) - Me.cmnuMarkSeason.Name = "cmnuMarkSeason" - Me.cmnuMarkSeason.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.M), System.Windows.Forms.Keys) - Me.cmnuMarkSeason.Size = New System.Drawing.Size(244, 22) - Me.cmnuMarkSeason.Text = "Mark" - ' - 'cmnuLockSeason - ' - Me.cmnuLockSeason.Image = CType(resources.GetObject("cmnuLockSeason.Image"), System.Drawing.Image) - Me.cmnuLockSeason.Name = "cmnuLockSeason" - Me.cmnuLockSeason.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.L), System.Windows.Forms.Keys) - Me.cmnuLockSeason.Size = New System.Drawing.Size(244, 22) - Me.cmnuLockSeason.Text = "Lock" - ' - 'ToolStripSeparator16 - ' - Me.ToolStripSeparator16.Name = "ToolStripSeparator16" - Me.ToolStripSeparator16.Size = New System.Drawing.Size(241, 6) - ' - 'cmnuSeasonChangeImages - ' - Me.cmnuSeasonChangeImages.Image = CType(resources.GetObject("cmnuSeasonChangeImages.Image"), System.Drawing.Image) - Me.cmnuSeasonChangeImages.Name = "cmnuSeasonChangeImages" - Me.cmnuSeasonChangeImages.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.E), System.Windows.Forms.Keys) - Me.cmnuSeasonChangeImages.Size = New System.Drawing.Size(244, 22) - Me.cmnuSeasonChangeImages.Text = "Change Images" - ' - 'ToolStripSeparator14 - ' - Me.ToolStripSeparator14.Name = "ToolStripSeparator14" - Me.ToolStripSeparator14.Size = New System.Drawing.Size(241, 6) - ' - 'cmnuSeasonRescrape - ' - Me.cmnuSeasonRescrape.Image = CType(resources.GetObject("cmnuSeasonRescrape.Image"), System.Drawing.Image) - Me.cmnuSeasonRescrape.Name = "cmnuSeasonRescrape" - Me.cmnuSeasonRescrape.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.I), System.Windows.Forms.Keys) - Me.cmnuSeasonRescrape.Size = New System.Drawing.Size(244, 22) - Me.cmnuSeasonRescrape.Text = "Re-scrape theTVDB" - ' - 'ToolStripSeparator15 - ' - Me.ToolStripSeparator15.Name = "ToolStripSeparator15" - Me.ToolStripSeparator15.Size = New System.Drawing.Size(241, 6) - ' - 'cmnuSeasonOpenFolder - ' - Me.cmnuSeasonOpenFolder.Image = CType(resources.GetObject("cmnuSeasonOpenFolder.Image"), System.Drawing.Image) - Me.cmnuSeasonOpenFolder.Name = "cmnuSeasonOpenFolder" - Me.cmnuSeasonOpenFolder.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.O), System.Windows.Forms.Keys) - Me.cmnuSeasonOpenFolder.Size = New System.Drawing.Size(244, 22) - Me.cmnuSeasonOpenFolder.Text = "Open Contianing Folder" - ' - 'ToolStripSeparator27 - ' - Me.ToolStripSeparator27.Name = "ToolStripSeparator27" - Me.ToolStripSeparator27.Size = New System.Drawing.Size(241, 6) - ' - 'cmnuSeasonRemove - ' - Me.cmnuSeasonRemove.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.cmnuRemoveSeasonFromDB, Me.cmnuDeleteSeason}) - Me.cmnuSeasonRemove.Image = CType(resources.GetObject("cmnuSeasonRemove.Image"), System.Drawing.Image) - Me.cmnuSeasonRemove.Name = "cmnuSeasonRemove" - Me.cmnuSeasonRemove.Size = New System.Drawing.Size(244, 22) - Me.cmnuSeasonRemove.Text = "Remove" - ' - 'cmnuRemoveSeasonFromDB - ' - Me.cmnuRemoveSeasonFromDB.Image = CType(resources.GetObject("cmnuRemoveSeasonFromDB.Image"), System.Drawing.Image) - Me.cmnuRemoveSeasonFromDB.Name = "cmnuRemoveSeasonFromDB" - Me.cmnuRemoveSeasonFromDB.ShortcutKeys = System.Windows.Forms.Keys.Delete - Me.cmnuRemoveSeasonFromDB.Size = New System.Drawing.Size(221, 22) - Me.cmnuRemoveSeasonFromDB.Text = "Remove from Database" - ' - 'cmnuDeleteSeason - ' - Me.cmnuDeleteSeason.Image = CType(resources.GetObject("cmnuDeleteSeason.Image"), System.Drawing.Image) - Me.cmnuDeleteSeason.Name = "cmnuDeleteSeason" - Me.cmnuDeleteSeason.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.Delete), System.Windows.Forms.Keys) - Me.cmnuDeleteSeason.Size = New System.Drawing.Size(221, 22) - Me.cmnuDeleteSeason.Text = "Delete Season" - ' - 'dgvTVEpisodes - ' - Me.dgvTVEpisodes.AllowUserToAddRows = False - Me.dgvTVEpisodes.AllowUserToDeleteRows = False - Me.dgvTVEpisodes.AllowUserToResizeRows = False - DataGridViewCellStyle4.BackColor = System.Drawing.Color.FromArgb(CType(CType(249, Byte), Integer), CType(CType(249, Byte), Integer), CType(CType(249, Byte), Integer)) - Me.dgvTVEpisodes.AlternatingRowsDefaultCellStyle = DataGridViewCellStyle4 - Me.dgvTVEpisodes.BackgroundColor = System.Drawing.Color.White - Me.dgvTVEpisodes.BorderStyle = System.Windows.Forms.BorderStyle.None - Me.dgvTVEpisodes.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.SingleHorizontal - Me.dgvTVEpisodes.ClipboardCopyMode = System.Windows.Forms.DataGridViewClipboardCopyMode.Disable - Me.dgvTVEpisodes.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize - Me.dgvTVEpisodes.ContextMenuStrip = Me.mnuEpisodes - Me.dgvTVEpisodes.Dock = System.Windows.Forms.DockStyle.Fill - Me.dgvTVEpisodes.GridColor = System.Drawing.Color.FromArgb(CType(CType(240, Byte), Integer), CType(CType(240, Byte), Integer), CType(CType(240, Byte), Integer)) - Me.dgvTVEpisodes.Location = New System.Drawing.Point(0, 0) - Me.dgvTVEpisodes.Name = "dgvTVEpisodes" - Me.dgvTVEpisodes.ReadOnly = True - Me.dgvTVEpisodes.RowHeadersVisible = False - Me.dgvTVEpisodes.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect - Me.dgvTVEpisodes.ShowCellErrors = False - Me.dgvTVEpisodes.ShowRowErrors = False - Me.dgvTVEpisodes.Size = New System.Drawing.Size(364, 290) - Me.dgvTVEpisodes.StandardTab = True - Me.dgvTVEpisodes.TabIndex = 0 - ' - 'mnuEpisodes - ' - Me.mnuEpisodes.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.cmnuEpTitle, Me.ToolStripSeparator6, Me.cmnuReloadEp, Me.cmnuMarkEp, Me.cmnuLockEp, Me.ToolStripSeparator9, Me.cmnuEditEpisode, Me.ToolStripSeparator10, Me.cmnuRescrapeEp, Me.cmnuChangeEp, Me.ToolStripSeparator12, Me.cmnuEpOpenFolder, Me.ToolStripSeparator28, Me.RemoveEpToolStripMenuItem}) - Me.mnuEpisodes.Name = "mnuEpisodes" - Me.mnuEpisodes.Size = New System.Drawing.Size(245, 232) - ' - 'cmnuEpTitle - ' - Me.cmnuEpTitle.Enabled = False - Me.cmnuEpTitle.Image = CType(resources.GetObject("cmnuEpTitle.Image"), System.Drawing.Image) - Me.cmnuEpTitle.Name = "cmnuEpTitle" - Me.cmnuEpTitle.Size = New System.Drawing.Size(244, 22) - Me.cmnuEpTitle.Text = "Title" - ' - 'ToolStripSeparator6 - ' - Me.ToolStripSeparator6.Name = "ToolStripSeparator6" - Me.ToolStripSeparator6.Size = New System.Drawing.Size(241, 6) - ' - 'cmnuReloadEp - ' - Me.cmnuReloadEp.Image = CType(resources.GetObject("cmnuReloadEp.Image"), System.Drawing.Image) - Me.cmnuReloadEp.Name = "cmnuReloadEp" - Me.cmnuReloadEp.ShortcutKeys = System.Windows.Forms.Keys.F5 - Me.cmnuReloadEp.Size = New System.Drawing.Size(244, 22) - Me.cmnuReloadEp.Text = "Reload" - ' - 'cmnuMarkEp - ' - Me.cmnuMarkEp.Image = CType(resources.GetObject("cmnuMarkEp.Image"), System.Drawing.Image) - Me.cmnuMarkEp.Name = "cmnuMarkEp" - Me.cmnuMarkEp.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.M), System.Windows.Forms.Keys) - Me.cmnuMarkEp.Size = New System.Drawing.Size(244, 22) - Me.cmnuMarkEp.Text = "Mark" - ' - 'cmnuLockEp - ' - Me.cmnuLockEp.Image = CType(resources.GetObject("cmnuLockEp.Image"), System.Drawing.Image) - Me.cmnuLockEp.Name = "cmnuLockEp" - Me.cmnuLockEp.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.L), System.Windows.Forms.Keys) - Me.cmnuLockEp.Size = New System.Drawing.Size(244, 22) - Me.cmnuLockEp.Text = "Lock" - ' - 'ToolStripSeparator9 - ' - Me.ToolStripSeparator9.Name = "ToolStripSeparator9" - Me.ToolStripSeparator9.Size = New System.Drawing.Size(241, 6) - ' - 'cmnuEditEpisode - ' - Me.cmnuEditEpisode.Image = CType(resources.GetObject("cmnuEditEpisode.Image"), System.Drawing.Image) - Me.cmnuEditEpisode.Name = "cmnuEditEpisode" - Me.cmnuEditEpisode.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.E), System.Windows.Forms.Keys) - Me.cmnuEditEpisode.Size = New System.Drawing.Size(244, 22) - Me.cmnuEditEpisode.Text = "Edit Episode" - ' - 'ToolStripSeparator10 - ' - Me.ToolStripSeparator10.Name = "ToolStripSeparator10" - Me.ToolStripSeparator10.Size = New System.Drawing.Size(241, 6) - ' - 'cmnuRescrapeEp - ' - Me.cmnuRescrapeEp.Image = CType(resources.GetObject("cmnuRescrapeEp.Image"), System.Drawing.Image) - Me.cmnuRescrapeEp.Name = "cmnuRescrapeEp" - Me.cmnuRescrapeEp.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.I), System.Windows.Forms.Keys) - Me.cmnuRescrapeEp.Size = New System.Drawing.Size(244, 22) - Me.cmnuRescrapeEp.Text = "Re-scrape theTVDB" - ' - 'cmnuChangeEp - ' - Me.cmnuChangeEp.Image = CType(resources.GetObject("cmnuChangeEp.Image"), System.Drawing.Image) - Me.cmnuChangeEp.Name = "cmnuChangeEp" - Me.cmnuChangeEp.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.C), System.Windows.Forms.Keys) - Me.cmnuChangeEp.Size = New System.Drawing.Size(244, 22) - Me.cmnuChangeEp.Text = "Change Episode" - ' - 'ToolStripSeparator12 - ' - Me.ToolStripSeparator12.Name = "ToolStripSeparator12" - Me.ToolStripSeparator12.Size = New System.Drawing.Size(241, 6) - ' - 'cmnuEpOpenFolder - ' - Me.cmnuEpOpenFolder.Image = CType(resources.GetObject("cmnuEpOpenFolder.Image"), System.Drawing.Image) - Me.cmnuEpOpenFolder.Name = "cmnuEpOpenFolder" - Me.cmnuEpOpenFolder.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.O), System.Windows.Forms.Keys) - Me.cmnuEpOpenFolder.Size = New System.Drawing.Size(244, 22) - Me.cmnuEpOpenFolder.Text = "Open Contianing Folder" - ' - 'ToolStripSeparator28 - ' - Me.ToolStripSeparator28.Name = "ToolStripSeparator28" - Me.ToolStripSeparator28.Size = New System.Drawing.Size(241, 6) - ' - 'RemoveEpToolStripMenuItem - ' - Me.RemoveEpToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.cmnuRemoveTVEp, Me.cmnuDeleteTVEp}) - Me.RemoveEpToolStripMenuItem.Image = CType(resources.GetObject("RemoveEpToolStripMenuItem.Image"), System.Drawing.Image) - Me.RemoveEpToolStripMenuItem.Name = "RemoveEpToolStripMenuItem" - Me.RemoveEpToolStripMenuItem.Size = New System.Drawing.Size(244, 22) - Me.RemoveEpToolStripMenuItem.Text = "Remove" - ' - 'cmnuRemoveTVEp - ' - Me.cmnuRemoveTVEp.Image = CType(resources.GetObject("cmnuRemoveTVEp.Image"), System.Drawing.Image) - Me.cmnuRemoveTVEp.Name = "cmnuRemoveTVEp" - Me.cmnuRemoveTVEp.ShortcutKeys = System.Windows.Forms.Keys.Delete - Me.cmnuRemoveTVEp.Size = New System.Drawing.Size(221, 22) - Me.cmnuRemoveTVEp.Text = "Remove from Database" - ' - 'cmnuDeleteTVEp - ' - Me.cmnuDeleteTVEp.Image = CType(resources.GetObject("cmnuDeleteTVEp.Image"), System.Drawing.Image) - Me.cmnuDeleteTVEp.Name = "cmnuDeleteTVEp" - Me.cmnuDeleteTVEp.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.Delete), System.Windows.Forms.Keys) - Me.cmnuDeleteTVEp.Size = New System.Drawing.Size(221, 22) - Me.cmnuDeleteTVEp.Text = "Delete Episode" - ' - 'pnlListTop - ' - Me.pnlListTop.Controls.Add(Me.btnMarkAll) - Me.pnlListTop.Controls.Add(Me.pnlSearch) - Me.pnlListTop.Controls.Add(Me.tabsMain) - Me.pnlListTop.Dock = System.Windows.Forms.DockStyle.Top - Me.pnlListTop.Location = New System.Drawing.Point(0, 0) - Me.pnlListTop.Name = "pnlListTop" - Me.pnlListTop.Size = New System.Drawing.Size(364, 56) - Me.pnlListTop.TabIndex = 14 - ' - 'btnMarkAll - ' - Me.btnMarkAll.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.btnMarkAll.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.btnMarkAll.Image = CType(resources.GetObject("btnMarkAll.Image"), System.Drawing.Image) - Me.btnMarkAll.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnMarkAll.Location = New System.Drawing.Point(254, 1) - Me.btnMarkAll.Name = "btnMarkAll" - Me.btnMarkAll.Size = New System.Drawing.Size(109, 21) - Me.btnMarkAll.TabIndex = 1 - Me.btnMarkAll.Text = "Mark All" - Me.btnMarkAll.TextAlign = System.Drawing.ContentAlignment.MiddleRight - Me.btnMarkAll.UseVisualStyleBackColor = True - ' - 'pnlSearch - ' - Me.pnlSearch.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ - Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.pnlSearch.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.pnlSearch.Controls.Add(Me.cbSearch) - Me.pnlSearch.Controls.Add(Me.picSearch) - Me.pnlSearch.Controls.Add(Me.txtSearch) - Me.pnlSearch.Location = New System.Drawing.Point(0, 23) - Me.pnlSearch.Name = "pnlSearch" - Me.pnlSearch.Size = New System.Drawing.Size(364, 33) - Me.pnlSearch.TabIndex = 0 - ' - 'cbSearch - ' - Me.cbSearch.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.cbSearch.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList - Me.cbSearch.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.cbSearch.FormattingEnabled = True - Me.cbSearch.Location = New System.Drawing.Point(253, 6) - Me.cbSearch.Name = "cbSearch" - Me.cbSearch.Size = New System.Drawing.Size(83, 21) - Me.cbSearch.TabIndex = 1 - ' - 'picSearch - ' - Me.picSearch.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.picSearch.Image = CType(resources.GetObject("picSearch.Image"), System.Drawing.Image) - Me.picSearch.Location = New System.Drawing.Point(340, 8) - Me.picSearch.Name = "picSearch" - Me.picSearch.Size = New System.Drawing.Size(16, 16) - Me.picSearch.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize - Me.picSearch.TabIndex = 1 - Me.picSearch.TabStop = False - ' - 'txtSearch - ' - Me.txtSearch.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ - Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.txtSearch.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.txtSearch.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.txtSearch.Location = New System.Drawing.Point(7, 6) - Me.txtSearch.Name = "txtSearch" - Me.txtSearch.Size = New System.Drawing.Size(242, 22) - Me.txtSearch.TabIndex = 0 - ' - 'tabsMain - ' - Me.tabsMain.Controls.Add(Me.tabMovies) - Me.tabsMain.Controls.Add(Me.tabTV) - Me.tabsMain.Dock = System.Windows.Forms.DockStyle.Top - Me.tabsMain.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.tabsMain.Location = New System.Drawing.Point(0, 0) - Me.tabsMain.Name = "tabsMain" - Me.tabsMain.SelectedIndex = 0 - Me.tabsMain.Size = New System.Drawing.Size(364, 29) - Me.tabsMain.TabIndex = 0 - Me.tabsMain.TabStop = False - ' - 'tabMovies - ' - Me.tabMovies.Location = New System.Drawing.Point(4, 22) - Me.tabMovies.Name = "tabMovies" - Me.tabMovies.Padding = New System.Windows.Forms.Padding(3) - Me.tabMovies.Size = New System.Drawing.Size(356, 3) - Me.tabMovies.TabIndex = 0 - Me.tabMovies.Text = "Movies" - Me.tabMovies.UseVisualStyleBackColor = True - ' - 'tabTV - ' - Me.tabTV.Location = New System.Drawing.Point(4, 22) - Me.tabTV.Name = "tabTV" - Me.tabTV.Padding = New System.Windows.Forms.Padding(3) - Me.tabTV.Size = New System.Drawing.Size(356, 3) - Me.tabTV.TabIndex = 1 - Me.tabTV.Text = "TV Shows" - Me.tabTV.UseVisualStyleBackColor = True - ' - 'pnlFilter - ' - Me.pnlFilter.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.pnlFilter.Controls.Add(Me.GroupBox1) - Me.pnlFilter.Controls.Add(Me.btnClearFilters) - Me.pnlFilter.Controls.Add(Me.GroupBox3) - Me.pnlFilter.Controls.Add(Me.gbSpecific) - Me.pnlFilter.Controls.Add(Me.btnFilterDown) - Me.pnlFilter.Controls.Add(Me.btnFilterUp) - Me.pnlFilter.Controls.Add(Me.lblFilter) - Me.pnlFilter.Dock = System.Windows.Forms.DockStyle.Bottom - Me.pnlFilter.Location = New System.Drawing.Point(0, 662) - Me.pnlFilter.Name = "pnlFilter" - Me.pnlFilter.Size = New System.Drawing.Size(364, 180) - Me.pnlFilter.TabIndex = 12 - Me.pnlFilter.Visible = False - ' - 'GroupBox1 - ' - Me.GroupBox1.Controls.Add(Me.btnIMDBRating) - Me.GroupBox1.Controls.Add(Me.btnSortTitle) - Me.GroupBox1.Controls.Add(Me.btnSortDate) - Me.GroupBox1.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.GroupBox1.Location = New System.Drawing.Point(3, 81) - Me.GroupBox1.Name = "GroupBox1" - Me.GroupBox1.Size = New System.Drawing.Size(131, 77) - Me.GroupBox1.TabIndex = 4 - Me.GroupBox1.TabStop = False - Me.GroupBox1.Text = "Extra Sorting" - ' - 'btnIMDBRating - ' - Me.btnIMDBRating.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.btnIMDBRating.Image = Global.Ember_Media_Manager.My.Resources.Resources.desc - Me.btnIMDBRating.ImageAlign = System.Drawing.ContentAlignment.MiddleRight - Me.btnIMDBRating.Location = New System.Drawing.Point(7, 53) - Me.btnIMDBRating.Name = "btnIMDBRating" - Me.btnIMDBRating.Size = New System.Drawing.Size(117, 21) - Me.btnIMDBRating.TabIndex = 2 - Me.btnIMDBRating.Text = "IMDB Rating" - Me.btnIMDBRating.TextAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnIMDBRating.UseVisualStyleBackColor = True - ' - 'btnSortTitle - ' - Me.btnSortTitle.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.btnSortTitle.Image = Global.Ember_Media_Manager.My.Resources.Resources.desc - Me.btnSortTitle.ImageAlign = System.Drawing.ContentAlignment.MiddleRight - Me.btnSortTitle.Location = New System.Drawing.Point(7, 33) - Me.btnSortTitle.Name = "btnSortTitle" - Me.btnSortTitle.Size = New System.Drawing.Size(117, 21) - Me.btnSortTitle.TabIndex = 1 - Me.btnSortTitle.Text = "Sort Title" - Me.btnSortTitle.TextAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnSortTitle.UseVisualStyleBackColor = True - ' - 'btnSortDate - ' - Me.btnSortDate.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.btnSortDate.Image = Global.Ember_Media_Manager.My.Resources.Resources.desc - Me.btnSortDate.ImageAlign = System.Drawing.ContentAlignment.MiddleRight - Me.btnSortDate.Location = New System.Drawing.Point(7, 13) - Me.btnSortDate.Name = "btnSortDate" - Me.btnSortDate.Size = New System.Drawing.Size(117, 21) - Me.btnSortDate.TabIndex = 0 - Me.btnSortDate.Text = "Date Added" - Me.btnSortDate.TextAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnSortDate.UseVisualStyleBackColor = True - ' - 'btnClearFilters - ' - Me.btnClearFilters.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.btnClearFilters.Image = CType(resources.GetObject("btnClearFilters.Image"), System.Drawing.Image) - Me.btnClearFilters.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnClearFilters.Location = New System.Drawing.Point(22, 160) - Me.btnClearFilters.Name = "btnClearFilters" - Me.btnClearFilters.Size = New System.Drawing.Size(92, 20) - Me.btnClearFilters.TabIndex = 5 - Me.btnClearFilters.Text = "Clear Filters" - Me.btnClearFilters.TextAlign = System.Drawing.ContentAlignment.MiddleRight - Me.btnClearFilters.UseVisualStyleBackColor = True - ' - 'GroupBox3 - ' - Me.GroupBox3.Controls.Add(Me.chkFilterTolerance) - Me.GroupBox3.Controls.Add(Me.chkFilterMissing) - Me.GroupBox3.Controls.Add(Me.chkFilterDupe) - Me.GroupBox3.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.GroupBox3.Location = New System.Drawing.Point(3, 22) - Me.GroupBox3.Name = "GroupBox3" - Me.GroupBox3.Size = New System.Drawing.Size(131, 59) - Me.GroupBox3.TabIndex = 3 - Me.GroupBox3.TabStop = False - Me.GroupBox3.Text = "General" - ' - 'chkFilterTolerance - ' - Me.chkFilterTolerance.AutoSize = True - Me.chkFilterTolerance.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.chkFilterTolerance.Location = New System.Drawing.Point(7, 41) - Me.chkFilterTolerance.Name = "chkFilterTolerance" - Me.chkFilterTolerance.Size = New System.Drawing.Size(112, 17) - Me.chkFilterTolerance.TabIndex = 2 - Me.chkFilterTolerance.Text = "Out of Tolerance" - Me.chkFilterTolerance.UseVisualStyleBackColor = True - ' - 'chkFilterMissing - ' - Me.chkFilterMissing.AutoSize = True - Me.chkFilterMissing.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.chkFilterMissing.Location = New System.Drawing.Point(7, 27) - Me.chkFilterMissing.Name = "chkFilterMissing" - Me.chkFilterMissing.Size = New System.Drawing.Size(96, 17) - Me.chkFilterMissing.TabIndex = 1 - Me.chkFilterMissing.Text = "Missing Items" - Me.chkFilterMissing.UseVisualStyleBackColor = True - ' - 'chkFilterDupe - ' - Me.chkFilterDupe.AutoSize = True - Me.chkFilterDupe.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.chkFilterDupe.Location = New System.Drawing.Point(7, 13) - Me.chkFilterDupe.Name = "chkFilterDupe" - Me.chkFilterDupe.Size = New System.Drawing.Size(80, 17) - Me.chkFilterDupe.TabIndex = 0 - Me.chkFilterDupe.Text = "Duplicates" - Me.chkFilterDupe.UseVisualStyleBackColor = True - ' - 'gbSpecific - ' - Me.gbSpecific.Controls.Add(Me.txtFilterSource) - Me.gbSpecific.Controls.Add(Me.Label6) - Me.gbSpecific.Controls.Add(Me.cbFilterFileSource) - Me.gbSpecific.Controls.Add(Me.chkFilterLock) - Me.gbSpecific.Controls.Add(Me.GroupBox2) - Me.gbSpecific.Controls.Add(Me.chkFilterNew) - Me.gbSpecific.Controls.Add(Me.cbFilterYear) - Me.gbSpecific.Controls.Add(Me.chkFilterMark) - Me.gbSpecific.Controls.Add(Me.cbFilterYearMod) - Me.gbSpecific.Controls.Add(Me.Label5) - Me.gbSpecific.Controls.Add(Me.txtFilterGenre) - Me.gbSpecific.Controls.Add(Me.Label2) - Me.gbSpecific.Controls.Add(Me.Label3) - Me.gbSpecific.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.gbSpecific.Location = New System.Drawing.Point(135, 22) - Me.gbSpecific.Name = "gbSpecific" - Me.gbSpecific.Size = New System.Drawing.Size(224, 155) - Me.gbSpecific.TabIndex = 6 - Me.gbSpecific.TabStop = False - Me.gbSpecific.Text = "Specific" - ' - 'txtFilterSource - ' - Me.txtFilterSource.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.txtFilterSource.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtFilterSource.Location = New System.Drawing.Point(50, 129) - Me.txtFilterSource.Name = "txtFilterSource" - Me.txtFilterSource.ReadOnly = True - Me.txtFilterSource.Size = New System.Drawing.Size(166, 22) - Me.txtFilterSource.TabIndex = 11 - ' - 'Label6 - ' - Me.Label6.AutoSize = True - Me.Label6.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.Label6.Location = New System.Drawing.Point(6, 108) - Me.Label6.Name = "Label6" - Me.Label6.Size = New System.Drawing.Size(66, 13) - Me.Label6.TabIndex = 8 - Me.Label6.Text = "File Source:" - ' - 'cbFilterFileSource - ' - Me.cbFilterFileSource.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList - Me.cbFilterFileSource.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.cbFilterFileSource.FormattingEnabled = True - Me.cbFilterFileSource.Location = New System.Drawing.Point(77, 105) - Me.cbFilterFileSource.Name = "cbFilterFileSource" - Me.cbFilterFileSource.Size = New System.Drawing.Size(139, 21) - Me.cbFilterFileSource.TabIndex = 9 - ' - 'chkFilterLock - ' - Me.chkFilterLock.AutoSize = True - Me.chkFilterLock.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.chkFilterLock.Location = New System.Drawing.Point(73, 18) - Me.chkFilterLock.Name = "chkFilterLock" - Me.chkFilterLock.Size = New System.Drawing.Size(62, 17) - Me.chkFilterLock.TabIndex = 2 - Me.chkFilterLock.Text = "Locked" - Me.chkFilterLock.UseVisualStyleBackColor = True - ' - 'GroupBox2 - ' - Me.GroupBox2.Controls.Add(Me.rbFilterAnd) - Me.GroupBox2.Controls.Add(Me.rbFilterOr) - Me.GroupBox2.Location = New System.Drawing.Point(140, 10) - Me.GroupBox2.Name = "GroupBox2" - Me.GroupBox2.Size = New System.Drawing.Size(76, 43) - Me.GroupBox2.TabIndex = 3 - Me.GroupBox2.TabStop = False - Me.GroupBox2.Text = "Modifier" - ' - 'rbFilterAnd - ' - Me.rbFilterAnd.AutoSize = True - Me.rbFilterAnd.Checked = True - Me.rbFilterAnd.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.rbFilterAnd.Location = New System.Drawing.Point(6, 11) - Me.rbFilterAnd.Name = "rbFilterAnd" - Me.rbFilterAnd.Size = New System.Drawing.Size(46, 17) - Me.rbFilterAnd.TabIndex = 0 - Me.rbFilterAnd.TabStop = True - Me.rbFilterAnd.Text = "And" - Me.rbFilterAnd.UseVisualStyleBackColor = True - ' - 'rbFilterOr - ' - Me.rbFilterOr.AutoSize = True - Me.rbFilterOr.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.rbFilterOr.Location = New System.Drawing.Point(6, 25) - Me.rbFilterOr.Name = "rbFilterOr" - Me.rbFilterOr.Size = New System.Drawing.Size(38, 17) - Me.rbFilterOr.TabIndex = 1 - Me.rbFilterOr.Text = "Or" - Me.rbFilterOr.UseVisualStyleBackColor = True - ' - 'chkFilterNew - ' - Me.chkFilterNew.AutoSize = True - Me.chkFilterNew.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.chkFilterNew.Location = New System.Drawing.Point(9, 18) - Me.chkFilterNew.Name = "chkFilterNew" - Me.chkFilterNew.Size = New System.Drawing.Size(49, 17) - Me.chkFilterNew.TabIndex = 0 - Me.chkFilterNew.Text = "New" - Me.chkFilterNew.UseVisualStyleBackColor = True - ' - 'cbFilterYear - ' - Me.cbFilterYear.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList - Me.cbFilterYear.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.cbFilterYear.FormattingEnabled = True - Me.cbFilterYear.Items.AddRange(New Object() {"=", ">", "<", "!="}) - Me.cbFilterYear.Location = New System.Drawing.Point(141, 81) - Me.cbFilterYear.Name = "cbFilterYear" - Me.cbFilterYear.Size = New System.Drawing.Size(75, 21) - Me.cbFilterYear.TabIndex = 7 - ' - 'chkFilterMark - ' - Me.chkFilterMark.AutoSize = True - Me.chkFilterMark.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.chkFilterMark.Location = New System.Drawing.Point(9, 36) - Me.chkFilterMark.Name = "chkFilterMark" - Me.chkFilterMark.Size = New System.Drawing.Size(65, 17) - Me.chkFilterMark.TabIndex = 1 - Me.chkFilterMark.Text = "Marked" - Me.chkFilterMark.UseVisualStyleBackColor = True - ' - 'cbFilterYearMod - ' - Me.cbFilterYearMod.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList - Me.cbFilterYearMod.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.cbFilterYearMod.FormattingEnabled = True - Me.cbFilterYearMod.Items.AddRange(New Object() {"=", ">", "<", "<>"}) - Me.cbFilterYearMod.Location = New System.Drawing.Point(77, 81) - Me.cbFilterYearMod.Name = "cbFilterYearMod" - Me.cbFilterYearMod.Size = New System.Drawing.Size(59, 21) - Me.cbFilterYearMod.TabIndex = 6 - ' - 'Label5 - ' - Me.Label5.AutoSize = True - Me.Label5.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.Label5.Location = New System.Drawing.Point(6, 83) - Me.Label5.Name = "Label5" - Me.Label5.Size = New System.Drawing.Size(31, 13) - Me.Label5.TabIndex = 5 - Me.Label5.Text = "Year:" - ' - 'txtFilterGenre - ' - Me.txtFilterGenre.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.txtFilterGenre.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtFilterGenre.Location = New System.Drawing.Point(50, 56) - Me.txtFilterGenre.Name = "txtFilterGenre" - Me.txtFilterGenre.ReadOnly = True - Me.txtFilterGenre.Size = New System.Drawing.Size(166, 22) - Me.txtFilterGenre.TabIndex = 4 - ' - 'Label2 - ' - Me.Label2.AutoSize = True - Me.Label2.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.Label2.Location = New System.Drawing.Point(6, 132) - Me.Label2.Name = "Label2" - Me.Label2.Size = New System.Drawing.Size(45, 13) - Me.Label2.TabIndex = 10 - Me.Label2.Text = "Source:" - ' - 'Label3 - ' - Me.Label3.AutoSize = True - Me.Label3.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.Label3.Location = New System.Drawing.Point(6, 58) - Me.Label3.Name = "Label3" - Me.Label3.Size = New System.Drawing.Size(41, 13) - Me.Label3.TabIndex = 31 - Me.Label3.Text = "Genre:" - ' - 'btnFilterDown - ' - Me.btnFilterDown.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.btnFilterDown.BackColor = System.Drawing.SystemColors.Control - Me.btnFilterDown.Enabled = False - Me.btnFilterDown.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.btnFilterDown.Location = New System.Drawing.Point(324, 1) - Me.btnFilterDown.Name = "btnFilterDown" - Me.btnFilterDown.Size = New System.Drawing.Size(30, 22) - Me.btnFilterDown.TabIndex = 2 - Me.btnFilterDown.TabStop = False - Me.btnFilterDown.Text = "v" - Me.btnFilterDown.TextAlign = System.Drawing.ContentAlignment.TopCenter - Me.btnFilterDown.UseVisualStyleBackColor = False - ' - 'btnFilterUp - ' - Me.btnFilterUp.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.btnFilterUp.BackColor = System.Drawing.SystemColors.Control - Me.btnFilterUp.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.btnFilterUp.Location = New System.Drawing.Point(292, 1) - Me.btnFilterUp.Name = "btnFilterUp" - Me.btnFilterUp.Size = New System.Drawing.Size(30, 22) - Me.btnFilterUp.TabIndex = 1 - Me.btnFilterUp.TabStop = False - Me.btnFilterUp.Text = "^" - Me.btnFilterUp.TextAlign = System.Drawing.ContentAlignment.TopCenter - Me.btnFilterUp.UseVisualStyleBackColor = False - ' - 'lblFilter - ' - Me.lblFilter.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ - Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.lblFilter.BackColor = System.Drawing.SystemColors.ControlDarkDark - Me.lblFilter.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.lblFilter.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblFilter.ForeColor = System.Drawing.SystemColors.HighlightText - Me.lblFilter.Location = New System.Drawing.Point(4, 3) - Me.lblFilter.Name = "lblFilter" - Me.lblFilter.Size = New System.Drawing.Size(354, 17) - Me.lblFilter.TabIndex = 0 - Me.lblFilter.Text = "Filters" - Me.lblFilter.TextAlign = System.Drawing.ContentAlignment.MiddleLeft - ' - 'pnlTop - ' - Me.pnlTop.BackColor = System.Drawing.Color.Gainsboro - Me.pnlTop.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.pnlTop.Controls.Add(Me.lblTitle) - Me.pnlTop.Controls.Add(Me.pnlInfoIcons) - Me.pnlTop.Controls.Add(Me.lblRuntime) - Me.pnlTop.Controls.Add(Me.lblTagline) - Me.pnlTop.Controls.Add(Me.pnlRating) - Me.pnlTop.Dock = System.Windows.Forms.DockStyle.Top - Me.pnlTop.Location = New System.Drawing.Point(0, 25) - Me.pnlTop.Name = "pnlTop" - Me.pnlTop.Size = New System.Drawing.Size(1109, 74) - Me.pnlTop.TabIndex = 9 - Me.pnlTop.Visible = False - ' - 'lblTitle - ' - Me.lblTitle.AutoSize = True - Me.lblTitle.BackColor = System.Drawing.Color.Transparent - Me.lblTitle.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblTitle.ForeColor = System.Drawing.Color.Black - Me.lblTitle.Location = New System.Drawing.Point(4, 2) - Me.lblTitle.Name = "lblTitle" - Me.lblTitle.Size = New System.Drawing.Size(0, 20) - Me.lblTitle.TabIndex = 25 - Me.lblTitle.UseMnemonic = False - ' - 'pnlInfoIcons - ' - Me.pnlInfoIcons.BackColor = System.Drawing.Color.Transparent - Me.pnlInfoIcons.Controls.Add(Me.lblOriginalTitle) - Me.pnlInfoIcons.Controls.Add(Me.lblStudio) - Me.pnlInfoIcons.Controls.Add(Me.pbVType) - Me.pnlInfoIcons.Controls.Add(Me.pbStudio) - Me.pnlInfoIcons.Controls.Add(Me.pbVideo) - Me.pnlInfoIcons.Controls.Add(Me.pbAudio) - Me.pnlInfoIcons.Controls.Add(Me.pbResolution) - Me.pnlInfoIcons.Controls.Add(Me.pbChannels) - Me.pnlInfoIcons.Dock = System.Windows.Forms.DockStyle.Right - Me.pnlInfoIcons.Location = New System.Drawing.Point(717, 0) - Me.pnlInfoIcons.Name = "pnlInfoIcons" - Me.pnlInfoIcons.Size = New System.Drawing.Size(390, 72) - Me.pnlInfoIcons.TabIndex = 31 - ' - 'lblOriginalTitle - ' - Me.lblOriginalTitle.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.lblOriginalTitle.BackColor = System.Drawing.Color.Transparent - Me.lblOriginalTitle.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblOriginalTitle.ForeColor = System.Drawing.Color.Black - Me.lblOriginalTitle.Location = New System.Drawing.Point(-16, 2) - Me.lblOriginalTitle.Name = "lblOriginalTitle" - Me.lblOriginalTitle.Size = New System.Drawing.Size(406, 20) - Me.lblOriginalTitle.TabIndex = 26 - Me.lblOriginalTitle.TextAlign = System.Drawing.ContentAlignment.TopRight - Me.lblOriginalTitle.UseMnemonic = False - ' - 'lblStudio - ' - Me.lblStudio.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.lblStudio.Location = New System.Drawing.Point(223, 55) - Me.lblStudio.Name = "lblStudio" - Me.lblStudio.Size = New System.Drawing.Size(167, 18) - Me.lblStudio.TabIndex = 37 - Me.lblStudio.Text = " " - Me.lblStudio.TextAlign = System.Drawing.ContentAlignment.TopRight - ' - 'pbVType - ' - Me.pbVType.BackColor = System.Drawing.Color.Transparent - Me.pbVType.Location = New System.Drawing.Point(65, 15) - Me.pbVType.Name = "pbVType" - Me.pbVType.Size = New System.Drawing.Size(64, 44) - Me.pbVType.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom - Me.pbVType.TabIndex = 36 - Me.pbVType.TabStop = False - ' - 'pbStudio - ' - Me.pbStudio.BackColor = System.Drawing.Color.Transparent - Me.pbStudio.Location = New System.Drawing.Point(325, 15) - Me.pbStudio.Name = "pbStudio" - Me.pbStudio.Size = New System.Drawing.Size(64, 44) - Me.pbStudio.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom - Me.pbStudio.TabIndex = 31 - Me.pbStudio.TabStop = False - ' - 'pbVideo - ' - Me.pbVideo.BackColor = System.Drawing.Color.Transparent - Me.pbVideo.Location = New System.Drawing.Point(0, 15) - Me.pbVideo.Name = "pbVideo" - Me.pbVideo.Size = New System.Drawing.Size(64, 44) - Me.pbVideo.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom - Me.pbVideo.TabIndex = 33 - Me.pbVideo.TabStop = False - ' - 'pbAudio - ' - Me.pbAudio.BackColor = System.Drawing.Color.Transparent - Me.pbAudio.Location = New System.Drawing.Point(195, 15) - Me.pbAudio.Name = "pbAudio" - Me.pbAudio.Size = New System.Drawing.Size(64, 44) - Me.pbAudio.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom - Me.pbAudio.TabIndex = 35 - Me.pbAudio.TabStop = False - ' - 'pbResolution - ' - Me.pbResolution.BackColor = System.Drawing.Color.Transparent - Me.pbResolution.Location = New System.Drawing.Point(130, 15) - Me.pbResolution.Name = "pbResolution" - Me.pbResolution.Size = New System.Drawing.Size(64, 44) - Me.pbResolution.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom - Me.pbResolution.TabIndex = 34 - Me.pbResolution.TabStop = False - ' - 'pbChannels - ' - Me.pbChannels.BackColor = System.Drawing.Color.Transparent - Me.pbChannels.Location = New System.Drawing.Point(260, 15) - Me.pbChannels.Name = "pbChannels" - Me.pbChannels.Size = New System.Drawing.Size(64, 44) - Me.pbChannels.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom - Me.pbChannels.TabIndex = 32 - Me.pbChannels.TabStop = False - ' - 'lblRuntime - ' - Me.lblRuntime.AutoSize = True - Me.lblRuntime.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblRuntime.ForeColor = System.Drawing.Color.Black - Me.lblRuntime.Location = New System.Drawing.Point(213, 32) - Me.lblRuntime.Name = "lblRuntime" - Me.lblRuntime.Size = New System.Drawing.Size(0, 13) - Me.lblRuntime.TabIndex = 32 - Me.lblRuntime.TextAlign = System.Drawing.ContentAlignment.MiddleLeft - ' - 'lblTagline - ' - Me.lblTagline.AutoSize = True - Me.lblTagline.BackColor = System.Drawing.Color.Transparent - Me.lblTagline.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblTagline.ForeColor = System.Drawing.Color.Black - Me.lblTagline.Location = New System.Drawing.Point(5, 55) - Me.lblTagline.Name = "lblTagline" - Me.lblTagline.Size = New System.Drawing.Size(0, 13) - Me.lblTagline.TabIndex = 26 - Me.lblTagline.TextAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.lblTagline.UseMnemonic = False - ' - 'pnlRating - ' - Me.pnlRating.BackColor = System.Drawing.Color.Transparent - Me.pnlRating.Controls.Add(Me.pbStar5) - Me.pnlRating.Controls.Add(Me.pbStar4) - Me.pnlRating.Controls.Add(Me.pbStar3) - Me.pnlRating.Controls.Add(Me.pbStar2) - Me.pnlRating.Controls.Add(Me.pbStar1) - Me.pnlRating.Controls.Add(Me.lblVotes) - Me.pnlRating.Location = New System.Drawing.Point(6, 24) - Me.pnlRating.Name = "pnlRating" - Me.pnlRating.Size = New System.Drawing.Size(206, 27) - Me.pnlRating.TabIndex = 24 - ' - 'pbStar5 - ' - Me.pbStar5.Location = New System.Drawing.Point(97, 1) - Me.pbStar5.Name = "pbStar5" - Me.pbStar5.Size = New System.Drawing.Size(24, 24) - Me.pbStar5.TabIndex = 27 - Me.pbStar5.TabStop = False - ' - 'pbStar4 - ' - Me.pbStar4.Location = New System.Drawing.Point(73, 1) - Me.pbStar4.Name = "pbStar4" - Me.pbStar4.Size = New System.Drawing.Size(24, 24) - Me.pbStar4.TabIndex = 26 - Me.pbStar4.TabStop = False - ' - 'pbStar3 - ' - Me.pbStar3.Location = New System.Drawing.Point(49, 1) - Me.pbStar3.Name = "pbStar3" - Me.pbStar3.Size = New System.Drawing.Size(24, 24) - Me.pbStar3.TabIndex = 25 - Me.pbStar3.TabStop = False - ' - 'pbStar2 - ' - Me.pbStar2.Location = New System.Drawing.Point(25, 1) - Me.pbStar2.Name = "pbStar2" - Me.pbStar2.Size = New System.Drawing.Size(24, 24) - Me.pbStar2.TabIndex = 24 - Me.pbStar2.TabStop = False - ' - 'pbStar1 - ' - Me.pbStar1.Location = New System.Drawing.Point(1, 1) - Me.pbStar1.Name = "pbStar1" - Me.pbStar1.Size = New System.Drawing.Size(24, 24) - Me.pbStar1.TabIndex = 23 - Me.pbStar1.TabStop = False - ' - 'lblVotes - ' - Me.lblVotes.AutoSize = True - Me.lblVotes.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblVotes.ForeColor = System.Drawing.Color.Black - Me.lblVotes.Location = New System.Drawing.Point(123, 8) - Me.lblVotes.Name = "lblVotes" - Me.lblVotes.Size = New System.Drawing.Size(0, 13) - Me.lblVotes.TabIndex = 22 - Me.lblVotes.TextAlign = System.Drawing.ContentAlignment.MiddleRight - ' - 'pnlCancel - ' - Me.pnlCancel.BackColor = System.Drawing.Color.LightGray - Me.pnlCancel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.pnlCancel.Controls.Add(Me.pbCanceling) - Me.pnlCancel.Controls.Add(Me.lblCanceling) - Me.pnlCancel.Controls.Add(Me.btnCancel) - Me.pnlCancel.Location = New System.Drawing.Point(273, 100) - Me.pnlCancel.Name = "pnlCancel" - Me.pnlCancel.Size = New System.Drawing.Size(214, 63) - Me.pnlCancel.TabIndex = 8 - Me.pnlCancel.Visible = False - ' - 'pbCanceling - ' - Me.pbCanceling.Location = New System.Drawing.Point(5, 32) - Me.pbCanceling.MarqueeAnimationSpeed = 25 - Me.pbCanceling.Name = "pbCanceling" - Me.pbCanceling.Size = New System.Drawing.Size(203, 20) - Me.pbCanceling.Style = System.Windows.Forms.ProgressBarStyle.Marquee - Me.pbCanceling.TabIndex = 2 - Me.pbCanceling.Visible = False - ' - 'lblCanceling - ' - Me.lblCanceling.AutoSize = True - Me.lblCanceling.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.lblCanceling.Location = New System.Drawing.Point(4, 12) - Me.lblCanceling.Name = "lblCanceling" - Me.lblCanceling.Size = New System.Drawing.Size(129, 17) - Me.lblCanceling.TabIndex = 1 - Me.lblCanceling.Text = "Canceling Scraper..." - Me.lblCanceling.Visible = False - ' - 'btnCancel - ' - Me.btnCancel.Font = New System.Drawing.Font("Segoe UI", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.btnCancel.Image = CType(resources.GetObject("btnCancel.Image"), System.Drawing.Image) - Me.btnCancel.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft - Me.btnCancel.Location = New System.Drawing.Point(4, 4) - Me.btnCancel.Name = "btnCancel" - Me.btnCancel.Size = New System.Drawing.Size(205, 55) - Me.btnCancel.TabIndex = 0 - Me.btnCancel.TabStop = False - Me.btnCancel.Text = "Cancel Scraper" - Me.btnCancel.TextAlign = System.Drawing.ContentAlignment.MiddleRight - Me.btnCancel.UseVisualStyleBackColor = True - ' - 'pnlAllSeason - ' - Me.pnlAllSeason.BackColor = System.Drawing.Color.Gainsboro - Me.pnlAllSeason.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.pnlAllSeason.Controls.Add(Me.pbAllSeason) - Me.pnlAllSeason.Location = New System.Drawing.Point(508, 112) - Me.pnlAllSeason.Name = "pnlAllSeason" - Me.pnlAllSeason.Size = New System.Drawing.Size(131, 169) - Me.pnlAllSeason.TabIndex = 3 - Me.pnlAllSeason.Visible = False - ' - 'pbAllSeason - ' - Me.pbAllSeason.BackColor = System.Drawing.SystemColors.Control - Me.pbAllSeason.Location = New System.Drawing.Point(4, 4) - Me.pbAllSeason.Name = "pbAllSeason" - Me.pbAllSeason.Size = New System.Drawing.Size(121, 159) - Me.pbAllSeason.TabIndex = 0 - Me.pbAllSeason.TabStop = False - ' - 'pbAllSeasonCache - ' - Me.pbAllSeasonCache.Location = New System.Drawing.Point(333, 107) - Me.pbAllSeasonCache.Name = "pbAllSeasonCache" - Me.pbAllSeasonCache.Size = New System.Drawing.Size(115, 111) - Me.pbAllSeasonCache.TabIndex = 13 - Me.pbAllSeasonCache.TabStop = False - Me.pbAllSeasonCache.Visible = False - ' - 'pnlNoInfo - ' - Me.pnlNoInfo.BackColor = System.Drawing.Color.LightGray - Me.pnlNoInfo.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.pnlNoInfo.Controls.Add(Me.Panel2) - Me.pnlNoInfo.Location = New System.Drawing.Point(241, 300) - Me.pnlNoInfo.Name = "pnlNoInfo" - Me.pnlNoInfo.Size = New System.Drawing.Size(259, 143) - Me.pnlNoInfo.TabIndex = 8 - Me.pnlNoInfo.Visible = False - ' - 'Panel2 - ' - Me.Panel2.BackColor = System.Drawing.Color.White - Me.Panel2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.Panel2.Controls.Add(Me.PictureBox1) - Me.Panel2.Controls.Add(Me.Label1) - Me.Panel2.Location = New System.Drawing.Point(3, 4) - Me.Panel2.Name = "Panel2" - Me.Panel2.Size = New System.Drawing.Size(251, 133) - Me.Panel2.TabIndex = 0 - ' - 'PictureBox1 - ' - Me.PictureBox1.Image = CType(resources.GetObject("PictureBox1.Image"), System.Drawing.Image) - Me.PictureBox1.Location = New System.Drawing.Point(7, 38) - Me.PictureBox1.Name = "PictureBox1" - Me.PictureBox1.Size = New System.Drawing.Size(63, 63) - Me.PictureBox1.TabIndex = 1 - Me.PictureBox1.TabStop = False - ' - 'Label1 - ' - Me.Label1.Font = New System.Drawing.Font("Segoe UI", 14.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.Label1.Location = New System.Drawing.Point(71, 29) - Me.Label1.Name = "Label1" - Me.Label1.Size = New System.Drawing.Size(173, 78) - Me.Label1.TabIndex = 0 - Me.Label1.Text = "No Information is Available for This Movie" - Me.Label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter - ' - 'pnlInfoPanel - ' - Me.pnlInfoPanel.BackColor = System.Drawing.Color.Gainsboro - Me.pnlInfoPanel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.pnlInfoPanel.Controls.Add(Me.txtCerts) - Me.pnlInfoPanel.Controls.Add(Me.lblCertsHeader) - Me.pnlInfoPanel.Controls.Add(Me.lblReleaseDate) - Me.pnlInfoPanel.Controls.Add(Me.lblReleaseDateHeader) - Me.pnlInfoPanel.Controls.Add(Me.btnMid) - Me.pnlInfoPanel.Controls.Add(Me.pbMILoading) - Me.pnlInfoPanel.Controls.Add(Me.btnMetaDataRefresh) - Me.pnlInfoPanel.Controls.Add(Me.lblMetaDataHeader) - Me.pnlInfoPanel.Controls.Add(Me.txtMetaData) - Me.pnlInfoPanel.Controls.Add(Me.btnPlay) - Me.pnlInfoPanel.Controls.Add(Me.txtFilePath) - Me.pnlInfoPanel.Controls.Add(Me.lblFilePathHeader) - Me.pnlInfoPanel.Controls.Add(Me.txtIMDBID) - Me.pnlInfoPanel.Controls.Add(Me.lblIMDBHeader) - Me.pnlInfoPanel.Controls.Add(Me.lblDirector) - Me.pnlInfoPanel.Controls.Add(Me.lblDirectorHeader) - Me.pnlInfoPanel.Controls.Add(Me.pnlActors) - Me.pnlInfoPanel.Controls.Add(Me.lblOutlineHeader) - Me.pnlInfoPanel.Controls.Add(Me.txtOutline) - Me.pnlInfoPanel.Controls.Add(Me.pnlTop250) - Me.pnlInfoPanel.Controls.Add(Me.lblPlotHeader) - Me.pnlInfoPanel.Controls.Add(Me.txtPlot) - Me.pnlInfoPanel.Controls.Add(Me.btnDown) - Me.pnlInfoPanel.Controls.Add(Me.btnUp) - Me.pnlInfoPanel.Controls.Add(Me.lblInfoPanelHeader) - Me.pnlInfoPanel.Dock = System.Windows.Forms.DockStyle.Bottom - Me.pnlInfoPanel.Location = New System.Drawing.Point(0, 500) - Me.pnlInfoPanel.Name = "pnlInfoPanel" - Me.pnlInfoPanel.Size = New System.Drawing.Size(1109, 342) - Me.pnlInfoPanel.TabIndex = 10 - ' - 'txtCerts - ' - Me.txtCerts.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ - Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.txtCerts.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.txtCerts.Location = New System.Drawing.Point(117, 208) - Me.txtCerts.Name = "txtCerts" - Me.txtCerts.ReadOnly = True - Me.txtCerts.Size = New System.Drawing.Size(673, 22) - Me.txtCerts.TabIndex = 3 - Me.txtCerts.TabStop = False - ' - 'lblCertsHeader - ' - Me.lblCertsHeader.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ - Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.lblCertsHeader.BackColor = System.Drawing.SystemColors.ControlDarkDark - Me.lblCertsHeader.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.lblCertsHeader.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblCertsHeader.ForeColor = System.Drawing.SystemColors.HighlightText - Me.lblCertsHeader.Location = New System.Drawing.Point(117, 188) - Me.lblCertsHeader.Name = "lblCertsHeader" - Me.lblCertsHeader.Size = New System.Drawing.Size(673, 17) - Me.lblCertsHeader.TabIndex = 2 - Me.lblCertsHeader.Text = "Certifications" - Me.lblCertsHeader.TextAlign = System.Drawing.ContentAlignment.MiddleLeft - ' - 'lblReleaseDate - ' - Me.lblReleaseDate.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.lblReleaseDate.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblReleaseDate.ForeColor = System.Drawing.Color.Black - Me.lblReleaseDate.Location = New System.Drawing.Point(624, 48) - Me.lblReleaseDate.Name = "lblReleaseDate" - Me.lblReleaseDate.Size = New System.Drawing.Size(105, 16) - Me.lblReleaseDate.TabIndex = 39 - Me.lblReleaseDate.TextAlign = System.Drawing.ContentAlignment.MiddleCenter - ' - 'lblReleaseDateHeader - ' - Me.lblReleaseDateHeader.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.lblReleaseDateHeader.BackColor = System.Drawing.SystemColors.ControlDarkDark - Me.lblReleaseDateHeader.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.lblReleaseDateHeader.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblReleaseDateHeader.ForeColor = System.Drawing.SystemColors.HighlightText - Me.lblReleaseDateHeader.Location = New System.Drawing.Point(624, 27) - Me.lblReleaseDateHeader.Name = "lblReleaseDateHeader" - Me.lblReleaseDateHeader.Size = New System.Drawing.Size(105, 17) - Me.lblReleaseDateHeader.TabIndex = 38 - Me.lblReleaseDateHeader.Text = "Release Date" - Me.lblReleaseDateHeader.TextAlign = System.Drawing.ContentAlignment.MiddleLeft - ' - 'btnMid - ' - Me.btnMid.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.btnMid.BackColor = System.Drawing.SystemColors.Control - Me.btnMid.Location = New System.Drawing.Point(1038, 1) - Me.btnMid.Name = "btnMid" - Me.btnMid.Size = New System.Drawing.Size(30, 22) - Me.btnMid.TabIndex = 37 - Me.btnMid.TabStop = False - Me.btnMid.Text = "-" - Me.btnMid.TextAlign = System.Drawing.ContentAlignment.TopCenter - Me.btnMid.UseVisualStyleBackColor = False - ' - 'pbMILoading - ' - Me.pbMILoading.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.pbMILoading.Image = CType(resources.GetObject("pbMILoading.Image"), System.Drawing.Image) - Me.pbMILoading.Location = New System.Drawing.Point(940, 374) - Me.pbMILoading.Name = "pbMILoading" - Me.pbMILoading.Size = New System.Drawing.Size(41, 39) - Me.pbMILoading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage - Me.pbMILoading.TabIndex = 36 - Me.pbMILoading.TabStop = False - Me.pbMILoading.Visible = False - ' - 'btnMetaDataRefresh - ' - Me.btnMetaDataRefresh.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.btnMetaDataRefresh.Location = New System.Drawing.Point(1027, 278) - Me.btnMetaDataRefresh.Name = "btnMetaDataRefresh" - Me.btnMetaDataRefresh.Size = New System.Drawing.Size(75, 23) - Me.btnMetaDataRefresh.TabIndex = 9 - Me.btnMetaDataRefresh.TabStop = False - Me.btnMetaDataRefresh.Text = "Refresh" - Me.btnMetaDataRefresh.UseVisualStyleBackColor = True - ' - 'lblMetaDataHeader - ' - Me.lblMetaDataHeader.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.lblMetaDataHeader.BackColor = System.Drawing.SystemColors.ControlDarkDark - Me.lblMetaDataHeader.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.lblMetaDataHeader.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblMetaDataHeader.ForeColor = System.Drawing.SystemColors.HighlightText - Me.lblMetaDataHeader.Location = New System.Drawing.Point(803, 282) - Me.lblMetaDataHeader.Name = "lblMetaDataHeader" - Me.lblMetaDataHeader.Size = New System.Drawing.Size(294, 17) - Me.lblMetaDataHeader.TabIndex = 8 - Me.lblMetaDataHeader.Text = "Meta Data" - Me.lblMetaDataHeader.TextAlign = System.Drawing.ContentAlignment.MiddleLeft - ' - 'txtMetaData - ' - Me.txtMetaData.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.txtMetaData.BackColor = System.Drawing.Color.Gainsboro - Me.txtMetaData.BorderStyle = System.Windows.Forms.BorderStyle.None - Me.txtMetaData.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtMetaData.ForeColor = System.Drawing.Color.Black - Me.txtMetaData.Location = New System.Drawing.Point(803, 303) - Me.txtMetaData.Multiline = True - Me.txtMetaData.Name = "txtMetaData" - Me.txtMetaData.ReadOnly = True - Me.txtMetaData.ScrollBars = System.Windows.Forms.ScrollBars.Vertical - Me.txtMetaData.Size = New System.Drawing.Size(296, 184) - Me.txtMetaData.TabIndex = 10 - Me.txtMetaData.TabStop = False - ' - 'btnPlay - ' - Me.btnPlay.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.btnPlay.Image = Global.Ember_Media_Manager.My.Resources.Resources.Play_Icon - Me.btnPlay.Location = New System.Drawing.Point(771, 254) - Me.btnPlay.Name = "btnPlay" - Me.btnPlay.Size = New System.Drawing.Size(20, 20) - Me.btnPlay.TabIndex = 6 - Me.btnPlay.TabStop = False - Me.btnPlay.UseVisualStyleBackColor = True - ' - 'txtFilePath - ' - Me.txtFilePath.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ - Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.txtFilePath.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.txtFilePath.Location = New System.Drawing.Point(3, 254) - Me.txtFilePath.Name = "txtFilePath" - Me.txtFilePath.ReadOnly = True - Me.txtFilePath.Size = New System.Drawing.Size(765, 22) - Me.txtFilePath.TabIndex = 5 - Me.txtFilePath.TabStop = False - ' - 'lblFilePathHeader - ' - Me.lblFilePathHeader.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ - Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.lblFilePathHeader.BackColor = System.Drawing.SystemColors.ControlDarkDark - Me.lblFilePathHeader.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.lblFilePathHeader.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblFilePathHeader.ForeColor = System.Drawing.SystemColors.HighlightText - Me.lblFilePathHeader.Location = New System.Drawing.Point(3, 234) - Me.lblFilePathHeader.Name = "lblFilePathHeader" - Me.lblFilePathHeader.Size = New System.Drawing.Size(787, 17) - Me.lblFilePathHeader.TabIndex = 4 - Me.lblFilePathHeader.Text = "File Path" - Me.lblFilePathHeader.TextAlign = System.Drawing.ContentAlignment.MiddleLeft - ' - 'txtIMDBID - ' - Me.txtIMDBID.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.txtIMDBID.Location = New System.Drawing.Point(3, 208) - Me.txtIMDBID.Name = "txtIMDBID" - Me.txtIMDBID.ReadOnly = True - Me.txtIMDBID.Size = New System.Drawing.Size(108, 22) - Me.txtIMDBID.TabIndex = 1 - Me.txtIMDBID.TabStop = False - ' - 'lblIMDBHeader - ' - Me.lblIMDBHeader.BackColor = System.Drawing.SystemColors.ControlDarkDark - Me.lblIMDBHeader.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.lblIMDBHeader.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblIMDBHeader.ForeColor = System.Drawing.SystemColors.HighlightText - Me.lblIMDBHeader.Location = New System.Drawing.Point(3, 188) - Me.lblIMDBHeader.Name = "lblIMDBHeader" - Me.lblIMDBHeader.Size = New System.Drawing.Size(108, 17) - Me.lblIMDBHeader.TabIndex = 0 - Me.lblIMDBHeader.Text = "IMDB ID" - Me.lblIMDBHeader.TextAlign = System.Drawing.ContentAlignment.MiddleLeft - ' - 'lblDirector - ' - Me.lblDirector.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ - Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.lblDirector.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblDirector.ForeColor = System.Drawing.Color.Black - Me.lblDirector.Location = New System.Drawing.Point(3, 48) - Me.lblDirector.Name = "lblDirector" - Me.lblDirector.Size = New System.Drawing.Size(616, 16) - Me.lblDirector.TabIndex = 27 - Me.lblDirector.TextAlign = System.Drawing.ContentAlignment.MiddleLeft - ' - 'lblDirectorHeader - ' - Me.lblDirectorHeader.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ - Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.lblDirectorHeader.BackColor = System.Drawing.SystemColors.ControlDarkDark - Me.lblDirectorHeader.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.lblDirectorHeader.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblDirectorHeader.ForeColor = System.Drawing.SystemColors.HighlightText - Me.lblDirectorHeader.Location = New System.Drawing.Point(3, 27) - Me.lblDirectorHeader.Name = "lblDirectorHeader" - Me.lblDirectorHeader.Size = New System.Drawing.Size(615, 17) - Me.lblDirectorHeader.TabIndex = 21 - Me.lblDirectorHeader.Text = "Director" - Me.lblDirectorHeader.TextAlign = System.Drawing.ContentAlignment.MiddleLeft - ' - 'pnlActors - ' - Me.pnlActors.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.pnlActors.BackColor = System.Drawing.Color.Gainsboro - Me.pnlActors.Controls.Add(Me.pbActLoad) - Me.pnlActors.Controls.Add(Me.lstActors) - Me.pnlActors.Controls.Add(Me.pbActors) - Me.pnlActors.Controls.Add(Me.lblActorsHeader) - Me.pnlActors.Location = New System.Drawing.Point(802, 29) - Me.pnlActors.Name = "pnlActors" - Me.pnlActors.Size = New System.Drawing.Size(302, 244) - Me.pnlActors.TabIndex = 19 - ' - 'pbActLoad - ' - Me.pbActLoad.Image = CType(resources.GetObject("pbActLoad.Image"), System.Drawing.Image) - Me.pbActLoad.Location = New System.Drawing.Point(240, 111) - Me.pbActLoad.Name = "pbActLoad" - Me.pbActLoad.Size = New System.Drawing.Size(41, 39) - Me.pbActLoad.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage - Me.pbActLoad.TabIndex = 26 - Me.pbActLoad.TabStop = False - Me.pbActLoad.Visible = False - ' - 'lstActors - ' - Me.lstActors.BackColor = System.Drawing.Color.Gainsboro - Me.lstActors.BorderStyle = System.Windows.Forms.BorderStyle.None - Me.lstActors.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lstActors.ForeColor = System.Drawing.Color.Black - Me.lstActors.FormattingEnabled = True - Me.lstActors.Location = New System.Drawing.Point(3, 21) - Me.lstActors.Name = "lstActors" - Me.lstActors.Size = New System.Drawing.Size(214, 221) - Me.lstActors.TabIndex = 28 - Me.lstActors.TabStop = False - ' - 'pbActors - ' - Me.pbActors.Image = Global.Ember_Media_Manager.My.Resources.Resources.actor_silhouette - Me.pbActors.Location = New System.Drawing.Point(220, 75) - Me.pbActors.Name = "pbActors" - Me.pbActors.Size = New System.Drawing.Size(81, 106) - Me.pbActors.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom - Me.pbActors.TabIndex = 27 - Me.pbActors.TabStop = False - ' - 'lblActorsHeader - ' - Me.lblActorsHeader.BackColor = System.Drawing.SystemColors.ControlDarkDark - Me.lblActorsHeader.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.lblActorsHeader.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblActorsHeader.ForeColor = System.Drawing.SystemColors.HighlightText - Me.lblActorsHeader.Location = New System.Drawing.Point(0, 0) - Me.lblActorsHeader.Name = "lblActorsHeader" - Me.lblActorsHeader.Size = New System.Drawing.Size(301, 17) - Me.lblActorsHeader.TabIndex = 18 - Me.lblActorsHeader.Text = "Cast" - Me.lblActorsHeader.TextAlign = System.Drawing.ContentAlignment.MiddleLeft - ' - 'lblOutlineHeader - ' - Me.lblOutlineHeader.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ - Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.lblOutlineHeader.BackColor = System.Drawing.SystemColors.ControlDarkDark - Me.lblOutlineHeader.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.lblOutlineHeader.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblOutlineHeader.ForeColor = System.Drawing.SystemColors.HighlightText - Me.lblOutlineHeader.Location = New System.Drawing.Point(3, 81) - Me.lblOutlineHeader.Name = "lblOutlineHeader" - Me.lblOutlineHeader.Size = New System.Drawing.Size(787, 17) - Me.lblOutlineHeader.TabIndex = 17 - Me.lblOutlineHeader.Text = "Plot Outline" - Me.lblOutlineHeader.TextAlign = System.Drawing.ContentAlignment.MiddleLeft - ' - 'txtOutline - ' - Me.txtOutline.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ - Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.txtOutline.BackColor = System.Drawing.Color.Gainsboro - Me.txtOutline.BorderStyle = System.Windows.Forms.BorderStyle.None - Me.txtOutline.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtOutline.ForeColor = System.Drawing.Color.Black - Me.txtOutline.Location = New System.Drawing.Point(3, 103) - Me.txtOutline.Multiline = True - Me.txtOutline.Name = "txtOutline" - Me.txtOutline.ReadOnly = True - Me.txtOutline.ScrollBars = System.Windows.Forms.ScrollBars.Vertical - Me.txtOutline.Size = New System.Drawing.Size(787, 78) - Me.txtOutline.TabIndex = 16 - Me.txtOutline.TabStop = False - ' - 'pnlTop250 - ' - Me.pnlTop250.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.pnlTop250.Controls.Add(Me.lblTop250) - Me.pnlTop250.Controls.Add(Me.pbTop250) - Me.pnlTop250.Location = New System.Drawing.Point(733, 27) - Me.pnlTop250.Name = "pnlTop250" - Me.pnlTop250.Size = New System.Drawing.Size(56, 48) - Me.pnlTop250.TabIndex = 15 - ' - 'lblTop250 - ' - Me.lblTop250.BackColor = System.Drawing.Color.Gainsboro - Me.lblTop250.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblTop250.ForeColor = System.Drawing.Color.Black - Me.lblTop250.Location = New System.Drawing.Point(1, 30) - Me.lblTop250.Name = "lblTop250" - Me.lblTop250.Size = New System.Drawing.Size(52, 17) - Me.lblTop250.TabIndex = 15 - Me.lblTop250.Text = "# 250" - Me.lblTop250.TextAlign = System.Drawing.ContentAlignment.MiddleCenter - ' - 'pbTop250 - ' - Me.pbTop250.Image = CType(resources.GetObject("pbTop250.Image"), System.Drawing.Image) - Me.pbTop250.Location = New System.Drawing.Point(1, 1) - Me.pbTop250.Name = "pbTop250" - Me.pbTop250.Size = New System.Drawing.Size(54, 30) - Me.pbTop250.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom - Me.pbTop250.TabIndex = 14 - Me.pbTop250.TabStop = False - ' - 'lblPlotHeader - ' - Me.lblPlotHeader.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ - Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.lblPlotHeader.BackColor = System.Drawing.SystemColors.ControlDarkDark - Me.lblPlotHeader.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.lblPlotHeader.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblPlotHeader.ForeColor = System.Drawing.SystemColors.HighlightText - Me.lblPlotHeader.Location = New System.Drawing.Point(3, 282) - Me.lblPlotHeader.Name = "lblPlotHeader" - Me.lblPlotHeader.Size = New System.Drawing.Size(787, 17) - Me.lblPlotHeader.TabIndex = 6 - Me.lblPlotHeader.Text = "Plot" - Me.lblPlotHeader.TextAlign = System.Drawing.ContentAlignment.MiddleLeft - ' - 'txtPlot - ' - Me.txtPlot.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ - Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.txtPlot.BackColor = System.Drawing.Color.Gainsboro - Me.txtPlot.BorderStyle = System.Windows.Forms.BorderStyle.None - Me.txtPlot.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.txtPlot.ForeColor = System.Drawing.Color.Black - Me.txtPlot.Location = New System.Drawing.Point(3, 303) - Me.txtPlot.Multiline = True - Me.txtPlot.Name = "txtPlot" - Me.txtPlot.ReadOnly = True - Me.txtPlot.ScrollBars = System.Windows.Forms.ScrollBars.Vertical - Me.txtPlot.Size = New System.Drawing.Size(787, 184) - Me.txtPlot.TabIndex = 7 - Me.txtPlot.TabStop = False - ' - 'btnDown - ' - Me.btnDown.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.btnDown.BackColor = System.Drawing.SystemColors.Control - Me.btnDown.Location = New System.Drawing.Point(1069, 1) - Me.btnDown.Name = "btnDown" - Me.btnDown.Size = New System.Drawing.Size(30, 22) - Me.btnDown.TabIndex = 6 - Me.btnDown.TabStop = False - Me.btnDown.Text = "v" - Me.btnDown.TextAlign = System.Drawing.ContentAlignment.TopCenter - Me.btnDown.UseVisualStyleBackColor = False - ' - 'btnUp - ' - Me.btnUp.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.btnUp.BackColor = System.Drawing.SystemColors.Control - Me.btnUp.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.btnUp.Location = New System.Drawing.Point(1006, 1) - Me.btnUp.Name = "btnUp" - Me.btnUp.Size = New System.Drawing.Size(30, 22) - Me.btnUp.TabIndex = 1 - Me.btnUp.TabStop = False - Me.btnUp.Text = "^" - Me.btnUp.TextAlign = System.Drawing.ContentAlignment.TopCenter - Me.btnUp.UseVisualStyleBackColor = False - ' - 'lblInfoPanelHeader - ' - Me.lblInfoPanelHeader.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ - Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) - Me.lblInfoPanelHeader.BackColor = System.Drawing.SystemColors.ControlDarkDark - Me.lblInfoPanelHeader.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.lblInfoPanelHeader.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.lblInfoPanelHeader.ForeColor = System.Drawing.SystemColors.HighlightText - Me.lblInfoPanelHeader.Location = New System.Drawing.Point(3, 3) - Me.lblInfoPanelHeader.Name = "lblInfoPanelHeader" - Me.lblInfoPanelHeader.Size = New System.Drawing.Size(1101, 17) - Me.lblInfoPanelHeader.TabIndex = 0 - Me.lblInfoPanelHeader.Text = "Info" - Me.lblInfoPanelHeader.TextAlign = System.Drawing.ContentAlignment.MiddleLeft - ' - 'pnlPoster - ' - Me.pnlPoster.BackColor = System.Drawing.Color.Gainsboro - Me.pnlPoster.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.pnlPoster.Controls.Add(Me.pbPoster) - Me.pnlPoster.Location = New System.Drawing.Point(9, 112) - Me.pnlPoster.Name = "pnlPoster" - Me.pnlPoster.Size = New System.Drawing.Size(131, 169) - Me.pnlPoster.TabIndex = 2 - Me.pnlPoster.Visible = False - ' - 'pbPoster - ' - Me.pbPoster.BackColor = System.Drawing.SystemColors.Control - Me.pbPoster.Location = New System.Drawing.Point(4, 4) - Me.pbPoster.Name = "pbPoster" - Me.pbPoster.Size = New System.Drawing.Size(121, 159) - Me.pbPoster.TabIndex = 0 - Me.pbPoster.TabStop = False - ' - 'pbPosterCache - ' - Me.pbPosterCache.Location = New System.Drawing.Point(454, 107) - Me.pbPosterCache.Name = "pbPosterCache" - Me.pbPosterCache.Size = New System.Drawing.Size(115, 111) - Me.pbPosterCache.TabIndex = 12 - Me.pbPosterCache.TabStop = False - Me.pbPosterCache.Visible = False - ' - 'pnlMPAA - ' - Me.pnlMPAA.BackColor = System.Drawing.Color.Gainsboro - Me.pnlMPAA.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.pnlMPAA.Controls.Add(Me.pbMPAA) - Me.pnlMPAA.Location = New System.Drawing.Point(4, 609) - Me.pnlMPAA.Name = "pnlMPAA" - Me.pnlMPAA.Size = New System.Drawing.Size(202, 45) - Me.pnlMPAA.TabIndex = 11 - Me.pnlMPAA.Visible = False - ' - 'pbMPAA - ' - Me.pbMPAA.Location = New System.Drawing.Point(1, 1) - Me.pbMPAA.Name = "pbMPAA" - Me.pbMPAA.Size = New System.Drawing.Size(249, 57) - Me.pbMPAA.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize - Me.pbMPAA.TabIndex = 13 - Me.pbMPAA.TabStop = False - ' - 'pbFanartCache - ' - Me.pbFanartCache.Location = New System.Drawing.Point(576, 107) - Me.pbFanartCache.Name = "pbFanartCache" - Me.pbFanartCache.Size = New System.Drawing.Size(115, 111) - Me.pbFanartCache.TabIndex = 3 - Me.pbFanartCache.TabStop = False - Me.pbFanartCache.Visible = False - ' - 'pbFanart - ' - Me.pbFanart.Anchor = System.Windows.Forms.AnchorStyles.Top - Me.pbFanart.BackColor = System.Drawing.Color.DimGray - Me.pbFanart.Location = New System.Drawing.Point(206, 99) - Me.pbFanart.Name = "pbFanart" - Me.pbFanart.Size = New System.Drawing.Size(696, 250) - Me.pbFanart.TabIndex = 1 - Me.pbFanart.TabStop = False - ' - 'tsMain - ' - Me.tsMain.BackColor = System.Drawing.SystemColors.Control - Me.tsMain.CanOverflow = False - Me.tsMain.GripMargin = New System.Windows.Forms.Padding(0) - Me.tsMain.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden - Me.tsMain.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.tsbAutoPilot, Me.tsbRefreshMedia, Me.tsbMediaCenters}) - Me.tsMain.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.HorizontalStackWithOverflow - Me.tsMain.Location = New System.Drawing.Point(0, 0) - Me.tsMain.Name = "tsMain" - Me.tsMain.Padding = New System.Windows.Forms.Padding(0) - Me.tsMain.Size = New System.Drawing.Size(1109, 25) - Me.tsMain.Stretch = True - Me.tsMain.TabIndex = 6 - ' - 'tsbAutoPilot - ' - Me.tsbAutoPilot.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.FullToolStripMenuItem, Me.UpdateOnlyToolStripMenuItem, Me.NewMoviesToolStripMenuItem, Me.MarkedMoviesToolStripMenuItem, Me.CurrentFilterToolStripMenuItem, Me.CustomUpdaterToolStripMenuItem}) - Me.tsbAutoPilot.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.tsbAutoPilot.Image = CType(resources.GetObject("tsbAutoPilot.Image"), System.Drawing.Image) - Me.tsbAutoPilot.ImageTransparentColor = System.Drawing.Color.Magenta - Me.tsbAutoPilot.Name = "tsbAutoPilot" - Me.tsbAutoPilot.Size = New System.Drawing.Size(105, 22) - Me.tsbAutoPilot.Text = "Scrape Media" - ' - 'FullToolStripMenuItem - ' - Me.FullToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.FullAutoToolStripMenuItem, Me.FullAskToolStripMenuItem, Me.FullSkipToolStripMenuItem}) - Me.FullToolStripMenuItem.Name = "FullToolStripMenuItem" - Me.FullToolStripMenuItem.Size = New System.Drawing.Size(183, 22) - Me.FullToolStripMenuItem.Text = "All Movies" - ' - 'FullAutoToolStripMenuItem - ' - Me.FullAutoToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuAllAutoAll, Me.mnuAllAutoNfo, Me.mnuAllAutoPoster, Me.mnuAllAutoFanart, Me.mnuAllAutoExtra, Me.mnuAllAutoTrailer, Me.mnuAllAutoMI}) - Me.FullAutoToolStripMenuItem.Name = "FullAutoToolStripMenuItem" - Me.FullAutoToolStripMenuItem.Size = New System.Drawing.Size(264, 22) - Me.FullAutoToolStripMenuItem.Text = "Automatic (Force Best Match)" - ' - 'mnuAllAutoAll - ' - Me.mnuAllAutoAll.Name = "mnuAllAutoAll" - Me.mnuAllAutoAll.Size = New System.Drawing.Size(165, 22) - Me.mnuAllAutoAll.Text = "All Items" - ' - 'mnuAllAutoNfo - ' - Me.mnuAllAutoNfo.Name = "mnuAllAutoNfo" - Me.mnuAllAutoNfo.Size = New System.Drawing.Size(165, 22) - Me.mnuAllAutoNfo.Text = "NFO Only" - ' - 'mnuAllAutoPoster - ' - Me.mnuAllAutoPoster.Name = "mnuAllAutoPoster" - Me.mnuAllAutoPoster.Size = New System.Drawing.Size(165, 22) - Me.mnuAllAutoPoster.Text = "Poster Only" - ' - 'mnuAllAutoFanart - ' - Me.mnuAllAutoFanart.Name = "mnuAllAutoFanart" - Me.mnuAllAutoFanart.Size = New System.Drawing.Size(165, 22) - Me.mnuAllAutoFanart.Text = "Fanart Only" - ' - 'mnuAllAutoExtra - ' - Me.mnuAllAutoExtra.Name = "mnuAllAutoExtra" - Me.mnuAllAutoExtra.Size = New System.Drawing.Size(165, 22) - Me.mnuAllAutoExtra.Text = "Extrathumbs Only" - ' - 'mnuAllAutoTrailer - ' - Me.mnuAllAutoTrailer.Name = "mnuAllAutoTrailer" - Me.mnuAllAutoTrailer.Size = New System.Drawing.Size(165, 22) - Me.mnuAllAutoTrailer.Text = "Trailer Only" - ' - 'mnuAllAutoMI - ' - Me.mnuAllAutoMI.Name = "mnuAllAutoMI" - Me.mnuAllAutoMI.Size = New System.Drawing.Size(165, 22) - Me.mnuAllAutoMI.Text = "Meta Data Only" - ' - 'FullAskToolStripMenuItem - ' - Me.FullAskToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuAllAskAll, Me.mnuAllAskNfo, Me.mnuAllAskPoster, Me.mnuAllAskFanart, Me.mnuAllAskExtra, Me.mnuAllAskTrailer, Me.mnuAllAskMI}) - Me.FullAskToolStripMenuItem.Name = "FullAskToolStripMenuItem" - Me.FullAskToolStripMenuItem.Size = New System.Drawing.Size(264, 22) - Me.FullAskToolStripMenuItem.Text = "Ask (Require Input If No Exact Match)" - ' - 'mnuAllAskAll - ' - Me.mnuAllAskAll.Name = "mnuAllAskAll" - Me.mnuAllAskAll.Size = New System.Drawing.Size(165, 22) - Me.mnuAllAskAll.Text = "All Items" - ' - 'mnuAllAskNfo - ' - Me.mnuAllAskNfo.Name = "mnuAllAskNfo" - Me.mnuAllAskNfo.Size = New System.Drawing.Size(165, 22) - Me.mnuAllAskNfo.Text = "NFO Only" - ' - 'mnuAllAskPoster - ' - Me.mnuAllAskPoster.Name = "mnuAllAskPoster" - Me.mnuAllAskPoster.Size = New System.Drawing.Size(165, 22) - Me.mnuAllAskPoster.Text = "Poster Only" - ' - 'mnuAllAskFanart - ' - Me.mnuAllAskFanart.Name = "mnuAllAskFanart" - Me.mnuAllAskFanart.Size = New System.Drawing.Size(165, 22) - Me.mnuAllAskFanart.Text = "Fanart Only" - ' - 'mnuAllAskExtra - ' - Me.mnuAllAskExtra.Name = "mnuAllAskExtra" - Me.mnuAllAskExtra.Size = New System.Drawing.Size(165, 22) - Me.mnuAllAskExtra.Text = "Extrathumbs Only" - ' - 'mnuAllAskTrailer - ' - Me.mnuAllAskTrailer.Name = "mnuAllAskTrailer" - Me.mnuAllAskTrailer.Size = New System.Drawing.Size(165, 22) - Me.mnuAllAskTrailer.Text = "Trailer Only" - ' - 'mnuAllAskMI - ' - Me.mnuAllAskMI.Name = "mnuAllAskMI" - Me.mnuAllAskMI.Size = New System.Drawing.Size(165, 22) - Me.mnuAllAskMI.Text = "Meta Data Only" - ' - 'FullSkipToolStripMenuItem - ' - Me.FullSkipToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuAllSkipAll}) - Me.FullSkipToolStripMenuItem.Name = "FullSkipToolStripMenuItem" - Me.FullSkipToolStripMenuItem.Size = New System.Drawing.Size(264, 22) - Me.FullSkipToolStripMenuItem.Text = "Skip (Do Nothing If No Exact Match)" - ' - 'mnuAllSkipAll - ' - Me.mnuAllSkipAll.Name = "mnuAllSkipAll" - Me.mnuAllSkipAll.Size = New System.Drawing.Size(117, 22) - Me.mnuAllSkipAll.Text = "All Items" - ' - 'UpdateOnlyToolStripMenuItem - ' - Me.UpdateOnlyToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.UpdateAutoToolStripMenuItem, Me.UpdateAskToolStripMenuItem}) - Me.UpdateOnlyToolStripMenuItem.Name = "UpdateOnlyToolStripMenuItem" - Me.UpdateOnlyToolStripMenuItem.Size = New System.Drawing.Size(183, 22) - Me.UpdateOnlyToolStripMenuItem.Text = "Movies Missing Items" - ' - 'UpdateAutoToolStripMenuItem - ' - Me.UpdateAutoToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuMissAutoAll, Me.mnuMissAutoNfo, Me.mnuMissAutoPoster, Me.mnuMissAutoFanart, Me.mnuMissAutoExtra, Me.mnuMissAutoTrailer}) - Me.UpdateAutoToolStripMenuItem.Name = "UpdateAutoToolStripMenuItem" - Me.UpdateAutoToolStripMenuItem.Size = New System.Drawing.Size(264, 22) - Me.UpdateAutoToolStripMenuItem.Text = "Automatic (Force Best Match)" - ' - 'mnuMissAutoAll - ' - Me.mnuMissAutoAll.Name = "mnuMissAutoAll" - Me.mnuMissAutoAll.Size = New System.Drawing.Size(165, 22) - Me.mnuMissAutoAll.Text = "All Items" - ' - 'mnuMissAutoNfo - ' - Me.mnuMissAutoNfo.Name = "mnuMissAutoNfo" - Me.mnuMissAutoNfo.Size = New System.Drawing.Size(165, 22) - Me.mnuMissAutoNfo.Text = "NFO Only" - ' - 'mnuMissAutoPoster - ' - Me.mnuMissAutoPoster.Name = "mnuMissAutoPoster" - Me.mnuMissAutoPoster.Size = New System.Drawing.Size(165, 22) - Me.mnuMissAutoPoster.Text = "Poster Only" - ' - 'mnuMissAutoFanart - ' - Me.mnuMissAutoFanart.Name = "mnuMissAutoFanart" - Me.mnuMissAutoFanart.Size = New System.Drawing.Size(165, 22) - Me.mnuMissAutoFanart.Text = "Fanart Only" - ' - 'mnuMissAutoExtra - ' - Me.mnuMissAutoExtra.Name = "mnuMissAutoExtra" - Me.mnuMissAutoExtra.Size = New System.Drawing.Size(165, 22) - Me.mnuMissAutoExtra.Text = "Extrathumbs Only" - ' - 'mnuMissAutoTrailer - ' - Me.mnuMissAutoTrailer.Name = "mnuMissAutoTrailer" - Me.mnuMissAutoTrailer.Size = New System.Drawing.Size(165, 22) - Me.mnuMissAutoTrailer.Text = "Trailer Only" - ' - 'UpdateAskToolStripMenuItem - ' - Me.UpdateAskToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuMissAskAll, Me.mnuMissAskNfo, Me.mnuMissAskPoster, Me.mnuMissAskFanart, Me.mnuMissAskExtra, Me.mnuMissAskTrailer}) - Me.UpdateAskToolStripMenuItem.Name = "UpdateAskToolStripMenuItem" - Me.UpdateAskToolStripMenuItem.Size = New System.Drawing.Size(264, 22) - Me.UpdateAskToolStripMenuItem.Text = "Ask (Require Input If No Exact Match)" - ' - 'mnuMissAskAll - ' - Me.mnuMissAskAll.Name = "mnuMissAskAll" - Me.mnuMissAskAll.Size = New System.Drawing.Size(165, 22) - Me.mnuMissAskAll.Text = "All Items" - ' - 'mnuMissAskNfo - ' - Me.mnuMissAskNfo.Name = "mnuMissAskNfo" - Me.mnuMissAskNfo.Size = New System.Drawing.Size(165, 22) - Me.mnuMissAskNfo.Text = "NFO Only" - ' - 'mnuMissAskPoster - ' - Me.mnuMissAskPoster.Name = "mnuMissAskPoster" - Me.mnuMissAskPoster.Size = New System.Drawing.Size(165, 22) - Me.mnuMissAskPoster.Text = "Poster Only" - ' - 'mnuMissAskFanart - ' - Me.mnuMissAskFanart.Name = "mnuMissAskFanart" - Me.mnuMissAskFanart.Size = New System.Drawing.Size(165, 22) - Me.mnuMissAskFanart.Text = "Fanart Only" - ' - 'mnuMissAskExtra - ' - Me.mnuMissAskExtra.Name = "mnuMissAskExtra" - Me.mnuMissAskExtra.Size = New System.Drawing.Size(165, 22) - Me.mnuMissAskExtra.Text = "Extrathumbs Only" - ' - 'mnuMissAskTrailer - ' - Me.mnuMissAskTrailer.Name = "mnuMissAskTrailer" - Me.mnuMissAskTrailer.Size = New System.Drawing.Size(165, 22) - Me.mnuMissAskTrailer.Text = "Trailer Only" - ' - 'NewMoviesToolStripMenuItem - ' - Me.NewMoviesToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.AutomaticForceBestMatchToolStripMenuItem, Me.AskRequireInputToolStripMenuItem}) - Me.NewMoviesToolStripMenuItem.Name = "NewMoviesToolStripMenuItem" - Me.NewMoviesToolStripMenuItem.Size = New System.Drawing.Size(183, 22) - Me.NewMoviesToolStripMenuItem.Text = "New Movies" - ' - 'AutomaticForceBestMatchToolStripMenuItem - ' - Me.AutomaticForceBestMatchToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuNewAutoAll, Me.mnuNewAutoNfo, Me.mnuNewAutoPoster, Me.mnuNewAutoFanart, Me.mnuNewAutoExtra, Me.mnuNewAutoTrailer, Me.mnuNewAutoMI}) - Me.AutomaticForceBestMatchToolStripMenuItem.Name = "AutomaticForceBestMatchToolStripMenuItem" - Me.AutomaticForceBestMatchToolStripMenuItem.Size = New System.Drawing.Size(264, 22) - Me.AutomaticForceBestMatchToolStripMenuItem.Text = "Automatic (Force Best Match)" - ' - 'mnuNewAutoAll - ' - Me.mnuNewAutoAll.Name = "mnuNewAutoAll" - Me.mnuNewAutoAll.Size = New System.Drawing.Size(165, 22) - Me.mnuNewAutoAll.Text = "All Items" - ' - 'mnuNewAutoNfo - ' - Me.mnuNewAutoNfo.Name = "mnuNewAutoNfo" - Me.mnuNewAutoNfo.Size = New System.Drawing.Size(165, 22) - Me.mnuNewAutoNfo.Text = "NFO Only" - ' - 'mnuNewAutoPoster - ' - Me.mnuNewAutoPoster.Name = "mnuNewAutoPoster" - Me.mnuNewAutoPoster.Size = New System.Drawing.Size(165, 22) - Me.mnuNewAutoPoster.Text = "Poster Only" - ' - 'mnuNewAutoFanart - ' - Me.mnuNewAutoFanart.Name = "mnuNewAutoFanart" - Me.mnuNewAutoFanart.Size = New System.Drawing.Size(165, 22) - Me.mnuNewAutoFanart.Text = "Fanart Only" - ' - 'mnuNewAutoExtra - ' - Me.mnuNewAutoExtra.Name = "mnuNewAutoExtra" - Me.mnuNewAutoExtra.Size = New System.Drawing.Size(165, 22) - Me.mnuNewAutoExtra.Text = "Extrathumbs Only" - ' - 'mnuNewAutoTrailer - ' - Me.mnuNewAutoTrailer.Name = "mnuNewAutoTrailer" - Me.mnuNewAutoTrailer.Size = New System.Drawing.Size(165, 22) - Me.mnuNewAutoTrailer.Text = "Trailer Only" - ' - 'mnuNewAutoMI - ' - Me.mnuNewAutoMI.Name = "mnuNewAutoMI" - Me.mnuNewAutoMI.Size = New System.Drawing.Size(165, 22) - Me.mnuNewAutoMI.Text = "Meta Data Only" - ' - 'AskRequireInputToolStripMenuItem - ' - Me.AskRequireInputToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuNewAskAll, Me.mnuNewAskNfo, Me.mnuNewAskPoster, Me.mnuNewAskFanart, Me.mnuNewAskExtra, Me.mnuNewAskTrailer, Me.mnuNewAskMI}) - Me.AskRequireInputToolStripMenuItem.Name = "AskRequireInputToolStripMenuItem" - Me.AskRequireInputToolStripMenuItem.Size = New System.Drawing.Size(264, 22) - Me.AskRequireInputToolStripMenuItem.Text = "Ask (Require Input If No Exact Match)" - ' - 'mnuNewAskAll - ' - Me.mnuNewAskAll.Name = "mnuNewAskAll" - Me.mnuNewAskAll.Size = New System.Drawing.Size(165, 22) - Me.mnuNewAskAll.Text = "All Items" - ' - 'mnuNewAskNfo - ' - Me.mnuNewAskNfo.Name = "mnuNewAskNfo" - Me.mnuNewAskNfo.Size = New System.Drawing.Size(165, 22) - Me.mnuNewAskNfo.Text = "NFO Only" - ' - 'mnuNewAskPoster - ' - Me.mnuNewAskPoster.Name = "mnuNewAskPoster" - Me.mnuNewAskPoster.Size = New System.Drawing.Size(165, 22) - Me.mnuNewAskPoster.Text = "Poster Only" - ' - 'mnuNewAskFanart - ' - Me.mnuNewAskFanart.Name = "mnuNewAskFanart" - Me.mnuNewAskFanart.Size = New System.Drawing.Size(165, 22) - Me.mnuNewAskFanart.Text = "Fanart Only" - ' - 'mnuNewAskExtra - ' - Me.mnuNewAskExtra.Name = "mnuNewAskExtra" - Me.mnuNewAskExtra.Size = New System.Drawing.Size(165, 22) - Me.mnuNewAskExtra.Text = "Extrathumbs Only" - ' - 'mnuNewAskTrailer - ' - Me.mnuNewAskTrailer.Name = "mnuNewAskTrailer" - Me.mnuNewAskTrailer.Size = New System.Drawing.Size(165, 22) - Me.mnuNewAskTrailer.Text = "Trailer Only" - ' - 'mnuNewAskMI - ' - Me.mnuNewAskMI.Name = "mnuNewAskMI" - Me.mnuNewAskMI.Size = New System.Drawing.Size(165, 22) - Me.mnuNewAskMI.Text = "Meta Data Only" - ' - 'MarkedMoviesToolStripMenuItem - ' - Me.MarkedMoviesToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.AutomaticForceBestMatchToolStripMenuItem1, Me.AskRequireInputIfNoExactMatchToolStripMenuItem}) - Me.MarkedMoviesToolStripMenuItem.Name = "MarkedMoviesToolStripMenuItem" - Me.MarkedMoviesToolStripMenuItem.Size = New System.Drawing.Size(183, 22) - Me.MarkedMoviesToolStripMenuItem.Text = "Marked Movies" - ' - 'AutomaticForceBestMatchToolStripMenuItem1 - ' - Me.AutomaticForceBestMatchToolStripMenuItem1.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuMarkAutoAll, Me.mnuMarkAutoNfo, Me.mnuMarkAutoPoster, Me.mnuMarkAutoFanart, Me.mnuMarkAutoExtra, Me.mnuMarkAutoTrailer, Me.mnuMarkAutoMI}) - Me.AutomaticForceBestMatchToolStripMenuItem1.Name = "AutomaticForceBestMatchToolStripMenuItem1" - Me.AutomaticForceBestMatchToolStripMenuItem1.Size = New System.Drawing.Size(264, 22) - Me.AutomaticForceBestMatchToolStripMenuItem1.Text = "Automatic (Force Best Match)" - ' - 'mnuMarkAutoAll - ' - Me.mnuMarkAutoAll.Name = "mnuMarkAutoAll" - Me.mnuMarkAutoAll.Size = New System.Drawing.Size(165, 22) - Me.mnuMarkAutoAll.Text = "All Items" - ' - 'mnuMarkAutoNfo - ' - Me.mnuMarkAutoNfo.Name = "mnuMarkAutoNfo" - Me.mnuMarkAutoNfo.Size = New System.Drawing.Size(165, 22) - Me.mnuMarkAutoNfo.Text = "NFO Only" - ' - 'mnuMarkAutoPoster - ' - Me.mnuMarkAutoPoster.Name = "mnuMarkAutoPoster" - Me.mnuMarkAutoPoster.Size = New System.Drawing.Size(165, 22) - Me.mnuMarkAutoPoster.Text = "Poster Only" - ' - 'mnuMarkAutoFanart - ' - Me.mnuMarkAutoFanart.Name = "mnuMarkAutoFanart" - Me.mnuMarkAutoFanart.Size = New System.Drawing.Size(165, 22) - Me.mnuMarkAutoFanart.Text = "Fanart Only" - ' - 'mnuMarkAutoExtra - ' - Me.mnuMarkAutoExtra.Name = "mnuMarkAutoExtra" - Me.mnuMarkAutoExtra.Size = New System.Drawing.Size(165, 22) - Me.mnuMarkAutoExtra.Text = "Extrathumbs Only" - ' - 'mnuMarkAutoTrailer - ' - Me.mnuMarkAutoTrailer.Name = "mnuMarkAutoTrailer" - Me.mnuMarkAutoTrailer.Size = New System.Drawing.Size(165, 22) - Me.mnuMarkAutoTrailer.Text = "Trailer Only" - ' - 'mnuMarkAutoMI - ' - Me.mnuMarkAutoMI.Name = "mnuMarkAutoMI" - Me.mnuMarkAutoMI.Size = New System.Drawing.Size(165, 22) - Me.mnuMarkAutoMI.Text = "Meta Data Only" - ' - 'AskRequireInputIfNoExactMatchToolStripMenuItem - ' - Me.AskRequireInputIfNoExactMatchToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuMarkAskAll, Me.mnuMarkAskNfo, Me.mnuMarkAskPoster, Me.mnuMarkAskFanart, Me.mnuMarkAskExtra, Me.mnuMarkAskTrailer, Me.mnuMarkAskMI}) - Me.AskRequireInputIfNoExactMatchToolStripMenuItem.Name = "AskRequireInputIfNoExactMatchToolStripMenuItem" - Me.AskRequireInputIfNoExactMatchToolStripMenuItem.Size = New System.Drawing.Size(264, 22) - Me.AskRequireInputIfNoExactMatchToolStripMenuItem.Text = "Ask (Require Input If No Exact Match)" - ' - 'mnuMarkAskAll - ' - Me.mnuMarkAskAll.Name = "mnuMarkAskAll" - Me.mnuMarkAskAll.Size = New System.Drawing.Size(165, 22) - Me.mnuMarkAskAll.Text = "All Items" - ' - 'mnuMarkAskNfo - ' - Me.mnuMarkAskNfo.Name = "mnuMarkAskNfo" - Me.mnuMarkAskNfo.Size = New System.Drawing.Size(165, 22) - Me.mnuMarkAskNfo.Text = "NFO Only" - ' - 'mnuMarkAskPoster - ' - Me.mnuMarkAskPoster.Name = "mnuMarkAskPoster" - Me.mnuMarkAskPoster.Size = New System.Drawing.Size(165, 22) - Me.mnuMarkAskPoster.Text = "Poster Only" - ' - 'mnuMarkAskFanart - ' - Me.mnuMarkAskFanart.Name = "mnuMarkAskFanart" - Me.mnuMarkAskFanart.Size = New System.Drawing.Size(165, 22) - Me.mnuMarkAskFanart.Text = "Fanart Only" - ' - 'mnuMarkAskExtra - ' - Me.mnuMarkAskExtra.Name = "mnuMarkAskExtra" - Me.mnuMarkAskExtra.Size = New System.Drawing.Size(165, 22) - Me.mnuMarkAskExtra.Text = "Extrathumbs Only" - ' - 'mnuMarkAskTrailer - ' - Me.mnuMarkAskTrailer.Name = "mnuMarkAskTrailer" - Me.mnuMarkAskTrailer.Size = New System.Drawing.Size(165, 22) - Me.mnuMarkAskTrailer.Text = "Trailer Only" - ' - 'mnuMarkAskMI - ' - Me.mnuMarkAskMI.Name = "mnuMarkAskMI" - Me.mnuMarkAskMI.Size = New System.Drawing.Size(165, 22) - Me.mnuMarkAskMI.Text = "Meta Data Only" - ' - 'CurrentFilterToolStripMenuItem - ' - Me.CurrentFilterToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.AutomaticForceBestMatchToolStripMenuItem2, Me.AskRequireInputIfNoExactMatchToolStripMenuItem1}) - Me.CurrentFilterToolStripMenuItem.Name = "CurrentFilterToolStripMenuItem" - Me.CurrentFilterToolStripMenuItem.Size = New System.Drawing.Size(183, 22) - Me.CurrentFilterToolStripMenuItem.Text = "Current Filter" - ' - 'AutomaticForceBestMatchToolStripMenuItem2 - ' - Me.AutomaticForceBestMatchToolStripMenuItem2.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuFilterAutoAll, Me.mnuFilterAutoNfo, Me.mnuFilterAutoPoster, Me.mnuFilterAutoFanart, Me.mnuFilterAutoExtra, Me.mnuFilterAutoTrailer, Me.mnuFilterAutoMI}) - Me.AutomaticForceBestMatchToolStripMenuItem2.Name = "AutomaticForceBestMatchToolStripMenuItem2" - Me.AutomaticForceBestMatchToolStripMenuItem2.Size = New System.Drawing.Size(264, 22) - Me.AutomaticForceBestMatchToolStripMenuItem2.Text = "Automatic (Force Best Match)" - ' - 'mnuFilterAutoAll - ' - Me.mnuFilterAutoAll.Name = "mnuFilterAutoAll" - Me.mnuFilterAutoAll.Size = New System.Drawing.Size(165, 22) - Me.mnuFilterAutoAll.Text = "All Items" - ' - 'mnuFilterAutoNfo - ' - Me.mnuFilterAutoNfo.Name = "mnuFilterAutoNfo" - Me.mnuFilterAutoNfo.Size = New System.Drawing.Size(165, 22) - Me.mnuFilterAutoNfo.Text = "NFO Only" - ' - 'mnuFilterAutoPoster - ' - Me.mnuFilterAutoPoster.Name = "mnuFilterAutoPoster" - Me.mnuFilterAutoPoster.Size = New System.Drawing.Size(165, 22) - Me.mnuFilterAutoPoster.Text = "Poster Only" - ' - 'mnuFilterAutoFanart - ' - Me.mnuFilterAutoFanart.Name = "mnuFilterAutoFanart" - Me.mnuFilterAutoFanart.Size = New System.Drawing.Size(165, 22) - Me.mnuFilterAutoFanart.Text = "Fanart Only" - ' - 'mnuFilterAutoExtra - ' - Me.mnuFilterAutoExtra.Name = "mnuFilterAutoExtra" - Me.mnuFilterAutoExtra.Size = New System.Drawing.Size(165, 22) - Me.mnuFilterAutoExtra.Text = "Extrathumbs Only" - ' - 'mnuFilterAutoTrailer - ' - Me.mnuFilterAutoTrailer.Name = "mnuFilterAutoTrailer" - Me.mnuFilterAutoTrailer.Size = New System.Drawing.Size(165, 22) - Me.mnuFilterAutoTrailer.Text = "Trailer Only" - ' - 'mnuFilterAutoMI - ' - Me.mnuFilterAutoMI.Name = "mnuFilterAutoMI" - Me.mnuFilterAutoMI.Size = New System.Drawing.Size(165, 22) - Me.mnuFilterAutoMI.Text = "Meta Data Only" - ' - 'AskRequireInputIfNoExactMatchToolStripMenuItem1 - ' - Me.AskRequireInputIfNoExactMatchToolStripMenuItem1.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuFilterAskAll, Me.mnuFilterAskNfo, Me.mnuFilterAskPoster, Me.mnuFilterAskFanart, Me.mnuFilterAskExtra, Me.mnuFilterAskTrailer, Me.mnuFilterAskMI}) - Me.AskRequireInputIfNoExactMatchToolStripMenuItem1.Name = "AskRequireInputIfNoExactMatchToolStripMenuItem1" - Me.AskRequireInputIfNoExactMatchToolStripMenuItem1.Size = New System.Drawing.Size(264, 22) - Me.AskRequireInputIfNoExactMatchToolStripMenuItem1.Text = "Ask (Require Input If No Exact Match)" - ' - 'mnuFilterAskAll - ' - Me.mnuFilterAskAll.Name = "mnuFilterAskAll" - Me.mnuFilterAskAll.Size = New System.Drawing.Size(165, 22) - Me.mnuFilterAskAll.Text = "All Items" - ' - 'mnuFilterAskNfo - ' - Me.mnuFilterAskNfo.Name = "mnuFilterAskNfo" - Me.mnuFilterAskNfo.Size = New System.Drawing.Size(165, 22) - Me.mnuFilterAskNfo.Text = "NFO Only" - ' - 'mnuFilterAskPoster - ' - Me.mnuFilterAskPoster.Name = "mnuFilterAskPoster" - Me.mnuFilterAskPoster.Size = New System.Drawing.Size(165, 22) - Me.mnuFilterAskPoster.Text = "Poster Only" - ' - 'mnuFilterAskFanart - ' - Me.mnuFilterAskFanart.Name = "mnuFilterAskFanart" - Me.mnuFilterAskFanart.Size = New System.Drawing.Size(165, 22) - Me.mnuFilterAskFanart.Text = "Fanart Only" - ' - 'mnuFilterAskExtra - ' - Me.mnuFilterAskExtra.Name = "mnuFilterAskExtra" - Me.mnuFilterAskExtra.Size = New System.Drawing.Size(165, 22) - Me.mnuFilterAskExtra.Text = "Extrathumbs Only" - ' - 'mnuFilterAskTrailer - ' - Me.mnuFilterAskTrailer.Name = "mnuFilterAskTrailer" - Me.mnuFilterAskTrailer.Size = New System.Drawing.Size(165, 22) - Me.mnuFilterAskTrailer.Text = "Trailer Only" - ' - 'mnuFilterAskMI - ' - Me.mnuFilterAskMI.Name = "mnuFilterAskMI" - Me.mnuFilterAskMI.Size = New System.Drawing.Size(165, 22) - Me.mnuFilterAskMI.Text = "Meta Data Only" - ' - 'CustomUpdaterToolStripMenuItem - ' - Me.CustomUpdaterToolStripMenuItem.Name = "CustomUpdaterToolStripMenuItem" - Me.CustomUpdaterToolStripMenuItem.Size = New System.Drawing.Size(183, 22) - Me.CustomUpdaterToolStripMenuItem.Text = "Custom Scraper..." - ' - 'tsbRefreshMedia - ' - Me.tsbRefreshMedia.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuMoviesUpdate, Me.mnuTVShowUpdate}) - Me.tsbRefreshMedia.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.tsbRefreshMedia.Image = CType(resources.GetObject("tsbRefreshMedia.Image"), System.Drawing.Image) - Me.tsbRefreshMedia.ImageTransparentColor = System.Drawing.Color.Magenta - Me.tsbRefreshMedia.Name = "tsbRefreshMedia" - Me.tsbRefreshMedia.Size = New System.Drawing.Size(114, 22) - Me.tsbRefreshMedia.Text = "Update Library" - ' - 'mnuMoviesUpdate - ' - Me.mnuMoviesUpdate.Name = "mnuMoviesUpdate" - Me.mnuMoviesUpdate.Size = New System.Drawing.Size(123, 22) - Me.mnuMoviesUpdate.Text = "Movies" - ' - 'mnuTVShowUpdate - ' - Me.mnuTVShowUpdate.Name = "mnuTVShowUpdate" - Me.mnuTVShowUpdate.Size = New System.Drawing.Size(123, 22) - Me.mnuTVShowUpdate.Text = "TV Shows" - ' - 'tsbMediaCenters - ' - Me.tsbMediaCenters.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right - Me.tsbMediaCenters.Enabled = False - Me.tsbMediaCenters.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) - Me.tsbMediaCenters.Image = CType(resources.GetObject("tsbMediaCenters.Image"), System.Drawing.Image) - Me.tsbMediaCenters.ImageTransparentColor = System.Drawing.Color.Magenta - Me.tsbMediaCenters.Name = "tsbMediaCenters" - Me.tsbMediaCenters.Size = New System.Drawing.Size(113, 22) - Me.tsbMediaCenters.Text = "Media Centers" - Me.tsbMediaCenters.Visible = False - ' - 'ilColumnIcons - ' - Me.ilColumnIcons.ImageStream = CType(resources.GetObject("ilColumnIcons.ImageStream"), System.Windows.Forms.ImageListStreamer) - Me.ilColumnIcons.TransparentColor = System.Drawing.Color.Transparent - Me.ilColumnIcons.Images.SetKeyName(0, "new_page.png") - Me.ilColumnIcons.Images.SetKeyName(1, "image.png") - Me.ilColumnIcons.Images.SetKeyName(2, "info.png") - Me.ilColumnIcons.Images.SetKeyName(3, "favorite_film.png") - Me.ilColumnIcons.Images.SetKeyName(4, "comment.png") - Me.ilColumnIcons.Images.SetKeyName(5, "folder_full.png") - Me.ilColumnIcons.Images.SetKeyName(6, "listcheck.png") - Me.ilColumnIcons.Images.SetKeyName(7, "listdotgrey.png") - ' - 'tmrWait - ' - Me.tmrWait.Interval = 250 - ' - 'tmrLoad - ' - ' - 'tmrSearchWait - ' - Me.tmrSearchWait.Interval = 250 - ' - 'tmrSearch - ' - Me.tmrSearch.Interval = 250 - ' - 'tmrFilterAni - ' - Me.tmrFilterAni.Interval = 1 - ' - 'ToolTips - ' - Me.ToolTips.AutoPopDelay = 15000 - Me.ToolTips.InitialDelay = 500 - Me.ToolTips.ReshowDelay = 100 - ' - 'tmrWaitShow - ' - Me.tmrWaitShow.Interval = 250 - ' - 'tmrLoadShow - ' - ' - 'tmrWaitSeason - ' - Me.tmrWaitSeason.Interval = 250 - ' - 'tmrLoadSeason - ' - ' - 'tmrWaitEp - ' - Me.tmrWaitEp.Interval = 250 - ' - 'tmrLoadEp - ' - ' - 'cmnuTrayIcon - ' - Me.cmnuTrayIcon.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.cmnuTrayIconTitle, Me.ToolStripSeparator21, Me.cmnuTrayIconUpdateMedia, Me.cmnuTrayIconScrapeMedia, Me.cmnuTrayIconMediaCenters, Me.ToolStripSeparator23, Me.cmnuTrayIconTools, Me.ToolStripSeparator22, Me.cmnuTrayIconSettings, Me.ToolStripSeparator13, Me.cmnuTrayIconExit}) - Me.cmnuTrayIcon.Name = "cmnuTrayIcon" - Me.cmnuTrayIcon.Size = New System.Drawing.Size(195, 182) - Me.cmnuTrayIcon.Text = "Ember Media Manager" - ' - 'cmnuTrayIconTitle - ' - Me.cmnuTrayIconTitle.Enabled = False - Me.cmnuTrayIconTitle.Image = CType(resources.GetObject("cmnuTrayIconTitle.Image"), System.Drawing.Image) - Me.cmnuTrayIconTitle.Name = "cmnuTrayIconTitle" - Me.cmnuTrayIconTitle.Size = New System.Drawing.Size(194, 22) - Me.cmnuTrayIconTitle.Text = "Ember Media Manager" - ' - 'ToolStripSeparator21 - ' - Me.ToolStripSeparator21.Name = "ToolStripSeparator21" - Me.ToolStripSeparator21.Size = New System.Drawing.Size(191, 6) - ' - 'cmnuTrayIconUpdateMedia - ' - Me.cmnuTrayIconUpdateMedia.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.cmnuTrayIconUpdateMovies, Me.cmnuTrayIconUpdateTV}) - Me.cmnuTrayIconUpdateMedia.Image = CType(resources.GetObject("cmnuTrayIconUpdateMedia.Image"), System.Drawing.Image) - Me.cmnuTrayIconUpdateMedia.Name = "cmnuTrayIconUpdateMedia" - Me.cmnuTrayIconUpdateMedia.Size = New System.Drawing.Size(194, 22) - Me.cmnuTrayIconUpdateMedia.Text = "Update Media" - ' - 'cmnuTrayIconUpdateMovies - ' - Me.cmnuTrayIconUpdateMovies.Name = "cmnuTrayIconUpdateMovies" - Me.cmnuTrayIconUpdateMovies.Size = New System.Drawing.Size(125, 22) - Me.cmnuTrayIconUpdateMovies.Text = "Movies" - ' - 'cmnuTrayIconUpdateTV - ' - Me.cmnuTrayIconUpdateTV.Name = "cmnuTrayIconUpdateTV" - Me.cmnuTrayIconUpdateTV.Size = New System.Drawing.Size(125, 22) - Me.cmnuTrayIconUpdateTV.Text = "TV Shows" - ' - 'cmnuTrayIconScrapeMedia - ' - Me.cmnuTrayIconScrapeMedia.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TrayFullToolStripMenuItem, Me.TrayUpdateOnlyToolStripMenuItem, Me.TrayNewMoviesToolStripMenuItem, Me.TrayMarkedMoviesToolStripMenuItem, Me.TrayCurrentFilterToolStripMenuItem, Me.TrayCustomUpdaterToolStripMenuItem}) - Me.cmnuTrayIconScrapeMedia.Image = CType(resources.GetObject("cmnuTrayIconScrapeMedia.Image"), System.Drawing.Image) - Me.cmnuTrayIconScrapeMedia.Name = "cmnuTrayIconScrapeMedia" - Me.cmnuTrayIconScrapeMedia.Size = New System.Drawing.Size(194, 22) - Me.cmnuTrayIconScrapeMedia.Text = "Scrape Media" - ' - 'TrayFullToolStripMenuItem - ' - Me.TrayFullToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TrayFullAutoToolStripMenuItem, Me.TrayFullAskToolStripMenuItem}) - Me.TrayFullToolStripMenuItem.Name = "TrayFullToolStripMenuItem" - Me.TrayFullToolStripMenuItem.Size = New System.Drawing.Size(188, 22) - Me.TrayFullToolStripMenuItem.Text = "All Movies" - ' - 'TrayFullAutoToolStripMenuItem - ' - Me.TrayFullAutoToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuTrayAllAutoAll, Me.mnuTrayAllAutoNfo, Me.mnuTrayAllAutoPoster, Me.mnuTrayAllAutoFanart, Me.mnuTrayAllAutoExtra, Me.mnuTrayAllAutoTrailer, Me.mnuTrayAllAutoMI}) - Me.TrayFullAutoToolStripMenuItem.Name = "TrayFullAutoToolStripMenuItem" - Me.TrayFullAutoToolStripMenuItem.Size = New System.Drawing.Size(271, 22) - Me.TrayFullAutoToolStripMenuItem.Text = "Automatic (Force Best Match)" - ' - 'mnuTrayAllAutoAll - ' - Me.mnuTrayAllAutoAll.Name = "mnuTrayAllAutoAll" - Me.mnuTrayAllAutoAll.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayAllAutoAll.Text = "All Items" - ' - 'mnuTrayAllAutoNfo - ' - Me.mnuTrayAllAutoNfo.Name = "mnuTrayAllAutoNfo" - Me.mnuTrayAllAutoNfo.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayAllAutoNfo.Text = "NFO Only" - ' - 'mnuTrayAllAutoPoster - ' - Me.mnuTrayAllAutoPoster.Name = "mnuTrayAllAutoPoster" - Me.mnuTrayAllAutoPoster.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayAllAutoPoster.Text = "Poster Only" - ' - 'mnuTrayAllAutoFanart - ' - Me.mnuTrayAllAutoFanart.Name = "mnuTrayAllAutoFanart" - Me.mnuTrayAllAutoFanart.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayAllAutoFanart.Text = "Fanart Only" - ' - 'mnuTrayAllAutoExtra - ' - Me.mnuTrayAllAutoExtra.Name = "mnuTrayAllAutoExtra" - Me.mnuTrayAllAutoExtra.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayAllAutoExtra.Text = "Extrathumbs Only" - ' - 'mnuTrayAllAutoTrailer - ' - Me.mnuTrayAllAutoTrailer.Name = "mnuTrayAllAutoTrailer" - Me.mnuTrayAllAutoTrailer.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayAllAutoTrailer.Text = "Trailer Only" - ' - 'mnuTrayAllAutoMI - ' - Me.mnuTrayAllAutoMI.Name = "mnuTrayAllAutoMI" - Me.mnuTrayAllAutoMI.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayAllAutoMI.Text = "Meta Data Only" - ' - 'TrayFullAskToolStripMenuItem - ' - Me.TrayFullAskToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuTrayAllAskAll, Me.mnuTrayAllAskNfo, Me.mnuTrayAllAskPoster, Me.mnuTrayAllAskFanart, Me.mnuTrayAllAskExtra, Me.mnuTrayAllAskTrailer, Me.mnuTrayAllAskMI}) - Me.TrayFullAskToolStripMenuItem.Name = "TrayFullAskToolStripMenuItem" - Me.TrayFullAskToolStripMenuItem.Size = New System.Drawing.Size(271, 22) - Me.TrayFullAskToolStripMenuItem.Text = "Ask (Require Input If No Exact Match)" - ' - 'mnuTrayAllAskAll - ' - Me.mnuTrayAllAskAll.Name = "mnuTrayAllAskAll" - Me.mnuTrayAllAskAll.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayAllAskAll.Text = "All Items" - ' - 'mnuTrayAllAskNfo - ' - Me.mnuTrayAllAskNfo.Name = "mnuTrayAllAskNfo" - Me.mnuTrayAllAskNfo.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayAllAskNfo.Text = "NFO Only" - ' - 'mnuTrayAllAskPoster - ' - Me.mnuTrayAllAskPoster.Name = "mnuTrayAllAskPoster" - Me.mnuTrayAllAskPoster.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayAllAskPoster.Text = "Poster Only" - ' - 'mnuTrayAllAskFanart - ' - Me.mnuTrayAllAskFanart.Name = "mnuTrayAllAskFanart" - Me.mnuTrayAllAskFanart.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayAllAskFanart.Text = "Fanart Only" - ' - 'mnuTrayAllAskExtra - ' - Me.mnuTrayAllAskExtra.Name = "mnuTrayAllAskExtra" - Me.mnuTrayAllAskExtra.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayAllAskExtra.Text = "Extrathumbs Only" - ' - 'mnuTrayAllAskTrailer - ' - Me.mnuTrayAllAskTrailer.Name = "mnuTrayAllAskTrailer" - Me.mnuTrayAllAskTrailer.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayAllAskTrailer.Text = "Trailer Only" - ' - 'mnuTrayAllAskMI - ' - Me.mnuTrayAllAskMI.Name = "mnuTrayAllAskMI" - Me.mnuTrayAllAskMI.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayAllAskMI.Text = "Meta Data Only" - ' - 'TrayUpdateOnlyToolStripMenuItem - ' - Me.TrayUpdateOnlyToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TrayUpdateAutoToolStripMenuItem, Me.TrayUpdateAskToolStripMenuItem}) - Me.TrayUpdateOnlyToolStripMenuItem.Name = "TrayUpdateOnlyToolStripMenuItem" - Me.TrayUpdateOnlyToolStripMenuItem.Size = New System.Drawing.Size(188, 22) - Me.TrayUpdateOnlyToolStripMenuItem.Text = "Movies Missing Items" - ' - 'TrayUpdateAutoToolStripMenuItem - ' - Me.TrayUpdateAutoToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuTrayMissAutoAll, Me.mnuTrayMissAutoNfo, Me.mnuTrayMissAutoPoster, Me.mnuTrayMissAutoFanart, Me.mnuTrayMissAutoExtra, Me.mnuTrayMissAutoTrailer}) - Me.TrayUpdateAutoToolStripMenuItem.Name = "TrayUpdateAutoToolStripMenuItem" - Me.TrayUpdateAutoToolStripMenuItem.Size = New System.Drawing.Size(271, 22) - Me.TrayUpdateAutoToolStripMenuItem.Text = "Automatic (Force Best Match)" - ' - 'mnuTrayMissAutoAll - ' - Me.mnuTrayMissAutoAll.Name = "mnuTrayMissAutoAll" - Me.mnuTrayMissAutoAll.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayMissAutoAll.Text = "All Items" - ' - 'mnuTrayMissAutoNfo - ' - Me.mnuTrayMissAutoNfo.Name = "mnuTrayMissAutoNfo" - Me.mnuTrayMissAutoNfo.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayMissAutoNfo.Text = "NFO Only" - ' - 'mnuTrayMissAutoPoster - ' - Me.mnuTrayMissAutoPoster.Name = "mnuTrayMissAutoPoster" - Me.mnuTrayMissAutoPoster.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayMissAutoPoster.Text = "Poster Only" - ' - 'mnuTrayMissAutoFanart - ' - Me.mnuTrayMissAutoFanart.Name = "mnuTrayMissAutoFanart" - Me.mnuTrayMissAutoFanart.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayMissAutoFanart.Text = "Fanart Only" - ' - 'mnuTrayMissAutoExtra - ' - Me.mnuTrayMissAutoExtra.Name = "mnuTrayMissAutoExtra" - Me.mnuTrayMissAutoExtra.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayMissAutoExtra.Text = "Extrathumbs Only" - ' - 'mnuTrayMissAutoTrailer - ' - Me.mnuTrayMissAutoTrailer.Name = "mnuTrayMissAutoTrailer" - Me.mnuTrayMissAutoTrailer.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayMissAutoTrailer.Text = "Trailer Only" - ' - 'TrayUpdateAskToolStripMenuItem - ' - Me.TrayUpdateAskToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuTrayMissAskAll, Me.mnuTrayMissAskNfo, Me.mnuTrayMissAskPoster, Me.mnuTrayMissAskFanart, Me.mnuTrayMissAskExtra, Me.mnuTrayMissAskTrailer}) - Me.TrayUpdateAskToolStripMenuItem.Name = "TrayUpdateAskToolStripMenuItem" - Me.TrayUpdateAskToolStripMenuItem.Size = New System.Drawing.Size(271, 22) - Me.TrayUpdateAskToolStripMenuItem.Text = "Ask (Require Input If No Exact Match)" - ' - 'mnuTrayMissAskAll - ' - Me.mnuTrayMissAskAll.Name = "mnuTrayMissAskAll" - Me.mnuTrayMissAskAll.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayMissAskAll.Text = "All Items" - ' - 'mnuTrayMissAskNfo - ' - Me.mnuTrayMissAskNfo.Name = "mnuTrayMissAskNfo" - Me.mnuTrayMissAskNfo.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayMissAskNfo.Text = "NFO Only" - ' - 'mnuTrayMissAskPoster - ' - Me.mnuTrayMissAskPoster.Name = "mnuTrayMissAskPoster" - Me.mnuTrayMissAskPoster.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayMissAskPoster.Text = "Poster Only" - ' - 'mnuTrayMissAskFanart - ' - Me.mnuTrayMissAskFanart.Name = "mnuTrayMissAskFanart" - Me.mnuTrayMissAskFanart.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayMissAskFanart.Text = "Fanart Only" - ' - 'mnuTrayMissAskExtra - ' - Me.mnuTrayMissAskExtra.Name = "mnuTrayMissAskExtra" - Me.mnuTrayMissAskExtra.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayMissAskExtra.Text = "Extrathumbs Only" - ' - 'mnuTrayMissAskTrailer - ' - Me.mnuTrayMissAskTrailer.Name = "mnuTrayMissAskTrailer" - Me.mnuTrayMissAskTrailer.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayMissAskTrailer.Text = "Trailer Only" - ' - 'TrayNewMoviesToolStripMenuItem - ' - Me.TrayNewMoviesToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TrayAutomaticForceBestMatchToolStripMenuItem, Me.TrayAskRequireInputToolStripMenuItem}) - Me.TrayNewMoviesToolStripMenuItem.Name = "TrayNewMoviesToolStripMenuItem" - Me.TrayNewMoviesToolStripMenuItem.Size = New System.Drawing.Size(188, 22) - Me.TrayNewMoviesToolStripMenuItem.Text = "New Movies" - ' - 'TrayAutomaticForceBestMatchToolStripMenuItem - ' - Me.TrayAutomaticForceBestMatchToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuTrayNewAutoAll, Me.mnuTrayNewAutoNfo, Me.mnuTrayNewAutoPoster, Me.mnuTrayNewAutoFanart, Me.mnuTrayNewAutoExtra, Me.mnuTrayNewAutoTrailer, Me.mnuTrayNewAutoMI}) - Me.TrayAutomaticForceBestMatchToolStripMenuItem.Name = "TrayAutomaticForceBestMatchToolStripMenuItem" - Me.TrayAutomaticForceBestMatchToolStripMenuItem.Size = New System.Drawing.Size(271, 22) - Me.TrayAutomaticForceBestMatchToolStripMenuItem.Text = "Automatic (Force Best Match)" - ' - 'mnuTrayNewAutoAll - ' - Me.mnuTrayNewAutoAll.Name = "mnuTrayNewAutoAll" - Me.mnuTrayNewAutoAll.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayNewAutoAll.Text = "All Items" - ' - 'mnuTrayNewAutoNfo - ' - Me.mnuTrayNewAutoNfo.Name = "mnuTrayNewAutoNfo" - Me.mnuTrayNewAutoNfo.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayNewAutoNfo.Text = "NFO Only" - ' - 'mnuTrayNewAutoPoster - ' - Me.mnuTrayNewAutoPoster.Name = "mnuTrayNewAutoPoster" - Me.mnuTrayNewAutoPoster.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayNewAutoPoster.Text = "Poster Only" - ' - 'mnuTrayNewAutoFanart - ' - Me.mnuTrayNewAutoFanart.Name = "mnuTrayNewAutoFanart" - Me.mnuTrayNewAutoFanart.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayNewAutoFanart.Text = "Fanart Only" - ' - 'mnuTrayNewAutoExtra - ' - Me.mnuTrayNewAutoExtra.Name = "mnuTrayNewAutoExtra" - Me.mnuTrayNewAutoExtra.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayNewAutoExtra.Text = "Extrathumbs Only" - ' - 'mnuTrayNewAutoTrailer - ' - Me.mnuTrayNewAutoTrailer.Name = "mnuTrayNewAutoTrailer" - Me.mnuTrayNewAutoTrailer.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayNewAutoTrailer.Text = "Trailer Only" - ' - 'mnuTrayNewAutoMI - ' - Me.mnuTrayNewAutoMI.Name = "mnuTrayNewAutoMI" - Me.mnuTrayNewAutoMI.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayNewAutoMI.Text = "Meta Data Only" - ' - 'TrayAskRequireInputToolStripMenuItem - ' - Me.TrayAskRequireInputToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuTrayNewAskAll, Me.mnuTrayNewAskNfo, Me.mnuTrayNewAskPoster, Me.mnuTrayNewAskFanart, Me.mnuTrayNewAskExtra, Me.mnuTrayNewAskTrailer, Me.mnuTrayNewAskMI}) - Me.TrayAskRequireInputToolStripMenuItem.Name = "TrayAskRequireInputToolStripMenuItem" - Me.TrayAskRequireInputToolStripMenuItem.Size = New System.Drawing.Size(271, 22) - Me.TrayAskRequireInputToolStripMenuItem.Text = "Ask (Require Input If No Exact Match)" - ' - 'mnuTrayNewAskAll - ' - Me.mnuTrayNewAskAll.Name = "mnuTrayNewAskAll" - Me.mnuTrayNewAskAll.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayNewAskAll.Text = "All Items" - ' - 'mnuTrayNewAskNfo - ' - Me.mnuTrayNewAskNfo.Name = "mnuTrayNewAskNfo" - Me.mnuTrayNewAskNfo.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayNewAskNfo.Text = "NFO Only" - ' - 'mnuTrayNewAskPoster - ' - Me.mnuTrayNewAskPoster.Name = "mnuTrayNewAskPoster" - Me.mnuTrayNewAskPoster.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayNewAskPoster.Text = "Poster Only" - ' - 'mnuTrayNewAskFanart - ' - Me.mnuTrayNewAskFanart.Name = "mnuTrayNewAskFanart" - Me.mnuTrayNewAskFanart.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayNewAskFanart.Text = "Fanart Only" - ' - 'mnuTrayNewAskExtra - ' - Me.mnuTrayNewAskExtra.Name = "mnuTrayNewAskExtra" - Me.mnuTrayNewAskExtra.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayNewAskExtra.Text = "Extrathumbs Only" - ' - 'mnuTrayNewAskTrailer - ' - Me.mnuTrayNewAskTrailer.Name = "mnuTrayNewAskTrailer" - Me.mnuTrayNewAskTrailer.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayNewAskTrailer.Text = "Trailer Only" - ' - 'mnuTrayNewAskMI - ' - Me.mnuTrayNewAskMI.Name = "mnuTrayNewAskMI" - Me.mnuTrayNewAskMI.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayNewAskMI.Text = "Meta Data Only" - ' - 'TrayMarkedMoviesToolStripMenuItem - ' - Me.TrayMarkedMoviesToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TrayAutomaticForceBestMatchToolStripMenuItem1, Me.TrayAskRequireInputIfNoExactMatchToolStripMenuItem}) - Me.TrayMarkedMoviesToolStripMenuItem.Name = "TrayMarkedMoviesToolStripMenuItem" - Me.TrayMarkedMoviesToolStripMenuItem.Size = New System.Drawing.Size(188, 22) - Me.TrayMarkedMoviesToolStripMenuItem.Text = "Marked Movies" - ' - 'TrayAutomaticForceBestMatchToolStripMenuItem1 - ' - Me.TrayAutomaticForceBestMatchToolStripMenuItem1.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuTrayMarkAutoAll, Me.mnuTrayMarkAutoNfo, Me.mnuTrayMarkAutoPoster, Me.mnuTrayMarkAutoFanart, Me.mnuTrayMarkAutoExtra, Me.mnuTrayMarkAutoTrailer, Me.mnuTrayMarkAutoMI}) - Me.TrayAutomaticForceBestMatchToolStripMenuItem1.Name = "TrayAutomaticForceBestMatchToolStripMenuItem1" - Me.TrayAutomaticForceBestMatchToolStripMenuItem1.Size = New System.Drawing.Size(271, 22) - Me.TrayAutomaticForceBestMatchToolStripMenuItem1.Text = "Automatic (Force Best Match)" - ' - 'mnuTrayMarkAutoAll - ' - Me.mnuTrayMarkAutoAll.Name = "mnuTrayMarkAutoAll" - Me.mnuTrayMarkAutoAll.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayMarkAutoAll.Text = "All Items" - ' - 'mnuTrayMarkAutoNfo - ' - Me.mnuTrayMarkAutoNfo.Name = "mnuTrayMarkAutoNfo" - Me.mnuTrayMarkAutoNfo.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayMarkAutoNfo.Text = "NFO Only" - ' - 'mnuTrayMarkAutoPoster - ' - Me.mnuTrayMarkAutoPoster.Name = "mnuTrayMarkAutoPoster" - Me.mnuTrayMarkAutoPoster.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayMarkAutoPoster.Text = "Poster Only" - ' - 'mnuTrayMarkAutoFanart - ' - Me.mnuTrayMarkAutoFanart.Name = "mnuTrayMarkAutoFanart" - Me.mnuTrayMarkAutoFanart.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayMarkAutoFanart.Text = "Fanart Only" - ' - 'mnuTrayMarkAutoExtra - ' - Me.mnuTrayMarkAutoExtra.Name = "mnuTrayMarkAutoExtra" - Me.mnuTrayMarkAutoExtra.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayMarkAutoExtra.Text = "Extrathumbs Only" - ' - 'mnuTrayMarkAutoTrailer - ' - Me.mnuTrayMarkAutoTrailer.Name = "mnuTrayMarkAutoTrailer" - Me.mnuTrayMarkAutoTrailer.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayMarkAutoTrailer.Text = "Trailer Only" - ' - 'mnuTrayMarkAutoMI - ' - Me.mnuTrayMarkAutoMI.Name = "mnuTrayMarkAutoMI" - Me.mnuTrayMarkAutoMI.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayMarkAutoMI.Text = "Meta Data Only" - ' - 'TrayAskRequireInputIfNoExactMatchToolStripMenuItem - ' - Me.TrayAskRequireInputIfNoExactMatchToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuTrayMarkAskAll, Me.mnuTrayMarkAskNfo, Me.mnuTrayMarkAskPoster, Me.mnuTrayMarkAskFanart, Me.mnuTrayMarkAskExtra, Me.mnuTrayMarkAskTrailer, Me.mnuTrayMarkAskMI}) - Me.TrayAskRequireInputIfNoExactMatchToolStripMenuItem.Name = "TrayAskRequireInputIfNoExactMatchToolStripMenuItem" - Me.TrayAskRequireInputIfNoExactMatchToolStripMenuItem.Size = New System.Drawing.Size(271, 22) - Me.TrayAskRequireInputIfNoExactMatchToolStripMenuItem.Text = "Ask (Require Input If No Exact Match)" - ' - 'mnuTrayMarkAskAll - ' - Me.mnuTrayMarkAskAll.Name = "mnuTrayMarkAskAll" - Me.mnuTrayMarkAskAll.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayMarkAskAll.Text = "All Items" - ' - 'mnuTrayMarkAskNfo - ' - Me.mnuTrayMarkAskNfo.Name = "mnuTrayMarkAskNfo" - Me.mnuTrayMarkAskNfo.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayMarkAskNfo.Text = "NFO Only" - ' - 'mnuTrayMarkAskPoster - ' - Me.mnuTrayMarkAskPoster.Name = "mnuTrayMarkAskPoster" - Me.mnuTrayMarkAskPoster.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayMarkAskPoster.Text = "Poster Only" - ' - 'mnuTrayMarkAskFanart - ' - Me.mnuTrayMarkAskFanart.Name = "mnuTrayMarkAskFanart" - Me.mnuTrayMarkAskFanart.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayMarkAskFanart.Text = "Fanart Only" - ' - 'mnuTrayMarkAskExtra - ' - Me.mnuTrayMarkAskExtra.Name = "mnuTrayMarkAskExtra" - Me.mnuTrayMarkAskExtra.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayMarkAskExtra.Text = "Extrathumbs Only" - ' - 'mnuTrayMarkAskTrailer - ' - Me.mnuTrayMarkAskTrailer.Name = "mnuTrayMarkAskTrailer" - Me.mnuTrayMarkAskTrailer.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayMarkAskTrailer.Text = "Trailer Only" - ' - 'mnuTrayMarkAskMI - ' - Me.mnuTrayMarkAskMI.Name = "mnuTrayMarkAskMI" - Me.mnuTrayMarkAskMI.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayMarkAskMI.Text = "Meta Data Only" - ' - 'TrayCurrentFilterToolStripMenuItem - ' - Me.TrayCurrentFilterToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TrayAutomaticForceBestMatchToolStripMenuItem2, Me.TrayAskRequireInputIfNoExactMatchToolStripMenuItem1}) - Me.TrayCurrentFilterToolStripMenuItem.Name = "TrayCurrentFilterToolStripMenuItem" - Me.TrayCurrentFilterToolStripMenuItem.Size = New System.Drawing.Size(188, 22) - Me.TrayCurrentFilterToolStripMenuItem.Text = "Current Filter" - ' - 'TrayAutomaticForceBestMatchToolStripMenuItem2 - ' - Me.TrayAutomaticForceBestMatchToolStripMenuItem2.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuTrayFilterAutoAll, Me.mnuTrayFilterAutoNfo, Me.mnuTrayFilterAutoPoster, Me.mnuTrayFilterAutoFanart, Me.mnuTrayFilterAutoExtra, Me.mnuTrayFilterAutoTrailer, Me.mnuTrayFilterAutoMI}) - Me.TrayAutomaticForceBestMatchToolStripMenuItem2.Name = "TrayAutomaticForceBestMatchToolStripMenuItem2" - Me.TrayAutomaticForceBestMatchToolStripMenuItem2.Size = New System.Drawing.Size(271, 22) - Me.TrayAutomaticForceBestMatchToolStripMenuItem2.Text = "Automatic (Force Best Match)" - ' - 'mnuTrayFilterAutoAll - ' - Me.mnuTrayFilterAutoAll.Name = "mnuTrayFilterAutoAll" - Me.mnuTrayFilterAutoAll.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayFilterAutoAll.Text = "All Items" - ' - 'mnuTrayFilterAutoNfo - ' - Me.mnuTrayFilterAutoNfo.Name = "mnuTrayFilterAutoNfo" - Me.mnuTrayFilterAutoNfo.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayFilterAutoNfo.Text = "NFO Only" - ' - 'mnuTrayFilterAutoPoster - ' - Me.mnuTrayFilterAutoPoster.Name = "mnuTrayFilterAutoPoster" - Me.mnuTrayFilterAutoPoster.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayFilterAutoPoster.Text = "Poster Only" - ' - 'mnuTrayFilterAutoFanart - ' - Me.mnuTrayFilterAutoFanart.Name = "mnuTrayFilterAutoFanart" - Me.mnuTrayFilterAutoFanart.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayFilterAutoFanart.Text = "Fanart Only" - ' - 'mnuTrayFilterAutoExtra - ' - Me.mnuTrayFilterAutoExtra.Name = "mnuTrayFilterAutoExtra" - Me.mnuTrayFilterAutoExtra.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayFilterAutoExtra.Text = "Extrathumbs Only" - ' - 'mnuTrayFilterAutoTrailer - ' - Me.mnuTrayFilterAutoTrailer.Name = "mnuTrayFilterAutoTrailer" - Me.mnuTrayFilterAutoTrailer.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayFilterAutoTrailer.Text = "Trailer Only" - ' - 'mnuTrayFilterAutoMI - ' - Me.mnuTrayFilterAutoMI.Name = "mnuTrayFilterAutoMI" - Me.mnuTrayFilterAutoMI.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayFilterAutoMI.Text = "Meta Data Only" - ' - 'TrayAskRequireInputIfNoExactMatchToolStripMenuItem1 - ' - Me.TrayAskRequireInputIfNoExactMatchToolStripMenuItem1.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuTrayFilterAskAll, Me.mnuTrayFilterAskNfo, Me.mnuTrayFilterAskPoster, Me.mnuTrayFilterAskFanart, Me.mnuTrayFilterAskExtra, Me.mnuTrayFilterAskTrailer, Me.mnuTrayFilterAskMI}) - Me.TrayAskRequireInputIfNoExactMatchToolStripMenuItem1.Name = "TrayAskRequireInputIfNoExactMatchToolStripMenuItem1" - Me.TrayAskRequireInputIfNoExactMatchToolStripMenuItem1.Size = New System.Drawing.Size(271, 22) - Me.TrayAskRequireInputIfNoExactMatchToolStripMenuItem1.Text = "Ask (Require Input If No Exact Match)" - ' - 'mnuTrayFilterAskAll - ' - Me.mnuTrayFilterAskAll.Name = "mnuTrayFilterAskAll" - Me.mnuTrayFilterAskAll.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayFilterAskAll.Text = "All Items" - ' - 'mnuTrayFilterAskNfo - ' - Me.mnuTrayFilterAskNfo.Name = "mnuTrayFilterAskNfo" - Me.mnuTrayFilterAskNfo.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayFilterAskNfo.Text = "NFO Only" - ' - 'mnuTrayFilterAskPoster - ' - Me.mnuTrayFilterAskPoster.Name = "mnuTrayFilterAskPoster" - Me.mnuTrayFilterAskPoster.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayFilterAskPoster.Text = "Poster Only" - ' - 'mnuTrayFilterAskFanart - ' - Me.mnuTrayFilterAskFanart.Name = "mnuTrayFilterAskFanart" - Me.mnuTrayFilterAskFanart.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayFilterAskFanart.Text = "Fanart Only" - ' - 'mnuTrayFilterAskExtra - ' - Me.mnuTrayFilterAskExtra.Name = "mnuTrayFilterAskExtra" - Me.mnuTrayFilterAskExtra.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayFilterAskExtra.Text = "Extrathumbs Only" - ' - 'mnuTrayFilterAskTrailer - ' - Me.mnuTrayFilterAskTrailer.Name = "mnuTrayFilterAskTrailer" - Me.mnuTrayFilterAskTrailer.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayFilterAskTrailer.Text = "Trailer Only" - ' - 'mnuTrayFilterAskMI - ' - Me.mnuTrayFilterAskMI.Name = "mnuTrayFilterAskMI" - Me.mnuTrayFilterAskMI.Size = New System.Drawing.Size(168, 22) - Me.mnuTrayFilterAskMI.Text = "Meta Data Only" - ' - 'TrayCustomUpdaterToolStripMenuItem - ' - Me.TrayCustomUpdaterToolStripMenuItem.Name = "TrayCustomUpdaterToolStripMenuItem" - Me.TrayCustomUpdaterToolStripMenuItem.Size = New System.Drawing.Size(188, 22) - Me.TrayCustomUpdaterToolStripMenuItem.Text = "Custom Scraper..." - ' - 'cmnuTrayIconMediaCenters - ' - Me.cmnuTrayIconMediaCenters.Image = CType(resources.GetObject("cmnuTrayIconMediaCenters.Image"), System.Drawing.Image) - Me.cmnuTrayIconMediaCenters.Name = "cmnuTrayIconMediaCenters" - Me.cmnuTrayIconMediaCenters.Size = New System.Drawing.Size(194, 22) - Me.cmnuTrayIconMediaCenters.Text = "Media Centers" - Me.cmnuTrayIconMediaCenters.Visible = False - ' - 'ToolStripSeparator23 - ' - Me.ToolStripSeparator23.Name = "ToolStripSeparator23" - Me.ToolStripSeparator23.Size = New System.Drawing.Size(191, 6) - ' - 'cmnuTrayIconTools - ' - Me.cmnuTrayIconTools.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.CleanFilesToolStripMenuItem, Me.SortFilesIntoFoldersToolStripMenuItem, Me.CopyExistingFanartToBackdropsFolderToolStripMenuItem1, Me.ToolStripSeparator24, Me.SetsManagerToolStripMenuItem1, Me.ToolStripSeparator25, Me.ClearAllCachesToolStripMenuItem1, Me.ReloadAllMoviesToolStripMenuItem, Me.CleanDatabaseToolStripMenuItem1, Me.ToolStripSeparator26}) - Me.cmnuTrayIconTools.Image = CType(resources.GetObject("cmnuTrayIconTools.Image"), System.Drawing.Image) - Me.cmnuTrayIconTools.Name = "cmnuTrayIconTools" - Me.cmnuTrayIconTools.Size = New System.Drawing.Size(194, 22) - Me.cmnuTrayIconTools.Text = "Tools" - ' - 'CleanFilesToolStripMenuItem - ' - Me.CleanFilesToolStripMenuItem.Image = CType(resources.GetObject("CleanFilesToolStripMenuItem.Image"), System.Drawing.Image) - Me.CleanFilesToolStripMenuItem.Name = "CleanFilesToolStripMenuItem" - Me.CleanFilesToolStripMenuItem.Size = New System.Drawing.Size(289, 22) - Me.CleanFilesToolStripMenuItem.Text = "Clean Files" - ' - 'SortFilesIntoFoldersToolStripMenuItem - ' - Me.SortFilesIntoFoldersToolStripMenuItem.Image = CType(resources.GetObject("SortFilesIntoFoldersToolStripMenuItem.Image"), System.Drawing.Image) - Me.SortFilesIntoFoldersToolStripMenuItem.Name = "SortFilesIntoFoldersToolStripMenuItem" - Me.SortFilesIntoFoldersToolStripMenuItem.Size = New System.Drawing.Size(289, 22) - Me.SortFilesIntoFoldersToolStripMenuItem.Text = "Sort Files into Folders" - ' - 'CopyExistingFanartToBackdropsFolderToolStripMenuItem1 - ' - Me.CopyExistingFanartToBackdropsFolderToolStripMenuItem1.Image = CType(resources.GetObject("CopyExistingFanartToBackdropsFolderToolStripMenuItem1.Image"), System.Drawing.Image) - Me.CopyExistingFanartToBackdropsFolderToolStripMenuItem1.Name = "CopyExistingFanartToBackdropsFolderToolStripMenuItem1" - Me.CopyExistingFanartToBackdropsFolderToolStripMenuItem1.Size = New System.Drawing.Size(289, 22) - Me.CopyExistingFanartToBackdropsFolderToolStripMenuItem1.Text = "Copy Existing Fanart to Backdrops Folder" - ' - 'ToolStripSeparator24 - ' - Me.ToolStripSeparator24.Name = "ToolStripSeparator24" - Me.ToolStripSeparator24.Size = New System.Drawing.Size(286, 6) - ' - 'SetsManagerToolStripMenuItem1 - ' - Me.SetsManagerToolStripMenuItem1.Image = CType(resources.GetObject("SetsManagerToolStripMenuItem1.Image"), System.Drawing.Image) - Me.SetsManagerToolStripMenuItem1.Name = "SetsManagerToolStripMenuItem1" - Me.SetsManagerToolStripMenuItem1.Size = New System.Drawing.Size(289, 22) - Me.SetsManagerToolStripMenuItem1.Text = "Sets Manager" - ' - 'ToolStripSeparator25 - ' - Me.ToolStripSeparator25.Name = "ToolStripSeparator25" - Me.ToolStripSeparator25.Size = New System.Drawing.Size(286, 6) - ' - 'ClearAllCachesToolStripMenuItem1 - ' - Me.ClearAllCachesToolStripMenuItem1.Image = CType(resources.GetObject("ClearAllCachesToolStripMenuItem1.Image"), System.Drawing.Image) - Me.ClearAllCachesToolStripMenuItem1.Name = "ClearAllCachesToolStripMenuItem1" - Me.ClearAllCachesToolStripMenuItem1.Size = New System.Drawing.Size(289, 22) - Me.ClearAllCachesToolStripMenuItem1.Text = "Clear All Caches" - ' - 'ReloadAllMoviesToolStripMenuItem - ' - Me.ReloadAllMoviesToolStripMenuItem.Image = CType(resources.GetObject("ReloadAllMoviesToolStripMenuItem.Image"), System.Drawing.Image) - Me.ReloadAllMoviesToolStripMenuItem.Name = "ReloadAllMoviesToolStripMenuItem" - Me.ReloadAllMoviesToolStripMenuItem.Size = New System.Drawing.Size(289, 22) - Me.ReloadAllMoviesToolStripMenuItem.Text = "Reload All Movies" - ' - 'CleanDatabaseToolStripMenuItem1 - ' - Me.CleanDatabaseToolStripMenuItem1.Image = CType(resources.GetObject("CleanDatabaseToolStripMenuItem1.Image"), System.Drawing.Image) - Me.CleanDatabaseToolStripMenuItem1.Name = "CleanDatabaseToolStripMenuItem1" - Me.CleanDatabaseToolStripMenuItem1.Size = New System.Drawing.Size(289, 22) - Me.CleanDatabaseToolStripMenuItem1.Text = "Clean Database" - ' - 'ToolStripSeparator26 - ' - Me.ToolStripSeparator26.Name = "ToolStripSeparator26" - Me.ToolStripSeparator26.Size = New System.Drawing.Size(286, 6) - ' - 'ToolStripSeparator22 - ' - Me.ToolStripSeparator22.Name = "ToolStripSeparator22" - Me.ToolStripSeparator22.Size = New System.Drawing.Size(191, 6) - ' - 'cmnuTrayIconSettings - ' - Me.cmnuTrayIconSettings.Image = CType(resources.GetObject("cmnuTrayIconSettings.Image"), System.Drawing.Image) - Me.cmnuTrayIconSettings.Name = "cmnuTrayIconSettings" - Me.cmnuTrayIconSettings.Size = New System.Drawing.Size(194, 22) - Me.cmnuTrayIconSettings.Text = "Settings..." - ' - 'ToolStripSeparator13 - ' - Me.ToolStripSeparator13.Name = "ToolStripSeparator13" - Me.ToolStripSeparator13.Size = New System.Drawing.Size(191, 6) - ' - 'cmnuTrayIconExit - ' - Me.cmnuTrayIconExit.Image = CType(resources.GetObject("cmnuTrayIconExit.Image"), System.Drawing.Image) - Me.cmnuTrayIconExit.Name = "cmnuTrayIconExit" - Me.cmnuTrayIconExit.Size = New System.Drawing.Size(194, 22) - Me.cmnuTrayIconExit.Text = "Exit" - ' - 'Panel3 - ' - Me.Panel3.BackColor = System.Drawing.Color.White - Me.Panel3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.Panel3.Controls.Add(Me.PictureBox2) - Me.Panel3.Controls.Add(Me.Label7) - Me.Panel3.Controls.Add(Me.ProgressBar1) - Me.Panel3.Location = New System.Drawing.Point(3, 3) - Me.Panel3.Name = "Panel3" - Me.Panel3.Size = New System.Drawing.Size(249, 111) - Me.Panel3.TabIndex = 2 - ' - 'PictureBox2 - ' - Me.PictureBox2.Image = CType(resources.GetObject("PictureBox2.Image"), System.Drawing.Image) - Me.PictureBox2.Location = New System.Drawing.Point(12, 11) - Me.PictureBox2.Name = "PictureBox2" - Me.PictureBox2.Size = New System.Drawing.Size(48, 48) - Me.PictureBox2.TabIndex = 2 - Me.PictureBox2.TabStop = False - ' - 'Label7 - ' - Me.Label7.Font = New System.Drawing.Font("Segoe UI", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Label7.Location = New System.Drawing.Point(63, 11) - Me.Label7.Name = "Label7" - Me.Label7.Size = New System.Drawing.Size(175, 48) - Me.Label7.TabIndex = 0 - Me.Label7.Text = "Loading Settings..." - Me.Label7.TextAlign = System.Drawing.ContentAlignment.MiddleCenter - ' - 'ProgressBar1 - ' - Me.ProgressBar1.Location = New System.Drawing.Point(8, 68) - Me.ProgressBar1.MarqueeAnimationSpeed = 25 - Me.ProgressBar1.Name = "ProgressBar1" - Me.ProgressBar1.Size = New System.Drawing.Size(231, 23) - Me.ProgressBar1.Style = System.Windows.Forms.ProgressBarStyle.Marquee - Me.ProgressBar1.TabIndex = 1 - ' - 'pnlLoadingSettings - ' - Me.pnlLoadingSettings.BackColor = System.Drawing.Color.Gainsboro - Me.pnlLoadingSettings.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle - Me.pnlLoadingSettings.Controls.Add(Me.Panel3) - Me.pnlLoadingSettings.Location = New System.Drawing.Point(380, 287) - Me.pnlLoadingSettings.Name = "pnlLoadingSettings" - Me.pnlLoadingSettings.Size = New System.Drawing.Size(257, 119) - Me.pnlLoadingSettings.TabIndex = 13 - Me.pnlLoadingSettings.Visible = False - ' - 'tmrAppExit - ' - Me.tmrAppExit.Interval = 1000 - ' - 'tmrKeyBuffer - ' - Me.tmrKeyBuffer.Interval = 1000 - ' - 'frmMain - ' - Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) - Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi - Me.ClientSize = New System.Drawing.Size(1477, 888) - Me.Controls.Add(Me.pnlLoadingSettings) - Me.Controls.Add(Me.scMain) - Me.Controls.Add(Me.StatusStrip) - Me.Controls.Add(Me.MenuStrip) - Me.DoubleBuffered = True - Me.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) - Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) - Me.MainMenuStrip = Me.MenuStrip - Me.MinimumSize = New System.Drawing.Size(800, 600) - Me.Name = "frmMain" - Me.Text = "Ember Media Manager" - Me.StatusStrip.ResumeLayout(False) - Me.StatusStrip.PerformLayout() - Me.MenuStrip.ResumeLayout(False) - Me.MenuStrip.PerformLayout() - Me.scMain.Panel1.ResumeLayout(False) - Me.scMain.Panel2.ResumeLayout(False) - Me.scMain.Panel2.PerformLayout() - Me.scMain.ResumeLayout(False) - Me.pnlFilterGenre.ResumeLayout(False) - Me.pnlFilterGenre.PerformLayout() - Me.pnlFilterSource.ResumeLayout(False) - Me.pnlFilterSource.PerformLayout() - CType(Me.dgvMediaList, System.ComponentModel.ISupportInitialize).EndInit() - Me.mnuMediaList.ResumeLayout(False) - Me.scTV.Panel1.ResumeLayout(False) - Me.scTV.Panel2.ResumeLayout(False) - Me.scTV.ResumeLayout(False) - CType(Me.dgvTVShows, System.ComponentModel.ISupportInitialize).EndInit() - Me.mnuShows.ResumeLayout(False) - Me.SplitContainer2.Panel1.ResumeLayout(False) - Me.SplitContainer2.Panel2.ResumeLayout(False) - Me.SplitContainer2.ResumeLayout(False) - CType(Me.dgvTVSeasons, System.ComponentModel.ISupportInitialize).EndInit() - Me.mnuSeasons.ResumeLayout(False) - CType(Me.dgvTVEpisodes, System.ComponentModel.ISupportInitialize).EndInit() - Me.mnuEpisodes.ResumeLayout(False) - Me.pnlListTop.ResumeLayout(False) - Me.pnlSearch.ResumeLayout(False) - Me.pnlSearch.PerformLayout() - CType(Me.picSearch, System.ComponentModel.ISupportInitialize).EndInit() - Me.tabsMain.ResumeLayout(False) - Me.pnlFilter.ResumeLayout(False) - Me.GroupBox1.ResumeLayout(False) - Me.GroupBox3.ResumeLayout(False) - Me.GroupBox3.PerformLayout() - Me.gbSpecific.ResumeLayout(False) - Me.gbSpecific.PerformLayout() - Me.GroupBox2.ResumeLayout(False) - Me.GroupBox2.PerformLayout() - Me.pnlTop.ResumeLayout(False) - Me.pnlTop.PerformLayout() - Me.pnlInfoIcons.ResumeLayout(False) - CType(Me.pbVType, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.pbStudio, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.pbVideo, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.pbAudio, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.pbResolution, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.pbChannels, System.ComponentModel.ISupportInitialize).EndInit() - Me.pnlRating.ResumeLayout(False) - Me.pnlRating.PerformLayout() - CType(Me.pbStar5, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.pbStar4, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.pbStar3, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.pbStar2, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.pbStar1, System.ComponentModel.ISupportInitialize).EndInit() - Me.pnlCancel.ResumeLayout(False) - Me.pnlCancel.PerformLayout() - Me.pnlAllSeason.ResumeLayout(False) - CType(Me.pbAllSeason, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.pbAllSeasonCache, System.ComponentModel.ISupportInitialize).EndInit() - Me.pnlNoInfo.ResumeLayout(False) - Me.Panel2.ResumeLayout(False) - CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() - Me.pnlInfoPanel.ResumeLayout(False) - Me.pnlInfoPanel.PerformLayout() - CType(Me.pbMILoading, System.ComponentModel.ISupportInitialize).EndInit() - Me.pnlActors.ResumeLayout(False) - CType(Me.pbActLoad, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.pbActors, System.ComponentModel.ISupportInitialize).EndInit() - Me.pnlTop250.ResumeLayout(False) - CType(Me.pbTop250, System.ComponentModel.ISupportInitialize).EndInit() - Me.pnlPoster.ResumeLayout(False) - CType(Me.pbPoster, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.pbPosterCache, System.ComponentModel.ISupportInitialize).EndInit() - Me.pnlMPAA.ResumeLayout(False) - Me.pnlMPAA.PerformLayout() - CType(Me.pbMPAA, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.pbFanartCache, System.ComponentModel.ISupportInitialize).EndInit() - CType(Me.pbFanart, System.ComponentModel.ISupportInitialize).EndInit() - Me.tsMain.ResumeLayout(False) - Me.tsMain.PerformLayout() - Me.cmnuTrayIcon.ResumeLayout(False) - Me.Panel3.ResumeLayout(False) - CType(Me.PictureBox2, System.ComponentModel.ISupportInitialize).EndInit() - Me.pnlLoadingSettings.ResumeLayout(False) - Me.ResumeLayout(False) - Me.PerformLayout() + Me.components = New System.ComponentModel.Container() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmMain)) + Dim DataGridViewCellStyle1 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle() + Dim DataGridViewCellStyle2 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle() + Dim DataGridViewCellStyle3 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle() + Dim DataGridViewCellStyle4 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle() + Me.BottomToolStripPanel = New System.Windows.Forms.ToolStripPanel() + Me.TopToolStripPanel = New System.Windows.Forms.ToolStripPanel() + Me.RightToolStripPanel = New System.Windows.Forms.ToolStripPanel() + Me.LeftToolStripPanel = New System.Windows.Forms.ToolStripPanel() + Me.ContentPanel = New System.Windows.Forms.ToolStripContentPanel() + Me.FileToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ExitToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.EditToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.SettingsToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.HelpToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.WikiStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator18 = New System.Windows.Forms.ToolStripSeparator() + Me.VersionsToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.CheckUpdatesToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator19 = New System.Windows.Forms.ToolStripSeparator() + Me.AboutToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.StatusStrip = New System.Windows.Forms.StatusStrip() + Me.tslStatus = New System.Windows.Forms.ToolStripStatusLabel() + Me.tsSpring = New System.Windows.Forms.ToolStripStatusLabel() + Me.tslLoading = New System.Windows.Forms.ToolStripStatusLabel() + Me.tspbLoading = New System.Windows.Forms.ToolStripProgressBar() + Me.tmrAni = New System.Windows.Forms.Timer(Me.components) + Me.MenuStrip = New System.Windows.Forms.MenuStrip() + Me.ToolsToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.CleanFoldersToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ConvertFileSourceToFolderSourceToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.CopyExistingFanartToBackdropsFolderToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator4 = New System.Windows.Forms.ToolStripSeparator() + Me.SetsManagerToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripMenuItem3 = New System.Windows.Forms.ToolStripSeparator() + Me.ClearAllCachesToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.RefreshAllMoviesToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.CleanDatabaseToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator5 = New System.Windows.Forms.ToolStripSeparator() + Me.ExportToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.MoviesToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.TVShowsToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.DonateToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ErrorToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.scMain = New System.Windows.Forms.SplitContainer() + Me.pnlFilterGenre = New System.Windows.Forms.Panel() + Me.clbFilterGenres = New System.Windows.Forms.CheckedListBox() + Me.lblGFilClose = New System.Windows.Forms.Label() + Me.Label4 = New System.Windows.Forms.Label() + Me.pnlFilterSource = New System.Windows.Forms.Panel() + Me.lblSFilClose = New System.Windows.Forms.Label() + Me.Label8 = New System.Windows.Forms.Label() + Me.clbFilterSource = New System.Windows.Forms.CheckedListBox() + Me.dgvMediaList = New System.Windows.Forms.DataGridView() + Me.mnuMediaList = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.cmnuTitle = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator3 = New System.Windows.Forms.ToolStripSeparator() + Me.cmnuRefresh = New System.Windows.Forms.ToolStripMenuItem() + Me.cmnuMark = New System.Windows.Forms.ToolStripMenuItem() + Me.cmnuLock = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripMenuItem1 = New System.Windows.Forms.ToolStripSeparator() + Me.cmnuEditMovie = New System.Windows.Forms.ToolStripMenuItem() + Me.cmnuMetaData = New System.Windows.Forms.ToolStripMenuItem() + Me.GenresToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.LblGenreStripMenuItem2 = New System.Windows.Forms.ToolStripMenuItem() + Me.GenreListToolStripComboBox = New System.Windows.Forms.ToolStripComboBox() + Me.AddGenreToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.SetGenreToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.RemoveGenreToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.cmnuSep = New System.Windows.Forms.ToolStripSeparator() + Me.ScrapingToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripMenuItem5 = New System.Windows.Forms.ToolStripMenuItem() + Me.SelectAllAutoToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.SelectNfoAutoToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.SelectPosterAutoToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.SelectFanartAutoToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.SelectExtraAutoToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.SelectTrailerAutoToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.SelectMetaAutoToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripMenuItem13 = New System.Windows.Forms.ToolStripMenuItem() + Me.SelectAllAskToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.SelectNfoAskToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.SelectPosterÃskToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.SelectFanartAskToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.SelectExtraAskToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripAskMenuItem19 = New System.Windows.Forms.ToolStripMenuItem() + Me.SelectMeEtaAskToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.cmnuRescrape = New System.Windows.Forms.ToolStripMenuItem() + Me.cmnuSearchNew = New System.Windows.Forms.ToolStripMenuItem() + Me.cmnuSep2 = New System.Windows.Forms.ToolStripSeparator() + Me.OpenContainingFolderToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator1 = New System.Windows.Forms.ToolStripSeparator() + Me.RemoveToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.RemoveFromDatabaseToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.DeleteMovieToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.scTV = New System.Windows.Forms.SplitContainer() + Me.dgvTVShows = New System.Windows.Forms.DataGridView() + Me.mnuShows = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.cmnuShowTitle = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripMenuItem2 = New System.Windows.Forms.ToolStripSeparator() + Me.cmnuReloadShow = New System.Windows.Forms.ToolStripMenuItem() + Me.cmnuMarkShow = New System.Windows.Forms.ToolStripMenuItem() + Me.cmnuLockShow = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator8 = New System.Windows.Forms.ToolStripSeparator() + Me.cmnuEditShow = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator7 = New System.Windows.Forms.ToolStripSeparator() + Me.cmnuRescrapeShow = New System.Windows.Forms.ToolStripMenuItem() + Me.cmnuChangeShow = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator11 = New System.Windows.Forms.ToolStripSeparator() + Me.cmnuShowOpenFolder = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator20 = New System.Windows.Forms.ToolStripSeparator() + Me.RemoveShowToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.cmnuRemoveTVShow = New System.Windows.Forms.ToolStripMenuItem() + Me.cmnuDeleteTVShow = New System.Windows.Forms.ToolStripMenuItem() + Me.SplitContainer2 = New System.Windows.Forms.SplitContainer() + Me.dgvTVSeasons = New System.Windows.Forms.DataGridView() + Me.mnuSeasons = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.cmnuSeasonTitle = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator17 = New System.Windows.Forms.ToolStripSeparator() + Me.cmnuReloadSeason = New System.Windows.Forms.ToolStripMenuItem() + Me.cmnuMarkSeason = New System.Windows.Forms.ToolStripMenuItem() + Me.cmnuLockSeason = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator16 = New System.Windows.Forms.ToolStripSeparator() + Me.cmnuSeasonChangeImages = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator14 = New System.Windows.Forms.ToolStripSeparator() + Me.cmnuSeasonRescrape = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator15 = New System.Windows.Forms.ToolStripSeparator() + Me.cmnuSeasonOpenFolder = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator27 = New System.Windows.Forms.ToolStripSeparator() + Me.cmnuSeasonRemove = New System.Windows.Forms.ToolStripMenuItem() + Me.cmnuRemoveSeasonFromDB = New System.Windows.Forms.ToolStripMenuItem() + Me.cmnuDeleteSeason = New System.Windows.Forms.ToolStripMenuItem() + Me.dgvTVEpisodes = New System.Windows.Forms.DataGridView() + Me.mnuEpisodes = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.cmnuEpTitle = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator6 = New System.Windows.Forms.ToolStripSeparator() + Me.cmnuReloadEp = New System.Windows.Forms.ToolStripMenuItem() + Me.cmnuMarkEp = New System.Windows.Forms.ToolStripMenuItem() + Me.cmnuLockEp = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator9 = New System.Windows.Forms.ToolStripSeparator() + Me.cmnuEditEpisode = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator10 = New System.Windows.Forms.ToolStripSeparator() + Me.cmnuRescrapeEp = New System.Windows.Forms.ToolStripMenuItem() + Me.cmnuChangeEp = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator12 = New System.Windows.Forms.ToolStripSeparator() + Me.cmnuEpOpenFolder = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator28 = New System.Windows.Forms.ToolStripSeparator() + Me.RemoveEpToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.cmnuRemoveTVEp = New System.Windows.Forms.ToolStripMenuItem() + Me.cmnuDeleteTVEp = New System.Windows.Forms.ToolStripMenuItem() + Me.pnlListTop = New System.Windows.Forms.Panel() + Me.btnMarkAll = New System.Windows.Forms.Button() + Me.pnlSearch = New System.Windows.Forms.Panel() + Me.cbSearch = New System.Windows.Forms.ComboBox() + Me.picSearch = New System.Windows.Forms.PictureBox() + Me.txtSearch = New System.Windows.Forms.TextBox() + Me.tabsMain = New System.Windows.Forms.TabControl() + Me.tabMovies = New System.Windows.Forms.TabPage() + Me.tabTV = New System.Windows.Forms.TabPage() + Me.pnlFilter = New System.Windows.Forms.Panel() + Me.GroupBox1 = New System.Windows.Forms.GroupBox() + Me.btnIMDBRating = New System.Windows.Forms.Button() + Me.btnSortTitle = New System.Windows.Forms.Button() + Me.btnSortDate = New System.Windows.Forms.Button() + Me.btnClearFilters = New System.Windows.Forms.Button() + Me.GroupBox3 = New System.Windows.Forms.GroupBox() + Me.chkFilterTolerance = New System.Windows.Forms.CheckBox() + Me.chkFilterMissing = New System.Windows.Forms.CheckBox() + Me.chkFilterDupe = New System.Windows.Forms.CheckBox() + Me.gbSpecific = New System.Windows.Forms.GroupBox() + Me.txtFilterSource = New System.Windows.Forms.TextBox() + Me.Label6 = New System.Windows.Forms.Label() + Me.cbFilterFileSource = New System.Windows.Forms.ComboBox() + Me.chkFilterLock = New System.Windows.Forms.CheckBox() + Me.GroupBox2 = New System.Windows.Forms.GroupBox() + Me.rbFilterAnd = New System.Windows.Forms.RadioButton() + Me.rbFilterOr = New System.Windows.Forms.RadioButton() + Me.chkFilterNew = New System.Windows.Forms.CheckBox() + Me.cbFilterYear = New System.Windows.Forms.ComboBox() + Me.chkFilterMark = New System.Windows.Forms.CheckBox() + Me.cbFilterYearMod = New System.Windows.Forms.ComboBox() + Me.Label5 = New System.Windows.Forms.Label() + Me.txtFilterGenre = New System.Windows.Forms.TextBox() + Me.Label2 = New System.Windows.Forms.Label() + Me.Label3 = New System.Windows.Forms.Label() + Me.btnFilterDown = New System.Windows.Forms.Button() + Me.btnFilterUp = New System.Windows.Forms.Button() + Me.lblFilter = New System.Windows.Forms.Label() + Me.pnlTop = New System.Windows.Forms.Panel() + Me.lblTitle = New System.Windows.Forms.Label() + Me.pnlInfoIcons = New System.Windows.Forms.Panel() + Me.lblOriginalTitle = New System.Windows.Forms.Label() + Me.lblStudio = New System.Windows.Forms.Label() + Me.pbVType = New System.Windows.Forms.PictureBox() + Me.pbStudio = New System.Windows.Forms.PictureBox() + Me.pbVideo = New System.Windows.Forms.PictureBox() + Me.pbAudio = New System.Windows.Forms.PictureBox() + Me.pbResolution = New System.Windows.Forms.PictureBox() + Me.pbChannels = New System.Windows.Forms.PictureBox() + Me.lblRuntime = New System.Windows.Forms.Label() + Me.lblTagline = New System.Windows.Forms.Label() + Me.pnlRating = New System.Windows.Forms.Panel() + Me.pbStar5 = New System.Windows.Forms.PictureBox() + Me.pbStar4 = New System.Windows.Forms.PictureBox() + Me.pbStar3 = New System.Windows.Forms.PictureBox() + Me.pbStar2 = New System.Windows.Forms.PictureBox() + Me.pbStar1 = New System.Windows.Forms.PictureBox() + Me.lblVotes = New System.Windows.Forms.Label() + Me.pnlCancel = New System.Windows.Forms.Panel() + Me.pbCanceling = New System.Windows.Forms.ProgressBar() + Me.lblCanceling = New System.Windows.Forms.Label() + Me.btnCancel = New System.Windows.Forms.Button() + Me.pnlAllSeason = New System.Windows.Forms.Panel() + Me.pbAllSeason = New System.Windows.Forms.PictureBox() + Me.pbAllSeasonCache = New System.Windows.Forms.PictureBox() + Me.pnlNoInfo = New System.Windows.Forms.Panel() + Me.Panel2 = New System.Windows.Forms.Panel() + Me.PictureBox1 = New System.Windows.Forms.PictureBox() + Me.Label1 = New System.Windows.Forms.Label() + Me.pnlInfoPanel = New System.Windows.Forms.Panel() + Me.txtCerts = New System.Windows.Forms.TextBox() + Me.lblCertsHeader = New System.Windows.Forms.Label() + Me.lblReleaseDate = New System.Windows.Forms.Label() + Me.lblReleaseDateHeader = New System.Windows.Forms.Label() + Me.btnMid = New System.Windows.Forms.Button() + Me.pbMILoading = New System.Windows.Forms.PictureBox() + Me.btnMetaDataRefresh = New System.Windows.Forms.Button() + Me.lblMetaDataHeader = New System.Windows.Forms.Label() + Me.txtMetaData = New System.Windows.Forms.TextBox() + Me.btnPlay = New System.Windows.Forms.Button() + Me.txtFilePath = New System.Windows.Forms.TextBox() + Me.lblFilePathHeader = New System.Windows.Forms.Label() + Me.txtIMDBID = New System.Windows.Forms.TextBox() + Me.lblIMDBHeader = New System.Windows.Forms.Label() + Me.lblDirector = New System.Windows.Forms.Label() + Me.lblDirectorHeader = New System.Windows.Forms.Label() + Me.pnlActors = New System.Windows.Forms.Panel() + Me.pbActLoad = New System.Windows.Forms.PictureBox() + Me.lstActors = New System.Windows.Forms.ListBox() + Me.pbActors = New System.Windows.Forms.PictureBox() + Me.lblActorsHeader = New System.Windows.Forms.Label() + Me.lblOutlineHeader = New System.Windows.Forms.Label() + Me.txtOutline = New System.Windows.Forms.TextBox() + Me.pnlTop250 = New System.Windows.Forms.Panel() + Me.lblTop250 = New System.Windows.Forms.Label() + Me.pbTop250 = New System.Windows.Forms.PictureBox() + Me.lblPlotHeader = New System.Windows.Forms.Label() + Me.txtPlot = New System.Windows.Forms.TextBox() + Me.btnDown = New System.Windows.Forms.Button() + Me.btnUp = New System.Windows.Forms.Button() + Me.lblInfoPanelHeader = New System.Windows.Forms.Label() + Me.pnlPoster = New System.Windows.Forms.Panel() + Me.pbPoster = New System.Windows.Forms.PictureBox() + Me.pbPosterCache = New System.Windows.Forms.PictureBox() + Me.pnlMPAA = New System.Windows.Forms.Panel() + Me.pbMPAA = New System.Windows.Forms.PictureBox() + Me.pbFanartCache = New System.Windows.Forms.PictureBox() + Me.pbFanart = New System.Windows.Forms.PictureBox() + Me.tsMain = New System.Windows.Forms.ToolStrip() + Me.tsbAutoPilot = New System.Windows.Forms.ToolStripDropDownButton() + Me.FullToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.FullAutoToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuAllAutoAll = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuAllAutoNfo = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuAllAutoPoster = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuAllAutoFanart = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuAllAutoExtra = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuAllAutoTrailer = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuAllAutoMI = New System.Windows.Forms.ToolStripMenuItem() + Me.FullAskToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuAllAskAll = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuAllAskNfo = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuAllAskPoster = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuAllAskFanart = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuAllAskExtra = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuAllAskTrailer = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuAllAskMI = New System.Windows.Forms.ToolStripMenuItem() + Me.FullSkipToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuAllSkipAll = New System.Windows.Forms.ToolStripMenuItem() + Me.UpdateOnlyToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.UpdateAutoToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuMissAutoAll = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuMissAutoNfo = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuMissAutoPoster = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuMissAutoFanart = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuMissAutoExtra = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuMissAutoTrailer = New System.Windows.Forms.ToolStripMenuItem() + Me.UpdateAskToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuMissAskAll = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuMissAskNfo = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuMissAskPoster = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuMissAskFanart = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuMissAskExtra = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuMissAskTrailer = New System.Windows.Forms.ToolStripMenuItem() + Me.NewMoviesToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.AutomaticForceBestMatchToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuNewAutoAll = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuNewAutoNfo = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuNewAutoPoster = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuNewAutoFanart = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuNewAutoExtra = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuNewAutoTrailer = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuNewAutoMI = New System.Windows.Forms.ToolStripMenuItem() + Me.AskRequireInputToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuNewAskAll = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuNewAskNfo = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuNewAskPoster = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuNewAskFanart = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuNewAskExtra = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuNewAskTrailer = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuNewAskMI = New System.Windows.Forms.ToolStripMenuItem() + Me.MarkedMoviesToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.AutomaticForceBestMatchToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuMarkAutoAll = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuMarkAutoNfo = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuMarkAutoPoster = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuMarkAutoFanart = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuMarkAutoExtra = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuMarkAutoTrailer = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuMarkAutoMI = New System.Windows.Forms.ToolStripMenuItem() + Me.AskRequireInputIfNoExactMatchToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuMarkAskAll = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuMarkAskNfo = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuMarkAskPoster = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuMarkAskFanart = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuMarkAskExtra = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuMarkAskTrailer = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuMarkAskMI = New System.Windows.Forms.ToolStripMenuItem() + Me.CurrentFilterToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.AutomaticForceBestMatchToolStripMenuItem2 = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuFilterAutoAll = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuFilterAutoNfo = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuFilterAutoPoster = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuFilterAutoFanart = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuFilterAutoExtra = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuFilterAutoTrailer = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuFilterAutoMI = New System.Windows.Forms.ToolStripMenuItem() + Me.AskRequireInputIfNoExactMatchToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuFilterAskAll = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuFilterAskNfo = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuFilterAskPoster = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuFilterAskFanart = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuFilterAskExtra = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuFilterAskTrailer = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuFilterAskMI = New System.Windows.Forms.ToolStripMenuItem() + Me.CustomUpdaterToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.tsbRefreshMedia = New System.Windows.Forms.ToolStripSplitButton() + Me.mnuMoviesUpdate = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTVShowUpdate = New System.Windows.Forms.ToolStripMenuItem() + Me.tsbMediaCenters = New System.Windows.Forms.ToolStripSplitButton() + Me.ilColumnIcons = New System.Windows.Forms.ImageList(Me.components) + Me.tmrWait = New System.Windows.Forms.Timer(Me.components) + Me.tmrLoad = New System.Windows.Forms.Timer(Me.components) + Me.tmrSearchWait = New System.Windows.Forms.Timer(Me.components) + Me.tmrSearch = New System.Windows.Forms.Timer(Me.components) + Me.tmrFilterAni = New System.Windows.Forms.Timer(Me.components) + Me.ToolTips = New System.Windows.Forms.ToolTip(Me.components) + Me.tmrWaitShow = New System.Windows.Forms.Timer(Me.components) + Me.tmrLoadShow = New System.Windows.Forms.Timer(Me.components) + Me.tmrWaitSeason = New System.Windows.Forms.Timer(Me.components) + Me.tmrLoadSeason = New System.Windows.Forms.Timer(Me.components) + Me.tmrWaitEp = New System.Windows.Forms.Timer(Me.components) + Me.tmrLoadEp = New System.Windows.Forms.Timer(Me.components) + Me.cmnuTrayIcon = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.cmnuTrayIconTitle = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator21 = New System.Windows.Forms.ToolStripSeparator() + Me.cmnuTrayIconUpdateMedia = New System.Windows.Forms.ToolStripMenuItem() + Me.cmnuTrayIconUpdateMovies = New System.Windows.Forms.ToolStripMenuItem() + Me.cmnuTrayIconUpdateTV = New System.Windows.Forms.ToolStripMenuItem() + Me.cmnuTrayIconScrapeMedia = New System.Windows.Forms.ToolStripMenuItem() + Me.TrayFullToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.TrayFullAutoToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayAllAutoAll = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayAllAutoNfo = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayAllAutoPoster = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayAllAutoFanart = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayAllAutoExtra = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayAllAutoTrailer = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayAllAutoMI = New System.Windows.Forms.ToolStripMenuItem() + Me.TrayFullAskToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayAllAskAll = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayAllAskNfo = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayAllAskPoster = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayAllAskFanart = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayAllAskExtra = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayAllAskTrailer = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayAllAskMI = New System.Windows.Forms.ToolStripMenuItem() + Me.TrayUpdateOnlyToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.TrayUpdateAutoToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayMissAutoAll = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayMissAutoNfo = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayMissAutoPoster = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayMissAutoFanart = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayMissAutoExtra = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayMissAutoTrailer = New System.Windows.Forms.ToolStripMenuItem() + Me.TrayUpdateAskToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayMissAskAll = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayMissAskNfo = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayMissAskPoster = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayMissAskFanart = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayMissAskExtra = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayMissAskTrailer = New System.Windows.Forms.ToolStripMenuItem() + Me.TrayNewMoviesToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.TrayAutomaticForceBestMatchToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayNewAutoAll = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayNewAutoNfo = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayNewAutoPoster = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayNewAutoFanart = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayNewAutoExtra = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayNewAutoTrailer = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayNewAutoMI = New System.Windows.Forms.ToolStripMenuItem() + Me.TrayAskRequireInputToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayNewAskAll = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayNewAskNfo = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayNewAskPoster = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayNewAskFanart = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayNewAskExtra = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayNewAskTrailer = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayNewAskMI = New System.Windows.Forms.ToolStripMenuItem() + Me.TrayMarkedMoviesToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.TrayAutomaticForceBestMatchToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayMarkAutoAll = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayMarkAutoNfo = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayMarkAutoPoster = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayMarkAutoFanart = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayMarkAutoExtra = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayMarkAutoTrailer = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayMarkAutoMI = New System.Windows.Forms.ToolStripMenuItem() + Me.TrayAskRequireInputIfNoExactMatchToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayMarkAskAll = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayMarkAskNfo = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayMarkAskPoster = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayMarkAskFanart = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayMarkAskExtra = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayMarkAskTrailer = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayMarkAskMI = New System.Windows.Forms.ToolStripMenuItem() + Me.TrayCurrentFilterToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.TrayAutomaticForceBestMatchToolStripMenuItem2 = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayFilterAutoAll = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayFilterAutoNfo = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayFilterAutoPoster = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayFilterAutoFanart = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayFilterAutoExtra = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayFilterAutoTrailer = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayFilterAutoMI = New System.Windows.Forms.ToolStripMenuItem() + Me.TrayAskRequireInputIfNoExactMatchToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayFilterAskAll = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayFilterAskNfo = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayFilterAskPoster = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayFilterAskFanart = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayFilterAskExtra = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayFilterAskTrailer = New System.Windows.Forms.ToolStripMenuItem() + Me.mnuTrayFilterAskMI = New System.Windows.Forms.ToolStripMenuItem() + Me.TrayCustomUpdaterToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.cmnuTrayIconMediaCenters = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator23 = New System.Windows.Forms.ToolStripSeparator() + Me.cmnuTrayIconTools = New System.Windows.Forms.ToolStripMenuItem() + Me.CleanFilesToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.SortFilesIntoFoldersToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.CopyExistingFanartToBackdropsFolderToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator24 = New System.Windows.Forms.ToolStripSeparator() + Me.SetsManagerToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator25 = New System.Windows.Forms.ToolStripSeparator() + Me.ClearAllCachesToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem() + Me.ReloadAllMoviesToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.CleanDatabaseToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator26 = New System.Windows.Forms.ToolStripSeparator() + Me.ToolStripSeparator22 = New System.Windows.Forms.ToolStripSeparator() + Me.cmnuTrayIconSettings = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator13 = New System.Windows.Forms.ToolStripSeparator() + Me.cmnuTrayIconExit = New System.Windows.Forms.ToolStripMenuItem() + Me.Panel3 = New System.Windows.Forms.Panel() + Me.PictureBox2 = New System.Windows.Forms.PictureBox() + Me.Label7 = New System.Windows.Forms.Label() + Me.ProgressBar1 = New System.Windows.Forms.ProgressBar() + Me.pnlLoadingSettings = New System.Windows.Forms.Panel() + Me.tmrAppExit = New System.Windows.Forms.Timer(Me.components) + Me.tmrKeyBuffer = New System.Windows.Forms.Timer(Me.components) + Me.StatusStrip.SuspendLayout() + Me.MenuStrip.SuspendLayout() + Me.scMain.Panel1.SuspendLayout() + Me.scMain.Panel2.SuspendLayout() + Me.scMain.SuspendLayout() + Me.pnlFilterGenre.SuspendLayout() + Me.pnlFilterSource.SuspendLayout() + CType(Me.dgvMediaList, System.ComponentModel.ISupportInitialize).BeginInit() + Me.mnuMediaList.SuspendLayout() + Me.scTV.Panel1.SuspendLayout() + Me.scTV.Panel2.SuspendLayout() + Me.scTV.SuspendLayout() + CType(Me.dgvTVShows, System.ComponentModel.ISupportInitialize).BeginInit() + Me.mnuShows.SuspendLayout() + Me.SplitContainer2.Panel1.SuspendLayout() + Me.SplitContainer2.Panel2.SuspendLayout() + Me.SplitContainer2.SuspendLayout() + CType(Me.dgvTVSeasons, System.ComponentModel.ISupportInitialize).BeginInit() + Me.mnuSeasons.SuspendLayout() + CType(Me.dgvTVEpisodes, System.ComponentModel.ISupportInitialize).BeginInit() + Me.mnuEpisodes.SuspendLayout() + Me.pnlListTop.SuspendLayout() + Me.pnlSearch.SuspendLayout() + CType(Me.picSearch, System.ComponentModel.ISupportInitialize).BeginInit() + Me.tabsMain.SuspendLayout() + Me.pnlFilter.SuspendLayout() + Me.GroupBox1.SuspendLayout() + Me.GroupBox3.SuspendLayout() + Me.gbSpecific.SuspendLayout() + Me.GroupBox2.SuspendLayout() + Me.pnlTop.SuspendLayout() + Me.pnlInfoIcons.SuspendLayout() + CType(Me.pbVType, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.pbStudio, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.pbVideo, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.pbAudio, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.pbResolution, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.pbChannels, System.ComponentModel.ISupportInitialize).BeginInit() + Me.pnlRating.SuspendLayout() + CType(Me.pbStar5, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.pbStar4, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.pbStar3, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.pbStar2, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.pbStar1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.pnlCancel.SuspendLayout() + Me.pnlAllSeason.SuspendLayout() + CType(Me.pbAllSeason, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.pbAllSeasonCache, System.ComponentModel.ISupportInitialize).BeginInit() + Me.pnlNoInfo.SuspendLayout() + Me.Panel2.SuspendLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.pnlInfoPanel.SuspendLayout() + CType(Me.pbMILoading, System.ComponentModel.ISupportInitialize).BeginInit() + Me.pnlActors.SuspendLayout() + CType(Me.pbActLoad, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.pbActors, System.ComponentModel.ISupportInitialize).BeginInit() + Me.pnlTop250.SuspendLayout() + CType(Me.pbTop250, System.ComponentModel.ISupportInitialize).BeginInit() + Me.pnlPoster.SuspendLayout() + CType(Me.pbPoster, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.pbPosterCache, System.ComponentModel.ISupportInitialize).BeginInit() + Me.pnlMPAA.SuspendLayout() + CType(Me.pbMPAA, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.pbFanartCache, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.pbFanart, System.ComponentModel.ISupportInitialize).BeginInit() + Me.tsMain.SuspendLayout() + Me.cmnuTrayIcon.SuspendLayout() + Me.Panel3.SuspendLayout() + CType(Me.PictureBox2, System.ComponentModel.ISupportInitialize).BeginInit() + Me.pnlLoadingSettings.SuspendLayout() + Me.SuspendLayout() + ' + 'BottomToolStripPanel + ' + Me.BottomToolStripPanel.Location = New System.Drawing.Point(0, 0) + Me.BottomToolStripPanel.Name = "BottomToolStripPanel" + Me.BottomToolStripPanel.Orientation = System.Windows.Forms.Orientation.Horizontal + Me.BottomToolStripPanel.RowMargin = New System.Windows.Forms.Padding(3, 0, 0, 0) + Me.BottomToolStripPanel.Size = New System.Drawing.Size(0, 0) + ' + 'TopToolStripPanel + ' + Me.TopToolStripPanel.Location = New System.Drawing.Point(0, 0) + Me.TopToolStripPanel.Name = "TopToolStripPanel" + Me.TopToolStripPanel.Orientation = System.Windows.Forms.Orientation.Horizontal + Me.TopToolStripPanel.RowMargin = New System.Windows.Forms.Padding(3, 0, 0, 0) + Me.TopToolStripPanel.Size = New System.Drawing.Size(0, 0) + ' + 'RightToolStripPanel + ' + Me.RightToolStripPanel.Location = New System.Drawing.Point(0, 0) + Me.RightToolStripPanel.Name = "RightToolStripPanel" + Me.RightToolStripPanel.Orientation = System.Windows.Forms.Orientation.Horizontal + Me.RightToolStripPanel.RowMargin = New System.Windows.Forms.Padding(3, 0, 0, 0) + Me.RightToolStripPanel.Size = New System.Drawing.Size(0, 0) + ' + 'LeftToolStripPanel + ' + Me.LeftToolStripPanel.Location = New System.Drawing.Point(0, 0) + Me.LeftToolStripPanel.Name = "LeftToolStripPanel" + Me.LeftToolStripPanel.Orientation = System.Windows.Forms.Orientation.Horizontal + Me.LeftToolStripPanel.RowMargin = New System.Windows.Forms.Padding(3, 0, 0, 0) + Me.LeftToolStripPanel.Size = New System.Drawing.Size(0, 0) + ' + 'ContentPanel + ' + Me.ContentPanel.Size = New System.Drawing.Size(150, 175) + ' + 'FileToolStripMenuItem + ' + Me.FileToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ExitToolStripMenuItem}) + Me.FileToolStripMenuItem.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.FileToolStripMenuItem.Name = "FileToolStripMenuItem" + Me.FileToolStripMenuItem.Size = New System.Drawing.Size(37, 20) + Me.FileToolStripMenuItem.Text = "&File" + ' + 'ExitToolStripMenuItem + ' + Me.ExitToolStripMenuItem.Image = CType(resources.GetObject("ExitToolStripMenuItem.Image"), System.Drawing.Image) + Me.ExitToolStripMenuItem.Name = "ExitToolStripMenuItem" + Me.ExitToolStripMenuItem.Size = New System.Drawing.Size(152, 22) + Me.ExitToolStripMenuItem.Text = "E&xit" + ' + 'EditToolStripMenuItem + ' + Me.EditToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.SettingsToolStripMenuItem}) + Me.EditToolStripMenuItem.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.EditToolStripMenuItem.Name = "EditToolStripMenuItem" + Me.EditToolStripMenuItem.Size = New System.Drawing.Size(39, 20) + Me.EditToolStripMenuItem.Text = "&Edit" + ' + 'SettingsToolStripMenuItem + ' + Me.SettingsToolStripMenuItem.Image = CType(resources.GetObject("SettingsToolStripMenuItem.Image"), System.Drawing.Image) + Me.SettingsToolStripMenuItem.Name = "SettingsToolStripMenuItem" + Me.SettingsToolStripMenuItem.Size = New System.Drawing.Size(125, 22) + Me.SettingsToolStripMenuItem.Text = "&Settings..." + ' + 'HelpToolStripMenuItem + ' + Me.HelpToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.WikiStripMenuItem, Me.ToolStripSeparator18, Me.VersionsToolStripMenuItem, Me.CheckUpdatesToolStripMenuItem, Me.ToolStripSeparator19, Me.AboutToolStripMenuItem}) + Me.HelpToolStripMenuItem.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.HelpToolStripMenuItem.Name = "HelpToolStripMenuItem" + Me.HelpToolStripMenuItem.Size = New System.Drawing.Size(43, 20) + Me.HelpToolStripMenuItem.Text = "&Help" + ' + 'WikiStripMenuItem + ' + Me.WikiStripMenuItem.Image = CType(resources.GetObject("WikiStripMenuItem.Image"), System.Drawing.Image) + Me.WikiStripMenuItem.Name = "WikiStripMenuItem" + Me.WikiStripMenuItem.Size = New System.Drawing.Size(185, 22) + Me.WikiStripMenuItem.Text = "EmberMM.com &Wiki..." + ' + 'ToolStripSeparator18 + ' + Me.ToolStripSeparator18.Name = "ToolStripSeparator18" + Me.ToolStripSeparator18.Size = New System.Drawing.Size(182, 6) + ' + 'VersionsToolStripMenuItem + ' + Me.VersionsToolStripMenuItem.Image = CType(resources.GetObject("VersionsToolStripMenuItem.Image"), System.Drawing.Image) + Me.VersionsToolStripMenuItem.Name = "VersionsToolStripMenuItem" + Me.VersionsToolStripMenuItem.Size = New System.Drawing.Size(185, 22) + Me.VersionsToolStripMenuItem.Text = "&Versions..." + ' + 'CheckUpdatesToolStripMenuItem + ' + Me.CheckUpdatesToolStripMenuItem.Enabled = False + Me.CheckUpdatesToolStripMenuItem.Image = CType(resources.GetObject("CheckUpdatesToolStripMenuItem.Image"), System.Drawing.Image) + Me.CheckUpdatesToolStripMenuItem.Name = "CheckUpdatesToolStripMenuItem" + Me.CheckUpdatesToolStripMenuItem.Size = New System.Drawing.Size(185, 22) + Me.CheckUpdatesToolStripMenuItem.Text = "Check For Updates" + Me.CheckUpdatesToolStripMenuItem.Visible = False + ' + 'ToolStripSeparator19 + ' + Me.ToolStripSeparator19.Name = "ToolStripSeparator19" + Me.ToolStripSeparator19.Size = New System.Drawing.Size(182, 6) + ' + 'AboutToolStripMenuItem + ' + Me.AboutToolStripMenuItem.Image = CType(resources.GetObject("AboutToolStripMenuItem.Image"), System.Drawing.Image) + Me.AboutToolStripMenuItem.Name = "AboutToolStripMenuItem" + Me.AboutToolStripMenuItem.Size = New System.Drawing.Size(185, 22) + Me.AboutToolStripMenuItem.Text = "&About..." + ' + 'StatusStrip + ' + Me.StatusStrip.GripStyle = System.Windows.Forms.ToolStripGripStyle.Visible + Me.StatusStrip.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.tslStatus, Me.tsSpring, Me.tslLoading, Me.tspbLoading}) + Me.StatusStrip.Location = New System.Drawing.Point(0, 806) + Me.StatusStrip.Name = "StatusStrip" + Me.StatusStrip.Size = New System.Drawing.Size(1465, 22) + Me.StatusStrip.TabIndex = 6 + Me.StatusStrip.Text = "StatusStrip" + ' + 'tslStatus + ' + Me.tslStatus.Name = "tslStatus" + Me.tslStatus.Size = New System.Drawing.Size(0, 17) + Me.tslStatus.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + ' + 'tsSpring + ' + Me.tsSpring.Name = "tsSpring" + Me.tsSpring.Size = New System.Drawing.Size(1450, 17) + Me.tsSpring.Spring = True + Me.tsSpring.Text = " " + ' + 'tslLoading + ' + Me.tslLoading.AutoSize = False + Me.tslLoading.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.tslLoading.Name = "tslLoading" + Me.tslLoading.Size = New System.Drawing.Size(424, 17) + Me.tslLoading.Text = "Loading Media:" + Me.tslLoading.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.tslLoading.Visible = False + ' + 'tspbLoading + ' + Me.tspbLoading.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right + Me.tspbLoading.AutoSize = False + Me.tspbLoading.MarqueeAnimationSpeed = 25 + Me.tspbLoading.Name = "tspbLoading" + Me.tspbLoading.Size = New System.Drawing.Size(150, 16) + Me.tspbLoading.Style = System.Windows.Forms.ProgressBarStyle.Continuous + Me.tspbLoading.Visible = False + ' + 'tmrAni + ' + Me.tmrAni.Interval = 1 + ' + 'MenuStrip + ' + Me.MenuStrip.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.FileToolStripMenuItem, Me.EditToolStripMenuItem, Me.ToolsToolStripMenuItem, Me.HelpToolStripMenuItem, Me.DonateToolStripMenuItem, Me.ErrorToolStripMenuItem}) + Me.MenuStrip.Location = New System.Drawing.Point(0, 0) + Me.MenuStrip.Name = "MenuStrip" + Me.MenuStrip.Size = New System.Drawing.Size(1465, 24) + Me.MenuStrip.TabIndex = 0 + Me.MenuStrip.Text = "MenuStrip" + ' + 'ToolsToolStripMenuItem + ' + Me.ToolsToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.CleanFoldersToolStripMenuItem, Me.ConvertFileSourceToFolderSourceToolStripMenuItem, Me.CopyExistingFanartToBackdropsFolderToolStripMenuItem, Me.ToolStripSeparator4, Me.SetsManagerToolStripMenuItem, Me.ToolStripMenuItem3, Me.ClearAllCachesToolStripMenuItem, Me.RefreshAllMoviesToolStripMenuItem, Me.CleanDatabaseToolStripMenuItem, Me.ToolStripSeparator5, Me.ExportToolStripMenuItem}) + Me.ToolsToolStripMenuItem.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.ToolsToolStripMenuItem.Name = "ToolsToolStripMenuItem" + Me.ToolsToolStripMenuItem.Size = New System.Drawing.Size(46, 20) + Me.ToolsToolStripMenuItem.Text = "&Tools" + ' + 'CleanFoldersToolStripMenuItem + ' + Me.CleanFoldersToolStripMenuItem.Image = CType(resources.GetObject("CleanFoldersToolStripMenuItem.Image"), System.Drawing.Image) + Me.CleanFoldersToolStripMenuItem.Name = "CleanFoldersToolStripMenuItem" + Me.CleanFoldersToolStripMenuItem.ShortcutKeys = CType(((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.Alt) _ + Or System.Windows.Forms.Keys.C), System.Windows.Forms.Keys) + Me.CleanFoldersToolStripMenuItem.Size = New System.Drawing.Size(352, 22) + Me.CleanFoldersToolStripMenuItem.Text = "&Clean Files" + ' + 'ConvertFileSourceToFolderSourceToolStripMenuItem + ' + Me.ConvertFileSourceToFolderSourceToolStripMenuItem.Image = CType(resources.GetObject("ConvertFileSourceToFolderSourceToolStripMenuItem.Image"), System.Drawing.Image) + Me.ConvertFileSourceToFolderSourceToolStripMenuItem.Name = "ConvertFileSourceToFolderSourceToolStripMenuItem" + Me.ConvertFileSourceToFolderSourceToolStripMenuItem.ShortcutKeys = CType(((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.Alt) _ + Or System.Windows.Forms.Keys.S), System.Windows.Forms.Keys) + Me.ConvertFileSourceToFolderSourceToolStripMenuItem.Size = New System.Drawing.Size(352, 22) + Me.ConvertFileSourceToFolderSourceToolStripMenuItem.Text = "&Sort Files Into Folders" + ' + 'CopyExistingFanartToBackdropsFolderToolStripMenuItem + ' + Me.CopyExistingFanartToBackdropsFolderToolStripMenuItem.Image = CType(resources.GetObject("CopyExistingFanartToBackdropsFolderToolStripMenuItem.Image"), System.Drawing.Image) + Me.CopyExistingFanartToBackdropsFolderToolStripMenuItem.Name = "CopyExistingFanartToBackdropsFolderToolStripMenuItem" + Me.CopyExistingFanartToBackdropsFolderToolStripMenuItem.ShortcutKeys = CType(((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.Alt) _ + Or System.Windows.Forms.Keys.B), System.Windows.Forms.Keys) + Me.CopyExistingFanartToBackdropsFolderToolStripMenuItem.Size = New System.Drawing.Size(352, 22) + Me.CopyExistingFanartToBackdropsFolderToolStripMenuItem.Text = "Copy Existing Fanart To &Backdrops Folder" + ' + 'ToolStripSeparator4 + ' + Me.ToolStripSeparator4.Name = "ToolStripSeparator4" + Me.ToolStripSeparator4.Size = New System.Drawing.Size(349, 6) + ' + 'SetsManagerToolStripMenuItem + ' + Me.SetsManagerToolStripMenuItem.Image = CType(resources.GetObject("SetsManagerToolStripMenuItem.Image"), System.Drawing.Image) + Me.SetsManagerToolStripMenuItem.Name = "SetsManagerToolStripMenuItem" + Me.SetsManagerToolStripMenuItem.ShortcutKeys = CType(((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.Alt) _ + Or System.Windows.Forms.Keys.M), System.Windows.Forms.Keys) + Me.SetsManagerToolStripMenuItem.Size = New System.Drawing.Size(352, 22) + Me.SetsManagerToolStripMenuItem.Text = "Sets &Manager" + ' + 'ToolStripMenuItem3 + ' + Me.ToolStripMenuItem3.Name = "ToolStripMenuItem3" + Me.ToolStripMenuItem3.Size = New System.Drawing.Size(349, 6) + ' + 'ClearAllCachesToolStripMenuItem + ' + Me.ClearAllCachesToolStripMenuItem.Image = CType(resources.GetObject("ClearAllCachesToolStripMenuItem.Image"), System.Drawing.Image) + Me.ClearAllCachesToolStripMenuItem.Name = "ClearAllCachesToolStripMenuItem" + Me.ClearAllCachesToolStripMenuItem.ShortcutKeys = CType(((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.Alt) _ + Or System.Windows.Forms.Keys.A), System.Windows.Forms.Keys) + Me.ClearAllCachesToolStripMenuItem.Size = New System.Drawing.Size(352, 22) + Me.ClearAllCachesToolStripMenuItem.Text = "Clear &All Caches" + ' + 'RefreshAllMoviesToolStripMenuItem + ' + Me.RefreshAllMoviesToolStripMenuItem.Image = CType(resources.GetObject("RefreshAllMoviesToolStripMenuItem.Image"), System.Drawing.Image) + Me.RefreshAllMoviesToolStripMenuItem.Name = "RefreshAllMoviesToolStripMenuItem" + Me.RefreshAllMoviesToolStripMenuItem.ShortcutKeys = CType(((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.Alt) _ + Or System.Windows.Forms.Keys.L), System.Windows.Forms.Keys) + Me.RefreshAllMoviesToolStripMenuItem.Size = New System.Drawing.Size(352, 22) + Me.RefreshAllMoviesToolStripMenuItem.Text = "Re&load All Movies" + ' + 'CleanDatabaseToolStripMenuItem + ' + Me.CleanDatabaseToolStripMenuItem.Image = CType(resources.GetObject("CleanDatabaseToolStripMenuItem.Image"), System.Drawing.Image) + Me.CleanDatabaseToolStripMenuItem.Name = "CleanDatabaseToolStripMenuItem" + Me.CleanDatabaseToolStripMenuItem.ShortcutKeys = CType(((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.Alt) _ + Or System.Windows.Forms.Keys.D), System.Windows.Forms.Keys) + Me.CleanDatabaseToolStripMenuItem.Size = New System.Drawing.Size(352, 22) + Me.CleanDatabaseToolStripMenuItem.Text = "Clean Database" + ' + 'ToolStripSeparator5 + ' + Me.ToolStripSeparator5.Name = "ToolStripSeparator5" + Me.ToolStripSeparator5.Size = New System.Drawing.Size(349, 6) + ' + 'ExportToolStripMenuItem + ' + Me.ExportToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.MoviesToolStripMenuItem, Me.TVShowsToolStripMenuItem}) + Me.ExportToolStripMenuItem.Image = Global.Ember_Media_Manager.My.Resources.Resources.modules + Me.ExportToolStripMenuItem.Name = "ExportToolStripMenuItem" + Me.ExportToolStripMenuItem.Size = New System.Drawing.Size(352, 22) + Me.ExportToolStripMenuItem.Text = "Export" + ' + 'MoviesToolStripMenuItem + ' + Me.MoviesToolStripMenuItem.Name = "MoviesToolStripMenuItem" + Me.MoviesToolStripMenuItem.Size = New System.Drawing.Size(123, 22) + Me.MoviesToolStripMenuItem.Text = "Movies" + ' + 'TVShowsToolStripMenuItem + ' + Me.TVShowsToolStripMenuItem.Name = "TVShowsToolStripMenuItem" + Me.TVShowsToolStripMenuItem.Size = New System.Drawing.Size(123, 22) + Me.TVShowsToolStripMenuItem.Text = "TV Shows" + ' + 'DonateToolStripMenuItem + ' + Me.DonateToolStripMenuItem.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.DonateToolStripMenuItem.Image = CType(resources.GetObject("DonateToolStripMenuItem.Image"), System.Drawing.Image) + Me.DonateToolStripMenuItem.Name = "DonateToolStripMenuItem" + Me.DonateToolStripMenuItem.Size = New System.Drawing.Size(73, 20) + Me.DonateToolStripMenuItem.Text = "Donate" + ' + 'ErrorToolStripMenuItem + ' + Me.ErrorToolStripMenuItem.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right + Me.ErrorToolStripMenuItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ErrorToolStripMenuItem.Image = CType(resources.GetObject("ErrorToolStripMenuItem.Image"), System.Drawing.Image) + Me.ErrorToolStripMenuItem.Name = "ErrorToolStripMenuItem" + Me.ErrorToolStripMenuItem.Size = New System.Drawing.Size(28, 20) + Me.ErrorToolStripMenuItem.ToolTipText = "An Error Has Occurred" + Me.ErrorToolStripMenuItem.Visible = False + ' + 'scMain + ' + Me.scMain.Dock = System.Windows.Forms.DockStyle.Fill + Me.scMain.FixedPanel = System.Windows.Forms.FixedPanel.Panel1 + Me.scMain.Location = New System.Drawing.Point(0, 24) + Me.scMain.Name = "scMain" + ' + 'scMain.Panel1 + ' + Me.scMain.Panel1.BackColor = System.Drawing.Color.Gainsboro + Me.scMain.Panel1.Controls.Add(Me.pnlFilterGenre) + Me.scMain.Panel1.Controls.Add(Me.pnlFilterSource) + Me.scMain.Panel1.Controls.Add(Me.dgvMediaList) + Me.scMain.Panel1.Controls.Add(Me.scTV) + Me.scMain.Panel1.Controls.Add(Me.pnlListTop) + Me.scMain.Panel1.Controls.Add(Me.pnlFilter) + Me.scMain.Panel1.Margin = New System.Windows.Forms.Padding(3) + Me.scMain.Panel1MinSize = 165 + ' + 'scMain.Panel2 + ' + Me.scMain.Panel2.BackColor = System.Drawing.Color.DimGray + Me.scMain.Panel2.Controls.Add(Me.pnlTop) + Me.scMain.Panel2.Controls.Add(Me.pnlCancel) + Me.scMain.Panel2.Controls.Add(Me.pnlAllSeason) + Me.scMain.Panel2.Controls.Add(Me.pbAllSeasonCache) + Me.scMain.Panel2.Controls.Add(Me.pnlNoInfo) + Me.scMain.Panel2.Controls.Add(Me.pnlInfoPanel) + Me.scMain.Panel2.Controls.Add(Me.pnlPoster) + Me.scMain.Panel2.Controls.Add(Me.pbPosterCache) + Me.scMain.Panel2.Controls.Add(Me.pnlMPAA) + Me.scMain.Panel2.Controls.Add(Me.pbFanartCache) + Me.scMain.Panel2.Controls.Add(Me.pbFanart) + Me.scMain.Panel2.Controls.Add(Me.tsMain) + Me.scMain.Panel2.Margin = New System.Windows.Forms.Padding(3) + Me.scMain.Size = New System.Drawing.Size(1465, 782) + Me.scMain.SplitterDistance = 364 + Me.scMain.TabIndex = 7 + Me.scMain.TabStop = False + ' + 'pnlFilterGenre + ' + Me.pnlFilterGenre.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.pnlFilterGenre.Controls.Add(Me.clbFilterGenres) + Me.pnlFilterGenre.Controls.Add(Me.lblGFilClose) + Me.pnlFilterGenre.Controls.Add(Me.Label4) + Me.pnlFilterGenre.Location = New System.Drawing.Point(186, 444) + Me.pnlFilterGenre.Name = "pnlFilterGenre" + Me.pnlFilterGenre.Size = New System.Drawing.Size(166, 146) + Me.pnlFilterGenre.TabIndex = 15 + Me.pnlFilterGenre.Visible = False + ' + 'clbFilterGenres + ' + Me.clbFilterGenres.CheckOnClick = True + Me.clbFilterGenres.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.clbFilterGenres.FormattingEnabled = True + Me.clbFilterGenres.Location = New System.Drawing.Point(1, 20) + Me.clbFilterGenres.Name = "clbFilterGenres" + Me.clbFilterGenres.Size = New System.Drawing.Size(162, 123) + Me.clbFilterGenres.TabIndex = 8 + Me.clbFilterGenres.TabStop = False + ' + 'lblGFilClose + ' + Me.lblGFilClose.AutoSize = True + Me.lblGFilClose.BackColor = System.Drawing.Color.DimGray + Me.lblGFilClose.Cursor = System.Windows.Forms.Cursors.Hand + Me.lblGFilClose.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Underline, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblGFilClose.ForeColor = System.Drawing.Color.White + Me.lblGFilClose.Location = New System.Drawing.Point(130, 2) + Me.lblGFilClose.Name = "lblGFilClose" + Me.lblGFilClose.Size = New System.Drawing.Size(35, 13) + Me.lblGFilClose.TabIndex = 24 + Me.lblGFilClose.Text = "Close" + ' + 'Label4 + ' + Me.Label4.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Label4.BackColor = System.Drawing.SystemColors.ControlDarkDark + Me.Label4.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.Label4.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Label4.ForeColor = System.Drawing.SystemColors.HighlightText + Me.Label4.Location = New System.Drawing.Point(1, 1) + Me.Label4.Name = "Label4" + Me.Label4.Size = New System.Drawing.Size(162, 17) + Me.Label4.TabIndex = 23 + Me.Label4.Text = "Genres" + Me.Label4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + ' + 'pnlFilterSource + ' + Me.pnlFilterSource.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.pnlFilterSource.Controls.Add(Me.lblSFilClose) + Me.pnlFilterSource.Controls.Add(Me.Label8) + Me.pnlFilterSource.Controls.Add(Me.clbFilterSource) + Me.pnlFilterSource.Location = New System.Drawing.Point(186, 515) + Me.pnlFilterSource.Name = "pnlFilterSource" + Me.pnlFilterSource.Size = New System.Drawing.Size(166, 146) + Me.pnlFilterSource.TabIndex = 16 + Me.pnlFilterSource.Visible = False + ' + 'lblSFilClose + ' + Me.lblSFilClose.AutoSize = True + Me.lblSFilClose.BackColor = System.Drawing.Color.DimGray + Me.lblSFilClose.Cursor = System.Windows.Forms.Cursors.Hand + Me.lblSFilClose.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Underline, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblSFilClose.ForeColor = System.Drawing.Color.White + Me.lblSFilClose.Location = New System.Drawing.Point(130, 2) + Me.lblSFilClose.Name = "lblSFilClose" + Me.lblSFilClose.Size = New System.Drawing.Size(33, 13) + Me.lblSFilClose.TabIndex = 24 + Me.lblSFilClose.Text = "Close" + ' + 'Label8 + ' + Me.Label8.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Label8.BackColor = System.Drawing.SystemColors.ControlDarkDark + Me.Label8.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.Label8.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label8.ForeColor = System.Drawing.SystemColors.HighlightText + Me.Label8.Location = New System.Drawing.Point(1, 1) + Me.Label8.Name = "Label8" + Me.Label8.Size = New System.Drawing.Size(162, 17) + Me.Label8.TabIndex = 23 + Me.Label8.Text = "Sources" + Me.Label8.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + ' + 'clbFilterSource + ' + Me.clbFilterSource.CheckOnClick = True + Me.clbFilterSource.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.clbFilterSource.FormattingEnabled = True + Me.clbFilterSource.Location = New System.Drawing.Point(1, 20) + Me.clbFilterSource.Name = "clbFilterSource" + Me.clbFilterSource.Size = New System.Drawing.Size(162, 123) + Me.clbFilterSource.TabIndex = 8 + Me.clbFilterSource.TabStop = False + ' + 'dgvMediaList + ' + Me.dgvMediaList.AllowUserToAddRows = False + Me.dgvMediaList.AllowUserToDeleteRows = False + Me.dgvMediaList.AllowUserToResizeRows = False + DataGridViewCellStyle1.BackColor = System.Drawing.Color.FromArgb(CType(CType(230, Byte), Integer), CType(CType(230, Byte), Integer), CType(CType(230, Byte), Integer)) + Me.dgvMediaList.AlternatingRowsDefaultCellStyle = DataGridViewCellStyle1 + Me.dgvMediaList.BackgroundColor = System.Drawing.Color.White + Me.dgvMediaList.BorderStyle = System.Windows.Forms.BorderStyle.None + Me.dgvMediaList.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.SingleHorizontal + Me.dgvMediaList.ClipboardCopyMode = System.Windows.Forms.DataGridViewClipboardCopyMode.Disable + Me.dgvMediaList.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize + Me.dgvMediaList.ContextMenuStrip = Me.mnuMediaList + Me.dgvMediaList.Dock = System.Windows.Forms.DockStyle.Fill + Me.dgvMediaList.GridColor = System.Drawing.Color.FromArgb(CType(CType(240, Byte), Integer), CType(CType(240, Byte), Integer), CType(CType(240, Byte), Integer)) + Me.dgvMediaList.Location = New System.Drawing.Point(0, 56) + Me.dgvMediaList.Name = "dgvMediaList" + Me.dgvMediaList.ReadOnly = True + Me.dgvMediaList.RowHeadersVisible = False + Me.dgvMediaList.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect + Me.dgvMediaList.ShowCellErrors = False + Me.dgvMediaList.ShowRowErrors = False + Me.dgvMediaList.Size = New System.Drawing.Size(364, 546) + Me.dgvMediaList.StandardTab = True + Me.dgvMediaList.TabIndex = 0 + ' + 'mnuMediaList + ' + Me.mnuMediaList.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.cmnuTitle, Me.ToolStripSeparator3, Me.cmnuRefresh, Me.cmnuMark, Me.cmnuLock, Me.ToolStripMenuItem1, Me.cmnuEditMovie, Me.cmnuMetaData, Me.GenresToolStripMenuItem, Me.cmnuSep, Me.ScrapingToolStripMenuItem, Me.cmnuRescrape, Me.cmnuSearchNew, Me.cmnuSep2, Me.OpenContainingFolderToolStripMenuItem, Me.ToolStripSeparator1, Me.RemoveToolStripMenuItem}) + Me.mnuMediaList.Name = "mnuMediaList" + Me.mnuMediaList.Size = New System.Drawing.Size(253, 298) + ' + 'cmnuTitle + ' + Me.cmnuTitle.Enabled = False + Me.cmnuTitle.Image = CType(resources.GetObject("cmnuTitle.Image"), System.Drawing.Image) + Me.cmnuTitle.Name = "cmnuTitle" + Me.cmnuTitle.Size = New System.Drawing.Size(252, 22) + Me.cmnuTitle.Text = "Title" + ' + 'ToolStripSeparator3 + ' + Me.ToolStripSeparator3.Name = "ToolStripSeparator3" + Me.ToolStripSeparator3.Size = New System.Drawing.Size(249, 6) + ' + 'cmnuRefresh + ' + Me.cmnuRefresh.Image = CType(resources.GetObject("cmnuRefresh.Image"), System.Drawing.Image) + Me.cmnuRefresh.Name = "cmnuRefresh" + Me.cmnuRefresh.ShortcutKeys = System.Windows.Forms.Keys.F5 + Me.cmnuRefresh.Size = New System.Drawing.Size(252, 22) + Me.cmnuRefresh.Text = "Reload" + ' + 'cmnuMark + ' + Me.cmnuMark.Image = CType(resources.GetObject("cmnuMark.Image"), System.Drawing.Image) + Me.cmnuMark.Name = "cmnuMark" + Me.cmnuMark.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.M), System.Windows.Forms.Keys) + Me.cmnuMark.Size = New System.Drawing.Size(252, 22) + Me.cmnuMark.Text = "Mark" + ' + 'cmnuLock + ' + Me.cmnuLock.Image = CType(resources.GetObject("cmnuLock.Image"), System.Drawing.Image) + Me.cmnuLock.Name = "cmnuLock" + Me.cmnuLock.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.L), System.Windows.Forms.Keys) + Me.cmnuLock.Size = New System.Drawing.Size(252, 22) + Me.cmnuLock.Text = "Lock" + ' + 'ToolStripMenuItem1 + ' + Me.ToolStripMenuItem1.Name = "ToolStripMenuItem1" + Me.ToolStripMenuItem1.Size = New System.Drawing.Size(249, 6) + ' + 'cmnuEditMovie + ' + Me.cmnuEditMovie.Image = CType(resources.GetObject("cmnuEditMovie.Image"), System.Drawing.Image) + Me.cmnuEditMovie.Name = "cmnuEditMovie" + Me.cmnuEditMovie.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.E), System.Windows.Forms.Keys) + Me.cmnuEditMovie.Size = New System.Drawing.Size(252, 22) + Me.cmnuEditMovie.Text = "Edit Movie" + ' + 'cmnuMetaData + ' + Me.cmnuMetaData.Image = CType(resources.GetObject("cmnuMetaData.Image"), System.Drawing.Image) + Me.cmnuMetaData.Name = "cmnuMetaData" + Me.cmnuMetaData.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.D), System.Windows.Forms.Keys) + Me.cmnuMetaData.Size = New System.Drawing.Size(252, 22) + Me.cmnuMetaData.Text = "Edit Meta Data" + ' + 'GenresToolStripMenuItem + ' + Me.GenresToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.LblGenreStripMenuItem2, Me.GenreListToolStripComboBox, Me.AddGenreToolStripMenuItem, Me.SetGenreToolStripMenuItem, Me.RemoveGenreToolStripMenuItem}) + Me.GenresToolStripMenuItem.Image = CType(resources.GetObject("GenresToolStripMenuItem.Image"), System.Drawing.Image) + Me.GenresToolStripMenuItem.Name = "GenresToolStripMenuItem" + Me.GenresToolStripMenuItem.Size = New System.Drawing.Size(252, 22) + Me.GenresToolStripMenuItem.Text = "Genres" + ' + 'LblGenreStripMenuItem2 + ' + Me.LblGenreStripMenuItem2.Enabled = False + Me.LblGenreStripMenuItem2.Name = "LblGenreStripMenuItem2" + Me.LblGenreStripMenuItem2.Size = New System.Drawing.Size(195, 22) + Me.LblGenreStripMenuItem2.Text = ">> Select Genre <<" + ' + 'GenreListToolStripComboBox + ' + Me.GenreListToolStripComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.GenreListToolStripComboBox.FlatStyle = System.Windows.Forms.FlatStyle.Standard + Me.GenreListToolStripComboBox.Name = "GenreListToolStripComboBox" + Me.GenreListToolStripComboBox.Size = New System.Drawing.Size(135, 23) + Me.GenreListToolStripComboBox.Sorted = True + ' + 'AddGenreToolStripMenuItem + ' + Me.AddGenreToolStripMenuItem.Name = "AddGenreToolStripMenuItem" + Me.AddGenreToolStripMenuItem.Size = New System.Drawing.Size(195, 22) + Me.AddGenreToolStripMenuItem.Text = "Add" + ' + 'SetGenreToolStripMenuItem + ' + Me.SetGenreToolStripMenuItem.Name = "SetGenreToolStripMenuItem" + Me.SetGenreToolStripMenuItem.Size = New System.Drawing.Size(195, 22) + Me.SetGenreToolStripMenuItem.Text = "Set" + ' + 'RemoveGenreToolStripMenuItem + ' + Me.RemoveGenreToolStripMenuItem.Name = "RemoveGenreToolStripMenuItem" + Me.RemoveGenreToolStripMenuItem.Size = New System.Drawing.Size(195, 22) + Me.RemoveGenreToolStripMenuItem.Text = "Remove" + ' + 'cmnuSep + ' + Me.cmnuSep.Name = "cmnuSep" + Me.cmnuSep.Size = New System.Drawing.Size(249, 6) + ' + 'ScrapingToolStripMenuItem + ' + Me.ScrapingToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripMenuItem5, Me.ToolStripMenuItem13}) + Me.ScrapingToolStripMenuItem.Image = CType(resources.GetObject("ScrapingToolStripMenuItem.Image"), System.Drawing.Image) + Me.ScrapingToolStripMenuItem.Name = "ScrapingToolStripMenuItem" + Me.ScrapingToolStripMenuItem.Size = New System.Drawing.Size(252, 22) + Me.ScrapingToolStripMenuItem.Text = "(Re)Scrape Selected Movies" + ' + 'ToolStripMenuItem5 + ' + Me.ToolStripMenuItem5.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.SelectAllAutoToolStripMenuItem, Me.SelectNfoAutoToolStripMenuItem, Me.SelectPosterAutoToolStripMenuItem, Me.SelectFanartAutoToolStripMenuItem, Me.SelectExtraAutoToolStripMenuItem, Me.SelectTrailerAutoToolStripMenuItem, Me.SelectMetaAutoToolStripMenuItem}) + Me.ToolStripMenuItem5.Name = "ToolStripMenuItem5" + Me.ToolStripMenuItem5.Size = New System.Drawing.Size(284, 22) + Me.ToolStripMenuItem5.Text = "Automatic (Force Best Match)" + ' + 'SelectAllAutoToolStripMenuItem + ' + Me.SelectAllAutoToolStripMenuItem.Name = "SelectAllAutoToolStripMenuItem" + Me.SelectAllAutoToolStripMenuItem.Size = New System.Drawing.Size(173, 22) + Me.SelectAllAutoToolStripMenuItem.Text = "All Items" + ' + 'SelectNfoAutoToolStripMenuItem + ' + Me.SelectNfoAutoToolStripMenuItem.Name = "SelectNfoAutoToolStripMenuItem" + Me.SelectNfoAutoToolStripMenuItem.Size = New System.Drawing.Size(173, 22) + Me.SelectNfoAutoToolStripMenuItem.Text = "NFO Only" + ' + 'SelectPosterAutoToolStripMenuItem + ' + Me.SelectPosterAutoToolStripMenuItem.Name = "SelectPosterAutoToolStripMenuItem" + Me.SelectPosterAutoToolStripMenuItem.Size = New System.Drawing.Size(173, 22) + Me.SelectPosterAutoToolStripMenuItem.Text = "Poster Only" + ' + 'SelectFanartAutoToolStripMenuItem + ' + Me.SelectFanartAutoToolStripMenuItem.Name = "SelectFanartAutoToolStripMenuItem" + Me.SelectFanartAutoToolStripMenuItem.Size = New System.Drawing.Size(173, 22) + Me.SelectFanartAutoToolStripMenuItem.Text = "Fanart Only" + ' + 'SelectExtraAutoToolStripMenuItem + ' + Me.SelectExtraAutoToolStripMenuItem.Name = "SelectExtraAutoToolStripMenuItem" + Me.SelectExtraAutoToolStripMenuItem.Size = New System.Drawing.Size(173, 22) + Me.SelectExtraAutoToolStripMenuItem.Text = "Extrathumbs Only" + ' + 'SelectTrailerAutoToolStripMenuItem + ' + Me.SelectTrailerAutoToolStripMenuItem.Name = "SelectTrailerAutoToolStripMenuItem" + Me.SelectTrailerAutoToolStripMenuItem.Size = New System.Drawing.Size(173, 22) + Me.SelectTrailerAutoToolStripMenuItem.Text = "Trailer Only" + ' + 'SelectMetaAutoToolStripMenuItem + ' + Me.SelectMetaAutoToolStripMenuItem.Name = "SelectMetaAutoToolStripMenuItem" + Me.SelectMetaAutoToolStripMenuItem.Size = New System.Drawing.Size(173, 22) + Me.SelectMetaAutoToolStripMenuItem.Text = "Meta Data Only" + ' + 'ToolStripMenuItem13 + ' + Me.ToolStripMenuItem13.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.SelectAllAskToolStripMenuItem, Me.SelectNfoAskToolStripMenuItem, Me.SelectPosterÃskToolStripMenuItem, Me.SelectFanartAskToolStripMenuItem, Me.SelectExtraAskToolStripMenuItem, Me.ToolStripAskMenuItem19, Me.SelectMeEtaAskToolStripMenuItem}) + Me.ToolStripMenuItem13.Name = "ToolStripMenuItem13" + Me.ToolStripMenuItem13.Size = New System.Drawing.Size(284, 22) + Me.ToolStripMenuItem13.Text = "Ask (Require Input If No Exact Match)" + ' + 'SelectAllAskToolStripMenuItem + ' + Me.SelectAllAskToolStripMenuItem.Name = "SelectAllAskToolStripMenuItem" + Me.SelectAllAskToolStripMenuItem.Size = New System.Drawing.Size(173, 22) + Me.SelectAllAskToolStripMenuItem.Text = "All Items" + ' + 'SelectNfoAskToolStripMenuItem + ' + Me.SelectNfoAskToolStripMenuItem.Name = "SelectNfoAskToolStripMenuItem" + Me.SelectNfoAskToolStripMenuItem.Size = New System.Drawing.Size(173, 22) + Me.SelectNfoAskToolStripMenuItem.Text = "NFO Only" + ' + 'SelectPosterÃskToolStripMenuItem + ' + Me.SelectPosterÃskToolStripMenuItem.Name = "SelectPosterÃskToolStripMenuItem" + Me.SelectPosterÃskToolStripMenuItem.Size = New System.Drawing.Size(173, 22) + Me.SelectPosterÃskToolStripMenuItem.Text = "Poster Only" + ' + 'SelectFanartAskToolStripMenuItem + ' + Me.SelectFanartAskToolStripMenuItem.Name = "SelectFanartAskToolStripMenuItem" + Me.SelectFanartAskToolStripMenuItem.Size = New System.Drawing.Size(173, 22) + Me.SelectFanartAskToolStripMenuItem.Text = "Fanart Only" + ' + 'SelectExtraAskToolStripMenuItem + ' + Me.SelectExtraAskToolStripMenuItem.Name = "SelectExtraAskToolStripMenuItem" + Me.SelectExtraAskToolStripMenuItem.Size = New System.Drawing.Size(173, 22) + Me.SelectExtraAskToolStripMenuItem.Text = "Extrathumbs Only" + ' + 'ToolStripAskMenuItem19 + ' + Me.ToolStripAskMenuItem19.Name = "ToolStripAskMenuItem19" + Me.ToolStripAskMenuItem19.Size = New System.Drawing.Size(173, 22) + Me.ToolStripAskMenuItem19.Text = "Trailer Only" + ' + 'SelectMeEtaAskToolStripMenuItem + ' + Me.SelectMeEtaAskToolStripMenuItem.Name = "SelectMeEtaAskToolStripMenuItem" + Me.SelectMeEtaAskToolStripMenuItem.Size = New System.Drawing.Size(173, 22) + Me.SelectMeEtaAskToolStripMenuItem.Text = "Meta Data Only" + ' + 'cmnuRescrape + ' + Me.cmnuRescrape.Image = CType(resources.GetObject("cmnuRescrape.Image"), System.Drawing.Image) + Me.cmnuRescrape.Name = "cmnuRescrape" + Me.cmnuRescrape.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.I), System.Windows.Forms.Keys) + Me.cmnuRescrape.Size = New System.Drawing.Size(252, 22) + Me.cmnuRescrape.Text = "(Re)Scrape Movie" + ' + 'cmnuSearchNew + ' + Me.cmnuSearchNew.Image = CType(resources.GetObject("cmnuSearchNew.Image"), System.Drawing.Image) + Me.cmnuSearchNew.Name = "cmnuSearchNew" + Me.cmnuSearchNew.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.C), System.Windows.Forms.Keys) + Me.cmnuSearchNew.Size = New System.Drawing.Size(252, 22) + Me.cmnuSearchNew.Text = "Change Movie" + ' + 'cmnuSep2 + ' + Me.cmnuSep2.Name = "cmnuSep2" + Me.cmnuSep2.Size = New System.Drawing.Size(249, 6) + ' + 'OpenContainingFolderToolStripMenuItem + ' + Me.OpenContainingFolderToolStripMenuItem.Image = CType(resources.GetObject("OpenContainingFolderToolStripMenuItem.Image"), System.Drawing.Image) + Me.OpenContainingFolderToolStripMenuItem.Name = "OpenContainingFolderToolStripMenuItem" + Me.OpenContainingFolderToolStripMenuItem.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.O), System.Windows.Forms.Keys) + Me.OpenContainingFolderToolStripMenuItem.Size = New System.Drawing.Size(252, 22) + Me.OpenContainingFolderToolStripMenuItem.Text = "Open Containing Folder" + ' + 'ToolStripSeparator1 + ' + Me.ToolStripSeparator1.Name = "ToolStripSeparator1" + Me.ToolStripSeparator1.Size = New System.Drawing.Size(249, 6) + ' + 'RemoveToolStripMenuItem + ' + Me.RemoveToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.RemoveFromDatabaseToolStripMenuItem, Me.DeleteMovieToolStripMenuItem}) + Me.RemoveToolStripMenuItem.Image = CType(resources.GetObject("RemoveToolStripMenuItem.Image"), System.Drawing.Image) + Me.RemoveToolStripMenuItem.Name = "RemoveToolStripMenuItem" + Me.RemoveToolStripMenuItem.Size = New System.Drawing.Size(252, 22) + Me.RemoveToolStripMenuItem.Text = "Remove" + ' + 'RemoveFromDatabaseToolStripMenuItem + ' + Me.RemoveFromDatabaseToolStripMenuItem.Image = CType(resources.GetObject("RemoveFromDatabaseToolStripMenuItem.Image"), System.Drawing.Image) + Me.RemoveFromDatabaseToolStripMenuItem.Name = "RemoveFromDatabaseToolStripMenuItem" + Me.RemoveFromDatabaseToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Delete + Me.RemoveFromDatabaseToolStripMenuItem.Size = New System.Drawing.Size(236, 22) + Me.RemoveFromDatabaseToolStripMenuItem.Text = "Remove from Database" + ' + 'DeleteMovieToolStripMenuItem + ' + Me.DeleteMovieToolStripMenuItem.Image = CType(resources.GetObject("DeleteMovieToolStripMenuItem.Image"), System.Drawing.Image) + Me.DeleteMovieToolStripMenuItem.Name = "DeleteMovieToolStripMenuItem" + Me.DeleteMovieToolStripMenuItem.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.Delete), System.Windows.Forms.Keys) + Me.DeleteMovieToolStripMenuItem.Size = New System.Drawing.Size(236, 22) + Me.DeleteMovieToolStripMenuItem.Text = "Delete Movie" + ' + 'scTV + ' + Me.scTV.BackColor = System.Drawing.Color.Gainsboro + Me.scTV.Dock = System.Windows.Forms.DockStyle.Fill + Me.scTV.Location = New System.Drawing.Point(0, 56) + Me.scTV.Name = "scTV" + Me.scTV.Orientation = System.Windows.Forms.Orientation.Horizontal + ' + 'scTV.Panel1 + ' + Me.scTV.Panel1.BackColor = System.Drawing.Color.Gainsboro + Me.scTV.Panel1.Controls.Add(Me.dgvTVShows) + ' + 'scTV.Panel2 + ' + Me.scTV.Panel2.Controls.Add(Me.SplitContainer2) + Me.scTV.Size = New System.Drawing.Size(364, 546) + Me.scTV.SplitterDistance = 138 + Me.scTV.TabIndex = 3 + Me.scTV.TabStop = False + ' + 'dgvTVShows + ' + Me.dgvTVShows.AllowUserToAddRows = False + Me.dgvTVShows.AllowUserToDeleteRows = False + Me.dgvTVShows.AllowUserToResizeRows = False + DataGridViewCellStyle2.BackColor = System.Drawing.Color.FromArgb(CType(CType(249, Byte), Integer), CType(CType(249, Byte), Integer), CType(CType(249, Byte), Integer)) + Me.dgvTVShows.AlternatingRowsDefaultCellStyle = DataGridViewCellStyle2 + Me.dgvTVShows.BackgroundColor = System.Drawing.Color.White + Me.dgvTVShows.BorderStyle = System.Windows.Forms.BorderStyle.None + Me.dgvTVShows.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.SingleHorizontal + Me.dgvTVShows.ClipboardCopyMode = System.Windows.Forms.DataGridViewClipboardCopyMode.Disable + Me.dgvTVShows.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize + Me.dgvTVShows.ContextMenuStrip = Me.mnuShows + Me.dgvTVShows.Dock = System.Windows.Forms.DockStyle.Fill + Me.dgvTVShows.GridColor = System.Drawing.Color.FromArgb(CType(CType(240, Byte), Integer), CType(CType(240, Byte), Integer), CType(CType(240, Byte), Integer)) + Me.dgvTVShows.Location = New System.Drawing.Point(0, 0) + Me.dgvTVShows.Name = "dgvTVShows" + Me.dgvTVShows.ReadOnly = True + Me.dgvTVShows.RowHeadersVisible = False + Me.dgvTVShows.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect + Me.dgvTVShows.ShowCellErrors = False + Me.dgvTVShows.ShowRowErrors = False + Me.dgvTVShows.Size = New System.Drawing.Size(364, 138) + Me.dgvTVShows.StandardTab = True + Me.dgvTVShows.TabIndex = 0 + ' + 'mnuShows + ' + Me.mnuShows.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.cmnuShowTitle, Me.ToolStripMenuItem2, Me.cmnuReloadShow, Me.cmnuMarkShow, Me.cmnuLockShow, Me.ToolStripSeparator8, Me.cmnuEditShow, Me.ToolStripSeparator7, Me.cmnuRescrapeShow, Me.cmnuChangeShow, Me.ToolStripSeparator11, Me.cmnuShowOpenFolder, Me.ToolStripSeparator20, Me.RemoveShowToolStripMenuItem}) + Me.mnuShows.Name = "mnuShows" + Me.mnuShows.Size = New System.Drawing.Size(253, 232) + ' + 'cmnuShowTitle + ' + Me.cmnuShowTitle.Enabled = False + Me.cmnuShowTitle.Image = CType(resources.GetObject("cmnuShowTitle.Image"), System.Drawing.Image) + Me.cmnuShowTitle.Name = "cmnuShowTitle" + Me.cmnuShowTitle.Size = New System.Drawing.Size(252, 22) + Me.cmnuShowTitle.Text = "Title" + ' + 'ToolStripMenuItem2 + ' + Me.ToolStripMenuItem2.Name = "ToolStripMenuItem2" + Me.ToolStripMenuItem2.Size = New System.Drawing.Size(249, 6) + ' + 'cmnuReloadShow + ' + Me.cmnuReloadShow.Image = CType(resources.GetObject("cmnuReloadShow.Image"), System.Drawing.Image) + Me.cmnuReloadShow.Name = "cmnuReloadShow" + Me.cmnuReloadShow.ShortcutKeys = System.Windows.Forms.Keys.F5 + Me.cmnuReloadShow.Size = New System.Drawing.Size(252, 22) + Me.cmnuReloadShow.Text = "Reload" + ' + 'cmnuMarkShow + ' + Me.cmnuMarkShow.Image = CType(resources.GetObject("cmnuMarkShow.Image"), System.Drawing.Image) + Me.cmnuMarkShow.Name = "cmnuMarkShow" + Me.cmnuMarkShow.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.M), System.Windows.Forms.Keys) + Me.cmnuMarkShow.Size = New System.Drawing.Size(252, 22) + Me.cmnuMarkShow.Text = "Mark" + ' + 'cmnuLockShow + ' + Me.cmnuLockShow.Image = CType(resources.GetObject("cmnuLockShow.Image"), System.Drawing.Image) + Me.cmnuLockShow.Name = "cmnuLockShow" + Me.cmnuLockShow.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.L), System.Windows.Forms.Keys) + Me.cmnuLockShow.Size = New System.Drawing.Size(252, 22) + Me.cmnuLockShow.Text = "Lock" + ' + 'ToolStripSeparator8 + ' + Me.ToolStripSeparator8.Name = "ToolStripSeparator8" + Me.ToolStripSeparator8.Size = New System.Drawing.Size(249, 6) + ' + 'cmnuEditShow + ' + Me.cmnuEditShow.Image = CType(resources.GetObject("cmnuEditShow.Image"), System.Drawing.Image) + Me.cmnuEditShow.Name = "cmnuEditShow" + Me.cmnuEditShow.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.E), System.Windows.Forms.Keys) + Me.cmnuEditShow.Size = New System.Drawing.Size(252, 22) + Me.cmnuEditShow.Text = "Edit Show" + ' + 'ToolStripSeparator7 + ' + Me.ToolStripSeparator7.Name = "ToolStripSeparator7" + Me.ToolStripSeparator7.Size = New System.Drawing.Size(249, 6) + ' + 'cmnuRescrapeShow + ' + Me.cmnuRescrapeShow.Image = CType(resources.GetObject("cmnuRescrapeShow.Image"), System.Drawing.Image) + Me.cmnuRescrapeShow.Name = "cmnuRescrapeShow" + Me.cmnuRescrapeShow.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.I), System.Windows.Forms.Keys) + Me.cmnuRescrapeShow.Size = New System.Drawing.Size(252, 22) + Me.cmnuRescrapeShow.Text = "Re-scrape theTVDB" + ' + 'cmnuChangeShow + ' + Me.cmnuChangeShow.Image = CType(resources.GetObject("cmnuChangeShow.Image"), System.Drawing.Image) + Me.cmnuChangeShow.Name = "cmnuChangeShow" + Me.cmnuChangeShow.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.C), System.Windows.Forms.Keys) + Me.cmnuChangeShow.Size = New System.Drawing.Size(252, 22) + Me.cmnuChangeShow.Text = "Change Show" + ' + 'ToolStripSeparator11 + ' + Me.ToolStripSeparator11.Name = "ToolStripSeparator11" + Me.ToolStripSeparator11.Size = New System.Drawing.Size(249, 6) + ' + 'cmnuShowOpenFolder + ' + Me.cmnuShowOpenFolder.Image = CType(resources.GetObject("cmnuShowOpenFolder.Image"), System.Drawing.Image) + Me.cmnuShowOpenFolder.Name = "cmnuShowOpenFolder" + Me.cmnuShowOpenFolder.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.O), System.Windows.Forms.Keys) + Me.cmnuShowOpenFolder.Size = New System.Drawing.Size(252, 22) + Me.cmnuShowOpenFolder.Text = "Open Containing Folder" + ' + 'ToolStripSeparator20 + ' + Me.ToolStripSeparator20.Name = "ToolStripSeparator20" + Me.ToolStripSeparator20.Size = New System.Drawing.Size(249, 6) + ' + 'RemoveShowToolStripMenuItem + ' + Me.RemoveShowToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.cmnuRemoveTVShow, Me.cmnuDeleteTVShow}) + Me.RemoveShowToolStripMenuItem.Image = CType(resources.GetObject("RemoveShowToolStripMenuItem.Image"), System.Drawing.Image) + Me.RemoveShowToolStripMenuItem.Name = "RemoveShowToolStripMenuItem" + Me.RemoveShowToolStripMenuItem.Size = New System.Drawing.Size(252, 22) + Me.RemoveShowToolStripMenuItem.Text = "Remove" + ' + 'cmnuRemoveTVShow + ' + Me.cmnuRemoveTVShow.Image = CType(resources.GetObject("cmnuRemoveTVShow.Image"), System.Drawing.Image) + Me.cmnuRemoveTVShow.Name = "cmnuRemoveTVShow" + Me.cmnuRemoveTVShow.ShortcutKeys = System.Windows.Forms.Keys.Delete + Me.cmnuRemoveTVShow.Size = New System.Drawing.Size(236, 22) + Me.cmnuRemoveTVShow.Text = "Remove from Database" + ' + 'cmnuDeleteTVShow + ' + Me.cmnuDeleteTVShow.Image = CType(resources.GetObject("cmnuDeleteTVShow.Image"), System.Drawing.Image) + Me.cmnuDeleteTVShow.Name = "cmnuDeleteTVShow" + Me.cmnuDeleteTVShow.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.Delete), System.Windows.Forms.Keys) + Me.cmnuDeleteTVShow.Size = New System.Drawing.Size(236, 22) + Me.cmnuDeleteTVShow.Text = "Delete TV Show" + ' + 'SplitContainer2 + ' + Me.SplitContainer2.Dock = System.Windows.Forms.DockStyle.Fill + Me.SplitContainer2.Location = New System.Drawing.Point(0, 0) + Me.SplitContainer2.Name = "SplitContainer2" + Me.SplitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal + ' + 'SplitContainer2.Panel1 + ' + Me.SplitContainer2.Panel1.BackColor = System.Drawing.Color.Gainsboro + Me.SplitContainer2.Panel1.Controls.Add(Me.dgvTVSeasons) + ' + 'SplitContainer2.Panel2 + ' + Me.SplitContainer2.Panel2.Controls.Add(Me.dgvTVEpisodes) + Me.SplitContainer2.Size = New System.Drawing.Size(364, 404) + Me.SplitContainer2.SplitterDistance = 138 + Me.SplitContainer2.TabIndex = 0 + Me.SplitContainer2.TabStop = False + ' + 'dgvTVSeasons + ' + Me.dgvTVSeasons.AllowUserToAddRows = False + Me.dgvTVSeasons.AllowUserToDeleteRows = False + Me.dgvTVSeasons.AllowUserToResizeRows = False + DataGridViewCellStyle3.BackColor = System.Drawing.Color.FromArgb(CType(CType(249, Byte), Integer), CType(CType(249, Byte), Integer), CType(CType(249, Byte), Integer)) + Me.dgvTVSeasons.AlternatingRowsDefaultCellStyle = DataGridViewCellStyle3 + Me.dgvTVSeasons.BackgroundColor = System.Drawing.Color.White + Me.dgvTVSeasons.BorderStyle = System.Windows.Forms.BorderStyle.None + Me.dgvTVSeasons.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.SingleHorizontal + Me.dgvTVSeasons.ClipboardCopyMode = System.Windows.Forms.DataGridViewClipboardCopyMode.Disable + Me.dgvTVSeasons.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize + Me.dgvTVSeasons.ContextMenuStrip = Me.mnuSeasons + Me.dgvTVSeasons.Dock = System.Windows.Forms.DockStyle.Fill + Me.dgvTVSeasons.GridColor = System.Drawing.Color.FromArgb(CType(CType(240, Byte), Integer), CType(CType(240, Byte), Integer), CType(CType(240, Byte), Integer)) + Me.dgvTVSeasons.Location = New System.Drawing.Point(0, 0) + Me.dgvTVSeasons.Name = "dgvTVSeasons" + Me.dgvTVSeasons.ReadOnly = True + Me.dgvTVSeasons.RowHeadersVisible = False + Me.dgvTVSeasons.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect + Me.dgvTVSeasons.ShowCellErrors = False + Me.dgvTVSeasons.ShowRowErrors = False + Me.dgvTVSeasons.Size = New System.Drawing.Size(364, 138) + Me.dgvTVSeasons.StandardTab = True + Me.dgvTVSeasons.TabIndex = 0 + ' + 'mnuSeasons + ' + Me.mnuSeasons.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.cmnuSeasonTitle, Me.ToolStripSeparator17, Me.cmnuReloadSeason, Me.cmnuMarkSeason, Me.cmnuLockSeason, Me.ToolStripSeparator16, Me.cmnuSeasonChangeImages, Me.ToolStripSeparator14, Me.cmnuSeasonRescrape, Me.ToolStripSeparator15, Me.cmnuSeasonOpenFolder, Me.ToolStripSeparator27, Me.cmnuSeasonRemove}) + Me.mnuSeasons.Name = "mnuSeasons" + Me.mnuSeasons.Size = New System.Drawing.Size(253, 210) + ' + 'cmnuSeasonTitle + ' + Me.cmnuSeasonTitle.Enabled = False + Me.cmnuSeasonTitle.Image = CType(resources.GetObject("cmnuSeasonTitle.Image"), System.Drawing.Image) + Me.cmnuSeasonTitle.Name = "cmnuSeasonTitle" + Me.cmnuSeasonTitle.Size = New System.Drawing.Size(252, 22) + Me.cmnuSeasonTitle.Text = "Title" + ' + 'ToolStripSeparator17 + ' + Me.ToolStripSeparator17.Name = "ToolStripSeparator17" + Me.ToolStripSeparator17.Size = New System.Drawing.Size(249, 6) + ' + 'cmnuReloadSeason + ' + Me.cmnuReloadSeason.Image = CType(resources.GetObject("cmnuReloadSeason.Image"), System.Drawing.Image) + Me.cmnuReloadSeason.Name = "cmnuReloadSeason" + Me.cmnuReloadSeason.ShortcutKeys = System.Windows.Forms.Keys.F5 + Me.cmnuReloadSeason.Size = New System.Drawing.Size(252, 22) + Me.cmnuReloadSeason.Text = "Reload" + ' + 'cmnuMarkSeason + ' + Me.cmnuMarkSeason.Image = CType(resources.GetObject("cmnuMarkSeason.Image"), System.Drawing.Image) + Me.cmnuMarkSeason.Name = "cmnuMarkSeason" + Me.cmnuMarkSeason.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.M), System.Windows.Forms.Keys) + Me.cmnuMarkSeason.Size = New System.Drawing.Size(252, 22) + Me.cmnuMarkSeason.Text = "Mark" + ' + 'cmnuLockSeason + ' + Me.cmnuLockSeason.Image = CType(resources.GetObject("cmnuLockSeason.Image"), System.Drawing.Image) + Me.cmnuLockSeason.Name = "cmnuLockSeason" + Me.cmnuLockSeason.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.L), System.Windows.Forms.Keys) + Me.cmnuLockSeason.Size = New System.Drawing.Size(252, 22) + Me.cmnuLockSeason.Text = "Lock" + ' + 'ToolStripSeparator16 + ' + Me.ToolStripSeparator16.Name = "ToolStripSeparator16" + Me.ToolStripSeparator16.Size = New System.Drawing.Size(249, 6) + ' + 'cmnuSeasonChangeImages + ' + Me.cmnuSeasonChangeImages.Image = CType(resources.GetObject("cmnuSeasonChangeImages.Image"), System.Drawing.Image) + Me.cmnuSeasonChangeImages.Name = "cmnuSeasonChangeImages" + Me.cmnuSeasonChangeImages.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.E), System.Windows.Forms.Keys) + Me.cmnuSeasonChangeImages.Size = New System.Drawing.Size(252, 22) + Me.cmnuSeasonChangeImages.Text = "Change Images" + ' + 'ToolStripSeparator14 + ' + Me.ToolStripSeparator14.Name = "ToolStripSeparator14" + Me.ToolStripSeparator14.Size = New System.Drawing.Size(249, 6) + ' + 'cmnuSeasonRescrape + ' + Me.cmnuSeasonRescrape.Image = CType(resources.GetObject("cmnuSeasonRescrape.Image"), System.Drawing.Image) + Me.cmnuSeasonRescrape.Name = "cmnuSeasonRescrape" + Me.cmnuSeasonRescrape.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.I), System.Windows.Forms.Keys) + Me.cmnuSeasonRescrape.Size = New System.Drawing.Size(252, 22) + Me.cmnuSeasonRescrape.Text = "Re-scrape theTVDB" + ' + 'ToolStripSeparator15 + ' + Me.ToolStripSeparator15.Name = "ToolStripSeparator15" + Me.ToolStripSeparator15.Size = New System.Drawing.Size(249, 6) + ' + 'cmnuSeasonOpenFolder + ' + Me.cmnuSeasonOpenFolder.Image = CType(resources.GetObject("cmnuSeasonOpenFolder.Image"), System.Drawing.Image) + Me.cmnuSeasonOpenFolder.Name = "cmnuSeasonOpenFolder" + Me.cmnuSeasonOpenFolder.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.O), System.Windows.Forms.Keys) + Me.cmnuSeasonOpenFolder.Size = New System.Drawing.Size(252, 22) + Me.cmnuSeasonOpenFolder.Text = "Open Contianing Folder" + ' + 'ToolStripSeparator27 + ' + Me.ToolStripSeparator27.Name = "ToolStripSeparator27" + Me.ToolStripSeparator27.Size = New System.Drawing.Size(249, 6) + ' + 'cmnuSeasonRemove + ' + Me.cmnuSeasonRemove.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.cmnuRemoveSeasonFromDB, Me.cmnuDeleteSeason}) + Me.cmnuSeasonRemove.Image = CType(resources.GetObject("cmnuSeasonRemove.Image"), System.Drawing.Image) + Me.cmnuSeasonRemove.Name = "cmnuSeasonRemove" + Me.cmnuSeasonRemove.Size = New System.Drawing.Size(252, 22) + Me.cmnuSeasonRemove.Text = "Remove" + ' + 'cmnuRemoveSeasonFromDB + ' + Me.cmnuRemoveSeasonFromDB.Image = CType(resources.GetObject("cmnuRemoveSeasonFromDB.Image"), System.Drawing.Image) + Me.cmnuRemoveSeasonFromDB.Name = "cmnuRemoveSeasonFromDB" + Me.cmnuRemoveSeasonFromDB.ShortcutKeys = System.Windows.Forms.Keys.Delete + Me.cmnuRemoveSeasonFromDB.Size = New System.Drawing.Size(236, 22) + Me.cmnuRemoveSeasonFromDB.Text = "Remove from Database" + ' + 'cmnuDeleteSeason + ' + Me.cmnuDeleteSeason.Image = CType(resources.GetObject("cmnuDeleteSeason.Image"), System.Drawing.Image) + Me.cmnuDeleteSeason.Name = "cmnuDeleteSeason" + Me.cmnuDeleteSeason.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.Delete), System.Windows.Forms.Keys) + Me.cmnuDeleteSeason.Size = New System.Drawing.Size(236, 22) + Me.cmnuDeleteSeason.Text = "Delete Season" + ' + 'dgvTVEpisodes + ' + Me.dgvTVEpisodes.AllowUserToAddRows = False + Me.dgvTVEpisodes.AllowUserToDeleteRows = False + Me.dgvTVEpisodes.AllowUserToResizeRows = False + DataGridViewCellStyle4.BackColor = System.Drawing.Color.FromArgb(CType(CType(249, Byte), Integer), CType(CType(249, Byte), Integer), CType(CType(249, Byte), Integer)) + Me.dgvTVEpisodes.AlternatingRowsDefaultCellStyle = DataGridViewCellStyle4 + Me.dgvTVEpisodes.BackgroundColor = System.Drawing.Color.White + Me.dgvTVEpisodes.BorderStyle = System.Windows.Forms.BorderStyle.None + Me.dgvTVEpisodes.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.SingleHorizontal + Me.dgvTVEpisodes.ClipboardCopyMode = System.Windows.Forms.DataGridViewClipboardCopyMode.Disable + Me.dgvTVEpisodes.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize + Me.dgvTVEpisodes.ContextMenuStrip = Me.mnuEpisodes + Me.dgvTVEpisodes.Dock = System.Windows.Forms.DockStyle.Fill + Me.dgvTVEpisodes.GridColor = System.Drawing.Color.FromArgb(CType(CType(240, Byte), Integer), CType(CType(240, Byte), Integer), CType(CType(240, Byte), Integer)) + Me.dgvTVEpisodes.Location = New System.Drawing.Point(0, 0) + Me.dgvTVEpisodes.Name = "dgvTVEpisodes" + Me.dgvTVEpisodes.ReadOnly = True + Me.dgvTVEpisodes.RowHeadersVisible = False + Me.dgvTVEpisodes.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect + Me.dgvTVEpisodes.ShowCellErrors = False + Me.dgvTVEpisodes.ShowRowErrors = False + Me.dgvTVEpisodes.Size = New System.Drawing.Size(364, 262) + Me.dgvTVEpisodes.StandardTab = True + Me.dgvTVEpisodes.TabIndex = 0 + ' + 'mnuEpisodes + ' + Me.mnuEpisodes.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.cmnuEpTitle, Me.ToolStripSeparator6, Me.cmnuReloadEp, Me.cmnuMarkEp, Me.cmnuLockEp, Me.ToolStripSeparator9, Me.cmnuEditEpisode, Me.ToolStripSeparator10, Me.cmnuRescrapeEp, Me.cmnuChangeEp, Me.ToolStripSeparator12, Me.cmnuEpOpenFolder, Me.ToolStripSeparator28, Me.RemoveEpToolStripMenuItem}) + Me.mnuEpisodes.Name = "mnuEpisodes" + Me.mnuEpisodes.Size = New System.Drawing.Size(253, 232) + ' + 'cmnuEpTitle + ' + Me.cmnuEpTitle.Enabled = False + Me.cmnuEpTitle.Image = CType(resources.GetObject("cmnuEpTitle.Image"), System.Drawing.Image) + Me.cmnuEpTitle.Name = "cmnuEpTitle" + Me.cmnuEpTitle.Size = New System.Drawing.Size(252, 22) + Me.cmnuEpTitle.Text = "Title" + ' + 'ToolStripSeparator6 + ' + Me.ToolStripSeparator6.Name = "ToolStripSeparator6" + Me.ToolStripSeparator6.Size = New System.Drawing.Size(249, 6) + ' + 'cmnuReloadEp + ' + Me.cmnuReloadEp.Image = CType(resources.GetObject("cmnuReloadEp.Image"), System.Drawing.Image) + Me.cmnuReloadEp.Name = "cmnuReloadEp" + Me.cmnuReloadEp.ShortcutKeys = System.Windows.Forms.Keys.F5 + Me.cmnuReloadEp.Size = New System.Drawing.Size(252, 22) + Me.cmnuReloadEp.Text = "Reload" + ' + 'cmnuMarkEp + ' + Me.cmnuMarkEp.Image = CType(resources.GetObject("cmnuMarkEp.Image"), System.Drawing.Image) + Me.cmnuMarkEp.Name = "cmnuMarkEp" + Me.cmnuMarkEp.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.M), System.Windows.Forms.Keys) + Me.cmnuMarkEp.Size = New System.Drawing.Size(252, 22) + Me.cmnuMarkEp.Text = "Mark" + ' + 'cmnuLockEp + ' + Me.cmnuLockEp.Image = CType(resources.GetObject("cmnuLockEp.Image"), System.Drawing.Image) + Me.cmnuLockEp.Name = "cmnuLockEp" + Me.cmnuLockEp.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.L), System.Windows.Forms.Keys) + Me.cmnuLockEp.Size = New System.Drawing.Size(252, 22) + Me.cmnuLockEp.Text = "Lock" + ' + 'ToolStripSeparator9 + ' + Me.ToolStripSeparator9.Name = "ToolStripSeparator9" + Me.ToolStripSeparator9.Size = New System.Drawing.Size(249, 6) + ' + 'cmnuEditEpisode + ' + Me.cmnuEditEpisode.Image = CType(resources.GetObject("cmnuEditEpisode.Image"), System.Drawing.Image) + Me.cmnuEditEpisode.Name = "cmnuEditEpisode" + Me.cmnuEditEpisode.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.E), System.Windows.Forms.Keys) + Me.cmnuEditEpisode.Size = New System.Drawing.Size(252, 22) + Me.cmnuEditEpisode.Text = "Edit Episode" + ' + 'ToolStripSeparator10 + ' + Me.ToolStripSeparator10.Name = "ToolStripSeparator10" + Me.ToolStripSeparator10.Size = New System.Drawing.Size(249, 6) + ' + 'cmnuRescrapeEp + ' + Me.cmnuRescrapeEp.Image = CType(resources.GetObject("cmnuRescrapeEp.Image"), System.Drawing.Image) + Me.cmnuRescrapeEp.Name = "cmnuRescrapeEp" + Me.cmnuRescrapeEp.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.I), System.Windows.Forms.Keys) + Me.cmnuRescrapeEp.Size = New System.Drawing.Size(252, 22) + Me.cmnuRescrapeEp.Text = "Re-scrape theTVDB" + ' + 'cmnuChangeEp + ' + Me.cmnuChangeEp.Image = CType(resources.GetObject("cmnuChangeEp.Image"), System.Drawing.Image) + Me.cmnuChangeEp.Name = "cmnuChangeEp" + Me.cmnuChangeEp.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.C), System.Windows.Forms.Keys) + Me.cmnuChangeEp.Size = New System.Drawing.Size(252, 22) + Me.cmnuChangeEp.Text = "Change Episode" + ' + 'ToolStripSeparator12 + ' + Me.ToolStripSeparator12.Name = "ToolStripSeparator12" + Me.ToolStripSeparator12.Size = New System.Drawing.Size(249, 6) + ' + 'cmnuEpOpenFolder + ' + Me.cmnuEpOpenFolder.Image = CType(resources.GetObject("cmnuEpOpenFolder.Image"), System.Drawing.Image) + Me.cmnuEpOpenFolder.Name = "cmnuEpOpenFolder" + Me.cmnuEpOpenFolder.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.O), System.Windows.Forms.Keys) + Me.cmnuEpOpenFolder.Size = New System.Drawing.Size(252, 22) + Me.cmnuEpOpenFolder.Text = "Open Contianing Folder" + ' + 'ToolStripSeparator28 + ' + Me.ToolStripSeparator28.Name = "ToolStripSeparator28" + Me.ToolStripSeparator28.Size = New System.Drawing.Size(249, 6) + ' + 'RemoveEpToolStripMenuItem + ' + Me.RemoveEpToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.cmnuRemoveTVEp, Me.cmnuDeleteTVEp}) + Me.RemoveEpToolStripMenuItem.Image = CType(resources.GetObject("RemoveEpToolStripMenuItem.Image"), System.Drawing.Image) + Me.RemoveEpToolStripMenuItem.Name = "RemoveEpToolStripMenuItem" + Me.RemoveEpToolStripMenuItem.Size = New System.Drawing.Size(252, 22) + Me.RemoveEpToolStripMenuItem.Text = "Remove" + ' + 'cmnuRemoveTVEp + ' + Me.cmnuRemoveTVEp.Image = CType(resources.GetObject("cmnuRemoveTVEp.Image"), System.Drawing.Image) + Me.cmnuRemoveTVEp.Name = "cmnuRemoveTVEp" + Me.cmnuRemoveTVEp.ShortcutKeys = System.Windows.Forms.Keys.Delete + Me.cmnuRemoveTVEp.Size = New System.Drawing.Size(236, 22) + Me.cmnuRemoveTVEp.Text = "Remove from Database" + ' + 'cmnuDeleteTVEp + ' + Me.cmnuDeleteTVEp.Image = CType(resources.GetObject("cmnuDeleteTVEp.Image"), System.Drawing.Image) + Me.cmnuDeleteTVEp.Name = "cmnuDeleteTVEp" + Me.cmnuDeleteTVEp.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.Delete), System.Windows.Forms.Keys) + Me.cmnuDeleteTVEp.Size = New System.Drawing.Size(236, 22) + Me.cmnuDeleteTVEp.Text = "Delete Episode" + ' + 'pnlListTop + ' + Me.pnlListTop.Controls.Add(Me.btnMarkAll) + Me.pnlListTop.Controls.Add(Me.pnlSearch) + Me.pnlListTop.Controls.Add(Me.tabsMain) + Me.pnlListTop.Dock = System.Windows.Forms.DockStyle.Top + Me.pnlListTop.Location = New System.Drawing.Point(0, 0) + Me.pnlListTop.Name = "pnlListTop" + Me.pnlListTop.Size = New System.Drawing.Size(364, 56) + Me.pnlListTop.TabIndex = 14 + ' + 'btnMarkAll + ' + Me.btnMarkAll.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.btnMarkAll.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.btnMarkAll.Image = CType(resources.GetObject("btnMarkAll.Image"), System.Drawing.Image) + Me.btnMarkAll.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnMarkAll.Location = New System.Drawing.Point(254, 1) + Me.btnMarkAll.Name = "btnMarkAll" + Me.btnMarkAll.Size = New System.Drawing.Size(109, 21) + Me.btnMarkAll.TabIndex = 1 + Me.btnMarkAll.Text = "Mark All" + Me.btnMarkAll.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnMarkAll.UseVisualStyleBackColor = True + ' + 'pnlSearch + ' + Me.pnlSearch.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.pnlSearch.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.pnlSearch.Controls.Add(Me.cbSearch) + Me.pnlSearch.Controls.Add(Me.picSearch) + Me.pnlSearch.Controls.Add(Me.txtSearch) + Me.pnlSearch.Location = New System.Drawing.Point(0, 23) + Me.pnlSearch.Name = "pnlSearch" + Me.pnlSearch.Size = New System.Drawing.Size(364, 33) + Me.pnlSearch.TabIndex = 0 + ' + 'cbSearch + ' + Me.cbSearch.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.cbSearch.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cbSearch.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.cbSearch.FormattingEnabled = True + Me.cbSearch.Location = New System.Drawing.Point(253, 6) + Me.cbSearch.Name = "cbSearch" + Me.cbSearch.Size = New System.Drawing.Size(83, 21) + Me.cbSearch.TabIndex = 1 + ' + 'picSearch + ' + Me.picSearch.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.picSearch.Image = CType(resources.GetObject("picSearch.Image"), System.Drawing.Image) + Me.picSearch.Location = New System.Drawing.Point(340, 8) + Me.picSearch.Name = "picSearch" + Me.picSearch.Size = New System.Drawing.Size(16, 16) + Me.picSearch.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize + Me.picSearch.TabIndex = 1 + Me.picSearch.TabStop = False + ' + 'txtSearch + ' + Me.txtSearch.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.txtSearch.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.txtSearch.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.txtSearch.Location = New System.Drawing.Point(7, 6) + Me.txtSearch.Name = "txtSearch" + Me.txtSearch.Size = New System.Drawing.Size(242, 22) + Me.txtSearch.TabIndex = 0 + ' + 'tabsMain + ' + Me.tabsMain.Controls.Add(Me.tabMovies) + Me.tabsMain.Controls.Add(Me.tabTV) + Me.tabsMain.Dock = System.Windows.Forms.DockStyle.Top + Me.tabsMain.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.tabsMain.Location = New System.Drawing.Point(0, 0) + Me.tabsMain.Name = "tabsMain" + Me.tabsMain.SelectedIndex = 0 + Me.tabsMain.Size = New System.Drawing.Size(364, 29) + Me.tabsMain.TabIndex = 0 + Me.tabsMain.TabStop = False + ' + 'tabMovies + ' + Me.tabMovies.Location = New System.Drawing.Point(4, 22) + Me.tabMovies.Name = "tabMovies" + Me.tabMovies.Padding = New System.Windows.Forms.Padding(3) + Me.tabMovies.Size = New System.Drawing.Size(356, 3) + Me.tabMovies.TabIndex = 0 + Me.tabMovies.Text = "Movies" + Me.tabMovies.UseVisualStyleBackColor = True + ' + 'tabTV + ' + Me.tabTV.Location = New System.Drawing.Point(4, 22) + Me.tabTV.Name = "tabTV" + Me.tabTV.Padding = New System.Windows.Forms.Padding(3) + Me.tabTV.Size = New System.Drawing.Size(356, 3) + Me.tabTV.TabIndex = 1 + Me.tabTV.Text = "TV Shows" + Me.tabTV.UseVisualStyleBackColor = True + ' + 'pnlFilter + ' + Me.pnlFilter.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.pnlFilter.Controls.Add(Me.GroupBox1) + Me.pnlFilter.Controls.Add(Me.btnClearFilters) + Me.pnlFilter.Controls.Add(Me.GroupBox3) + Me.pnlFilter.Controls.Add(Me.gbSpecific) + Me.pnlFilter.Controls.Add(Me.btnFilterDown) + Me.pnlFilter.Controls.Add(Me.btnFilterUp) + Me.pnlFilter.Controls.Add(Me.lblFilter) + Me.pnlFilter.Dock = System.Windows.Forms.DockStyle.Bottom + Me.pnlFilter.Location = New System.Drawing.Point(0, 602) + Me.pnlFilter.Name = "pnlFilter" + Me.pnlFilter.Size = New System.Drawing.Size(364, 180) + Me.pnlFilter.TabIndex = 12 + Me.pnlFilter.Visible = False + ' + 'GroupBox1 + ' + Me.GroupBox1.Controls.Add(Me.btnIMDBRating) + Me.GroupBox1.Controls.Add(Me.btnSortTitle) + Me.GroupBox1.Controls.Add(Me.btnSortDate) + Me.GroupBox1.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.GroupBox1.Location = New System.Drawing.Point(3, 81) + Me.GroupBox1.Name = "GroupBox1" + Me.GroupBox1.Size = New System.Drawing.Size(131, 77) + Me.GroupBox1.TabIndex = 4 + Me.GroupBox1.TabStop = False + Me.GroupBox1.Text = "Extra Sorting" + ' + 'btnIMDBRating + ' + Me.btnIMDBRating.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.btnIMDBRating.Image = Global.Ember_Media_Manager.My.Resources.Resources.desc + Me.btnIMDBRating.ImageAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnIMDBRating.Location = New System.Drawing.Point(7, 53) + Me.btnIMDBRating.Name = "btnIMDBRating" + Me.btnIMDBRating.Size = New System.Drawing.Size(117, 21) + Me.btnIMDBRating.TabIndex = 2 + Me.btnIMDBRating.Text = "IMDB Rating" + Me.btnIMDBRating.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnIMDBRating.UseVisualStyleBackColor = True + ' + 'btnSortTitle + ' + Me.btnSortTitle.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.btnSortTitle.Image = Global.Ember_Media_Manager.My.Resources.Resources.desc + Me.btnSortTitle.ImageAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnSortTitle.Location = New System.Drawing.Point(7, 33) + Me.btnSortTitle.Name = "btnSortTitle" + Me.btnSortTitle.Size = New System.Drawing.Size(117, 21) + Me.btnSortTitle.TabIndex = 1 + Me.btnSortTitle.Text = "Sort Title" + Me.btnSortTitle.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnSortTitle.UseVisualStyleBackColor = True + ' + 'btnSortDate + ' + Me.btnSortDate.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.btnSortDate.Image = Global.Ember_Media_Manager.My.Resources.Resources.desc + Me.btnSortDate.ImageAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnSortDate.Location = New System.Drawing.Point(7, 13) + Me.btnSortDate.Name = "btnSortDate" + Me.btnSortDate.Size = New System.Drawing.Size(117, 21) + Me.btnSortDate.TabIndex = 0 + Me.btnSortDate.Text = "Date Added" + Me.btnSortDate.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnSortDate.UseVisualStyleBackColor = True + ' + 'btnClearFilters + ' + Me.btnClearFilters.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.btnClearFilters.Image = CType(resources.GetObject("btnClearFilters.Image"), System.Drawing.Image) + Me.btnClearFilters.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnClearFilters.Location = New System.Drawing.Point(22, 160) + Me.btnClearFilters.Name = "btnClearFilters" + Me.btnClearFilters.Size = New System.Drawing.Size(92, 20) + Me.btnClearFilters.TabIndex = 5 + Me.btnClearFilters.Text = "Clear Filters" + Me.btnClearFilters.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnClearFilters.UseVisualStyleBackColor = True + ' + 'GroupBox3 + ' + Me.GroupBox3.Controls.Add(Me.chkFilterTolerance) + Me.GroupBox3.Controls.Add(Me.chkFilterMissing) + Me.GroupBox3.Controls.Add(Me.chkFilterDupe) + Me.GroupBox3.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.GroupBox3.Location = New System.Drawing.Point(3, 22) + Me.GroupBox3.Name = "GroupBox3" + Me.GroupBox3.Size = New System.Drawing.Size(131, 59) + Me.GroupBox3.TabIndex = 3 + Me.GroupBox3.TabStop = False + Me.GroupBox3.Text = "General" + ' + 'chkFilterTolerance + ' + Me.chkFilterTolerance.AutoSize = True + Me.chkFilterTolerance.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.chkFilterTolerance.Location = New System.Drawing.Point(7, 41) + Me.chkFilterTolerance.Name = "chkFilterTolerance" + Me.chkFilterTolerance.Size = New System.Drawing.Size(112, 17) + Me.chkFilterTolerance.TabIndex = 2 + Me.chkFilterTolerance.Text = "Out of Tolerance" + Me.chkFilterTolerance.UseVisualStyleBackColor = True + ' + 'chkFilterMissing + ' + Me.chkFilterMissing.AutoSize = True + Me.chkFilterMissing.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.chkFilterMissing.Location = New System.Drawing.Point(7, 27) + Me.chkFilterMissing.Name = "chkFilterMissing" + Me.chkFilterMissing.Size = New System.Drawing.Size(96, 17) + Me.chkFilterMissing.TabIndex = 1 + Me.chkFilterMissing.Text = "Missing Items" + Me.chkFilterMissing.UseVisualStyleBackColor = True + ' + 'chkFilterDupe + ' + Me.chkFilterDupe.AutoSize = True + Me.chkFilterDupe.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.chkFilterDupe.Location = New System.Drawing.Point(7, 13) + Me.chkFilterDupe.Name = "chkFilterDupe" + Me.chkFilterDupe.Size = New System.Drawing.Size(80, 17) + Me.chkFilterDupe.TabIndex = 0 + Me.chkFilterDupe.Text = "Duplicates" + Me.chkFilterDupe.UseVisualStyleBackColor = True + ' + 'gbSpecific + ' + Me.gbSpecific.Controls.Add(Me.txtFilterSource) + Me.gbSpecific.Controls.Add(Me.Label6) + Me.gbSpecific.Controls.Add(Me.cbFilterFileSource) + Me.gbSpecific.Controls.Add(Me.chkFilterLock) + Me.gbSpecific.Controls.Add(Me.GroupBox2) + Me.gbSpecific.Controls.Add(Me.chkFilterNew) + Me.gbSpecific.Controls.Add(Me.cbFilterYear) + Me.gbSpecific.Controls.Add(Me.chkFilterMark) + Me.gbSpecific.Controls.Add(Me.cbFilterYearMod) + Me.gbSpecific.Controls.Add(Me.Label5) + Me.gbSpecific.Controls.Add(Me.txtFilterGenre) + Me.gbSpecific.Controls.Add(Me.Label2) + Me.gbSpecific.Controls.Add(Me.Label3) + Me.gbSpecific.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.gbSpecific.Location = New System.Drawing.Point(135, 22) + Me.gbSpecific.Name = "gbSpecific" + Me.gbSpecific.Size = New System.Drawing.Size(224, 155) + Me.gbSpecific.TabIndex = 6 + Me.gbSpecific.TabStop = False + Me.gbSpecific.Text = "Specific" + ' + 'txtFilterSource + ' + Me.txtFilterSource.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.txtFilterSource.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtFilterSource.Location = New System.Drawing.Point(50, 129) + Me.txtFilterSource.Name = "txtFilterSource" + Me.txtFilterSource.ReadOnly = True + Me.txtFilterSource.Size = New System.Drawing.Size(166, 22) + Me.txtFilterSource.TabIndex = 11 + ' + 'Label6 + ' + Me.Label6.AutoSize = True + Me.Label6.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Label6.Location = New System.Drawing.Point(6, 108) + Me.Label6.Name = "Label6" + Me.Label6.Size = New System.Drawing.Size(66, 13) + Me.Label6.TabIndex = 8 + Me.Label6.Text = "File Source:" + ' + 'cbFilterFileSource + ' + Me.cbFilterFileSource.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cbFilterFileSource.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.cbFilterFileSource.FormattingEnabled = True + Me.cbFilterFileSource.Location = New System.Drawing.Point(77, 105) + Me.cbFilterFileSource.Name = "cbFilterFileSource" + Me.cbFilterFileSource.Size = New System.Drawing.Size(139, 21) + Me.cbFilterFileSource.TabIndex = 9 + ' + 'chkFilterLock + ' + Me.chkFilterLock.AutoSize = True + Me.chkFilterLock.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.chkFilterLock.Location = New System.Drawing.Point(73, 18) + Me.chkFilterLock.Name = "chkFilterLock" + Me.chkFilterLock.Size = New System.Drawing.Size(62, 17) + Me.chkFilterLock.TabIndex = 2 + Me.chkFilterLock.Text = "Locked" + Me.chkFilterLock.UseVisualStyleBackColor = True + ' + 'GroupBox2 + ' + Me.GroupBox2.Controls.Add(Me.rbFilterAnd) + Me.GroupBox2.Controls.Add(Me.rbFilterOr) + Me.GroupBox2.Location = New System.Drawing.Point(140, 10) + Me.GroupBox2.Name = "GroupBox2" + Me.GroupBox2.Size = New System.Drawing.Size(76, 43) + Me.GroupBox2.TabIndex = 3 + Me.GroupBox2.TabStop = False + Me.GroupBox2.Text = "Modifier" + ' + 'rbFilterAnd + ' + Me.rbFilterAnd.AutoSize = True + Me.rbFilterAnd.Checked = True + Me.rbFilterAnd.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.rbFilterAnd.Location = New System.Drawing.Point(6, 11) + Me.rbFilterAnd.Name = "rbFilterAnd" + Me.rbFilterAnd.Size = New System.Drawing.Size(46, 17) + Me.rbFilterAnd.TabIndex = 0 + Me.rbFilterAnd.TabStop = True + Me.rbFilterAnd.Text = "And" + Me.rbFilterAnd.UseVisualStyleBackColor = True + ' + 'rbFilterOr + ' + Me.rbFilterOr.AutoSize = True + Me.rbFilterOr.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.rbFilterOr.Location = New System.Drawing.Point(6, 25) + Me.rbFilterOr.Name = "rbFilterOr" + Me.rbFilterOr.Size = New System.Drawing.Size(38, 17) + Me.rbFilterOr.TabIndex = 1 + Me.rbFilterOr.Text = "Or" + Me.rbFilterOr.UseVisualStyleBackColor = True + ' + 'chkFilterNew + ' + Me.chkFilterNew.AutoSize = True + Me.chkFilterNew.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.chkFilterNew.Location = New System.Drawing.Point(9, 18) + Me.chkFilterNew.Name = "chkFilterNew" + Me.chkFilterNew.Size = New System.Drawing.Size(49, 17) + Me.chkFilterNew.TabIndex = 0 + Me.chkFilterNew.Text = "New" + Me.chkFilterNew.UseVisualStyleBackColor = True + ' + 'cbFilterYear + ' + Me.cbFilterYear.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cbFilterYear.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.cbFilterYear.FormattingEnabled = True + Me.cbFilterYear.Items.AddRange(New Object() {"=", ">", "<", "!="}) + Me.cbFilterYear.Location = New System.Drawing.Point(141, 81) + Me.cbFilterYear.Name = "cbFilterYear" + Me.cbFilterYear.Size = New System.Drawing.Size(75, 21) + Me.cbFilterYear.TabIndex = 7 + ' + 'chkFilterMark + ' + Me.chkFilterMark.AutoSize = True + Me.chkFilterMark.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.chkFilterMark.Location = New System.Drawing.Point(9, 36) + Me.chkFilterMark.Name = "chkFilterMark" + Me.chkFilterMark.Size = New System.Drawing.Size(65, 17) + Me.chkFilterMark.TabIndex = 1 + Me.chkFilterMark.Text = "Marked" + Me.chkFilterMark.UseVisualStyleBackColor = True + ' + 'cbFilterYearMod + ' + Me.cbFilterYearMod.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.cbFilterYearMod.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.cbFilterYearMod.FormattingEnabled = True + Me.cbFilterYearMod.Items.AddRange(New Object() {"=", ">", "<", "<>"}) + Me.cbFilterYearMod.Location = New System.Drawing.Point(77, 81) + Me.cbFilterYearMod.Name = "cbFilterYearMod" + Me.cbFilterYearMod.Size = New System.Drawing.Size(59, 21) + Me.cbFilterYearMod.TabIndex = 6 + ' + 'Label5 + ' + Me.Label5.AutoSize = True + Me.Label5.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Label5.Location = New System.Drawing.Point(6, 83) + Me.Label5.Name = "Label5" + Me.Label5.Size = New System.Drawing.Size(31, 13) + Me.Label5.TabIndex = 5 + Me.Label5.Text = "Year:" + ' + 'txtFilterGenre + ' + Me.txtFilterGenre.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.txtFilterGenre.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtFilterGenre.Location = New System.Drawing.Point(50, 56) + Me.txtFilterGenre.Name = "txtFilterGenre" + Me.txtFilterGenre.ReadOnly = True + Me.txtFilterGenre.Size = New System.Drawing.Size(166, 22) + Me.txtFilterGenre.TabIndex = 4 + ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Label2.Location = New System.Drawing.Point(6, 132) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(45, 13) + Me.Label2.TabIndex = 10 + Me.Label2.Text = "Source:" + ' + 'Label3 + ' + Me.Label3.AutoSize = True + Me.Label3.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Label3.Location = New System.Drawing.Point(6, 58) + Me.Label3.Name = "Label3" + Me.Label3.Size = New System.Drawing.Size(41, 13) + Me.Label3.TabIndex = 31 + Me.Label3.Text = "Genre:" + ' + 'btnFilterDown + ' + Me.btnFilterDown.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.btnFilterDown.BackColor = System.Drawing.SystemColors.Control + Me.btnFilterDown.Enabled = False + Me.btnFilterDown.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.btnFilterDown.Location = New System.Drawing.Point(324, 1) + Me.btnFilterDown.Name = "btnFilterDown" + Me.btnFilterDown.Size = New System.Drawing.Size(30, 22) + Me.btnFilterDown.TabIndex = 2 + Me.btnFilterDown.TabStop = False + Me.btnFilterDown.Text = "v" + Me.btnFilterDown.TextAlign = System.Drawing.ContentAlignment.TopCenter + Me.btnFilterDown.UseVisualStyleBackColor = False + ' + 'btnFilterUp + ' + Me.btnFilterUp.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.btnFilterUp.BackColor = System.Drawing.SystemColors.Control + Me.btnFilterUp.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.btnFilterUp.Location = New System.Drawing.Point(292, 1) + Me.btnFilterUp.Name = "btnFilterUp" + Me.btnFilterUp.Size = New System.Drawing.Size(30, 22) + Me.btnFilterUp.TabIndex = 1 + Me.btnFilterUp.TabStop = False + Me.btnFilterUp.Text = "^" + Me.btnFilterUp.TextAlign = System.Drawing.ContentAlignment.TopCenter + Me.btnFilterUp.UseVisualStyleBackColor = False + ' + 'lblFilter + ' + Me.lblFilter.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.lblFilter.BackColor = System.Drawing.SystemColors.ControlDarkDark + Me.lblFilter.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.lblFilter.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblFilter.ForeColor = System.Drawing.SystemColors.HighlightText + Me.lblFilter.Location = New System.Drawing.Point(4, 3) + Me.lblFilter.Name = "lblFilter" + Me.lblFilter.Size = New System.Drawing.Size(354, 17) + Me.lblFilter.TabIndex = 0 + Me.lblFilter.Text = "Filters" + Me.lblFilter.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + ' + 'pnlTop + ' + Me.pnlTop.BackColor = System.Drawing.Color.Gainsboro + Me.pnlTop.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.pnlTop.Controls.Add(Me.lblTitle) + Me.pnlTop.Controls.Add(Me.pnlInfoIcons) + Me.pnlTop.Controls.Add(Me.lblRuntime) + Me.pnlTop.Controls.Add(Me.lblTagline) + Me.pnlTop.Controls.Add(Me.pnlRating) + Me.pnlTop.Dock = System.Windows.Forms.DockStyle.Top + Me.pnlTop.Location = New System.Drawing.Point(0, 25) + Me.pnlTop.Name = "pnlTop" + Me.pnlTop.Size = New System.Drawing.Size(1097, 74) + Me.pnlTop.TabIndex = 9 + Me.pnlTop.Visible = False + ' + 'lblTitle + ' + Me.lblTitle.AutoSize = True + Me.lblTitle.BackColor = System.Drawing.Color.Transparent + Me.lblTitle.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblTitle.ForeColor = System.Drawing.Color.Black + Me.lblTitle.Location = New System.Drawing.Point(4, 2) + Me.lblTitle.Name = "lblTitle" + Me.lblTitle.Size = New System.Drawing.Size(0, 20) + Me.lblTitle.TabIndex = 25 + Me.lblTitle.UseMnemonic = False + ' + 'pnlInfoIcons + ' + Me.pnlInfoIcons.BackColor = System.Drawing.Color.Transparent + Me.pnlInfoIcons.Controls.Add(Me.lblOriginalTitle) + Me.pnlInfoIcons.Controls.Add(Me.lblStudio) + Me.pnlInfoIcons.Controls.Add(Me.pbVType) + Me.pnlInfoIcons.Controls.Add(Me.pbStudio) + Me.pnlInfoIcons.Controls.Add(Me.pbVideo) + Me.pnlInfoIcons.Controls.Add(Me.pbAudio) + Me.pnlInfoIcons.Controls.Add(Me.pbResolution) + Me.pnlInfoIcons.Controls.Add(Me.pbChannels) + Me.pnlInfoIcons.Dock = System.Windows.Forms.DockStyle.Right + Me.pnlInfoIcons.Location = New System.Drawing.Point(705, 0) + Me.pnlInfoIcons.Name = "pnlInfoIcons" + Me.pnlInfoIcons.Size = New System.Drawing.Size(390, 72) + Me.pnlInfoIcons.TabIndex = 31 + ' + 'lblOriginalTitle + ' + Me.lblOriginalTitle.AutoSize = True + Me.lblOriginalTitle.BackColor = System.Drawing.Color.Transparent + Me.lblOriginalTitle.Dock = System.Windows.Forms.DockStyle.Right + Me.lblOriginalTitle.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblOriginalTitle.ForeColor = System.Drawing.Color.Black + Me.lblOriginalTitle.Location = New System.Drawing.Point(390, 0) + Me.lblOriginalTitle.Name = "lblOriginalTitle" + Me.lblOriginalTitle.Size = New System.Drawing.Size(0, 20) + Me.lblOriginalTitle.TabIndex = 38 + Me.lblOriginalTitle.TextAlign = System.Drawing.ContentAlignment.TopRight + Me.lblOriginalTitle.UseMnemonic = False + ' + 'lblStudio + ' + Me.lblStudio.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.lblStudio.Location = New System.Drawing.Point(223, 55) + Me.lblStudio.Name = "lblStudio" + Me.lblStudio.Size = New System.Drawing.Size(167, 18) + Me.lblStudio.TabIndex = 37 + Me.lblStudio.Text = " " + Me.lblStudio.TextAlign = System.Drawing.ContentAlignment.TopRight + ' + 'pbVType + ' + Me.pbVType.BackColor = System.Drawing.Color.Transparent + Me.pbVType.Location = New System.Drawing.Point(65, 15) + Me.pbVType.Name = "pbVType" + Me.pbVType.Size = New System.Drawing.Size(64, 44) + Me.pbVType.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom + Me.pbVType.TabIndex = 36 + Me.pbVType.TabStop = False + ' + 'pbStudio + ' + Me.pbStudio.BackColor = System.Drawing.Color.Transparent + Me.pbStudio.Location = New System.Drawing.Point(325, 15) + Me.pbStudio.Name = "pbStudio" + Me.pbStudio.Size = New System.Drawing.Size(64, 44) + Me.pbStudio.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom + Me.pbStudio.TabIndex = 31 + Me.pbStudio.TabStop = False + ' + 'pbVideo + ' + Me.pbVideo.BackColor = System.Drawing.Color.Transparent + Me.pbVideo.Location = New System.Drawing.Point(0, 15) + Me.pbVideo.Name = "pbVideo" + Me.pbVideo.Size = New System.Drawing.Size(64, 44) + Me.pbVideo.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom + Me.pbVideo.TabIndex = 33 + Me.pbVideo.TabStop = False + ' + 'pbAudio + ' + Me.pbAudio.BackColor = System.Drawing.Color.Transparent + Me.pbAudio.Location = New System.Drawing.Point(195, 15) + Me.pbAudio.Name = "pbAudio" + Me.pbAudio.Size = New System.Drawing.Size(64, 44) + Me.pbAudio.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom + Me.pbAudio.TabIndex = 35 + Me.pbAudio.TabStop = False + ' + 'pbResolution + ' + Me.pbResolution.BackColor = System.Drawing.Color.Transparent + Me.pbResolution.Location = New System.Drawing.Point(130, 15) + Me.pbResolution.Name = "pbResolution" + Me.pbResolution.Size = New System.Drawing.Size(64, 44) + Me.pbResolution.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom + Me.pbResolution.TabIndex = 34 + Me.pbResolution.TabStop = False + ' + 'pbChannels + ' + Me.pbChannels.BackColor = System.Drawing.Color.Transparent + Me.pbChannels.Location = New System.Drawing.Point(260, 15) + Me.pbChannels.Name = "pbChannels" + Me.pbChannels.Size = New System.Drawing.Size(64, 44) + Me.pbChannels.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom + Me.pbChannels.TabIndex = 32 + Me.pbChannels.TabStop = False + ' + 'lblRuntime + ' + Me.lblRuntime.AutoSize = True + Me.lblRuntime.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblRuntime.ForeColor = System.Drawing.Color.Black + Me.lblRuntime.Location = New System.Drawing.Point(213, 32) + Me.lblRuntime.Name = "lblRuntime" + Me.lblRuntime.Size = New System.Drawing.Size(0, 13) + Me.lblRuntime.TabIndex = 32 + Me.lblRuntime.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + ' + 'lblTagline + ' + Me.lblTagline.AutoSize = True + Me.lblTagline.BackColor = System.Drawing.Color.Transparent + Me.lblTagline.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblTagline.ForeColor = System.Drawing.Color.Black + Me.lblTagline.Location = New System.Drawing.Point(5, 55) + Me.lblTagline.Name = "lblTagline" + Me.lblTagline.Size = New System.Drawing.Size(0, 13) + Me.lblTagline.TabIndex = 26 + Me.lblTagline.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.lblTagline.UseMnemonic = False + ' + 'pnlRating + ' + Me.pnlRating.BackColor = System.Drawing.Color.Transparent + Me.pnlRating.Controls.Add(Me.pbStar5) + Me.pnlRating.Controls.Add(Me.pbStar4) + Me.pnlRating.Controls.Add(Me.pbStar3) + Me.pnlRating.Controls.Add(Me.pbStar2) + Me.pnlRating.Controls.Add(Me.pbStar1) + Me.pnlRating.Controls.Add(Me.lblVotes) + Me.pnlRating.Location = New System.Drawing.Point(6, 24) + Me.pnlRating.Name = "pnlRating" + Me.pnlRating.Size = New System.Drawing.Size(206, 27) + Me.pnlRating.TabIndex = 24 + ' + 'pbStar5 + ' + Me.pbStar5.Location = New System.Drawing.Point(97, 1) + Me.pbStar5.Name = "pbStar5" + Me.pbStar5.Size = New System.Drawing.Size(24, 24) + Me.pbStar5.TabIndex = 27 + Me.pbStar5.TabStop = False + ' + 'pbStar4 + ' + Me.pbStar4.Location = New System.Drawing.Point(73, 1) + Me.pbStar4.Name = "pbStar4" + Me.pbStar4.Size = New System.Drawing.Size(24, 24) + Me.pbStar4.TabIndex = 26 + Me.pbStar4.TabStop = False + ' + 'pbStar3 + ' + Me.pbStar3.Location = New System.Drawing.Point(49, 1) + Me.pbStar3.Name = "pbStar3" + Me.pbStar3.Size = New System.Drawing.Size(24, 24) + Me.pbStar3.TabIndex = 25 + Me.pbStar3.TabStop = False + ' + 'pbStar2 + ' + Me.pbStar2.Location = New System.Drawing.Point(25, 1) + Me.pbStar2.Name = "pbStar2" + Me.pbStar2.Size = New System.Drawing.Size(24, 24) + Me.pbStar2.TabIndex = 24 + Me.pbStar2.TabStop = False + ' + 'pbStar1 + ' + Me.pbStar1.Location = New System.Drawing.Point(1, 1) + Me.pbStar1.Name = "pbStar1" + Me.pbStar1.Size = New System.Drawing.Size(24, 24) + Me.pbStar1.TabIndex = 23 + Me.pbStar1.TabStop = False + ' + 'lblVotes + ' + Me.lblVotes.AutoSize = True + Me.lblVotes.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblVotes.ForeColor = System.Drawing.Color.Black + Me.lblVotes.Location = New System.Drawing.Point(123, 8) + Me.lblVotes.Name = "lblVotes" + Me.lblVotes.Size = New System.Drawing.Size(0, 13) + Me.lblVotes.TabIndex = 22 + Me.lblVotes.TextAlign = System.Drawing.ContentAlignment.MiddleRight + ' + 'pnlCancel + ' + Me.pnlCancel.BackColor = System.Drawing.Color.LightGray + Me.pnlCancel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.pnlCancel.Controls.Add(Me.pbCanceling) + Me.pnlCancel.Controls.Add(Me.lblCanceling) + Me.pnlCancel.Controls.Add(Me.btnCancel) + Me.pnlCancel.Location = New System.Drawing.Point(273, 100) + Me.pnlCancel.Name = "pnlCancel" + Me.pnlCancel.Size = New System.Drawing.Size(214, 63) + Me.pnlCancel.TabIndex = 8 + Me.pnlCancel.Visible = False + ' + 'pbCanceling + ' + Me.pbCanceling.Location = New System.Drawing.Point(5, 32) + Me.pbCanceling.MarqueeAnimationSpeed = 25 + Me.pbCanceling.Name = "pbCanceling" + Me.pbCanceling.Size = New System.Drawing.Size(203, 20) + Me.pbCanceling.Style = System.Windows.Forms.ProgressBarStyle.Marquee + Me.pbCanceling.TabIndex = 2 + Me.pbCanceling.Visible = False + ' + 'lblCanceling + ' + Me.lblCanceling.AutoSize = True + Me.lblCanceling.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.lblCanceling.Location = New System.Drawing.Point(4, 12) + Me.lblCanceling.Name = "lblCanceling" + Me.lblCanceling.Size = New System.Drawing.Size(128, 17) + Me.lblCanceling.TabIndex = 1 + Me.lblCanceling.Text = "Canceling Scraper..." + Me.lblCanceling.Visible = False + ' + 'btnCancel + ' + Me.btnCancel.Font = New System.Drawing.Font("Segoe UI", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.btnCancel.Image = CType(resources.GetObject("btnCancel.Image"), System.Drawing.Image) + Me.btnCancel.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnCancel.Location = New System.Drawing.Point(4, 4) + Me.btnCancel.Name = "btnCancel" + Me.btnCancel.Size = New System.Drawing.Size(205, 55) + Me.btnCancel.TabIndex = 0 + Me.btnCancel.TabStop = False + Me.btnCancel.Text = "Cancel Scraper" + Me.btnCancel.TextAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnCancel.UseVisualStyleBackColor = True + ' + 'pnlAllSeason + ' + Me.pnlAllSeason.BackColor = System.Drawing.Color.Gainsboro + Me.pnlAllSeason.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.pnlAllSeason.Controls.Add(Me.pbAllSeason) + Me.pnlAllSeason.Location = New System.Drawing.Point(508, 112) + Me.pnlAllSeason.Name = "pnlAllSeason" + Me.pnlAllSeason.Size = New System.Drawing.Size(131, 169) + Me.pnlAllSeason.TabIndex = 3 + Me.pnlAllSeason.Visible = False + ' + 'pbAllSeason + ' + Me.pbAllSeason.BackColor = System.Drawing.SystemColors.Control + Me.pbAllSeason.Location = New System.Drawing.Point(4, 4) + Me.pbAllSeason.Name = "pbAllSeason" + Me.pbAllSeason.Size = New System.Drawing.Size(121, 159) + Me.pbAllSeason.TabIndex = 0 + Me.pbAllSeason.TabStop = False + ' + 'pbAllSeasonCache + ' + Me.pbAllSeasonCache.Location = New System.Drawing.Point(333, 107) + Me.pbAllSeasonCache.Name = "pbAllSeasonCache" + Me.pbAllSeasonCache.Size = New System.Drawing.Size(115, 111) + Me.pbAllSeasonCache.TabIndex = 13 + Me.pbAllSeasonCache.TabStop = False + Me.pbAllSeasonCache.Visible = False + ' + 'pnlNoInfo + ' + Me.pnlNoInfo.BackColor = System.Drawing.Color.LightGray + Me.pnlNoInfo.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.pnlNoInfo.Controls.Add(Me.Panel2) + Me.pnlNoInfo.Location = New System.Drawing.Point(241, 300) + Me.pnlNoInfo.Name = "pnlNoInfo" + Me.pnlNoInfo.Size = New System.Drawing.Size(259, 143) + Me.pnlNoInfo.TabIndex = 8 + Me.pnlNoInfo.Visible = False + ' + 'Panel2 + ' + Me.Panel2.BackColor = System.Drawing.Color.White + Me.Panel2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.Panel2.Controls.Add(Me.PictureBox1) + Me.Panel2.Controls.Add(Me.Label1) + Me.Panel2.Location = New System.Drawing.Point(3, 4) + Me.Panel2.Name = "Panel2" + Me.Panel2.Size = New System.Drawing.Size(251, 133) + Me.Panel2.TabIndex = 0 + ' + 'PictureBox1 + ' + Me.PictureBox1.Image = CType(resources.GetObject("PictureBox1.Image"), System.Drawing.Image) + Me.PictureBox1.Location = New System.Drawing.Point(7, 38) + Me.PictureBox1.Name = "PictureBox1" + Me.PictureBox1.Size = New System.Drawing.Size(63, 63) + Me.PictureBox1.TabIndex = 1 + Me.PictureBox1.TabStop = False + ' + 'Label1 + ' + Me.Label1.Font = New System.Drawing.Font("Segoe UI", 14.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.Label1.Location = New System.Drawing.Point(71, 29) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(173, 78) + Me.Label1.TabIndex = 0 + Me.Label1.Text = "No Information is Available for This Movie" + Me.Label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter + ' + 'pnlInfoPanel + ' + Me.pnlInfoPanel.BackColor = System.Drawing.Color.Gainsboro + Me.pnlInfoPanel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.pnlInfoPanel.Controls.Add(Me.txtCerts) + Me.pnlInfoPanel.Controls.Add(Me.lblCertsHeader) + Me.pnlInfoPanel.Controls.Add(Me.lblReleaseDate) + Me.pnlInfoPanel.Controls.Add(Me.lblReleaseDateHeader) + Me.pnlInfoPanel.Controls.Add(Me.btnMid) + Me.pnlInfoPanel.Controls.Add(Me.pbMILoading) + Me.pnlInfoPanel.Controls.Add(Me.btnMetaDataRefresh) + Me.pnlInfoPanel.Controls.Add(Me.lblMetaDataHeader) + Me.pnlInfoPanel.Controls.Add(Me.txtMetaData) + Me.pnlInfoPanel.Controls.Add(Me.btnPlay) + Me.pnlInfoPanel.Controls.Add(Me.txtFilePath) + Me.pnlInfoPanel.Controls.Add(Me.lblFilePathHeader) + Me.pnlInfoPanel.Controls.Add(Me.txtIMDBID) + Me.pnlInfoPanel.Controls.Add(Me.lblIMDBHeader) + Me.pnlInfoPanel.Controls.Add(Me.lblDirector) + Me.pnlInfoPanel.Controls.Add(Me.lblDirectorHeader) + Me.pnlInfoPanel.Controls.Add(Me.pnlActors) + Me.pnlInfoPanel.Controls.Add(Me.lblOutlineHeader) + Me.pnlInfoPanel.Controls.Add(Me.txtOutline) + Me.pnlInfoPanel.Controls.Add(Me.pnlTop250) + Me.pnlInfoPanel.Controls.Add(Me.lblPlotHeader) + Me.pnlInfoPanel.Controls.Add(Me.txtPlot) + Me.pnlInfoPanel.Controls.Add(Me.btnDown) + Me.pnlInfoPanel.Controls.Add(Me.btnUp) + Me.pnlInfoPanel.Controls.Add(Me.lblInfoPanelHeader) + Me.pnlInfoPanel.Dock = System.Windows.Forms.DockStyle.Bottom + Me.pnlInfoPanel.Location = New System.Drawing.Point(0, 440) + Me.pnlInfoPanel.Name = "pnlInfoPanel" + Me.pnlInfoPanel.Size = New System.Drawing.Size(1097, 342) + Me.pnlInfoPanel.TabIndex = 10 + ' + 'txtCerts + ' + Me.txtCerts.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.txtCerts.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.txtCerts.Location = New System.Drawing.Point(117, 208) + Me.txtCerts.Name = "txtCerts" + Me.txtCerts.ReadOnly = True + Me.txtCerts.Size = New System.Drawing.Size(661, 22) + Me.txtCerts.TabIndex = 3 + Me.txtCerts.TabStop = False + ' + 'lblCertsHeader + ' + Me.lblCertsHeader.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.lblCertsHeader.BackColor = System.Drawing.SystemColors.ControlDarkDark + Me.lblCertsHeader.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.lblCertsHeader.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblCertsHeader.ForeColor = System.Drawing.SystemColors.HighlightText + Me.lblCertsHeader.Location = New System.Drawing.Point(117, 188) + Me.lblCertsHeader.Name = "lblCertsHeader" + Me.lblCertsHeader.Size = New System.Drawing.Size(661, 17) + Me.lblCertsHeader.TabIndex = 2 + Me.lblCertsHeader.Text = "Certifications" + Me.lblCertsHeader.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + ' + 'lblReleaseDate + ' + Me.lblReleaseDate.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.lblReleaseDate.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblReleaseDate.ForeColor = System.Drawing.Color.Black + Me.lblReleaseDate.Location = New System.Drawing.Point(612, 48) + Me.lblReleaseDate.Name = "lblReleaseDate" + Me.lblReleaseDate.Size = New System.Drawing.Size(105, 16) + Me.lblReleaseDate.TabIndex = 39 + Me.lblReleaseDate.TextAlign = System.Drawing.ContentAlignment.MiddleCenter + ' + 'lblReleaseDateHeader + ' + Me.lblReleaseDateHeader.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.lblReleaseDateHeader.BackColor = System.Drawing.SystemColors.ControlDarkDark + Me.lblReleaseDateHeader.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.lblReleaseDateHeader.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblReleaseDateHeader.ForeColor = System.Drawing.SystemColors.HighlightText + Me.lblReleaseDateHeader.Location = New System.Drawing.Point(612, 27) + Me.lblReleaseDateHeader.Name = "lblReleaseDateHeader" + Me.lblReleaseDateHeader.Size = New System.Drawing.Size(105, 17) + Me.lblReleaseDateHeader.TabIndex = 38 + Me.lblReleaseDateHeader.Text = "Release Date" + Me.lblReleaseDateHeader.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + ' + 'btnMid + ' + Me.btnMid.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.btnMid.BackColor = System.Drawing.SystemColors.Control + Me.btnMid.Location = New System.Drawing.Point(1026, 1) + Me.btnMid.Name = "btnMid" + Me.btnMid.Size = New System.Drawing.Size(30, 22) + Me.btnMid.TabIndex = 37 + Me.btnMid.TabStop = False + Me.btnMid.Text = "-" + Me.btnMid.TextAlign = System.Drawing.ContentAlignment.TopCenter + Me.btnMid.UseVisualStyleBackColor = False + ' + 'pbMILoading + ' + Me.pbMILoading.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.pbMILoading.Image = CType(resources.GetObject("pbMILoading.Image"), System.Drawing.Image) + Me.pbMILoading.Location = New System.Drawing.Point(928, 374) + Me.pbMILoading.Name = "pbMILoading" + Me.pbMILoading.Size = New System.Drawing.Size(41, 39) + Me.pbMILoading.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage + Me.pbMILoading.TabIndex = 36 + Me.pbMILoading.TabStop = False + Me.pbMILoading.Visible = False + ' + 'btnMetaDataRefresh + ' + Me.btnMetaDataRefresh.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.btnMetaDataRefresh.Location = New System.Drawing.Point(1015, 278) + Me.btnMetaDataRefresh.Name = "btnMetaDataRefresh" + Me.btnMetaDataRefresh.Size = New System.Drawing.Size(75, 23) + Me.btnMetaDataRefresh.TabIndex = 9 + Me.btnMetaDataRefresh.TabStop = False + Me.btnMetaDataRefresh.Text = "Refresh" + Me.btnMetaDataRefresh.UseVisualStyleBackColor = True + ' + 'lblMetaDataHeader + ' + Me.lblMetaDataHeader.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.lblMetaDataHeader.BackColor = System.Drawing.SystemColors.ControlDarkDark + Me.lblMetaDataHeader.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.lblMetaDataHeader.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblMetaDataHeader.ForeColor = System.Drawing.SystemColors.HighlightText + Me.lblMetaDataHeader.Location = New System.Drawing.Point(791, 282) + Me.lblMetaDataHeader.Name = "lblMetaDataHeader" + Me.lblMetaDataHeader.Size = New System.Drawing.Size(294, 17) + Me.lblMetaDataHeader.TabIndex = 8 + Me.lblMetaDataHeader.Text = "Meta Data" + Me.lblMetaDataHeader.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + ' + 'txtMetaData + ' + Me.txtMetaData.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.txtMetaData.BackColor = System.Drawing.Color.Gainsboro + Me.txtMetaData.BorderStyle = System.Windows.Forms.BorderStyle.None + Me.txtMetaData.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtMetaData.ForeColor = System.Drawing.Color.Black + Me.txtMetaData.Location = New System.Drawing.Point(791, 303) + Me.txtMetaData.Multiline = True + Me.txtMetaData.Name = "txtMetaData" + Me.txtMetaData.ReadOnly = True + Me.txtMetaData.ScrollBars = System.Windows.Forms.ScrollBars.Vertical + Me.txtMetaData.Size = New System.Drawing.Size(296, 184) + Me.txtMetaData.TabIndex = 10 + Me.txtMetaData.TabStop = False + ' + 'btnPlay + ' + Me.btnPlay.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.btnPlay.Image = Global.Ember_Media_Manager.My.Resources.Resources.Play_Icon + Me.btnPlay.Location = New System.Drawing.Point(759, 254) + Me.btnPlay.Name = "btnPlay" + Me.btnPlay.Size = New System.Drawing.Size(20, 20) + Me.btnPlay.TabIndex = 6 + Me.btnPlay.TabStop = False + Me.btnPlay.UseVisualStyleBackColor = True + ' + 'txtFilePath + ' + Me.txtFilePath.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.txtFilePath.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.txtFilePath.Location = New System.Drawing.Point(3, 254) + Me.txtFilePath.Name = "txtFilePath" + Me.txtFilePath.ReadOnly = True + Me.txtFilePath.Size = New System.Drawing.Size(753, 22) + Me.txtFilePath.TabIndex = 5 + Me.txtFilePath.TabStop = False + ' + 'lblFilePathHeader + ' + Me.lblFilePathHeader.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.lblFilePathHeader.BackColor = System.Drawing.SystemColors.ControlDarkDark + Me.lblFilePathHeader.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.lblFilePathHeader.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblFilePathHeader.ForeColor = System.Drawing.SystemColors.HighlightText + Me.lblFilePathHeader.Location = New System.Drawing.Point(3, 234) + Me.lblFilePathHeader.Name = "lblFilePathHeader" + Me.lblFilePathHeader.Size = New System.Drawing.Size(775, 17) + Me.lblFilePathHeader.TabIndex = 4 + Me.lblFilePathHeader.Text = "File Path" + Me.lblFilePathHeader.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + ' + 'txtIMDBID + ' + Me.txtIMDBID.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.txtIMDBID.Location = New System.Drawing.Point(3, 208) + Me.txtIMDBID.Name = "txtIMDBID" + Me.txtIMDBID.ReadOnly = True + Me.txtIMDBID.Size = New System.Drawing.Size(108, 22) + Me.txtIMDBID.TabIndex = 1 + Me.txtIMDBID.TabStop = False + ' + 'lblIMDBHeader + ' + Me.lblIMDBHeader.BackColor = System.Drawing.SystemColors.ControlDarkDark + Me.lblIMDBHeader.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.lblIMDBHeader.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblIMDBHeader.ForeColor = System.Drawing.SystemColors.HighlightText + Me.lblIMDBHeader.Location = New System.Drawing.Point(3, 188) + Me.lblIMDBHeader.Name = "lblIMDBHeader" + Me.lblIMDBHeader.Size = New System.Drawing.Size(108, 17) + Me.lblIMDBHeader.TabIndex = 0 + Me.lblIMDBHeader.Text = "IMDB ID" + Me.lblIMDBHeader.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + ' + 'lblDirector + ' + Me.lblDirector.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.lblDirector.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblDirector.ForeColor = System.Drawing.Color.Black + Me.lblDirector.Location = New System.Drawing.Point(3, 48) + Me.lblDirector.Name = "lblDirector" + Me.lblDirector.Size = New System.Drawing.Size(604, 16) + Me.lblDirector.TabIndex = 27 + Me.lblDirector.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + ' + 'lblDirectorHeader + ' + Me.lblDirectorHeader.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.lblDirectorHeader.BackColor = System.Drawing.SystemColors.ControlDarkDark + Me.lblDirectorHeader.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.lblDirectorHeader.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblDirectorHeader.ForeColor = System.Drawing.SystemColors.HighlightText + Me.lblDirectorHeader.Location = New System.Drawing.Point(3, 27) + Me.lblDirectorHeader.Name = "lblDirectorHeader" + Me.lblDirectorHeader.Size = New System.Drawing.Size(603, 17) + Me.lblDirectorHeader.TabIndex = 21 + Me.lblDirectorHeader.Text = "Director" + Me.lblDirectorHeader.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + ' + 'pnlActors + ' + Me.pnlActors.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.pnlActors.BackColor = System.Drawing.Color.Gainsboro + Me.pnlActors.Controls.Add(Me.pbActLoad) + Me.pnlActors.Controls.Add(Me.lstActors) + Me.pnlActors.Controls.Add(Me.pbActors) + Me.pnlActors.Controls.Add(Me.lblActorsHeader) + Me.pnlActors.Location = New System.Drawing.Point(790, 29) + Me.pnlActors.Name = "pnlActors" + Me.pnlActors.Size = New System.Drawing.Size(302, 244) + Me.pnlActors.TabIndex = 19 + ' + 'pbActLoad + ' + Me.pbActLoad.Image = CType(resources.GetObject("pbActLoad.Image"), System.Drawing.Image) + Me.pbActLoad.Location = New System.Drawing.Point(240, 111) + Me.pbActLoad.Name = "pbActLoad" + Me.pbActLoad.Size = New System.Drawing.Size(41, 39) + Me.pbActLoad.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage + Me.pbActLoad.TabIndex = 26 + Me.pbActLoad.TabStop = False + Me.pbActLoad.Visible = False + ' + 'lstActors + ' + Me.lstActors.BackColor = System.Drawing.Color.Gainsboro + Me.lstActors.BorderStyle = System.Windows.Forms.BorderStyle.None + Me.lstActors.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lstActors.ForeColor = System.Drawing.Color.Black + Me.lstActors.FormattingEnabled = True + Me.lstActors.Location = New System.Drawing.Point(3, 21) + Me.lstActors.Name = "lstActors" + Me.lstActors.Size = New System.Drawing.Size(214, 221) + Me.lstActors.TabIndex = 28 + Me.lstActors.TabStop = False + ' + 'pbActors + ' + Me.pbActors.Image = Global.Ember_Media_Manager.My.Resources.Resources.actor_silhouette + Me.pbActors.Location = New System.Drawing.Point(220, 75) + Me.pbActors.Name = "pbActors" + Me.pbActors.Size = New System.Drawing.Size(81, 106) + Me.pbActors.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom + Me.pbActors.TabIndex = 27 + Me.pbActors.TabStop = False + ' + 'lblActorsHeader + ' + Me.lblActorsHeader.BackColor = System.Drawing.SystemColors.ControlDarkDark + Me.lblActorsHeader.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.lblActorsHeader.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblActorsHeader.ForeColor = System.Drawing.SystemColors.HighlightText + Me.lblActorsHeader.Location = New System.Drawing.Point(0, 0) + Me.lblActorsHeader.Name = "lblActorsHeader" + Me.lblActorsHeader.Size = New System.Drawing.Size(301, 17) + Me.lblActorsHeader.TabIndex = 18 + Me.lblActorsHeader.Text = "Cast" + Me.lblActorsHeader.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + ' + 'lblOutlineHeader + ' + Me.lblOutlineHeader.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.lblOutlineHeader.BackColor = System.Drawing.SystemColors.ControlDarkDark + Me.lblOutlineHeader.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.lblOutlineHeader.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblOutlineHeader.ForeColor = System.Drawing.SystemColors.HighlightText + Me.lblOutlineHeader.Location = New System.Drawing.Point(3, 81) + Me.lblOutlineHeader.Name = "lblOutlineHeader" + Me.lblOutlineHeader.Size = New System.Drawing.Size(775, 17) + Me.lblOutlineHeader.TabIndex = 17 + Me.lblOutlineHeader.Text = "Plot Outline" + Me.lblOutlineHeader.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + ' + 'txtOutline + ' + Me.txtOutline.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.txtOutline.BackColor = System.Drawing.Color.Gainsboro + Me.txtOutline.BorderStyle = System.Windows.Forms.BorderStyle.None + Me.txtOutline.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtOutline.ForeColor = System.Drawing.Color.Black + Me.txtOutline.Location = New System.Drawing.Point(3, 103) + Me.txtOutline.Multiline = True + Me.txtOutline.Name = "txtOutline" + Me.txtOutline.ReadOnly = True + Me.txtOutline.ScrollBars = System.Windows.Forms.ScrollBars.Vertical + Me.txtOutline.Size = New System.Drawing.Size(775, 78) + Me.txtOutline.TabIndex = 16 + Me.txtOutline.TabStop = False + ' + 'pnlTop250 + ' + Me.pnlTop250.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.pnlTop250.Controls.Add(Me.lblTop250) + Me.pnlTop250.Controls.Add(Me.pbTop250) + Me.pnlTop250.Location = New System.Drawing.Point(721, 27) + Me.pnlTop250.Name = "pnlTop250" + Me.pnlTop250.Size = New System.Drawing.Size(56, 48) + Me.pnlTop250.TabIndex = 15 + ' + 'lblTop250 + ' + Me.lblTop250.BackColor = System.Drawing.Color.Gainsboro + Me.lblTop250.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblTop250.ForeColor = System.Drawing.Color.Black + Me.lblTop250.Location = New System.Drawing.Point(1, 30) + Me.lblTop250.Name = "lblTop250" + Me.lblTop250.Size = New System.Drawing.Size(52, 17) + Me.lblTop250.TabIndex = 15 + Me.lblTop250.Text = "# 250" + Me.lblTop250.TextAlign = System.Drawing.ContentAlignment.MiddleCenter + ' + 'pbTop250 + ' + Me.pbTop250.Image = CType(resources.GetObject("pbTop250.Image"), System.Drawing.Image) + Me.pbTop250.Location = New System.Drawing.Point(1, 1) + Me.pbTop250.Name = "pbTop250" + Me.pbTop250.Size = New System.Drawing.Size(54, 30) + Me.pbTop250.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom + Me.pbTop250.TabIndex = 14 + Me.pbTop250.TabStop = False + ' + 'lblPlotHeader + ' + Me.lblPlotHeader.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.lblPlotHeader.BackColor = System.Drawing.SystemColors.ControlDarkDark + Me.lblPlotHeader.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.lblPlotHeader.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblPlotHeader.ForeColor = System.Drawing.SystemColors.HighlightText + Me.lblPlotHeader.Location = New System.Drawing.Point(3, 282) + Me.lblPlotHeader.Name = "lblPlotHeader" + Me.lblPlotHeader.Size = New System.Drawing.Size(775, 17) + Me.lblPlotHeader.TabIndex = 6 + Me.lblPlotHeader.Text = "Plot" + Me.lblPlotHeader.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + ' + 'txtPlot + ' + Me.txtPlot.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.txtPlot.BackColor = System.Drawing.Color.Gainsboro + Me.txtPlot.BorderStyle = System.Windows.Forms.BorderStyle.None + Me.txtPlot.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.txtPlot.ForeColor = System.Drawing.Color.Black + Me.txtPlot.Location = New System.Drawing.Point(3, 303) + Me.txtPlot.Multiline = True + Me.txtPlot.Name = "txtPlot" + Me.txtPlot.ReadOnly = True + Me.txtPlot.ScrollBars = System.Windows.Forms.ScrollBars.Vertical + Me.txtPlot.Size = New System.Drawing.Size(775, 184) + Me.txtPlot.TabIndex = 7 + Me.txtPlot.TabStop = False + ' + 'btnDown + ' + Me.btnDown.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.btnDown.BackColor = System.Drawing.SystemColors.Control + Me.btnDown.Location = New System.Drawing.Point(1057, 1) + Me.btnDown.Name = "btnDown" + Me.btnDown.Size = New System.Drawing.Size(30, 22) + Me.btnDown.TabIndex = 6 + Me.btnDown.TabStop = False + Me.btnDown.Text = "v" + Me.btnDown.TextAlign = System.Drawing.ContentAlignment.TopCenter + Me.btnDown.UseVisualStyleBackColor = False + ' + 'btnUp + ' + Me.btnUp.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.btnUp.BackColor = System.Drawing.SystemColors.Control + Me.btnUp.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.btnUp.Location = New System.Drawing.Point(994, 1) + Me.btnUp.Name = "btnUp" + Me.btnUp.Size = New System.Drawing.Size(30, 22) + Me.btnUp.TabIndex = 1 + Me.btnUp.TabStop = False + Me.btnUp.Text = "^" + Me.btnUp.TextAlign = System.Drawing.ContentAlignment.TopCenter + Me.btnUp.UseVisualStyleBackColor = False + ' + 'lblInfoPanelHeader + ' + Me.lblInfoPanelHeader.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.lblInfoPanelHeader.BackColor = System.Drawing.SystemColors.ControlDarkDark + Me.lblInfoPanelHeader.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.lblInfoPanelHeader.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblInfoPanelHeader.ForeColor = System.Drawing.SystemColors.HighlightText + Me.lblInfoPanelHeader.Location = New System.Drawing.Point(3, 3) + Me.lblInfoPanelHeader.Name = "lblInfoPanelHeader" + Me.lblInfoPanelHeader.Size = New System.Drawing.Size(1089, 17) + Me.lblInfoPanelHeader.TabIndex = 0 + Me.lblInfoPanelHeader.Text = "Info" + Me.lblInfoPanelHeader.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + ' + 'pnlPoster + ' + Me.pnlPoster.BackColor = System.Drawing.Color.Gainsboro + Me.pnlPoster.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.pnlPoster.Controls.Add(Me.pbPoster) + Me.pnlPoster.Location = New System.Drawing.Point(9, 112) + Me.pnlPoster.Name = "pnlPoster" + Me.pnlPoster.Size = New System.Drawing.Size(131, 169) + Me.pnlPoster.TabIndex = 2 + Me.pnlPoster.Visible = False + ' + 'pbPoster + ' + Me.pbPoster.BackColor = System.Drawing.SystemColors.Control + Me.pbPoster.Location = New System.Drawing.Point(4, 4) + Me.pbPoster.Name = "pbPoster" + Me.pbPoster.Size = New System.Drawing.Size(121, 159) + Me.pbPoster.TabIndex = 0 + Me.pbPoster.TabStop = False + ' + 'pbPosterCache + ' + Me.pbPosterCache.Location = New System.Drawing.Point(454, 107) + Me.pbPosterCache.Name = "pbPosterCache" + Me.pbPosterCache.Size = New System.Drawing.Size(115, 111) + Me.pbPosterCache.TabIndex = 12 + Me.pbPosterCache.TabStop = False + Me.pbPosterCache.Visible = False + ' + 'pnlMPAA + ' + Me.pnlMPAA.BackColor = System.Drawing.Color.Gainsboro + Me.pnlMPAA.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.pnlMPAA.Controls.Add(Me.pbMPAA) + Me.pnlMPAA.Location = New System.Drawing.Point(4, 609) + Me.pnlMPAA.Name = "pnlMPAA" + Me.pnlMPAA.Size = New System.Drawing.Size(202, 45) + Me.pnlMPAA.TabIndex = 11 + Me.pnlMPAA.Visible = False + ' + 'pbMPAA + ' + Me.pbMPAA.Location = New System.Drawing.Point(1, 1) + Me.pbMPAA.Name = "pbMPAA" + Me.pbMPAA.Size = New System.Drawing.Size(249, 57) + Me.pbMPAA.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize + Me.pbMPAA.TabIndex = 13 + Me.pbMPAA.TabStop = False + ' + 'pbFanartCache + ' + Me.pbFanartCache.Location = New System.Drawing.Point(576, 107) + Me.pbFanartCache.Name = "pbFanartCache" + Me.pbFanartCache.Size = New System.Drawing.Size(115, 111) + Me.pbFanartCache.TabIndex = 3 + Me.pbFanartCache.TabStop = False + Me.pbFanartCache.Visible = False + ' + 'pbFanart + ' + Me.pbFanart.Anchor = System.Windows.Forms.AnchorStyles.Top + Me.pbFanart.BackColor = System.Drawing.Color.DimGray + Me.pbFanart.Location = New System.Drawing.Point(200, 99) + Me.pbFanart.Name = "pbFanart" + Me.pbFanart.Size = New System.Drawing.Size(696, 250) + Me.pbFanart.TabIndex = 1 + Me.pbFanart.TabStop = False + ' + 'tsMain + ' + Me.tsMain.BackColor = System.Drawing.SystemColors.Control + Me.tsMain.CanOverflow = False + Me.tsMain.GripMargin = New System.Windows.Forms.Padding(0) + Me.tsMain.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden + Me.tsMain.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.tsbAutoPilot, Me.tsbRefreshMedia, Me.tsbMediaCenters}) + Me.tsMain.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.HorizontalStackWithOverflow + Me.tsMain.Location = New System.Drawing.Point(0, 0) + Me.tsMain.Name = "tsMain" + Me.tsMain.Padding = New System.Windows.Forms.Padding(0) + Me.tsMain.Size = New System.Drawing.Size(1097, 25) + Me.tsMain.Stretch = True + Me.tsMain.TabIndex = 6 + ' + 'tsbAutoPilot + ' + Me.tsbAutoPilot.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.FullToolStripMenuItem, Me.UpdateOnlyToolStripMenuItem, Me.NewMoviesToolStripMenuItem, Me.MarkedMoviesToolStripMenuItem, Me.CurrentFilterToolStripMenuItem, Me.CustomUpdaterToolStripMenuItem}) + Me.tsbAutoPilot.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.tsbAutoPilot.Image = CType(resources.GetObject("tsbAutoPilot.Image"), System.Drawing.Image) + Me.tsbAutoPilot.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsbAutoPilot.Name = "tsbAutoPilot" + Me.tsbAutoPilot.Size = New System.Drawing.Size(105, 22) + Me.tsbAutoPilot.Text = "Scrape Media" + ' + 'FullToolStripMenuItem + ' + Me.FullToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.FullAutoToolStripMenuItem, Me.FullAskToolStripMenuItem, Me.FullSkipToolStripMenuItem}) + Me.FullToolStripMenuItem.Name = "FullToolStripMenuItem" + Me.FullToolStripMenuItem.Size = New System.Drawing.Size(183, 22) + Me.FullToolStripMenuItem.Text = "All Movies" + ' + 'FullAutoToolStripMenuItem + ' + Me.FullAutoToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuAllAutoAll, Me.mnuAllAutoNfo, Me.mnuAllAutoPoster, Me.mnuAllAutoFanart, Me.mnuAllAutoExtra, Me.mnuAllAutoTrailer, Me.mnuAllAutoMI}) + Me.FullAutoToolStripMenuItem.Name = "FullAutoToolStripMenuItem" + Me.FullAutoToolStripMenuItem.Size = New System.Drawing.Size(264, 22) + Me.FullAutoToolStripMenuItem.Text = "Automatic (Force Best Match)" + ' + 'mnuAllAutoAll + ' + Me.mnuAllAutoAll.Name = "mnuAllAutoAll" + Me.mnuAllAutoAll.Size = New System.Drawing.Size(165, 22) + Me.mnuAllAutoAll.Text = "All Items" + ' + 'mnuAllAutoNfo + ' + Me.mnuAllAutoNfo.Name = "mnuAllAutoNfo" + Me.mnuAllAutoNfo.Size = New System.Drawing.Size(165, 22) + Me.mnuAllAutoNfo.Text = "NFO Only" + ' + 'mnuAllAutoPoster + ' + Me.mnuAllAutoPoster.Name = "mnuAllAutoPoster" + Me.mnuAllAutoPoster.Size = New System.Drawing.Size(165, 22) + Me.mnuAllAutoPoster.Text = "Poster Only" + ' + 'mnuAllAutoFanart + ' + Me.mnuAllAutoFanart.Name = "mnuAllAutoFanart" + Me.mnuAllAutoFanart.Size = New System.Drawing.Size(165, 22) + Me.mnuAllAutoFanart.Text = "Fanart Only" + ' + 'mnuAllAutoExtra + ' + Me.mnuAllAutoExtra.Name = "mnuAllAutoExtra" + Me.mnuAllAutoExtra.Size = New System.Drawing.Size(165, 22) + Me.mnuAllAutoExtra.Text = "Extrathumbs Only" + ' + 'mnuAllAutoTrailer + ' + Me.mnuAllAutoTrailer.Name = "mnuAllAutoTrailer" + Me.mnuAllAutoTrailer.Size = New System.Drawing.Size(165, 22) + Me.mnuAllAutoTrailer.Text = "Trailer Only" + ' + 'mnuAllAutoMI + ' + Me.mnuAllAutoMI.Name = "mnuAllAutoMI" + Me.mnuAllAutoMI.Size = New System.Drawing.Size(165, 22) + Me.mnuAllAutoMI.Text = "Meta Data Only" + ' + 'FullAskToolStripMenuItem + ' + Me.FullAskToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuAllAskAll, Me.mnuAllAskNfo, Me.mnuAllAskPoster, Me.mnuAllAskFanart, Me.mnuAllAskExtra, Me.mnuAllAskTrailer, Me.mnuAllAskMI}) + Me.FullAskToolStripMenuItem.Name = "FullAskToolStripMenuItem" + Me.FullAskToolStripMenuItem.Size = New System.Drawing.Size(264, 22) + Me.FullAskToolStripMenuItem.Text = "Ask (Require Input If No Exact Match)" + ' + 'mnuAllAskAll + ' + Me.mnuAllAskAll.Name = "mnuAllAskAll" + Me.mnuAllAskAll.Size = New System.Drawing.Size(165, 22) + Me.mnuAllAskAll.Text = "All Items" + ' + 'mnuAllAskNfo + ' + Me.mnuAllAskNfo.Name = "mnuAllAskNfo" + Me.mnuAllAskNfo.Size = New System.Drawing.Size(165, 22) + Me.mnuAllAskNfo.Text = "NFO Only" + ' + 'mnuAllAskPoster + ' + Me.mnuAllAskPoster.Name = "mnuAllAskPoster" + Me.mnuAllAskPoster.Size = New System.Drawing.Size(165, 22) + Me.mnuAllAskPoster.Text = "Poster Only" + ' + 'mnuAllAskFanart + ' + Me.mnuAllAskFanart.Name = "mnuAllAskFanart" + Me.mnuAllAskFanart.Size = New System.Drawing.Size(165, 22) + Me.mnuAllAskFanart.Text = "Fanart Only" + ' + 'mnuAllAskExtra + ' + Me.mnuAllAskExtra.Name = "mnuAllAskExtra" + Me.mnuAllAskExtra.Size = New System.Drawing.Size(165, 22) + Me.mnuAllAskExtra.Text = "Extrathumbs Only" + ' + 'mnuAllAskTrailer + ' + Me.mnuAllAskTrailer.Name = "mnuAllAskTrailer" + Me.mnuAllAskTrailer.Size = New System.Drawing.Size(165, 22) + Me.mnuAllAskTrailer.Text = "Trailer Only" + ' + 'mnuAllAskMI + ' + Me.mnuAllAskMI.Name = "mnuAllAskMI" + Me.mnuAllAskMI.Size = New System.Drawing.Size(165, 22) + Me.mnuAllAskMI.Text = "Meta Data Only" + ' + 'FullSkipToolStripMenuItem + ' + Me.FullSkipToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuAllSkipAll}) + Me.FullSkipToolStripMenuItem.Name = "FullSkipToolStripMenuItem" + Me.FullSkipToolStripMenuItem.Size = New System.Drawing.Size(264, 22) + Me.FullSkipToolStripMenuItem.Text = "Skip (Do Nothing If No Exact Match)" + Me.FullSkipToolStripMenuItem.Visible = False + ' + 'mnuAllSkipAll + ' + Me.mnuAllSkipAll.Name = "mnuAllSkipAll" + Me.mnuAllSkipAll.Size = New System.Drawing.Size(117, 22) + Me.mnuAllSkipAll.Text = "All Items" + ' + 'UpdateOnlyToolStripMenuItem + ' + Me.UpdateOnlyToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.UpdateAutoToolStripMenuItem, Me.UpdateAskToolStripMenuItem}) + Me.UpdateOnlyToolStripMenuItem.Name = "UpdateOnlyToolStripMenuItem" + Me.UpdateOnlyToolStripMenuItem.Size = New System.Drawing.Size(183, 22) + Me.UpdateOnlyToolStripMenuItem.Text = "Movies Missing Items" + ' + 'UpdateAutoToolStripMenuItem + ' + Me.UpdateAutoToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuMissAutoAll, Me.mnuMissAutoNfo, Me.mnuMissAutoPoster, Me.mnuMissAutoFanart, Me.mnuMissAutoExtra, Me.mnuMissAutoTrailer}) + Me.UpdateAutoToolStripMenuItem.Name = "UpdateAutoToolStripMenuItem" + Me.UpdateAutoToolStripMenuItem.Size = New System.Drawing.Size(264, 22) + Me.UpdateAutoToolStripMenuItem.Text = "Automatic (Force Best Match)" + ' + 'mnuMissAutoAll + ' + Me.mnuMissAutoAll.Name = "mnuMissAutoAll" + Me.mnuMissAutoAll.Size = New System.Drawing.Size(165, 22) + Me.mnuMissAutoAll.Text = "All Items" + ' + 'mnuMissAutoNfo + ' + Me.mnuMissAutoNfo.Name = "mnuMissAutoNfo" + Me.mnuMissAutoNfo.Size = New System.Drawing.Size(165, 22) + Me.mnuMissAutoNfo.Text = "NFO Only" + ' + 'mnuMissAutoPoster + ' + Me.mnuMissAutoPoster.Name = "mnuMissAutoPoster" + Me.mnuMissAutoPoster.Size = New System.Drawing.Size(165, 22) + Me.mnuMissAutoPoster.Text = "Poster Only" + ' + 'mnuMissAutoFanart + ' + Me.mnuMissAutoFanart.Name = "mnuMissAutoFanart" + Me.mnuMissAutoFanart.Size = New System.Drawing.Size(165, 22) + Me.mnuMissAutoFanart.Text = "Fanart Only" + ' + 'mnuMissAutoExtra + ' + Me.mnuMissAutoExtra.Name = "mnuMissAutoExtra" + Me.mnuMissAutoExtra.Size = New System.Drawing.Size(165, 22) + Me.mnuMissAutoExtra.Text = "Extrathumbs Only" + ' + 'mnuMissAutoTrailer + ' + Me.mnuMissAutoTrailer.Name = "mnuMissAutoTrailer" + Me.mnuMissAutoTrailer.Size = New System.Drawing.Size(165, 22) + Me.mnuMissAutoTrailer.Text = "Trailer Only" + ' + 'UpdateAskToolStripMenuItem + ' + Me.UpdateAskToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuMissAskAll, Me.mnuMissAskNfo, Me.mnuMissAskPoster, Me.mnuMissAskFanart, Me.mnuMissAskExtra, Me.mnuMissAskTrailer}) + Me.UpdateAskToolStripMenuItem.Name = "UpdateAskToolStripMenuItem" + Me.UpdateAskToolStripMenuItem.Size = New System.Drawing.Size(264, 22) + Me.UpdateAskToolStripMenuItem.Text = "Ask (Require Input If No Exact Match)" + ' + 'mnuMissAskAll + ' + Me.mnuMissAskAll.Name = "mnuMissAskAll" + Me.mnuMissAskAll.Size = New System.Drawing.Size(165, 22) + Me.mnuMissAskAll.Text = "All Items" + ' + 'mnuMissAskNfo + ' + Me.mnuMissAskNfo.Name = "mnuMissAskNfo" + Me.mnuMissAskNfo.Size = New System.Drawing.Size(165, 22) + Me.mnuMissAskNfo.Text = "NFO Only" + ' + 'mnuMissAskPoster + ' + Me.mnuMissAskPoster.Name = "mnuMissAskPoster" + Me.mnuMissAskPoster.Size = New System.Drawing.Size(165, 22) + Me.mnuMissAskPoster.Text = "Poster Only" + ' + 'mnuMissAskFanart + ' + Me.mnuMissAskFanart.Name = "mnuMissAskFanart" + Me.mnuMissAskFanart.Size = New System.Drawing.Size(165, 22) + Me.mnuMissAskFanart.Text = "Fanart Only" + ' + 'mnuMissAskExtra + ' + Me.mnuMissAskExtra.Name = "mnuMissAskExtra" + Me.mnuMissAskExtra.Size = New System.Drawing.Size(165, 22) + Me.mnuMissAskExtra.Text = "Extrathumbs Only" + ' + 'mnuMissAskTrailer + ' + Me.mnuMissAskTrailer.Name = "mnuMissAskTrailer" + Me.mnuMissAskTrailer.Size = New System.Drawing.Size(165, 22) + Me.mnuMissAskTrailer.Text = "Trailer Only" + ' + 'NewMoviesToolStripMenuItem + ' + Me.NewMoviesToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.AutomaticForceBestMatchToolStripMenuItem, Me.AskRequireInputToolStripMenuItem}) + Me.NewMoviesToolStripMenuItem.Name = "NewMoviesToolStripMenuItem" + Me.NewMoviesToolStripMenuItem.Size = New System.Drawing.Size(183, 22) + Me.NewMoviesToolStripMenuItem.Text = "New Movies" + ' + 'AutomaticForceBestMatchToolStripMenuItem + ' + Me.AutomaticForceBestMatchToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuNewAutoAll, Me.mnuNewAutoNfo, Me.mnuNewAutoPoster, Me.mnuNewAutoFanart, Me.mnuNewAutoExtra, Me.mnuNewAutoTrailer, Me.mnuNewAutoMI}) + Me.AutomaticForceBestMatchToolStripMenuItem.Name = "AutomaticForceBestMatchToolStripMenuItem" + Me.AutomaticForceBestMatchToolStripMenuItem.Size = New System.Drawing.Size(264, 22) + Me.AutomaticForceBestMatchToolStripMenuItem.Text = "Automatic (Force Best Match)" + ' + 'mnuNewAutoAll + ' + Me.mnuNewAutoAll.Name = "mnuNewAutoAll" + Me.mnuNewAutoAll.Size = New System.Drawing.Size(165, 22) + Me.mnuNewAutoAll.Text = "All Items" + ' + 'mnuNewAutoNfo + ' + Me.mnuNewAutoNfo.Name = "mnuNewAutoNfo" + Me.mnuNewAutoNfo.Size = New System.Drawing.Size(165, 22) + Me.mnuNewAutoNfo.Text = "NFO Only" + ' + 'mnuNewAutoPoster + ' + Me.mnuNewAutoPoster.Name = "mnuNewAutoPoster" + Me.mnuNewAutoPoster.Size = New System.Drawing.Size(165, 22) + Me.mnuNewAutoPoster.Text = "Poster Only" + ' + 'mnuNewAutoFanart + ' + Me.mnuNewAutoFanart.Name = "mnuNewAutoFanart" + Me.mnuNewAutoFanart.Size = New System.Drawing.Size(165, 22) + Me.mnuNewAutoFanart.Text = "Fanart Only" + ' + 'mnuNewAutoExtra + ' + Me.mnuNewAutoExtra.Name = "mnuNewAutoExtra" + Me.mnuNewAutoExtra.Size = New System.Drawing.Size(165, 22) + Me.mnuNewAutoExtra.Text = "Extrathumbs Only" + ' + 'mnuNewAutoTrailer + ' + Me.mnuNewAutoTrailer.Name = "mnuNewAutoTrailer" + Me.mnuNewAutoTrailer.Size = New System.Drawing.Size(165, 22) + Me.mnuNewAutoTrailer.Text = "Trailer Only" + ' + 'mnuNewAutoMI + ' + Me.mnuNewAutoMI.Name = "mnuNewAutoMI" + Me.mnuNewAutoMI.Size = New System.Drawing.Size(165, 22) + Me.mnuNewAutoMI.Text = "Meta Data Only" + ' + 'AskRequireInputToolStripMenuItem + ' + Me.AskRequireInputToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuNewAskAll, Me.mnuNewAskNfo, Me.mnuNewAskPoster, Me.mnuNewAskFanart, Me.mnuNewAskExtra, Me.mnuNewAskTrailer, Me.mnuNewAskMI}) + Me.AskRequireInputToolStripMenuItem.Name = "AskRequireInputToolStripMenuItem" + Me.AskRequireInputToolStripMenuItem.Size = New System.Drawing.Size(264, 22) + Me.AskRequireInputToolStripMenuItem.Text = "Ask (Require Input If No Exact Match)" + ' + 'mnuNewAskAll + ' + Me.mnuNewAskAll.Name = "mnuNewAskAll" + Me.mnuNewAskAll.Size = New System.Drawing.Size(165, 22) + Me.mnuNewAskAll.Text = "All Items" + ' + 'mnuNewAskNfo + ' + Me.mnuNewAskNfo.Name = "mnuNewAskNfo" + Me.mnuNewAskNfo.Size = New System.Drawing.Size(165, 22) + Me.mnuNewAskNfo.Text = "NFO Only" + ' + 'mnuNewAskPoster + ' + Me.mnuNewAskPoster.Name = "mnuNewAskPoster" + Me.mnuNewAskPoster.Size = New System.Drawing.Size(165, 22) + Me.mnuNewAskPoster.Text = "Poster Only" + ' + 'mnuNewAskFanart + ' + Me.mnuNewAskFanart.Name = "mnuNewAskFanart" + Me.mnuNewAskFanart.Size = New System.Drawing.Size(165, 22) + Me.mnuNewAskFanart.Text = "Fanart Only" + ' + 'mnuNewAskExtra + ' + Me.mnuNewAskExtra.Name = "mnuNewAskExtra" + Me.mnuNewAskExtra.Size = New System.Drawing.Size(165, 22) + Me.mnuNewAskExtra.Text = "Extrathumbs Only" + ' + 'mnuNewAskTrailer + ' + Me.mnuNewAskTrailer.Name = "mnuNewAskTrailer" + Me.mnuNewAskTrailer.Size = New System.Drawing.Size(165, 22) + Me.mnuNewAskTrailer.Text = "Trailer Only" + ' + 'mnuNewAskMI + ' + Me.mnuNewAskMI.Name = "mnuNewAskMI" + Me.mnuNewAskMI.Size = New System.Drawing.Size(165, 22) + Me.mnuNewAskMI.Text = "Meta Data Only" + ' + 'MarkedMoviesToolStripMenuItem + ' + Me.MarkedMoviesToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.AutomaticForceBestMatchToolStripMenuItem1, Me.AskRequireInputIfNoExactMatchToolStripMenuItem}) + Me.MarkedMoviesToolStripMenuItem.Name = "MarkedMoviesToolStripMenuItem" + Me.MarkedMoviesToolStripMenuItem.Size = New System.Drawing.Size(183, 22) + Me.MarkedMoviesToolStripMenuItem.Text = "Marked Movies" + ' + 'AutomaticForceBestMatchToolStripMenuItem1 + ' + Me.AutomaticForceBestMatchToolStripMenuItem1.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuMarkAutoAll, Me.mnuMarkAutoNfo, Me.mnuMarkAutoPoster, Me.mnuMarkAutoFanart, Me.mnuMarkAutoExtra, Me.mnuMarkAutoTrailer, Me.mnuMarkAutoMI}) + Me.AutomaticForceBestMatchToolStripMenuItem1.Name = "AutomaticForceBestMatchToolStripMenuItem1" + Me.AutomaticForceBestMatchToolStripMenuItem1.Size = New System.Drawing.Size(264, 22) + Me.AutomaticForceBestMatchToolStripMenuItem1.Text = "Automatic (Force Best Match)" + ' + 'mnuMarkAutoAll + ' + Me.mnuMarkAutoAll.Name = "mnuMarkAutoAll" + Me.mnuMarkAutoAll.Size = New System.Drawing.Size(165, 22) + Me.mnuMarkAutoAll.Text = "All Items" + ' + 'mnuMarkAutoNfo + ' + Me.mnuMarkAutoNfo.Name = "mnuMarkAutoNfo" + Me.mnuMarkAutoNfo.Size = New System.Drawing.Size(165, 22) + Me.mnuMarkAutoNfo.Text = "NFO Only" + ' + 'mnuMarkAutoPoster + ' + Me.mnuMarkAutoPoster.Name = "mnuMarkAutoPoster" + Me.mnuMarkAutoPoster.Size = New System.Drawing.Size(165, 22) + Me.mnuMarkAutoPoster.Text = "Poster Only" + ' + 'mnuMarkAutoFanart + ' + Me.mnuMarkAutoFanart.Name = "mnuMarkAutoFanart" + Me.mnuMarkAutoFanart.Size = New System.Drawing.Size(165, 22) + Me.mnuMarkAutoFanart.Text = "Fanart Only" + ' + 'mnuMarkAutoExtra + ' + Me.mnuMarkAutoExtra.Name = "mnuMarkAutoExtra" + Me.mnuMarkAutoExtra.Size = New System.Drawing.Size(165, 22) + Me.mnuMarkAutoExtra.Text = "Extrathumbs Only" + ' + 'mnuMarkAutoTrailer + ' + Me.mnuMarkAutoTrailer.Name = "mnuMarkAutoTrailer" + Me.mnuMarkAutoTrailer.Size = New System.Drawing.Size(165, 22) + Me.mnuMarkAutoTrailer.Text = "Trailer Only" + ' + 'mnuMarkAutoMI + ' + Me.mnuMarkAutoMI.Name = "mnuMarkAutoMI" + Me.mnuMarkAutoMI.Size = New System.Drawing.Size(165, 22) + Me.mnuMarkAutoMI.Text = "Meta Data Only" + ' + 'AskRequireInputIfNoExactMatchToolStripMenuItem + ' + Me.AskRequireInputIfNoExactMatchToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuMarkAskAll, Me.mnuMarkAskNfo, Me.mnuMarkAskPoster, Me.mnuMarkAskFanart, Me.mnuMarkAskExtra, Me.mnuMarkAskTrailer, Me.mnuMarkAskMI}) + Me.AskRequireInputIfNoExactMatchToolStripMenuItem.Name = "AskRequireInputIfNoExactMatchToolStripMenuItem" + Me.AskRequireInputIfNoExactMatchToolStripMenuItem.Size = New System.Drawing.Size(264, 22) + Me.AskRequireInputIfNoExactMatchToolStripMenuItem.Text = "Ask (Require Input If No Exact Match)" + ' + 'mnuMarkAskAll + ' + Me.mnuMarkAskAll.Name = "mnuMarkAskAll" + Me.mnuMarkAskAll.Size = New System.Drawing.Size(165, 22) + Me.mnuMarkAskAll.Text = "All Items" + ' + 'mnuMarkAskNfo + ' + Me.mnuMarkAskNfo.Name = "mnuMarkAskNfo" + Me.mnuMarkAskNfo.Size = New System.Drawing.Size(165, 22) + Me.mnuMarkAskNfo.Text = "NFO Only" + ' + 'mnuMarkAskPoster + ' + Me.mnuMarkAskPoster.Name = "mnuMarkAskPoster" + Me.mnuMarkAskPoster.Size = New System.Drawing.Size(165, 22) + Me.mnuMarkAskPoster.Text = "Poster Only" + ' + 'mnuMarkAskFanart + ' + Me.mnuMarkAskFanart.Name = "mnuMarkAskFanart" + Me.mnuMarkAskFanart.Size = New System.Drawing.Size(165, 22) + Me.mnuMarkAskFanart.Text = "Fanart Only" + ' + 'mnuMarkAskExtra + ' + Me.mnuMarkAskExtra.Name = "mnuMarkAskExtra" + Me.mnuMarkAskExtra.Size = New System.Drawing.Size(165, 22) + Me.mnuMarkAskExtra.Text = "Extrathumbs Only" + ' + 'mnuMarkAskTrailer + ' + Me.mnuMarkAskTrailer.Name = "mnuMarkAskTrailer" + Me.mnuMarkAskTrailer.Size = New System.Drawing.Size(165, 22) + Me.mnuMarkAskTrailer.Text = "Trailer Only" + ' + 'mnuMarkAskMI + ' + Me.mnuMarkAskMI.Name = "mnuMarkAskMI" + Me.mnuMarkAskMI.Size = New System.Drawing.Size(165, 22) + Me.mnuMarkAskMI.Text = "Meta Data Only" + ' + 'CurrentFilterToolStripMenuItem + ' + Me.CurrentFilterToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.AutomaticForceBestMatchToolStripMenuItem2, Me.AskRequireInputIfNoExactMatchToolStripMenuItem1}) + Me.CurrentFilterToolStripMenuItem.Name = "CurrentFilterToolStripMenuItem" + Me.CurrentFilterToolStripMenuItem.Size = New System.Drawing.Size(183, 22) + Me.CurrentFilterToolStripMenuItem.Text = "Current Filter" + ' + 'AutomaticForceBestMatchToolStripMenuItem2 + ' + Me.AutomaticForceBestMatchToolStripMenuItem2.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuFilterAutoAll, Me.mnuFilterAutoNfo, Me.mnuFilterAutoPoster, Me.mnuFilterAutoFanart, Me.mnuFilterAutoExtra, Me.mnuFilterAutoTrailer, Me.mnuFilterAutoMI}) + Me.AutomaticForceBestMatchToolStripMenuItem2.Name = "AutomaticForceBestMatchToolStripMenuItem2" + Me.AutomaticForceBestMatchToolStripMenuItem2.Size = New System.Drawing.Size(264, 22) + Me.AutomaticForceBestMatchToolStripMenuItem2.Text = "Automatic (Force Best Match)" + ' + 'mnuFilterAutoAll + ' + Me.mnuFilterAutoAll.Name = "mnuFilterAutoAll" + Me.mnuFilterAutoAll.Size = New System.Drawing.Size(165, 22) + Me.mnuFilterAutoAll.Text = "All Items" + ' + 'mnuFilterAutoNfo + ' + Me.mnuFilterAutoNfo.Name = "mnuFilterAutoNfo" + Me.mnuFilterAutoNfo.Size = New System.Drawing.Size(165, 22) + Me.mnuFilterAutoNfo.Text = "NFO Only" + ' + 'mnuFilterAutoPoster + ' + Me.mnuFilterAutoPoster.Name = "mnuFilterAutoPoster" + Me.mnuFilterAutoPoster.Size = New System.Drawing.Size(165, 22) + Me.mnuFilterAutoPoster.Text = "Poster Only" + ' + 'mnuFilterAutoFanart + ' + Me.mnuFilterAutoFanart.Name = "mnuFilterAutoFanart" + Me.mnuFilterAutoFanart.Size = New System.Drawing.Size(165, 22) + Me.mnuFilterAutoFanart.Text = "Fanart Only" + ' + 'mnuFilterAutoExtra + ' + Me.mnuFilterAutoExtra.Name = "mnuFilterAutoExtra" + Me.mnuFilterAutoExtra.Size = New System.Drawing.Size(165, 22) + Me.mnuFilterAutoExtra.Text = "Extrathumbs Only" + ' + 'mnuFilterAutoTrailer + ' + Me.mnuFilterAutoTrailer.Name = "mnuFilterAutoTrailer" + Me.mnuFilterAutoTrailer.Size = New System.Drawing.Size(165, 22) + Me.mnuFilterAutoTrailer.Text = "Trailer Only" + ' + 'mnuFilterAutoMI + ' + Me.mnuFilterAutoMI.Name = "mnuFilterAutoMI" + Me.mnuFilterAutoMI.Size = New System.Drawing.Size(165, 22) + Me.mnuFilterAutoMI.Text = "Meta Data Only" + ' + 'AskRequireInputIfNoExactMatchToolStripMenuItem1 + ' + Me.AskRequireInputIfNoExactMatchToolStripMenuItem1.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuFilterAskAll, Me.mnuFilterAskNfo, Me.mnuFilterAskPoster, Me.mnuFilterAskFanart, Me.mnuFilterAskExtra, Me.mnuFilterAskTrailer, Me.mnuFilterAskMI}) + Me.AskRequireInputIfNoExactMatchToolStripMenuItem1.Name = "AskRequireInputIfNoExactMatchToolStripMenuItem1" + Me.AskRequireInputIfNoExactMatchToolStripMenuItem1.Size = New System.Drawing.Size(264, 22) + Me.AskRequireInputIfNoExactMatchToolStripMenuItem1.Text = "Ask (Require Input If No Exact Match)" + ' + 'mnuFilterAskAll + ' + Me.mnuFilterAskAll.Name = "mnuFilterAskAll" + Me.mnuFilterAskAll.Size = New System.Drawing.Size(165, 22) + Me.mnuFilterAskAll.Text = "All Items" + ' + 'mnuFilterAskNfo + ' + Me.mnuFilterAskNfo.Name = "mnuFilterAskNfo" + Me.mnuFilterAskNfo.Size = New System.Drawing.Size(165, 22) + Me.mnuFilterAskNfo.Text = "NFO Only" + ' + 'mnuFilterAskPoster + ' + Me.mnuFilterAskPoster.Name = "mnuFilterAskPoster" + Me.mnuFilterAskPoster.Size = New System.Drawing.Size(165, 22) + Me.mnuFilterAskPoster.Text = "Poster Only" + ' + 'mnuFilterAskFanart + ' + Me.mnuFilterAskFanart.Name = "mnuFilterAskFanart" + Me.mnuFilterAskFanart.Size = New System.Drawing.Size(165, 22) + Me.mnuFilterAskFanart.Text = "Fanart Only" + ' + 'mnuFilterAskExtra + ' + Me.mnuFilterAskExtra.Name = "mnuFilterAskExtra" + Me.mnuFilterAskExtra.Size = New System.Drawing.Size(165, 22) + Me.mnuFilterAskExtra.Text = "Extrathumbs Only" + ' + 'mnuFilterAskTrailer + ' + Me.mnuFilterAskTrailer.Name = "mnuFilterAskTrailer" + Me.mnuFilterAskTrailer.Size = New System.Drawing.Size(165, 22) + Me.mnuFilterAskTrailer.Text = "Trailer Only" + ' + 'mnuFilterAskMI + ' + Me.mnuFilterAskMI.Name = "mnuFilterAskMI" + Me.mnuFilterAskMI.Size = New System.Drawing.Size(165, 22) + Me.mnuFilterAskMI.Text = "Meta Data Only" + ' + 'CustomUpdaterToolStripMenuItem + ' + Me.CustomUpdaterToolStripMenuItem.Name = "CustomUpdaterToolStripMenuItem" + Me.CustomUpdaterToolStripMenuItem.Size = New System.Drawing.Size(183, 22) + Me.CustomUpdaterToolStripMenuItem.Text = "Custom Scraper..." + ' + 'tsbRefreshMedia + ' + Me.tsbRefreshMedia.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuMoviesUpdate, Me.mnuTVShowUpdate}) + Me.tsbRefreshMedia.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.tsbRefreshMedia.Image = CType(resources.GetObject("tsbRefreshMedia.Image"), System.Drawing.Image) + Me.tsbRefreshMedia.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsbRefreshMedia.Name = "tsbRefreshMedia" + Me.tsbRefreshMedia.Size = New System.Drawing.Size(114, 22) + Me.tsbRefreshMedia.Text = "Update Library" + ' + 'mnuMoviesUpdate + ' + Me.mnuMoviesUpdate.Name = "mnuMoviesUpdate" + Me.mnuMoviesUpdate.Size = New System.Drawing.Size(123, 22) + Me.mnuMoviesUpdate.Text = "Movies" + ' + 'mnuTVShowUpdate + ' + Me.mnuTVShowUpdate.Name = "mnuTVShowUpdate" + Me.mnuTVShowUpdate.Size = New System.Drawing.Size(123, 22) + Me.mnuTVShowUpdate.Text = "TV Shows" + ' + 'tsbMediaCenters + ' + Me.tsbMediaCenters.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right + Me.tsbMediaCenters.Enabled = False + Me.tsbMediaCenters.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(238, Byte)) + Me.tsbMediaCenters.Image = CType(resources.GetObject("tsbMediaCenters.Image"), System.Drawing.Image) + Me.tsbMediaCenters.ImageTransparentColor = System.Drawing.Color.Magenta + Me.tsbMediaCenters.Name = "tsbMediaCenters" + Me.tsbMediaCenters.Size = New System.Drawing.Size(113, 22) + Me.tsbMediaCenters.Text = "Media Centers" + Me.tsbMediaCenters.Visible = False + ' + 'ilColumnIcons + ' + Me.ilColumnIcons.ImageStream = CType(resources.GetObject("ilColumnIcons.ImageStream"), System.Windows.Forms.ImageListStreamer) + Me.ilColumnIcons.TransparentColor = System.Drawing.Color.Transparent + Me.ilColumnIcons.Images.SetKeyName(0, "new_page.png") + Me.ilColumnIcons.Images.SetKeyName(1, "image.png") + Me.ilColumnIcons.Images.SetKeyName(2, "info.png") + Me.ilColumnIcons.Images.SetKeyName(3, "favorite_film.png") + Me.ilColumnIcons.Images.SetKeyName(4, "comment.png") + Me.ilColumnIcons.Images.SetKeyName(5, "folder_full.png") + Me.ilColumnIcons.Images.SetKeyName(6, "listcheck.png") + Me.ilColumnIcons.Images.SetKeyName(7, "listdotgrey.png") + Me.ilColumnIcons.Images.SetKeyName(8, "haswatched.png") + ' + 'tmrWait + ' + Me.tmrWait.Interval = 250 + ' + 'tmrLoad + ' + ' + 'tmrSearchWait + ' + Me.tmrSearchWait.Interval = 250 + ' + 'tmrSearch + ' + Me.tmrSearch.Interval = 250 + ' + 'tmrFilterAni + ' + Me.tmrFilterAni.Interval = 1 + ' + 'ToolTips + ' + Me.ToolTips.AutoPopDelay = 15000 + Me.ToolTips.InitialDelay = 500 + Me.ToolTips.ReshowDelay = 100 + ' + 'tmrWaitShow + ' + Me.tmrWaitShow.Interval = 250 + ' + 'tmrLoadShow + ' + ' + 'tmrWaitSeason + ' + Me.tmrWaitSeason.Interval = 250 + ' + 'tmrLoadSeason + ' + ' + 'tmrWaitEp + ' + Me.tmrWaitEp.Interval = 250 + ' + 'tmrLoadEp + ' + ' + 'cmnuTrayIcon + ' + Me.cmnuTrayIcon.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.cmnuTrayIconTitle, Me.ToolStripSeparator21, Me.cmnuTrayIconUpdateMedia, Me.cmnuTrayIconScrapeMedia, Me.cmnuTrayIconMediaCenters, Me.ToolStripSeparator23, Me.cmnuTrayIconTools, Me.ToolStripSeparator22, Me.cmnuTrayIconSettings, Me.ToolStripSeparator13, Me.cmnuTrayIconExit}) + Me.cmnuTrayIcon.Name = "cmnuTrayIcon" + Me.cmnuTrayIcon.Size = New System.Drawing.Size(200, 182) + Me.cmnuTrayIcon.Text = "Ember Media Manager" + ' + 'cmnuTrayIconTitle + ' + Me.cmnuTrayIconTitle.Enabled = False + Me.cmnuTrayIconTitle.Image = CType(resources.GetObject("cmnuTrayIconTitle.Image"), System.Drawing.Image) + Me.cmnuTrayIconTitle.Name = "cmnuTrayIconTitle" + Me.cmnuTrayIconTitle.Size = New System.Drawing.Size(199, 22) + Me.cmnuTrayIconTitle.Text = "Ember Media Manager" + ' + 'ToolStripSeparator21 + ' + Me.ToolStripSeparator21.Name = "ToolStripSeparator21" + Me.ToolStripSeparator21.Size = New System.Drawing.Size(196, 6) + ' + 'cmnuTrayIconUpdateMedia + ' + Me.cmnuTrayIconUpdateMedia.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.cmnuTrayIconUpdateMovies, Me.cmnuTrayIconUpdateTV}) + Me.cmnuTrayIconUpdateMedia.Image = CType(resources.GetObject("cmnuTrayIconUpdateMedia.Image"), System.Drawing.Image) + Me.cmnuTrayIconUpdateMedia.Name = "cmnuTrayIconUpdateMedia" + Me.cmnuTrayIconUpdateMedia.Size = New System.Drawing.Size(199, 22) + Me.cmnuTrayIconUpdateMedia.Text = "Update Media" + ' + 'cmnuTrayIconUpdateMovies + ' + Me.cmnuTrayIconUpdateMovies.Name = "cmnuTrayIconUpdateMovies" + Me.cmnuTrayIconUpdateMovies.Size = New System.Drawing.Size(128, 22) + Me.cmnuTrayIconUpdateMovies.Text = "Movies" + ' + 'cmnuTrayIconUpdateTV + ' + Me.cmnuTrayIconUpdateTV.Name = "cmnuTrayIconUpdateTV" + Me.cmnuTrayIconUpdateTV.Size = New System.Drawing.Size(128, 22) + Me.cmnuTrayIconUpdateTV.Text = "TV Shows" + ' + 'cmnuTrayIconScrapeMedia + ' + Me.cmnuTrayIconScrapeMedia.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TrayFullToolStripMenuItem, Me.TrayUpdateOnlyToolStripMenuItem, Me.TrayNewMoviesToolStripMenuItem, Me.TrayMarkedMoviesToolStripMenuItem, Me.TrayCurrentFilterToolStripMenuItem, Me.TrayCustomUpdaterToolStripMenuItem}) + Me.cmnuTrayIconScrapeMedia.Image = CType(resources.GetObject("cmnuTrayIconScrapeMedia.Image"), System.Drawing.Image) + Me.cmnuTrayIconScrapeMedia.Name = "cmnuTrayIconScrapeMedia" + Me.cmnuTrayIconScrapeMedia.Size = New System.Drawing.Size(199, 22) + Me.cmnuTrayIconScrapeMedia.Text = "Scrape Media" + ' + 'TrayFullToolStripMenuItem + ' + Me.TrayFullToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TrayFullAutoToolStripMenuItem, Me.TrayFullAskToolStripMenuItem}) + Me.TrayFullToolStripMenuItem.Name = "TrayFullToolStripMenuItem" + Me.TrayFullToolStripMenuItem.Size = New System.Drawing.Size(193, 22) + Me.TrayFullToolStripMenuItem.Text = "All Movies" + ' + 'TrayFullAutoToolStripMenuItem + ' + Me.TrayFullAutoToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuTrayAllAutoAll, Me.mnuTrayAllAutoNfo, Me.mnuTrayAllAutoPoster, Me.mnuTrayAllAutoFanart, Me.mnuTrayAllAutoExtra, Me.mnuTrayAllAutoTrailer, Me.mnuTrayAllAutoMI}) + Me.TrayFullAutoToolStripMenuItem.Name = "TrayFullAutoToolStripMenuItem" + Me.TrayFullAutoToolStripMenuItem.Size = New System.Drawing.Size(284, 22) + Me.TrayFullAutoToolStripMenuItem.Text = "Automatic (Force Best Match)" + ' + 'mnuTrayAllAutoAll + ' + Me.mnuTrayAllAutoAll.Name = "mnuTrayAllAutoAll" + Me.mnuTrayAllAutoAll.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayAllAutoAll.Text = "All Items" + ' + 'mnuTrayAllAutoNfo + ' + Me.mnuTrayAllAutoNfo.Name = "mnuTrayAllAutoNfo" + Me.mnuTrayAllAutoNfo.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayAllAutoNfo.Text = "NFO Only" + ' + 'mnuTrayAllAutoPoster + ' + Me.mnuTrayAllAutoPoster.Name = "mnuTrayAllAutoPoster" + Me.mnuTrayAllAutoPoster.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayAllAutoPoster.Text = "Poster Only" + ' + 'mnuTrayAllAutoFanart + ' + Me.mnuTrayAllAutoFanart.Name = "mnuTrayAllAutoFanart" + Me.mnuTrayAllAutoFanart.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayAllAutoFanart.Text = "Fanart Only" + ' + 'mnuTrayAllAutoExtra + ' + Me.mnuTrayAllAutoExtra.Name = "mnuTrayAllAutoExtra" + Me.mnuTrayAllAutoExtra.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayAllAutoExtra.Text = "Extrathumbs Only" + ' + 'mnuTrayAllAutoTrailer + ' + Me.mnuTrayAllAutoTrailer.Name = "mnuTrayAllAutoTrailer" + Me.mnuTrayAllAutoTrailer.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayAllAutoTrailer.Text = "Trailer Only" + ' + 'mnuTrayAllAutoMI + ' + Me.mnuTrayAllAutoMI.Name = "mnuTrayAllAutoMI" + Me.mnuTrayAllAutoMI.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayAllAutoMI.Text = "Meta Data Only" + ' + 'TrayFullAskToolStripMenuItem + ' + Me.TrayFullAskToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuTrayAllAskAll, Me.mnuTrayAllAskNfo, Me.mnuTrayAllAskPoster, Me.mnuTrayAllAskFanart, Me.mnuTrayAllAskExtra, Me.mnuTrayAllAskTrailer, Me.mnuTrayAllAskMI}) + Me.TrayFullAskToolStripMenuItem.Name = "TrayFullAskToolStripMenuItem" + Me.TrayFullAskToolStripMenuItem.Size = New System.Drawing.Size(284, 22) + Me.TrayFullAskToolStripMenuItem.Text = "Ask (Require Input If No Exact Match)" + ' + 'mnuTrayAllAskAll + ' + Me.mnuTrayAllAskAll.Name = "mnuTrayAllAskAll" + Me.mnuTrayAllAskAll.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayAllAskAll.Text = "All Items" + ' + 'mnuTrayAllAskNfo + ' + Me.mnuTrayAllAskNfo.Name = "mnuTrayAllAskNfo" + Me.mnuTrayAllAskNfo.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayAllAskNfo.Text = "NFO Only" + ' + 'mnuTrayAllAskPoster + ' + Me.mnuTrayAllAskPoster.Name = "mnuTrayAllAskPoster" + Me.mnuTrayAllAskPoster.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayAllAskPoster.Text = "Poster Only" + ' + 'mnuTrayAllAskFanart + ' + Me.mnuTrayAllAskFanart.Name = "mnuTrayAllAskFanart" + Me.mnuTrayAllAskFanart.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayAllAskFanart.Text = "Fanart Only" + ' + 'mnuTrayAllAskExtra + ' + Me.mnuTrayAllAskExtra.Name = "mnuTrayAllAskExtra" + Me.mnuTrayAllAskExtra.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayAllAskExtra.Text = "Extrathumbs Only" + ' + 'mnuTrayAllAskTrailer + ' + Me.mnuTrayAllAskTrailer.Name = "mnuTrayAllAskTrailer" + Me.mnuTrayAllAskTrailer.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayAllAskTrailer.Text = "Trailer Only" + ' + 'mnuTrayAllAskMI + ' + Me.mnuTrayAllAskMI.Name = "mnuTrayAllAskMI" + Me.mnuTrayAllAskMI.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayAllAskMI.Text = "Meta Data Only" + ' + 'TrayUpdateOnlyToolStripMenuItem + ' + Me.TrayUpdateOnlyToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TrayUpdateAutoToolStripMenuItem, Me.TrayUpdateAskToolStripMenuItem}) + Me.TrayUpdateOnlyToolStripMenuItem.Name = "TrayUpdateOnlyToolStripMenuItem" + Me.TrayUpdateOnlyToolStripMenuItem.Size = New System.Drawing.Size(193, 22) + Me.TrayUpdateOnlyToolStripMenuItem.Text = "Movies Missing Items" + ' + 'TrayUpdateAutoToolStripMenuItem + ' + Me.TrayUpdateAutoToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuTrayMissAutoAll, Me.mnuTrayMissAutoNfo, Me.mnuTrayMissAutoPoster, Me.mnuTrayMissAutoFanart, Me.mnuTrayMissAutoExtra, Me.mnuTrayMissAutoTrailer}) + Me.TrayUpdateAutoToolStripMenuItem.Name = "TrayUpdateAutoToolStripMenuItem" + Me.TrayUpdateAutoToolStripMenuItem.Size = New System.Drawing.Size(284, 22) + Me.TrayUpdateAutoToolStripMenuItem.Text = "Automatic (Force Best Match)" + ' + 'mnuTrayMissAutoAll + ' + Me.mnuTrayMissAutoAll.Name = "mnuTrayMissAutoAll" + Me.mnuTrayMissAutoAll.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayMissAutoAll.Text = "All Items" + ' + 'mnuTrayMissAutoNfo + ' + Me.mnuTrayMissAutoNfo.Name = "mnuTrayMissAutoNfo" + Me.mnuTrayMissAutoNfo.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayMissAutoNfo.Text = "NFO Only" + ' + 'mnuTrayMissAutoPoster + ' + Me.mnuTrayMissAutoPoster.Name = "mnuTrayMissAutoPoster" + Me.mnuTrayMissAutoPoster.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayMissAutoPoster.Text = "Poster Only" + ' + 'mnuTrayMissAutoFanart + ' + Me.mnuTrayMissAutoFanart.Name = "mnuTrayMissAutoFanart" + Me.mnuTrayMissAutoFanart.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayMissAutoFanart.Text = "Fanart Only" + ' + 'mnuTrayMissAutoExtra + ' + Me.mnuTrayMissAutoExtra.Name = "mnuTrayMissAutoExtra" + Me.mnuTrayMissAutoExtra.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayMissAutoExtra.Text = "Extrathumbs Only" + ' + 'mnuTrayMissAutoTrailer + ' + Me.mnuTrayMissAutoTrailer.Name = "mnuTrayMissAutoTrailer" + Me.mnuTrayMissAutoTrailer.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayMissAutoTrailer.Text = "Trailer Only" + ' + 'TrayUpdateAskToolStripMenuItem + ' + Me.TrayUpdateAskToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuTrayMissAskAll, Me.mnuTrayMissAskNfo, Me.mnuTrayMissAskPoster, Me.mnuTrayMissAskFanart, Me.mnuTrayMissAskExtra, Me.mnuTrayMissAskTrailer}) + Me.TrayUpdateAskToolStripMenuItem.Name = "TrayUpdateAskToolStripMenuItem" + Me.TrayUpdateAskToolStripMenuItem.Size = New System.Drawing.Size(284, 22) + Me.TrayUpdateAskToolStripMenuItem.Text = "Ask (Require Input If No Exact Match)" + ' + 'mnuTrayMissAskAll + ' + Me.mnuTrayMissAskAll.Name = "mnuTrayMissAskAll" + Me.mnuTrayMissAskAll.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayMissAskAll.Text = "All Items" + ' + 'mnuTrayMissAskNfo + ' + Me.mnuTrayMissAskNfo.Name = "mnuTrayMissAskNfo" + Me.mnuTrayMissAskNfo.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayMissAskNfo.Text = "NFO Only" + ' + 'mnuTrayMissAskPoster + ' + Me.mnuTrayMissAskPoster.Name = "mnuTrayMissAskPoster" + Me.mnuTrayMissAskPoster.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayMissAskPoster.Text = "Poster Only" + ' + 'mnuTrayMissAskFanart + ' + Me.mnuTrayMissAskFanart.Name = "mnuTrayMissAskFanart" + Me.mnuTrayMissAskFanart.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayMissAskFanart.Text = "Fanart Only" + ' + 'mnuTrayMissAskExtra + ' + Me.mnuTrayMissAskExtra.Name = "mnuTrayMissAskExtra" + Me.mnuTrayMissAskExtra.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayMissAskExtra.Text = "Extrathumbs Only" + ' + 'mnuTrayMissAskTrailer + ' + Me.mnuTrayMissAskTrailer.Name = "mnuTrayMissAskTrailer" + Me.mnuTrayMissAskTrailer.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayMissAskTrailer.Text = "Trailer Only" + ' + 'TrayNewMoviesToolStripMenuItem + ' + Me.TrayNewMoviesToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TrayAutomaticForceBestMatchToolStripMenuItem, Me.TrayAskRequireInputToolStripMenuItem}) + Me.TrayNewMoviesToolStripMenuItem.Name = "TrayNewMoviesToolStripMenuItem" + Me.TrayNewMoviesToolStripMenuItem.Size = New System.Drawing.Size(193, 22) + Me.TrayNewMoviesToolStripMenuItem.Text = "New Movies" + ' + 'TrayAutomaticForceBestMatchToolStripMenuItem + ' + Me.TrayAutomaticForceBestMatchToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuTrayNewAutoAll, Me.mnuTrayNewAutoNfo, Me.mnuTrayNewAutoPoster, Me.mnuTrayNewAutoFanart, Me.mnuTrayNewAutoExtra, Me.mnuTrayNewAutoTrailer, Me.mnuTrayNewAutoMI}) + Me.TrayAutomaticForceBestMatchToolStripMenuItem.Name = "TrayAutomaticForceBestMatchToolStripMenuItem" + Me.TrayAutomaticForceBestMatchToolStripMenuItem.Size = New System.Drawing.Size(284, 22) + Me.TrayAutomaticForceBestMatchToolStripMenuItem.Text = "Automatic (Force Best Match)" + ' + 'mnuTrayNewAutoAll + ' + Me.mnuTrayNewAutoAll.Name = "mnuTrayNewAutoAll" + Me.mnuTrayNewAutoAll.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayNewAutoAll.Text = "All Items" + ' + 'mnuTrayNewAutoNfo + ' + Me.mnuTrayNewAutoNfo.Name = "mnuTrayNewAutoNfo" + Me.mnuTrayNewAutoNfo.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayNewAutoNfo.Text = "NFO Only" + ' + 'mnuTrayNewAutoPoster + ' + Me.mnuTrayNewAutoPoster.Name = "mnuTrayNewAutoPoster" + Me.mnuTrayNewAutoPoster.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayNewAutoPoster.Text = "Poster Only" + ' + 'mnuTrayNewAutoFanart + ' + Me.mnuTrayNewAutoFanart.Name = "mnuTrayNewAutoFanart" + Me.mnuTrayNewAutoFanart.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayNewAutoFanart.Text = "Fanart Only" + ' + 'mnuTrayNewAutoExtra + ' + Me.mnuTrayNewAutoExtra.Name = "mnuTrayNewAutoExtra" + Me.mnuTrayNewAutoExtra.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayNewAutoExtra.Text = "Extrathumbs Only" + ' + 'mnuTrayNewAutoTrailer + ' + Me.mnuTrayNewAutoTrailer.Name = "mnuTrayNewAutoTrailer" + Me.mnuTrayNewAutoTrailer.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayNewAutoTrailer.Text = "Trailer Only" + ' + 'mnuTrayNewAutoMI + ' + Me.mnuTrayNewAutoMI.Name = "mnuTrayNewAutoMI" + Me.mnuTrayNewAutoMI.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayNewAutoMI.Text = "Meta Data Only" + ' + 'TrayAskRequireInputToolStripMenuItem + ' + Me.TrayAskRequireInputToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuTrayNewAskAll, Me.mnuTrayNewAskNfo, Me.mnuTrayNewAskPoster, Me.mnuTrayNewAskFanart, Me.mnuTrayNewAskExtra, Me.mnuTrayNewAskTrailer, Me.mnuTrayNewAskMI}) + Me.TrayAskRequireInputToolStripMenuItem.Name = "TrayAskRequireInputToolStripMenuItem" + Me.TrayAskRequireInputToolStripMenuItem.Size = New System.Drawing.Size(284, 22) + Me.TrayAskRequireInputToolStripMenuItem.Text = "Ask (Require Input If No Exact Match)" + ' + 'mnuTrayNewAskAll + ' + Me.mnuTrayNewAskAll.Name = "mnuTrayNewAskAll" + Me.mnuTrayNewAskAll.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayNewAskAll.Text = "All Items" + ' + 'mnuTrayNewAskNfo + ' + Me.mnuTrayNewAskNfo.Name = "mnuTrayNewAskNfo" + Me.mnuTrayNewAskNfo.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayNewAskNfo.Text = "NFO Only" + ' + 'mnuTrayNewAskPoster + ' + Me.mnuTrayNewAskPoster.Name = "mnuTrayNewAskPoster" + Me.mnuTrayNewAskPoster.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayNewAskPoster.Text = "Poster Only" + ' + 'mnuTrayNewAskFanart + ' + Me.mnuTrayNewAskFanart.Name = "mnuTrayNewAskFanart" + Me.mnuTrayNewAskFanart.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayNewAskFanart.Text = "Fanart Only" + ' + 'mnuTrayNewAskExtra + ' + Me.mnuTrayNewAskExtra.Name = "mnuTrayNewAskExtra" + Me.mnuTrayNewAskExtra.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayNewAskExtra.Text = "Extrathumbs Only" + ' + 'mnuTrayNewAskTrailer + ' + Me.mnuTrayNewAskTrailer.Name = "mnuTrayNewAskTrailer" + Me.mnuTrayNewAskTrailer.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayNewAskTrailer.Text = "Trailer Only" + ' + 'mnuTrayNewAskMI + ' + Me.mnuTrayNewAskMI.Name = "mnuTrayNewAskMI" + Me.mnuTrayNewAskMI.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayNewAskMI.Text = "Meta Data Only" + ' + 'TrayMarkedMoviesToolStripMenuItem + ' + Me.TrayMarkedMoviesToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TrayAutomaticForceBestMatchToolStripMenuItem1, Me.TrayAskRequireInputIfNoExactMatchToolStripMenuItem}) + Me.TrayMarkedMoviesToolStripMenuItem.Name = "TrayMarkedMoviesToolStripMenuItem" + Me.TrayMarkedMoviesToolStripMenuItem.Size = New System.Drawing.Size(193, 22) + Me.TrayMarkedMoviesToolStripMenuItem.Text = "Marked Movies" + ' + 'TrayAutomaticForceBestMatchToolStripMenuItem1 + ' + Me.TrayAutomaticForceBestMatchToolStripMenuItem1.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuTrayMarkAutoAll, Me.mnuTrayMarkAutoNfo, Me.mnuTrayMarkAutoPoster, Me.mnuTrayMarkAutoFanart, Me.mnuTrayMarkAutoExtra, Me.mnuTrayMarkAutoTrailer, Me.mnuTrayMarkAutoMI}) + Me.TrayAutomaticForceBestMatchToolStripMenuItem1.Name = "TrayAutomaticForceBestMatchToolStripMenuItem1" + Me.TrayAutomaticForceBestMatchToolStripMenuItem1.Size = New System.Drawing.Size(284, 22) + Me.TrayAutomaticForceBestMatchToolStripMenuItem1.Text = "Automatic (Force Best Match)" + ' + 'mnuTrayMarkAutoAll + ' + Me.mnuTrayMarkAutoAll.Name = "mnuTrayMarkAutoAll" + Me.mnuTrayMarkAutoAll.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayMarkAutoAll.Text = "All Items" + ' + 'mnuTrayMarkAutoNfo + ' + Me.mnuTrayMarkAutoNfo.Name = "mnuTrayMarkAutoNfo" + Me.mnuTrayMarkAutoNfo.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayMarkAutoNfo.Text = "NFO Only" + ' + 'mnuTrayMarkAutoPoster + ' + Me.mnuTrayMarkAutoPoster.Name = "mnuTrayMarkAutoPoster" + Me.mnuTrayMarkAutoPoster.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayMarkAutoPoster.Text = "Poster Only" + ' + 'mnuTrayMarkAutoFanart + ' + Me.mnuTrayMarkAutoFanart.Name = "mnuTrayMarkAutoFanart" + Me.mnuTrayMarkAutoFanart.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayMarkAutoFanart.Text = "Fanart Only" + ' + 'mnuTrayMarkAutoExtra + ' + Me.mnuTrayMarkAutoExtra.Name = "mnuTrayMarkAutoExtra" + Me.mnuTrayMarkAutoExtra.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayMarkAutoExtra.Text = "Extrathumbs Only" + ' + 'mnuTrayMarkAutoTrailer + ' + Me.mnuTrayMarkAutoTrailer.Name = "mnuTrayMarkAutoTrailer" + Me.mnuTrayMarkAutoTrailer.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayMarkAutoTrailer.Text = "Trailer Only" + ' + 'mnuTrayMarkAutoMI + ' + Me.mnuTrayMarkAutoMI.Name = "mnuTrayMarkAutoMI" + Me.mnuTrayMarkAutoMI.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayMarkAutoMI.Text = "Meta Data Only" + ' + 'TrayAskRequireInputIfNoExactMatchToolStripMenuItem + ' + Me.TrayAskRequireInputIfNoExactMatchToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuTrayMarkAskAll, Me.mnuTrayMarkAskNfo, Me.mnuTrayMarkAskPoster, Me.mnuTrayMarkAskFanart, Me.mnuTrayMarkAskExtra, Me.mnuTrayMarkAskTrailer, Me.mnuTrayMarkAskMI}) + Me.TrayAskRequireInputIfNoExactMatchToolStripMenuItem.Name = "TrayAskRequireInputIfNoExactMatchToolStripMenuItem" + Me.TrayAskRequireInputIfNoExactMatchToolStripMenuItem.Size = New System.Drawing.Size(284, 22) + Me.TrayAskRequireInputIfNoExactMatchToolStripMenuItem.Text = "Ask (Require Input If No Exact Match)" + ' + 'mnuTrayMarkAskAll + ' + Me.mnuTrayMarkAskAll.Name = "mnuTrayMarkAskAll" + Me.mnuTrayMarkAskAll.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayMarkAskAll.Text = "All Items" + ' + 'mnuTrayMarkAskNfo + ' + Me.mnuTrayMarkAskNfo.Name = "mnuTrayMarkAskNfo" + Me.mnuTrayMarkAskNfo.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayMarkAskNfo.Text = "NFO Only" + ' + 'mnuTrayMarkAskPoster + ' + Me.mnuTrayMarkAskPoster.Name = "mnuTrayMarkAskPoster" + Me.mnuTrayMarkAskPoster.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayMarkAskPoster.Text = "Poster Only" + ' + 'mnuTrayMarkAskFanart + ' + Me.mnuTrayMarkAskFanart.Name = "mnuTrayMarkAskFanart" + Me.mnuTrayMarkAskFanart.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayMarkAskFanart.Text = "Fanart Only" + ' + 'mnuTrayMarkAskExtra + ' + Me.mnuTrayMarkAskExtra.Name = "mnuTrayMarkAskExtra" + Me.mnuTrayMarkAskExtra.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayMarkAskExtra.Text = "Extrathumbs Only" + ' + 'mnuTrayMarkAskTrailer + ' + Me.mnuTrayMarkAskTrailer.Name = "mnuTrayMarkAskTrailer" + Me.mnuTrayMarkAskTrailer.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayMarkAskTrailer.Text = "Trailer Only" + ' + 'mnuTrayMarkAskMI + ' + Me.mnuTrayMarkAskMI.Name = "mnuTrayMarkAskMI" + Me.mnuTrayMarkAskMI.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayMarkAskMI.Text = "Meta Data Only" + ' + 'TrayCurrentFilterToolStripMenuItem + ' + Me.TrayCurrentFilterToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TrayAutomaticForceBestMatchToolStripMenuItem2, Me.TrayAskRequireInputIfNoExactMatchToolStripMenuItem1}) + Me.TrayCurrentFilterToolStripMenuItem.Name = "TrayCurrentFilterToolStripMenuItem" + Me.TrayCurrentFilterToolStripMenuItem.Size = New System.Drawing.Size(193, 22) + Me.TrayCurrentFilterToolStripMenuItem.Text = "Current Filter" + ' + 'TrayAutomaticForceBestMatchToolStripMenuItem2 + ' + Me.TrayAutomaticForceBestMatchToolStripMenuItem2.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuTrayFilterAutoAll, Me.mnuTrayFilterAutoNfo, Me.mnuTrayFilterAutoPoster, Me.mnuTrayFilterAutoFanart, Me.mnuTrayFilterAutoExtra, Me.mnuTrayFilterAutoTrailer, Me.mnuTrayFilterAutoMI}) + Me.TrayAutomaticForceBestMatchToolStripMenuItem2.Name = "TrayAutomaticForceBestMatchToolStripMenuItem2" + Me.TrayAutomaticForceBestMatchToolStripMenuItem2.Size = New System.Drawing.Size(284, 22) + Me.TrayAutomaticForceBestMatchToolStripMenuItem2.Text = "Automatic (Force Best Match)" + ' + 'mnuTrayFilterAutoAll + ' + Me.mnuTrayFilterAutoAll.Name = "mnuTrayFilterAutoAll" + Me.mnuTrayFilterAutoAll.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayFilterAutoAll.Text = "All Items" + ' + 'mnuTrayFilterAutoNfo + ' + Me.mnuTrayFilterAutoNfo.Name = "mnuTrayFilterAutoNfo" + Me.mnuTrayFilterAutoNfo.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayFilterAutoNfo.Text = "NFO Only" + ' + 'mnuTrayFilterAutoPoster + ' + Me.mnuTrayFilterAutoPoster.Name = "mnuTrayFilterAutoPoster" + Me.mnuTrayFilterAutoPoster.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayFilterAutoPoster.Text = "Poster Only" + ' + 'mnuTrayFilterAutoFanart + ' + Me.mnuTrayFilterAutoFanart.Name = "mnuTrayFilterAutoFanart" + Me.mnuTrayFilterAutoFanart.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayFilterAutoFanart.Text = "Fanart Only" + ' + 'mnuTrayFilterAutoExtra + ' + Me.mnuTrayFilterAutoExtra.Name = "mnuTrayFilterAutoExtra" + Me.mnuTrayFilterAutoExtra.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayFilterAutoExtra.Text = "Extrathumbs Only" + ' + 'mnuTrayFilterAutoTrailer + ' + Me.mnuTrayFilterAutoTrailer.Name = "mnuTrayFilterAutoTrailer" + Me.mnuTrayFilterAutoTrailer.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayFilterAutoTrailer.Text = "Trailer Only" + ' + 'mnuTrayFilterAutoMI + ' + Me.mnuTrayFilterAutoMI.Name = "mnuTrayFilterAutoMI" + Me.mnuTrayFilterAutoMI.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayFilterAutoMI.Text = "Meta Data Only" + ' + 'TrayAskRequireInputIfNoExactMatchToolStripMenuItem1 + ' + Me.TrayAskRequireInputIfNoExactMatchToolStripMenuItem1.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mnuTrayFilterAskAll, Me.mnuTrayFilterAskNfo, Me.mnuTrayFilterAskPoster, Me.mnuTrayFilterAskFanart, Me.mnuTrayFilterAskExtra, Me.mnuTrayFilterAskTrailer, Me.mnuTrayFilterAskMI}) + Me.TrayAskRequireInputIfNoExactMatchToolStripMenuItem1.Name = "TrayAskRequireInputIfNoExactMatchToolStripMenuItem1" + Me.TrayAskRequireInputIfNoExactMatchToolStripMenuItem1.Size = New System.Drawing.Size(284, 22) + Me.TrayAskRequireInputIfNoExactMatchToolStripMenuItem1.Text = "Ask (Require Input If No Exact Match)" + ' + 'mnuTrayFilterAskAll + ' + Me.mnuTrayFilterAskAll.Name = "mnuTrayFilterAskAll" + Me.mnuTrayFilterAskAll.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayFilterAskAll.Text = "All Items" + ' + 'mnuTrayFilterAskNfo + ' + Me.mnuTrayFilterAskNfo.Name = "mnuTrayFilterAskNfo" + Me.mnuTrayFilterAskNfo.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayFilterAskNfo.Text = "NFO Only" + ' + 'mnuTrayFilterAskPoster + ' + Me.mnuTrayFilterAskPoster.Name = "mnuTrayFilterAskPoster" + Me.mnuTrayFilterAskPoster.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayFilterAskPoster.Text = "Poster Only" + ' + 'mnuTrayFilterAskFanart + ' + Me.mnuTrayFilterAskFanart.Name = "mnuTrayFilterAskFanart" + Me.mnuTrayFilterAskFanart.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayFilterAskFanart.Text = "Fanart Only" + ' + 'mnuTrayFilterAskExtra + ' + Me.mnuTrayFilterAskExtra.Name = "mnuTrayFilterAskExtra" + Me.mnuTrayFilterAskExtra.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayFilterAskExtra.Text = "Extrathumbs Only" + ' + 'mnuTrayFilterAskTrailer + ' + Me.mnuTrayFilterAskTrailer.Name = "mnuTrayFilterAskTrailer" + Me.mnuTrayFilterAskTrailer.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayFilterAskTrailer.Text = "Trailer Only" + ' + 'mnuTrayFilterAskMI + ' + Me.mnuTrayFilterAskMI.Name = "mnuTrayFilterAskMI" + Me.mnuTrayFilterAskMI.Size = New System.Drawing.Size(173, 22) + Me.mnuTrayFilterAskMI.Text = "Meta Data Only" + ' + 'TrayCustomUpdaterToolStripMenuItem + ' + Me.TrayCustomUpdaterToolStripMenuItem.Name = "TrayCustomUpdaterToolStripMenuItem" + Me.TrayCustomUpdaterToolStripMenuItem.Size = New System.Drawing.Size(193, 22) + Me.TrayCustomUpdaterToolStripMenuItem.Text = "Custom Scraper..." + ' + 'cmnuTrayIconMediaCenters + ' + Me.cmnuTrayIconMediaCenters.Image = CType(resources.GetObject("cmnuTrayIconMediaCenters.Image"), System.Drawing.Image) + Me.cmnuTrayIconMediaCenters.Name = "cmnuTrayIconMediaCenters" + Me.cmnuTrayIconMediaCenters.Size = New System.Drawing.Size(199, 22) + Me.cmnuTrayIconMediaCenters.Text = "Media Centers" + Me.cmnuTrayIconMediaCenters.Visible = False + ' + 'ToolStripSeparator23 + ' + Me.ToolStripSeparator23.Name = "ToolStripSeparator23" + Me.ToolStripSeparator23.Size = New System.Drawing.Size(196, 6) + ' + 'cmnuTrayIconTools + ' + Me.cmnuTrayIconTools.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.CleanFilesToolStripMenuItem, Me.SortFilesIntoFoldersToolStripMenuItem, Me.CopyExistingFanartToBackdropsFolderToolStripMenuItem1, Me.ToolStripSeparator24, Me.SetsManagerToolStripMenuItem1, Me.ToolStripSeparator25, Me.ClearAllCachesToolStripMenuItem1, Me.ReloadAllMoviesToolStripMenuItem, Me.CleanDatabaseToolStripMenuItem1, Me.ToolStripSeparator26}) + Me.cmnuTrayIconTools.Image = CType(resources.GetObject("cmnuTrayIconTools.Image"), System.Drawing.Image) + Me.cmnuTrayIconTools.Name = "cmnuTrayIconTools" + Me.cmnuTrayIconTools.Size = New System.Drawing.Size(199, 22) + Me.cmnuTrayIconTools.Text = "Tools" + ' + 'CleanFilesToolStripMenuItem + ' + Me.CleanFilesToolStripMenuItem.Image = CType(resources.GetObject("CleanFilesToolStripMenuItem.Image"), System.Drawing.Image) + Me.CleanFilesToolStripMenuItem.Name = "CleanFilesToolStripMenuItem" + Me.CleanFilesToolStripMenuItem.Size = New System.Drawing.Size(299, 22) + Me.CleanFilesToolStripMenuItem.Text = "Clean Files" + ' + 'SortFilesIntoFoldersToolStripMenuItem + ' + Me.SortFilesIntoFoldersToolStripMenuItem.Image = CType(resources.GetObject("SortFilesIntoFoldersToolStripMenuItem.Image"), System.Drawing.Image) + Me.SortFilesIntoFoldersToolStripMenuItem.Name = "SortFilesIntoFoldersToolStripMenuItem" + Me.SortFilesIntoFoldersToolStripMenuItem.Size = New System.Drawing.Size(299, 22) + Me.SortFilesIntoFoldersToolStripMenuItem.Text = "Sort Files into Folders" + ' + 'CopyExistingFanartToBackdropsFolderToolStripMenuItem1 + ' + Me.CopyExistingFanartToBackdropsFolderToolStripMenuItem1.Image = CType(resources.GetObject("CopyExistingFanartToBackdropsFolderToolStripMenuItem1.Image"), System.Drawing.Image) + Me.CopyExistingFanartToBackdropsFolderToolStripMenuItem1.Name = "CopyExistingFanartToBackdropsFolderToolStripMenuItem1" + Me.CopyExistingFanartToBackdropsFolderToolStripMenuItem1.Size = New System.Drawing.Size(299, 22) + Me.CopyExistingFanartToBackdropsFolderToolStripMenuItem1.Text = "Copy Existing Fanart to Backdrops Folder" + ' + 'ToolStripSeparator24 + ' + Me.ToolStripSeparator24.Name = "ToolStripSeparator24" + Me.ToolStripSeparator24.Size = New System.Drawing.Size(296, 6) + ' + 'SetsManagerToolStripMenuItem1 + ' + Me.SetsManagerToolStripMenuItem1.Image = CType(resources.GetObject("SetsManagerToolStripMenuItem1.Image"), System.Drawing.Image) + Me.SetsManagerToolStripMenuItem1.Name = "SetsManagerToolStripMenuItem1" + Me.SetsManagerToolStripMenuItem1.Size = New System.Drawing.Size(299, 22) + Me.SetsManagerToolStripMenuItem1.Text = "Sets Manager" + ' + 'ToolStripSeparator25 + ' + Me.ToolStripSeparator25.Name = "ToolStripSeparator25" + Me.ToolStripSeparator25.Size = New System.Drawing.Size(296, 6) + ' + 'ClearAllCachesToolStripMenuItem1 + ' + Me.ClearAllCachesToolStripMenuItem1.Image = CType(resources.GetObject("ClearAllCachesToolStripMenuItem1.Image"), System.Drawing.Image) + Me.ClearAllCachesToolStripMenuItem1.Name = "ClearAllCachesToolStripMenuItem1" + Me.ClearAllCachesToolStripMenuItem1.Size = New System.Drawing.Size(299, 22) + Me.ClearAllCachesToolStripMenuItem1.Text = "Clear All Caches" + ' + 'ReloadAllMoviesToolStripMenuItem + ' + Me.ReloadAllMoviesToolStripMenuItem.Image = CType(resources.GetObject("ReloadAllMoviesToolStripMenuItem.Image"), System.Drawing.Image) + Me.ReloadAllMoviesToolStripMenuItem.Name = "ReloadAllMoviesToolStripMenuItem" + Me.ReloadAllMoviesToolStripMenuItem.Size = New System.Drawing.Size(299, 22) + Me.ReloadAllMoviesToolStripMenuItem.Text = "Reload All Movies" + ' + 'CleanDatabaseToolStripMenuItem1 + ' + Me.CleanDatabaseToolStripMenuItem1.Image = CType(resources.GetObject("CleanDatabaseToolStripMenuItem1.Image"), System.Drawing.Image) + Me.CleanDatabaseToolStripMenuItem1.Name = "CleanDatabaseToolStripMenuItem1" + Me.CleanDatabaseToolStripMenuItem1.Size = New System.Drawing.Size(299, 22) + Me.CleanDatabaseToolStripMenuItem1.Text = "Clean Database" + ' + 'ToolStripSeparator26 + ' + Me.ToolStripSeparator26.Name = "ToolStripSeparator26" + Me.ToolStripSeparator26.Size = New System.Drawing.Size(296, 6) + ' + 'ToolStripSeparator22 + ' + Me.ToolStripSeparator22.Name = "ToolStripSeparator22" + Me.ToolStripSeparator22.Size = New System.Drawing.Size(196, 6) + ' + 'cmnuTrayIconSettings + ' + Me.cmnuTrayIconSettings.Image = CType(resources.GetObject("cmnuTrayIconSettings.Image"), System.Drawing.Image) + Me.cmnuTrayIconSettings.Name = "cmnuTrayIconSettings" + Me.cmnuTrayIconSettings.Size = New System.Drawing.Size(199, 22) + Me.cmnuTrayIconSettings.Text = "Settings..." + ' + 'ToolStripSeparator13 + ' + Me.ToolStripSeparator13.Name = "ToolStripSeparator13" + Me.ToolStripSeparator13.Size = New System.Drawing.Size(196, 6) + ' + 'cmnuTrayIconExit + ' + Me.cmnuTrayIconExit.Image = CType(resources.GetObject("cmnuTrayIconExit.Image"), System.Drawing.Image) + Me.cmnuTrayIconExit.Name = "cmnuTrayIconExit" + Me.cmnuTrayIconExit.Size = New System.Drawing.Size(199, 22) + Me.cmnuTrayIconExit.Text = "Exit" + ' + 'Panel3 + ' + Me.Panel3.BackColor = System.Drawing.Color.White + Me.Panel3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.Panel3.Controls.Add(Me.PictureBox2) + Me.Panel3.Controls.Add(Me.Label7) + Me.Panel3.Controls.Add(Me.ProgressBar1) + Me.Panel3.Location = New System.Drawing.Point(3, 3) + Me.Panel3.Name = "Panel3" + Me.Panel3.Size = New System.Drawing.Size(249, 111) + Me.Panel3.TabIndex = 2 + ' + 'PictureBox2 + ' + Me.PictureBox2.Image = CType(resources.GetObject("PictureBox2.Image"), System.Drawing.Image) + Me.PictureBox2.Location = New System.Drawing.Point(12, 11) + Me.PictureBox2.Name = "PictureBox2" + Me.PictureBox2.Size = New System.Drawing.Size(48, 48) + Me.PictureBox2.TabIndex = 2 + Me.PictureBox2.TabStop = False + ' + 'Label7 + ' + Me.Label7.Font = New System.Drawing.Font("Segoe UI", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label7.Location = New System.Drawing.Point(63, 11) + Me.Label7.Name = "Label7" + Me.Label7.Size = New System.Drawing.Size(175, 48) + Me.Label7.TabIndex = 0 + Me.Label7.Text = "Loading Settings..." + Me.Label7.TextAlign = System.Drawing.ContentAlignment.MiddleCenter + ' + 'ProgressBar1 + ' + Me.ProgressBar1.Location = New System.Drawing.Point(8, 68) + Me.ProgressBar1.MarqueeAnimationSpeed = 25 + Me.ProgressBar1.Name = "ProgressBar1" + Me.ProgressBar1.Size = New System.Drawing.Size(231, 23) + Me.ProgressBar1.Style = System.Windows.Forms.ProgressBarStyle.Marquee + Me.ProgressBar1.TabIndex = 1 + ' + 'pnlLoadingSettings + ' + Me.pnlLoadingSettings.BackColor = System.Drawing.Color.Gainsboro + Me.pnlLoadingSettings.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle + Me.pnlLoadingSettings.Controls.Add(Me.Panel3) + Me.pnlLoadingSettings.Location = New System.Drawing.Point(380, 287) + Me.pnlLoadingSettings.Name = "pnlLoadingSettings" + Me.pnlLoadingSettings.Size = New System.Drawing.Size(257, 119) + Me.pnlLoadingSettings.TabIndex = 13 + Me.pnlLoadingSettings.Visible = False + ' + 'tmrAppExit + ' + Me.tmrAppExit.Interval = 1000 + ' + 'tmrKeyBuffer + ' + Me.tmrKeyBuffer.Interval = 1000 + ' + 'frmMain + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi + Me.ClientSize = New System.Drawing.Size(1465, 828) + Me.Controls.Add(Me.pnlLoadingSettings) + Me.Controls.Add(Me.scMain) + Me.Controls.Add(Me.StatusStrip) + Me.Controls.Add(Me.MenuStrip) + Me.DoubleBuffered = True + Me.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.MainMenuStrip = Me.MenuStrip + Me.MinimumSize = New System.Drawing.Size(800, 600) + Me.Name = "frmMain" + Me.Text = "Ember Media Manager" + Me.StatusStrip.ResumeLayout(False) + Me.StatusStrip.PerformLayout() + Me.MenuStrip.ResumeLayout(False) + Me.MenuStrip.PerformLayout() + Me.scMain.Panel1.ResumeLayout(False) + Me.scMain.Panel2.ResumeLayout(False) + Me.scMain.Panel2.PerformLayout() + Me.scMain.ResumeLayout(False) + Me.pnlFilterGenre.ResumeLayout(False) + Me.pnlFilterGenre.PerformLayout() + Me.pnlFilterSource.ResumeLayout(False) + Me.pnlFilterSource.PerformLayout() + CType(Me.dgvMediaList, System.ComponentModel.ISupportInitialize).EndInit() + Me.mnuMediaList.ResumeLayout(False) + Me.scTV.Panel1.ResumeLayout(False) + Me.scTV.Panel2.ResumeLayout(False) + Me.scTV.ResumeLayout(False) + CType(Me.dgvTVShows, System.ComponentModel.ISupportInitialize).EndInit() + Me.mnuShows.ResumeLayout(False) + Me.SplitContainer2.Panel1.ResumeLayout(False) + Me.SplitContainer2.Panel2.ResumeLayout(False) + Me.SplitContainer2.ResumeLayout(False) + CType(Me.dgvTVSeasons, System.ComponentModel.ISupportInitialize).EndInit() + Me.mnuSeasons.ResumeLayout(False) + CType(Me.dgvTVEpisodes, System.ComponentModel.ISupportInitialize).EndInit() + Me.mnuEpisodes.ResumeLayout(False) + Me.pnlListTop.ResumeLayout(False) + Me.pnlSearch.ResumeLayout(False) + Me.pnlSearch.PerformLayout() + CType(Me.picSearch, System.ComponentModel.ISupportInitialize).EndInit() + Me.tabsMain.ResumeLayout(False) + Me.pnlFilter.ResumeLayout(False) + Me.GroupBox1.ResumeLayout(False) + Me.GroupBox3.ResumeLayout(False) + Me.GroupBox3.PerformLayout() + Me.gbSpecific.ResumeLayout(False) + Me.gbSpecific.PerformLayout() + Me.GroupBox2.ResumeLayout(False) + Me.GroupBox2.PerformLayout() + Me.pnlTop.ResumeLayout(False) + Me.pnlTop.PerformLayout() + Me.pnlInfoIcons.ResumeLayout(False) + Me.pnlInfoIcons.PerformLayout() + CType(Me.pbVType, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.pbStudio, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.pbVideo, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.pbAudio, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.pbResolution, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.pbChannels, System.ComponentModel.ISupportInitialize).EndInit() + Me.pnlRating.ResumeLayout(False) + Me.pnlRating.PerformLayout() + CType(Me.pbStar5, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.pbStar4, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.pbStar3, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.pbStar2, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.pbStar1, System.ComponentModel.ISupportInitialize).EndInit() + Me.pnlCancel.ResumeLayout(False) + Me.pnlCancel.PerformLayout() + Me.pnlAllSeason.ResumeLayout(False) + CType(Me.pbAllSeason, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.pbAllSeasonCache, System.ComponentModel.ISupportInitialize).EndInit() + Me.pnlNoInfo.ResumeLayout(False) + Me.Panel2.ResumeLayout(False) + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() + Me.pnlInfoPanel.ResumeLayout(False) + Me.pnlInfoPanel.PerformLayout() + CType(Me.pbMILoading, System.ComponentModel.ISupportInitialize).EndInit() + Me.pnlActors.ResumeLayout(False) + CType(Me.pbActLoad, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.pbActors, System.ComponentModel.ISupportInitialize).EndInit() + Me.pnlTop250.ResumeLayout(False) + CType(Me.pbTop250, System.ComponentModel.ISupportInitialize).EndInit() + Me.pnlPoster.ResumeLayout(False) + CType(Me.pbPoster, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.pbPosterCache, System.ComponentModel.ISupportInitialize).EndInit() + Me.pnlMPAA.ResumeLayout(False) + Me.pnlMPAA.PerformLayout() + CType(Me.pbMPAA, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.pbFanartCache, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.pbFanart, System.ComponentModel.ISupportInitialize).EndInit() + Me.tsMain.ResumeLayout(False) + Me.tsMain.PerformLayout() + Me.cmnuTrayIcon.ResumeLayout(False) + Me.Panel3.ResumeLayout(False) + CType(Me.PictureBox2, System.ComponentModel.ISupportInitialize).EndInit() + Me.pnlLoadingSettings.ResumeLayout(False) + Me.ResumeLayout(False) + Me.PerformLayout() - End Sub + End Sub Friend WithEvents BottomToolStripPanel As System.Windows.Forms.ToolStripPanel Friend WithEvents TopToolStripPanel As System.Windows.Forms.ToolStripPanel Friend WithEvents RightToolStripPanel As System.Windows.Forms.ToolStripPanel @@ -4593,22 +4620,6 @@ Partial Class frmMain Friend WithEvents btnDown As System.Windows.Forms.Button Friend WithEvents btnUp As System.Windows.Forms.Button Friend WithEvents lblInfoPanelHeader As System.Windows.Forms.Label - Friend WithEvents pnlTop As System.Windows.Forms.Panel - Friend WithEvents pnlInfoIcons As System.Windows.Forms.Panel - Friend WithEvents pbVideo As System.Windows.Forms.PictureBox - Friend WithEvents pbAudio As System.Windows.Forms.PictureBox - Friend WithEvents pbResolution As System.Windows.Forms.PictureBox - Friend WithEvents pbChannels As System.Windows.Forms.PictureBox - Friend WithEvents pbStudio As System.Windows.Forms.PictureBox - Friend WithEvents lblTagline As System.Windows.Forms.Label - Friend WithEvents lblTitle As System.Windows.Forms.Label - Friend WithEvents pnlRating As System.Windows.Forms.Panel - Friend WithEvents pbStar5 As System.Windows.Forms.PictureBox - Friend WithEvents pbStar4 As System.Windows.Forms.PictureBox - Friend WithEvents pbStar3 As System.Windows.Forms.PictureBox - Friend WithEvents pbStar2 As System.Windows.Forms.PictureBox - Friend WithEvents pbStar1 As System.Windows.Forms.PictureBox - Friend WithEvents lblVotes As System.Windows.Forms.Label Friend WithEvents tsMain As System.Windows.Forms.ToolStrip Friend WithEvents btnMetaDataRefresh As System.Windows.Forms.Button Friend WithEvents lblMetaDataHeader As System.Windows.Forms.Label @@ -4616,7 +4627,6 @@ Partial Class frmMain Friend WithEvents pbMILoading As System.Windows.Forms.PictureBox Friend WithEvents tsbAutoPilot As System.Windows.Forms.ToolStripDropDownButton Friend WithEvents btnMid As System.Windows.Forms.Button - Friend WithEvents lblRuntime As System.Windows.Forms.Label Friend WithEvents pbPosterCache As System.Windows.Forms.PictureBox Friend WithEvents txtCerts As System.Windows.Forms.TextBox Friend WithEvents lblCertsHeader As System.Windows.Forms.Label @@ -4738,7 +4748,6 @@ Partial Class frmMain Friend WithEvents mnuNewAskMI As System.Windows.Forms.ToolStripMenuItem Friend WithEvents mnuMarkAutoMI As System.Windows.Forms.ToolStripMenuItem Friend WithEvents mnuMarkAskMI As System.Windows.Forms.ToolStripMenuItem - Friend WithEvents pbVType As System.Windows.Forms.PictureBox Friend WithEvents ToolStripSeparator5 As System.Windows.Forms.ToolStripSeparator Friend WithEvents cmnuRefresh As System.Windows.Forms.ToolStripMenuItem Friend WithEvents RefreshAllMoviesToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem @@ -5011,9 +5020,30 @@ Partial Class frmMain Friend WithEvents pbAllSeasonCache As System.Windows.Forms.PictureBox Friend WithEvents tmrAppExit As System.Windows.Forms.Timer Friend WithEvents CheckUpdatesToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem - Friend WithEvents lblStudio As System.Windows.Forms.Label Friend WithEvents tmrKeyBuffer As System.Windows.Forms.Timer - Friend WithEvents lblOriginalTitle As System.Windows.Forms.Label Friend WithEvents FullSkipToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem Friend WithEvents mnuAllSkipAll As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents pnlTop As System.Windows.Forms.Panel + Friend WithEvents lblTitle As System.Windows.Forms.Label + Friend WithEvents pnlInfoIcons As System.Windows.Forms.Panel + Friend WithEvents lblStudio As System.Windows.Forms.Label + Friend WithEvents pbVType As System.Windows.Forms.PictureBox + Friend WithEvents pbStudio As System.Windows.Forms.PictureBox + Friend WithEvents pbVideo As System.Windows.Forms.PictureBox + Friend WithEvents pbAudio As System.Windows.Forms.PictureBox + Friend WithEvents pbResolution As System.Windows.Forms.PictureBox + Friend WithEvents pbChannels As System.Windows.Forms.PictureBox + Friend WithEvents lblRuntime As System.Windows.Forms.Label + Friend WithEvents lblTagline As System.Windows.Forms.Label + Friend WithEvents pnlRating As System.Windows.Forms.Panel + Friend WithEvents pbStar5 As System.Windows.Forms.PictureBox + Friend WithEvents pbStar4 As System.Windows.Forms.PictureBox + Friend WithEvents pbStar3 As System.Windows.Forms.PictureBox + Friend WithEvents pbStar2 As System.Windows.Forms.PictureBox + Friend WithEvents pbStar1 As System.Windows.Forms.PictureBox + Friend WithEvents lblVotes As System.Windows.Forms.Label + Friend WithEvents lblOriginalTitle As System.Windows.Forms.Label + Friend WithEvents ExportToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents MoviesToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents TVShowsToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem End Class diff --git a/Ember Media Manager/frmMain.resx b/Ember Media Manager/frmMain.resx index f822122..5a4c104 100644 --- a/Ember Media Manager/frmMain.resx +++ b/Ember Media Manager/frmMain.resx @@ -120,104 +120,103 @@ - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK6QAA - CukB/XXO0wAAAetJREFUOE9j+P//PwMlGEXzfQdj37t2Bs24DLxnZ5B5z96oEFkebsAtV7OIKwaq/y9p - Kfy/bqW7Bd2QG3YGjZd1lf9f1lH6f8PesPf/wZmMIDVgA656WHGd1lH+f1xRGoxPqcv9v2iJMOSyrUHj - aW0loJwUGJ/SVPx/3kzbFG7ATk4uxgOK0j0HlGX+gzFQ0SE1uf9nLHVXnLM3rDmqrfh/P1AMLq8kvf+A - rAQ33ACYc3cqy/TuUJL+vxOIdyhI/d8DdMk+LcX/2xUkIWIQuf1LNBVZYHowYmAj0JANQIVgDLR1PdAg - GH+jkvTe+doqrFgDEVlwhZL08RXAsEDD7zaZGsBtxumCBYrSDQsVpP4A8X90vEBRaiN67KB4YYaidONM - oEYYngFkgzCqmPSW/0+/w/WBGRNU5RkmKkg1TJSX+g/DE0BsBenNkxSku8BsZKwgtWWSihwHPBZ61RS4 - OuUl/6Ph/bX6qkwgRV0KUr0daPJditJmKNHYoSSb2AS0pUlO8j+Q3vctwBusGYab5aW6wXJA3KIoM/2x - sxVYnoGZAYwFgBRvnKRofba02BZuFmYDIF8HKG4MwkA2iK+QIik6N1NafCGQLQLEfHAXABUxAzHYT2BB - BgZOIJ8XGQPFeJDk2UB6MFIiOdkaALyqHwCXXFYvAAAAAElFTkSuQmCC + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAArpAAAK6QH9dc7TAAAB7UlE + QVQ4T6WQQUgbQRSG18YWjbV4UNudicnMxiiahK4VAwaaFEqhUAoeeyoIXsSTd0WjHmzagHpRD1KFHnKr + 0UANWJMWiqBFaWOpFNSDePWol8Lzzeisu3vUw7fz3v+/98/uagBwKxzN0bPO1wcJc9yu2TlMmP2HySeD + ds0q/r2IvdkzQ/C7ncHfeDRvHxLsJ8xUORqEcsSA/WRHBr7NVwhdmn9exr3bkSBscirZavXDr+7rkPJT + M7UdNtAjkq02DruxcJcVUKj2VpQ4/VAK+kCCQ99b/PCzO5rdSXYM/QhzKKJm+QYtlpoe1VgBikLQl1kz + KBSQNUZgHd9ko53DF6Zfapde8VMbr1Q7jgBBDkOWcVCCt37GINXnDPr1Y7j5rn3esazIGnQzi//CxelK + l2ndrHA0gkVOR5cY+Y+Am0VOcu55RzPHaWoeBxVzVzg1moeTc2fAVCigTTMyOh0goJgSJ6OrM4ymZW2H + kfxMs7/KCsi0MO+7gA4uisOPQ3eEn2YkM+ny05zGrADBpNHUO4bpY34d8Nw463kllxXjAfJeesgE980e + P49LX/Nokjo8at/qDSMDtDFfU+kxsY+g3inAWvSsT29Y6KcPl7CuRx7IAPHAIQ8iv0mKmlaNfa0d1O7b + /HuoeWStxJsB2gW8qh8AcaOVUQAAAABJRU5ErkJggg== - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK6QAA - CukB/XXO0wAAAh5JREFUOE+lUzts01AUNQQJFYVQYECwVVSighlYO4BAlAExIAWliIEBiYEZGmKnfBqn - St1IOAmByHabn0rzqZQmQ9I2CZ8kLG4CiAGGSlXVGaG2A8PlPNMGGkMHGI7u9TnnnXffs80REfc/2HHx - oq47mrp+eacNTAGNet3xrtF43Wo2e+u12gbwpdVs9YGrQzvfGWYKqFbKgwvz81StVIjV8sKv/lW12v/X - gFKxaJ8rlRZR3xbyecrP5mg2l/sGrLOecXOlYhmej/Cc2wpqTwDT6Wwm8xWgTDpN6VTqrqqoBzRNO4Se - ZxzTZjKZ1UIhf8IUEJ2c6E0m4rVkIkEvp6bkzlHBpZmWjMcLsehkz7YATVGOq4pCqDShqpSanh74Q8At - DRrzGFCVw8xjHCHyPLznRTh8JRwKfQAIO/GdAfFYLPwsFCTob+C9qEQiu9sBrPE8eXzEPy599ktjFAoG - 1may2QtbIZjoWlCWvzPNL0n6o4fubtMdjIriba/Hs+YVPcviyAiNj/koGJDfB2T5k+TzEeOgLcGzMeoV - r5oCGOFyOq1ugbcPuwVy8zyh/1kBxgm8q9819MD6+/FMH5LLOXTHef/eyrAgXEJdB5axeAB1FVp75/YE - Fo7jgG6gB+jD4ymb1XoG9djNG4NRx3X7U/RHD9psZ1FPMs+m17gHYwIQFmAv0AXTPqAL/X7DwHG7WM84 - pjHPptey7S386y/9A5V3gUZ5jSUHAAAAAElFTkSuQmCC + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAArpAAAK6QH9dc7TAAACHUlE + QVQ4T6WQPUwTcRjGT2tiMLWiDEY3IolEZ3Vl0GjEwTiY1BTj4GDi4KzU3hU/6JWUo4nX1tPm7qBfQdor + SWmHFmjrR1uX0gpx0MGEGGZjgMHh9X1P/idQJh1+9z7/53n+712OA4D/Yk+TsdRsulrN5rW9MkaH0ajX + XR8bjXftVquvXqttIl/brXY/enXMLu3u7zgQ1Up5aHFhAaqVCtAsL/7Vb6vVgd19S5SKRed8qbSE80Mh + n4f8XA7mcrmfyAZp8uZLxTJ2VrBzsWMBls5lDeMHAkYmA5l0+oGmakd0XT+GmiePslnDWCsU8qc7FsSm + JvtSyUQtlUzCm+lpmfkM9DKUpRKJQjw21ct886Gr6ilNVQEnTGoapGdmBlmBgQvu6phRx0RTe8g3w+gr + 5cBrRbmuRCLLCOCb+O2XiUQ8rryMhAHz99i9okaj+8m3Cr7nz44HJ6QvQWkcIuHQ+mw2e5ll+EU3w7L8 + i7KgJDWfPvF2s8xaMCaK9/w+37pf9K2Ko6MwMR6AcEj+FJLlz1IgAORh9g07m2N+8UbHAsLjdtu9Au8c + 8Qrg5XlA/Wci5Am8Z8Az/Ni+/c6OBYTHPXzf/ejh9xFBuIpzA1nFy4M41zCz3szgbJxJN9KL9OPxrMNu + P4/z5J3bQzHXLecL1CeOOhwXcJ6hzlbX/A/mFjzYkINIF5YOIV2oD5sFjttHmjzKqLPVtVkL/h3gfgOV + d4FGU18o1wAAAABJRU5ErkJggg== - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK8gAA - CvIBPVL3EQAAAoVJREFUOE+lk21IU1EYx88WvkAaC/dyvW53zm3m1tw03TSTSAsiil5oldnIpGUNMkSE - qA9RRoliUTk1db5ha5UDM+kNyRRZ4jK0JDUREsPCD9G3vv47d647+tIXL/wuz3POfX7nPId7CACyFtZU - zC8cEvyoqRYt7Mxzz9sMK/M5xu+U5f+wMp+bPrJUXqYUBDN7CgumNmvwQZskMKFJxEQKu5rrlKH4bz6Z - xmF6a0atIAjaLEcCKUkI6DkEdKoQwS0mjGca8U6vBj83ZtRh3GKgsZKO0e80bLsgGLVa7CMZaZi5WImp - 0hOYvVSFpY42fHSWYKaqAoNsAhbvu7HY1ICFmusI7t+NQaXUIwgGrWb7a3Mavj32YbGnC3O1N/C104PA - oX34XH0FzxQSLPf34cvtOkxWnMfwru0YUMkigoFsi72fCsZcTgwd3Itg5QXMNd7F6MnjmG24g/FyF6br - bsJPW3mZb8OLvGz0ckxE4Kct9KgZPNCwq6gT4TNq4TNo8ZD2+8ikhzc87tVx8NIz6uGYyBk8Lzps9dCi - VqVcoCVJhhalLJS3cQz4eU8yG4pbWSmeFGy7LJzBbJOb+PJzznVYDMPdtsy33daMoTBvurLMw43J7O8G - Wuimkma9+mebKfXWq1JHnCC4VlxEamxZxHvMTvyuMtJbdjqE/6yT+EocpGtH3oHmTZpf9XQ390ypn/oc - ReKnpxyhn3D1RZ9okYhIYmKIJDb2H+Kjo0k6oyBOiynlqlY1Va9m0V58NNfMqSKCdYSIxYTEUc9GipQi - pygoTBg+Xi+NjdGcYeXvC+VSF7+osANeQImnJFBkFAWFoSSG4WNeJokSizZEiUQSvkYQrOU6/wFfUQMk - N8MXYQAAAABJRU5ErkJggg== + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAryAAAK8gE9UvcRAAACfElE + QVQ4T6WQbUhTYRiG3y38gDQW7uN43M6c28ytuWm6aSaRFkQUfdAqs5FJyxpkiAhRP6KMEsWicmrqNMVs + lQMz6QvJFFniMrQkNRESw8If0b/+3r07rjOECKoD18v9PM95L85zCID/4rfNv4E/vlZViua25rhnbYal + 2SzjF8riH1iazU4dWigtUQqCqR35eRPrNXirTRAY08RjLIldrnVKPv+qx1M4TG5MqxYEAZvlgD8pAX49 + B79OxRPYYMJouhGv9WoEZyNGHUYtBpqVtEff07CtgmDYarEPpaVg6mw5JoqPYPpcBRbaWvDOWYSpijL0 + s3GYv+3GfEMd5qouI7B7O/qVUo8g6Lea7S/MKfj8wIv5znbMVF/Bpzse+PftwofKC3iskGCxtwcfr9dg + vOw0BrdtRp9KFhb0ZVrsvVQw4nJiYO9OBMrPYKb+JoaPHsZ03Q2MlrowWXMVPrrKs1wbnuZkoptjwgIf + XaFTzeCuhl1GHQ+vUQuvQYt7dN/7Jj26Qv0uHUdRoZNjwv/gScF+q4cOm5VygaYEGZqUMj63cAyCc08i + y+dmVoqHeZvOC4LpBjfx5madarMYBjts6a86rGkDIV62Z5gH6xPZH3X0optKGvXqby2m5GvPix0xguBS + YQGpsmWQrkN24nOVkO6S4zy+k07iLXKQ9i05exrXab7X0q+5ZUp+3+MoED865uDvLh/0iRSJiCQqikii + o1cQGxlJUhkFcVpMSRe1qolaNYvWwoPZZk4VFqwiRCwmJIZ61lKkFDlFQWFCBPNqaXSU5gQrf5Mvl7po + vVJAiaXEUWQUBYWhxIcI5qBIEiEWrYkQiSS0FguCfwfkJ19RAyRlTPLdAAAAAElFTkSuQmCC - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK8gAA - CvIBPVL3EQAAAiBJREFUOE+lkk1rE1EUht82fgvBhbsiqVkUxI1uilCldeXaTdtNQFwIKtVFESEgYlMX - /hM3Uj8SOjNJpk7EmUySSWo0gYaR2CTGGDJJJiFkU7ieW9NsrkrBYV4Ybs597nPuCRhj+J+MNzebP8HT - aPwIbG/nHudyWVR2d9Hr9WDbNhKahnQ6Tb83MBgMxvvGH0nDgKHryFrWE9NMvqXiS9VqdcF1Xe+hANVK - BTy1Wi2o6zozDJ2Vv5VZu+3Uvtr2HU3TJkcGHjKYOGh7bNBzXfRJ13GcoCxJTFEURiezTqfDSjs7TNc/ - 2qmUqdbr9Y1+vy+20O104Ha7aLVaQUWWWSwaZXTyPqBQKLBIOMzUeJyRocnvRTA4DCAei3GA8UcAP523 - 4ZCB/BeDEeBVl2oFA1Ln/dMom0+3VNX5kEjcLZfLV2kKL4qFwl6YWhgBnvFaARBVZMjSJqxM+nnWyrze - UuMgAIbDIUql0nVFkl7SJKJ0iTfb7bYIkDYjiITfIWWaBLDe8G8aJWgDtyJwBsViEXwCHCoY8BPjsSho - VPuAhPYeK/fv4YzXi+WlJTxaXcV6KITQ2hqWFxdFgH96Gg8frCCf/7T+5XN+41YggH89ggEvXpifn6KL - TH6nWV2Znb1IS0c8wCnKScoJynHKUYr4T+QAv893+drc3G2eCzMzN2jpHBX7KecpPsoU5SzFIxhw6iRA - 7+9nAjhGa6dHBgcWgsEvvrtwTtGsxLEAAAAASUVORK5CYII= + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAryAAAK8gE9UvcRAAACF0lE + QVQ4T6WSTWsTURSG3zR+C8GFuyKpWRTEjW6KUKV15dpN201AXAgq1UURISBiUxf+EzdStQmdmWRSJ+JM + Jp81mkDDyNgkxhgyk0xCyKZwPTdqhI4U0cM8cDlz73PO3DNgjP0X40Wr9W1Es/k1uL1deFgo5FHd3UWv + 14NhGEgqCjKZDL1vYjAYuAUpTYOmqsjnco90PfWaNl+o1WrzjuP4/kpQq1ZH1Ov1kKqqTNNUZn42mW1b + 9U+GcUtRlImfAi8JPC5Bz3HQp3YtywqJgsAkSWJUmXU6HVbZ2WGq+s5Ip/VEo9FY7/f743PjRbfTgdPt + ot1uhyRRZPFYjFHlkaBUKrFoJMISssyoQ53fyz8J5HicC7Q/Cvhh/hkWCcSDBS+6tNcloMr8+2mUrcdb + iYT1Npm8bZrmZZrCs3KptBf5LXjC97oEMUmEKGwil808zeeyL7cSMkiA4XCISqVyVRKE5zSJGF3iddu2 + 3QJhM4poZANpXSdB7hVf0yhBB3hXJM6iXC6DT4BLXQJeUY7HQKMaCZLKGyzfvYNTPh+WFhfxYGUFa+Ew + wqurWFpYcAsCU1O4f28ZxeL7tY8fius3gkEcFC4Bj/m5uUm6yNQXuqlLMzPnKXXIC5wgjhPHiKPEYcL9 + J/II+P0Xr8zO3uScm56+RqkztDlAnCX8xCRxmvC6BJT0TAD0/AgPcIRyJwnewa8u9nXA8B2+u3BONJyd + WgAAAABJRU5ErkJggg== - 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 - AeMOrQmoaLy0AAAAAElFTkSuQmCC + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAArpAAAK6QH9dc7TAAACR0lE + QVQ4T6WQXWhSYRjHzxrSB7HaVTAiYkF0t4pYNHAqFBSDoOgDZkTQYguqjd1sFASV2V3RyosIKncRktU0 + t6aWm3r82nTuuJXTaVNxudlVMUcFi3/P6/Sg5VVd/M7znuf/Ae/LAfgvKi5fRlObLYnsKWsye4u4Y0lm + zxpi83WVvH8t9LPzVwbima80oYumoQ2n8JymIZ75+Sr2Wf2nv+znWTil1s6koAnF0SfE8tjSWejCc7gb + jIJ0VqgrzYiHe0JM/iD0CSp/GOrADG6Mh6GZipMELOVy6LH7oZqIUGkc94X4+WJOLFAFIrarvg/o8Uyv + 4p3GbQpYUgt4FIqimxfyu15C5Y8kulzBKrGg3RHc0OUK5TocQVwk2kYn8PjjHBaWv2NxaRndI2O44JjM + a+RFpyuEy7xQLxacGwlsVdrG0fp+FSVxZMgNYyJDMnCTD+CY1Vemn7H5D4gFx63empZh9w8CRRRvnJj9 + lsOvlRWcNNlxeNgjai1v3Thq9uwSCxgKkzNAgCE12nHinY/WwER6AQ06MxSDfF4r8OXgIC9hudKC03IS + GfsNo+jgJ1keU5kslBYP5FRa1Ml7vZgTCxgyk1PfTAYpweaTaBKW9CKueQQ0USnbkWfs0JCnumIBQ2b2 + PWymO0qJ3QY7Goh9Jh7N9AYys1evBNaV+vOfao6rIbZxHFdPbNnRdql1T9/TF43a18HG/gFhr6bfuLOz + t520OmI787JMaYGE2EhsquK4WjKtJ9YQkgLsvJaoZZ6Ct/wR/w1wvwHjDq0JzqxPmgAAAABJRU5ErkJg + gg== @@ -231,154 +230,153 @@ - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK8gAA - CvIBPVL3EQAAAkpJREFUOE+lkstrE1EUxm8TLe7ci60bF4Hixm0pFExVAm78C1woVFwYcelaqMtSpcLE - 4M5NXWixgmhDK3bRNC8zeb8fM8m8M0mlDcEez7mYTFLoqgMf986d+X7nfPdeBgDsPOLmwWDA+v0+M3Sd - /Tk8ZMdHR5fKpdKLbCYTLBYKAs6FfC4XKBaLN3u9HpOaTaaqKvdOAgydWZbFlHZ7IZNOnxTyeUAz1KpV - QABsfv70zbbtC7Isnwm4ouvaDBqek4HMzUYDZFni45vXa/BxY2Mbv1/WsdtRB/3+McPWHmqa+hcBJxgF - Oh0L0ikRdnd2wDB0wHWIRg7g69YXiEWjH+q1mgMwTZPhD+/pJzKToWvbIIpJeLWyAnt7v6DVknkX/+Ps - YkQH0MHcpmEI4wDLNEHXNNj+8R2rbgHtR6Vc5iOaQ+lUygFYlsmw6gQAgUDqdm0uSWpCLpslM6REMSQm - k+MRDIrAAeNdUJRhJMxMRkAj/E4kQol43AHQjiqKIihKmwNOi0DlcgnisRhXNBIJoRyAhpcCN0mg4yII - nsaEVFXh2Q/CYQjv7wNW/4mjA2jhxWjU6wK1ibeMnzvtOonmsiTx/FiVx3i7vv7u2uzsWAeaxvB4glSl - WqlAvV4DBHIRtN1qwdrq6qbH47l3Y27u/rTbfZ0xNj26SD6fjwUDgZd0xiTeBVYl0ZwAj5eXn6CJPy6U - GzUC0NpFl2vm1uLio9te71OU/47X+wzlv7u05F+Yn3+ApqsoNxmHGgFwYQrXScNn+D6+Ruap04B/nRvT - MkyJpVUAAAAASUVORK5CYII= + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAryAAAK8gE9UvcRAAACSElE + QVQ4T6WSy2sTURTGbxMt7tyLrRsXgeLGbSkUTFUCbvwLXChUXBhx6Vqoy1KlwsTgzk1daLEF0YZW7KJp + XmbyTibPmWQemckklTYEezzn0mQS0ZUDX+4j8/3u+e4ZBgD/Jf4zGAxYv99nbcNgP4+O2Mnx8QWpVHqW + zWSCxUJBwLmQz+UCxWLxeq/XY3KjwTRN+wugbTDLspjaai1k0unTQj4PaIZqpQIIgM2PHz7btn1OUZR/ + Ai4Zhj6DhqdkIHOjXgdFkfn46uUavN/Y2MH/LxpY7QjQ758wLO2+rmu/EHCKUaDTsSCdEmFvdxcQDLgP + 0cghbG99glg0+q5WrToA0zQZvvCWXiIzGbq2DaKYhBcrK7C//x2aTYVXcRZnDyM6gA7mNtttYRxgmSYY + ug47X7/gqVtA91GWJD6iOZROpRyAZZmUfwKAQK5u1+aS5QbkslkyQ0oUQ2Iy6QBMs00ROGAcwnU2x8xk + BDTCj0QilIjHHQDdqKqqgqq2OOBPEUCSShCPxbiikUgI5QB07ClekkDtIgh2Y0KapvLsh+EwhA8OAE// + hqMDaOKHUa/VBCoTvzLed7p1Es0VWeb58VQe4/X6+psrs7NjFeg6w/YE6ZRKuQy1WhUQyEXQVrMJa6ur + mx6P5861ubm70273VcbY9Ajg8/lYMBB4Tj0m8SrwVBLNCfBwefkRmvjjQrlRIwDtnXe5Zm4sLj646fU+ + Rvlveb1PUP7bS0v+hfn5e2i6jHKTcagRABdTuCYNn+F6fI/MU5MAYL8BnRvTMpRYdPwAAAAASUVORK5C + YII= - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK6QAA - CukB/XXO0wAAArRJREFUOE+l01tIU3EAx/GBlAQVCkVvTZMI1B6SijCkhx566MIqJbEVFZqplTmVSZa2 - zOsslWLdzMjMJCjDaWoPywdzrfA+15zOy9zV7cw5zXbO2fj13wFHom8e+HI48P9/zv+c/zk8ALz1FJjs - maqKpI1PEhiTLJ42Pye9iKcttfG0tc5fgsf86thaN+IA92BeKGuWsV7bS3hna+G1v4bX8QY+qgE+ZyN8 - riauP+ZPpTNObPwf4oD5vuxwxvAI7MxDsMYqsKYasObH8Fpk8FqfwQ/7Zp9iwdIFB7VotNtnJU4nFeyf - ywFOVQafniwBM/mAVARmqphUCma6HKxBysFeYxncpk643B5QlAME2RcA7N3JfHq8EMx4Ppix2+R8F4y+ - AMzEPZKEQ9mJO5g3yDE3/xcOh32aIBsCgK1LyPeMikFrRaB/Z5FzNujRXECXD4wRiKCs7iZck82gXEt+ - IG/5PXCPYPp6jr80IoJnOJ2UBlqdDnbkBgaHBPg1dIKgGXBrSkDZraCccx6y/G0rgMnWeP5CfyYWeq9i - sTcFbN81MAPpkKnCUKHcjsVBIZZ0TXC6fbDZrI2rdmH042n+3M/rcCmTQfVcgk6ZCK0qCTXfI1HeHQG1 - SgDtcBEsZAWm/nfFqwD1+1N8e3caXF1XoP52BpmKMOQoIlCg2INCUo5iNzI6t0Cp/wCPpqViFfCj7ni4 - QZEKU8dFaNoTUNl2kEvUGo1MeRSkbTGo7IxDx4Acmp666lXAwFtBiPZLCjPy+Ty0zUkwtFzAlFyI1IYY - JNZHQ992FvoOCbTynHpr+8ldK4AgHndsFl/eL6jOjSuUZh2WVN6KLaoUxd4/WrLXeKQs2i3JPiQVC6PE - ZFwEKYzMCSeFBL4DchG05o+yI3RryIGdoYEt4/E2kbH+gpfnrOtX9sP/AIt1021BwrQaAAAAAElFTkSu - QmCC + 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 - qLnKOhNqAAAAAElFTkSuQmCC + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAryAAAK8gE9UvcRAAACwUlE + QVQ4T6WSXUhTYRjH37kUxciKbgq66CIYrUK7KZIgaVYQBRVBBGUgGBKYFUUX0YWQlN4VKrpYBsYojZoX + fiQTvbEPNre5D93Zps61re187EvTIfnvOZN5hOiqF/7n8L6c/+88z/95GYD/Uu6xurrKstksEwSeLS0u + spXl5aKA3/94Znra4Pf59LOBgJ7zel/5/b6KTCbDwuEwi8VifwNEUWCJRILFY7Fj0x7PGplAZgTn58Fx + XvSbTEPpdKowEon8E7CHqthLhvvczLr5RyiESCSce7e9fIG+3t7xYDBYJgiCAshmV1gmk67j+fhvAqyJ + goBkMgm3y4XxsTEQGHSOSasFgwMDsE1OviWIApAkiZGpR/5INsuGdCoFt8eNltZWfJmYQDQayVWRa8fr + HaMWFUCS+pZE0ZAHEBDJpSXw3AxG3xsxNDICzu/H3OwsfBwHMps9brcCSCSoAlFYB0gipISEwIMGOI9o + 4Dl6GHN1NxDycfByPtBk5NbMLqdTAUiSyHieN/BCHNLyL7ifPMJQMUOgpRm+d0YMl6jw9dpleHx+kBFT + DofZYbcrADlRGoshFo9BpL8PnjwO4/YSOJub4Oo2wLijFJ+0+2GjLOwOB4VpNVstFgXAx+OMQjLI4xIo + /b5z1WgrK8bn2hqMPryH9p2l6C4/AOv3b7BYLLDbbONOh0MBROlihBYWDAvBIH5SiDbTRzzdtQ09ly7g + w61aNG0txGDrc0x5PLkWOjs69Ae1WgVAN4/ReN7ICc9T0lEK0zYyjNc3r0N/9Qqs/Sa0d3WZNBrN+UNa + 7cUitXofY2zLBqCivJzpOzufyRXICtO8YzwPIZUGTy0JiQRu19c3kCm3Ckhq0gZAPpOpp6qq6k7rdHdI + jWd0urukxrPV1Y0nKitr1CrVbjKqZGNeGwDaqGgvK7/y+81nBZvN6wCwP2pNqLkfzIVuAAAAAElFTkSu + QmCC - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK6QAA - CukB/XXO0wAAAclJREFUOE9j+P//PwMlGKdm9WXPhcVn3XcmZDhWA6zWvBDhm3jtLmfv1a0ma14K4TME - wwDt2bfU+DrPP2BoOPGfpenUX662M9/4Os+dkui7GIXNIAwDuGoPX2co3/8fjsv2gdnstYf/i7ad7EI3 - BMMAxrytdkD8mSFv638QBrJ/M+Zv/cqQu+U/a/GO/0LV+3yRDcEaBpwZa7UZ09Z8ZElfs4tB9zsfg/B/ - TtbM9epM6WtzuQu27BSt2MECMwRuwNyzaoyLL1hKwySYopdrMkaujdr7UEJ/7wMlOZg4b+pKHa60VVxY - DFBnnHZKZ8HsMw7hu26VcsMUTD2p2DrtpNbbhec9lQkGYsdhWeeuI5r/+44Zf+g/bnZjwnHz291HNb+2 - H5YDihm8nXnGy5hgINbuVe2v2qP6vwaE94Kw2v/avRpgumGf4ff2Q3YcBAMxf7NOfs5GncfZ63X+Z2/Q - +Q9k/wex8zZpJpTvUEMJeHz5gDFzu5lOxCL92WHz9f4mrjVyxxsGzAwMvEAsD8RqQKzFAMHSmlEKBZoR - cgVAtgRUDqSGFyMWgIKsQMwDxAJALATEwkAsCtTIA8ScUD5IDqSGFcMAQrkOlzwA9XxjpDYQVs4AAAAA - SUVORK5CYII= + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAArpAAAK6QH9dc7TAAAB2UlE + QVQ4T2P4//8/RRirIAirL3suLD7rvjM2OWSMVdBqzQsRvonX7nL2Xt1qsualEDY1MIwhoD37lhpf5/kH + DA0n/rM0nfrL1XbmG1/nuVMSfRej0NWCMIYAV+3h6wzl+//Dcdk+MM1ee/i/aNvJLnT1KBwQZszbagfE + nxnytv4HYSD7N2P+1q8MuVv+sxbv+C9Uvc8XWT2KZhjmzFirzZi25iNL+ppdDLrf+RiE/3OyZq5XZ0pf + m8tdsGWnaMUOFphauKa5Z9UYF1+wlIbxmaKXazJGro3a+1BCf+8DJTmYOG/qSh2utFVcMD6SAeqM007p + LJh9xiF8161Sbpj41JOKrdNOar1deN5TGSaGjFE4HYdlnbuOaP7vO2b8of+42Y0Jx81vdx/V/Np+WA4o + ZvB25hkvY2T1IIzCAeHavar9VXtU/9eA8F4QVvtfu1cDTDfsM/zefsiOA1k9imYYzt+sk5+zUedx9nqd + /9kbdP4D2f9B7LxNmgnlO9RQ1KJw0DBj5nYznYhF+rPD5uv9TVxr5I5FDcIAZgYGXiCWB2I1INZigGBp + zSiFAs0IuQIgWwIqB1LDi80AViDmAWIBIBYCYmEgFgVq5AFiTigfJAdSw4phAHn4PwMA9XxjpB7NS6oA + AAAASUVORK5CYII= - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK8gAA - CvIBPVL3EQAAAiNJREFUOE+l0s1rE0EUAPCXtKKSiwgFSZNsWymKV3tS0oJgPRW9+q8oeFGLUDT9G0Sw - x3xpdtuDzSYmWQPdmKYktdlsvhqSNCkJSYibj52+WZtSlrIXB37L7sx7j9k3A4QQ+B+gqmMNISqcnjaZ - fF5+nctJ6+idzvtCIf/m5KR+V1EUGAwGGqAfVL/fv3Z09CdycJAiRg4PM2Kv17MoykDLg3Q6DZlMBpLJ - 38s8HyThcMhYiCfRaPSpIAhAQavVgna7DY1G4zbHccd+n4988/uvRNcCge/NcqlkrddqUKtWAUajkYY2 - UpZlW4jn13Enm+iTjgu/P+CO52n8cDjUXBSgk5XK8StZzpVQERV06FwZY95Omk4bD6ViEXBLkJOkpVgs - SoRYzJgQI6lUykl7R0EJk8vlMkjZ7AOOY8nOzrYhjmXJ/n7yIZ4GNh8LdDodTbfbhXg8/sLn9YY8bncE - /dSJeD2esCiKL2m/xuOx5uJFVVXAS7KE//lZkrJb6KvOFq59qVarjyeN1wooyl/tRjWbDUciIfbEvT1i - JCGKw0qlco8ef71eA7i/uAjP19bglyA8ikYiZHf3hyEawweDT1acTrgzMwOTMWWzWi0fNzbcbCBAL8uV - WDZANl2ubcZuv4WJ08gEU/hAN00ANrPJZHfMzjoX5uZW5xnm2WULDLPK2GwrGOPAWDvmWJCZFqDM6Pp5 - 1cmuMA4D/qHvkzGNsTfOc+AMHmWVxXCkGWAAAAAASUVORK5CYII= + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAryAAAK8gE9UvcRAAACH0lE + QVQ4T6XSzWsTQRQA8Je0opKLCAVJN9m2UhSv9qSkBcF6Knr1X1HwohahaPo3iGCP+dLstgebTUyyBrox + TUlqs9l8NSRpUhKSEDcfO32zNaWEshcHfsvsznuP2TcDhJD/Apo20hGiwelpg83llNfZrLyO3k14n8/n + 3pyc1O6qqgr9fl8H9IXq9XrXjo7+hA8OksTI4WFa6na7FlXt63mQSqUgnU5DIvF7WRACJBQKGgsKJBKJ + PBVFEShoNpvQarWgXq/f5nn+2Of1km8+35Xomt//vVEqFq21ahWqlQrAcDjU0YYoisIEBWEdd7KJPk1w + og+443kaPxgMdBcFqHL5+JWiZIuogPIT6LcSxrwdN52CYqEAuCXIyvJSNBohYjRqTIySZDLpoL2joIjJ + pVIJ5EzmAc9zZGdn2xDPcWR/P/EQTwObjwXa7bau0+lALBZ74fV4gm6XK4x+Tgh73O6QJEkvab9Go5Hu + YqJpGuAlWcL//CzLmS30dcIWrn2pVCqPxz3TC6jqX/1GNRp1ezwudaW9PWIkLkmDcrl8jx5/rVYFuL+4 + CM/X1uCXKD6KhMNkd/eHIRojBAJPVhwOuDMzA+MxxVitlo8bGy7O76eX5Uoc5yebTuc2a7PdwpxpZIIp + fKCbJgDGbDLZ7LOzjoW5udV5ln122QLLrrIMs4Ixdoy1YY4FmWkByoyu/6s6HhiHAefofDymMfbGeQ7A + GR5llcXmiNwEAAAAAElFTkSuQmCC - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK8gAA - CvIBPVL3EQAAAjNJREFUOE9j+P//PwMlmCLNIIvBBtwvyWO44WLLeMtUx++OmfbKu1b6M2+Z6ZjeDPBi - uBXix3DLXM/4rpXeDKDcilvG2v43HCyZ7uVnMtzLTYcYcDc7leGanen8K8bq/y9qK/2/qKX4/4qR2v+b - vi4xt/zdo64YqoHFLmkDxYFqrtkYLbqTmsBwJz0RYsA5W/Og0zpK/48rSv8/rgTFClL/zxiofQTh40A2 - XByoBqT2nLVJ6HkXO4gBB7UUO/eryPzfpyyNioGG7QNhNHGQ2gOaCt37NRQhBuzS06jeqiD5fxtQMTEY - pHaXrlrdXgtDiAG7XezN1slL/l8HdB4xeC1Q7S5HW6v9vp4QA/bHRzOsNdVfvERW7P8yRSm8GKRmjZHO - sr2RIQx7woMgBhxKT2LYFRcpvEBd8cYcOYn/c4GBhg2D5BZoKN3aGRshehio51hGMsSAqWHBDAeL8xn2 - xEUpTVWQejtFTvL/FHkpNCz5f6q81Os9sREqR8uLGbqD/BlSrC0hBjAyMDCoi4kxFNtYMswyM9SYriJ/ - bwLQnz1QPAHooumq8g+mGWirFVqaMaiKioL1gAHIACYYB0hLcnIwuIqL8JfISW7tBmoE4RJZye1e0hIC - YuxscJUgPcwwA4AMDiCWAGJ5oMkqQHEFViYmBW9hgeVAvIKNiQkY4QwKIDmgGgUglgRibiBmBLsAyGAD - YiEgFgdiKSCWBSqWAWIRoEYREBskBsTSUDXCUEshBlCCAa0Kw4S0XO9jAAAAAElFTkSuQmCC + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAryAAAK8gE9UvcRAAACM0lE + QVQ4T2P4//8/RRirICkYTNwvyWO44WLLeMtUx++OmfbKu1b6M2+Z6ZjeDPBiuBXix3DLXM/4rpXeDKDc + ilvG2v43HCyZ7uVnMtzLTYcYcDc7leGanen8K8bq/y9qK/2/qKX4/4qR2v+bvi4xt/zdo64YqoHFLmkD + xYFqrtkYLbqTmsBwJz0RYsA5W/Og0zpK/48rSv8/rgTFClL/zxiofQRhEBsuDlQDUnvO2iT0vIsdxICD + Woqd+1Vk/u9TlkbFQA1gjCYOUntAU6F7v4YixIBdehrVWxUk/28DKiYGg9Tu0lWr22thCDFgt4u92Tp5 + yf/rgM4jBq8Fqt3laGu139cTYsD++GiGtab6i5fIiv1fpiiFF4PUrDHSWbY3MoRhT3gQxIBD6UkMu+Ii + hReoK96YIyfxfy4w0LBhkNwCDaVbO2MjRA8D9RzLSIYYMDUsmOFgcT7DnrgopakKUm+nyEn+nyIvhYYl + /0+Vl3q9JzZC5Wh5MUN3kD9DirUlxABGBgYGdTExhmIbS4ZZZoYa01Xk700AauiB4glA26eryj+YZqCt + VmhpxqAqKgrWAwYgA5igbBCQ5ORgcBUX4S+Rk9zaDdQIwiWyktu9pCUExNjZoKoYwHqYQQyQAUAGBxBL + ALE80GQVoLACKxOTgrewwHIgXsHGxASMcAYFkBxQjQIQSwIxNxAzwgxgA2IhIBYHYikglgUqlgFiEaBG + ERAbJAbE0lA1wkAMshRiAPn4PwMArQrDhGpqJpEAAAAASUVORK5CYII= - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK8gAA - CvIBPVL3EQAAAmtJREFUOE+lkt1PUnEYxx+F3re6sbKAIS8qKgWkIxWRt4MF9KK1Vjc014VbF9a8qtFa - a5O1/oa2rtwUXwaYEGn4NgkPdFBP4AsBrY02rfEftP16TiVdHOdNZ+ez3+/89jyf8312DhBC4H8oN3// - sQMc2zvbbjabfZTwDQNDGeGz1QA0rlMOG0S7XZDuMkHBZiz3lTfLCRriSGol9fTD+Ohk1GHVrppazVlz - 23Eam6Yc1D8BCndTlzfszavA3roOrMPqCSklJFRTTZIKEdmslxYTbRf63jioyijWYAJBwdJewRPgm37H - zTSrPcOys8SnEJMlpZhkkBiK3jYqctO6htk1jcpf6LLwE2zZOiBr74S0XuMZkYvIKApinKBWQuaQIXwe - k50hTKOczmEdL8F+gnlOgGONoZhR18bzV+x7CCztkMUU6RYcQXyS+HCMmFJEMhi/LMAEqYuaicLdO3zB - hpOCTZcdMpTxWdBJlSabz92ntaqOrVbdSxT8HOLGkpwiq1bD81xfL18wHfBDZGIcPsaWvCsb64HIi0Gg - m9Xw9YYL4uY2i0/bMBI4Xz/DOm09+b0EkXcRCIdDkEwmvKkUEwzPRmHx9Stgr12GdRcFs7jGb/dAHpN+ - 6dTzE8xhQ/T9DCQStDfFMMHFhXnoHxiAE0Ih9Iiqob9JBU9atPBYpYTu01V8gbymBh4+6AeWXRtMf2L9 - vW437HfxPiNXbDaZRKVSaflbsVhs1eub8EgoADiKHEEOI4eQAwj/T+QEcqlUZzQY7nE01NVdwiMJFssR - GSJFREgVIuAl4KyVAHj/uSoADuLZsb8JdlPwEvwCey/ik5crMqsAAAAASUVORK5CYII= + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAryAAAK8gE9UvcRAAACZklE + QVQ4T6WS60tTcRjHnzm7Q72xsraxi1M3XW02WZtz7nZmbeuiRdSbhfRC6MUKXxWLiECJ/oagV4LOC1NT + W9rmBdc8Z23qafOytkWwQIv9B8Gv5xgt6EgQPZwPv995eH6f8/3BAULIf1HefP22s8v2zraPzWYfMMEB + SFIW+OgwA43rpNsJkQ4vpNutUHBa+IJlhoY4klpJPX43MjQRcTt0q1ajLWszHaXx0KSb+i1AIU/AXr8M + 7I2rwLodgSmlhEzJqkmiRkQ266VFxnSu+5WbqojgDAqEBXuLgCfAL+3Gzeg1gQH5aRKsEZMlpZhkkBiK + XjfU5Gaa1NE1rSpUaLeXz5U3W85WyLraIG3QBgYVIjKEghgnqJWQOaQf34flp0iyQUHncO6fBPOcAK81 + jP2kpjaev+TaQ2BvgSxK0s14BfFxEsRrxJQiksH4ZQEmSJ3XjhZu3+ILNjwUbHpdkKEsT8Y9VGlCf+Yu + rVO1bhmbnqPgez+XSnKCrDrMT3PdXXzBzFgIwqMj8D621LeysT4WftYLtF4Dn695IW4z2YM69eDY2fpZ + 1uPszO8lCL8Jw/T0FCQSTF8qlRyfjkZg8eULYK9chHUvBVFc4zc7IY9JP7UZ+II5PBB5OwsMQ/elksnx + xYV58Pf0wLHKSugUVYO/UQWPmnXwUKWEjpNVfIFCJoP79/zAsmu96Q9sqMvng78VT8CVzWoVlUql5S/F + YtFoMDRiq1IIcBg5hBxEDiD7EP6fyJVCKm2ymM13ONR1dRewJcFhBSJHpIgIqUKEPAE2BRUA+PwsAcB+ + 7B1BuAS/UvyRgMAPey/ik2SoHQMAAAAASUVORK5CYII= @@ -386,286 +384,283 @@ - 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 + BwDdJejr8BUpAAAAAElFTkSuQmCC - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK6QAA - CukB/XXO0wAAAclJREFUOE9j+P//PwMlGKdm9WXPhcVn3XcmZDhWA6zWvBDhm3jtLmfv1a0ma14K4TME - wwDt2bfU+DrPP2BoOPGfpenUX662M9/4Os+dkui7GIXNIAwDuGoPX2co3/8fjsv2gdnstYf/i7ad7EI3 - BMMAxrytdkD8mSFv638QBrJ/M+Zv/cqQu+U/a/GO/0LV+3yRDcEaBpwZa7UZ09Z8ZElfs4tB9zsfg/B/ - TtbM9epM6WtzuQu27BSt2MECMwRuwNyzaoyLL1hKwySYopdrMkaujdr7UEJ/7wMlOZg4b+pKHa60VVxY - DFBnnHZKZ8HsMw7hu26VcsMUTD2p2DrtpNbbhec9lQkGYsdhWeeuI5r/+44Zf+g/bnZjwnHz291HNb+2 - H5YDihm8nXnGy5hgINbuVe2v2qP6vwaE94Kw2v/avRpgumGf4ff2Q3YcBAMxf7NOfs5GncfZ63X+Z2/Q - +Q9k/wex8zZpJpTvUEMJeHz5gDFzu5lOxCL92WHz9f4mrjVyxxsGzAwMvEAsD8RqQKzFAMHSmlEKBZoR - cgVAtgRUDqSGFyMWgIKsQMwDxAJALATEwkAsCtTIA8ScUD5IDqSGFcMAQrkOlzwA9XxjpDYQVs4AAAAA - SUVORK5CYII= + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAArpAAAK6QH9dc7TAAAB2UlE + QVQ4T2P4//8/RRirIAirL3suLD7rvjM2OWSMVdBqzQsRvonX7nL2Xt1qsualEDY1MIwhoD37lhpf5/kH + DA0n/rM0nfrL1XbmG1/nuVMSfRej0NWCMIYAV+3h6wzl+//Dcdk+MM1ee/i/aNvJLnT1KBwQZszbagfE + nxnytv4HYSD7N2P+1q8MuVv+sxbv+C9Uvc8XWT2KZhjmzFirzZi25iNL+ppdDLrf+RiE/3OyZq5XZ0pf + m8tdsGWnaMUOFphauKa5Z9UYF1+wlIbxmaKXazJGro3a+1BCf+8DJTmYOG/qSh2utFVcMD6SAeqM007p + LJh9xiF8161Sbpj41JOKrdNOar1deN5TGSaGjFE4HYdlnbuOaP7vO2b8of+42Y0Jx81vdx/V/Np+WA4o + ZvB25hkvY2T1IIzCAeHavar9VXtU/9eA8F4QVvtfu1cDTDfsM/zefsiOA1k9imYYzt+sk5+zUedx9nqd + /9kbdP4D2f9B7LxNmgnlO9RQ1KJw0DBj5nYznYhF+rPD5uv9TVxr5I5FDcIAZgYGXiCWB2I1INZigGBp + zSiFAs0IuQIgWwIqB1LDi80AViDmAWIBIBYCYmEgFgVq5AFiTigfJAdSw4phAHn4PwMA9XxjpB7NS6oA + AAAASUVORK5CYII= - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK6QAA - CukB/XXO0wAAAaFJREFUOE9j+P//PwMlmCLNIItJMmDBeesNC85bHVp6KUgL5mqiDZhz1nrJ1JOy/6ec - kPw/47Tu/+mntDWIdsGsMy75E46r/O89KgXEMkAseWHicWkhDANmn/XXAmI15ECdey5Et/eY3v/2Q7L/ - Ow4rgvC99sMafBhemH0uwrbnmPWf3mPWP2adCzeGKmDsOWZ1temA8v+mg6r/mw6o/mw+qAF2OooBU0/F - cDQfMP9btVv1Pwi3HbL5MvtcgnbPUbeK2r3a/6v3qAOxxv/avVop6FEONqlshxpj4Rb1yYVbtP8XbtH6 - X7BF43/dHrvflTtNwWyQeNFW7d3Y0gtKLGSs1Z2Uvkb3P5D+n75WC4i1oWzdHxlrDWUIGgBSELNYd1Lk - Qt3/UYugGMiOWaxfhCu1Yk0H/jP1+nym6f33nqr733e63gV8SR1sADMDAy8QywCxEiMDgyoDA4O4SZHa - KutmnbcqvtIRQL4yUE4TiNVAaqBqeeHpACjADsT8QCwMxGIgA4CYm4GBRRRICwLFJIFYAiQHVQNSy050 - SiToBUqyMwC0DXVd1JsDMAAAAABJRU5ErkJggg== + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAArpAAAK6QH9dc7TAAABqUlE + QVQ4T2P4//8/RRirICkYqyAuvOC89YYF560OLb0UpAUTw1CEC885a71k6knZ/1NOSP6fcVr3//RT2hog + cayK0fGsMy75E46r/O89KgXEMkAseWHicWkhkByKwtln/bWAWA1ZbO65EN3eY3r/2w/J/u84rAjC99oP + a/DB5BGaz0XY9hyz/tN7zPrHrHPhxlBxxp5jVlebDij/bzqo+r/pgOrP5oMaYKfDMJiYeiqGo/mA+d+q + 3ar/QbjtkM2X2ecStHuOulXU7tX+X71HHYg1/tfu1UpB1gw3oGyHGmPhFvXJhVu0/xdu0fpfsEXjf90e + u9+VO03BbJB40Vbt3eiaQRiFk7FWd1L6Gt3/QPp/+lotINaGsnV/ZKw1lEFWC8MYAjGLdSdFLtT9H7UI + ioHsmMX6RejqYBiroP9MvT6faXr/vafq/vedrncBmxoYBhPMDAy8QCwDxEqMDAyqDAwM4iZFaqusm3Xe + qvhKRwD5ykA5TSBWA6mBquVFNoAdiPmBWBiIxUAGADE3AwOLKJAWBIpJArEESA6qBqSWHW4AJRirIPH4 + PwMAtA11XUiD1KEAAAAASUVORK5CYII= - iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK6QAA - CukB/XXO0wAAB9tJREFUaEPtmWtsU+cZx50rTnw5vpCQW1tG2pKUJBAgoSXdtEnbOspo+2GTul40jU6r - tg+TqmmosK2jG20hrGUdt421QFmSkRA7iWMnvsR2nIsJYQRwSKa26qTRUepcbSd2QjL473mNT0a42Ifk - NBJSP/x0jo/f53n//+d533NOYgkAyb3MPS2eFf5LAzcvv7MeT3KLzfYtp8PxKlHltDvq6LiPrv241enM - E3u5itYBT2+vlET+0tXa+kl39ymcP3cOFy70ou/CBfR6POjpOQN3Z+d/HXZ7s9PhfFwsI6IYcLS0FNhb - Ws794/Rp/LO/Pyz49OluuN2dTDS6Tp7E2Z4e9Pf1obfXg472dtis1rfEMDFvA1T1tVRVn8dzPlx1WiZM - XBj6bgb+2km3G/39fWFTdO3wfE3My4DL5Uqjyl9i4pkwi9l8i3D6fpYRq8US/uw5fz2GPv9+PibmZcBi - sVSwZdPZ0YHmpqaw+IjAEdq477a3tX2vo6Pj27QvXqYu2fgusDHM7NmzPXC5WmE1m9fM1cScDZibmwva - XK7wUmg2NYWFM1FUcVfPmTMP3E4QGdpM46b5sawTbMPbrBbDghsgseVskzIxZCYMCfrw359+Kosmhjbw - S8woo8lkAisCdeFKk9GUPRcTc+rAgf37JbREutiGNRmNMwZI3NNCRJDRNiaeLTtmhJmg8+eExN48Zk4G - ao5XK2ip+PgqMjF0fnF6aipZiAgyvpnFMFgBIht9m5BYUQyYGo0ai8Uc4AUYGxtZBS1CBVDFy5pIOBPP - Ytnys9tbyoXG3zhuTh2gimlJfIBNzkNiBG9E6kDJjbERE7sXzADdErWGhoYAgUaDgadRqAAyUNpI5vlY - locKsHAGaBNqG+rrAwR4SIRRqAGHw7GOib4xnrqwcAbogaStr6sLEOBpuBsDdvs6Jv7GeOrGwhmgJ7BW - r9MFCPCQGMEdoA6uq9PrZ2JZDjK0cAaazXaNrrbOX1tbBx69njaDwD9Pm63da3S6+plYlqO+zrBwdyHJ - O4ivPfH3gO5EBXQnKsPU6SpMKJfEjx2RJPqP3ZkQjXE2H1yvr62aidXVVKJGZ57TS91d30YnWpPWB13K - qmFX4dXR9iIwRgh/R35w0p3zMfFJDD4OuZf+h48Nx7cVwefK/XDCKfn5VF+poIch3+27MhBqSfzFRPt9 - mOwuw3R3CaZPFc8w1bUak10lgrjStXZW7PSp1ZjqfgyTJ4sQcsjdk53LNEKXo2ADIUvq1ydaSby7FKEW - BUJmiagErfEItT2ICfcqhGxKvegGgtYlxglXHoKmOASbGIniY6Si2LMQci7DeHNagRATgjow1silBG0P - XBw3KTBuSMB4Y3JsaNy0OQGwJSFkTMKYQUAMy9sQj6A1G+NN6h+KZmDclMONN6oGxuqSEZtFGNPF45pV - iY+OatH5h1SM1ydjksQFBMUnkQk5FUqxWTQDQXMBF6hN9QZqFyFQK41OTRKu2tJgePtRlC7LRGHWEvz0 - CQ18NVIE9TFiZ+f+kWgGxkwFnL9a5vUfXwT/8ZSojFXFY8JZig3rHkZeugprvpKG+9VLUL9NARikMeOv - 52fjpOIZCBgKOV+VwuurTIGvMjUqgWOJmHIW45lv5CNbySE/azEyucWw/VaBq7rY8Xx+f2WqiAb0RZzv - mNLr+4DEfyCLztEUTNVwOHW0DLlZ6dDKNdjyNIfpahn8x2LEzs4tngF/zUpu9DDnHX1fhtH35TFQIHhY - isvGx5G3NAvSZBUOvMQBNbHibvlePAO+6lXcyF9V3pFDcowcUkTnL3JMV6jR/t7XoJarkCJV4eVvcrhW - ESPu1rziGRitKuaGD6q9wwcUGD6gjM4+Oa5VZ6JqVxkSE2RITeHwnZUcJt5TYuRgjNjZuUU08LfV3PBe - jXd4LwnYy0VlaI8c0OfizVdK6NcHKWQyJfJzlLi8h4Nvf/TYm3KLZ2DkSDE39EeNd2iPCkN71NEpp/9r - mVbhqU2FZCCZkEMSJ0f3r1QI7osROzu3iAYOreSG3tYODO5WYXC3Ojq7OIwdeRB//kkOtjyhwNaNHB05 - nP+1Gn4SGDP+//nFM+Cr2igbLE//bGCnBgM7tTHxvqHC5DtqXNu3GNf2asOMlGvhfSt27Ez+XenivUqw - R/rAmxlt3h0aeHcs/sIZ2KHF0LuF60V7lWCJBnfmvujdTlV8PQ2fb/+CoNzhOX6X0YOLOnqVjf0TcMzX - 6QSJRMJgyS5vzzky8Js0MLxh0kUkDYOvUc7XMrzjf1qbz+bj541m5I4GKDiRkBNaIpM8ZEgkWemtP8t+ - /V9bMj66tDUz9Nm2jCuXtmZMzheW5+KrmZ97XslseGPT/WU0F8fmJNIJdr7oTmZuayBS9VQ63kc8Qqwm - HqXEjxFFknj5Vzfkc99/Kl/+g+8SG/Pkzz3JWC5/nmfDctkLxIsRXohc54/PsxgWuylf/uwzKxTPrshW - PUm5i4k1NNd6ooQoIpYRaiL+dp2I1oEkClJGqpBDx6VELrGcJmE8RDxM5BH5xCPECqIgQmHY7HXYOYN9 - x8Yw2HgWO5Mrjs4p/0MR0ax4rAsaQkrE3ZUBfnCkG3GsAgRbVsxYcqStLHEKwboli8CWHUNxE/x1fhyL - YbEsB1siLCfLzeZIiMzH5g0XmT+K8vuAkLvDQo2JeRdaKCFzneeeN/A/ZLZQcEYKMIoAAAAASUVORK5C - YII= + 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 - AAAASUVORK5CYII= + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAArpAAAK6QH9dc7TAAABmUlE + QVQ4T6WMSSiEcRjGn28+Y8xizTKWQbZxUIqLksOUy0SREyllK2YsGZlMRkNj3xORaZKDsiUU2bJHkpCQ + RkYObnKXen3JSM138OXw+/f+fz3PAyL6F7xSCLxSCLxSCLzSRfzSa2ig/akgxO7Upu5+ePNl3ET49EtK + gM1pko86DiRDd+9s7zWxXVckaT97Vph3LDLLYcDv/NejtDs9vMcehqXD90/i/hsScQVYzwktp4TmY0LT + EckNy5dx+okZpn47y21AOnAnQ8cFofWMYDkhmI8Ipn2CcYdQv0WoWydR1QpFVdocJUarzG3g6zDtb6Bx + j9CwTTBsEGrXCFwJFYuE8nlCyfxxZplFZdUVqmr0Oj/3gbpNPWpWCXpXaYFQOveI4tlJFM/luXI9fYPy + lmazb2ebVfwzwAISUUZlMoqm3pA/fsvkdI8wGdW5LCuNlgIyCaDgMkqWYULS09KSMjUadbZWG/Z7QOEB + BLEir0gxEOwJ+HP/CM4ncCRyqL/vWACq+JiYWGVwkM/PwH/glULglULglX+H8AnyWXl33beE7gAAAABJ + RU5ErkJggg== - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK8gAA - CvIBPVL3EQAAA7JJREFUOE+lkmtM02cUh08FdzMBKXMC2zKTQQWqQAsbRha3aXEgAYayTLpwmahsuAEV - YWUUxzYBC5SKOhTcaJXCWkoLNr1Z7P2yBquFUsiarjeYQeQWLovBzf33L8tun3fyPsnz/nLO+fK+gCAI - /B9gQSb5D4sKOcaRmVo3jotgeU7kU6aqK4rHoyJYDlIKY14ifnbFMgJL6w74cZ4LrkUJwLxB/w9Gg98D - 5YTdy8JtwYg0PsYjf51gGdyORYZeDkMkxISXZhQiWHniAcdfC3xWI/ybqVEjZqj2+KXvS3Nl0i/LG4bp - 1Cq/8ykfcKyyjpCFx/YXZ9fMEa5FQcD0shLAt2qGqQ3ugHfFhGIM6JpIszPHEte6Jg7puydzRExb0toV - +wGnwHmq7bweh7QY8chF8xsZl837AVbXH8DSIzfYZvgwveSE+8tuTM3No31Hv0swnxUXXG1SfNSU100w - UwTZwhsjzUVkVuIPhTf2mK7oaxN77zIAfnk8C8vrXlD8RIaJh2yYXZvcxLa+o24zRnmvW9OGOGPZbKYJ - 571m2WeWOc9QmaadnovmXe5eW84+np0M8OuTVXj020PQeE7CsCsPHHMKOC08LMzuxFkqB7NYZyXkC+92 - 7rR8zCNJOo200pxrMXfe704YYWhK91w1VQNovU2g9NTvYFtTlF134zXDrspPeqx5FxrVsQr2vSNtXFth - fZMar+gaSe9RuRvy6Zrdtxi6JLncWU3QeM8BMHVF0Kwm44u58XP5nOhFuqqA8bkkQ1PYF71QJTqgqpVm - CIv6YhYqht6c7DCWn/Pnx7lx8zRZGumr4WxA31MEYw844ZdNe2WtWrxK5Woo4I0VMVq0eHXfaB5dYC+h - turwapYl67rG3ZjD0MUp2w2v3Tb4WndZZ9gAX2tSgXbrLULJAB4p5kUhDcrD3TXS/ePHUK8Sp9hqpG9r - i/txCOVm8twl44lvjvEikZP8WKRCRMislCQCcMTnQedjbG/XZfU2K1P5Cmfje733TtXTb5MGuKNlNKGd - +ildSRr41lzYbvB1HmpRHexnqNN5+umOaLObDxu1NxebXId+DqoWh1T2JAtqxEn3qZoo5PQg/mdKf5yN - qsEhNCXx9y8G0jifqSOROlMskl6OzX1uKzq8CQCzOSBwR3hCaFkYEVsdHLblSGhkUEkYIYT2/KvBJdhX - gj4MI4bQXojZWha0bUsmmp8JJ4aWP/3MU5HoOAYC/lyCnr9rM2r+GIMSiOK/+93f4/eN8gf+pj8AnTMG - yNrrrucAAAAASUVORK5CYII= + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAryAAAK8gE9UvcRAAADsUlE + QVQ4T6WSa0zTVxjG31rczQSkzFnYlpkMKlAFWtgwsrhNYQMJMJRl0oXLRGXDDagIK6M4tglYoFTUoeBG + qxTWUlqw6c1i75c1WC2UQtZ0vQAziNzCZTG4uf/+Zbf4eU/OL+c5T877fDkHEAT5X8CCXPoEi0oFxpmR + UjtGCGN7j+dRp6rKi8YiwtjO5CTmvFTy7Ip1GJbWnfDTPA/ci1KAeaPhP0xG/x6gIO1eFm0LQmSxUV7F + 6yTrwHYcMvgyHpGS416aUYph5bEXnP8UTNpMTzA1YsIM1hy7+ENJjlz2VVn9EINW6fcC6odcm7w9eOGR + 48XZNUuYe1GInV5WoQWrFpja4Db4VswoJmzneKqDNRq/1jl+0NA1kS1m2RPWLjsOuISuk63nDASk2URE + LljeSL9k2Q+wun4flh56wD4jgOklF9xb9mCqbxzpPfJ9nOWMJP9Ko/LjxtwukoUqzBJdH24qpLDjfyy4 + vsd82VAT33OHCfDro1lYXveB8mcKjD/gwOzaxCaO7V1NqynCd82WOsgdzeKwzATfVes+i9x1msYy7/Re + sOzy9Niz9/EdFIDfHq/Cw98fgNZ7AobcueCcU8Ip0SFRVgfBWjGQyT4jpZx/r2On9RN+srTDRC/Jvhp1 + +4OuuGGmtmTPFXMVgM7XCCpv3Q6OLUnVeSdWO+Su+LTblnu+QROt5Nw93MqzF9Q1aojKzuG0brWnPo+h + 3X2TqU9QKFxVJK3vLABLXwhNGgqxiBc7l8eNXGSo85lfSNO1Bb2RC5XiA+oaWbqosDdqoXzwzYl2U9lZ + f36MFzNPl6cmfz2UBeh7imH0Pjf0knmvvEVHVKvd9fn80UJms46o6R3JZQgdxbQWPVHDtmZe03oaspn6 + GFWb8bVbxsmWXbYZDsA32hSg33yLVNxPRIr4EUi96lBXtWz/2FHUV0qS7NWyt3VFfQSEeiNx7qLp+LdH + +eHICUE0Ui4mZVRI4wG4knOgn2Rub9Nn9jSpUgRKV8P7PXdP1jFuJffzRkrpIgftM4Yquf87S0GbcbLj + YLP6nT6mJo1vmG6PtHgEsKG9ObjEWvRz0HQEpKI7UVgtSbhH00YgpwaIv1D7Yuw0LQGhq8h/fNmfyv1c + E47UmqORtDJcznNb0eFNAJjN2IAdoXEhpXgyrioIv+VwSHhgMZ4UTH/+1aBi3CuBH+HJwfQXoraWBm7b + koHmp0PJIWVPP/NUODqOAexfJej6V5tR/DEGJeDvs9/77/j9hvwBFgD+BJ0zBshFdH6uAAAAAElFTkSu + QmCC - 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 - AABJRU5ErkJggg== + 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 + 0Ps1AAAAAElFTkSuQmCC - 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 + 2VGpi7MAAAAASUVORK5CYII= - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK8gAA - CvIBPVL3EQAAAp1JREFUOE+lkktME1EUhi+KO10QbHRJ2rh1qTEpoBuJGxMXhp0LFY3CQkM0unJlYtSN - AdH4SDS6cCGPiIWWQkEJCCVaEKxDW/qcVzt3ZvpA68Lk99wS2pq4c5JvZu7M+b975t5hANj/UAmXSiVi - k9m21WkYuS+cG0tE0OQ8aFvWUiIeD46Ovjs0HZhiU5N+5p/wVRDZyolzXoHCaxSEgMIwTQ6SYn1dwsP+ - vtKYx+MWkn8IDBJUkLYEHBaFywULedtGMpHA/Xt38fjRQPE9deLzjjPv+FitA5qJCbYFIryZt/B2Tcfv - ko1y0cZyKITpQAALn+bz39ZWm4k6AbVPLTNubHVQtEz0euPYc2cZt2eS+BAhUbmIYqGAfN4Wn+Ui6tdg - 6xNoDaSfBRP9M1GwHj/Y9QBYN12vTOGmR6JOrMr6EE5RX13EXC7HBNmsLlmmCS3LcfzBLHZdGsGZF8vo - fBpEyy0/FqQ08hZHLpd1EjUBBUWY6ZoupVUJWWMDP+xfeDKRQNacRbmUgaxyBFbisE0Duq45iZpAU1Um - UBVVSsphvA6dxvzGc0S0MbwKnSROweAabGpf01SoiuIkagI5k2GCdCol6QrHR+klen0OXPXuxQ1/C65N - 7Mez4DkYugVZziCTTjuJOoEss1QyyWLRqCT2PCtzzIU96Ju5jJ7BI+geOozPkWkoGRVUB/oz/xYMDQ6y - 4OIii0Yi0vdwGCRCJinDVPIYnnuDxdU5KCkNsVgUVCNw+X11vzKjY5/DwUaGhyc3YjEIRCepVBK6rEGl - mcWYZsbXlZXSiY4Oxw7KVLeRBjtpvLu5qelgm9t9lugiLrS73RfbW1sF4r7raFvb+QMu1zFRS5mGqoDS - DUQjvRDi7aOBbuqpPqeiRpERgj9M5cLZQzv1UwAAAABJRU5ErkJggg== + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAryAAAK8gE9UvcRAAACk0lE + QVQ4T6WSS0wTURSGp4o7XRBsdEnauHWpMSmgG4kbExeGnQsVjcJCQzS6cmVi1I0BH/GRaHThwgIRCy2F + ghIQSrQgWIe29DXTmWnnzkwfaF2Y/J47pC0ad97km5mbOf93z9y5AoD/wr5UKhViQ7Ass0vXC58Z0xeJ + sMFY2DLNxVQyGR4ZeXtgKjQpTE4EheB4wKYuYIzZUHiVguBQGIbBQFKsrYm4P9BfGfX5PFzyD4FeQ9wU + MJgUrpZMFC0L6VQKd+/cxqOHD8rvqJOAf0zwj402BLSSTU3AwxtFE29WNfyqWKiWLSxFIpgKhTD/ca74 + dXWlhdgioPY5TN8UlE0Dff4kdt1aws3pNN7HSFQto1wqoVi0+Ge5iYaAQja0B+KPkoGB6TiE3iCEqyEI + PXS/NInrPpE6Me39IVy8vi4oFAo2+bwmmoYBNc9w9N4MdlwYxqnnS+h6EkbrjSDmxSyKJkOhkHcRDQEF + bTRVE7OKiLy+ju/WTzweTyFvzKBakSArDKHlJCxDh6apLqIhUBXFRskpYlqO4lXkJObWnyGmjuJl5Dhx + AjpTYVH7qqpAyeVcREMgS5JNNpMRtRzDB/EF+gJOXPbvxrVgK66M78XT8BnomglZliBlsy5ii0CWhUw6 + LSTicZH/87zMMBv1oX/6Inq9h9AzeBCfYlPISQqoDnQy/xQMer1CeGFBiMdi4rdoFCSClJZh5IoYmn2N + hZVZ5DIqEok4qIbjDga2nEQ+9jidwvDQ0MR6IgEO7ySTSUOTVSi0Mp/TyviyvFw51tnp3EaZuoAm22m+ + s6W5eX+7x3Oa6CbOdXg85zva2jj8uftwe/vZfW73EV5LGUddQGkH0UQvuLg2HH9RGw4qauIZAMJvTOXC + 2VGpi7MAAAAASUVORK5CYII= - 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 + SUVORK5CYII= - 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 + boOggwAAAABJRU5ErkJggg== - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK8gAA - CvIBPVL3EQAAAr9JREFUOE+l0llPE1EYBuCvZVEWjSIxssS2KF57AU1qAxjAVBK84W/4A0yMiTcK0UTq - rTF64QoKQqFQoC2WTotAsQuRCi1doNBSSrF2o2Xp5zeDNAYNN57JMzmZmfOemTcDiAj/gxZnOFtbYaHX - 67nndrsekgdHPKR79+mZKzvpNKRTqSzY2d2FVCrFczodhvn5b3gcx+KiNR6PFSSTCTgECwsLMDdnk+r1 - E2gwMMeamNCh0+FoXQ8GIRAIcCAWi0E4HD49Njq6ohwcxCGl8p+UykEcHh7aDAaDZdFkEn5GoxzY39/n - SvR43BcZRt9ObyInnUfIGb3+sd1uv7xNG0Ydi5AMbUByM3QQsLe3B37/2l0KWSUrZDnL6132ECp1NbAe - aN8NhyHysQtSHjekvB6AVZ8P3C7X1empKfyLyYQz1I1J9xmnZk345ess+gz6lmj3uxNpvx9Y4F9bYwOq - qYOMWj2GWRo1aoaVaKmrQUu9GLUjKtTSfUuzdHu+rsa22dudF1b0AiQSCYjH4zBrMrUNKBSMor9/khgV - CoVxoKeH0Uprv4+fK0Zd0zXU3WxATUkhTjfXGyNGhh+ZNABkMhlOKBQS03e/drmWush7jtfz1r3kVGvb - WrGvrAT7yktwXNaoSfpW8jJUPNsfRCI/aPFGuc1qjVnMZvyT1WZDM/XwQdaILy+cxRekp0EyuWE1F2fY - PzhDAbQr0G5iA8OgjsrKop9mfHQEn0lq8cmZQnzeWI+vbrWgvPQUvrkunVkaU+VbR1QAgspKkIjF8FQu - 7xmholSq4QM0H+r7hJ2SGpRLxagaGsRHHR3q2+XnmTuCCruwqLCYDweDR07yebxSCpNcEgiaqgSCGyKB - QFYlEsmEFRUckVDYyOfzqwpyc6qL8nJF3BqAHDrYM7Bhh4G/c7ngw+vsnB35JJfdlNbkEN4vq9aD+Ljn - 2EYAAAAASUVORK5CYII= + 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 - DACGQgAAAABJRU5ErkJggg== + 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 @@ -673,183 +668,181 @@ - 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 - SUVORK5CYII= + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAArpAAAK6QH9dc7TAAAB2UlE + QVQ4T2P4//8/RRirIAirL3suLD7rvjM2OWSMVdBqzQsRvonX7nL2Xt1qsualEDY1MIwhoD37lhpf5/kH + DA0n/rM0nfrL1XbmG1/nuVMSfRej0NWCMIYAV+3h6wzl+//Dcdk+MM1ee/i/aNvJLnT1KBwQZszbagfE + nxnytv4HYSD7N2P+1q8MuVv+sxbv+C9Uvc8XWT2KZhjmzFirzZi25iNL+ppdDLrf+RiE/3OyZq5XZ0pf + m8tdsGWnaMUOFphauKa5Z9UYF1+wlIbxmaKXazJGro3a+1BCf+8DJTmYOG/qSh2utFVcMD6SAeqM007p + LJh9xiF8161Sbpj41JOKrdNOar1deN5TGSaGjFE4HYdlnbuOaP7vO2b8of+42Y0Jx81vdx/V/Np+WA4o + ZvB25hkvY2T1IIzCAeHavar9VXtU/9eA8F4QVvtfu1cDTDfsM/zefsiOA1k9imYYzt+sk5+zUedx9nqd + /9kbdP4D2f9B7LxNmgnlO9RQ1KJw0DBj5nYznYhF+rPD5uv9TVxr5I5FDcIAZgYGXiCWB2I1INZigGBp + zSiFAs0IuQIgWwIqB1LDi80AViDmAWIBIBYCYmEgFgVq5AFiTigfJAdSw4phAHn4PwMA9XxjpB7NS6oA + AAAASUVORK5CYII= - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK6QAA - CukB/XXO0wAAAaFJREFUOE9j+P//PwMlmCLNIItJMmDBeesNC85bHVp6KUgL5mqiDZhz1nrJ1JOy/6ec - kPw/47Tu/+mntDWIdsGsMy75E46r/O89KgXEMkAseWHicWkhDANmn/XXAmI15ECdey5Et/eY3v/2Q7L/ - Ow4rgvC99sMafBhemH0uwrbnmPWf3mPWP2adCzeGKmDsOWZ1temA8v+mg6r/mw6o/mw+qAF2OooBU0/F - cDQfMP9btVv1Pwi3HbL5MvtcgnbPUbeK2r3a/6v3qAOxxv/avVop6FEONqlshxpj4Rb1yYVbtP8XbtH6 - X7BF43/dHrvflTtNwWyQeNFW7d3Y0gtKLGSs1Z2Uvkb3P5D+n75WC4i1oWzdHxlrDWUIGgBSELNYd1Lk - Qt3/UYugGMiOWaxfhCu1Yk0H/jP1+nym6f33nqr733e63gV8SR1sADMDAy8QywCxEiMDgyoDA4O4SZHa - KutmnbcqvtIRQL4yUE4TiNVAaqBqeeHpACjADsT8QCwMxGIgA4CYm4GBRRRICwLFJIFYAiQHVQNSy050 - SiToBUqyMwC0DXVd1JsDMAAAAABJRU5ErkJggg== + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAArpAAAK6QH9dc7TAAABqUlE + QVQ4T2P4//8/RRirICkYqyAuvOC89YYF560OLb0UpAUTw1CEC885a71k6knZ/1NOSP6fcVr3//RT2hog + cayK0fGsMy75E46r/O89KgXEMkAseWHicWkhkByKwtln/bWAWA1ZbO65EN3eY3r/2w/J/u84rAjC99oP + a/DB5BGaz0XY9hyz/tN7zPrHrHPhxlBxxp5jVlebDij/bzqo+r/pgOrP5oMaYKfDMJiYeiqGo/mA+d+q + 3ar/QbjtkM2X2ecStHuOulXU7tX+X71HHYg1/tfu1UpB1gw3oGyHGmPhFvXJhVu0/xdu0fpfsEXjf90e + u9+VO03BbJB40Vbt3eiaQRiFk7FWd1L6Gt3/QPp/+lotINaGsnV/ZKw1lEFWC8MYAjGLdSdFLtT9H7UI + ioHsmMX6RejqYBiroP9MvT6faXr/vafq/vedrncBmxoYBhPMDAy8QCwDxEqMDAyqDAwM4iZFaqusm3Xe + qvhKRwD5ykA5TSBWA6mBquVFNoAdiPmBWBiIxUAGADE3AwOLKJAWBIpJArEESA6qBqSWHW4AJRirIPH4 + PwMAtA11XUiD1KEAAAAASUVORK5CYII= - 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 + 2VGpi7MAAAAASUVORK5CYII= - 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 + SUVORK5CYII= - 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 + boOggwAAAABJRU5ErkJggg== - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK8gAA - CvIBPVL3EQAAAr9JREFUOE+l0llPE1EYBuCvZVEWjSIxssS2KF57AU1qAxjAVBK84W/4A0yMiTcK0UTq - rTF64QoKQqFQoC2WTotAsQuRCi1doNBSSrF2o2Xp5zeDNAYNN57JMzmZmfOemTcDiAj/gxZnOFtbYaHX - 67nndrsekgdHPKR79+mZKzvpNKRTqSzY2d2FVCrFczodhvn5b3gcx+KiNR6PFSSTCTgECwsLMDdnk+r1 - E2gwMMeamNCh0+FoXQ8GIRAIcCAWi0E4HD49Njq6ohwcxCGl8p+UykEcHh7aDAaDZdFkEn5GoxzY39/n - SvR43BcZRt9ObyInnUfIGb3+sd1uv7xNG0Ydi5AMbUByM3QQsLe3B37/2l0KWSUrZDnL6132ECp1NbAe - aN8NhyHysQtSHjekvB6AVZ8P3C7X1empKfyLyYQz1I1J9xmnZk345ess+gz6lmj3uxNpvx9Y4F9bYwOq - qYOMWj2GWRo1aoaVaKmrQUu9GLUjKtTSfUuzdHu+rsa22dudF1b0AiQSCYjH4zBrMrUNKBSMor9/khgV - CoVxoKeH0Uprv4+fK0Zd0zXU3WxATUkhTjfXGyNGhh+ZNABkMhlOKBQS03e/drmWush7jtfz1r3kVGvb - WrGvrAT7yktwXNaoSfpW8jJUPNsfRCI/aPFGuc1qjVnMZvyT1WZDM/XwQdaILy+cxRekp0EyuWE1F2fY - PzhDAbQr0G5iA8OgjsrKop9mfHQEn0lq8cmZQnzeWI+vbrWgvPQUvrkunVkaU+VbR1QAgspKkIjF8FQu - 7xmholSq4QM0H+r7hJ2SGpRLxagaGsRHHR3q2+XnmTuCCruwqLCYDweDR07yebxSCpNcEgiaqgSCGyKB - QFYlEsmEFRUckVDYyOfzqwpyc6qL8nJF3BqAHDrYM7Bhh4G/c7ngw+vsnB35JJfdlNbkEN4vq9aD+Ljn - 2EYAAAAASUVORK5CYII= + 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 - DACGQgAAAABJRU5ErkJggg== + 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 @@ -857,169 +850,167 @@ - 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 - SUVORK5CYII= + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAArpAAAK6QH9dc7TAAAB2UlE + QVQ4T2P4//8/RRirIAirL3suLD7rvjM2OWSMVdBqzQsRvonX7nL2Xt1qsualEDY1MIwhoD37lhpf5/kH + DA0n/rM0nfrL1XbmG1/nuVMSfRej0NWCMIYAV+3h6wzl+//Dcdk+MM1ee/i/aNvJLnT1KBwQZszbagfE + nxnytv4HYSD7N2P+1q8MuVv+sxbv+C9Uvc8XWT2KZhjmzFirzZi25iNL+ppdDLrf+RiE/3OyZq5XZ0pf + m8tdsGWnaMUOFphauKa5Z9UYF1+wlIbxmaKXazJGro3a+1BCf+8DJTmYOG/qSh2utFVcMD6SAeqM007p + LJh9xiF8161Sbpj41JOKrdNOar1deN5TGSaGjFE4HYdlnbuOaP7vO2b8of+42Y0Jx81vdx/V/Np+WA4o + ZvB25hkvY2T1IIzCAeHavar9VXtU/9eA8F4QVvtfu1cDTDfsM/zefsiOA1k9imYYzt+sk5+zUedx9nqd + /9kbdP4D2f9B7LxNmgnlO9RQ1KJw0DBj5nYznYhF+rPD5uv9TVxr5I5FDcIAZgYGXiCWB2I1INZigGBp + zSiFAs0IuQIgWwIqB1LDi80AViDmAWIBIBYCYmEgFgVq5AFiTigfJAdSw4phAHn4PwMA9XxjpB7NS6oA + AAAASUVORK5CYII= - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK6QAA - CukB/XXO0wAAAaFJREFUOE9j+P//PwMlmCLNIItJMmDBeesNC85bHVp6KUgL5mqiDZhz1nrJ1JOy/6ec - kPw/47Tu/+mntDWIdsGsMy75E46r/O89KgXEMkAseWHicWkhDANmn/XXAmI15ECdey5Et/eY3v/2Q7L/ - Ow4rgvC99sMafBhemH0uwrbnmPWf3mPWP2adCzeGKmDsOWZ1temA8v+mg6r/mw6o/mw+qAF2OooBU0/F - cDQfMP9btVv1Pwi3HbL5MvtcgnbPUbeK2r3a/6v3qAOxxv/avVop6FEONqlshxpj4Rb1yYVbtP8XbtH6 - X7BF43/dHrvflTtNwWyQeNFW7d3Y0gtKLGSs1Z2Uvkb3P5D+n75WC4i1oWzdHxlrDWUIGgBSELNYd1Lk - Qt3/UYugGMiOWaxfhCu1Yk0H/jP1+nym6f33nqr733e63gV8SR1sADMDAy8QywCxEiMDgyoDA4O4SZHa - KutmnbcqvtIRQL4yUE4TiNVAaqBqeeHpACjADsT8QCwMxGIgA4CYm4GBRRRICwLFJIFYAiQHVQNSy050 - SiToBUqyMwC0DXVd1JsDMAAAAABJRU5ErkJggg== + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAArpAAAK6QH9dc7TAAABqUlE + QVQ4T2P4//8/RRirICkYqyAuvOC89YYF560OLb0UpAUTw1CEC885a71k6knZ/1NOSP6fcVr3//RT2hog + cayK0fGsMy75E46r/O89KgXEMkAseWHicWkhkByKwtln/bWAWA1ZbO65EN3eY3r/2w/J/u84rAjC99oP + a/DB5BGaz0XY9hyz/tN7zPrHrHPhxlBxxp5jVlebDij/bzqo+r/pgOrP5oMaYKfDMJiYeiqGo/mA+d+q + 3ar/QbjtkM2X2ecStHuOulXU7tX+X71HHYg1/tfu1UpB1gw3oGyHGmPhFvXJhVu0/xdu0fpfsEXjf90e + u9+VO03BbJB40Vbt3eiaQRiFk7FWd1L6Gt3/QPp/+lotINaGsnV/ZKw1lEFWC8MYAjGLdSdFLtT9H7UI + ioHsmMX6RejqYBiroP9MvT6faXr/vafq/vedrncBmxoYBhPMDAy8QCwDxEqMDAyqDAwM4iZFaqusm3Xe + qvhKRwD5ykA5TSBWA6mBquVFNoAdiPmBWBiIxUAGADE3AwOLKJAWBIpJArEESA6qBqSWHW4AJRirIPH4 + PwMAtA11XUiD1KEAAAAASUVORK5CYII= - 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 - SUVORK5CYII= + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAArpAAAK6QH9dc7TAAAB2UlE + QVQ4T2P4//8/RRirIAirL3suLD7rvjM2OWSMVdBqzQsRvonX7nL2Xt1qsualEDY1MIwhoD37lhpf5/kH + DA0n/rM0nfrL1XbmG1/nuVMSfRej0NWCMIYAV+3h6wzl+//Dcdk+MM1ee/i/aNvJLnT1KBwQZszbagfE + nxnytv4HYSD7N2P+1q8MuVv+sxbv+C9Uvc8XWT2KZhjmzFirzZi25iNL+ppdDLrf+RiE/3OyZq5XZ0pf + m8tdsGWnaMUOFphauKa5Z9UYF1+wlIbxmaKXazJGro3a+1BCf+8DJTmYOG/qSh2utFVcMD6SAeqM007p + LJh9xiF8161Sbpj41JOKrdNOar1deN5TGSaGjFE4HYdlnbuOaP7vO2b8of+42Y0Jx81vdx/V/Np+WA4o + ZvB25hkvY2T1IIzCAeHavar9VXtU/9eA8F4QVvtfu1cDTDfsM/zefsiOA1k9imYYzt+sk5+zUedx9nqd + /9kbdP4D2f9B7LxNmgnlO9RQ1KJw0DBj5nYznYhF+rPD5uv9TVxr5I5FDcIAZgYGXiCWB2I1INZigGBp + zSiFAs0IuQIgWwIqB1LDi80AViDmAWIBIBYCYmEgFgVq5AFiTigfJAdSw4phAHn4PwMA9XxjpB7NS6oA + AAAASUVORK5CYII= - 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 + boOggwAAAABJRU5ErkJggg== - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK8gAA - CvIBPVL3EQAAAr9JREFUOE+l0llPE1EYBuCvZVEWjSIxssS2KF57AU1qAxjAVBK84W/4A0yMiTcK0UTq - rTF64QoKQqFQoC2WTotAsQuRCi1doNBSSrF2o2Xp5zeDNAYNN57JMzmZmfOemTcDiAj/gxZnOFtbYaHX - 67nndrsekgdHPKR79+mZKzvpNKRTqSzY2d2FVCrFczodhvn5b3gcx+KiNR6PFSSTCTgECwsLMDdnk+r1 - E2gwMMeamNCh0+FoXQ8GIRAIcCAWi0E4HD49Njq6ohwcxCGl8p+UykEcHh7aDAaDZdFkEn5GoxzY39/n - SvR43BcZRt9ObyInnUfIGb3+sd1uv7xNG0Ydi5AMbUByM3QQsLe3B37/2l0KWSUrZDnL6132ECp1NbAe - aN8NhyHysQtSHjekvB6AVZ8P3C7X1empKfyLyYQz1I1J9xmnZk345ess+gz6lmj3uxNpvx9Y4F9bYwOq - qYOMWj2GWRo1aoaVaKmrQUu9GLUjKtTSfUuzdHu+rsa22dudF1b0AiQSCYjH4zBrMrUNKBSMor9/khgV - CoVxoKeH0Uprv4+fK0Zd0zXU3WxATUkhTjfXGyNGhh+ZNABkMhlOKBQS03e/drmWush7jtfz1r3kVGvb - WrGvrAT7yktwXNaoSfpW8jJUPNsfRCI/aPFGuc1qjVnMZvyT1WZDM/XwQdaILy+cxRekp0EyuWE1F2fY - PzhDAbQr0G5iA8OgjsrKop9mfHQEn0lq8cmZQnzeWI+vbrWgvPQUvrkunVkaU+VbR1QAgspKkIjF8FQu - 7xmholSq4QM0H+r7hJ2SGpRLxagaGsRHHR3q2+XnmTuCCruwqLCYDweDR07yebxSCpNcEgiaqgSCGyKB - QFYlEsmEFRUckVDYyOfzqwpyc6qL8nJF3BqAHDrYM7Bhh4G/c7ngw+vsnB35JJfdlNbkEN4vq9aD+Ljn - 2EYAAAAASUVORK5CYII= + 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 - DACGQgAAAABJRU5ErkJggg== + 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 @@ -1027,376 +1018,372 @@ - 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 - SUVORK5CYII= + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAArpAAAK6QH9dc7TAAAB2UlE + QVQ4T2P4//8/RRirIAirL3suLD7rvjM2OWSMVdBqzQsRvonX7nL2Xt1qsualEDY1MIwhoD37lhpf5/kH + DA0n/rM0nfrL1XbmG1/nuVMSfRej0NWCMIYAV+3h6wzl+//Dcdk+MM1ee/i/aNvJLnT1KBwQZszbagfE + nxnytv4HYSD7N2P+1q8MuVv+sxbv+C9Uvc8XWT2KZhjmzFirzZi25iNL+ppdDLrf+RiE/3OyZq5XZ0pf + m8tdsGWnaMUOFphauKa5Z9UYF1+wlIbxmaKXazJGro3a+1BCf+8DJTmYOG/qSh2utFVcMD6SAeqM007p + LJh9xiF8161Sbpj41JOKrdNOar1deN5TGSaGjFE4HYdlnbuOaP7vO2b8of+42Y0Jx81vdx/V/Np+WA4o + ZvB25hkvY2T1IIzCAeHavar9VXtU/9eA8F4QVvtfu1cDTDfsM/zefsiOA1k9imYYzt+sk5+zUedx9nqd + /9kbdP4D2f9B7LxNmgnlO9RQ1KJw0DBj5nYznYhF+rPD5uv9TVxr5I5FDcIAZgYGXiCWB2I1INZigGBp + zSiFAs0IuQIgWwIqB1LDi80AViDmAWIBIBYCYmEgFgVq5AFiTigfJAdSw4phAHn4PwMA9XxjpB7NS6oA + AAAASUVORK5CYII= - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK6QAA - CukB/XXO0wAAAaFJREFUOE9j+P//PwMlmCLNIItJMmDBeesNC85bHVp6KUgL5mqiDZhz1nrJ1JOy/6ec - kPw/47Tu/+mntDWIdsGsMy75E46r/O89KgXEMkAseWHicWkhDANmn/XXAmI15ECdey5Et/eY3v/2Q7L/ - Ow4rgvC99sMafBhemH0uwrbnmPWf3mPWP2adCzeGKmDsOWZ1temA8v+mg6r/mw6o/mw+qAF2OooBU0/F - cDQfMP9btVv1Pwi3HbL5MvtcgnbPUbeK2r3a/6v3qAOxxv/avVop6FEONqlshxpj4Rb1yYVbtP8XbtH6 - X7BF43/dHrvflTtNwWyQeNFW7d3Y0gtKLGSs1Z2Uvkb3P5D+n75WC4i1oWzdHxlrDWUIGgBSELNYd1Lk - Qt3/UYugGMiOWaxfhCu1Yk0H/jP1+nym6f33nqr733e63gV8SR1sADMDAy8QywCxEiMDgyoDA4O4SZHa - KutmnbcqvtIRQL4yUE4TiNVAaqBqeeHpACjADsT8QCwMxGIgA4CYm4GBRRRICwLFJIFYAiQHVQNSy050 - SiToBUqyMwC0DXVd1JsDMAAAAABJRU5ErkJggg== + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAArpAAAK6QH9dc7TAAABqUlE + QVQ4T2P4//8/RRirICkYqyAuvOC89YYF560OLb0UpAUTw1CEC885a71k6knZ/1NOSP6fcVr3//RT2hog + cayK0fGsMy75E46r/O89KgXEMkAseWHicWkhkByKwtln/bWAWA1ZbO65EN3eY3r/2w/J/u84rAjC99oP + a/DB5BGaz0XY9hyz/tN7zPrHrHPhxlBxxp5jVlebDij/bzqo+r/pgOrP5oMaYKfDMJiYeiqGo/mA+d+q + 3ar/QbjtkM2X2ecStHuOulXU7tX+X71HHYg1/tfu1UpB1gw3oGyHGmPhFvXJhVu0/xdu0fpfsEXjf90e + u9+VO03BbJB40Vbt3eiaQRiFk7FWd1L6Gt3/QPp/+lotINaGsnV/ZKw1lEFWC8MYAjGLdSdFLtT9H7UI + ioHsmMX6RejqYBiroP9MvT6faXr/vafq/vedrncBmxoYBhPMDAy8QCwDxEqMDAyqDAwM4iZFaqusm3Xe + qvhKRwD5ykA5TSBWA6mBquVFNoAdiPmBWBiIxUAGADE3AwOLKJAWBIpJArEESA6qBqSWHW4AJRirIPH4 + PwMAtA11XUiD1KEAAAAASUVORK5CYII= - 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 + 2VGpi7MAAAAASUVORK5CYII= - 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 + SUVORK5CYII= - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK6QAA - CukB/XXO0wAAAplJREFUOE+lk91Lk1EcxweCgVd1ldDF5l0Q/QH9AXmRYhAJ4tS0NM207MXC6A3DtyzT - 5ZLSUirEiyBaKup0muHIl3DLZnPv2dzcdp5tzzY3n5f6djZRMrsIPPDhcOB8P7/zKgEg2Q1bYUZ7ITlq - aUqLWZtlUetDSossanski9rbZGu21rSQsWn/vwolBKH5aymCq8MkeDohep9D9HVDJC8hMq8h+nshBvri - CDHXq5N/SxICdr5axjvbIKzEUUBwKSGudkD0PKXCLip8gV+kC2G3Bj4SfufzeY9uihIC/0yFlHM0gHfU - b/C9EfzyfQjLDyA4WyitEFeaEXaNIMjGwDAEVHI4nk0IiLZEylnvgrfc2sB6B7yNjm214O33qLQOgv02 - 2OV+BOICQkKEePdtCTyTBdJ1Uw24pavgjJSlanCm6+DMNeDNN6j0JkTzZQTtb+APxkCIT7ltC67RHGls - 8Qo4w3lwX8tpXwFusRLct4uUS+CNVYgYasC4jWACbHz5B7cJHAPZ0oi+CmvzpZQSRHVnEdOXYv1LGdYX - zoFfKETA1AN/6CcIw4z9eROJMzC9PSENzlYi+KmYchrs9BmEZooRni1G5DMVzsnBLHbC54/AaRio2yEw - 9B2XEm05yGQRyIdTYCYL4f9ImSpCQFsEdioHbl0H/AwLRqds2iGY68mUrUyUwaUugHtEjtXRPHjG8uHV - 5MM3XgBGkw33rAJ6J4uF6WePdwhmerJSzcOlWFLlwazKhbU/F45BOX4MyeEazoN3JBuWiXroRxuNFnVF - +jZBkiTRUnqbMxsGlFlqlSJD/V6RMdZPGWzP0Aw/ydQMtR8b765NVx1KlRyhcw/QTBpl79Y7oIOk//mR - NJxM56ZQ9mxmdvWV40V/A24s6/dx4rTtAAAAAElFTkSuQmCC + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAArpAAAK6QH9dc7TAAACkklE + QVQ4T6XO3UvTURzH8YFg4FVdJXSxeRdEf0B/QF6kGESCODUtTTMte7AwKsPwKct0uaS0lArxIoiWijqd + ZjjyIXTZbO45m5vbzm/bb5ubv4f6dKY4FA2CDrx/53fgfF8cCYD/Kv7DaC8lRsyNKVFLkyxieURrlkWs + j2URW6tszdqSEjQ0Htw+uNXGJzh3I0lwthsFdwdEzwuI3i6I5BVE5g1EXw9Ef28sIep8fXpPgJ2rlPGO + VggrsRQQnEqIq+0Q3c8o2EnBl/hNOhFyaeAlofder+f4DsA3XSbl7PXg7XWb/WgAv/wAwvJDCI5mWgvE + lSaEnMMIsFEwDAFFjsYBoi2ScpZ74M13NrNUg7fSs7UGvO0+RWsh2O6CXe6DPwYQEiTEcyAOuCfypOvG + KnBL18EZaEuV4Iw3wZmqwJtuUfQ2RNNVBGxv4QtEQYhXGZuLA86RLGl08Ro4/UVw30rpXgZusRzc98u0 + K+ANFQjrq8C4DGD8bOz5h3cA9v5MaVhXgbW5YloRIvPnEdUVY/1rCdYXLoBfyIff2A1f8BcIw4xuDccB + 47tT0sBMOQKfC2lnwU6dQ3C6EKGZQoS/UHBWDmaxA15fGA59f+0uQN97Ukq0pSATBSAfz4CZyIfvE22y + AH5tAdjJLLjm2+FjWDDzysZdwGx3umxlvAROdR5cw3KsjuTAPZoLjyYX3rE8MJpMuGYU0DlYLEw9f7IL + mO7OSDYNFWNJlQOTKhuWvmzYB+T4OSiHcygHnuFMmMfroBtpMJjVZak7gATJxkrqaUqv71dmqFWKNPUH + RdpoH22gLU0z9DRdM9h2YqyrJlV1JFlyjN49RGdSaPvjL6CHhO3q36Irkd5Nou3bmtnz4r8HyR9uLOv3 + boOggwAAAABJRU5ErkJggg== - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK8gAA - CvIBPVL3EQAAAr9JREFUOE+l0llPE1EYBuCvZVEWjSIxssS2KF57AU1qAxjAVBK84W/4A0yMiTcK0UTq - rTF64QoKQqFQoC2WTotAsQuRCi1doNBSSrF2o2Xp5zeDNAYNN57JMzmZmfOemTcDiAj/gxZnOFtbYaHX - 67nndrsekgdHPKR79+mZKzvpNKRTqSzY2d2FVCrFczodhvn5b3gcx+KiNR6PFSSTCTgECwsLMDdnk+r1 - E2gwMMeamNCh0+FoXQ8GIRAIcCAWi0E4HD49Njq6ohwcxCGl8p+UykEcHh7aDAaDZdFkEn5GoxzY39/n - SvR43BcZRt9ObyInnUfIGb3+sd1uv7xNG0Ydi5AMbUByM3QQsLe3B37/2l0KWSUrZDnL6132ECp1NbAe - aN8NhyHysQtSHjekvB6AVZ8P3C7X1empKfyLyYQz1I1J9xmnZk345ess+gz6lmj3uxNpvx9Y4F9bYwOq - qYOMWj2GWRo1aoaVaKmrQUu9GLUjKtTSfUuzdHu+rsa22dudF1b0AiQSCYjH4zBrMrUNKBSMor9/khgV - CoVxoKeH0Uprv4+fK0Zd0zXU3WxATUkhTjfXGyNGhh+ZNABkMhlOKBQS03e/drmWush7jtfz1r3kVGvb - WrGvrAT7yktwXNaoSfpW8jJUPNsfRCI/aPFGuc1qjVnMZvyT1WZDM/XwQdaILy+cxRekp0EyuWE1F2fY - PzhDAbQr0G5iA8OgjsrKop9mfHQEn0lq8cmZQnzeWI+vbrWgvPQUvrkunVkaU+VbR1QAgspKkIjF8FQu - 7xmholSq4QM0H+r7hJ2SGpRLxagaGsRHHR3q2+XnmTuCCruwqLCYDweDR07yebxSCpNcEgiaqgSCGyKB - QFYlEsmEFRUckVDYyOfzqwpyc6qL8nJF3BqAHDrYM7Bhh4G/c7ngw+vsnB35JJfdlNbkEN4vq9aD+Ljn - 2EYAAAAASUVORK5CYII= + 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 - DACGQgAAAABJRU5ErkJggg== + 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 - AElFTkSuQmCC + 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 - SUVORK5CYII= + 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 - MT43FSuDAAAAAElFTkSuQmCC + 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 + yAAAAABJRU5ErkJggg== @@ -3373,890 +3360,848 @@ - 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 - QuKMJV+qAAAAAElFTkSuQmCC + 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 + wZgAAAAASUVORK5CYII= @@ -4265,42 +4210,43 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJFSURBVDhPtZPLaxNRFMaDaUoe42RmkoxVQg1SWylq0IoI - LlxIwF2xGxW6VfEfKHRVhYaGJqVtDJLEpjaPtiQtiQkEtRrjMwTMQnFX3YnWzDuTpy5yvVdCcJGEbjzw - Y+D7vnvmzJkZheJ/Vj1vvdXIW6dAYUy17/vUc6NDKPzr/emT9VcmUMtSoPr2xATS6rkzf72uVXt+dLqW - sYBaZiTRzJ/Hv6eUvytpJWik+4er2VMO5FV3LCtdG8hJMliO94Fyoh+Uk5StFFe/FBOqvUrKeLb8GGrx - A6Cc0ud7TiFva2e4sLohb2i/yFvYUimmjZaimhdyVA1K21oPKCg670OMYFNiGNuUgvg1OUKMlyKaHWmD - fF3aJDNiWJeT1vHrQpAYl0LYmhTBFkD2Ul97knLoEC0GMCAGdBB0xQC/SsT54MCu9Ij+JqwSUS6ANf7N - SCv4uXYDEFMoeR++xnoPfuJ9ejvvJ28IXmKL95s+iP6BnODVPxUeEpOCD5/mvVhBeKB/UvSYsI674Bap - CW6Z2C26CZ5zkx5umVpn3PhnqP1kFw23ey6QcRkdrIsErBOyQE8W58kk66K+sktHLrNOCiCPcRniXZsw - c/R9xm4EP2apj3shm46Z0VUYuwFwjiEzYzfFkMfMGp/1nKIyb74CUmPapnNwlLtHA/YuDeQ581V0CHnN - 6AVNpwY4FAchxyCHIccthMr65qYpnb9Dv7MNqy9CbaTlWVpZdKZd6ONAW9VDSIgBQkGQjt430dKQhzIo - u/8frNcz/wGPcQwnClZvyQAAAABJRU5ErkJggg== + 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 + AAAAAElFTkSuQmCC iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAFnSURBVDhPY2AYBeAQ2Lbr+P/otOb/nqGl/50Ci+A4MK76 - f0JO+/+Kxhn/+6at+r9286H/l67e/f/jx6//8KD79OXr/6Lqqf+NHZPB2NA2C4xtAxLBNEwcRlu7Z4Et - AhkKspgBZEBF00ywwugGj/8R1V5gumiJ6f+4Vof/QZlZ/+v61/4v61gEpFf8z6yaCmZHZLT+BxkGdsns - xZvBBoBsLV9rAKZBhtiFB/xffKrrv5Vbyf+eeVvBajYeufE/FOhdEBvkcrABJ85e/e8RH/8/vsXzf2SV - PxyD+EklXUDFmf/j87vBmgoaZ/9vmrLmPyh8wF4AAVCggAMxuAKOHb1L/oOwvXf2f99I1MAFBXRmUQ8i - IGExYe+e8B8bdnaP+e/pFfM/JCDmf0p45P8ZNTn/X9y/jmoAyJDWviXwKPSOqgC7Krt4yn+Q+PINB/+f - vnj3/+sP3zA1ImcHUHiAFD59/hq/wuGThwDLuRGK1I9MHgAAAABJRU5ErkJggg== + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAFhSURBVDhPYxgFELBt1/H/0WnN/z1DS/87BRbBcWBc9f+E + nPb/FY0z/vdNW/V/7eZD/y9dvfv/x49f/6FaGRg+ffn6v6h66n9jx2QwNrTNAmPbgEQwDROHYWv3LLBF + IENBFoMNqGiaCZaMbvD4H1HtBaaLlpj+j2t1+B+UmfW/rn/t/7KORUB6xf/MqqlgdkRGK9gwsCtmL94M + NgBka/laAzANMsQuPOD/4lNd/63cSv73zNsKVrPxyI3/oUDvgtggl4MNOHH26n+P+Pj/8S2e/yOr/OEY + xE8q6QIqzvwfn98N1lTQOPt/05Q14PABewEEQIECDsTgCjh29C4BY3vv7P++kaiBC8KZRT2IgAQBkGn2 + 7glYsbN7zH9Pr5j/IQEx/1PCI//PqMn5/+L+dVQDQKC1bwncBu+oCrCrsoun/AeJL99w8P/pi3f/v/7w + DVMjMgCFB0jh0+ev8SscLoCBAQDLuRGKGcDaxAAAAABJRU5ErkJggg== @@ -4310,130 +4256,137 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 - ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADE - HAAAAk1TRnQBSQFMAgEBCAEAAewBCAHsAQgBEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA - AwABMAMAAQEBAAEgBgABMP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wBnAAMCAQMkAAME - AQYDBwEKAwUBBwMCAQOIAAMMARADGAEiAx0BKQMfAS0DIgExAyIBMgMjATMDIwEzAyIBMgMfASwDGAEi - AzcBWwMaASUDCwEPCAADBwEKA0kBhwNYAbsDWAG7A1oBvQNaAb0DWQG+A1kBvgNZAb8DVQGyAyYBOQMU - ARsDGAEhAwwBEBwAAw0BEQMYASJkAAMCAQMDBQQHAQkDCAELAwkBDAMKAQ0DCgEOAwoBDgMFBAcBCgNU - Aa8CfwFZAf4DCgEOAwEBAggAAxIBGAEAAbkB2wH/AQABsgHZAf8BAAGyAdsB/wEAAbQB3QH/AQABtgHg - Af8BAAG4AeMB/wEAAbkB5gH/AQABugHqAf8BhgHAAdwB/wNeAdgDLQFGJAADUwGqAQABhQEAAf8DPAFm - gAADDgETA1sBxAHDAbQBAAH/A0wBkhAAAxcBIAEAAcAB5QH/AQABuwHmAf8BAAG6AecB/wEAAbwB6AH/ - AQABvQHpAf8BAAG+AeoB/wEAAb8B6wH/AQABvgHtAf8BkgHLAecB/wHxAeQB0QH/A0wBkyAAA04BmQEA - AZ0BAAH/AQABnQEAAf8DXgHdAw0BESwAAw0BEQMNAREDIwEzAyMBMwMNAREgAAMHAQoDMwFSAzcBWgM3 - AVoDNwFaAzcBWgM7AWMDZQHlAcIBswEAAf8BwgGzAQAB/wNJAYcDBwEKDAADFgEfAQABxgHsAf8BAAHC - AewB/wEAAcEB7AH/AQABwgHtAf8BAAHDAe4B/wEAAcUB7gH/AQABxgHvAf8BAAHFAfEB/wGXAdAB5wH/ - AfEB7QHuAf8DSgGJHAADTgGZAQABqAEGAf8BAAGqAQcB/wEAAaoBBwH/AQABqgEHAf8DTgGZMAADSQGI - A2EB7gNhAe4DUwGqAw0BERgAAwUBBwNdAdIBwgGzAQAB/wHCAbMBAAH/AcIBswEAAf8BwgGzAQAB/wHC - AbMBAAH/AcIBswEAAf8BwgGzAQAB/wHCAbMBAAH/AcIBswEAAf8BwgGzAQAB/wNdAdIDBQEHCAADFgEf - AQABywHwAf8BAAHIAfAB/wEAAcgB8AH/AQAByQHxAf8BAAHKAfIB/wEAAcsB8wH/AQABzQH0Af8BAAHM - AfYB/wGbAdYB7QH/AfQB7gHrAf8DSAGFFAADDQERA04BmQEAAbMBFAH/AQABsgESAf8BAAG3ARoB/wEA - AbcBGgH/AQABswEUAf8BAAGzARQB/wMsAUQoAANDAXcDzAH/A8UB/wO+Af8DsgH/A0kBiBgAAxoBJAHG - AbcBAAH/AcYBtwEAAf8BxgG3AQAB/wHGAbcBAAH/AcYBtwEAAf8BxgG3AQAB/wHGAbcBAAH/AcYBtwEA - Af8BxgG3AQAB/wHGAbcBAAH/AcYBtwEAAf8BxgG3AQAB/wMaASQIAAMWAR8BAAHRAfQB/wEAAc8B9QH/ - AQABzwH1Af8BAAHQAfYB/wEAAdEB9wH/AQAB0gH4Af8BAAHTAfgB/wEAAdMB+gH/AaAB2gHvAf8B/QHy - Ae4B/wNaAb0UAAMjATMBAAG9ASMB/wEAAbkBHAH/AQABvgGBAf8DPAFmA0MBdwEAAbwBHwH/AQABvAEf - Af8DXAHMAw0BESAAAxgBIgNeAd0D1gH/A9YB/wPMAf8DvgH/A2EB7gMYASIUAAMZASMBywG9AQAB/wHL - Ab0BAAH/AcsBvQEAAf8BywG9AQAB/wHLAb0BAAH/AcsBvQEAAf8BywG9AQAB/wHLAb0BAAH/AcsBvQEA - Af8BywG9AQAB/wHLAb0BAAH/AcsBvQEAAf8DGQEjCAADFgEfAQAB1gH3Af8BAAHVAfkB/wEAAdQB+QH/ - AQAB1QH5Af8BAAHWAfkB/wEAAdcB+QH/AQAB1wH5Af8BAAHYAfoB/wEAAdUB9AH/AdgB5wHtAf8B8QHv - Ae0B/wMcASgUAANDAXcDXgHdA0MBdwgAA1wBzAEAAcABggH/AQABwAGCAf8DTgGZIAADGAEiA14B3QPW - Af8D1gH/A9YB/wPFAf8DYQHuAxgBIhQAAxkBIwHQAcMBAAH/AdABwwEAAf8B0AHDAQAB/wHQAcMBAAH/ - AdABwwEAAf8B0AHDAQAB/wHQAcMBAAH/AdABwwEAAf8B0AHDAQAB/wHQAcMBAAH/AdABwwEAAf8B0AHD - AQAB/wMZASMIAAMWAR8BAAHaAfgB/wEAAdkB+QH/AQAB2AH5Af8BAAHZAfkB/wEAAdoB+QH/AQAB2wH5 - Af8BAAHbAfoB/wEAAdwB+gH/AQAB2wH8Af8BrAHfAfAB/wH3AfAB7gH/A04BlRgAAw0BEQwAAyMBMwFa - AmEB7gEAAcMBiAH/AQABwwGJAf8DQwF3Aw0BERwAA0kBiAPfAf8D1gH/A9YB/wPMAf8DUwGqGAADGQEj - AdUByQEAAf8B1QHJAQAB/wHVAckBAAH/AdUByQEAAf8B1QHJAQAB/wHVAckBAAH/AdUByQEAAf8B1QHJ - AQAB/wHVAckBAAH/AdUByQEAAf8B1QHJAQAB/wHVAckBAAH/AxkBIwgAAxYBHwGBAd0B+QH/AQAB3AH6 - Af8BAAHcAfoB/wEAAd0B+gH/AYEB3gH6Af8BggHeAfoB/wGDAd8B+gH/AYUB4AH6Af8BAAHfAfsB/wG0 - AeIB8QH/AfcB8QHvAf8BZwJZAfIDDQERKAADPAFmAQAByAGTAf8BAAHFAY8B/wEAAcgBkwH/AywBRCAA - A04BmQNhAe4DYQHuA1MBqgMNAREYAAMaASUB2gHPAY0B/wHaAc4BjQH/AdoBzwGNAf8B2gHPAY0B/wHa - Ac8BjQH/AdoBzwGNAf8B2gHPAY0B/wHaAc8BjQH/AdoBzwGNAf8B2gHPAY0B/wHaAc4BjQH/AdoBzwGN - Af8DGgElCAADFgEfAYcB4AH5Af8BhgHgAfoB/wGGAeAB+gH/AYgB4QH6Af8BigHiAfoB/wGMAeIB+wH/ - AY4B5AH7Af8BkAHkAfsB/wGLAeUB/AH/AboB5gHzAf8B9wHxAfAB/wHsAu0B/wMfAS0sAANJAYgBAAHL - AZkB/wNTAaoDGAEiJAADGAEiAyMBMyAAAxEBFwHiAdkBpwH/AeAB1gGgAf8B3wHVAZ8B/wHfAdUBnwH/ - Ad8B1QGfAf8B3wHVAZ8B/wHfAdUBnwH/Ad8B1QGfAf8B3wHVAZ8B/wHfAdUBnwH/AeAB1gGgAf8B4gHZ - AacB/wMRARcIAAMXASABkQHkAfoB/wGRAeUB+wH/AZIB5QH7Af8BlQHmAfsB/wGXAegB/AH/AZkB6QH8 - Af8BnAHqAfwB/wGeAesB/AH/AZwB7AH+Af8BvgHnAfMB/wNWAbEDLQFFNAADLAFEWAADOAFeA1oBxQNc - AckDXAHJA1wByQNcAckDXAHJA1wByQNcAckDXAHJA1oBxQM4AV4MAAMHAQoBYQJeAdoBmwHpAfsB/wGd - AeoB/AH/AZ8B6wH8Af8BogHsAfwB/wGkAe0B/AH/AaYB7gH8Af8BqAHvAfwB/wNfAfsDNAFU2AADBAEG - AxgBIQMXASADFwEgAxcBIAMXASADFwEgAxgBIQMRARf/ANkAAwIBAwMAAQEPAAEBAwABAQMAAQEDAAEB - AwABAQwAAwQBBYwAAwYECAELAxABFgMTARoDFAEcAxUBHQMVAR0DFAEcAxQBGwMQARYDCgENAwgBCwsA - AQEDBwEJAyIBMQNAAXEDQwF3A0QBeQNEAXoDRAF6A0QBegNEAXoDRAF5A0MBdwNCAXQDKQE/AwwBEAMA - AQEEAAMEAQUDCQEMAwsBDwMNAREDBwEJAwEBAgMEAQUDBAEFAwEBAgMFAQcDDQERAwsBDwMJAQwDBAEF - CAADBAEGAwoBDQMKAQ4DDAEQAw4BEwMOARMDDwEUAwoBDQMLBA8BFAMHAQoDBwEJAwoBDQMFAQcMAAME - AQYDRwGCA1wB6gNkAewDZAHsA2QB7ANkAewDZAHsA2QB7ANiAekDQAFwAwYBCAwAAw0BEQNhAeED3gH/ - A+AB/wLkAeUB/wLnAegB/wPpAf8C6QHqAf8C6QHqAf8C5wHoAf8C5QHmAf8C4wHkAf8DXQHwAxwBKAgA - AwoBDgMWAR4DGAEiAxEBFwM3AVoDUwGqA14BzgNeAdADVgGxAz0BZwMTARoDFwEgAxYBHgMKAQ4HAAEB - AwkBDAMOARMDHwEsAyIBMgMkATUDIwEzAzEBTwNcAckDNQFVAx8BLAM9AWgDWwHEAxMBGgMJAQwDAAEB - DAADXgHYAtQB1QH/AtkB2gH/AtwB3QH/At4B3wH/At4B3wH/At4B3wH/AdwB2wHcAf8C2AHZAf8DWgG9 - EAADIwEzAtQB1gH/AtkB3wH/Ad8B4QHmAf8B4wHlAeoB/wHkAecB6wH/AeUB5wHsAf8B5QHoAewB/wHl - AecB7AH/AeUB6AHrAf8B4wHlAeoB/wHfAeAB5QH/AtsB3QH/AzYBWBQAA04BlAHFAbYBAAH/AcUBtgEA - Af8BwAGwAQAB/wHAAbABAAH/AcMBswEAAf8BxgG3AQAB/wFWAlQBqwMGAQgUAANMAY8DXwHjA1wB3wNc - Ad8DYAHeA10B4gIAAZQB/wNkAfEDYQHcA1wB+AIAAYIB/wNSAacDBwEJEAADXAHRAt0B3gH/AuAB4QH/ - AuIB4wH/AuMB5AH/AuMB5AH/AeIC4wH/AuIB4wH/AuAB4QH/A1cBtxAAAyIBMgHZAdgB1wH/AdgB1QG2 - Af8B1AHHAasB/wHQAb0BpQH/AdIBvwGnAf8B0wHAAagB/wHTAcABqAH/AdMBwAGoAf8B0gG/AacB/wHU - AcYBqgH/AdoB1wG2Af8B3wHeAdkB/wM1AVUQAAFWAlQBqwHCAbMBAAH/AcIBswEAAf8BwgGzAQAB/wHg - AdkBngH/AegB4wG5Af8B0AHGAQAB/wG/AbABAAH/AcIBswEAAf8DXAHJAwIBAwwAAx8BLAMAAf8DAAH/ - AYIBhAGGAf8DAAH/AY0BjgGRAf8DAAH/AgABqwH/AgABlwH/AgABnQH/AgABmQH/AgABigH/AwAB/wMw - AUwQAANcAdEC4gHjAf8C5AHlAf8B5QLmAf8B5gLnAf8B5gLnAf8B5gLnAf8B5QLmAf8B4wLkAf8DVwG3 - EAADIgEyAdQBzgGgAf8BwQGzAQAB/wG0AY4BAAH/AaECAAH/AaMCAAH/AaMCAAH/AaMCAAH/AaMCAAH/ - AaECAAH/AbEBggEAAf8BwAGzAQAB/wHTAcsBjwH/AzUBVQwAAzUBVwHCAbMBAAH/AcIBswEAAf8BvwGw - AQAB/wHPAcMBAAX/AekB5gHSAf8BxgG5AQAB/wHAAbEBAAH/AcIBswEAAf8BwgGzAQAB/wNGAX4MAAMj - ATMDAAH/AQABgQGCAf8DAAH/AQABgQGCAf8CgQEAAf8CAAGBAf8CAAGYAf8CAAGlAf8CAAGkAf8CAAGl - Af8CAAGWAf8DAAH/AzMBUxAAA1wB0QHlAuYB/wHnAugB/wHpAuoB/wHqAusB/wHqAusB/wHqAusB/wHp - AuoB/wHmAucB/wNXAbcQAAMiATIB1AHNAZoB/wHAAbEBAAH/AcIBsgEAAf8BsgIAAf8BrwIAAf8BsAIA - Af8BsAIAAf8BrwIAAf8BsQIAAf8BwQGuAQAB/wHAAbEBAAH/AdIBygGMAf8DNQFVDAADXAHMAcIBswEA - Af8BwgGzAQAB/wHAAbEBAAH/AcgBuwEABf8B5wHjAc0B/wG4AagBAAH/AcMBtAEAAf8BwgGzAQAB/wHC - AbMBAAH/A1wB6gMEAQUIAAMjATMDAAH/ArgBuQH/ArABsQH/ArYBsAH/AYIBhAG0Af8CAAG5Af8CAAG1 - Af8CAAG1Af8CAAGwAf8CAAG0Af8CAAG5Af8CAAGvAf8DMwFSEAADXAHRAugB6QH/AeoC6wH/AesC7AH/ - AesC7AH/AesC7AH/AesC7AH/AesC7AH/AeoC6wH/A1cBtxAAAyIBMgHVAc8BnQH/AcABsAEAAf8BwgG1 - AQAB/wHCAbEBAAH/AboBhQEAAf8BtwIAAf8BtwIAAf8BuQIAAf8BwQGvAQAB/wHCAbUBAAH/AcABsAEA - Af8B0wHMAY8B/wM1AVUIAAMKAQ4DXAH4AcUBtwEAAf8BxQG3AQAB/wHFAbcBAAH/AcIBsgEAAf8B9AHx - AdoB/wL8Af0B/wHAAbMBAAH/AcYBtwEAAf8BxQG3AQAB/wHFAbcBAAH/AcUBtgEAAf8DHAEoCAADIwEz - AwAB/wK9Ab4B/wK1AbYB/wO2Af8CrgG3Af8BpgGoAboB/wGxAbIBuQH/AgABuQH/AgABwQH/AQABgQHA - Af8BtwG4AcEB/wIAAYMB/wMzAVIQAANcAdEB6gLrAf8B6wLsAf8B6wLsAf8C7AHtAf8C7AHtAf8C7AHt - Af8B6wLsAf8B6wLsAf8DVwG3EAADIgEyAdcB0QGjAf8BxAG0AQAB/wHGAbgBAAH/AcUBuAEAAf8BwQGG - AQAB/wHAAgAB/wHAAgAB/wHBAYEBAAH/AcUBtAEAAf8BxgG4AQAB/wHEAbQBAAH/AdYBzwGVAf8DNQFV - CAADFAEcAcoBvQEAAf8BygG8AQAB/wHKAbwBAAH/AcoBvAEAAf8BxQG1AQAB/wHmAd8BsQX/AcwBwwGC - Af8ByAG6AQAB/wHKAbwBAAH/AcoBvAEAAf8BygG8AQAB/wMmATkIAAMjATMDAAH/Ac0BzAHNAf8CxAHF - Af8CxAHFAf8DxQH/AscBxQH/AdABzwHHAf8CAAGbAf8CAAHOAf8BuAG5AccB/wLSAc0B/wMAAf8DMwFS - EAADXAHRAesC7AH/AesC7AH/AuwB7QH/AewC7QH/AewC7QH/AewC7QH/AuwB7QH/AesC7AH/A1cBtxAA - AyIBMgHbAdUBrAH/AcoBvAEAAf8BzAHBAQAB/wHMAa8BAAH/AcgCAAH/AcgBgQEAAf8ByAGBAQAB/wHI - AgAB/wHLAasBAAH/AcwBwgEAAf8BygG8AQAB/wHaAdQBogH/AzUBVQgAAwcBCgFlAlIB9AHOAcEBAAH/ - Ac4BwQEAAf8BzQG/AQAB/wHeAdUBmwH/AfcB9QHnAf8B9QHzAegB/wHJAb4BAAH/Ac8BwQEAAf8BzgHB - AQAB/wHOAcEBAAH/AdEBxAEAAf8DGAEiCAADIwEzAwAB/wLbAdwB/wLSAdMB/wLSAdMB/wLSAdMB/wLS - AdMB/wPXAf8BjwGQAZgB/wGLAZAB0gH/AdUB1AHTAf8C2wHcAf8BhQGGAYkB/wMzAVIQAANcAdEB6wLs - Af8C7AHtAf8B7ALtAf8C7QHuAf8C7QHuAf8C7wHwAf8B8wL0Af8B8ALxAf8DWQG/EAADIgEyAd4B2QG2 - Af8B0QHEAQAB/wHSAccBAAH/AdMBwAEAAf8B0wGLAQAB/wHQAYUBAAH/AdABhQEAAf8B0gGIAQAB/wHT - AbsBAAH/AdIByAEAAf8B0QHEAQAB/wHeAdgBrQH/AzUBVQwAA1oBvQHUAcgBAAH/AdMBxgEAAf8B0wHG - AQAB/wHTAccBAAH/AdgBzQGFAf8B5wHhAbkB/wHZAdEBmQH/AdABwwEAAf8B0wHHAQAB/wHTAccBAAH/ - A1wB3wMAAQEIAAMjATMDAAH/A/cB/wPsAf8C7AHtAf8C6wHsAf8C6wHsAf8C8AHxAf8BpQGmAacB/wLu - AecB/wLrAewB/wL2AfcB/wGRAZIBlQH/AzMBUhAAA1wB0QHrAuwB/wLsAe0B/wHsAu0B/wLtAe4B/wLv - AfAB/wLmAecB/wGyAbMBtAH/ArMBtAH/A0kBhxAAAyIBMgHgAdwBvgH/AdcBywGDAf8B2AHNAYgB/wHY - Ac8BjQH/AdsBugEAAf8B3AGYAQAB/wHcAZgBAAH/AdsBtQEAAf8B2AHOAYwB/wHYAc0BiQH/AdcBywGD - Af8B4QHcAbcB/wM1AVUMAAMqAUAB3QHRAZMB/wHWAcsBhAH/AdcBzAGGAf8B1gHKAYEB/wHcAdIBlQX/ - AvQB8wH/AcsBwAEAAf8B2AHNAYQB/wHcAdABkgH/AzsBYwwAAyMBNAMAAf8BmgGbAZ0B/wGbAZwBnwH/ - ApsBngH/AqEBowH/AqABogH/AaIBowGlAf8DAAH/AZUBlgGYAf8BnAGdAZ8B/wGaAZsBnQH/AwAB/wMz - AVMQAANgAdQB6wLsAf8C7AHtAf8B7ALtAf8C7QHuAf8C9AH1Af8CwQHCAf8BiAGJAYoB/wNPAZcUAAMi - ATIB4wHfAcgB/wHiAdgBoQH/AeIB2AGkAf8B4gHYAaQB/wHhAdoBqAH/AeIB1QGcAf8B4gHUAZsB/wHh - AdoBqQH/AeIB2AGkAf8B4gHYAaQB/wHhAdcBoQH/AeUB4AHEAf8DNQFXEAADSAGGAeEB1wGhAf8B3AHR - AZUB/wHbAdABkgH/AdsB0AGSAf8B6QHjAb0B/wHeAdYBqAH/AdkBzgGOAf8B4QHWAaAB/wNTAagQAAMa - ASUDAAH/AwAB/wGXAZgBmgH/AwAB/wGlAaYBqAH/AgABgQH/AowBjgH/AqMBpQH/AwAB/wGfAaABogH/ - AwAB/wGHAYkBiwH/AywBQxAAA10BygHrAuwB/wHrAuwB/wLsAe0B/wHsAu0B/wLzAfQB/wHAAcEBwgH/ - A04BlhgAAwkBDANcAcwB6AHkAc8B/wHrAecB0wH/AeoB5wHTAf8B6wHnAdMB/wHrAecB1AH/AesB5wHV - Af8B6wHnAdMB/wHrAecB0wH/AeoB5wHTAf8B6QHlAdAB/wNeAd0DFgEfFAADQAFuA10B8AHkAdoBqwH/ - AeMB2QGoAf8B4QHWAaEB/wHjAdkBpgH/A2oB+QNIAYYYAAM6AWIDXQHKA10BygNcAckDXAHJA1wByQNc - AckDXAHJA1wByQNcAckDXAHMA0MBeBQAAxgBIgNAAXEDQgFzA0IBcwNCAXMDQgF0AzkBXyAAAyYBOANO - AZYDUQGcA1ABmwNQAZsDUAGbA1ABmwNQAZsDUAGbA1ABmwNQAZsDLwFJHAADDAEQAzUBVgNIAYMDSQGH - AzgBXgMTARr/AFUAAUIBTQE+BwABPgMAASgDAAFAAwABMAMAAQEBAAEBBQABgAEBFgAD/4EACv8BvwHh - BP8BgAEBAYABAQH8A/8BgAEBAYABBwH8AX8D/wGHAYABBwH4AT8B+AE/AcABAwGAAQcB8AE/AfwBHwGA - AQEBgAEHAcABHwH4AR8BgAEBAYABBwHAAQ8B8AEPAYABAQGAAQMB4wEPAfABDwGAAQEBgAEDAfcBAwH4 - AR8BgAEBAYABAQH/AYMB/AEfAYABAQGAAQEB/wHDAf4BfwGAAQEBgAEDAf8B7wL/AcABAwGAAQ8G/wHA - AR8O/wGcAR0E/wHAAQMCAAGAAQEBgAEBAcABAwGAAQEBgAEBAgAB4AEHAYABAQHwAQcBwAEBAeABBwGA - AQEB4AEDAYABAQHgAQcBgAEBAcABAwGAAQEB4AEHAYABAQHAAQEBgAEBAeABBwGAAQEBgAEBAYABAQHg - AQcBgAEBAYABAQGAAQEB4AEHAYABAQGAAQEBgAEBAeABBwGAAQEBwAEBAYABAQHgAQcBgAEBAcABAwGA - AQEB4AEPAYABAQHgAQcBgAEBAeABHwGAAQEB8AEPAcABAwHgAT8BwAEDAfgBHwr/Cw== + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABO + HgAAAk1TRnQBSQFMAgEBCQEAATwBCQE8AQkBEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA + AwABMAMAAQEBAAEgBgABMP8A/wD/AP8AKgADSAGAA7IB/wOeAf8DmwH/A6MB/wNIAYADKgFA3AADSQGA + A6AB/wNmAf8DbAH/A7wB/wPYAf8DlwH/A2EB/wN2Af8D3QH/1AADSQGAA40B/wNoAf8DcQH/A+IB/wPt + Af8D2AH/A+8B/wObAf8DZwH/A2gB/wNpAcDMAANIAYADiQH/A2MB/wNaAf8DlwX/A5wB/wNeAf8D0QH/ + A+UB/wNnAf8DbAH/A20B/wPNAf/IAAMqAUADjwH/A2UB/wNuAf8DhwX/A8AB/wOPAf8D5QH/A80B/wNp + Af8DYAH/A3MB/wNIAYDQAAOJAf8DXwH/A2sB/wPCCf8D5wH/A3UB/wNnAf8DZQH/A0gBgNQAAyoBQAO6 + Af8DigH/A28B/wONAf8DmAH/A4EB/wNzAf8DqQH/A0kBgOQAA+4B/wPYAf8D1AH/A+UB//8A/wD/AP8A + /wD/ACIAAwIBAyQAAwQBBgMHAQoDBQEHAwIBA4gAAwwBEAMYASIDHQEpAx8BLQMiATEDIgEyAyMBMwMj + ATMDIgEyAx8BLAMYASIDNwFbAxoBJQMLAQ8IAAMHAQoDSQGHA1gBuwNYAbsDWgG9A1oBvQNZAb4DWQG+ + A1kBvwNVAbIDJgE5AxQBGwMYASEDDAEQHAADDQERAxgBImQAAwIBAwMFBAcBCQMIAQsDCQEMAwoBDQMK + AQ4DCgEOAwUEBwEKA1QBrwJ/AVkB/gMKAQ4DAQECCAADEgEYAQABuQHbAf8BAAGyAdkB/wEAAbIB2wH/ + AQABtAHdAf8BAAG2AeAB/wEAAbgB4wH/AQABuQHmAf8BAAG6AeoB/wGGAcAB3AH/A14B2AMtAUYkAANT + AaoBAAGFAQAB/wM8AWaAAAMOARMDWwHEAcMBtAEAAf8DTAGSEAADFwEgAQABwAHlAf8BAAG7AeYB/wEA + AboB5wH/AQABvAHoAf8BAAG9AekB/wEAAb4B6gH/AQABvwHrAf8BAAG+Ae0B/wGSAcsB5wH/AfEB5AHR + Af8DTAGTIAADTgGZAQABnQEAAf8BAAGdAQAB/wNeAd0DDQERLAADDQERAw0BEQMjATMDIwEzAw0BESAA + AwcBCgMzAVIDNwFaAzcBWgM3AVoDNwFaAzsBYwNlAeUBwgGzAQAB/wHCAbMBAAH/A0kBhwMHAQoMAAMW + AR8BAAHGAewB/wEAAcIB7AH/AQABwQHsAf8BAAHCAe0B/wEAAcMB7gH/AQABxQHuAf8BAAHGAe8B/wEA + AcUB8QH/AZcB0AHnAf8B8QHtAe4B/wNKAYkcAANOAZkBAAGoAQAB/wEAAaoBAAH/AQABqgEAAf8BAAGq + AQAB/wNOAZkwAANJAYgDYQHuA2EB7gNTAaoDDQERGAADBQEHA10B0gHCAbMBAAH/AcIBswEAAf8BwgGz + AQAB/wHCAbMBAAH/AcIBswEAAf8BwgGzAQAB/wHCAbMBAAH/AcIBswEAAf8BwgGzAQAB/wHCAbMBAAH/ + A10B0gMFAQcIAAMWAR8BAAHLAfAB/wEAAcgB8AH/AQAByAHwAf8BAAHJAfEB/wEAAcoB8gH/AQABywHz + Af8BAAHNAfQB/wEAAcwB9gH/AZsB1gHtAf8B9AHuAesB/wNIAYUUAAMNAREDTgGZAQABswEKAf8BAAGy + AQgB/wEAAbcBEAH/AQABtwEQAf8BAAGzAQoB/wEAAbMBCgH/AywBRCgAA0MBdwPMAf8DxQH/A74B/wOy + Af8DSQGIGAADGgEkAcYBtwEAAf8BxgG3AQAB/wHGAbcBAAH/AcYBtwEAAf8BxgG3AQAB/wHGAbcBAAH/ + AcYBtwEAAf8BxgG3AQAB/wHGAbcBAAH/AcYBtwEAAf8BxgG3AQAB/wHGAbcBAAH/AxoBJAgAAxYBHwEA + AdEB9AH/AQABzwH1Af8BAAHPAfUB/wEAAdAB9gH/AQAB0QH3Af8BAAHSAfgB/wEAAdMB+AH/AQAB0wH6 + Af8BoAHaAe8B/wH9AfIB7gH/A1oBvRQAAyMBMwEAAb0BGQH/AQABuQESAf8BAAG+AYEB/wM8AWYDQwF3 + AQABvAEVAf8BAAG8ARUB/wNcAcwDDQERIAADGAEiA14B3QPWAf8D1gH/A8wB/wO+Af8DYQHuAxgBIhQA + AxkBIwHLAb0BAAH/AcsBvQEAAf8BywG9AQAB/wHLAb0BAAH/AcsBvQEAAf8BywG9AQAB/wHLAb0BAAH/ + AcsBvQEAAf8BywG9AQAB/wHLAb0BAAH/AcsBvQEAAf8BywG9AQAB/wMZASMIAAMWAR8BAAHWAfcB/wEA + AdUB+QH/AQAB1AH5Af8BAAHVAfkB/wEAAdYB+QH/AQAB1wH5Af8BAAHXAfkB/wEAAdgB+gH/AQAB1QH0 + Af8B2AHnAe0B/wHxAe8B7QH/AxwBKBQAA0MBdwNeAd0DQwF3CAADXAHMAQABwAGCAf8BAAHAAYIB/wNO + AZkgAAMYASIDXgHdA9YB/wPWAf8D1gH/A8UB/wNhAe4DGAEiFAADGQEjAdABwwEAAf8B0AHDAQAB/wHQ + AcMBAAH/AdABwwEAAf8B0AHDAQAB/wHQAcMBAAH/AdABwwEAAf8B0AHDAQAB/wHQAcMBAAH/AdABwwEA + Af8B0AHDAQAB/wHQAcMBAAH/AxkBIwgAAxYBHwEAAdoB+AH/AQAB2QH5Af8BAAHYAfkB/wEAAdkB+QH/ + AQAB2gH5Af8BAAHbAfkB/wEAAdsB+gH/AQAB3AH6Af8BAAHbAfwB/wGsAd8B8AH/AfcB8AHuAf8DTgGV + GAADDQERDAADIwEzAVoCYQHuAQABwwGIAf8BAAHDAYkB/wNDAXcDDQERHAADSQGIA98B/wPWAf8D1gH/ + A8wB/wNTAaoYAAMZASMB1QHJAQAB/wHVAckBAAH/AdUByQEAAf8B1QHJAQAB/wHVAckBAAH/AdUByQEA + Af8B1QHJAQAB/wHVAckBAAH/AdUByQEAAf8B1QHJAQAB/wHVAckBAAH/AdUByQEAAf8DGQEjCAADFgEf + AYEB3QH5Af8BAAHcAfoB/wEAAdwB+gH/AQAB3QH6Af8BgQHeAfoB/wGCAd4B+gH/AYMB3wH6Af8BhQHg + AfoB/wEAAd8B+wH/AbQB4gHxAf8B9wHxAe8B/wFnAlkB8gMNAREoAAM8AWYBAAHIAZMB/wEAAcUBjwH/ + AQAByAGTAf8DLAFEIAADTgGZA2EB7gNhAe4DUwGqAw0BERgAAxoBJQHaAc8BjQH/AdoBzgGNAf8B2gHP + AY0B/wHaAc8BjQH/AdoBzwGNAf8B2gHPAY0B/wHaAc8BjQH/AdoBzwGNAf8B2gHPAY0B/wHaAc8BjQH/ + AdoBzgGNAf8B2gHPAY0B/wMaASUIAAMWAR8BhwHgAfkB/wGGAeAB+gH/AYYB4AH6Af8BiAHhAfoB/wGK + AeIB+gH/AYwB4gH7Af8BjgHkAfsB/wGQAeQB+wH/AYsB5QH8Af8BugHmAfMB/wH3AfEB8AH/AewC7QH/ + Ax8BLSwAA0kBiAEAAcsBmQH/A1MBqgMYASIkAAMYASIDIwEzIAADEQEXAeIB2QGnAf8B4AHWAaAB/wHf + AdUBnwH/Ad8B1QGfAf8B3wHVAZ8B/wHfAdUBnwH/Ad8B1QGfAf8B3wHVAZ8B/wHfAdUBnwH/Ad8B1QGf + Af8B4AHWAaAB/wHiAdkBpwH/AxEBFwgAAxcBIAGRAeQB+gH/AZEB5QH7Af8BkgHlAfsB/wGVAeYB+wH/ + AZcB6AH8Af8BmQHpAfwB/wGcAeoB/AH/AZ4B6wH8Af8BnAHsAf4B/wG+AecB8wH/A1YBsQMtAUU0AAMs + AURYAAM4AV4DWgHFA1wByQNcAckDXAHJA1wByQNcAckDXAHJA1wByQNcAckDWgHFAzgBXgwAAwcBCgFh + Al4B2gGbAekB+wH/AZ0B6gH8Af8BnwHrAfwB/wGiAewB/AH/AaQB7QH8Af8BpgHuAfwB/wGoAe8B/AH/ + A18B+wM0AVTYAAMEAQYDGAEhAxcBIAMXASADFwEgAxcBIAMXASADGAEhAxEBF/8A2QADAgEDAwABAQ8A + AQEDAAEBAwABAQMAAQEDAAEBDAADBAEFjAADBgQIAQsDEAEWAxMBGgMUARwDFQEdAxUBHQMUARwDFAEb + AxABFgMKAQ0DCAELCwABAQMHAQkDIgExA0ABcQNDAXcDRAF5A0QBegNEAXoDRAF6A0QBegNEAXkDQwF3 + A0IBdAMpAT8DDAEQAwABAQQAAwQBBQMJAQwDCwEPAw0BEQMHAQkDAQECAwQBBQMEAQUDAQECAwUBBwMN + AREDCwEPAwkBDAMEAQUIAAMEAQYDCgENAwoBDgMMARADDgETAw4BEwMPARQDCgENAwsEDwEUAwcBCgMH + AQkDCgENAwUBBwwAAwQBBgNHAYIDXAHqA2QB7ANkAewDZAHsA2QB7ANkAewDZAHsA2IB6QNAAXADBgEI + DAADDQERA2EB4QPeAf8D4AH/AuQB5QH/AucB6AH/A+kB/wLpAeoB/wLpAeoB/wLnAegB/wLlAeYB/wLj + AeQB/wNdAfADHAEoCAADCgEOAxYBHgMYASIDEQEXAzcBWgNTAaoDXgHOA14B0ANWAbEDPQFnAxMBGgMX + ASADFgEeAwoBDgcAAQEDCQEMAw4BEwMfASwDIgEyAyQBNQMjATMDMQFPA1wByQM1AVUDHwEsAz0BaANb + AcQDEwEaAwkBDAMAAQEMAANeAdgC1AHVAf8C2QHaAf8C3AHdAf8C3gHfAf8C3gHfAf8C3gHfAf8B3AHb + AdwB/wLYAdkB/wNaAb0QAAMjATMC1AHWAf8C2QHfAf8B3wHhAeYB/wHjAeUB6gH/AeQB5wHrAf8B5QHn + AewB/wHlAegB7AH/AeUB5wHsAf8B5QHoAesB/wHjAeUB6gH/Ad8B4AHlAf8C2wHdAf8DNgFYFAADTgGU + AcUBtgEAAf8BxQG2AQAB/wHAAbABAAH/AcABsAEAAf8BwwGzAQAB/wHGAbcBAAH/AVYCVAGrAwYBCBQA + A0wBjwNfAeMDXAHfA1wB3wNgAd4DXQHiAgABlAH/A2QB8QNhAdwDXAH4AgABggH/A1IBpwMHAQkQAANc + AdEC3QHeAf8C4AHhAf8C4gHjAf8C4wHkAf8C4wHkAf8B4gLjAf8C4gHjAf8C4AHhAf8DVwG3EAADIgEy + AdkB2AHXAf8B2AHVAbYB/wHUAccBqwH/AdABvQGlAf8B0gG/AacB/wHTAcABqAH/AdMBwAGoAf8B0wHA + AagB/wHSAb8BpwH/AdQBxgGqAf8B2gHXAbYB/wHfAd4B2QH/AzUBVRAAAVYCVAGrAcIBswEAAf8BwgGz + AQAB/wHCAbMBAAH/AeAB2QGeAf8B6AHjAbkB/wHQAcYBAAH/Ab8BsAEAAf8BwgGzAQAB/wNcAckDAgED + DAADHwEsAwAB/wMAAf8BggGEAYYB/wMAAf8BjQGOAZEB/wMAAf8CAAGrAf8CAAGXAf8CAAGdAf8CAAGZ + Af8CAAGKAf8DAAH/AzABTBAAA1wB0QLiAeMB/wLkAeUB/wHlAuYB/wHmAucB/wHmAucB/wHmAucB/wHl + AuYB/wHjAuQB/wNXAbcQAAMiATIB1AHOAaAB/wHBAbMBAAH/AbQBjgEAAf8BoQIAAf8BowIAAf8BowIA + Af8BowIAAf8BowIAAf8BoQIAAf8BsQGCAQAB/wHAAbMBAAH/AdMBywGPAf8DNQFVDAADNQFXAcIBswEA + Af8BwgGzAQAB/wG/AbABAAH/Ac8BwwEABf8B6QHmAdIB/wHGAbkBAAH/AcABsQEAAf8BwgGzAQAB/wHC + AbMBAAH/A0YBfgwAAyMBMwMAAf8BAAGBAYIB/wMAAf8BAAGBAYIB/wKBAQAB/wIAAYEB/wIAAZgB/wIA + AaUB/wIAAaQB/wIAAaUB/wIAAZYB/wMAAf8DMwFTEAADXAHRAeUC5gH/AecC6AH/AekC6gH/AeoC6wH/ + AeoC6wH/AeoC6wH/AekC6gH/AeYC5wH/A1cBtxAAAyIBMgHUAc0BmgH/AcABsQEAAf8BwgGyAQAB/wGy + AgAB/wGvAgAB/wGwAgAB/wGwAgAB/wGvAgAB/wGxAgAB/wHBAa4BAAH/AcABsQEAAf8B0gHKAYwB/wM1 + AVUMAANcAcwBwgGzAQAB/wHCAbMBAAH/AcABsQEAAf8ByAG7AQAF/wHnAeMBzQH/AbgBqAEAAf8BwwG0 + AQAB/wHCAbMBAAH/AcIBswEAAf8DXAHqAwQBBQgAAyMBMwMAAf8CuAG5Af8CsAGxAf8CtgGwAf8BggGE + AbQB/wIAAbkB/wIAAbUB/wIAAbUB/wIAAbAB/wIAAbQB/wIAAbkB/wIAAa8B/wMzAVIQAANcAdEC6AHp + Af8B6gLrAf8B6wLsAf8B6wLsAf8B6wLsAf8B6wLsAf8B6wLsAf8B6gLrAf8DVwG3EAADIgEyAdUBzwGd + Af8BwAGwAQAB/wHCAbUBAAH/AcIBsQEAAf8BugGFAQAB/wG3AgAB/wG3AgAB/wG5AgAB/wHBAa8BAAH/ + AcIBtQEAAf8BwAGwAQAB/wHTAcwBjwH/AzUBVQgAAwoBDgNcAfgBxQG3AQAB/wHFAbcBAAH/AcUBtwEA + Af8BwgGyAQAB/wH0AfEB2gH/AvwB/QH/AcABswEAAf8BxgG3AQAB/wHFAbcBAAH/AcUBtwEAAf8BxQG2 + AQAB/wMcASgIAAMjATMDAAH/Ar0BvgH/ArUBtgH/A7YB/wKuAbcB/wGmAagBugH/AbEBsgG5Af8CAAG5 + Af8CAAHBAf8BAAGBAcAB/wG3AbgBwQH/AgABgwH/AzMBUhAAA1wB0QHqAusB/wHrAuwB/wHrAuwB/wLs + Ae0B/wLsAe0B/wLsAe0B/wHrAuwB/wHrAuwB/wNXAbcQAAMiATIB1wHRAaMB/wHEAbQBAAH/AcYBuAEA + Af8BxQG4AQAB/wHBAYYBAAH/AcACAAH/AcACAAH/AcEBgQEAAf8BxQG0AQAB/wHGAbgBAAH/AcQBtAEA + Af8B1gHPAZUB/wM1AVUIAAMUARwBygG9AQAB/wHKAbwBAAH/AcoBvAEAAf8BygG8AQAB/wHFAbUBAAH/ + AeYB3wGxBf8BzAHDAYIB/wHIAboBAAH/AcoBvAEAAf8BygG8AQAB/wHKAbwBAAH/AyYBOQgAAyMBMwMA + Af8BzQHMAc0B/wLEAcUB/wLEAcUB/wPFAf8CxwHFAf8B0AHPAccB/wIAAZsB/wIAAc4B/wG4AbkBxwH/ + AtIBzQH/AwAB/wMzAVIQAANcAdEB6wLsAf8B6wLsAf8C7AHtAf8B7ALtAf8B7ALtAf8B7ALtAf8C7AHt + Af8B6wLsAf8DVwG3EAADIgEyAdsB1QGsAf8BygG8AQAB/wHMAcEBAAH/AcwBrwEAAf8ByAIAAf8ByAGB + AQAB/wHIAYEBAAH/AcgCAAH/AcsBqwEAAf8BzAHCAQAB/wHKAbwBAAH/AdoB1AGiAf8DNQFVCAADBwEK + AWUCUgH0Ac4BwQEAAf8BzgHBAQAB/wHNAb8BAAH/Ad4B1QGbAf8B9wH1AecB/wH1AfMB6AH/AckBvgEA + Af8BzwHBAQAB/wHOAcEBAAH/Ac4BwQEAAf8B0QHEAQAB/wMYASIIAAMjATMDAAH/AtsB3AH/AtIB0wH/ + AtIB0wH/AtIB0wH/AtIB0wH/A9cB/wGPAZABmAH/AYsBkAHSAf8B1QHUAdMB/wLbAdwB/wGFAYYBiQH/ + AzMBUhAAA1wB0QHrAuwB/wLsAe0B/wHsAu0B/wLtAe4B/wLtAe4B/wLvAfAB/wHzAvQB/wHwAvEB/wNZ + Ab8QAAMiATIB3gHZAbYB/wHRAcQBAAH/AdIBxwEAAf8B0wHAAQAB/wHTAYsBAAH/AdABhQEAAf8B0AGF + AQAB/wHSAYgBAAH/AdMBuwEAAf8B0gHIAQAB/wHRAcQBAAH/Ad4B2AGtAf8DNQFVDAADWgG9AdQByAEA + Af8B0wHGAQAB/wHTAcYBAAH/AdMBxwEAAf8B2AHNAYUB/wHnAeEBuQH/AdkB0QGZAf8B0AHDAQAB/wHT + AccBAAH/AdMBxwEAAf8DXAHfAwABAQgAAyMBMwMAAf8D9wH/A+wB/wLsAe0B/wLrAewB/wLrAewB/wLw + AfEB/wGlAaYBpwH/Au4B5wH/AusB7AH/AvYB9wH/AZEBkgGVAf8DMwFSEAADXAHRAesC7AH/AuwB7QH/ + AewC7QH/Au0B7gH/Au8B8AH/AuYB5wH/AbIBswG0Af8CswG0Af8DSQGHEAADIgEyAeAB3AG+Af8B1wHL + AYMB/wHYAc0BiAH/AdgBzwGNAf8B2wG6AQAB/wHcAZgBAAH/AdwBmAEAAf8B2wG1AQAB/wHYAc4BjAH/ + AdgBzQGJAf8B1wHLAYMB/wHhAdwBtwH/AzUBVQwAAyoBQAHdAdEBkwH/AdYBywGEAf8B1wHMAYYB/wHW + AcoBgQH/AdwB0gGVBf8C9AHzAf8BywHAAQAB/wHYAc0BhAH/AdwB0AGSAf8DOwFjDAADIwE0AwAB/wGa + AZsBnQH/AZsBnAGfAf8CmwGeAf8CoQGjAf8CoAGiAf8BogGjAaUB/wMAAf8BlQGWAZgB/wGcAZ0BnwH/ + AZoBmwGdAf8DAAH/AzMBUxAAA2AB1AHrAuwB/wLsAe0B/wHsAu0B/wLtAe4B/wL0AfUB/wLBAcIB/wGI + AYkBigH/A08BlxQAAyIBMgHjAd8ByAH/AeIB2AGhAf8B4gHYAaQB/wHiAdgBpAH/AeEB2gGoAf8B4gHV + AZwB/wHiAdQBmwH/AeEB2gGpAf8B4gHYAaQB/wHiAdgBpAH/AeEB1wGhAf8B5QHgAcQB/wM1AVcQAANI + AYYB4QHXAaEB/wHcAdEBlQH/AdsB0AGSAf8B2wHQAZIB/wHpAeMBvQH/Ad4B1gGoAf8B2QHOAY4B/wHh + AdYBoAH/A1MBqBAAAxoBJQMAAf8DAAH/AZcBmAGaAf8DAAH/AaUBpgGoAf8CAAGBAf8CjAGOAf8CowGl + Af8DAAH/AZ8BoAGiAf8DAAH/AYcBiQGLAf8DLAFDEAADXQHKAesC7AH/AesC7AH/AuwB7QH/AewC7QH/ + AvMB9AH/AcABwQHCAf8DTgGWGAADCQEMA1wBzAHoAeQBzwH/AesB5wHTAf8B6gHnAdMB/wHrAecB0wH/ + AesB5wHUAf8B6wHnAdUB/wHrAecB0wH/AesB5wHTAf8B6gHnAdMB/wHpAeUB0AH/A14B3QMWAR8UAANA + AW4DXQHwAeQB2gGrAf8B4wHZAagB/wHhAdYBoQH/AeMB2QGmAf8DagH5A0gBhhgAAzoBYgNdAcoDXQHK + A1wByQNcAckDXAHJA1wByQNcAckDXAHJA1wByQNcAcwDQwF4FAADGAEiA0ABcQNCAXMDQgFzA0IBcwNC + AXQDOQFfIAADJgE4A04BlgNRAZwDUAGbA1ABmwNQAZsDUAGbA1ABmwNQAZsDUAGbA1ABmwMvAUkcAAMM + ARADNQFWA0gBgwNJAYcDOAFeAxMBGv8AVQABQgFNAT4HAAE+AwABKAMAAUADAAEwAwABAQEAAQEFAAGA + AQEWAAP/AQAC/wYAAv8GAAL/BgAC/wYAAfgBDwYAAeABBwYAAcABAwYAAYABAQYAAYABAQYAAeABAwYA + AeABBwYAAfwBPwYAAv8GAAL/BgAC/wYAAv8GAAr/Ab8B4QT/AYABAQGAAQEB/AP/AYABAQGAAQcB/AF/ + A/8BhwGAAQcB+AE/AfgBPwHAAQMBgAEHAfABPwH8AR8BgAEBAYABBwHAAR8B+AEfAYABAQGAAQcBwAEP + AfABDwGAAQEBgAEDAeMBDwHwAQ8BgAEBAYABAwH3AQMB+AEfAYABAQGAAQEB/wGDAfwBHwGAAQEBgAEB + Af8BwwH+AX8BgAEBAYABAwH/Ae8C/wHAAQMBgAEPBv8BwAEfDv8BnAEdBP8BwAEDAgABgAEBAYABAQHA + AQMBgAEBAYABAQIAAeABBwGAAQEB8AEHAcABAQHgAQcBgAEBAeABAwGAAQEB4AEHAYABAQHAAQMBgAEB + AeABBwGAAQEBwAEBAYABAQHgAQcBgAEBAYABAQGAAQEB4AEHAYABAQGAAQEBgAEBAeABBwGAAQEBgAEB + AYABAQHgAQcBgAEBAcABAQGAAQEB4AEHAYABAQHAAQMBgAEBAeABDwGAAQEB4AEHAYABAQHgAR8BgAEB + AfABDwHAAQMB4AE/AcABAwH4AR8K/ws= @@ -4477,282 +4430,280 @@ - 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 - XPhiBi2dAAAAAElFTkSuQmCC + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAArpAAAK6QH9dc7TAAACTElE + QVQ4T6WST0zTYBjGG7fh2OrWP1uHimSi+BddNNxMTIwh8UbkoibcTOTgnYSTehgQmTg3EiewbE4Z2dAx + UQKaTVHm4r+Dhht486Cupe3WsS0c/Hy/hiytctLDr+/3Pc/zPmmaEgih/2JLEbORDRK1954rQF8tf8a0 + VQbzl1B9e3S/OnMn2quLTlR5xaDq0qFuVct7VE+L7lLJuPsrWTcsHZ6pvumwlecMGwBan7ccqCweG1K9 + jHtCu6MrKD9l7ispI1JmGhCcO5W0+aWS3v69/Iw7qaQbkJLahsqz9nfaHV0BpvTIcq2UNNdKSctqaZr0 + w0wAmVLCjMAbreasuu+hPmqrlwn54Y4++QE5JcdsF4pxqqs4aX1RjNOvi1NsFs75Ytx2UY7ZuyAThewt + 5fFeY71AjjVxUphEUtgK4AlEqBToK3LM9U2K0AnQarpMhO6oF0jRPQbxHhUVQ/Yv4pjdK44zl8QQNS2O + Oz9KE0150BfEMboHvH4xZPsE3rwUdpH1Ai2C39Et3KFWhAC1JgSZUSHATK4FqGXQfgh+tvfPvO7C+xxD + vI9G/DAw4urhfewT3sd8FW7vOssPM0j1fGxKu6MrKAxywYLXgX4OOD5Ld09b4VwueFko3NdcGHAmsQfz + uXZHV4DQMrF+c/c5tNBu+TXSckS4wSH+OoeUwebz2Fe92eON2h31YSAIG9BCEEQrsBNoa2VMnqVe59yH + q1yus63xFGgHNz03zuIdbYEJIAE7QAMsBBnABBgBCmubHs7grPpD1V/l30DEb4BMXPjv548hAAAAAElF + TkSuQmCC - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK6QAA - CukB/XXO0wAAAclJREFUOE9j+P//PwMlGKdm9WXPhcVn3XcmZDhWA6zWvBDhm3jtLmfv1a0ma14K4TME - wwDt2bfU+DrPP2BoOPGfpenUX662M9/4Os+dkui7GIXNIAwDuGoPX2co3/8fjsv2gdnstYf/i7ad7EI3 - BMMAxrytdkD8mSFv638QBrJ/M+Zv/cqQu+U/a/GO/0LV+3yRDcEaBpwZa7UZ09Z8ZElfs4tB9zsfg/B/ - TtbM9epM6WtzuQu27BSt2MECMwRuwNyzaoyLL1hKwySYopdrMkaujdr7UEJ/7wMlOZg4b+pKHa60VVxY - DFBnnHZKZ8HsMw7hu26VcsMUTD2p2DrtpNbbhec9lQkGYsdhWeeuI5r/+44Zf+g/bnZjwnHz291HNb+2 - H5YDihm8nXnGy5hgINbuVe2v2qP6vwaE94Kw2v/avRpgumGf4ff2Q3YcBAMxf7NOfs5GncfZ63X+Z2/Q - +Q9k/wex8zZpJpTvUEMJeHz5gDFzu5lOxCL92WHz9f4mrjVyxxsGzAwMvEAsD8RqQKzFAMHSmlEKBZoR - cgVAtgRUDqSGFyMWgIKsQMwDxAJALATEwkAsCtTIA8ScUD5IDqSGFcMAQrkOlzwA9XxjpDYQVs4AAAAA - SUVORK5CYII= + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAArpAAAK6QH9dc7TAAAB2UlE + QVQ4T2P4//8/RRirIAirL3suLD7rvjM2OWSMVdBqzQsRvonX7nL2Xt1qsualEDY1MIwhoD37lhpf5/kH + DA0n/rM0nfrL1XbmG1/nuVMSfRej0NWCMIYAV+3h6wzl+//Dcdk+MM1ee/i/aNvJLnT1KBwQZszbagfE + nxnytv4HYSD7N2P+1q8MuVv+sxbv+C9Uvc8XWT2KZhjmzFirzZi25iNL+ppdDLrf+RiE/3OyZq5XZ0pf + m8tdsGWnaMUOFphauKa5Z9UYF1+wlIbxmaKXazJGro3a+1BCf+8DJTmYOG/qSh2utFVcMD6SAeqM007p + LJh9xiF8161Sbpj41JOKrdNOar1deN5TGSaGjFE4HYdlnbuOaP7vO2b8of+42Y0Jx81vdx/V/Np+WA4o + ZvB25hkvY2T1IIzCAeHavar9VXtU/9eA8F4QVvtfu1cDTDfsM/zefsiOA1k9imYYzt+sk5+zUedx9nqd + /9kbdP4D2f9B7LxNmgnlO9RQ1KJw0DBj5nYznYhF+rPD5uv9TVxr5I5FDcIAZgYGXiCWB2I1INZigGBp + zSiFAs0IuQIgWwIqB1LDi80AViDmAWIBIBYCYmEgFgVq5AFiTigfJAdSw4phAHn4PwMA9XxjpB7NS6oA + AAAASUVORK5CYII= - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAbugAA - G7oBOrTkIAAAAXlJREFUOE9j+P//PwMlmCLNIIsHiQHbdh3/H53W/N8ztPS/U2ARHAfGVf9PyGn/X9E4 - 43/ftFX/124+9P/S1bv/f/z4BXQ9JOwYPn35+r+oeup/Y8dkMDa0zQJj24BEMA0Th9HW7llgi0CGgiwG - G1DRNBOsMLrB439EtReYLlpi+j+u1eF/UGbW/7r+tf/LOhYB6RX/M6umgtkRGa3/QYaBnTF78WawASBb - y9cagGmQIXbhAf8Xn+r6b+VW8r9n3lawmo1HbvwPBXoXxAa5HGzAibNX/3vEx/+Pb/H8H1nlD8cgflJJ - F1Bx5v/4/G6wpoLG2f+bpqz5DwofsBdABoACBRyIwRVw7Ohd8h+E7b2z//tGogYuKKAzi3rAAQlPByDT - 7N0TsGJn95j/nl4x/0MCYv6nhEf+n1GT8//F/euoBoBMa+1bAo9C76gKsKuyi6f8B4kv33Dw/+mLd/+/ - /vANHoVYUyIoPEAKnz5/jaIQV34ZJEmZkuwMAFX2tvJSSFPYAAAAAElFTkSuQmCC + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAABu6AAAbugE6tOQgAAABf0lE + QVQ4T6WRzUsCURTF/ZOKaFOYWZBfRFqJmuLYB9GoUExWg0akJYWJbTQMoUUKRSQUUot2RVAULQqkNtIq + CtxEVEib07xLSgOzaGjxm/veefee+94dDYB/oSiqQVFUg6KoBvocn1zAPb4Ek30GXTahgc0bgS+4AjGa + RWpjD8XSGe7KFdRqX1LZj8Hb+weESAYt+lGiWesntNZhinW9TrvBT42YKWtMBmJskw7di0Y4I2aKQqEV + 3ngn+nk/FtaLmF3dluIu+HCG1s6JOJnRNXL5EhmwrnPFJorMpMNhRf4qgbaeEJJbR5RzeP4Au/RctmY3 + J4PLmzKMHAdu2QRXuK8B24+EElIyD25yjYqmojnE0vs0H3oCM2BDoSEOiA30lhChswTQ65IPl8ELSan0 + 129kbjqDT5FugwcmsweDVg/GHC5k54N4ebyXGzDiqUKjg2VIpFsFptNg+s7BKa5vK6i+flJhHZkBg82D + JT49V6Wt/EwJRVENiqIaFMW/A803Vfa28ucc2S8AAAAASUVORK5CYII= - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK8gAA - CvIBPVL3EQAAAkpJREFUOE+lkstrE1EUxm8TLe7ci60bF4Hixm0pFExVAm78C1woVFwYcelaqMtSpcLE - 4M5NXWixgmhDK3bRNC8zeb8fM8m8M0mlDcEez7mYTFLoqgMf986d+X7nfPdeBgDsPOLmwWDA+v0+M3Sd - /Tk8ZMdHR5fKpdKLbCYTLBYKAs6FfC4XKBaLN3u9HpOaTaaqKvdOAgydWZbFlHZ7IZNOnxTyeUAz1KpV - QABsfv70zbbtC7Isnwm4ouvaDBqek4HMzUYDZFni45vXa/BxY2Mbv1/WsdtRB/3+McPWHmqa+hcBJxgF - Oh0L0ikRdnd2wDB0wHWIRg7g69YXiEWjH+q1mgMwTZPhD+/pJzKToWvbIIpJeLWyAnt7v6DVknkX/+Ps - YkQH0MHcpmEI4wDLNEHXNNj+8R2rbgHtR6Vc5iOaQ+lUygFYlsmw6gQAgUDqdm0uSWpCLpslM6REMSQm - k+MRDIrAAeNdUJRhJMxMRkAj/E4kQol43AHQjiqKIihKmwNOi0DlcgnisRhXNBIJoRyAhpcCN0mg4yII - nsaEVFXh2Q/CYQjv7wNW/4mjA2jhxWjU6wK1ibeMnzvtOonmsiTx/FiVx3i7vv7u2uzsWAeaxvB4glSl - WqlAvV4DBHIRtN1qwdrq6qbH47l3Y27u/rTbfZ0xNj26SD6fjwUDgZd0xiTeBVYl0ZwAj5eXn6CJPy6U - GzUC0NpFl2vm1uLio9te71OU/47X+wzlv7u05F+Yn3+ApqsoNxmHGgFwYQrXScNn+D6+Ruap04B/nRvT - MkyJpVUAAAAASUVORK5CYII= + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAryAAAK8gE9UvcRAAACSElE + QVQ4T6WSy2sTURTGbxMt7tyLrRsXgeLGbSkUTFUCbvwLXChUXBhx6Vqoy1KlwsTgzk1daLEF0YZW7KJp + XmbyTibPmWQemckklTYEezzn0mQS0ZUDX+4j8/3u+e4ZBgD/Jf4zGAxYv99nbcNgP4+O2Mnx8QWpVHqW + zWSCxUJBwLmQz+UCxWLxeq/XY3KjwTRN+wugbTDLspjaai1k0unTQj4PaIZqpQIIgM2PHz7btn1OUZR/ + Ai4Zhj6DhqdkIHOjXgdFkfn46uUavN/Y2MH/LxpY7QjQ758wLO2+rmu/EHCKUaDTsSCdEmFvdxcQDLgP + 0cghbG99glg0+q5WrToA0zQZvvCWXiIzGbq2DaKYhBcrK7C//x2aTYVXcRZnDyM6gA7mNtttYRxgmSYY + ug47X7/gqVtA91GWJD6iOZROpRyAZZmUfwKAQK5u1+aS5QbkslkyQ0oUQ2Iy6QBMs00ROGAcwnU2x8xk + BDTCj0QilIjHHQDdqKqqgqq2OOBPEUCSShCPxbiikUgI5QB07ClekkDtIgh2Y0KapvLsh+EwhA8OAE// + hqMDaOKHUa/VBCoTvzLed7p1Es0VWeb58VQe4/X6+psrs7NjFeg6w/YE6ZRKuQy1WhUQyEXQVrMJa6ur + mx6P5861ubm70273VcbY9Ajg8/lYMBB4Tj0m8SrwVBLNCfBwefkRmvjjQrlRIwDtnXe5Zm4sLj646fU+ + Rvlveb1PUP7bS0v+hfn5e2i6jHKTcagRABdTuCYNn+F6fI/MU5MAYL8BnRvTMpRYdPwAAAAASUVORK5C + YII= - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK6QAA - CukB/XXO0wAAArRJREFUOE+l01tIU3EAx/GBlAQVCkVvTZMI1B6SijCkhx566MIqJbEVFZqplTmVSZa2 - zOsslWLdzMjMJCjDaWoPywdzrfA+15zOy9zV7cw5zXbO2fj13wFHom8e+HI48P9/zv+c/zk8ALz1FJjs - maqKpI1PEhiTLJ42Pye9iKcttfG0tc5fgsf86thaN+IA92BeKGuWsV7bS3hna+G1v4bX8QY+qgE+ZyN8 - riauP+ZPpTNObPwf4oD5vuxwxvAI7MxDsMYqsKYasObH8Fpk8FqfwQ/7Zp9iwdIFB7VotNtnJU4nFeyf - ywFOVQafniwBM/mAVARmqphUCma6HKxBysFeYxncpk643B5QlAME2RcA7N3JfHq8EMx4Ppix2+R8F4y+ - AMzEPZKEQ9mJO5g3yDE3/xcOh32aIBsCgK1LyPeMikFrRaB/Z5FzNujRXECXD4wRiKCs7iZck82gXEt+ - IG/5PXCPYPp6jr80IoJnOJ2UBlqdDnbkBgaHBPg1dIKgGXBrSkDZraCccx6y/G0rgMnWeP5CfyYWeq9i - sTcFbN81MAPpkKnCUKHcjsVBIZZ0TXC6fbDZrI2rdmH042n+3M/rcCmTQfVcgk6ZCK0qCTXfI1HeHQG1 - SgDtcBEsZAWm/nfFqwD1+1N8e3caXF1XoP52BpmKMOQoIlCg2INCUo5iNzI6t0Cp/wCPpqViFfCj7ni4 - QZEKU8dFaNoTUNl2kEvUGo1MeRSkbTGo7IxDx4Acmp666lXAwFtBiPZLCjPy+Ty0zUkwtFzAlFyI1IYY - JNZHQ992FvoOCbTynHpr+8ldK4AgHndsFl/eL6jOjSuUZh2WVN6KLaoUxd4/WrLXeKQs2i3JPiQVC6PE - ZFwEKYzMCSeFBL4DchG05o+yI3RryIGdoYEt4/E2kbH+gpfnrOtX9sP/AIt1021BwrQaAAAAAElFTkSu - QmCC + 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 + 0fhxRPQT31CSrH0I1CIAAAAASUVORK5CYII= - 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 - qLnKOhNqAAAAAElFTkSuQmCC + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAryAAAK8gE9UvcRAAACwUlE + QVQ4T6WSXUhTYRjH37kUxciKbgq66CIYrUK7KZIgaVYQBRVBBGUgGBKYFUUX0YWQlN4VKrpYBsYojZoX + fiQTvbEPNre5D93Zps61re187EvTIfnvOZN5hOiqF/7n8L6c/+88z/95GYD/Uu6xurrKstksEwSeLS0u + spXl5aKA3/94Znra4Pf59LOBgJ7zel/5/b6KTCbDwuEwi8VifwNEUWCJRILFY7Fj0x7PGplAZgTn58Fx + XvSbTEPpdKowEon8E7CHqthLhvvczLr5RyiESCSce7e9fIG+3t7xYDBYJgiCAshmV1gmk67j+fhvAqyJ + goBkMgm3y4XxsTEQGHSOSasFgwMDsE1OviWIApAkiZGpR/5INsuGdCoFt8eNltZWfJmYQDQayVWRa8fr + HaMWFUCS+pZE0ZAHEBDJpSXw3AxG3xsxNDICzu/H3OwsfBwHMps9brcCSCSoAlFYB0gipISEwIMGOI9o + 4Dl6GHN1NxDycfByPtBk5NbMLqdTAUiSyHieN/BCHNLyL7ifPMJQMUOgpRm+d0YMl6jw9dpleHx+kBFT + DofZYbcrADlRGoshFo9BpL8PnjwO4/YSOJub4Oo2wLijFJ+0+2GjLOwOB4VpNVstFgXAx+OMQjLI4xIo + /b5z1WgrK8bn2hqMPryH9p2l6C4/AOv3b7BYLLDbbONOh0MBROlihBYWDAvBIH5SiDbTRzzdtQ09ly7g + w61aNG0txGDrc0x5PLkWOjs69Ae1WgVAN4/ReN7ICc9T0lEK0zYyjNc3r0N/9Qqs/Sa0d3WZNBrN+UNa + 7cUitXofY2zLBqCivJzpOzufyRXICtO8YzwPIZUGTy0JiQRu19c3kCm3Ckhq0gZAPpOpp6qq6k7rdHdI + jWd0urukxrPV1Y0nKitr1CrVbjKqZGNeGwDaqGgvK7/y+81nBZvN6wCwP2pNqLkfzIVuAAAAAElFTkSu + QmCC - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK6QAA - CukB/XXO0wAAAclJREFUOE9j+P//PwMlGKdm9WXPhcVn3XcmZDhWA6zWvBDhm3jtLmfv1a0ma14K4TME - wwDt2bfU+DrPP2BoOPGfpenUX662M9/4Os+dkui7GIXNIAwDuGoPX2co3/8fjsv2gdnstYf/i7ad7EI3 - BMMAxrytdkD8mSFv638QBrJ/M+Zv/cqQu+U/a/GO/0LV+3yRDcEaBpwZa7UZ09Z8ZElfs4tB9zsfg/B/ - TtbM9epM6WtzuQu27BSt2MECMwRuwNyzaoyLL1hKwySYopdrMkaujdr7UEJ/7wMlOZg4b+pKHa60VVxY - DFBnnHZKZ8HsMw7hu26VcsMUTD2p2DrtpNbbhec9lQkGYsdhWeeuI5r/+44Zf+g/bnZjwnHz291HNb+2 - H5YDihm8nXnGy5hgINbuVe2v2qP6vwaE94Kw2v/avRpgumGf4ff2Q3YcBAMxf7NOfs5GncfZ63X+Z2/Q - +Q9k/wex8zZpJpTvUEMJeHz5gDFzu5lOxCL92WHz9f4mrjVyxxsGzAwMvEAsD8RqQKzFAMHSmlEKBZoR - cgVAtgRUDqSGFyMWgIKsQMwDxAJALATEwkAsCtTIA8ScUD5IDqSGFcMAQrkOlzwA9XxjpDYQVs4AAAAA - SUVORK5CYII= + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAArpAAAK6QH9dc7TAAAB2UlE + QVQ4T2P4//8/RRirIAirL3suLD7rvjM2OWSMVdBqzQsRvonX7nL2Xt1qsualEDY1MIwhoD37lhpf5/kH + DA0n/rM0nfrL1XbmG1/nuVMSfRej0NWCMIYAV+3h6wzl+//Dcdk+MM1ee/i/aNvJLnT1KBwQZszbagfE + nxnytv4HYSD7N2P+1q8MuVv+sxbv+C9Uvc8XWT2KZhjmzFirzZi25iNL+ppdDLrf+RiE/3OyZq5XZ0pf + m8tdsGWnaMUOFphauKa5Z9UYF1+wlIbxmaKXazJGro3a+1BCf+8DJTmYOG/qSh2utFVcMD6SAeqM007p + LJh9xiF8161Sbpj41JOKrdNOar1deN5TGSaGjFE4HYdlnbuOaP7vO2b8of+42Y0Jx81vdx/V/Np+WA4o + ZvB25hkvY2T1IIzCAeHavar9VXtU/9eA8F4QVvtfu1cDTDfsM/zefsiOA1k9imYYzt+sk5+zUedx9nqd + /9kbdP4D2f9B7LxNmgnlO9RQ1KJw0DBj5nYznYhF+rPD5uv9TVxr5I5FDcIAZgYGXiCWB2I1INZigGBp + zSiFAs0IuQIgWwIqB1LDi80AViDmAWIBIBYCYmEgFgVq5AFiTigfJAdSw4phAHn4PwMA9XxjpB7NS6oA + AAAASUVORK5CYII= - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK8gAA - CvIBPVL3EQAAAiNJREFUOE+l0s1rE0EUAPCXtKKSiwgFSZNsWymKV3tS0oJgPRW9+q8oeFGLUDT9G0Sw - x3xpdtuDzSYmWQPdmKYktdlsvhqSNCkJSYibj52+WZtSlrIXB37L7sx7j9k3A4QQ+B+gqmMNISqcnjaZ - fF5+nctJ6+idzvtCIf/m5KR+V1EUGAwGGqAfVL/fv3Z09CdycJAiRg4PM2Kv17MoykDLg3Q6DZlMBpLJ - 38s8HyThcMhYiCfRaPSpIAhAQavVgna7DY1G4zbHccd+n4988/uvRNcCge/NcqlkrddqUKtWAUajkYY2 - UpZlW4jn13Enm+iTjgu/P+CO52n8cDjUXBSgk5XK8StZzpVQERV06FwZY95Omk4bD6ViEXBLkJOkpVgs - SoRYzJgQI6lUykl7R0EJk8vlMkjZ7AOOY8nOzrYhjmXJ/n7yIZ4GNh8LdDodTbfbhXg8/sLn9YY8bncE - /dSJeD2esCiKL2m/xuOx5uJFVVXAS7KE//lZkrJb6KvOFq59qVarjyeN1wooyl/tRjWbDUciIfbEvT1i - JCGKw0qlco8ef71eA7i/uAjP19bglyA8ikYiZHf3hyEawweDT1acTrgzMwOTMWWzWi0fNzbcbCBAL8uV - WDZANl2ubcZuv4WJ08gEU/hAN00ANrPJZHfMzjoX5uZW5xnm2WULDLPK2GwrGOPAWDvmWJCZFqDM6Pp5 - 1cmuMA4D/qHvkzGNsTfOc+AMHmWVxXCkGWAAAAAASUVORK5CYII= + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAryAAAK8gE9UvcRAAACH0lE + QVQ4T6XSzWsTQRQA8Je0opKLCAVJN9m2UhSv9qSkBcF6Knr1X1HwohahaPo3iGCP+dLstgebTUyyBrox + TUlqs9l8NSRpUhKSEDcfO32zNaWEshcHfsvsznuP2TcDhJD/Apo20hGiwelpg83llNfZrLyO3k14n8/n + 3pyc1O6qqgr9fl8H9IXq9XrXjo7+hA8OksTI4WFa6na7FlXt63mQSqUgnU5DIvF7WRACJBQKGgsKJBKJ + PBVFEShoNpvQarWgXq/f5nn+2Of1km8+35Xomt//vVEqFq21ahWqlQrAcDjU0YYoisIEBWEdd7KJPk1w + og+443kaPxgMdBcFqHL5+JWiZIuogPIT6LcSxrwdN52CYqEAuCXIyvJSNBohYjRqTIySZDLpoL2joIjJ + pVIJ5EzmAc9zZGdn2xDPcWR/P/EQTwObjwXa7bau0+lALBZ74fV4gm6XK4x+Tgh73O6QJEkvab9Go5Hu + YqJpGuAlWcL//CzLmS30dcIWrn2pVCqPxz3TC6jqX/1GNRp1ezwudaW9PWIkLkmDcrl8jx5/rVYFuL+4 + CM/X1uCXKD6KhMNkd/eHIRojBAJPVhwOuDMzA+MxxVitlo8bGy7O76eX5Uoc5yebTuc2a7PdwpxpZIIp + fKCbJgDGbDLZ7LOzjoW5udV5ln122QLLrrIMs4Ixdoy1YY4FmWkByoyu/6s6HhiHAefofDymMfbGeQ7A + GR5llcXmiNwEAAAAAElFTkSuQmCC - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK8gAA - CvIBPVL3EQAAArdJREFUOE+lkV9IU2EUwI+u0spMESorqSzswVKz0FxChNJDWVJkUS8N6XGKkZWlDwUW - lRCERfViROKW4QZO3TTnZmNuzqbTbWxz/2AuZeqWW3rnFu7r3GnTkW998Lvnu9895/edwwVCCPwP4WKK - oiAYDIb3CwsL+ywWS5PD4aibnnYddrvdsLS0tC50frhofn4efD4fBAIBWrDXYjG7TEYjsdtsAyjJCYVC - KAgBHdcSJaBv8nm94PdTgPs92rEx0/CwmhgNhmk/Re0IBgPhC9YSEbhcrmNOp5PpRQGNe3YWJicnDyoV - Cr9SMUDM5vE3c3M/wePxRBERyGTfPkglkt9TU1MFdBLGGI1G86lPLA5JJH1kaEg1qNfrQa/XRdDpdOHx - ww+VavCBUNhFRCJhwGqxFMnlcl5Hh4DQZ11dnUShUHy12+2A35axWsFms60KcIT0fqlU8qW1lfDa2sLw - ebxl+Hxi0GpZsuamFLWAB8PdHWBQKcDn9qwK6C5mZmYyUODmtLSQz1wu4XI4hINRPaJ51v3u1b3nF4ud - 8paPu9UiAegHZP8KAouLoNNqd4p7e2sE7e0ioVDY3N/Tc+01+1bD3ZNHSF1hNmm4cs6h4LemGoeU0QKZ - TEYXg3NiAsZNJtCMjIDBYAClgB9Xe/6Mtio/k9ScziXVBUfJ07IS06hUnEb5fq2OALg2xMZCIZMJ5SwW - VFZULMdyFnBf1Kc8Ki3+zs7LJFWncgibmeWtv3F5/IfVnBz5CwwUxNKWdVZa6i548vB+wuPrpaO3iwqo - zqb30HiH/ba2rORqlAAlDGQzshXZhmynQWcSkpCZcejAzcLjusbqipfVZRd6Lp0tTl8riMHkJCQDyUJy - kTwkf4U8lGRvYjBy9icnVibGx53A95j1OojHgi1IwkoXiRgjYNHGv1PieVjwB93nOGCzreD+AAAAAElF - TkSuQmCC + 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 + d4FGU18o1wAAAABJRU5ErkJggg== - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK6QAA - CukB/XXO0wAAAetJREFUOE9j+P//PwMlGEXzfQdj37t2Bs24DLxnZ5B5z96oEFkebsAtV7OIKwaq/y9p - Kfy/bqW7Bd2QG3YGjZd1lf9f1lH6f8PesPf/wZmMIDVgA656WHGd1lH+f1xRGoxPqcv9v2iJMOSyrUHj - aW0loJwUGJ/SVPx/3kzbFG7ATk4uxgOK0j0HlGX+gzFQ0SE1uf9nLHVXnLM3rDmqrfh/P1AMLq8kvf+A - rAQ33ACYc3cqy/TuUJL+vxOIdyhI/d8DdMk+LcX/2xUkIWIQuf1LNBVZYHowYmAj0JANQIVgDLR1PdAg - GH+jkvTe+doqrFgDEVlwhZL08RXAsEDD7zaZGsBtxumCBYrSDQsVpP4A8X90vEBRaiN67KB4YYaidONM - oEYYngFkgzCqmPSW/0+/w/WBGRNU5RkmKkg1TJSX+g/DE0BsBenNkxSku8BsZKwgtWWSihwHPBZ61RS4 - OuUl/6Ph/bX6qkwgRV0KUr0daPJditJmKNHYoSSb2AS0pUlO8j+Q3vctwBusGYab5aW6wXJA3KIoM/2x - sxVYnoGZAYwFgBRvnKRofba02BZuFmYDIF8HKG4MwkA2iK+QIik6N1NafCGQLQLEfHAXABUxAzHYT2BB - BgZOIJ8XGQPFeJDk2UB6MFIiOdkaALyqHwCXXFYvAAAAAElFTkSuQmCC + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6 + JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAArpAAAK6QH9dc7TAAAB7UlE + QVQ4T6WQQUgbQRSG18YWjbV4UNudicnMxiiahK4VAwaaFEqhUAoeeyoIXsSTd0WjHmzagHpRD1KFHnKr + 0UANWJMWiqBFaWOpFNSDePWol8Lzzeisu3vUw7fz3v+/98/uagBwKxzN0bPO1wcJc9yu2TlMmP2HySeD + ds0q/r2IvdkzQ/C7ncHfeDRvHxLsJ8xUORqEcsSA/WRHBr7NVwhdmn9exr3bkSBscirZavXDr+7rkPJT + M7UdNtAjkq02DruxcJcVUKj2VpQ4/VAK+kCCQ99b/PCzO5rdSXYM/QhzKKJm+QYtlpoe1VgBikLQl1kz + KBSQNUZgHd9ko53DF6Zfapde8VMbr1Q7jgBBDkOWcVCCt37GINXnDPr1Y7j5rn3esazIGnQzi//CxelK + l2ndrHA0gkVOR5cY+Y+Am0VOcu55RzPHaWoeBxVzVzg1moeTc2fAVCigTTMyOh0goJgSJ6OrM4ymZW2H + kfxMs7/KCsi0MO+7gA4uisOPQ3eEn2YkM+ny05zGrADBpNHUO4bpY34d8Nw463kllxXjAfJeesgE980e + P49LX/Nokjo8at/qDSMDtDFfU+kxsY+g3inAWvSsT29Y6KcPl7CuRx7IAPHAIQ8iv0mKmlaNfa0d1O7b + /HuoeWStxJsB2gW8qh8AcaOVUQAAAABJRU5ErkJggg== - iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK6QAA - CukB/XXO0wAACRhJREFUaEPtWAlsVNcVNZglcXFYAgWaBrqg1GmjKChNCykhkUlQq6hNF6WtglKB6BY1 - idICNgZjm9jjDS9je7yN9w0v49k8Y3vGY7yNd48XsFo1TWlQC21T0kRRrCROSF/P+cx3xuPZPGAkpEg+ - +v+9d985577tv3GIECLkdsZtbZ4D/1kC3pbf5MTENy+cP686PzUVj/dNS7VMl2QGYDpyanLyGowLAuXp - 6QsX1i9FEkEnMDI8fD/MPesYG/2Ku7GJ8fHqsZERgRgJjtFRMTU19d2FcY69E+OOn/b29W0INrmgEhgd - GfktTF4DBPA+Evm5q4HhwcGa4aFBIWNocJCJ/MQ1Bn3KnP3FuMNxBTEPBJPEohNwOBwbx0ZHPxgcGBD9 - drsY6O8XKL8zOTH5NRqA0R1oe5P1rhgeGuowm1pXMWZiYuIwZ4b9CbSRw3hrEhgb207Rvt7eOdj7+qQk - MJKWsdGxd+1989sZy4TR/meMeg8Nu/bnOzj7b0kC5ycnl/V0dzcBQkZ3V5fo7emRTNIMy67tfGedPGPu - bT1dXZ+g/+FbkgBFus6d+0FXZ6dwxzmbTZzrtC2ol+PYxpiFfW3v2CztoUuSQIvBuN1mte6qP3t2tSzQ - abO9YLN1CFvHzUGnrWPGarXcI/NDb1uHxbKrobb2Ln9J+dzEMPgSNuLMEJYGNt2fBgYGojHV8fa+3net - 7e3CarF4RYfFKjqsTviIs4CHAzFgt1/AUooaGRpS4hSTNPv7+i62mc0P+UrCawJWq3Ur1vP/SN7W2ioZ - tff2QahfMtZqNkv1rmhva5PKppYWYdDrhV6nk2A0GITZZBLtaCPc+5ELy1I6tbhXZB7WYcAGzWbTcm9J - eE3A3tu7s72tVbQYKd4CU0bpneA76+bDJJnVajSiWaOZ1Gm1JUgiBnUJKNcDb2ibm68nYzYt6O/KL/Oa - jEYO3FvY/GGLTkDX3Hyn0aD/GyCMME1h6Sm/swwwIY42DAoYtGKkH/Mk9vpfXruzxWg8gLjX5UTcuRby - 64XBoM8PagmxU4vB8HW9Tjug12qFAaPrCWzTNDUhMWOcvw3HdsfY2HrMSmsz+njjZD15oZ2HmfQ6+gFd - p23dHaHaZs0Yl4YnaJoaub6TAjHvErMCSQxoGhs9clJH16xJD4QzoKsECNObGhuEOxobGoROpxsORMg9 - Bh+9L2MWZjzxsg5L+PuB8PpNoLGx4T58Ay411J8V7mjCCOK0ejoQIU8x2BOFDfX1C3ihh7r6FpPBuNYf - t8cE6uvqIutqasx1tTVdwAwg6mpr5+EsytiQf/9odnbuA+dPzL0dR/ReDoIn/ut6NVeATnipxeBt88S/ - IIHa6uqI6qrK2ZrqKuELtTU1PH3aFmvaNX56enpjs6bpbX9azvZxk9m0wl3PUwJHKivKRVVFhVdUlpcL - JIoj1Fh+Iwmg7yok8EZ1ZaVPPdlLTVXVg34TgLlnykpKRHlpqVewnaI4OhtvJIH/XL26BkfwlYqyMu96 - ZXM+ZrBsN/pNoKxSHVqqVpeWFBeLEjWhFijPA9soqtNpJ28kAfyOiMAe+NiTBjUlffooLn6vtET9fEB7 - QA5Sq4siKsrLHlEXFymKiwo/AcQcCguFGmWIf4hL3n3BJmGxtL/IvVRUWPApN3XAD61/wPRzmO37kchW - bxp+j1F2hEBdYb5KFBbkzyFflSeqsIxwEcsLMoFlOAT+yFEucOMugA4G7teB8AaUQIFKVaLKyxXuyFep - OAsf4bK1OxAx1xhc0uI4+nm5OQt4qVNUUHAwEE6/CeTl5PwqV6mcBYQ7crKzpOnGteBfdrv9G4EIMgY/ - iA7yK07zucrsBbzUycnOvgTtPf44fSYAgyplVqZQZmV5BhLIyjgjrV+tVvtfm832nC/By5cvr8FdP5lf - XxXMZ2dmCCU4vPFnQxsxPjm9JpCnVH4p80y6yIRBfziTniYwWgJfTH7chi3tlle6u7t3459Z2/BPrR34 - 4u7Dj5gU3Cwv8RuTBePs44+X7VkZGRdzc3JWLnoT5+UoI9LTUsWZAJGekiLSU1MwsrmiHEcsrwK403yA - awm+6tXSMczRTktJluIC5UWi/y4tKblj8Qkoc0JTFIqu1GSFSE1OBvBMSf4rcIllGknjUwbKrE9RJInk - pESRgvg0JEXM1Smuc3nuK/G/Bp1/XtcjlwI8Sb/3tSx97oGE+Lg1IDkFQ5Ug/xmJsrKyViYnJVXRJJ5+ - wBj/cYrExI+R8C/In5GWFg7NowpoJisUkmbQCXjriBGNTHr1tLhZSDyd8LY/o4teQr4ITyfEHz0dHydu - Ij7ELDwcTBJ+vwPupBj9dfGnYt8EhCvipPIpERc7v16OYb3c5ikGdYZbkgCMbo89eUKcckHsiRgRezIm - Eet9bxxe8HfNtZ3v6PMWkvnRqwnxD+Fdzz6uMSdjjgf103TRM/De7PshMdFR+hPHowUREy09512rYcYs - t8tPJBYtj7AqO3Ml6i9+yhEl0OeFJZmB0JCQEBcsQzHkeNSx8KijR9JhvgtPxeFDh8JQvZyhNIG6KsQI - CceOimgA78+yDVxSTGxMzA7Ulx+Pjmo9duQPv3G2LUM7MafpLylpBpwdVuB5B/A5YC2wHtgIfB7YAmwF - 7gHuBf9WIBzYDKwF7kX9V4nloaF3//LQwVSaRiKSeT6/t3//0+wnx+F9C7AO2OTkIscXnRqMoya16YFe - 6Ine6JFeJe9yAqxYB2wDIoAHgYeBbwO7gT3AXuBx4AkgEsMdCQ4+n0SZeArYz/LqVaueeP7AAf0rL790 - 9eUXf3f5xz98JgOxe9AmxThjn0R5HzlQ3kdOJzc1qEVNatMDvdATvdEjvUq/j+UEQlGxBtgMbAd2OIMf - cHbc6SR5BM9vAbuc5BR4FPiOExR9DKYeBXZ+Ycvmp8LDwh7nO8yyTYYcz77kIMhJbmrQMDVpmh5onJ7o - jR7pVVqKc5sYFVxKy9kArARWA5yuMIBTFw7cBXAqOQKc1g1O3I0nweneRMAwl8YGgPVcClK9M0aOl/uT - i5zkpga1qElteqAXeqI3epzzvehTyH1TkcyVUC57e8r93fv526w39UscrNhS9LvhGVgKU4vhvO0T+D/1 - 7uD50DWEQQAAAABJRU5ErkJggg== + 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 + AABJRU5ErkJggg== diff --git a/Ember Media Manager/frmMain.vb b/Ember Media Manager/frmMain.vb index 8ed520d..5859ae3 100644 --- a/Ember Media Manager/frmMain.vb +++ b/Ember Media Manager/frmMain.vb @@ -25,12 +25,15 @@ Imports System.Linq Imports System.Reflection Imports System.Text.RegularExpressions Imports EmberAPI +Imports RestSharp +Imports WatTmdb + Public Class frmMain #Region "Fields" Private fLoading As New frmSplash - + 'Private aaa As New V3.Tmdb("aa") Friend WithEvents bwCleanDB As New System.ComponentModel.BackgroundWorker Friend WithEvents bwDownloadPic As New System.ComponentModel.BackgroundWorker Friend WithEvents bwLoadEpInfo As New System.ComponentModel.BackgroundWorker @@ -73,7 +76,7 @@ Public Class frmMain Private ReportDownloadPercent As Boolean = False Private ScrapeList As New List(Of DataRow) Private ScraperDone As Boolean = False - Private sHTTP As New HTTP + Private sHTTP As New EmberAPI.HTTP Private tmpLang As String = String.Empty Private tmpTitle As String = String.Empty Private tmpTVDB As String = String.Empty @@ -668,11 +671,13 @@ Public Class frmMain If Me.btnSortDate.Tag.ToString = "DESC" Then Me.btnSortDate.Tag = "ASC" Me.btnSortDate.Image = My.Resources.desc - Me.dgvMediaList.Sort(Me.dgvMediaList.Columns(0), ComponentModel.ListSortDirection.Descending) + 'cotocus 201303 Wrong Column! DateAdd column is 48 instead of 0 (ID)! + Me.dgvMediaList.Sort(Me.dgvMediaList.Columns(48), ComponentModel.ListSortDirection.Descending) Else Me.btnSortDate.Tag = "DESC" Me.btnSortDate.Image = My.Resources.asc - Me.dgvMediaList.Sort(Me.dgvMediaList.Columns(0), ComponentModel.ListSortDirection.Ascending) + 'cotocus 201303 Wrong Column! DateAdd column is 48 instead of 0 (ID)! + Me.dgvMediaList.Sort(Me.dgvMediaList.Columns(48), ComponentModel.ListSortDirection.Ascending) End If End If End Sub @@ -867,9 +872,9 @@ Public Class frmMain If Not IsNothing(Me.MainFanart.Image) Then If String.IsNullOrEmpty(Master.currShow.Filename) Then - Me.MainFanart.Image = ImageUtils.AddMissingStamp(Me.MainFanart.Image) + Me.MainFanart = ImageUtils.AddMissingStamp(Me.MainFanart) ElseIf NeedsGS Then - Me.MainFanart.Image = ImageUtils.GrayScale(Me.MainFanart.Image) + Me.MainFanart = ImageUtils.GrayScale(Me.MainFanart) End If End If End If @@ -995,7 +1000,7 @@ Public Class frmMain Me.MainFanart.FromFile(Master.currShow.SeasonFanartPath) Else Me.MainFanart.FromFile(Master.currShow.ShowFanartPath) - If Not IsNothing(Me.MainFanart.Image) Then Me.MainFanart.Image = ImageUtils.GrayScale(Me.MainFanart.Image) + If Not IsNothing(Me.MainFanart.Image) Then Me.MainFanart = ImageUtils.GrayScale(Me.MainFanart) End If End If @@ -1227,6 +1232,11 @@ Public Class frmMain ModulesManager.Instance.RunGeneric(Enums.ModuleEventType.MovieScraperRDYtoSave, Nothing, DBScrapeMovie) + Dim currentDB As Structures.DBMovie = Master.DB.LoadMovieFromDB(Convert.ToInt64(dRow.Item(0))) + If Not DBScrapeMovie.Filename = currentDB.Filename Then + DBScrapeMovie = Master.DB.LoadMovieFromDB(Convert.ToInt64(dRow.Item(0))) ' reload the DB if a module has changed the entries (renamer e.g.) + End If + If Master.GlobalScrapeMod.Extra Then If Master.eSettings.AutoThumbs > 0 AndAlso DBScrapeMovie.isSingle Then Dim params As New List(Of Object)(New Object() {DBScrapeMovie, Master.eSettings.AutoThumbs, False, ""}) @@ -3037,14 +3047,13 @@ doCancel: Private Sub dgvMediaList_CellPainting(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellPaintingEventArgs) Handles dgvMediaList.CellPainting Try - If Master.isWindows AndAlso e.RowIndex >= 0 AndAlso Not Me.dgvMediaList.Item(e.ColumnIndex, e.RowIndex).Displayed Then e.Handled = True Return End If 'icons - If e.ColumnIndex >= 4 AndAlso e.ColumnIndex <= 9 AndAlso e.RowIndex = -1 Then + If e.ColumnIndex >= 4 AndAlso e.ColumnIndex <= 34 AndAlso e.RowIndex = -1 Then e.PaintBackground(e.ClipBounds, False) Dim pt As Point = e.CellBounds.Location @@ -3052,18 +3061,23 @@ doCancel: pt.X += offset pt.Y = 3 - Me.ilColumnIcons.Draw(e.Graphics, pt, e.ColumnIndex - 4) + If e.ColumnIndex = 34 Then + Me.ilColumnIcons.Draw(e.Graphics, pt, e.ColumnIndex - 26) + Else + Me.ilColumnIcons.Draw(e.Graphics, pt, e.ColumnIndex - 4) + End If e.Handled = True End If + 'text If e.ColumnIndex = 3 AndAlso e.RowIndex >= 0 Then - If Convert.ToBoolean(Me.dgvMediaList.Item(11, e.RowIndex).Value) Then + If Convert.ToBoolean(Me.dgvMediaList.Item(11, e.RowIndex).Value) Then 'is marked e.CellStyle.ForeColor = Color.Crimson e.CellStyle.Font = New Font("Segoe UI", 9, FontStyle.Bold) e.CellStyle.SelectionForeColor = Color.Crimson - ElseIf Convert.ToBoolean(Me.dgvMediaList.Item(10, e.RowIndex).Value) Then + ElseIf Convert.ToBoolean(Me.dgvMediaList.Item(10, e.RowIndex).Value) Then 'is new e.CellStyle.ForeColor = Color.Green e.CellStyle.Font = New Font("Segoe UI", 9, FontStyle.Bold) e.CellStyle.SelectionForeColor = Color.Green @@ -3074,11 +3088,11 @@ doCancel: End If End If - If e.ColumnIndex >= 3 AndAlso e.ColumnIndex <= 9 AndAlso e.RowIndex >= 0 Then - If Convert.ToBoolean(Me.dgvMediaList.Item(14, e.RowIndex).Value) Then + If e.ColumnIndex >= 3 AndAlso e.ColumnIndex <= 34 AndAlso e.RowIndex >= 0 Then + If Convert.ToBoolean(Me.dgvMediaList.Item(14, e.RowIndex).Value) Then 'is locked e.CellStyle.BackColor = Color.LightSteelBlue e.CellStyle.SelectionBackColor = Color.DarkTurquoise - ElseIf Convert.ToBoolean(Me.dgvMediaList.Item(43, e.RowIndex).Value) Then + ElseIf Convert.ToBoolean(Me.dgvMediaList.Item(44, e.RowIndex).Value) Then 'title is out of tolerance e.CellStyle.BackColor = Color.MistyRose e.CellStyle.SelectionBackColor = Color.DarkMagenta Else @@ -3086,7 +3100,7 @@ doCancel: e.CellStyle.SelectionBackColor = Color.FromKnownColor(KnownColor.Highlight) End If - If e.ColumnIndex >= 4 AndAlso e.ColumnIndex <= 9 Then + If e.ColumnIndex >= 4 AndAlso e.ColumnIndex <= 34 Then e.PaintBackground(e.ClipBounds, True) Dim pt As Point = e.CellBounds.Location @@ -3344,7 +3358,7 @@ doCancel: End If 'icons - If e.ColumnIndex >= 4 AndAlso e.ColumnIndex <= 6 AndAlso e.RowIndex = -1 Then + If e.ColumnIndex >= 4 AndAlso e.ColumnIndex <= 24 AndAlso e.RowIndex = -1 Then e.PaintBackground(e.ClipBounds, False) Dim pt As Point = e.CellBounds.Location @@ -3353,7 +3367,11 @@ doCancel: pt.X += offset pt.Y = 1 - Me.ilColumnIcons.Draw(e.Graphics, pt, e.ColumnIndex - 4) + If e.ColumnIndex = 24 Then + Me.ilColumnIcons.Draw(e.Graphics, pt, e.ColumnIndex - 16) + Else + Me.ilColumnIcons.Draw(e.Graphics, pt, e.ColumnIndex - 4) + End If e.Handled = True End If @@ -3378,7 +3396,7 @@ doCancel: End If End If - If e.ColumnIndex >= 2 AndAlso e.ColumnIndex <= 6 AndAlso e.RowIndex >= 0 Then + If e.ColumnIndex >= 2 AndAlso e.ColumnIndex <= 24 AndAlso e.RowIndex >= 0 Then If Convert.ToBoolean(Me.dgvTVEpisodes.Item(22, e.RowIndex).Value) Then e.CellStyle.BackColor = Color.White @@ -3391,7 +3409,7 @@ doCancel: e.CellStyle.SelectionBackColor = Color.FromKnownColor(KnownColor.Highlight) End If - If e.ColumnIndex >= 4 AndAlso e.ColumnIndex <= 6 Then + If e.ColumnIndex >= 4 AndAlso e.ColumnIndex <= 24 Then e.PaintBackground(e.ClipBounds, True) Dim pt As Point = e.CellBounds.Location @@ -4134,11 +4152,11 @@ doCancel: Private Sub DonateToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DonateToolStripMenuItem.Click If Master.isWindows Then - Process.Start("https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=G4WN5KRET4K48") + Process.Start("https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=VWVJCUV3KAUX2&lc=CH&item_name=Ember%2dTeam%3a%20DanCooper%2c%20m%2esavazzi%20%26%20Cocotus¤cy_code=USD&bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted") Else Using Explorer As New Process Explorer.StartInfo.FileName = "xdg-open" - Explorer.StartInfo.Arguments = "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=G4WN5KRET4K48" + Explorer.StartInfo.Arguments = "https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=VWVJCUV3KAUX2&lc=CH&item_name=Ember%2dTeam%3a%20DanCooper%2c%20m%2esavazzi%20%26%20Cocotus¤cy_code=USD&bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted" Explorer.Start() End Using End If @@ -4162,7 +4180,7 @@ doCancel: ElseIf FileUtils.Common.isBDRip(drvRow.Cells(1).Value.ToString) Then pTitle = Directory.GetParent(Directory.GetParent(Directory.GetParent(drvRow.Cells(1).Value.ToString).FullName).FullName).Name Else - If Convert.ToBoolean(drvRow.Cells(42).Value) AndAlso Convert.ToBoolean(drvRow.Cells(2).Value) Then + If Convert.ToBoolean(drvRow.Cells(43).FormattedValue) AndAlso Convert.ToBoolean(drvRow.Cells(2).FormattedValue) Then pTitle = Directory.GetParent(drvRow.Cells(1).Value.ToString).Name Else pTitle = Path.GetFileNameWithoutExtension(drvRow.Cells(1).Value.ToString) @@ -4172,11 +4190,11 @@ doCancel: LevFail = StringUtils.ComputeLevenshtein(StringUtils.FilterName(drvRow.Cells(15).Value.ToString, False, True).ToLower, StringUtils.FilterName(pTitle, False, True).ToLower) > Master.eSettings.LevTolerance parOutOfTolerance.Value = LevFail - drvRow.Cells(43).Value = LevFail + drvRow.Cells(44).Value = LevFail parID.Value = drvRow.Cells(0).Value Else parOutOfTolerance.Value = False - drvRow.Cells(43).Value = False + drvRow.Cells(44).Value = False parID.Value = drvRow.Cells(0).Value End If SQLcommand.ExecuteNonQuery() @@ -4288,7 +4306,30 @@ doCancel: .dgvTVEpisodes.Columns(6).SortMode = DataGridViewColumnSortMode.Automatic .dgvTVEpisodes.Columns(6).Visible = Not Master.eSettings.EpisodeNfoCol .dgvTVEpisodes.Columns(6).ToolTipText = Master.eLang.GetString(150, "Nfo") - For i As Integer = 7 To .dgvTVEpisodes.Columns.Count - 1 + .dgvTVEpisodes.Columns(7).Visible = False + .dgvTVEpisodes.Columns(8).Visible = False + .dgvTVEpisodes.Columns(9).Visible = False + .dgvTVEpisodes.Columns(10).Visible = False + .dgvTVEpisodes.Columns(11).Visible = False + .dgvTVEpisodes.Columns(12).Visible = False + .dgvTVEpisodes.Columns(13).Visible = False + .dgvTVEpisodes.Columns(14).Visible = False + .dgvTVEpisodes.Columns(15).Visible = False + .dgvTVEpisodes.Columns(16).Visible = False + .dgvTVEpisodes.Columns(17).Visible = False + .dgvTVEpisodes.Columns(18).Visible = False + .dgvTVEpisodes.Columns(19).Visible = False + .dgvTVEpisodes.Columns(20).Visible = False + .dgvTVEpisodes.Columns(21).Visible = False + .dgvTVEpisodes.Columns(22).Visible = False + .dgvTVEpisodes.Columns(23).Visible = False + .dgvTVEpisodes.Columns(24).Width = 20 + .dgvTVEpisodes.Columns(24).Resizable = DataGridViewTriState.False + .dgvTVEpisodes.Columns(24).ReadOnly = True + .dgvTVEpisodes.Columns(24).SortMode = DataGridViewColumnSortMode.Automatic + .dgvTVEpisodes.Columns(24).Visible = Not Master.eSettings.EpisodeWatchedCol + .dgvTVEpisodes.Columns(24).ToolTipText = Master.eLang.GetString(883, "Watched") + For i As Integer = 25 To .dgvTVEpisodes.Columns.Count - 1 .dgvTVEpisodes.Columns(i).Visible = False Next @@ -4388,7 +4429,37 @@ doCancel: .dgvMediaList.Columns(9).SortMode = DataGridViewColumnSortMode.Automatic .dgvMediaList.Columns(9).Visible = Not Master.eSettings.MovieExtraCol .dgvMediaList.Columns(9).ToolTipText = Master.eLang.GetString(153, "Extrathumbs") - For i As Integer = 10 To .dgvMediaList.Columns.Count - 1 + .dgvMediaList.Columns(10).Visible = False + .dgvMediaList.Columns(11).Visible = False + .dgvMediaList.Columns(12).Visible = False + .dgvMediaList.Columns(13).Visible = False + .dgvMediaList.Columns(14).Visible = False + .dgvMediaList.Columns(15).Visible = False + .dgvMediaList.Columns(16).Visible = False + .dgvMediaList.Columns(17).Visible = False + .dgvMediaList.Columns(18).Visible = False + .dgvMediaList.Columns(19).Visible = False + .dgvMediaList.Columns(20).Visible = False + .dgvMediaList.Columns(21).Visible = False + .dgvMediaList.Columns(22).Visible = False + .dgvMediaList.Columns(23).Visible = False + .dgvMediaList.Columns(24).Visible = False + .dgvMediaList.Columns(25).Visible = False + .dgvMediaList.Columns(26).Visible = False + .dgvMediaList.Columns(27).Visible = False + .dgvMediaList.Columns(28).Visible = False + .dgvMediaList.Columns(29).Visible = False + .dgvMediaList.Columns(30).Visible = False + .dgvMediaList.Columns(31).Visible = False + .dgvMediaList.Columns(32).Visible = False + .dgvMediaList.Columns(33).Visible = False + .dgvMediaList.Columns(34).Width = 20 + .dgvMediaList.Columns(34).Resizable = DataGridViewTriState.False + .dgvMediaList.Columns(34).ReadOnly = True + .dgvMediaList.Columns(34).SortMode = DataGridViewColumnSortMode.Automatic + .dgvMediaList.Columns(34).Visible = Not Master.eSettings.MovieWatchedCol + .dgvMediaList.Columns(34).ToolTipText = Master.eLang.GetString(883, "Watched") + For i As Integer = 35 To .dgvMediaList.Columns.Count - 1 .dgvMediaList.Columns(i).Visible = False Next @@ -4545,7 +4616,7 @@ doCancel: End If If Not String.IsNullOrEmpty(Master.currShow.TVShow.Studio) Then - Me.pbStudio.Image = APIXML.GetStudioImage(Master.currShow.TVShow.Studio) + Me.pbStudio.Image = APIXML.GetStudioImage(Master.currShow.TVShow.Studio.ToLower) 'ByDef all images file a lower case Me.pbStudio.Tag = Master.currShow.TVShow.Studio Else Me.pbStudio.Image = APIXML.GetStudioImage("####") @@ -4894,9 +4965,11 @@ doCancel: End If If Not String.IsNullOrEmpty(Master.currShow.TVShow.Studio) Then - Me.pbStudio.Image = APIXML.GetStudioImage(Master.currShow.TVShow.Studio) + Me.pbStudio.Image = APIXML.GetStudioImage(Master.currShow.TVShow.Studio.ToLower) 'ByDef all images file a lower case + Me.pbStudio.Tag = Master.currShow.TVShow.Studio Else Me.pbStudio.Image = APIXML.GetStudioImage("####") + Me.pbStudio.Tag = String.Empty End If Me.pnlInfoIcons.Width = pbStudio.Width + 1 @@ -4992,6 +5065,7 @@ doCancel: Me.lblTitle.Text = Master.currShow.TVShow.Title End If + Me.lblOriginalTitle.Text = String.Empty Me.txtPlot.Text = Master.currShow.TVShow.Plot Me.lblRuntime.Text = String.Format(Master.eLang.GetString(645, "Premiered: {0}"), If(String.IsNullOrEmpty(Master.currShow.TVShow.Premiered), "?", Master.currShow.TVShow.Premiered)) @@ -5037,9 +5111,11 @@ doCancel: End If If Not String.IsNullOrEmpty(Master.currShow.TVShow.Studio) Then - Me.pbStudio.Image = APIXML.GetStudioImage(Master.currShow.TVShow.Studio) + Me.pbStudio.Image = APIXML.GetStudioImage(Master.currShow.TVShow.Studio.ToLower) 'ByDef all images file a lower case + Me.pbStudio.Tag = Master.currShow.TVShow.Studio Else Me.pbStudio.Image = APIXML.GetStudioImage("####") + Me.pbStudio.Tag = String.Empty End If Me.pnlInfoIcons.Width = pbStudio.Width + 1 @@ -5509,7 +5585,7 @@ doCancel: APIXML.CacheXMLs() 'fLoading.SetLoadingMesg("Loading database...") fLoading.SetLoadingMesg(Master.eLang.GetString(858, "Loading database...")) - If Master.DB.CheckEssentials() Then + If Master.DB.ConnectMediaDB() Then Me.LoadMedia(New Structures.Scans With {.Movies = True, .TV = True}) End If Master.DB.LoadMovieSourcesFromDB() @@ -5709,13 +5785,13 @@ doCancel: 'fLoading.SetLoadingMesg("Loading database...") fLoading.SetLoadingMesg(Master.eLang.GetString(858, "Loading database...")) If Master.eSettings.Version = String.Format("r{0}", My.Application.Info.Version.Revision) Then - If Master.DB.CheckEssentials() Then + If Master.DB.ConnectMediaDB() Then Me.LoadMedia(New Structures.Scans With {.Movies = True, .TV = True}) End If Me.FillList(0) Me.Visible = True Else - If Master.DB.CheckEssentials() Then + If Master.DB.ConnectMediaDB() Then Me.LoadMedia(New Structures.Scans With {.Movies = True, .TV = True}) End If If dlgWizard.ShowDialog = Windows.Forms.DialogResult.OK Then @@ -6423,11 +6499,13 @@ doCancel: End If End If Me.tslLoading.Text = Master.eLang.GetString(568, "Generating Actors Cache:") - If Master.GlobalScrapeMod.Actors AndAlso AdvancedSettings.GetBooleanSetting("ScrapeActorsThumbs", False) Then + If Master.GlobalScrapeMod.Actors AndAlso Master.eSettings.ScraperActorThumbs Then For Each act As MediaContainers.Person In Master.currMovie.Movie.Actors Dim img As New Images img.FromWeb(act.Thumb) - img.SaveAsActorThumb(act, Directory.GetParent(Master.currMovie.Filename).FullName) + If Not IsNothing(img.Image) Then + img.SaveAsActorThumb(act, Directory.GetParent(Master.currMovie.Filename).FullName, Master.currMovie) + End If Next End If @@ -6883,12 +6961,14 @@ doCancel: Me.Invoke(myDelegate, New Object() {dRow(0), 5, If(String.IsNullOrEmpty(eContainer.Fanart), False, True)}) Me.Invoke(myDelegate, New Object() {dRow(0), 6, If(String.IsNullOrEmpty(tmpShowDb.EpNfoPath), False, True)}) Me.Invoke(myDelegate, New Object() {dRow(0), 7, False}) + Me.Invoke(myDelegate, New Object() {dRow(0), 24, If(String.IsNullOrEmpty(tmpShowDb.TVEp.Playcount), False, True)}) Else DirectCast(dRow(0), DataRow).Item(3) = tmpShowDb.TVEp.Title DirectCast(dRow(0), DataRow).Item(4) = If(String.IsNullOrEmpty(eContainer.Poster), False, True) DirectCast(dRow(0), DataRow).Item(5) = If(String.IsNullOrEmpty(eContainer.Fanart), False, True) DirectCast(dRow(0), DataRow).Item(6) = If(String.IsNullOrEmpty(tmpShowDb.EpNfoPath), False, True) DirectCast(dRow(0), DataRow).Item(7) = False + DirectCast(dRow(0), DataRow).Item(24) = If(String.IsNullOrEmpty(tmpShowDb.TVEp.Playcount), False, True) End If End If @@ -6927,6 +7007,7 @@ doCancel: Dim hasTrailer As Boolean = False Dim hasSub As Boolean = False Dim hasExtra As Boolean = False + Dim hasWatched As Boolean = False Dim myDelegate As New MydtListUpdate(AddressOf dtListUpdate) @@ -7005,6 +7086,7 @@ doCancel: hasTrailer = Not String.IsNullOrEmpty(mContainer.Trailer) hasSub = Not String.IsNullOrEmpty(mContainer.Subs) hasExtra = Not String.IsNullOrEmpty(mContainer.Extra) + hasWatched = Not String.IsNullOrEmpty(tmpMovieDb.Movie.PlayCount) Dim dRow = From drvRow In dtMedia.Rows Where Convert.ToInt64(DirectCast(drvRow, DataRow).Item(0)) = ID Select drvRow @@ -7026,6 +7108,7 @@ doCancel: Me.Invoke(myDelegate, New Object() {dRow(0), 15, tmpMovieDb.Movie.Title}) Me.Invoke(myDelegate, New Object() {dRow(0), 47, tmpMovieDb.Movie.SortTitle}) Me.Invoke(myDelegate, New Object() {dRow(0), 27, tmpMovieDb.Movie.Genre}) + Me.Invoke(myDelegate, New Object() {dRow(0), 34, hasWatched}) Else selRow.Item(1) = tmpMovieDb.Filename selRow.Item(3) = tmpMovieDb.ListTitle @@ -7039,6 +7122,7 @@ doCancel: selRow.Item(15) = tmpMovieDb.Movie.Title selRow.Item(47) = tmpMovieDb.Movie.SortTitle selRow.Item(27) = tmpMovieDb.Movie.Genre + selRow.Item(34) = hasWatched End If End If 'Why on earth resave the movie if we just refreshed its data (causes issues with saving rescrapes_ @@ -7105,17 +7189,16 @@ doCancel: If Not IsNothing(dRow(0)) Then If Me.InvokeRequired Then Me.Invoke(myDelegate, New Object() {dRow(0), 3, If(String.IsNullOrEmpty(tmpSeasonDb.SeasonPosterPath), False, True)}) - If Master.eSettings.SeasonFanartEnabled Then - Me.Invoke(myDelegate, New Object() {dRow(0), 4, If(String.IsNullOrEmpty(tmpSeasonDb.SeasonFanartPath), False, True)}) - End If + Me.Invoke(myDelegate, New Object() {dRow(0), 4, If(String.IsNullOrEmpty(tmpSeasonDb.SeasonFanartPath), False, True)}) Me.Invoke(myDelegate, New Object() {dRow(0), 9, False}) Else DirectCast(dRow(0), DataRow).Item(3) = If(String.IsNullOrEmpty(tmpSeasonDb.SeasonPosterPath), False, True) - If Master.eSettings.SeasonFanartEnabled Then - DirectCast(dRow(0), DataRow).Item(4) = If(String.IsNullOrEmpty(tmpSeasonDb.SeasonFanartPath), False, True) - End If + DirectCast(dRow(0), DataRow).Item(4) = If(String.IsNullOrEmpty(tmpSeasonDb.SeasonFanartPath), False, True) DirectCast(dRow(0), DataRow).Item(9) = False End If + + Master.DB.SaveTVSeasonToDB(tmpSeasonDb, False, False) + End If If Not BatchMode Then @@ -7177,7 +7260,7 @@ doCancel: End If Dim sContainer As New Scanner.TVShowContainer With {.ShowPath = tmpShowDb.ShowPath} - fScanner.GetShowFolderContents(sContainer) + fScanner.GetShowFolderContents(sContainer, ID) tmpShowDb.ShowPosterPath = sContainer.Poster tmpShowDb.ShowFanartPath = sContainer.Fanart 'assume invalid nfo if no title @@ -7363,6 +7446,7 @@ doCancel: If(Master.eSettings.EpisodePosterCol, 0, 20) - _ If(Master.eSettings.EpisodeFanartCol, 0, 20) - _ If(Master.eSettings.EpisodeNfoCol, 0, 20) - _ + If(Master.eSettings.EpisodeWatchedCol, 0, 20) - _ If(Me.dgvTVEpisodes.DisplayRectangle.Height > Me.dgvTVEpisodes.ClientRectangle.Height, 0, SystemInformation.VerticalScrollBarWidth) End If @@ -8350,6 +8434,8 @@ doCancel: .cmnuRescrape.Text = Master.eLang.GetString(163, "(Re)Scrape Movie") .ScrapingToolStripMenuItem.Text = Master.eLang.GetString(164, "(Re)Scrape Selected Movies") .WikiStripMenuItem.Text = Master.eLang.GetString(869, "EmberMM.com &Wiki...") + .MoviesToolStripMenuItem.Text = Master.eLang.GetString(36, "Movies") + .TVShowsToolStripMenuItem.Text = Master.eLang.GetString(698, "TV Shows") Dim TT As ToolTip = New System.Windows.Forms.ToolTip(.components) .tsbAutoPilot.ToolTipText = Master.eLang.GetString(84, "Scrape/download data from the internet for multiple movies.") @@ -9019,4 +9105,53 @@ doCancel: tmrKeyBuffer.Enabled = False KeyBuffer = String.Empty End Sub + Private Sub MoviesToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles MoviesToolStripMenuItem.Click + Try + Dim table As New DataTable + Using SQLcommand As SQLite.SQLiteCommand = Master.DB.MediaDBConn.CreateCommand() + SQLcommand.CommandText = "Select * from Movies;" + Using SQLreader As SQLite.SQLiteDataReader = SQLcommand.ExecuteReader() + 'Load the SqlDataReader object to the DataTable object as follows. + table.Load(SQLreader) + End Using + End Using + + Dim saveFileDialog1 As New SaveFileDialog() + saveFileDialog1.FileName = "export_movies" + ".xml" + saveFileDialog1.Filter = "xml files (*.xml)|*.xml" + saveFileDialog1.FilterIndex = 2 + saveFileDialog1.RestoreDirectory = True + + If saveFileDialog1.ShowDialog() = DialogResult.OK Then + table.WriteXml(saveFileDialog1.FileName) + End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + Private Sub TVShowsToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles TVShowsToolStripMenuItem.Click + Try + Dim table As New DataTable + Using SQLcommand As SQLite.SQLiteCommand = Master.DB.MediaDBConn.CreateCommand() + SQLcommand.CommandText = "Select * from TVShows;" + Using SQLreader As SQLite.SQLiteDataReader = SQLcommand.ExecuteReader() + 'Load the SqlDataReader object to the DataTable object as follows. + table.Load(SQLreader) + End Using + End Using + + Dim saveFileDialog1 As New SaveFileDialog() + saveFileDialog1.FileName = "export_tvshows" + ".xml" + saveFileDialog1.Filter = "xml files (*.xml)|*.xml" + saveFileDialog1.FilterIndex = 2 + saveFileDialog1.RestoreDirectory = True + + If saveFileDialog1.ShowDialog() = DialogResult.OK Then + table.WriteXml(saveFileDialog1.FileName) + End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub End Class \ No newline at end of file diff --git a/Ember Media Manager/frmSplash.Designer.vb b/Ember Media Manager/frmSplash.Designer.vb index 81eb34b..d9de873 100644 --- a/Ember Media Manager/frmSplash.Designer.vb +++ b/Ember Media Manager/frmSplash.Designer.vb @@ -22,6 +22,7 @@ Partial Class frmSplash 'Do not modify it using the code editor. _ Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmSplash)) Me.LoadingBar = New System.Windows.Forms.ProgressBar() Me.VersionNumber = New System.Windows.Forms.Label() Me.LoadingMesg = New System.Windows.Forms.Label() @@ -68,6 +69,7 @@ Partial Class frmSplash Me.Controls.Add(Me.VersionNumber) Me.Controls.Add(Me.LoadingBar) Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) Me.MaximizeBox = False Me.MinimizeBox = False Me.Name = "frmSplash" diff --git a/Ember Media Manager/frmSplash.resx b/Ember Media Manager/frmSplash.resx index 7080a7d..8852370 100644 --- a/Ember Media Manager/frmSplash.resx +++ b/Ember Media Manager/frmSplash.resx @@ -117,4 +117,1087 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + AAABAAUAgIAAAAEAGAAoyAAAVgAAADAwAAABABgAqBwAAH7IAAAgIAAAAQAYAKgMAAAm5QAAGBgAAAEA + GABIBwAAzvEAABAQAAABABgAaAMAABb5AAAoAAAAgAAAAAABAAABABgAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfX19X19fREREMjIyKioq + LCwsNzc3TExMbGxsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZmZm + KSkpCAgIBQUFBwcHCQkJDQ0NDw8PEBAQERERExMTERERDQ0NCgoKCQkJERERPj4+AAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAdHR0JiYmBgYGBQUFCQkJDg4OFBQUGhoaICAgJiYmKSkpLCwsMDAwNTU1NTU1MDAw + KioqIyMjGhoaEhISCwsLDw8PQEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampqFBQUAwMDBwcHDQ0NFBQUGxsbIiIiKSoqMjIz + Ozs8Pj9AQUJDRUZISEpMTE1OUFFTU1NVT1BQS0tMREREOzs7Li4uICAgFBQUDQ0NMDAwAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHBwcAgICBwcH + Dg4OFRUVHBwcKioqOzs8TlBSWFpeX2FmZ2pvZmpwZ2txZ2xzaG50aG11am93bXF5aGxzbG91Z2ptYWJj + WVpaT09PQEBALS0tFxcXDAwMPT09AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAQkJCBAQEBAQECgoKERERGxsbMDEySktNWVtfYGNnYGNoYWVqYmdsZGhuZWpwZ2xyaG11 + aW93a3F5bHJ6bHN8bHJ8anB6aG94a3F5bXJ4bG9zZmdoWlpaRUVFKysrFhYWFBQUdnZ2AAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHR0dAQEBBQUFCwsLExMUKywtTE5RWl1gXF9jXF9j + XF9jW19jW15kWl5kW15kW19mXWFoXmNqYGVtY2lxZmx0aW94bHJ8bnV/bnWAbXR/aXF7Zm54Z253cXR6 + bW5vXV1dQkJCIiIiDAwMPT09AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMAQEBAwMD + CQkJHBwcREVHV1pdWVtfWFtfVlldVFdbUlVZUFNYT1JXT1JXTlFWSUxRREhNREhNRUpPSExTUVZdW2Bp + YGZwZmx3anJ9bnaCb3iEbXaCaXJ+ZW14aG53b3J3amtrUVFRLi4uERERJSUlAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAc3NzCAgIAAAAAQEBBwcHKissUVNWV1pdVlhcU1VZUFJWTU9TSk1RSUtQPD9DLC4xHB0f + Dg8QCgoLBwcIBgcHBgcHBwcICwsMEhMVIiQnOT1DUlhhZGx3a3OAb3iFcHmHbXaDZm98X2h0cHV9d3h6 + Xl9fNjY2EhISGxsbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdXV1BgYGAAAAAAAABwcHNjc5VFdZVVdaUlRYTlBU + Sk1QSEpOQ0VJLS4xEhMUBQUFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCAkKHB8i + QkdPY2x5bneGcXuKb3mIaHKBYGl3ZGx2eHt+YmJiNTU1ERERGRkZAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQkJAAAA + AAAACAkJPT5AVFdZU1VYT1FVSk1QRklMREZJLC4wDAwNAQEBAAAAAAAAAAAAAAAAAwMDBgYGCQkJCgoK + CgoKCQkJBwcHBAQEAAAAAAAAAAAAAAAAAgICFBYYRkxWanSDcXyMcHuLanSEYGl4YWl1en2AXV1dMjIy + EBAQISEhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAExMTAQEBAAAABwgIPj9CVFZZUlRXTU9SR0pNREZKOz1AExMUAQEBAAAAAAAA + AAAABQUFDg4OGBgYISEhJycnLCwsMDAwMTExMTExLi4uKSkpICAgExMTBwcHAAAAAAAAAAAAAgMDIiYr + Xmh2cXyOcX2OanWGX2l5XmdzdXh8VldXLS0tDQ0NMjIyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKioqBAQEAAAABQUFOTs9VFZZUlRXTE5R + RklMREZJMDEzBQYGAAAAAAAAAAAABgYGEhISHh4eKCgoMDAwP0BBW15ibHF3d3yEdHmAbnN5XmFlS0xN + QkJCOzs7MDAwHx8fCwsLAQEBAAAAAAAADQ4QT1hkcn6Qcn6QanaIXWh4W2Rxam1wT09PJSUlCgoKXV5e + AAAA2uv3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYGBg + BwcHAQEBAQEBMDEzVVhbU1VYTE9SRkhMQ0ZJKSotAAAAAAAAAAAAAwMDDg4OGxsbJCQkP0BCfoSMtL7M + z9zu0+D00+D10d/0zt3yytjuw9LnucjdnKe4eH+IVFZYQ0NDNDQ0HR0dBgYGAAAAAAAABAUGSE9ccoCT + coCUaXaIW2d3Vl9sYGFkQkJCGRkZCgoKAAAA2+z32er2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 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 + 0OP/z+L+zuH+zOH/y+D/yt/+yd7+yN7/xt3/xdz+xNz/w9v/wtr/wdr/wdn+vtX5tcvrprrXkqS9eISW + QEFBKioqCgoKAAAAQ0pUl6W7e4eYW2NwQkdPKSkqERERBAQEcHBwAAAAmMbljLjXhK/Kf6XAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAIyMjDQ0NAgICNzk8Z2tyZ2txXGBmUFNZHyAhDAwMAwMDAAAAMjU50N3w2Ob71+b71uX7 + 1eX71OT70+P70eP70OL7z+H7zuD7zeD7zN/7yt77yd77yN37x9z7xtv7xdv7xNr7w9n7wtn7wNj7v9f7 + vtf7v9f7wNj7v9b4utDxssblprnVm6zFVllePT09JCQkCAgIHB8jnKvBgo6gYWl3R0xVLS4vFBQUBAQE + TU1NAAAAmsnpibnaga7MeqTBgqW+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHh4eCgoKAwMDRklNaG1zZ2xzW19lSk1SGxwc + DAwMAQEBAAAAYWhxyNXoytjsydfsyNbsx9bsxtXsxdXsxNTsw9PswtPswNLsv9HsvtHsvdDsvM/su8/s + us7suc3suM3st8zstsvstcvstMrss8rss8rstMvstsvstsvrtMnoscXiq77aprjTe4WSWFtgT1JWOz5D + MDQ5laO3iJSmZm57SE1WLS4xFhYWBgYGKSkpAAAAotDuhrrdfq7Pd6TCcZu3orvMAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHR0d + CQkJBQYGTlJXaW92aG10W19mRUlNGhobCwsLAAAAAAAAe4OOsb3Osr7Qsb3QsL3Rr7zRrrzRrbvRrLrR + q7rRqrrQqbnQqLnRp7jRprfRpbfRpLbRpLbRorXRobTQoLTRn7PRnrPRnrLRn7PRoLPRoLTQobTQorXQ + orTPobPNoLHLn7DIna3Enq3EpbTLq7vTqrrQpLPIi5epaXF+SE5WLjAzFhYWBwcHExMTAAAAstnzgrrg + e67Rc6PEbZq4bpaxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAHx8fCgoKCAkJVlpganB3aG11Wl9mQkVKGhoaCgoKAAAAAAAAeYGO + jpinjpiojZiojZeojJeoi5aoipaoiZWoiZWoiJWoh5SohpSohZOohZOohJKog5KogpKogpGogZCogJCo + f5Cof4+ogI+ogZCogZGogpGogpKog5KohJKohJOnhZOnhpOniJWpkJ6ym6rAqbjPr7/VprTJjZiqaXJ/ + SU5XMTM3FRUVBwcHCAgIAAAAvd/2f7vjd6/UcaPGapq6ZZKwg6S6AAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 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 + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKioqDg4OAwMESE1UbnWA + dXyIbXWAWF5nMzQ1IiIiEBAQBAQEDg8PJygqOTo8REZISUtNSktOSUtOSUtOSUtOSUtOSUtOSUtOSUtO + SUtOSUtOSUtOSUtOSUtOSUtOSUtOSUtOSUtOSUtOSUtOSUtOSktOSktOSUtNSEpMR0hKRUZIQUFCODk6 + KCgpFBQUAgICAAAACAkKf4iVeoKOVVpjNztAGx0eCwsLAwMDIiIiAAAAn9f8ZrnwYrDkXabXWJzKU5K9 + T4qxSoKnR3uekK3CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAALy8vEhISAgICOz5EbXR/dX2JcnqHYml0PT5BKCgoERERAQEBLjI4nq3Cr7/Xtcbftsfi + tcfitMbis8bissXiscXisMTisMTirsPircPircLirsPir8PisMTisMTiscTissXis8bitMbitMfitsfi + tsjitsfgssPbp7bMk5+yeIKRXmVwTlRdMTM2FhYWAgICAAAAExQWjpelcHeDTFFZMjY6FxgZCQkJAgIC + Q0NDAAAAhsz7YbjyXa/mWabaVJzMUJPAS4q0SIKpRXugXIqoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 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 + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAueL+tuH+ + teH/teH/tOD+tOD+s+D+s9/+st/+sNz7r9v5rdj2q9b0qdTxptHvo87sn8vpnMjmmMXjlcLhkr/ej7zb + jLrZibfWhrTUhLPSgrHQga/Pf63OfazMe6rKeajJdqfHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAJJXxJJbyJJbyJJbyI5byIpbzIpbzSKj1AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA1u7+t+H/tuH+tuH+teH/teH/tOD+tOD/s9//st/+sN79rdv6qdj4ptX1 + o9Lzn8/wnMztmMnqlcbnksPkjsDii73fiLrdhbjagrXYf7PVfbDTe67ReKzPdarNc6jMcabKb6XJlrzX + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdrv1J5XxJpXxJZTwJJXxI5Tx + IpTxN57yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuuL/t+H+tuH/tuH/teD/ + s+D/sd//r97/rd7/q9z/qNv+pdn8otb5ntP3m9D0mM3xlMrvkcfrjsToi8Hmh77jhLvggbjefrbbfLPZ + ebHWdq7UdKzScarQb6fObabMaqTLdKnNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAW63yKZTwKJTwJpPwJJPvIpLwJpTwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAA2O//teH+tOD+st//sN/+rt3+q93+qdz+p9v+pdr+otn/oNj+ndb9m9T7l9H4lM71kcvy + jcjwisTsh8Hpg77ngLzkfbjhe7bfeLPcdbHacq7XcKzVbarTa6jRaKXPZqPNaKPMAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARKHwKpTuKZPvJpLvJJHvIZDuZrLzAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvOP/rt7/rN3/qtz/qNv+ptv/pNr/otn+ + n9j/ndf/m9b/mNX+ltT+k9L8kM/5jMv2icjzhsXwgsLtf7/qfLznebnldrbic7TfcbHdbq7aa6zYaarW + ZqfTZKXRYqPPYKHNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOpnvLJLu + KZLtJpDtI4/uL5XuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAArN3/ptv/pNr/otn+oNj/ntf/nNf+mtb/l9X/ldT/k9P/kNL+jtH/i8/9iMz6hMn3gcb0fsPxe8Du + eL3rdbrocrflb7TjbLHgaq/eZ6zbZKrYYqfWX6XUXaPSW6HQirvcAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAALpLsLZHtKpDtJY7sIozsbrTyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAotj/n9j/ndf/m9b/mdb/ltT/lNT/ktP/kNL/jdH/ + i9D/ic//hs7+g8z+gMn7fMb4ecP1dsDyc73vcLrsbbfpa7TmaLHjZa/hY6zeYKrbXafZW6TWWKLUVqDS + ZKfUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANpTrLZDrKY/rJYzrKY7rAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxOf/mtb/ + l9X/ltT/k9P/kdL/j9L/jdD/itD+iM/+hc7+g8z+gMz+fsr/e8n+eMf8dcT5csD2br3ya7rwabjtZrXq + Y7LnYK/kXqzhW6rfWafcVqTZVKLXUqDVU6DUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAASJ3tLY/qKY3qJIrqSZ7tAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAwOX/k9P/kNL/jtH/jND/itD/iM7/hc7/g83+gMv/fsv/e8r/eMn/ + dsf/c8b+b8P8bMH5ar72Z7vzZLfwYbXtXrLqXK/nWazkVqriVKffUaTcT6LZTZ/XSp3VlsXlAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVqPtLY3pKIvpIojohb3yAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxef/kNL/ic//h87/ + hc3/gsz/gMv/fsv+e8r/eMn/dsf/c8f/cMX/bcT/asL+Z8D9ZL76Yrr3X7j0XLXxWbLuV6/rVKzoUanl + T6fiTKTfSqHcSJ/aRp3YXqnbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcrHvLIvo + J4joJofnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAltT+gsz/f8v/fcr+e8r+ecn/dsj/dMf+ccb+bsT/a8P/aML+ZcH/Yr/+ + X739XLv6Wbj3V7X0VLLxUa/uT6zrTKroSqflR6TiRaHfQ5/dQZzaRZ7ZAAAAAAAAAAAAmcjoTp/VU6LW + AAAAAAAAAAAAAAAAAAAAAAAAAAAAK4nnJobmLovnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArN3/fsr/eMn/dsj/dMf+ + ccb/b8X/bMT+acL/ZsH+Y8D+YL/+Xb3/Wrz+V7v+VLj7UbX4T7L1TK/ySq3vR6rsRafpQqTmQKLjPp/g + PJ3dOprberrlAAAAAAAAPJjWMZHSL5DRL5DQaa7cAAAAAAAAAAAAAAAAAAAAKYblJITlN4/nAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAf8r/ccb/b8X/bcT/asP/Z8L/ZMD/Yb//Xr7/W73/WLv/Vbv/Urn/Trf+TLX8 + SbL5R7D2RK3zQqrwQKftPaTqO6HmOZ/kNp3hNJrePp3dAAAAgb7nLZPXK5HVKY/TKI7SJo3RWqfbAAAA + AAAAAAAAAAAALofkI4HjT5rpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAh8//asP+aML/ZcH/YsD+YL// + Xb7/Wrz+Vrv/U7r+ULj+Tbf/Srb/RrT+Q7L9QbD6P633PKr0OqjxOKXtNaLqM5/nMZ3kL5riLZjgNZve + LpbbKJLaJpDYJY/WI43UIYzTIIrSebnjAAAAAAAAAAAAXKDqIX/jZ6frAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAjNH/Y8D+YL//Xr7/W73+WLv/Vbv/Urr+Trj/S7f+SLX+RbT+QrP/PrH+O6/9Oa37N6r3 + NKf0MqXxMKLuLp/rLJ3oKprmKJjjJpbhJJTfIpLdIJDbH47ZHYzXHIvVGonUG4nTAAAAAAAAAAAAAAAA + H3zhbKnrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAh87/XL3/Wbz/Vrv/U7r/ULn+Tbf/Srb/ + RrX/RLT/QLL/PbH/ObD/Nq7+M63+Mar8Lqf4LKX1KqLyKJ/vJp3sJJrqIpjnIZbkHpTiHJLgG5DeGo7c + GIzaForYFYnXE4fVOZrbAAAAAAAAAAAAKH/ga6jqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAccX+Vbr+Urn+Trj/TLf/Sbb+RbT+QrP+P7L+PLD/OK/+Na7+Mqz/Lqv/K6n+Kaf8JqX5JKL2Ip/z + IJ3wHpvuHJjrG5boGZTmF5HjFY/hE43fEozdEYrbD4jZDYfYDIXWAAAAAAAAAAAAbqjqaqbpAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVrr+Tbf/Srb+R7X+RLT/QbP/PrH+OrD/N6//NK3+ + MKz/Lar/Kqn+Jqj+I6b/IKX9HqL6HJ/3Gp30GJrxFpjvFZbsE5TpEZHnD4/kDo3iDIvfC4neCYfcCIba + BoXZJZPdAAAAAAAAAAAAX57nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASLb/ + RrT+QrP/QLL/PLD/Oq//Nq7/M63/MKz/LKr/Kan/Jaj/Iqb+H6X/G6P/GKL+Fp/7FJ34Epr1EJjyDpbw + DZPtC5HqCo/oCIzlBovjBYnhA4ffAoXdAYPbAILZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAWbz/QbL+PrH+O7D/OK/+Na7+Ma3+L6v+LKr+KKn+Jqf/Iab+HqX+ + GqT+F6H+E6D+EJ7+Dp38DJr5Cpj2CJXzBpPwBZDuA47rAozoAYrmAIjjAIbhAITeAILbAIDZRqLiAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAntf/PLH/OrD/Nq7/NK3/ + MKz+Lqv/Kqr/J6j+JKf/Iab/HaT/GqP+FqL/E6D/D5//C53/CJz+BZr9BJf6ApX3AZL0AJDwAI7tAIvq + AInnAIfkAIThAILfAIDcAH/aCYHZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAOa//Na7/Mq3/MKz/LKr+Kan/Jqj/I6f+IKX/HaT/GaP/FqH/E6D+D5//C53+CJz+ + BZr+Apj+AJb8AJT5AJH1AI/yAIzuAIrrAIfoAIXlAIPiAIHgAH/cAH3aAXvYAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASLX/Maz/Lqv/K6r/KKn/Jaj/Iqf/H6X/ + HKT/GaP/FqH/E6D+EJ7+DZ3+C5v9CZr9B5j8BJb7ApT7AJL5AJD3AI3zAIrvAIjsAIboAIPmAIHjAH/g + AH3dAHvaAHnYWKbkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + W73+LKr+Kqn/J6j/JKf/Iab/HqX+HqT+Mqz+ULj+ccX9d8f9V7n8Lqf7Dpn7C5f6CZX5B5T5BZL4ApD3 + AY72AIz0AInwAIftAIXqAILnAIDkAH3gAHvdAHnaAHfYHIXbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAV7z/KKn/Jaf+I6b+IaX+Jqf+Wrv9AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAH5z4DJP3CpH2CI/1BY31A4v0AYnzAIfxAITtAILqAIDnAH7kAHvhAHneAHfbAHXYCnnX + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7H+Jab9JKX9JaX8 + WLn8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH5f1DI/0Co3zB4vyBYjxA4fxAYXwAILu + AIDqAH7nAHvkAHngAHfdAHXaAHPYBHPWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAKKX8JaP7OKr7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAEY3xDIrxCojwB4bvBYTuAoLtAIDtAH7qAHznAHnkAHfhAHXdAHLaAHHYAG/VAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJ6L6Xrj6AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAV6zzDojuC4buCYTtB4LsBH/rAn3qAHzpAHrnAHfjAHXg + AHLdAHDaAG7XAG3Vd7DnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATrH5 + hcn6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE4bsDYPr + C4HqCX/qBn3pBHvoAnnnAHfmAHXjAHLgAHDdAG7ZAGzXAGrUXZ/iAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAQJvtD4DpDX7oCnznCHrmBnjmBHblAnTjAHLiAHDfAG3cAGzZAGnWAGfU + VZnhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdrXxEH7nDnzmDHrkCnfkCHXj + BXPiA3HhAW/gAG3fAGvbAGjYAGfVAGXTVZfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAEnvkEHnjDXfjC3XiCXPhB3HgBW7fA2zeAGrdAGjaAGbYAGTVAGLSVZXgAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE3jiEXbhD3TgDXLfC3DeCW7dB2zcBGrcAmfa + AGbZAGPXAGHUAF/SYJrhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFXbg + EnPfEHHdDm/dDG7cCmvbCGnaBmfZBGXYAWPXAGDWAF7TAF3RdKXkAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAFnPdE3HcEW/cEG3aDmvZDGnZCmbYCGTXBWLWA2DVAV3UAFzSAFrQ + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFnDbFW7aEmzZEWrYD2jX + DWbWC2TWCWLVB1/TBF3TAlvRAFnQA1jOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAF23ZFWvYE2nXEmfWEGXVDmPUDGHTCl/SCF3RBlrQA1nQAVfPCVvPAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGGrWFmjVFGbVEmTUEWLTD2HSE2PSDF7RCVzR + B1rQBVnQA1jPE2PSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbZ/jGGfV + F2XTFWTTE2PTEmLSF2XTAAAAPH7aCl3QCFvQBlrQBFnQSYbcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAARYPcGWbTF2XTFmTTFGPTE2LSbZ7jAAAAZJjhC17RCVzQB1vQBVnQAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI23UGWfTGGbTFmXTFWTSLHTX + AAAAAAAAcKDkDF7RCl3RCFvRCVzQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAG2jTGWfUGGbTF2XTFmXSAAAAAAAAAAAAZZniDV/RC13RCVzRKnLWAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaJrhG2jTGWfUGGbTF2XTUIreAAAAAAAAAAAAYpfgDl/R + DF7RCl3Qe6jmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALHPXG2jTGWfU + GGbTJ2/WAAAAAAAAAAAAAAAAS4jdD2DRDV/RDF7RAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAG2jTG2jTGWbUGmfTh6/oAAAAAAAAAAAAAAAANXnYEGDSDV/RRYPbAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWZHfG2jTGmfUGWfUUYvdAAAAAAAAAAAA + AAAAAAAAKnLWEGHSDl/SAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + HmrUGmfUGWfUKHHWAAAAAAAAAAAAAAAAAAAAAAAAI23VEGHRMXfYAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAeqbmGmfUGWbUG2fUAAAAAAAAAAAAAAAAAAAAAAAAAAAAG2jTEGHR + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIWvUGWbTGWbUXZPgAAAA + AAAAAAAAAAAAAAAAAAAAAAAAEmLSNHnYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAha7nGGbUGGbUM3jZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWHSAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKnHWF2XTH2rUAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAZpriVY7eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhK7nFmXTFmXT + fqnmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAT4rdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAJW7WFWTTTordAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeKblE2PSLXTXAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + H2rUGWbTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAX5XgEmLRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFmTSZ5riAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAOXzZRYTbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgaznNXnXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOHvYAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAWZHfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////////////////////////////////////////////////////gD// + ////////////////+AAD/////////////////8AAAH////////////////8AAAAf///////////////+ + AAAAB///////////////+AAAAAH///////////////AAAAAA///////////////gAAAAAH////////// + ////gAAAAAA//////////////wAAAAAAH/////////////8AAAAAAA/////////////+AAAAAAAH//// + /////////AAAAAAAAv////////////gAAAAAAAJ////////////4AAAAAAABf///////////8AAAAAAA + AL////////////AAAAAAAACf///////////gAAAAAAAAT///////////4AAAAAAAAEf//////////8AA + AAAAAABj///////////AAAAAAAAAI///////////wAAAAAAAACH//////////4AAAAAAAAAw//////// + //+AAAAAAAAAEP//////////gAAAAAAAABB//////////4AAAAAAAAAQP/////////+AAAAAAAAAED// + ////////gAAAAAAAABAf/////////wAAAAAAAAAQH/////////8AAAAAAAAAGA//////////AAAAAAAA + ABgP/////////4AAAAAAAAAYB/////////+AAAAAAAAAEAf/////////gAAAAAAAABAD/////////4AA + AAAAAAAQA/////////+AAAAAAAAAEAP/////////gAAAAAAAADAB/////////cAAAAAAAAAwAf////// + //zAAAAAAAAAIAH////////8wAAAAAAAAGAB/////////GAAAAAAAABgAf////////xgAAAAAAAAQAH/ + ///////8IAAAAAAAAMAB/////////DAAAAAAAACAAf////////wYAAAAAAABgAH////////8GAAAAAAA + A4AB/////////AwAAAAAAAMAAf////////wOAAAAAAAGAAH////////8BgAAAAAADgAD/////////AMA + AAAAABwAA/////////wBgAAAAAA4AAf////////8AMAAAAAAeAAH/////////ABgAAAAAPAAD/////// + //wAOAAAAAHwAB/////////8ABwAAAAH4AA//////////AAPAAAAD8AAf/////////wAA8AAAD/AAf// + ///////+AAD4AAH/wAP//////////gAAPwAf/4AP//////////4AAA////+AH///////////AAAA//// + gD///////////wAAAAB//4B///////////8AAAAAP/8A////////////gAAAAD//Af///////////4AA + AAA//wH////////////AAAAAP/8D////////////4AAAAB//A/////////////AAAAAf/wf///////// + ///wAAAAH/8H////////////+AAAAA//B/////////////wAAAAP/w//////////////AAAADj+P//// + /////////4AAAAYPj//////////////gAAAEB4//////////////8AAAAAOP//////////////gAAAAD + z//////////////8AAAAAc///////////////gAAAAHP//////////////8AAAAA7/////////////// + gAAAAP///////////////4AAAAB///////////////+AAAAAf///////////////wAAAAH////////// + /////8AAAAA////////////////AAAAAP///////////////wH+AAD///////////////8H/wAA///// + ///////////H/+AAP///////////////z//gAB///////////////5//8AAf//////////////////AA + H//////////////////wAB//////////////////+AAf//////////////////gAH/////////////// + ///4AB//////////////////+AA///////////////////gAP//////////////////4AD////////// + ////////+AA///////////////////AQP//////////////////wEH//////////////////8DB///// + //////////////Bwf//////////////////gcH//////////////////4PD//////////////////+Dw + ///////////////////B8f//////////////////w/H//////////////////4fz//////////////// + //+H8///////////////////D/f//////////////////x/n//////////////////4f7/////////// + ///////+P////////////////////H////////////////////z////////////////////5//////// + ////////////+f////////////////////P////////////////////n////////////////////7/// + /////////////////9////////////////////////////////////////////////////////////// + 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 + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANq7+Lqv+Jaf+HaT+FKD+Cpz+BJf7AZHzAIrqAITjAH/c + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL6v+JKf+K6n+ + PrH+NKv8DZj6BpL3AY31AIbtAIDlAHrcEoDZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAMKj7AAAAAAAAAAAAAAAAAAAAFI/xBobvAIDsAHrlAHTcCnXXAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKZHs + C3/pBXnmAHTjAG7bF3bYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD3jiCXLgBGzeAGfZFm/WAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEnDcDWvZCGXXAl/U + DWPSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAFWnWEGTUDmHSBlrQC13QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM3fXF2XTIGvUQYHaCFzQAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKnHV + GWbTAAAAPn/aC13QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAHmrUNnnYAAAAJG7VGWbTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMnbXJG3VAAAAAAAAGmfTAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAMHXXAAAAAAAAAAAARYTbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO33ZMXbXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMnbXAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAASYbbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/////////////+Af////////gAf///////8AA////////gAB///////8 + AAD///////wAAH//////+AAAH//////4AAAf//////AAAA//////8AAAB//////wAAAn//////AAACP/ + ////8AAAA//////4AAAB/////+gAAAH/////4AAAQf/////kAAAB/////+AAAIH/////4gABA//////h + AAMH/////+DABg//////8DA+H//////wB/w///////AAfH//////+AB8///////8AHz///////4ALf// + /////wAF////////gAP////////AA////////+AD////////4AH////////vgf////////+B//////// + /8H/////////wf/////////B/////////4P/////////k/////////+T/////////zf/////////d/// + //////5//////////v/////////9////////////////////////////KAAAACAAAABAAAAAAQAYAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAACAgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8fHysrLEVHSlFUWFRXW0JERjExMQAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAACAgIBwcHUtNUEVISzAxNSotMDk8QltibGlwe0xNUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwcHUlLThwdHw0NDUNGSl5jakRH + TBYWFi4zOmdygUVHSgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAABISE01PUxcYGS0vMrrF1dro/tXl/s3f+aCvxTY4PCkuNWVwgCwtLQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADU3OTg6PRITFMjU + 5dno/tXl/tDi/svg/sXb/JKjvB8gIVljcjxARV1sdqXE2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAABgYGFRXXCEiJGlwetTj+c/g+cvd+cbb+cLY+b7V+bTK62dwfUFH + T1JYYh0dHYu31AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQk + 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 + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBr1AAAACFs1AAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAACpy1gAAAAAAABxp0wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADF2 + 2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADZ52AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/+////8B///8AP///AB///gAP//4AA//8A + AP//AAB//wAAf/8AAD/+AAA//gAAP/5ABD/+AAh//wAY//8A8f//AHP//4B3///AV///4Af///AP///w + D///94f///+H////h////4////+v////b////3////7/////////////KAAAABgAAAAwAAAAAQAYAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACoqKy0t + LQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABER + ETQ1N0tOUU9SWFxhaFhdYkBBQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAABgYGTw+QSQlJyEiJEVITTAyNSouM2Fpdjg6PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAADU3OR4fIGRpcdTh9tXl/snb93yHmCQnK1xmc05UWQAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4fH0pNUTAzN9jm+9Tl/s7h/sfd/rrR81RcZ05WYiss + L5W50gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAxM0VITUdMU4uWpoeTpoKRpn+O + poCPpniEloGNnSstMXimxW2ZtgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4wMlJXXhoc + H0FGTkBGTkBGTkFHTkBESyAiJDQ4PSMlJ2Okz1SMsgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAACstLmFpdC8yN7XK6MLa/sbc/snd+6CuwiUoLEFFSxQVFlCu7UCMvgAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAHyRnztASFZdaTQ6QomZsKCvx4KNnjE0OiUnKiwvMiRIYDOp+C+T1gAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKjS7kZNUUFJVWhxfzk8QSgpLCgqLEJFSTI0OAwQEiSi + 9x2k/huc8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK3Z96fO6UpTWiUoLENJUU9VXTs/ + RBkbHBEREQAAABed+xif/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALPf/q3Z96bP + 65CyyVFjcC47RQAAAAAAAAAAACOY9CWb9QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAALXg/qjb/pzU+4vH73q34Gyq0wAAAAAAAAAAAC6V7gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAJTT/oDL/nLF/WK481Sq41Ci2gAAAAAAADWR6QAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHDF/li7/ke0/jiq9i2d5yWS3CSP1wAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAESz/i+r/h2k/g2b + +QWO6wOE3gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + ADOr/QAAAAAAAA2S9gKG7wB64QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAp55AFt3R532AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFq2Adg0wAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1p1CBr1AAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACdv + 1QAAAB5q1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP/n/0H/Af9B/gD/Qf4Af0H8AD9B/AAfQfwAH0H8AB9B/AAfQfwAH0H8AT9B/A5/QfwO + /0H+Bv9B/wH/Qf+B/0H/sf9B//j/Qf/5/0H/+f9B//X/Qf///0H///9B////QSgAAAAQAAAAIAAAAAEA + GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmJyc/QUNERkgAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApKisuMDI/QkY7P0RTWWEAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAjJCUrLS+irLvV5f6/0u5ESlRKUFoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAA/QkU+QkejsMOcrMOWqMN/jKBgaHRWcoQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABER00vMjdtd4hs + eIlveYg6PkQ1OD1Bbo1RjLQAAAAAAAAAAAAAAAAAAAAAAAAAAABPWmJNVF5seYyrvdiJlacnKi4pKy47 + oOMzjcoAAAAAAAAAAAAAAAAAAAAAAAAAAACiyOM8QklUXGZGSlE8P0MsLjEVUnsaov4hn/MAAAAAAAAA + AAAAAAAAAAAAAAAAAACw3PqkzOdVaHUtNjwWGBkAAAAimvUinvgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACu3f6Y1P2Bw/BqrdoAAAAAAAAylu4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB5yP5avP5C + rfQ0neMmkNcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5r/4nqP4KlvYChOIAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAThesCc+EAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQZdQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAocNYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD8f6xB+D+sQfAfrEHwD6xB8AesQfAHrEHwB6xB8E+sQfDfrEH4P6xB/D+sQf8/ + rEH/v6xB/3+sQf//rEH//6xB + + \ No newline at end of file diff --git a/Ember Media Manager/packages.config b/Ember Media Manager/packages.config index 13c25e1..dfce825 100644 --- a/Ember Media Manager/packages.config +++ b/Ember Media Manager/packages.config @@ -1,5 +1,6 @@  + \ No newline at end of file diff --git a/EmberAPI/EmberAPI.vbproj b/EmberAPI/EmberAPI.vbproj index 0f46d98..78ea2f4 100644 --- a/EmberAPI/EmberAPI.vbproj +++ b/EmberAPI/EmberAPI.vbproj @@ -118,6 +118,12 @@ + + dlgCompatibility.vb + + + Form + dlgVersions.vb @@ -141,12 +147,14 @@ + + dlgCompatibility.vb + dlgVersions.vb VbMyResourcesResXFileCodeGenerator - Resources.Designer.vb My.Resources Designer diff --git a/EmberAPI/My Project/AssemblyInfo.vb b/EmberAPI/My Project/AssemblyInfo.vb index e7cecdd..14c7708 100644 --- a/EmberAPI/My Project/AssemblyInfo.vb +++ b/EmberAPI/My Project/AssemblyInfo.vb @@ -9,10 +9,10 @@ Imports System.Runtime.InteropServices ' Review the values of the assembly attributes - + - + @@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices ' by using the '*' as shown below: ' - - + + diff --git a/EmberAPI/Resources/MediaDatabaseSQL_v1.txt b/EmberAPI/Resources/MediaDatabaseSQL_v1.txt index 1b32d37..79d8870 100644 --- a/EmberAPI/Resources/MediaDatabaseSQL_v1.txt +++ b/EmberAPI/Resources/MediaDatabaseSQL_v1.txt @@ -37,7 +37,7 @@ CREATE TABLE Movies ( Director TEXT, Credits TEXT, Playcount TEXT, - Watched TEXT, + HasWatched BOOL, Trailer TEXT, PosterPath TEXT, FanartPath TEXT, @@ -72,6 +72,9 @@ CREATE TABLE MoviesVStreams( Video_AspectDisplayRatio TEXT, Video_Language TEXT, Video_LongLanguage TEXT, + Video_Bitrate TEXT, + Video_MultiView TEXT, + Video_EncodedSettings TEXT, PRIMARY KEY (MovieID,StreamID) ); @@ -82,6 +85,7 @@ CREATE TABLE MoviesAStreams( Audio_LongLanguage TEXT, Audio_Codec TEXT, Audio_Channel TEXT, + Audio_Bitrate TEXT, PRIMARY KEY (MovieID,StreamID) ); @@ -183,7 +187,9 @@ CREATE TABLE TVEps( FanartPath TEXT, NfoPath TEXT, NeedsSave BOOL NOT NULL DEFAULT False, - Missing BOOL NOT NULL DEFAULT False + Missing BOOL NOT NULL DEFAULT False, + Playcount TEXT, + HasWatched BOOL NOT NULL DEFAULT False ); CREATE TABLE TVShowActors( @@ -225,6 +231,9 @@ CREATE TABLE TVVStreams( Video_AspectDisplayRatio TEXT, Video_Language TEXT, Video_LongLanguage TEXT, + Video_Bitrate TEXT, + Video_MultiView TEXT, + Video_EncodedSettings TEXT, PRIMARY KEY (TVEpID,StreamID) ); @@ -235,6 +244,7 @@ CREATE TABLE TVAStreams( Audio_LongLanguage TEXT, Audio_Codec TEXT, Audio_Channel TEXT, + Audio_Bitrate TEXT, PRIMARY KEY (TVEpID,StreamID) ); diff --git a/EmberAPI/clsAPICommon.vb b/EmberAPI/clsAPICommon.vb index 86a9d54..f39ec10 100644 --- a/EmberAPI/clsAPICommon.vb +++ b/EmberAPI/clsAPICommon.vb @@ -681,42 +681,42 @@ Public Class Functions Public Shared Function CheckNeedUpdate() As Boolean Dim sHTTP As New HTTP Dim needUpdate As Boolean = False - Dim platform As String = "x86" - Dim updateXML As String = sHTTP.DownloadData(String.Format("http://pcjco.dommel.be/emm-r/{0}/versions.xml", If(IsBetaEnabled(), "updatesbeta", "updates"))) - sHTTP = Nothing - If updateXML.Length > 0 Then - For Each v As ModulesManager.VersionItem In ModulesManager.VersionList - Dim vl As ModulesManager.VersionItem = v - Dim n As String = String.Empty - Dim xmlUpdate As XDocument - Try - xmlUpdate = XDocument.Parse(updateXML) - Catch - Return False - End Try - Dim xUdpate = From xUp In xmlUpdate......... Where (xUp..Value <> "" AndAlso xUp..Value = vl.AssemblyFileName AndAlso xUp..Value = platform) Select xUp..Value - Try - If Convert.ToInt16(xUdpate(0)) > Convert.ToInt16(v.Version) Then - v.NeedUpdate = True - needUpdate = True - End If - Catch ex As Exception - End Try - Next - End If + 'Dim platform As String = "x86" + 'Dim updateXML As String = sHTTP.DownloadData(String.Format("http://pcjco.dommel.be/emm-r/{0}/versions.xml", If(IsBetaEnabled(), "updatesbeta", "updates"))) + 'sHTTP = Nothing + 'If updateXML.Length > 0 Then + ' For Each v As ModulesManager.VersionItem In ModulesManager.VersionList + ' Dim vl As ModulesManager.VersionItem = v + ' Dim n As String = String.Empty + ' Dim xmlUpdate As XDocument + ' Try + ' xmlUpdate = XDocument.Parse(updateXML) + ' Catch + ' Return False + ' End Try + ' Dim xUdpate = From xUp In xmlUpdate......... Where (xUp..Value <> "" AndAlso xUp..Value = vl.AssemblyFileName AndAlso xUp..Value = platform) Select xUp..Value + ' Try + ' If Convert.ToInt16(xUdpate(0)) > Convert.ToInt16(v.Version) Then + ' v.NeedUpdate = True + ' needUpdate = True + ' End If + ' Catch ex As Exception + ' End Try + ' Next + 'End If Return needUpdate End Function - Public Shared Function ConvertFromUnixTimestamp(ByVal timestamp As Double) As DateTime - Dim origin As DateTime = New DateTime(1970, 1, 1, 0, 0, 0, 0) - Return origin.AddSeconds(timestamp) - End Function + Public Shared Function ConvertFromUnixTimestamp(ByVal timestamp As Double) As DateTime + Dim origin As DateTime = New DateTime(1970, 1, 1, 0, 0, 0, 0) + Return origin.AddSeconds(timestamp) + End Function - Public Shared Function ConvertToUnixTimestamp(ByVal data As DateTime) As Double - Dim origin As DateTime = New DateTime(1970, 1, 1, 0, 0, 0, 0) - Dim diff As System.TimeSpan = data - origin - Return Math.Floor(diff.TotalSeconds) - End Function + Public Shared Function ConvertToUnixTimestamp(ByVal data As DateTime) As Double + Dim origin As DateTime = New DateTime(1970, 1, 1, 0, 0, 0, 0) + Dim diff As System.TimeSpan = data - origin + Return Math.Floor(diff.TotalSeconds) + End Function Public Shared Function LocksToOptions() As Structures.ScrapeOptions Dim options As New Structures.ScrapeOptions @@ -732,6 +732,11 @@ Public Class Functions .bPlot = Not Master.eSettings.LockPlot .bProducers = True .bRating = Not Master.eSettings.LockRating + .bLanguageV = Not Master.eSettings.LockLanguageV + .bLanguageA = Not Master.eSettings.LockLanguageA + .buseMPAAForFSK = Not Master.eSettings.UseMPAAForFSK + .bSubtitle = Not Master.eSettings.LockSubtitle + .bRelease = True .bRuntime = True .bStudio = Not Master.eSettings.LockStudio @@ -834,56 +839,56 @@ Public Class Functions ''' ''' Full path to extrathumbs directory ''' Last detected number of the discovered extrathumbs. - Public Shared Function GetExtraModifier(ByVal sPath As String) As Integer - Dim iMod As Integer = 0 - Dim lThumbs As New List(Of String) - - Try - If Directory.Exists(sPath) Then - - Try - lThumbs.AddRange(Directory.GetFiles(sPath, "thumb*.jpg")) - Catch - End Try - - If lThumbs.Count > 0 Then - Dim cur As Integer = 0 - For Each t As String In lThumbs - cur = Convert.ToInt32(Regex.Match(t, "(\d+).jpg").Groups(1).ToString) - iMod = Math.Max(iMod, cur) - Next - End If - End If - - Catch ex As Exception - Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") - End Try - - Return iMod - End Function - - Public Shared Function GetFFMpeg() As String - If Master.isWindows Then - Return String.Concat(Functions.AppPath, "Bin", Path.DirectorySeparatorChar, "ffmpeg.exe") - Else - Return "ffmpeg" - End If - End Function + Public Shared Function GetExtraModifier(ByVal sPath As String) As Integer + Dim iMod As Integer = 0 + Dim lThumbs As New List(Of String) + + Try + If Directory.Exists(sPath) Then + + Try + lThumbs.AddRange(Directory.GetFiles(sPath, "thumb*.jpg")) + Catch + End Try + + If lThumbs.Count > 0 Then + Dim cur As Integer = 0 + For Each t As String In lThumbs + cur = Convert.ToInt32(Regex.Match(t, "(\d+).jpg").Groups(1).ToString) + iMod = Math.Max(iMod, cur) + Next + End If + End If + + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + + Return iMod + End Function + + Public Shared Function GetFFMpeg() As String + If Master.isWindows Then + Return String.Concat(Functions.AppPath, "Bin", Path.DirectorySeparatorChar, "ffmpeg.exe") + Else + Return "ffmpeg" + End If + End Function ''' ''' Get a list of paths to all sources stored in the database ''' - Public Shared Sub GetListOfSources() - Master.SourcesList.Clear() - Using SQLcommand As SQLite.SQLiteCommand = Master.DB.MediaDBConn.CreateCommand() - SQLcommand.CommandText = "SELECT sources.Path FROM sources;" - Using SQLreader As SQLite.SQLiteDataReader = SQLcommand.ExecuteReader() - While SQLreader.Read - Master.SourcesList.Add(SQLreader("Path").ToString) - End While - End Using - End Using - End Sub + Public Shared Sub GetListOfSources() + Master.SourcesList.Clear() + Using SQLcommand As SQLite.SQLiteCommand = Master.DB.MediaDBConn.CreateCommand() + SQLcommand.CommandText = "SELECT sources.Path FROM sources;" + Using SQLreader As SQLite.SQLiteDataReader = SQLcommand.ExecuteReader() + While SQLreader.Read + Master.SourcesList.Add(SQLreader("Path").ToString) + End While + End Using + End Using + End Sub Public Shared Function GetSeasonDirectoryFromShowPath(ByVal ShowPath As String, ByVal iSeason As Integer) As String If Directory.Exists(ShowPath) Then @@ -907,13 +912,13 @@ Public Class Functions Return String.Empty End Function - Public Shared Function HasModifier() As Boolean - With Master.GlobalScrapeMod - If .Extra OrElse .Fanart OrElse .Meta OrElse .NFO OrElse .Poster OrElse .Trailer Then Return True - End With + Public Shared Function HasModifier() As Boolean + With Master.GlobalScrapeMod + If .Extra OrElse .Fanart OrElse .Meta OrElse .NFO OrElse .Poster OrElse .Trailer Then Return True + End With - Return False - End Function + Return False + End Function Public Shared Function IsSeasonDirectory(ByVal sPath As String) As Boolean For Each rShow As Settings.TVShowRegEx In Master.eSettings.TVShowRegexes.Where(Function(s) s.SeasonFromDirectory = True) @@ -929,14 +934,14 @@ Public Class Functions ''' List(of T) ''' Character or string to use as a value separator ''' String of separated values - Public Shared Function ListToStringWithSeparator(Of T)(ByVal source As IList(Of T), ByVal separator As String) As String - If source Is Nothing Then Throw New ArgumentNullException("Source parameter cannot be nothing") - If String.IsNullOrEmpty(separator) Then Throw New ArgumentException("Separator parameter cannot be nothing or empty") + Public Shared Function ListToStringWithSeparator(Of T)(ByVal source As IList(Of T), ByVal separator As String) As String + If source Is Nothing Then Throw New ArgumentNullException("Source parameter cannot be nothing") + If String.IsNullOrEmpty(separator) Then Throw New ArgumentException("Separator parameter cannot be nothing or empty") - Dim values As String() = source.Cast(Of Object)().Where(Function(n) n IsNot Nothing).Select(Function(s) s.ToString).ToArray + Dim values As String() = source.Cast(Of Object)().Where(Function(n) n IsNot Nothing).Select(Function(s) s.ToString).ToArray - Return String.Join(separator, values) - End Function + Return String.Join(separator, values) + End Function Public Shared Sub PNLDoubleBuffer(ByRef cPNL As Panel) Dim conType As Type = cPNL.GetType @@ -949,9 +954,9 @@ Public Class Functions ''' ''' Number to quantize ''' Multiple of constraint. - Public Shared Function Quantize(ByVal iNumber As Integer, ByVal iMultiple As Integer) As Integer - Return Convert.ToInt32(System.Math.Round(iNumber / iMultiple, 0) * iMultiple) - End Function + Public Shared Function Quantize(ByVal iNumber As Integer, ByVal iMultiple As Integer) As Integer + Return Convert.ToInt32(System.Math.Round(iNumber / iMultiple, 0) * iMultiple) + End Function Public Shared Function ReadStreamToEnd(ByVal rStream As Stream) As Byte() Dim StreamBuffer(4096) As Byte @@ -1181,7 +1186,7 @@ Public Class Structures #Region "Fields" - Dim CurrentImage As Image + Dim CurrentImage As Images Dim Ordering As Enums.Ordering Dim iEpisode As Integer Dim ImageType As Enums.TVImageType @@ -1233,6 +1238,10 @@ Public Class Structures Dim bPlot As Boolean Dim bProducers As Boolean Dim bRating As Boolean + Dim bLanguageV As Boolean + Dim bLanguageA As Boolean + Dim bSubtitle As Boolean + Dim buseMPAAForFSK As Boolean Dim bRelease As Boolean Dim bRuntime As Boolean Dim bStudio As Boolean diff --git a/EmberAPI/clsAPIDatabase.vb b/EmberAPI/clsAPIDatabase.vb index 45c5745..5e11f32 100644 --- a/EmberAPI/clsAPIDatabase.vb +++ b/EmberAPI/clsAPIDatabase.vb @@ -19,6 +19,7 @@ ' ################################################################################ Imports System +Imports System.Windows.Forms Imports System.IO Imports System.Xml.Serialization Imports System.Data.SQLite @@ -27,266 +28,417 @@ Public Class Database #Region "Fields" - ReadOnly _connStringTemplate As String = "Data Source=""{0}"";Version=3;Compress=True" - Protected _mediaDBConn As SQLiteConnection - ' NOTE: This will use another DB because: can grow alot, Don't want to stress Media DB with this stuff - Protected _jobsDBConn As SQLiteConnection + ReadOnly _connStringTemplate As String = "Data Source=""{0}"";Version=3;Compress=True" + Protected _mediaDBConn As SQLiteConnection + ' NOTE: This will use another DB because: can grow alot, Don't want to stress Media DB with this stuff + 'Protected _jobsDBConn As SQLiteConnection -#End Region 'Fields +#End Region 'Fields #Region "Properties" - Public ReadOnly Property MediaDBConn() As SQLiteConnection - Get - Return _mediaDBConn - End Get - End Property + Public ReadOnly Property MediaDBConn() As SQLiteConnection + Get + Return _mediaDBConn + End Get + End Property - 'Public ReadOnly Property JobsDBConn() As SQLiteConnection - ' Get - ' Return _jobsDBConn - ' End Get - 'End Property + 'Public ReadOnly Property JobsDBConn() As SQLiteConnection + ' Get + ' Return _jobsDBConn + ' End Get + 'End Property #End Region #Region "Methods" - ''' - ''' Iterates db entries to check if the paths to the movie files are valid. If not, remove all entries pertaining to the movie. - ''' - Public Sub Clean(ByVal CleanMovies As Boolean, ByVal CleanTV As Boolean, Optional ByVal source As String = "") - Dim fInfo As FileInfo - Dim tPath As String = String.Empty - Dim sPath As String = String.Empty - Try - Using SQLtransaction As SQLite.SQLiteTransaction = _mediaDBConn.BeginTransaction() - If CleanMovies Then - - Dim MoviePaths As List(Of String) = GetMoviePaths() - MoviePaths.Sort() - - 'get a listing of sources and their recursive properties - Dim SourceList As New List(Of SourceHolder) - Dim tSource As SourceHolder - - Using SQLcommand As SQLite.SQLiteCommand = _mediaDBConn.CreateCommand() - If source = String.Empty Then - SQLcommand.CommandText = "SELECT Path, Name, Recursive, Single FROM sources;" - Else - SQLcommand.CommandText = String.Format("SELECT Path, Name, Recursive, Single FROM sources WHERE Name=""{0}""", source) - End If - Using SQLreader As SQLite.SQLiteDataReader = SQLcommand.ExecuteReader() - While SQLreader.Read - SourceList.Add(New SourceHolder With {.Name = SQLreader("Name").ToString, .Path = SQLreader("Path").ToString, .Recursive = Convert.ToBoolean(SQLreader("Recursive")), .isSingle = Convert.ToBoolean(SQLreader("Single"))}) - End While - End Using - End Using - - Using SQLcommand As SQLite.SQLiteCommand = _mediaDBConn.CreateCommand() - If source = String.Empty Then - SQLcommand.CommandText = "SELECT MoviePath, Id, Source, Type FROM movies ORDER BY MoviePath DESC;" - Else - SQLcommand.CommandText = String.Format("SELECT MoviePath, Id, Source, Type FROM movies WHERE Source = ""{0}"" ORDER BY MoviePath DESC;", source) - End If - Using SQLReader As SQLite.SQLiteDataReader = SQLcommand.ExecuteReader() - While SQLReader.Read - If Not File.Exists(SQLReader("MoviePath").ToString) OrElse Not Master.eSettings.ValidExts.Contains(Path.GetExtension(SQLReader("MoviePath").ToString).ToLower) Then - MoviePaths.Remove(SQLReader("MoviePath").ToString) - Master.DB.DeleteFromDB(Convert.ToInt64(SQLReader("ID")), True) - ElseIf Master.eSettings.SkipLessThan > 0 Then - fInfo = New FileInfo(SQLReader("MoviePath").ToString) - If ((Not Master.eSettings.SkipStackSizeCheck OrElse Not StringUtils.IsStacked(fInfo.Name)) AndAlso fInfo.Length < Master.eSettings.SkipLessThan * 1048576) Then - MoviePaths.Remove(SQLReader("MoviePath").ToString) - Master.DB.DeleteFromDB(Convert.ToInt64(SQLReader("ID")), True) - End If - Else - tSource = SourceList.OrderByDescending(Function(s) s.Path).FirstOrDefault(Function(s) s.Name = SQLReader("Source").ToString) - If Not IsNothing(tSource) Then - If Directory.GetParent(Directory.GetParent(SQLReader("MoviePath").ToString).FullName).Name.ToLower = "bdmv" Then - tPath = Directory.GetParent(Directory.GetParent(SQLReader("MoviePath").ToString).FullName).FullName - Else - tPath = Directory.GetParent(SQLReader("MoviePath").ToString).FullName - End If - sPath = FileUtils.Common.GetDirectory(tPath).ToLower - If tSource.Recursive = False AndAlso tPath.Length > tSource.Path.Length AndAlso If(sPath = "video_ts" OrElse sPath = "bdmv", tPath.Substring(tSource.Path.Length).Trim(Path.DirectorySeparatorChar).Split(Path.DirectorySeparatorChar).Count > 2, tPath.Substring(tSource.Path.Length).Trim(Path.DirectorySeparatorChar).Split(Path.DirectorySeparatorChar).Count > 1) Then - MoviePaths.Remove(SQLReader("MoviePath").ToString) - Master.DB.DeleteFromDB(Convert.ToInt64(SQLReader("ID")), True) - ElseIf Not Convert.ToBoolean(SQLReader("Type")) AndAlso tSource.isSingle AndAlso Not MoviePaths.Where(Function(s) SQLReader("MoviePath").ToString.ToLower.StartsWith(tSource.Path.ToLower)).Count = 1 Then - MoviePaths.Remove(SQLReader("MoviePath").ToString) - Master.DB.DeleteFromDB(Convert.ToInt64(SQLReader("ID")), True) - End If - Else - 'orphaned - MoviePaths.Remove(SQLReader("MoviePath").ToString) - Master.DB.DeleteFromDB(Convert.ToInt64(SQLReader("ID")), True) - End If - End If - End While - End Using - End Using - End If - - If CleanTV Then - Using SQLcommand As SQLite.SQLiteCommand = _mediaDBConn.CreateCommand() - If String.IsNullOrEmpty(source) Then - SQLcommand.CommandText = "SELECT TVEpPath FROM TVEpPaths;" - Else - SQLcommand.CommandText = String.Format("SELECT TVEpPath FROM TVEpPaths INNER JOIN TVEps ON TVEpPaths.ID = TVEps.TVEpPathID WHERE TVEps.Source =""{0}"";", source) - End If - - Using SQLReader As SQLite.SQLiteDataReader = SQLcommand.ExecuteReader() - While SQLReader.Read - If Not File.Exists(SQLReader("TVEpPath").ToString) OrElse Not Master.eSettings.ValidExts.Contains(Path.GetExtension(SQLReader("TVEpPath").ToString).ToLower) Then - Master.DB.DeleteTVEpFromDBByPath(SQLReader("TVEpPath").ToString, False, True) - End If - End While + ''' + ''' Iterates db entries to check if the paths to the movie files are valid. If not, remove all entries pertaining to the movie. + ''' + Public Sub Clean(ByVal CleanMovies As Boolean, ByVal CleanTV As Boolean, Optional ByVal source As String = "") + Dim fInfo As FileInfo + Dim tPath As String = String.Empty + Dim sPath As String = String.Empty + Try + Using SQLtransaction As SQLite.SQLiteTransaction = _mediaDBConn.BeginTransaction() + If CleanMovies Then + + Dim MoviePaths As List(Of String) = GetMoviePaths() + MoviePaths.Sort() + + 'get a listing of sources and their recursive properties + Dim SourceList As New List(Of SourceHolder) + Dim tSource As SourceHolder + + Using SQLcommand As SQLite.SQLiteCommand = _mediaDBConn.CreateCommand() + If source = String.Empty Then + SQLcommand.CommandText = "SELECT Path, Name, Recursive, Single FROM sources;" + Else + SQLcommand.CommandText = String.Format("SELECT Path, Name, Recursive, Single FROM sources WHERE Name=""{0}""", source) + End If + Using SQLreader As SQLite.SQLiteDataReader = SQLcommand.ExecuteReader() + While SQLreader.Read + SourceList.Add(New SourceHolder With {.Name = SQLreader("Name").ToString, .Path = SQLreader("Path").ToString, .Recursive = Convert.ToBoolean(SQLreader("Recursive")), .isSingle = Convert.ToBoolean(SQLreader("Single"))}) + End While + End Using + End Using + + Using SQLcommand As SQLite.SQLiteCommand = _mediaDBConn.CreateCommand() + If source = String.Empty Then + SQLcommand.CommandText = "SELECT MoviePath, Id, Source, Type FROM movies ORDER BY MoviePath DESC;" + Else + SQLcommand.CommandText = String.Format("SELECT MoviePath, Id, Source, Type FROM movies WHERE Source = ""{0}"" ORDER BY MoviePath DESC;", source) + End If + Using SQLReader As SQLite.SQLiteDataReader = SQLcommand.ExecuteReader() + While SQLReader.Read + If Not File.Exists(SQLReader("MoviePath").ToString) OrElse Not Master.eSettings.ValidExts.Contains(Path.GetExtension(SQLReader("MoviePath").ToString).ToLower) Then + MoviePaths.Remove(SQLReader("MoviePath").ToString) + Master.DB.DeleteFromDB(Convert.ToInt64(SQLReader("ID")), True) + ElseIf Master.eSettings.SkipLessThan > 0 Then + fInfo = New FileInfo(SQLReader("MoviePath").ToString) + If ((Not Master.eSettings.SkipStackSizeCheck OrElse Not StringUtils.IsStacked(fInfo.Name)) AndAlso fInfo.Length < Master.eSettings.SkipLessThan * 1048576) Then + MoviePaths.Remove(SQLReader("MoviePath").ToString) + Master.DB.DeleteFromDB(Convert.ToInt64(SQLReader("ID")), True) + End If + Else + tSource = SourceList.OrderByDescending(Function(s) s.Path).FirstOrDefault(Function(s) s.Name = SQLReader("Source").ToString) + If Not IsNothing(tSource) Then + If Directory.GetParent(Directory.GetParent(SQLReader("MoviePath").ToString).FullName).Name.ToLower = "bdmv" Then + tPath = Directory.GetParent(Directory.GetParent(SQLReader("MoviePath").ToString).FullName).FullName + Else + tPath = Directory.GetParent(SQLReader("MoviePath").ToString).FullName + End If + sPath = FileUtils.Common.GetDirectory(tPath).ToLower + If tSource.Recursive = False AndAlso tPath.Length > tSource.Path.Length AndAlso If(sPath = "video_ts" OrElse sPath = "bdmv", tPath.Substring(tSource.Path.Length).Trim(Path.DirectorySeparatorChar).Split(Path.DirectorySeparatorChar).Count > 2, tPath.Substring(tSource.Path.Length).Trim(Path.DirectorySeparatorChar).Split(Path.DirectorySeparatorChar).Count > 1) Then + MoviePaths.Remove(SQLReader("MoviePath").ToString) + Master.DB.DeleteFromDB(Convert.ToInt64(SQLReader("ID")), True) + ElseIf Not Convert.ToBoolean(SQLReader("Type")) AndAlso tSource.isSingle AndAlso Not MoviePaths.Where(Function(s) SQLReader("MoviePath").ToString.ToLower.StartsWith(tSource.Path.ToLower)).Count = 1 Then + MoviePaths.Remove(SQLReader("MoviePath").ToString) + Master.DB.DeleteFromDB(Convert.ToInt64(SQLReader("ID")), True) + End If + Else + 'orphaned + MoviePaths.Remove(SQLReader("MoviePath").ToString) + Master.DB.DeleteFromDB(Convert.ToInt64(SQLReader("ID")), True) + End If + End If + End While + End Using + End Using + End If + + If CleanTV Then + Using SQLcommand As SQLite.SQLiteCommand = _mediaDBConn.CreateCommand() + If String.IsNullOrEmpty(source) Then + SQLcommand.CommandText = "SELECT TVEpPath FROM TVEpPaths;" + Else + SQLcommand.CommandText = String.Format("SELECT TVEpPath FROM TVEpPaths INNER JOIN TVEps ON TVEpPaths.ID = TVEps.TVEpPathID WHERE TVEps.Source =""{0}"";", source) + End If + + Using SQLReader As SQLite.SQLiteDataReader = SQLcommand.ExecuteReader() + While SQLReader.Read + If Not File.Exists(SQLReader("TVEpPath").ToString) OrElse Not Master.eSettings.ValidExts.Contains(Path.GetExtension(SQLReader("TVEpPath").ToString).ToLower) Then + Master.DB.DeleteTVEpFromDBByPath(SQLReader("TVEpPath").ToString, False, True) + End If + End While + End Using + 'tvshows with no more real episodes + SQLcommand.CommandText = "DELETE FROM TVShows WHERE NOT EXISTS (SELECT TVEps.TVShowID FROM TVEps WHERE TVEps.TVShowID = TVShows.ID AND TVEps.Missing = 0)" + SQLcommand.ExecuteNonQuery() + SQLcommand.CommandText = String.Concat("DELETE FROM TVShows WHERE ID NOT IN (SELECT TVShowID FROM TVEps);") + SQLcommand.ExecuteNonQuery() + SQLcommand.CommandText = String.Concat("DELETE FROM TVShowActors WHERE TVShowID NOT IN (SELECT ID FROM TVShows);") + SQLcommand.ExecuteNonQuery() + SQLcommand.CommandText = "DELETE FROM TVEps WHERE TVShowID NOT IN (SELECT ID FROM TVShows);" + SQLcommand.ExecuteNonQuery() + 'orphaned paths + SQLcommand.CommandText = "DELETE FROM TVEpPaths WHERE NOT EXISTS (SELECT TVEps.TVEpPathID FROM TVEps WHERE TVEps.TVEpPathID = TVEpPaths.ID AND TVEps.Missing = 0)" + SQLcommand.ExecuteNonQuery() + End Using + End If + + CleanSeasons(True) + + SQLtransaction.Commit() + End Using + + Using SQLcommand As SQLite.SQLiteCommand = _mediaDBConn.CreateCommand() + SQLcommand.CommandText = "VACUUM;" + SQLcommand.ExecuteNonQuery() + End Using + + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error", False) + End Try + End Sub + + Public Sub CleanSeasons(Optional ByVal BatchMode As Boolean = False) + Dim SQLTrans As SQLite.SQLiteTransaction = Nothing + If Not BatchMode Then SQLTrans = Master.DB.MediaDBConn.BeginTransaction() + Using SQLCommand As SQLite.SQLiteCommand = _mediaDBConn.CreateCommand() + SQLCommand.CommandText = "DELETE FROM TVSeason WHERE NOT EXISTS (SELECT TVEps.Season FROM TVEps WHERE TVEps.Season = TVSeason.Season AND TVEps.TVShowID = TVSeason.TVShowID) AND TVSeason.Season <> 999" + SQLCommand.ExecuteNonQuery() + End Using + If Not BatchMode Then SQLTrans.Commit() + SQLTrans = Nothing + End Sub + + Public Sub ClearNew() + Try + Using SQLtransaction As SQLite.SQLiteTransaction = Master.DB.MediaDBConn.BeginTransaction() + Using SQLcommand As SQLite.SQLiteCommand = _mediaDBConn.CreateCommand() + SQLcommand.CommandText = "UPDATE movies SET new = (?);" + Dim parNew As SQLite.SQLiteParameter = SQLcommand.Parameters.Add("parNew", DbType.Boolean, 0, "new") + parNew.Value = False + SQLcommand.ExecuteNonQuery() + End Using + Using SQLShowcommand As SQLite.SQLiteCommand = _mediaDBConn.CreateCommand() + SQLShowcommand.CommandText = "UPDATE TVShows SET new = (?);" + Dim parShowNew As SQLite.SQLiteParameter = SQLShowcommand.Parameters.Add("parShowNew", DbType.Boolean, 0, "new") + parShowNew.Value = False + SQLShowcommand.ExecuteNonQuery() + End Using + Using SQLSeasoncommand As SQLite.SQLiteCommand = _mediaDBConn.CreateCommand() + SQLSeasoncommand.CommandText = "UPDATE TVSeason SET new = (?);" + Dim parSeasonNew As SQLite.SQLiteParameter = SQLSeasoncommand.Parameters.Add("parSeasonNew", DbType.Boolean, 0, "new") + parSeasonNew.Value = False + SQLSeasoncommand.ExecuteNonQuery() + End Using + Using SQLEpcommand As SQLite.SQLiteCommand = _mediaDBConn.CreateCommand() + SQLEpcommand.CommandText = "UPDATE TVEps SET new = (?);" + Dim parEpNew As SQLite.SQLiteParameter = SQLEpcommand.Parameters.Add("parEpNew", DbType.Boolean, 0, "new") + parEpNew.Value = False + SQLEpcommand.ExecuteNonQuery() + End Using + SQLtransaction.Commit() + End Using + + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + Public Sub Close() + CloseDatabase(_mediaDBConn) + 'CloseDatabase(_jobsDBConn) + + If Not IsNothing(_mediaDBConn) Then + _mediaDBConn = Nothing + End If + 'If Not IsNothing(_jobsDBConn) Then + ' _jobsDBConn = Nothing + 'End If + End Sub + + Protected Sub CloseDatabase(ByRef connection As SQLiteConnection) + If IsNothing(connection) Then + Return + End If + + Using command As SQLiteCommand = connection.CreateCommand() + command.CommandText = "VACUUM;" + command.ExecuteNonQuery() + End Using + + Try + connection.Close() + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.ToString, _ + ex.StackTrace, _ + "There was a problem closing the media database.") + Finally + connection.Dispose() + End Try + End Sub + + Public Function Connect() As Boolean + Dim newDatabase = ConnectMediaDB() + 'ConnectJobsDB() + Return newDatabase + End Function + + Public Function ConnectMediaDB() As Boolean + If Not IsNothing(_mediaDBConn) Then + Return False + 'Throw New InvalidOperationException("A database connection is already open, can't open another.") + End If + + Dim mediaDBFile As String = Path.Combine(Functions.AppPath, "Media.emm") + Dim isNew As Boolean = (Not File.Exists(mediaDBFile)) + + Try + _mediaDBConn = New SQLiteConnection(String.Format(_connStringTemplate, mediaDBFile)) + _mediaDBConn.Open() + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.ToString, _ + ex.StackTrace, _ + "Unable to open media database connection.") + End Try + + + + Try + If isNew Then + Dim sqlCommand As String = My.Resources.MediaDatabaseSQL_v1 + Using transaction As SQLite.SQLiteTransaction = _mediaDBConn.BeginTransaction() + Using command As SQLite.SQLiteCommand = _mediaDBConn.CreateCommand() + command.CommandText = sqlCommand + command.ExecuteNonQuery() + End Using + transaction.Commit() + End Using + + 'cocotus, 2013/02 Added support for new MediaInfo-fields + Else + 'Check if new columns exists and create them if not + AddMissingColumnsToDatabase() + 'cocotus end + + If Not CheckDatabaseCompatibility() Then + _mediaDBConn.Close() + File.Move(mediaDBFile, String.Concat(mediaDBFile, "_old")) + + Try + _mediaDBConn = New SQLiteConnection(String.Format(_connStringTemplate, mediaDBFile)) + _mediaDBConn.Open() + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.ToString, _ + ex.StackTrace, _ + "Unable to open media database connection.") + End Try + + Dim sqlCommand As String = My.Resources.MediaDatabaseSQL_v1 + Using transaction As SQLite.SQLiteTransaction = _mediaDBConn.BeginTransaction() + Using command As SQLite.SQLiteCommand = _mediaDBConn.CreateCommand() + command.CommandText = sqlCommand + command.ExecuteNonQuery() End Using - 'tvshows with no more real episodes - SQLcommand.CommandText = "DELETE FROM TVShows WHERE NOT EXISTS (SELECT TVEps.TVShowID FROM TVEps WHERE TVEps.TVShowID = TVShows.ID AND TVEps.Missing = 0)" - SQLcommand.ExecuteNonQuery() - SQLcommand.CommandText = String.Concat("DELETE FROM TVShows WHERE ID NOT IN (SELECT TVShowID FROM TVEps);") - SQLcommand.ExecuteNonQuery() - SQLcommand.CommandText = String.Concat("DELETE FROM TVShowActors WHERE TVShowID NOT IN (SELECT ID FROM TVShows);") - SQLcommand.ExecuteNonQuery() - SQLcommand.CommandText = "DELETE FROM TVEps WHERE TVShowID NOT IN (SELECT ID FROM TVShows);" - SQLcommand.ExecuteNonQuery() - 'orphaned paths - SQLcommand.CommandText = "DELETE FROM TVEpPaths WHERE NOT EXISTS (SELECT TVEps.TVEpPathID FROM TVEps WHERE TVEps.TVEpPathID = TVEpPaths.ID AND TVEps.Missing = 0)" - SQLcommand.ExecuteNonQuery() + transaction.Commit() + isNew = True End Using End If - - CleanSeasons(True) - - SQLtransaction.Commit() - End Using - - Using SQLcommand As SQLite.SQLiteCommand = _mediaDBConn.CreateCommand() - SQLcommand.CommandText = "VACUUM;" - SQLcommand.ExecuteNonQuery() - End Using - - Catch ex As Exception - Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error", False) - End Try + End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.ToString, _ + ex.StackTrace, _ + "Error creating database") + _mediaDBConn.Close() + File.Delete(mediaDBFile) + End Try + Return isNew + End Function + + + ''' + ''' cocotus, 2013/02 Added support for new MediaInfo-fields + ''' Checks if Ember database contains new mediainfo columns and create them if necessary + ''' m.savazzi, code optimized, removed select * as is too time consuming and not correct, added the pragma to return table structure / added try catch + ''' + Private Sub AddMissingColumnsToDatabase() + 'TODO Check to see if column exists and then create if not + Using SQLpathcommand As SQLite.SQLiteCommand = _mediaDBConn.CreateCommand() + Dim doAddColumns As Boolean = False + Dim doAddColumnWatched As Boolean = False + SQLpathcommand.CommandText = "pragma table_info(TVEps);" + Try + doAddColumns = True + doAddColumnWatched = True + Using SQLreader As SQLite.SQLiteDataReader = SQLpathcommand.ExecuteReader + While SQLreader.Read + Debug.Print(SQLreader("name").ToString.ToLower()) + If SQLreader("name").ToString.ToLower = "playcount" Then + 'Column does exist in current database of Ember --> asume: if one columns missing, all new mediainfo columns must be added + doAddColumns = False + End If + If SQLreader("name").ToString.ToLower = "haswatched" Then + 'Column does exist in current database of Ember --> asume: if one columns missing, all new mediainfo columns must be added + doAddColumnWatched = False + End If + End While + End Using + Catch ex As Exception + 'TODO + End Try + 'Now add new columns to current database if needed + If doAddColumns = True Then + Using transaction As SQLite.SQLiteTransaction = _mediaDBConn.BeginTransaction() + Dim strlistSQLCommands As New List(Of String) + strlistSQLCommands.Add("alter table MoviesAStreams add Audio_Bitrate text;") + strlistSQLCommands.Add("alter table MoviesVStreams add Video_EncodedSettings text;") + strlistSQLCommands.Add("alter table MoviesVStreams add Video_Bitrate text;") + strlistSQLCommands.Add("alter table MoviesVStreams add Video_MultiView text;") + strlistSQLCommands.Add("alter table TVAStreams add Audio_Bitrate text;") + strlistSQLCommands.Add("alter table TVVStreams add Video_EncodedSettings text;") + strlistSQLCommands.Add("alter table TVVStreams add Video_Bitrate text;") + strlistSQLCommands.Add("alter table TVVStreams add Video_MultiView text;") + strlistSQLCommands.Add("alter table TVEps add Playcount text;") + For Each sqlstatement In strlistSQLCommands + Try + SQLpathcommand.CommandText = sqlstatement + SQLpathcommand.ExecuteNonQuery() + Catch ex As Exception + 'TODO ugly to rely on exception but will do the job + 'Happens when column does exist (duplicate columns) + End Try + Next + transaction.Commit() + End Using + End If + If doAddColumnWatched = True Then + Using transaction As SQLite.SQLiteTransaction = _mediaDBConn.BeginTransaction() + Dim strlistSQLCommands As New List(Of String) + strlistSQLCommands.Add("alter table TVEps add HasWatched BOOL NOT NULL DEFAULT 0;") + For Each sqlstatement In strlistSQLCommands + Try + SQLpathcommand.CommandText = sqlstatement + SQLpathcommand.ExecuteNonQuery() + Catch ex As Exception + 'TODO ugly to rely on exception but will do the job + 'Happens when column does exist (duplicate columns) + End Try + Next + transaction.Commit() + End Using + End If + End Using End Sub - Public Sub CleanSeasons(Optional ByVal BatchMode As Boolean = False) - Dim SQLTrans As SQLite.SQLiteTransaction = Nothing - If Not BatchMode Then SQLTrans = Master.DB.MediaDBConn.BeginTransaction() - Using SQLCommand As SQLite.SQLiteCommand = _mediaDBConn.CreateCommand() - SQLCommand.CommandText = "DELETE FROM TVSeason WHERE NOT EXISTS (SELECT TVEps.Season FROM TVEps WHERE TVEps.Season = TVSeason.Season AND TVEps.TVShowID = TVSeason.TVShowID) AND TVSeason.Season <> 999" - SQLCommand.ExecuteNonQuery() - End Using - If Not BatchMode Then SQLTrans.Commit() - SQLTrans = Nothing - End Sub - Public Sub ClearNew() - Try - Using SQLtransaction As SQLite.SQLiteTransaction = Master.DB.MediaDBConn.BeginTransaction() - Using SQLcommand As SQLite.SQLiteCommand = _mediaDBConn.CreateCommand() - SQLcommand.CommandText = "UPDATE movies SET new = (?);" - Dim parNew As SQLite.SQLiteParameter = SQLcommand.Parameters.Add("parNew", DbType.Boolean, 0, "new") - parNew.Value = False - SQLcommand.ExecuteNonQuery() - End Using - Using SQLShowcommand As SQLite.SQLiteCommand = _mediaDBConn.CreateCommand() - SQLShowcommand.CommandText = "UPDATE TVShows SET new = (?);" - Dim parShowNew As SQLite.SQLiteParameter = SQLShowcommand.Parameters.Add("parShowNew", DbType.Boolean, 0, "new") - parShowNew.Value = False - SQLShowcommand.ExecuteNonQuery() - End Using - Using SQLSeasoncommand As SQLite.SQLiteCommand = _mediaDBConn.CreateCommand() - SQLSeasoncommand.CommandText = "UPDATE TVSeason SET new = (?);" - Dim parSeasonNew As SQLite.SQLiteParameter = SQLSeasoncommand.Parameters.Add("parSeasonNew", DbType.Boolean, 0, "new") - parSeasonNew.Value = False - SQLSeasoncommand.ExecuteNonQuery() + ''' + ''' DanCooper, 2013/04 Changed field "Watched TEXT" to "HasWatched BOOL" + ''' Checks if Ember database contains new "HasWatched BOOL" column + ''' + Private Function CheckDatabaseCompatibility() As Boolean + Dim isCompatible As Boolean = False + Using SQLpathcommand As SQLite.SQLiteCommand = _mediaDBConn.CreateCommand() + SQLpathcommand.CommandText = "pragma table_info(Movies);" + Try + isCompatible = False + Using SQLreader As SQLite.SQLiteDataReader = SQLpathcommand.ExecuteReader + While SQLreader.Read + If SQLreader("name").ToString.ToLower = "haswatched" Then + 'Column does exist in current database of Ember --> Database is compatible + isCompatible = True + Exit While + End If + End While End Using - Using SQLEpcommand As SQLite.SQLiteCommand = _mediaDBConn.CreateCommand() - SQLEpcommand.CommandText = "UPDATE TVEps SET new = (?);" - Dim parEpNew As SQLite.SQLiteParameter = SQLEpcommand.Parameters.Add("parEpNew", DbType.Boolean, 0, "new") - parEpNew.Value = False - SQLEpcommand.ExecuteNonQuery() + Catch ex As Exception + 'TODO + End Try + + If isCompatible = False Then + Using dCompatibility As New dlgCompatibility + If dCompatibility.ShowDialog = Windows.Forms.DialogResult.OK Then + Return isCompatible + End If End Using - SQLtransaction.Commit() - End Using - - Catch ex As Exception - Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") - End Try - End Sub - - Public Sub Close() - CloseDatabase(_mediaDBConn) - 'CloseDatabase(_jobsDBConn) - - If Not IsNothing(_mediaDBConn) Then - _mediaDBConn = Nothing - End If - 'If Not IsNothing(_jobsDBConn) Then - ' _jobsDBConn = Nothing - 'End If - End Sub - - Protected Sub CloseDatabase(ByRef connection As SQLiteConnection) - If IsNothing(connection) Then - Return - End If + Else + Return isCompatible + End If - Using command As SQLiteCommand = connection.CreateCommand() - command.CommandText = "VACUUM;" - command.ExecuteNonQuery() End Using - - Try - connection.Close() - Catch ex As Exception - Master.eLog.WriteToErrorLog(ex.ToString, _ - ex.StackTrace, _ - "There was a problem closing the media database.") - Finally - connection.Dispose() - End Try - End Sub - - Public Function Connect() As Boolean - Dim newDatabase = ConnectMediaDB() - 'ConnectJobsDB() - Return newDatabase - End Function - - Protected Function ConnectMediaDB() As Boolean - If Not IsNothing(_mediaDBConn) Then - Return False - 'Throw New InvalidOperationException("A database connection is already open, can't open another.") - End If - - Dim mediaDBFile As String = Path.Combine(Functions.AppPath, "Media.emm") - Dim isNew As Boolean = (Not File.Exists(mediaDBFile)) - - Try - _mediaDBConn = New SQLiteConnection(String.Format(_connStringTemplate, mediaDBFile)) - _mediaDBConn.Open() - Catch ex As Exception - Master.eLog.WriteToErrorLog(ex.ToString, _ - ex.StackTrace, _ - "Unable to open media database connection.") - End Try - - If isNew Then - Dim sqlCommand As String = My.Resources.MediaDatabaseSQL_v1 - Using transaction As SQLite.SQLiteTransaction = _mediaDBConn.BeginTransaction() - Using command As SQLite.SQLiteCommand = _mediaDBConn.CreateCommand() - command.CommandText = sqlCommand - command.ExecuteNonQuery() - End Using - transaction.Commit() - End Using - End If - - Return isNew End Function ''' @@ -622,7 +774,7 @@ Public Class Database If Not DBNull.Value.Equals(SQLreader("Director")) Then .Director = SQLreader("Director").ToString If Not DBNull.Value.Equals(SQLreader("Credits")) Then .OldCredits = SQLreader("Credits").ToString If Not DBNull.Value.Equals(SQLreader("PlayCount")) Then .PlayCount = SQLreader("PlayCount").ToString - If Not DBNull.Value.Equals(SQLreader("Watched")) Then .Watched = SQLreader("Watched").ToString + 'If Not DBNull.Value.Equals(SQLreader("Watched")) Then .Watched = SQLreader("Watched").ToString If Not DBNull.Value.Equals(SQLreader("FanartURL")) AndAlso Not Master.eSettings.NoSaveImagesToNfo Then .Fanart.URL = SQLreader("FanartURL").ToString End With @@ -631,7 +783,7 @@ Public Class Database Using SQLcommand As SQLite.SQLiteCommand = _mediaDBConn.CreateCommand() SQLcommand.CommandText = String.Concat("SELECT MA.MovieID, MA.ActorName , MA.Role ,Act.Name,Act.thumb FROM MoviesActors AS MA ", _ - "INNER JOIN Actors AS Act ON (MA.ActorName = Act.Name) WHERE MA.MovieID = ", _movieDB.ID, " ORDER BY MA.ROWID;") + "INNER JOIN Actors AS Act ON (MA.ActorName = Act.Name) WHERE MA.MovieID = ", _movieDB.ID, " ORDER BY MA.ROWID;") Using SQLreader As SQLite.SQLiteDataReader = SQLcommand.ExecuteReader() Dim person As MediaContainers.Person While SQLreader.Read @@ -658,6 +810,12 @@ Public Class Database If Not DBNull.Value.Equals(SQLreader("Video_AspectDisplayRatio")) Then video.Aspect = SQLreader("Video_AspectDisplayRatio").ToString If Not DBNull.Value.Equals(SQLreader("Video_Language")) Then video.Language = SQLreader("Video_Language").ToString If Not DBNull.Value.Equals(SQLreader("Video_LongLanguage")) Then video.LongLanguage = SQLreader("Video_LongLanguage").ToString + + 'cocotus, 2013/02 Added support for new MediaInfo-fields + If Not DBNull.Value.Equals(SQLreader("Video_Bitrate")) Then video.Bitrate = SQLreader("Video_Bitrate").ToString + If Not DBNull.Value.Equals(SQLreader("Video_MultiView")) Then video.MultiView = SQLreader("Video_MultiView").ToString + If Not DBNull.Value.Equals(SQLreader("Video_EncodedSettings")) Then video.EncodedSettings = SQLreader("Video_EncodedSettings").ToString + 'cocotus end _movieDB.Movie.FileInfo.StreamDetails.Video.Add(video) End While End Using @@ -673,6 +831,9 @@ Public Class Database If Not DBNull.Value.Equals(SQLreader("Audio_LongLanguage")) Then audio.LongLanguage = SQLreader("Audio_LongLanguage").ToString If Not DBNull.Value.Equals(SQLreader("Audio_Codec")) Then audio.Codec = SQLreader("Audio_Codec").ToString If Not DBNull.Value.Equals(SQLreader("Audio_Channel")) Then audio.Channels = SQLreader("Audio_Channel").ToString + 'cocotus, 2013/02 Added support for new MediaInfo-fields + If Not DBNull.Value.Equals(SQLreader("Audio_Bitrate")) Then audio.Bitrate = SQLreader("Audio_Bitrate").ToString + 'cocotus end _movieDB.Movie.FileInfo.StreamDetails.Audio.Add(audio) End While End Using @@ -817,6 +978,7 @@ Public Class Database If Not DBNull.Value.Equals(SQLreader("Plot")) Then .Plot = SQLreader("Plot").ToString If Not DBNull.Value.Equals(SQLreader("Director")) Then .Director = SQLreader("Director").ToString If Not DBNull.Value.Equals(SQLreader("Credits")) Then .Credits = SQLreader("Credits").ToString + If Not DBNull.Value.Equals(SQLreader("Playcount")) Then .Playcount = SQLreader("Playcount").ToString End With End If End Using @@ -833,7 +995,7 @@ Public Class Database Using SQLcommand As SQLite.SQLiteCommand = _mediaDBConn.CreateCommand() SQLcommand.CommandText = String.Concat("SELECT TA.TVEpID, TA.ActorName, TA.Role, Act.Name, Act.thumb FROM TVEpActors AS TA ", _ - "INNER JOIN Actors AS Act ON (TA.ActorName = Act.Name) WHERE TA.TVEpID = ", EpID, " ORDER BY TA.ROWID;") + "INNER JOIN Actors AS Act ON (TA.ActorName = Act.Name) WHERE TA.TVEpID = ", EpID, " ORDER BY TA.ROWID;") Using SQLreader As SQLite.SQLiteDataReader = SQLcommand.ExecuteReader() Dim person As MediaContainers.Person While SQLreader.Read @@ -860,6 +1022,13 @@ Public Class Database If Not DBNull.Value.Equals(SQLreader("Video_AspectDisplayRatio")) Then video.Aspect = SQLreader("Video_AspectDisplayRatio").ToString If Not DBNull.Value.Equals(SQLreader("Video_Language")) Then video.Language = SQLreader("Video_Language").ToString If Not DBNull.Value.Equals(SQLreader("Video_LongLanguage")) Then video.LongLanguage = SQLreader("Video_LongLanguage").ToString + + 'cocotus, 2013/02 Added support for new MediaInfo-fields + If Not DBNull.Value.Equals(SQLreader("Video_Bitrate")) Then video.Bitrate = SQLreader("Video_Bitrate").ToString + If Not DBNull.Value.Equals(SQLreader("Video_MultiView")) Then video.MultiView = SQLreader("Video_MultiView").ToString + If Not DBNull.Value.Equals(SQLreader("Video_EncodedSettings")) Then video.EncodedSettings = SQLreader("Video_EncodedSettings").ToString + 'cocotus end + _TVDB.TVEp.FileInfo.StreamDetails.Video.Add(video) End While End Using @@ -875,6 +1044,11 @@ Public Class Database If Not DBNull.Value.Equals(SQLreader("Audio_LongLanguage")) Then audio.LongLanguage = SQLreader("Audio_LongLanguage").ToString If Not DBNull.Value.Equals(SQLreader("Audio_Codec")) Then audio.Codec = SQLreader("Audio_Codec").ToString If Not DBNull.Value.Equals(SQLreader("Audio_Channel")) Then audio.Channels = SQLreader("Audio_Channel").ToString + + 'cocotus, 2013/02 Added support for new MediaInfo-fields + If Not DBNull.Value.Equals(SQLreader("Audio_Bitrate")) Then audio.Bitrate = SQLreader("Audio_Bitrate").ToString + 'cocotus end + _TVDB.TVEp.FileInfo.StreamDetails.Audio.Add(audio) End While End Using @@ -1009,7 +1183,7 @@ Public Class Database Using SQLcommand As SQLite.SQLiteCommand = _mediaDBConn.CreateCommand() SQLcommand.CommandText = String.Concat("SELECT TA.TVShowID, TA.ActorName, TA.Role, Act.Name, Act.thumb FROM TVShowActors AS TA ", _ - "INNER JOIN Actors AS Act ON (TA.ActorName = Act.Name) WHERE TA.TVShowID = ", ShowID, " ORDER BY TA.ROWID;") + "INNER JOIN Actors AS Act ON (TA.ActorName = Act.Name) WHERE TA.TVShowID = ", ShowID, " ORDER BY TA.ROWID;") Using SQLreader As SQLite.SQLiteDataReader = SQLcommand.ExecuteReader() Dim person As MediaContainers.Person While SQLreader.Read @@ -1056,25 +1230,25 @@ Public Class Database End Using End Sub - Public Function CheckEssentials() As Boolean - 'Dim needUpdate As Boolean = False - 'Dim lhttp As New HTTP - 'If Not File.Exists(Path.Combine(Functions.AppPath, "Media.emm")) Then - 'lhttp.DownloadFile(String.Format("http://pcjco.dommel.be/emm-r/{0}/commands_base.xml", If(Functions.IsBetaEnabled(), "updatesbeta", "updates")), Path.Combine(Functions.AppPath, "InstallTasks.xml"), False, "other") - 'End If - Return Master.DB.Connect() - 'If File.Exists(Path.Combine(Functions.AppPath, "InstallTasks.xml")) Then - 'Master.DB.PatchDatabase("InstallTasks.xml") - 'File.Delete(Path.Combine(Functions.AppPath, "InstallTasks.xml")) - 'needUpdate = True - 'End If - 'If File.Exists(Path.Combine(Functions.AppPath, "UpdateTasks.xml")) Then - 'Master.DB.PatchDatabase("UpdateTasks.xml") - 'File.Delete(Path.Combine(Functions.AppPath, "UpdateTasks.xml")) - 'needUpdate = True - 'End If - 'Return needUpdate - End Function + ' Public Function CheckEssentials() As Boolean + 'Dim needUpdate As Boolean = False + 'Dim lhttp As New HTTP + 'If Not File.Exists(Path.Combine(Functions.AppPath, "Media.emm")) Then + ' System.IO.File.Copy(Path.Combine(Path.Combine(Functions.AppPath, "Resources"), "commands_base.xml"), Path.Combine(Functions.AppPath, "InstallTasks.xml")) + ' 'lhttp.DownloadFile(String.Format("http://pcjco.dommel.be/emm-r/{0}/commands_base.xml", If(Functions.IsBetaEnabled(), "updatesbeta", "updates")), Path.Combine(Functions.AppPath, "InstallTasks.xml"), False, "other") + 'End If + 'If File.Exists(Path.Combine(Functions.AppPath, "InstallTasks.xml")) Then + ' Master.DB.PatchDatabase("InstallTasks.xml") + ' File.Delete(Path.Combine(Functions.AppPath, "InstallTasks.xml")) + ' needUpdate = True + 'End If + 'If File.Exists(Path.Combine(Functions.AppPath, "UpdateTasks.xml")) Then + ' Master.DB.PatchDatabase("UpdateTasks.xml") + ' File.Delete(Path.Combine(Functions.AppPath, "UpdateTasks.xml")) + ' needUpdate = True + 'End If + 'Return needUpdate + ' End Function ''' ''' Saves all information from a Structures.DBMovie object to the database @@ -1091,18 +1265,18 @@ Public Class Database Using SQLcommand As SQLite.SQLiteCommand = _mediaDBConn.CreateCommand() If IsNew Then SQLcommand.CommandText = String.Concat("INSERT OR REPLACE INTO movies (", _ - "MoviePath, type, ListTitle, HasPoster, HasFanart, HasNfo, HasTrailer, HasSub, HasExtra, new, mark, source, imdb, lock, ", _ - "Title, OriginalTitle, SortTitle, Year, Rating, Votes, MPAA, Top250, Country, Outline, Plot, Tagline, Certification, Genre, ", _ - "Studio, Runtime, ReleaseDate, Director, Credits, Playcount, Watched, Trailer, ", _ - "PosterPath, FanartPath, NfoPath, TrailerPath, SubPath, ExtraPath, FanartURL, UseFolder, OutOfTolerance, FileSource, NeedsSave, DateAdd", _ - ") VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); SELECT LAST_INSERT_ROWID() FROM movies;") + "MoviePath, type, ListTitle, HasPoster, HasFanart, HasNfo, HasTrailer, HasSub, HasExtra, new, mark, source, imdb, lock, ", _ + "Title, OriginalTitle, SortTitle, Year, Rating, Votes, MPAA, Top250, Country, Outline, Plot, Tagline, Certification, Genre, ", _ + "Studio, Runtime, ReleaseDate, Director, Credits, Playcount, HasWatched, Trailer, ", _ + "PosterPath, FanartPath, NfoPath, TrailerPath, SubPath, ExtraPath, FanartURL, UseFolder, OutOfTolerance, FileSource, NeedsSave, DateAdd", _ + ") VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); SELECT LAST_INSERT_ROWID() FROM movies;") Else SQLcommand.CommandText = String.Concat("INSERT OR REPLACE INTO movies (", _ - "ID, MoviePath, type, ListTitle, HasPoster, HasFanart, HasNfo, HasTrailer, HasSub, HasExtra, new, mark, source, imdb, lock, ", _ - "Title, OriginalTitle, SortTitle, Year, Rating, Votes, MPAA, Top250, Country, Outline, Plot, Tagline, Certification, Genre, ", _ - "Studio, Runtime, ReleaseDate, Director, Credits, Playcount, Watched, Trailer, ", _ - "PosterPath, FanartPath, NfoPath, TrailerPath, SubPath, ExtraPath, FanartURL, UseFolder, OutOfTolerance, FileSource, NeedsSave, DateAdd", _ - ") VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); SELECT LAST_INSERT_ROWID() FROM movies;") + "ID, MoviePath, type, ListTitle, HasPoster, HasFanart, HasNfo, HasTrailer, HasSub, HasExtra, new, mark, source, imdb, lock, ", _ + "Title, OriginalTitle, SortTitle, Year, Rating, Votes, MPAA, Top250, Country, Outline, Plot, Tagline, Certification, Genre, ", _ + "Studio, Runtime, ReleaseDate, Director, Credits, Playcount, HasWatched, Trailer, ", _ + "PosterPath, FanartPath, NfoPath, TrailerPath, SubPath, ExtraPath, FanartURL, UseFolder, OutOfTolerance, FileSource, NeedsSave, DateAdd", _ + ") VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); SELECT LAST_INSERT_ROWID() FROM movies;") Dim parMovieID As SQLite.SQLiteParameter = SQLcommand.Parameters.Add("parMovieID", DbType.Int32, 0, "ID") parMovieID.Value = _movieDB.ID End If @@ -1141,7 +1315,7 @@ Public Class Database Dim parDirector As SQLite.SQLiteParameter = SQLcommand.Parameters.Add("parDirector", DbType.String, 0, "Director") Dim parCredits As SQLite.SQLiteParameter = SQLcommand.Parameters.Add("parCredits", DbType.String, 0, "Credits") Dim parPlaycount As SQLite.SQLiteParameter = SQLcommand.Parameters.Add("parPlaycount", DbType.String, 0, "Playcount") - Dim parWatched As SQLite.SQLiteParameter = SQLcommand.Parameters.Add("parWatched", DbType.String, 0, "Watched") + Dim parHasWatched As SQLite.SQLiteParameter = SQLcommand.Parameters.Add("parHasWatched", DbType.Boolean, 0, "HasWatched") Dim parTrailer As SQLite.SQLiteParameter = SQLcommand.Parameters.Add("parTrailer", DbType.String, 0, "Trailer") Dim parPosterPath As SQLite.SQLiteParameter = SQLcommand.Parameters.Add("parPosterPath", DbType.String, 0, "PosterPath") @@ -1161,7 +1335,21 @@ Public Class Database 'If ToNfo AndAlso Not String.IsNullOrEmpty(_movieDB.Movie.IMDBID) Then NFO.SaveMovieToNFO(_movieDB) 'Why do we need IMDB to save to NFO? If ToNfo Then NFO.SaveMovieToNFO(_movieDB) - parMovieDateAdd.Value = If(IsNew, Functions.ConvertToUnixTimestamp(Now), _movieDB.DateAdd) + + 'cocotus 20130303 Special DateAddvalue + ' parMovieDateAdd.Value = If(IsNew, Functions.ConvertToUnixTimestamp(Now), _movieDB.DateAdd) + Try + If Master.eSettings.UseSpecialDateAddvalue Then + 'Use filecreation date of file instead of simply NOW Date + parMovieDateAdd.Value = If(IsNew, Functions.ConvertToUnixTimestamp(System.IO.File.GetCreationTime(_movieDB.Filename)), _movieDB.DateAdd) + Else + parMovieDateAdd.Value = If(IsNew, Functions.ConvertToUnixTimestamp(Now), _movieDB.DateAdd) + End If + 'something went wrong so use old way... + Catch ex As Exception + parMovieDateAdd.Value = If(IsNew, Functions.ConvertToUnixTimestamp(Now), _movieDB.DateAdd) + End Try + 'cocotus end parMoviePath.Value = _movieDB.Filename parType.Value = _movieDB.isSingle @@ -1186,6 +1374,7 @@ Public Class Database parHasTrailer.Value = Not String.IsNullOrEmpty(_movieDB.TrailerPath) parHasSub.Value = Not String.IsNullOrEmpty(_movieDB.SubPath) parHasExtra.Value = Not String.IsNullOrEmpty(_movieDB.ExtraPath) + parHasWatched.Value = Not String.IsNullOrEmpty(_movieDB.Movie.PlayCount) parNew.Value = IsNew parMark.Value = _movieDB.IsMark @@ -1212,7 +1401,7 @@ Public Class Database parDirector.Value = _movieDB.Movie.Director parCredits.Value = _movieDB.Movie.OldCredits parPlaycount.Value = _movieDB.Movie.PlayCount - parWatched.Value = _movieDB.Movie.Watched + 'parWatched.Value = _movieDB.Movie.Watched parTrailer.Value = _movieDB.Movie.Trailer parUseFolder.Value = _movieDB.UseFolder @@ -1268,10 +1457,13 @@ Public Class Database SQLcommandMoviesVStreams.CommandText = String.Concat("DELETE FROM MoviesVStreams WHERE MovieID = ", _movieDB.ID, ";") SQLcommandMoviesVStreams.ExecuteNonQuery() + 'cocotus, 2013/02 Added support for new MediaInfo-fields + 'Expanded SQL Statement to INSERT/replace new fields SQLcommandMoviesVStreams.CommandText = String.Concat("INSERT OR REPLACE INTO MoviesVStreams (", _ - "MovieID, StreamID, Video_Width,Video_Height,Video_Codec,Video_Duration,", _ - "Video_ScanType, Video_AspectDisplayRatio, Video_Language, Video_LongLanguage", _ - ") VALUES (?,?,?,?,?,?,?,?,?,?);") + "MovieID, StreamID, Video_Width,Video_Height,Video_Codec,Video_Duration,", _ + "Video_ScanType, Video_AspectDisplayRatio, Video_Language, Video_LongLanguage, Video_Bitrate, Video_MultiView, Video_EncodedSettings", _ + ") VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?);") + 'cocotus end Dim parVideo_MovieID As SQLite.SQLiteParameter = SQLcommandMoviesVStreams.Parameters.Add("parVideo_MovieID", DbType.UInt64, 0, "MovieID") Dim parVideo_StreamID As SQLite.SQLiteParameter = SQLcommandMoviesVStreams.Parameters.Add("parVideo_StreamID", DbType.UInt64, 0, "StreamID") Dim parVideo_Width As SQLite.SQLiteParameter = SQLcommandMoviesVStreams.Parameters.Add("parVideo_Width", DbType.String, 0, "Video_Width") @@ -1282,6 +1474,13 @@ Public Class Database Dim parVideo_AspectDisplayRatio As SQLite.SQLiteParameter = SQLcommandMoviesVStreams.Parameters.Add("parVideo_AspectDisplayRatio", DbType.String, 0, "Video_AspectDisplayRatio") Dim parVideo_Language As SQLite.SQLiteParameter = SQLcommandMoviesVStreams.Parameters.Add("parVideo_Language", DbType.String, 0, "Video_Language") Dim parVideo_LongLanguage As SQLite.SQLiteParameter = SQLcommandMoviesVStreams.Parameters.Add("parVideo_LongLanguage", DbType.String, 0, "Video_LongLanguage") + + 'cocotus, 2013/02 Added support for new MediaInfo-fields + Dim parVideo_Bitrate As SQLite.SQLiteParameter = SQLcommandMoviesVStreams.Parameters.Add("parVideo_Bitrate", DbType.String, 0, "Video_Bitrate") + Dim parVideo_MultiView As SQLite.SQLiteParameter = SQLcommandMoviesVStreams.Parameters.Add("parVideo_MultiView", DbType.String, 0, "Video_MultiView") + Dim parVideo_EncodedSettings As SQLite.SQLiteParameter = SQLcommandMoviesVStreams.Parameters.Add("parVideo_EncodedSettings", DbType.String, 0, "Video_EncodedSettings") + 'cocotus end + For i As Integer = 0 To _movieDB.Movie.FileInfo.StreamDetails.Video.Count - 1 parVideo_MovieID.Value = _movieDB.ID parVideo_StreamID.Value = i @@ -1293,6 +1492,13 @@ Public Class Database parVideo_AspectDisplayRatio.Value = _movieDB.Movie.FileInfo.StreamDetails.Video(i).Aspect parVideo_Language.Value = _movieDB.Movie.FileInfo.StreamDetails.Video(i).Language parVideo_LongLanguage.Value = _movieDB.Movie.FileInfo.StreamDetails.Video(i).LongLanguage + + 'cocotus, 2013/02 Added support for new MediaInfo-fields + parVideo_Bitrate.Value = _movieDB.Movie.FileInfo.StreamDetails.Video(i).Bitrate + parVideo_MultiView.Value = _movieDB.Movie.FileInfo.StreamDetails.Video(i).MultiView + parVideo_EncodedSettings.Value = _movieDB.Movie.FileInfo.StreamDetails.Video(i).EncodedSettings + 'cocotus end + SQLcommandMoviesVStreams.ExecuteNonQuery() Next End Using @@ -1300,15 +1506,24 @@ Public Class Database SQLcommandMoviesAStreams.CommandText = String.Concat("DELETE FROM MoviesAStreams WHERE MovieID = ", _movieDB.ID, ";") SQLcommandMoviesAStreams.ExecuteNonQuery() + 'cocotus, 2013/02 Added support for new MediaInfo-fields + 'Expanded SQL Statement to INSERT/replace new fields SQLcommandMoviesAStreams.CommandText = String.Concat("INSERT OR REPLACE INTO MoviesAStreams (", _ - "MovieID, StreamID, Audio_Language, Audio_LongLanguage, Audio_Codec, Audio_Channel", _ - ") VALUES (?,?,?,?,?,?);") + "MovieID, StreamID, Audio_Language, Audio_LongLanguage, Audio_Codec, Audio_Channel, Audio_Bitrate", _ + ") VALUES (?,?,?,?,?,?,?);") + 'cocotus end + Dim parAudio_MovieID As SQLite.SQLiteParameter = SQLcommandMoviesAStreams.Parameters.Add("parAudio_MovieID", DbType.UInt64, 0, "MovieID") Dim parAudio_StreamID As SQLite.SQLiteParameter = SQLcommandMoviesAStreams.Parameters.Add("parAudio_StreamID", DbType.UInt64, 0, "StreamID") Dim parAudio_Language As SQLite.SQLiteParameter = SQLcommandMoviesAStreams.Parameters.Add("parAudio_Language", DbType.String, 0, "Audio_Language") Dim parAudio_LongLanguage As SQLite.SQLiteParameter = SQLcommandMoviesAStreams.Parameters.Add("parAudio_LongLanguage", DbType.String, 0, "Audio_LongLanguage") Dim parAudio_Codec As SQLite.SQLiteParameter = SQLcommandMoviesAStreams.Parameters.Add("parAudio_Codec", DbType.String, 0, "Audio_Codec") Dim parAudio_Channel As SQLite.SQLiteParameter = SQLcommandMoviesAStreams.Parameters.Add("parAudio_Channel", DbType.String, 0, "Audio_Channel") + + 'cocotus, 2013/02 Added support for new MediaInfo-fields + Dim parAudio_Bitrate As SQLite.SQLiteParameter = SQLcommandMoviesAStreams.Parameters.Add("parAudio_Bitrate", DbType.String, 0, "Audio_Bitrate") + 'cocotus end + For i As Integer = 0 To _movieDB.Movie.FileInfo.StreamDetails.Audio.Count - 1 parAudio_MovieID.Value = _movieDB.ID parAudio_StreamID.Value = i @@ -1316,6 +1531,11 @@ Public Class Database parAudio_LongLanguage.Value = _movieDB.Movie.FileInfo.StreamDetails.Audio(i).LongLanguage parAudio_Codec.Value = _movieDB.Movie.FileInfo.StreamDetails.Audio(i).Codec parAudio_Channel.Value = _movieDB.Movie.FileInfo.StreamDetails.Audio(i).Channels + + 'cocotus, 2013/02 Added support for new MediaInfo-fields + parAudio_Bitrate.Value = _movieDB.Movie.FileInfo.StreamDetails.Audio(i).Bitrate + 'cocotus end + SQLcommandMoviesAStreams.ExecuteNonQuery() Next End Using @@ -1324,8 +1544,8 @@ Public Class Database SQLcommandMoviesSubs.ExecuteNonQuery() SQLcommandMoviesSubs.CommandText = String.Concat("INSERT OR REPLACE INTO MoviesSubs (", _ - "MovieID, StreamID, Subs_Language, Subs_LongLanguage,Subs_Type, Subs_Path", _ - ") VALUES (?,?,?,?,?,?);") + "MovieID, StreamID, Subs_Language, Subs_LongLanguage,Subs_Type, Subs_Path", _ + ") VALUES (?,?,?,?,?,?);") Dim parSubs_MovieID As SQLite.SQLiteParameter = SQLcommandMoviesSubs.Parameters.Add("parSubs_MovieID", DbType.UInt64, 0, "MovieID") Dim parSubs_StreamID As SQLite.SQLiteParameter = SQLcommandMoviesSubs.Parameters.Add("parSubs_StreamID", DbType.UInt64, 0, "StreamID") Dim parSubs_Language As SQLite.SQLiteParameter = SQLcommandMoviesSubs.Parameters.Add("parSubs_Language", DbType.String, 0, "Subs_Language") @@ -1349,8 +1569,8 @@ Public Class Database If Not Master.eSettings.NoSaveImagesToNfo Then SQLcommandMoviesPosters.CommandText = String.Concat("INSERT OR REPLACE INTO MoviesPosters (", _ - "MovieID, thumbs", _ - ") VALUES (?,?);") + "MovieID, thumbs", _ + ") VALUES (?,?);") Dim parPosters_MovieID As SQLite.SQLiteParameter = SQLcommandMoviesPosters.Parameters.Add("parPosters_MovieID", DbType.UInt64, 0, "MovieID") Dim parPosters_thumb As SQLite.SQLiteParameter = SQLcommandMoviesPosters.Parameters.Add("parPosters_thumb", DbType.String, 0, "thumbs") For Each p As String In _movieDB.Movie.Thumb @@ -1366,8 +1586,8 @@ Public Class Database If Not Master.eSettings.NoSaveImagesToNfo Then SQLcommandMoviesFanart.CommandText = String.Concat("INSERT OR REPLACE INTO MoviesFanart (", _ - "MovieID, preview, thumbs", _ - ") VALUES (?,?,?);") + "MovieID, preview, thumbs", _ + ") VALUES (?,?,?);") Dim parFanart_MovieID As SQLite.SQLiteParameter = SQLcommandMoviesFanart.Parameters.Add("parFanart_MovieID", DbType.UInt64, 0, "MovieID") Dim parFanart_Preview As SQLite.SQLiteParameter = SQLcommandMoviesFanart.Parameters.Add("parFanart_Preview", DbType.String, 0, "Preview") Dim parFanart_thumb As SQLite.SQLiteParameter = SQLcommandMoviesFanart.Parameters.Add("parFanart_thumb", DbType.String, 0, "thumb") @@ -1381,8 +1601,8 @@ Public Class Database End Using Using SQLcommandSets As SQLite.SQLiteCommand = _mediaDBConn.CreateCommand() SQLcommandSets.CommandText = String.Concat("INSERT OR REPLACE INTO Sets (", _ - "SetName", _ - ") VALUES (?);") + "SetName", _ + ") VALUES (?);") Dim parSets_SetName As SQLite.SQLiteParameter = SQLcommandSets.Parameters.Add("parSets_SetName", DbType.String, 0, "SetName") For Each s As MediaContainers.Set In _movieDB.Movie.Sets parSets_SetName.Value = s.Set @@ -1394,8 +1614,8 @@ Public Class Database SQLcommandMoviesSets.ExecuteNonQuery() SQLcommandMoviesSets.CommandText = String.Concat("INSERT OR REPLACE INTO MoviesSets (", _ - "MovieID,SetName,SetOrder", _ - ") VALUES (?,?,?);") + "MovieID,SetName,SetOrder", _ + ") VALUES (?,?,?);") Dim parMovieSets_MovieID As SQLite.SQLiteParameter = SQLcommandMoviesSets.Parameters.Add("parMovieSets_MovieID", DbType.UInt64, 0, "MovieID") Dim parMovieSets_SetName As SQLite.SQLiteParameter = SQLcommandMoviesSets.Parameters.Add("parMovieSets_SetName", DbType.String, 0, "SetName") Dim parMovieSets_SetOrder As SQLite.SQLiteParameter = SQLcommandMoviesSets.Parameters.Add("parMovieSets_SetOrder", DbType.String, 0, "SetOrder") @@ -1453,7 +1673,7 @@ Public Class Database Else Using SQLpcommand As SQLite.SQLiteCommand = _mediaDBConn.CreateCommand() SQLpcommand.CommandText = String.Concat("INSERT INTO TVEpPaths (", _ - "TVEpPath) VALUES (?); SELECT LAST_INSERT_ROWID() FROM TVEpPaths;") + "TVEpPath) VALUES (?); SELECT LAST_INSERT_ROWID() FROM TVEpPaths;") Dim parEpPath As SQLite.SQLiteParameter = SQLpcommand.Parameters.Add("parEpPath", DbType.String, 0, "TVEpPath") parEpPath.Value = _TVEpDB.Filename @@ -1467,14 +1687,14 @@ Public Class Database Using SQLcommand As SQLite.SQLiteCommand = _mediaDBConn.CreateCommand() If IsNew Then SQLcommand.CommandText = String.Concat("INSERT OR REPLACE INTO TVEps (", _ - "TVShowID, HasPoster, HasFanart, HasNfo, New, Mark, TVEpPathID, Source, Lock, Title, Season, Episode,", _ - "Rating, Plot, Aired, Director, Credits, PosterPath, FanartPath, NfoPath, NeedsSave, Missing", _ - ") VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); SELECT LAST_INSERT_ROWID() FROM TVEps;") + "TVShowID, HasPoster, HasFanart, HasNfo, New, Mark, TVEpPathID, Source, Lock, Title, Season, Episode,", _ + "Rating, Plot, Aired, Director, Credits, PosterPath, FanartPath, NfoPath, NeedsSave, Missing, Playcount, HasWatched", _ + ") VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); SELECT LAST_INSERT_ROWID() FROM TVEps;") Else SQLcommand.CommandText = String.Concat("INSERT OR REPLACE INTO TVEps (", _ - "ID, TVShowID, HasPoster, HasFanart, HasNfo, New, Mark, TVEpPathID, Source, Lock, Title, Season, Episode,", _ - "Rating, Plot, Aired, Director, Credits, PosterPath, FanartPath, NfoPath, NeedsSave, Missing", _ - ") VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); SELECT LAST_INSERT_ROWID() FROM TVEps;") + "ID, TVShowID, HasPoster, HasFanart, HasNfo, New, Mark, TVEpPathID, Source, Lock, Title, Season, Episode,", _ + "Rating, Plot, Aired, Director, Credits, PosterPath, FanartPath, NfoPath, NeedsSave, Missing, Playcount, HasWatched", _ + ") VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); SELECT LAST_INSERT_ROWID() FROM TVEps;") Dim parTVEpID As SQLite.SQLiteParameter = SQLcommand.Parameters.Add("parTVEpID", DbType.UInt64, 0, "ID") parTVEpID.Value = _TVEpDB.EpID End If @@ -1503,6 +1723,9 @@ Public Class Database Dim parNeedsSave As SQLite.SQLiteParameter = SQLcommand.Parameters.Add("parNeedsSave", DbType.Boolean, 0, "NeedsSave") Dim parTVEpMissing As SQLite.SQLiteParameter = SQLcommand.Parameters.Add("parTVEpMissing", DbType.Boolean, 0, "Missing") + Dim parPlaycount As SQLite.SQLiteParameter = SQLcommand.Parameters.Add("parPlaycount", DbType.String, 0, "Playcount") + Dim parHasWatched As SQLite.SQLiteParameter = SQLcommand.Parameters.Add("parHasWatched", DbType.Boolean, 0, "HasWatched") + ' First let's save it to NFO, even because we will need the NFO path If ToNfo Then NFO.SaveTVEpToNFO(_TVEpDB) @@ -1513,6 +1736,7 @@ Public Class Database parHasPoster.Value = Not String.IsNullOrEmpty(_TVEpDB.EpPosterPath) parHasFanart.Value = Not String.IsNullOrEmpty(_TVEpDB.EpFanartPath) parHasNfo.Value = Not String.IsNullOrEmpty(_TVEpDB.EpNfoPath) + parHasWatched.Value = Not String.IsNullOrEmpty(_TVEpDB.TVEp.Playcount) parNew.Value = IsNew parMark.Value = _TVEpDB.IsMarkEp parTVEpPathID.Value = PathID @@ -1530,6 +1754,7 @@ Public Class Database parAired.Value = .Aired parDirector.Value = .Director parCredits.Value = .Credits + parPlaycount.Value = .Playcount End With If IsNew Then @@ -1579,10 +1804,14 @@ Public Class Database SQLcommandTVVStreams.CommandText = String.Concat("DELETE FROM TVVStreams WHERE TVEpID = ", _TVEpDB.EpID, ";") SQLcommandTVVStreams.ExecuteNonQuery() + 'cocotus, 2013/02 Added support for new MediaInfo-fields + 'Expanded SQL Statement to INSERT/replace new fields SQLcommandTVVStreams.CommandText = String.Concat("INSERT OR REPLACE INTO TVVStreams (", _ - "TVEpID, StreamID, Video_Width,Video_Height,Video_Codec,Video_Duration,", _ - "Video_ScanType, Video_AspectDisplayRatio, Video_Language, Video_LongLanguage", _ - ") VALUES (?,?,?,?,?,?,?,?,?,?);") + "TVEpID, StreamID, Video_Width,Video_Height,Video_Codec,Video_Duration,", _ + "Video_ScanType, Video_AspectDisplayRatio, Video_Language, Video_LongLanguage, Video_Bitrate, Video_MultiView, Video_EncodedSettings", _ + ") VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?);") + 'cocotus end + Dim parVideo_EpID As SQLite.SQLiteParameter = SQLcommandTVVStreams.Parameters.Add("parVideo_EpID", DbType.UInt64, 0, "TVEpID") Dim parVideo_StreamID As SQLite.SQLiteParameter = SQLcommandTVVStreams.Parameters.Add("parVideo_StreamID", DbType.UInt64, 0, "StreamID") Dim parVideo_Width As SQLite.SQLiteParameter = SQLcommandTVVStreams.Parameters.Add("parVideo_Width", DbType.String, 0, "Video_Width") @@ -1593,6 +1822,13 @@ Public Class Database Dim parVideo_AspectDisplayRatio As SQLite.SQLiteParameter = SQLcommandTVVStreams.Parameters.Add("parVideo_AspectDisplayRatio", DbType.String, 0, "Video_AspectDisplayRatio") Dim parVideo_Language As SQLite.SQLiteParameter = SQLcommandTVVStreams.Parameters.Add("parVideo_Language", DbType.String, 0, "Video_Language") Dim parVideo_LongLanguage As SQLite.SQLiteParameter = SQLcommandTVVStreams.Parameters.Add("parVideo_LongLanguage", DbType.String, 0, "Video_LongLanguage") + + 'cocotus, 2013/02 Added support for new MediaInfo-fields + Dim parVideo_Bitrate As SQLite.SQLiteParameter = SQLcommandTVVStreams.Parameters.Add("parVideo_Bitrate", DbType.String, 0, "Video_Bitrate") + Dim parVideo_MultiView As SQLite.SQLiteParameter = SQLcommandTVVStreams.Parameters.Add("parVideo_MultiView", DbType.String, 0, "Video_MultiView") + Dim parVideo_EncodedSettings As SQLite.SQLiteParameter = SQLcommandTVVStreams.Parameters.Add("parVideo_EncodedSettings", DbType.String, 0, "Video_EncodedSettings") + 'cocotus end + For i As Integer = 0 To _TVEpDB.TVEp.FileInfo.StreamDetails.Video.Count - 1 parVideo_EpID.Value = _TVEpDB.EpID parVideo_StreamID.Value = i @@ -1604,6 +1840,13 @@ Public Class Database parVideo_AspectDisplayRatio.Value = _TVEpDB.TVEp.FileInfo.StreamDetails.Video(i).Aspect parVideo_Language.Value = _TVEpDB.TVEp.FileInfo.StreamDetails.Video(i).Language parVideo_LongLanguage.Value = _TVEpDB.TVEp.FileInfo.StreamDetails.Video(i).LongLanguage + + 'cocotus, 2013/02 Added support for new MediaInfo-fields + parVideo_Bitrate.Value = _TVEpDB.TVEp.FileInfo.StreamDetails.Video(i).Bitrate + parVideo_MultiView.Value = _TVEpDB.TVEp.FileInfo.StreamDetails.Video(i).MultiView + parVideo_EncodedSettings.Value = _TVEpDB.TVEp.FileInfo.StreamDetails.Video(i).EncodedSettings + 'cocotus end + SQLcommandTVVStreams.ExecuteNonQuery() Next End Using @@ -1611,15 +1854,24 @@ Public Class Database SQLcommandTVAStreams.CommandText = String.Concat("DELETE FROM TVAStreams WHERE TVEpID = ", _TVEpDB.EpID, ";") SQLcommandTVAStreams.ExecuteNonQuery() + 'cocotus, 2013/02 Added support for new MediaInfo-fields + 'Expanded SQL Statement to INSERT/replace new fields SQLcommandTVAStreams.CommandText = String.Concat("INSERT OR REPLACE INTO TVAStreams (", _ - "TVEpID, StreamID, Audio_Language, Audio_LongLanguage, Audio_Codec, Audio_Channel", _ - ") VALUES (?,?,?,?,?,?);") + "TVEpID, StreamID, Audio_Language, Audio_LongLanguage, Audio_Codec, Audio_Channel, Audio_Bitrate", _ + ") VALUES (?,?,?,?,?,?,?);") + 'cocotus end + Dim parAudio_EpID As SQLite.SQLiteParameter = SQLcommandTVAStreams.Parameters.Add("parAudio_EpID", DbType.UInt64, 0, "TVEpID") Dim parAudio_StreamID As SQLite.SQLiteParameter = SQLcommandTVAStreams.Parameters.Add("parAudio_StreamID", DbType.UInt64, 0, "StreamID") Dim parAudio_Language As SQLite.SQLiteParameter = SQLcommandTVAStreams.Parameters.Add("parAudio_Language", DbType.String, 0, "Audio_Language") Dim parAudio_LongLanguage As SQLite.SQLiteParameter = SQLcommandTVAStreams.Parameters.Add("parAudio_LongLanguage", DbType.String, 0, "Audio_LongLanguage") Dim parAudio_Codec As SQLite.SQLiteParameter = SQLcommandTVAStreams.Parameters.Add("parAudio_Codec", DbType.String, 0, "Audio_Codec") Dim parAudio_Channel As SQLite.SQLiteParameter = SQLcommandTVAStreams.Parameters.Add("parAudio_Channel", DbType.String, 0, "Audio_Channel") + + 'cocotus, 2013/02 Added support for new MediaInfo-fields + Dim parAudio_Bitrate As SQLite.SQLiteParameter = SQLcommandTVAStreams.Parameters.Add("parAudio_Bitrate", DbType.String, 0, "Audio_Bitrate") + 'cocotus end + For i As Integer = 0 To _TVEpDB.TVEp.FileInfo.StreamDetails.Audio.Count - 1 parAudio_EpID.Value = _TVEpDB.EpID parAudio_StreamID.Value = i @@ -1627,6 +1879,11 @@ Public Class Database parAudio_LongLanguage.Value = _TVEpDB.TVEp.FileInfo.StreamDetails.Audio(i).LongLanguage parAudio_Codec.Value = _TVEpDB.TVEp.FileInfo.StreamDetails.Audio(i).Codec parAudio_Channel.Value = _TVEpDB.TVEp.FileInfo.StreamDetails.Audio(i).Channels + + 'cocotus, 2013/02 Added support for new MediaInfo-fields + parAudio_Bitrate.Value = _TVEpDB.TVEp.FileInfo.StreamDetails.Audio(i).Bitrate + 'cocotus end + SQLcommandTVAStreams.ExecuteNonQuery() Next End Using @@ -1635,8 +1892,8 @@ Public Class Database SQLcommandTVSubs.ExecuteNonQuery() SQLcommandTVSubs.CommandText = String.Concat("INSERT OR REPLACE INTO TVSubs (", _ - "TVEpID, StreamID, Subs_Language, Subs_LongLanguage", _ - ") VALUES (?,?,?,?);") + "TVEpID, StreamID, Subs_Language, Subs_LongLanguage", _ + ") VALUES (?,?,?,?);") Dim parSubs_EpID As SQLite.SQLiteParameter = SQLcommandTVSubs.Parameters.Add("parSubs_EpID", DbType.UInt64, 0, "TVEpID") Dim parSubs_StreamID As SQLite.SQLiteParameter = SQLcommandTVSubs.Parameters.Add("parSubs_StreamID", DbType.UInt64, 0, "StreamID") Dim parSubs_Language As SQLite.SQLiteParameter = SQLcommandTVSubs.Parameters.Add("parSubs_Language", DbType.String, 0, "Subs_Language") @@ -1666,8 +1923,8 @@ Public Class Database Using SQLcommandTVSeason As SQLite.SQLiteCommand = _mediaDBConn.CreateCommand() SQLcommandTVSeason.CommandText = String.Concat("INSERT OR ", If(IsNew, "IGNORE", "REPLACE"), " INTO TVSeason (", _ - "TVShowID, SeasonText, Season, HasPoster, HasFanart, PosterPath, FanartPath, Lock, Mark, New", _ - ") VALUES (?,?,?,?,?,?,?,?,?,?);") + "TVShowID, SeasonText, Season, HasPoster, HasFanart, PosterPath, FanartPath, Lock, Mark, New", _ + ") VALUES (?,?,?,?,?,?,?,?,?,?);") Dim parSeasonShowID As SQLite.SQLiteParameter = SQLcommandTVSeason.Parameters.Add("parSeasonShowID", DbType.UInt64, 0, "TVShowID") Dim parSeasonSeasonText As SQLite.SQLiteParameter = SQLcommandTVSeason.Parameters.Add("parSeasonSeasonText", DbType.String, 0, "SeasonText") Dim parSeasonSeason As SQLite.SQLiteParameter = SQLcommandTVSeason.Parameters.Add("parSeasonSeason", DbType.Int32, 0, "Season") @@ -1709,14 +1966,14 @@ Public Class Database Using SQLcommand As SQLite.SQLiteCommand = _mediaDBConn.CreateCommand() If IsNew Then SQLcommand.CommandText = String.Concat("INSERT OR REPLACE INTO TVShows (", _ - "TVShowPath, HasPoster, HasFanart, HasNfo, New, Mark, Source, TVDB, Lock, Title,", _ - "EpisodeGuide, Plot, Genre, Premiered, Studio, MPAA, Rating, PosterPath, FanartPath, NfoPath, NeedsSave, Language, Ordering", _ - ") VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); SELECT LAST_INSERT_ROWID() FROM TVShows;") + "TVShowPath, HasPoster, HasFanart, HasNfo, New, Mark, Source, TVDB, Lock, Title,", _ + "EpisodeGuide, Plot, Genre, Premiered, Studio, MPAA, Rating, PosterPath, FanartPath, NfoPath, NeedsSave, Language, Ordering", _ + ") VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); SELECT LAST_INSERT_ROWID() FROM TVShows;") Else SQLcommand.CommandText = String.Concat("INSERT OR REPLACE INTO TVShows (", _ - "ID, TVShowPath, HasPoster, HasFanart, HasNfo, New, Mark, Source, TVDB, Lock, Title,", _ - "EpisodeGuide, Plot, Genre, Premiered, Studio, MPAA, Rating, PosterPath, FanartPath, NfoPath, NeedsSave, Language, Ordering", _ - ") VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); SELECT LAST_INSERT_ROWID() FROM TVShows;") + "ID, TVShowPath, HasPoster, HasFanart, HasNfo, New, Mark, Source, TVDB, Lock, Title,", _ + "EpisodeGuide, Plot, Genre, Premiered, Studio, MPAA, Rating, PosterPath, FanartPath, NfoPath, NeedsSave, Language, Ordering", _ + ") VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); SELECT LAST_INSERT_ROWID() FROM TVShows;") Dim parTVShowID As SQLite.SQLiteParameter = SQLcommand.Parameters.Add("parTVShowID", DbType.UInt64, 0, "ID") parTVShowID.Value = _TVShowDB.ShowID End If @@ -1881,35 +2138,35 @@ Public Class Database ''''''''''''''''''''''''''''''''''''''''''' - Protected Sub ConnectJobsDB() - If Not IsNothing(_mediaDBConn) Then - Return - 'Throw New InvalidOperationException("A database connection is already open, can't open another.") - End If - - Dim jobsDBFile As String = Path.Combine(Functions.AppPath, "JobLogs.emm") - Dim isNew As Boolean = (Not File.Exists(jobsDBFile)) - - Try - _jobsDBConn = New SQLiteConnection(String.Format(_connStringTemplate, jobsDBFile)) - _jobsDBConn.Open() - Catch ex As Exception - Master.eLog.WriteToErrorLog(ex.ToString, _ - ex.StackTrace, _ - "Unable to open media database connection.") - End Try - - If isNew Then - Dim sqlCommand As String = My.Resources.JobsDatabaseSQL_v1 - Using transaction As SQLite.SQLiteTransaction = _jobsDBConn.BeginTransaction() - Using command As SQLite.SQLiteCommand = _jobsDBConn.CreateCommand() - command.CommandText = sqlCommand - command.ExecuteNonQuery() - End Using - transaction.Commit() - End Using - End If - End Sub + 'Protected Sub ConnectJobsDB() + ' If Not IsNothing(_mediaDBConn) Then + ' Return + ' 'Throw New InvalidOperationException("A database connection is already open, can't open another.") + ' End If + + ' Dim jobsDBFile As String = Path.Combine(Functions.AppPath, "JobLogs.emm") + ' Dim isNew As Boolean = (Not File.Exists(jobsDBFile)) + + ' Try + ' _jobsDBConn = New SQLiteConnection(String.Format(_connStringTemplate, jobsDBFile)) + ' _jobsDBConn.Open() + ' Catch ex As Exception + ' Master.eLog.WriteToErrorLog(ex.ToString, _ + ' ex.StackTrace, _ + ' "Unable to open media database connection.") + ' End Try + + ' If isNew Then + ' Dim sqlCommand As String = My.Resources.JobsDatabaseSQL_v1 + ' Using transaction As SQLite.SQLiteTransaction = _jobsDBConn.BeginTransaction() + ' Using command As SQLite.SQLiteCommand = _jobsDBConn.CreateCommand() + ' command.CommandText = sqlCommand + ' command.ExecuteNonQuery() + ' End Using + ' transaction.Commit() + ' End Using + ' End If + 'End Sub Public Function IsAddonInstalled(ByVal AddonID As Integer) As Single Try @@ -1961,7 +2218,7 @@ Public Class Database Try Using SQLCommand As SQLite.SQLiteCommand = _mediaDBConn.CreateCommand() SQLCommand.CommandText = String.Concat("INSERT OR REPLACE INTO Addons (", _ - "AddonID, Version) VALUES (?,?);") + "AddonID, Version) VALUES (?,?);") Dim parAddonID As SQLite.SQLiteParameter = SQLCommand.Parameters.Add("parAddonID", DbType.Int32, 0, "AddonID") Dim parVersion As SQLite.SQLiteParameter = SQLCommand.Parameters.Add("parVersion", DbType.String, 0, "Version") @@ -1989,6 +2246,147 @@ Public Class Database End Try End Sub + ''' + ''''cocotus 2013/02 Trakt.tv syncing - Movies + ''' Savethe PlayCount Tag for watched movie into Ember database /NFO if not already set + ''' + ''' The watched movie as Keypair + ''' + ''not using loop here, only do one movie a time (call function repeatedly!)! -> only deliver keypair instead of whole dictionary + ' Public Sub SaveMoviePlayCountInDatabase(ByVal myWatchedMovies As Dictionary(Of String, KeyValuePair(Of String, String))) + Public Sub SaveMoviePlayCountInDatabase(ByVal WatchedMovieData As KeyValuePair(Of String, KeyValuePair(Of String, Integer))) + Try + Dim PlaycountStored As Boolean = True + Dim _movieDB As New Structures.DBMovie + _movieDB.Movie = New MediaContainers.Movie + ''not using Loop here, only do one movie a time (call function repeatedly!)! + ' For Each watchedMovieData In myWatchedMovies + + Using SQLcommand As SQLite.SQLiteCommand = _mediaDBConn.CreateCommand() + 'TODO: This statement (directly filter IMDB) doesn't work ?! This is bad, cause right now I have to get all movies and search through them! + ' SQLcommand.CommandText = String.Concat("SELECT * FROM movies WHERE imdb = ", watchedMovieIMDBID.Value, ";") + SQLcommand.CommandText = String.Concat("SELECT * FROM movies;") + Using SQLreader As SQLite.SQLiteDataReader = SQLcommand.ExecuteReader() + While SQLreader.Read + If Not DBNull.Value.Equals(SQLreader("IMDB")) Then + If SQLreader("IMDB").ToString.Equals(WatchedMovieData.Value.Key) Then + _movieDB.ID = CLng(SQLreader("ID").ToString) + _movieDB.Movie.IMDBID = SQLreader("IMDB").ToString + If Not DBNull.Value.Equals(SQLreader("MoviePath")) Then _movieDB.Filename = SQLreader("MoviePath").ToString + If Not DBNull.Value.Equals(SQLreader("Playcount")) Then _movieDB.Movie.PlayCount = SQLreader("Playcount").ToString + If DBNull.Value.Equals(SQLreader("Playcount")) Or SQLreader("Playcount").Equals("0") Or SQLreader("Playcount").Equals("") Or Not (SQLreader("Playcount").Equals(WatchedMovieData.Value.Value.ToString)) Then + + PlaycountStored = False + End If + Exit While + End If + End If + End While + End Using + End Using + + If PlaycountStored = False Then + Using SQLTrans As SQLite.SQLiteTransaction = _mediaDBConn.BeginTransaction() + Using SQLUpdatecommand As SQLite.SQLiteCommand = _mediaDBConn.CreateCommand() + Dim parPlaycount As SQLite.SQLiteParameter = SQLUpdatecommand.Parameters.Add("parPlaycount", DbType.String, 0, "Playcount") + SQLUpdatecommand.CommandText = String.Concat("UPDATE movies SET Playcount = (?) WHERE id = ", _movieDB.ID, ";") + parPlaycount.Value = WatchedMovieData.Value.Value.ToString + SQLUpdatecommand.ExecuteNonQuery() + End Using + SQLTrans.Commit() + End Using + 'Save to NFO! + Dim _movieSavetoNFO As New Structures.DBMovie + _movieSavetoNFO = Master.DB.LoadMovieFromDB(_movieDB.ID) + Master.DB.SaveMovieToDB(_movieSavetoNFO, False, False, True) + End If + ''not using Loop here, only do one movie a time (call function repeatedly!)! + ' Next + Catch ex As Exception + + End Try + End Sub + + ''' + ''''cocotus 2013/03 Trakt.tv syncing - Episodes + ''' Savethe PlayCount Tag for watched episode into Ember database /NFO if not already set + ''' + ''' TVDBID for TV Show identification + ''' Season Number + ''' Episode Number + ''' + ''not using loop here, only do one episode a time (call function repeatedly!)! + Public Sub SaveEpisodePlayCountInDatabase(ByVal TVDBID As String, ByVal Season As String, ByVal episode As String) + Try + Dim PlaycountStored As Boolean = True + Dim _TVEpDB As New Structures.DBTV + Dim tempTVDBID As String = "" + Dim tempPlaycount As String = "" + + 'First get the internal ID of TVSHOW using the TVDBID info + Using SQLcommand As SQLite.SQLiteCommand = _mediaDBConn.CreateCommand() + SQLcommand.CommandText = String.Concat("SELECT * FROM TVShows WHERE tvdb = ", TVDBID, ";") + Using SQLreader As SQLite.SQLiteDataReader = SQLcommand.ExecuteReader() + While SQLreader.Read + If Not DBNull.Value.Equals(SQLreader("id")) Then + tempTVDBID = SQLreader("id").ToString + Exit While + End If + End While + End Using + End Using + + 'No ID --> TV Show doesn't Exist in Ember --> Exit no updates! + If tempTVDBID = "" Then Exit Sub + 'Now we search episodes of the found TV Show + Using SQLcommand As SQLite.SQLiteCommand = _mediaDBConn.CreateCommand() + SQLcommand.CommandText = String.Concat("SELECT * FROM TVEps WHERE TVShowID = ", tempTVDBID, ";") + + Using SQLreader As SQLite.SQLiteDataReader = SQLcommand.ExecuteReader() + While SQLreader.Read + If SQLreader("Season").ToString.Equals(Season) AndAlso SQLreader("Episode").ToString.Equals(episode) Then + _TVEpDB.EpID = CLng(SQLreader("id").ToString) + 'Only if playcount is not set we update + If DBNull.Value.Equals(SQLreader("Playcount")) Or SQLreader("Playcount").Equals("0") Or SQLreader("Playcount").Equals("") Then + PlaycountStored = False + Else + tempPlaycount = SQLreader("playcount").ToString + End If + Exit While + End If + End While + End Using + End Using + 'Updating Playcount in database + If PlaycountStored = False Then + Using SQLTrans As SQLite.SQLiteTransaction = _mediaDBConn.BeginTransaction() + Using SQLUpdatecommand As SQLite.SQLiteCommand = _mediaDBConn.CreateCommand() + Dim parPlaycount As SQLite.SQLiteParameter = SQLUpdatecommand.Parameters.Add("parPlaycount", DbType.String, 0, "Playcount") + If Not String.IsNullOrEmpty(CStr(_TVEpDB.EpID)) Then + SQLUpdatecommand.CommandText = String.Concat("UPDATE TVEps SET Playcount = (?) WHERE id = ", _TVEpDB.EpID, ";") + parPlaycount.Value = "1" + SQLUpdatecommand.ExecuteNonQuery() + Else + Exit Sub + End If + End Using + SQLTrans.Commit() + End Using + 'Save to NFO! + Dim _episodeSavetoNFO As New Structures.DBTV + _episodeSavetoNFO = Master.DB.LoadTVEpFromDB(_TVEpDB.EpID, True) + SaveTVEpToDB(_episodeSavetoNFO, False, False, False, True) + + End If + + Catch ex As Exception + + End Try + End Sub + + + + #End Region 'Methods #Region "Nested Types" diff --git a/EmberAPI/clsAPIErrorLog.vb b/EmberAPI/clsAPIErrorLog.vb index 8ea3030..7d41795 100644 --- a/EmberAPI/clsAPIErrorLog.vb +++ b/EmberAPI/clsAPIErrorLog.vb @@ -22,54 +22,63 @@ Imports System.IO Public Class ErrorLogger - #Region "Events" - - Public Event ErrorOccurred() - - #End Region 'Events - - #Region "Methods" - - ''' - ''' Write the error to our log file, if enabled in settings. - ''' - ''' Error summary - ''' Full stack trace - ''' Error title - Public Sub WriteToErrorLog(ByVal msg As String, ByVal stkTrace As String, ByVal title As String, Optional ByVal Notify As Boolean = True) - Try - If Master.eSettings.LogErrors Then - Dim sPath As String = Path.Combine(Functions.AppPath, "Log") - - If Not System.IO.Directory.Exists(sPath) Then - System.IO.Directory.CreateDirectory(sPath) - End If - - 'check the file - Using fs As FileStream = New FileStream(Path.Combine(sPath, "errlog.txt"), FileMode.OpenOrCreate, FileAccess.ReadWrite) - Using s As StreamWriter = New StreamWriter(fs) - End Using - End Using - - 'log it - Using fs1 As FileStream = New FileStream(Path.Combine(sPath, "errlog.txt"), FileMode.Append, FileAccess.Write) - Using s1 As StreamWriter = New StreamWriter(fs1) - s1.Write(String.Concat("Title: ", title, vbNewLine)) - s1.Write(String.Concat("Message: ", msg, vbNewLine)) - s1.Write(String.Concat("StackTrace: ", stkTrace, vbNewLine)) - s1.Write(String.Concat("Date/Time: ", DateTime.Now.ToString(), vbNewLine)) - s1.Write(String.Concat("===========================================================================================", vbNewLine, vbNewLine)) - End Using - End Using - - If Notify Then ModulesManager.Instance.RunGeneric(Enums.ModuleEventType.Notification, New List(Of Object)(New Object() {"error", 1, Master.eLang.GetString(816, "An Error Has Occurred"), msg, Nothing})) - - RaiseEvent ErrorOccurred() - End If - Catch - End Try - End Sub - - #End Region 'Methods +#Region "Fields" + Private Shared _LogFile As String +#End Region 'Fields + +#Region "Constructors" + + Public Sub New() + Dim _sPath As String + _sPath = Path.Combine(Functions.AppPath, "Log") + If Not System.IO.Directory.Exists(_sPath) Then + System.IO.Directory.CreateDirectory(_sPath) + End If + + _LogFile = Path.Combine(_sPath, Format(Now, "yyyyMMdd-HHmmss") & ".log") + End Sub + +#End Region 'Constructors + +#Region "Properties" +#End Region 'Properties + +#Region "Events" + + Public Event ErrorOccurred() + +#End Region 'Events + +#Region "Methods" + + ''' + ''' Write the error to our log file, if enabled in settings. + ''' + ''' Error summary + ''' Full stack trace + ''' Error title + Public Sub WriteToErrorLog(ByVal msg As String, ByVal stkTrace As String, ByVal title As String, Optional ByVal Notify As Boolean = True) + Try + If Master.eSettings.LogErrors Then + Using fs1 As FileStream = New FileStream(_LogFile, FileMode.Append, FileAccess.Write) + Using s1 As StreamWriter = New StreamWriter(fs1) + s1.Write(String.Concat("Title: ", title, vbNewLine)) + s1.Write(String.Concat("Message: ", msg, vbNewLine)) + s1.Write(String.Concat("StackTrace: ", stkTrace, vbNewLine)) + s1.Write(String.Concat("Date/Time: ", DateTime.Now.ToString(), vbNewLine)) + s1.Write(String.Concat("===========================================================================================", vbNewLine, vbNewLine)) + s1.Flush() + End Using + End Using + + If Notify Then ModulesManager.Instance.RunGeneric(Enums.ModuleEventType.Notification, New List(Of Object)(New Object() {"error", 1, Master.eLang.GetString(816, "An Error Has Occurred"), msg, Nothing})) + + RaiseEvent ErrorOccurred() + End If + Catch + End Try + End Sub + +#End Region 'Methods End Class diff --git a/EmberAPI/clsAPIFileUtils.vb b/EmberAPI/clsAPIFileUtils.vb index c451cf3..54bac48 100644 --- a/EmberAPI/clsAPIFileUtils.vb +++ b/EmberAPI/clsAPIFileUtils.vb @@ -107,19 +107,20 @@ Namespace FileUtils End Try End Function - #End Region 'Methods - Public Shared Function MakeValidFilename(ByVal filename As String) As String - filename = filename.Replace(":", " -") - filename = filename.Replace("/", String.Empty) - 'pattern = pattern.Replace("\", String.Empty) - filename = filename.Replace("|", String.Empty) - filename = filename.Replace("<", String.Empty) - filename = filename.Replace(">", String.Empty) - filename = filename.Replace("?", String.Empty) - filename = filename.Replace("*", String.Empty) - filename = filename.Replace(" ", " ") - Return filename - End Function + Public Shared Function MakeValidFilename(ByVal filename As String) As String + filename = filename.Replace(":", " -") + filename = filename.Replace("/", String.Empty) + 'pattern = pattern.Replace("\", String.Empty) + filename = filename.Replace("|", String.Empty) + filename = filename.Replace("<", String.Empty) + filename = filename.Replace(">", String.Empty) + filename = filename.Replace("?", String.Empty) + filename = filename.Replace("*", String.Empty) + filename = filename.Replace(" ", " ") + Return filename + End Function +#End Region 'Methods + End Class Public Class Delete @@ -175,221 +176,221 @@ Namespace FileUtils ''' DBMovie object to get paths from ''' True if files were found that are to be deleted, false if not. ''' Not used for cleaner, needs to be modified to reflect. - Public Function GetItemsToDelete(ByVal isCleaner As Boolean, ByVal mMovie As Structures.DBMovie) As List(Of IO.FileSystemInfo) - Dim dPath As String = String.Empty - Dim ItemsToDelete As New List(Of FileSystemInfo) - Dim fScanner As New Scanner - - Try - Dim MovieFile As New FileInfo(mMovie.Filename) - Dim MovieDir As DirectoryInfo = MovieFile.Directory - - If Master.eSettings.VideoTSParent AndAlso FileUtils.Common.isVideoTS(MovieDir.FullName) Then - dPath = String.Concat(Path.Combine(MovieDir.Parent.FullName, MovieDir.Parent.Name), ".ext") - ElseIf Master.eSettings.VideoTSParent AndAlso FileUtils.Common.isBDRip(MovieDir.FullName) Then - dPath = String.Concat(Path.Combine(MovieDir.Parent.Parent.FullName, MovieDir.Parent.Parent.Name), ".ext") - Else - dPath = mMovie.Filename - End If - - Dim sOrName As String = StringUtils.CleanStackingMarkers(Path.GetFileNameWithoutExtension(dPath)) - Dim sPathShort As String = Directory.GetParent(dPath).FullName - Dim sPathNoExt As String = Common.RemoveExtFromPath(dPath) - - Dim dirInfo As New DirectoryInfo(sPathShort) - Dim ioFi As New List(Of FileSystemInfo) - - Try - ioFi.AddRange(dirInfo.GetFiles()) - Catch - End Try - - If isCleaner AndAlso Master.eSettings.ExpertCleaner Then - - For Each sFile As FileInfo In ioFi - If Not Master.eSettings.CleanWhitelistExts.Contains(sFile.Extension.ToLower) AndAlso ((Master.eSettings.CleanWhitelistVideo AndAlso Not Master.eSettings.ValidExts.Contains(sFile.Extension.ToLower)) OrElse Not Master.eSettings.CleanWhitelistVideo) Then - sFile.Delete() - End If - Next - - Else - - If Not isCleaner Then - Dim fPath As String = mMovie.FanartPath - Dim tPath As String = String.Empty - If Not String.IsNullOrEmpty(fPath) AndAlso File.Exists(fPath) Then - If Common.isVideoTS(fPath) Then - If Path.GetFileName(fPath).ToLower = "fanart.jpg" Then - tPath = Path.Combine(Master.eSettings.BDPath, String.Concat(Directory.GetParent(Directory.GetParent(fPath).FullName).Name, "-fanart.jpg")) - Else - tPath = Path.Combine(Master.eSettings.BDPath, Path.GetFileName(fPath)) - End If - ElseIf Common.isBDRip(fPath) Then - If Path.GetFileName(fPath).ToLower = "fanart.jpg" Then - tPath = Path.Combine(Master.eSettings.BDPath, String.Concat(Directory.GetParent(Directory.GetParent(Directory.GetParent(fPath).FullName).FullName).Name, "-fanart.jpg")) - Else - tPath = Path.Combine(Master.eSettings.BDPath, Path.GetFileName(fPath)) - End If - Else - If Path.GetFileName(fPath).ToLower = "fanart.jpg" Then - tPath = Path.Combine(Master.eSettings.BDPath, String.Concat(Path.GetFileNameWithoutExtension(mMovie.Filename), "-fanart.jpg")) - Else - tPath = Path.Combine(Master.eSettings.BDPath, Path.GetFileName(fPath)) - End If - End If - End If - If Not String.IsNullOrEmpty(tPath) Then - If IO.File.Exists(tPath) Then - ItemsToDelete.Add(New IO.FileInfo(tPath)) - End If - End If - End If - - If Not isCleaner AndAlso mMovie.isSingle AndAlso Not Master.SourcesList.Contains(MovieDir.Parent.ToString) Then - If Common.isVideoTS(MovieDir.FullName) Then - ItemsToDelete.Add(MovieDir.Parent) - ElseIf Common.isBDRip(MovieDir.FullName) Then - ItemsToDelete.Add(MovieDir.Parent.Parent) - Else - 'check if there are other folders with movies in them - If Not fScanner.SubDirsHaveMovies(MovieDir) Then - 'no movies in sub dirs... delete the whole thing - ItemsToDelete.Add(MovieDir) - Else - 'just delete the movie file itself - ItemsToDelete.Add(New IO.FileInfo(mMovie.Filename)) - End If - End If - Else - For Each lFI As FileInfo In ioFi - If isCleaner Then - If (Master.eSettings.CleanFolderJPG AndAlso lFI.FullName.ToLower = Path.Combine(sPathShort.ToLower, "folder.jpg")) _ - OrElse (Master.eSettings.CleanFanartJPG AndAlso lFI.FullName.ToLower = Path.Combine(sPathShort.ToLower, "fanart.jpg")) _ - OrElse (Master.eSettings.CleanMovieTBN AndAlso lFI.FullName.ToLower = Path.Combine(sPathShort.ToLower, "movie.tbn")) _ - OrElse (Master.eSettings.CleanMovieNFO AndAlso lFI.FullName.ToLower = Path.Combine(sPathShort.ToLower, "movie.nfo")) _ - OrElse (Master.eSettings.CleanPosterTBN AndAlso lFI.FullName.ToLower = Path.Combine(sPathShort.ToLower, "poster.tbn")) _ - OrElse (Master.eSettings.CleanPosterJPG AndAlso lFI.FullName.ToLower = Path.Combine(sPathShort.ToLower, "poster.jpg")) _ - OrElse (Master.eSettings.CleanMovieJPG AndAlso lFI.FullName.ToLower = Path.Combine(sPathShort.ToLower, "movie.jpg")) Then - File.Delete(lFI.FullName) - Continue For - End If - End If - - If (Master.eSettings.CleanMovieTBNB AndAlso isCleaner) OrElse (Not isCleaner) Then - If lFI.FullName.ToLower = String.Concat(sPathNoExt.ToLower, ".tbn") _ - OrElse lFI.FullName.ToLower = Path.Combine(sPathShort.ToLower, "video_ts.tbn") _ - OrElse lFI.FullName.ToLower = Path.Combine(sPathShort.ToLower, "index.tbn") _ - OrElse lFI.FullName.ToLower = String.Concat(Path.Combine(sPathShort.ToLower, sOrName.ToLower), ".tbn") Then - If isCleaner Then - File.Delete(lFI.FullName) - Else - ItemsToDelete.Add(lFI) - End If - Continue For - End If - End If - - If (Master.eSettings.CleanMovieFanartJPG AndAlso isCleaner) OrElse (Not isCleaner) Then - If lFI.FullName.ToLower = String.Concat(sPathNoExt.ToLower, "-fanart.jpg") _ - OrElse lFI.FullName.ToLower = Path.Combine(sPathShort.ToLower, "video_ts-fanart.jpg") _ - OrElse lFI.FullName.ToLower = Path.Combine(sPathShort.ToLower, "index-fanart.jpg") _ - OrElse lFI.FullName.ToLower = String.Concat(Path.Combine(sPathShort.ToLower, sOrName.ToLower), "-fanart.jpg") Then - If isCleaner Then - File.Delete(lFI.FullName) - Else - ItemsToDelete.Add(lFI) - End If - Continue For - End If - End If - - If (Master.eSettings.CleanMovieNFOB AndAlso isCleaner) OrElse (Not isCleaner) Then - If lFI.FullName.ToLower = String.Concat(sPathNoExt.ToLower, ".nfo") _ - OrElse lFI.FullName.ToLower = Path.Combine(sPathShort.ToLower, "video_ts.nfo") _ - OrElse lFI.FullName.ToLower = Path.Combine(sPathShort.ToLower, "index.nfo") _ - OrElse lFI.FullName.ToLower = String.Concat(Path.Combine(sPathShort.ToLower, sOrName.ToLower), ".nfo") Then - If isCleaner Then - File.Delete(lFI.FullName) - Else - ItemsToDelete.Add(lFI) - End If - Continue For - End If - End If - - If (Master.eSettings.CleanDotFanartJPG AndAlso isCleaner) OrElse (Not isCleaner) Then - If lFI.FullName.ToLower = String.Concat(sPathNoExt.ToLower, ".fanart.jpg") _ - OrElse lFI.FullName.ToLower = Path.Combine(sPathShort.ToLower, "video_ts.fanart.jpg") _ - OrElse lFI.FullName.ToLower = Path.Combine(sPathShort.ToLower, "index.fanart.jpg") _ - OrElse lFI.FullName.ToLower = String.Concat(Path.Combine(sPathShort.ToLower, sOrName.ToLower), ".fanart.jpg") Then - If isCleaner Then - File.Delete(lFI.FullName) - Else - ItemsToDelete.Add(lFI) - End If - Continue For - End If - End If - - If (Master.eSettings.CleanMovieNameJPG AndAlso isCleaner) OrElse (Not isCleaner) Then - If lFI.FullName.ToLower = String.Concat(sPathNoExt.ToLower, ".jpg") _ - OrElse lFI.FullName.ToLower = Path.Combine(sPathShort.ToLower, "video_ts.jpg") _ - OrElse lFI.FullName.ToLower = Path.Combine(sPathShort.ToLower, "index.jpg") _ - OrElse lFI.FullName.ToLower = String.Concat(Path.Combine(sPathShort.ToLower, sOrName.ToLower), ".jpg") Then - If isCleaner Then - File.Delete(lFI.FullName) - Else - ItemsToDelete.Add(lFI) - End If - Continue For - End If - End If - Next - - If Not isCleaner Then - - ioFi.Clear() - Try - If mMovie.isSingle Then ioFi.AddRange(dirInfo.GetFiles(String.Concat(sOrName, "*.*"))) - Catch - End Try - - Try - ioFi.AddRange(dirInfo.GetFiles(String.Concat(Path.GetFileNameWithoutExtension(mMovie.Filename), ".*"))) - Catch - End Try - - ItemsToDelete.AddRange(ioFi) - - End If - - If Master.eSettings.CleanExtraThumbs Then - If Directory.Exists(Path.Combine(sPathShort, "extrathumbs")) Then - If isCleaner Then - DeleteDirectory(Path.Combine(sPathShort, "extrathumbs")) - Else - Dim dir As New DirectoryInfo(Path.Combine(sPathShort, "extrathumbs")) - If dir.Exists Then - ItemsToDelete.Add(dir) - End If - End If - End If - End If - - End If - End If - - ioFi = Nothing - dirInfo = Nothing - Catch ex As Exception - Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") - End Try - Return ItemsToDelete - End Function - -#End Region 'Methods - - End Class + Public Function GetItemsToDelete(ByVal isCleaner As Boolean, ByVal mMovie As Structures.DBMovie) As List(Of IO.FileSystemInfo) + Dim dPath As String = String.Empty + Dim ItemsToDelete As New List(Of FileSystemInfo) + Dim fScanner As New Scanner + + Try + Dim MovieFile As New FileInfo(mMovie.Filename) + Dim MovieDir As DirectoryInfo = MovieFile.Directory + + If Master.eSettings.VideoTSParent AndAlso FileUtils.Common.isVideoTS(MovieDir.FullName) Then + dPath = String.Concat(Path.Combine(MovieDir.Parent.FullName, MovieDir.Parent.Name), ".ext") + ElseIf Master.eSettings.VideoTSParent AndAlso FileUtils.Common.isBDRip(MovieDir.FullName) Then + dPath = String.Concat(Path.Combine(MovieDir.Parent.Parent.FullName, MovieDir.Parent.Parent.Name), ".ext") + Else + dPath = mMovie.Filename + End If + + Dim sOrName As String = StringUtils.CleanStackingMarkers(Path.GetFileNameWithoutExtension(dPath)) + Dim sPathShort As String = Directory.GetParent(dPath).FullName + Dim sPathNoExt As String = Common.RemoveExtFromPath(dPath) + + Dim dirInfo As New DirectoryInfo(sPathShort) + Dim ioFi As New List(Of FileSystemInfo) + + Try + ioFi.AddRange(dirInfo.GetFiles()) + Catch + End Try + + If isCleaner AndAlso Master.eSettings.ExpertCleaner Then + + For Each sFile As FileInfo In ioFi + If Not Master.eSettings.CleanWhitelistExts.Contains(sFile.Extension.ToLower) AndAlso ((Master.eSettings.CleanWhitelistVideo AndAlso Not Master.eSettings.ValidExts.Contains(sFile.Extension.ToLower)) OrElse Not Master.eSettings.CleanWhitelistVideo) Then + sFile.Delete() + End If + Next + + Else + + If Not isCleaner Then + Dim fPath As String = mMovie.FanartPath + Dim tPath As String = String.Empty + If Not String.IsNullOrEmpty(fPath) AndAlso File.Exists(fPath) Then + If Common.isVideoTS(fPath) Then + If Path.GetFileName(fPath).ToLower = "fanart.jpg" Then + tPath = Path.Combine(Master.eSettings.BDPath, String.Concat(Directory.GetParent(Directory.GetParent(fPath).FullName).Name, "-fanart.jpg")) + Else + tPath = Path.Combine(Master.eSettings.BDPath, Path.GetFileName(fPath)) + End If + ElseIf Common.isBDRip(fPath) Then + If Path.GetFileName(fPath).ToLower = "fanart.jpg" Then + tPath = Path.Combine(Master.eSettings.BDPath, String.Concat(Directory.GetParent(Directory.GetParent(Directory.GetParent(fPath).FullName).FullName).Name, "-fanart.jpg")) + Else + tPath = Path.Combine(Master.eSettings.BDPath, Path.GetFileName(fPath)) + End If + Else + If Path.GetFileName(fPath).ToLower = "fanart.jpg" Then + tPath = Path.Combine(Master.eSettings.BDPath, String.Concat(Path.GetFileNameWithoutExtension(mMovie.Filename), "-fanart.jpg")) + Else + tPath = Path.Combine(Master.eSettings.BDPath, Path.GetFileName(fPath)) + End If + End If + End If + If Not String.IsNullOrEmpty(tPath) Then + If IO.File.Exists(tPath) Then + ItemsToDelete.Add(New IO.FileInfo(tPath)) + End If + End If + End If + + If Not isCleaner AndAlso mMovie.isSingle AndAlso Not Master.SourcesList.Contains(MovieDir.Parent.ToString) Then + If Common.isVideoTS(MovieDir.FullName) Then + ItemsToDelete.Add(MovieDir.Parent) + ElseIf Common.isBDRip(MovieDir.FullName) Then + ItemsToDelete.Add(MovieDir.Parent.Parent) + Else + 'check if there are other folders with movies in them + If Not fScanner.SubDirsHaveMovies(MovieDir) Then + 'no movies in sub dirs... delete the whole thing + ItemsToDelete.Add(MovieDir) + Else + 'just delete the movie file itself + ItemsToDelete.Add(New IO.FileInfo(mMovie.Filename)) + End If + End If + Else + For Each lFI As FileInfo In ioFi + If isCleaner Then + If (Master.eSettings.CleanFolderJPG AndAlso lFI.FullName.ToLower = Path.Combine(sPathShort.ToLower, "folder.jpg")) _ + OrElse (Master.eSettings.CleanFanartJPG AndAlso lFI.FullName.ToLower = Path.Combine(sPathShort.ToLower, "fanart.jpg")) _ + OrElse (Master.eSettings.CleanMovieTBN AndAlso lFI.FullName.ToLower = Path.Combine(sPathShort.ToLower, "movie.tbn")) _ + OrElse (Master.eSettings.CleanMovieNFO AndAlso lFI.FullName.ToLower = Path.Combine(sPathShort.ToLower, "movie.nfo")) _ + OrElse (Master.eSettings.CleanPosterTBN AndAlso lFI.FullName.ToLower = Path.Combine(sPathShort.ToLower, "poster.tbn")) _ + OrElse (Master.eSettings.CleanPosterJPG AndAlso lFI.FullName.ToLower = Path.Combine(sPathShort.ToLower, "poster.jpg")) _ + OrElse (Master.eSettings.CleanMovieJPG AndAlso lFI.FullName.ToLower = Path.Combine(sPathShort.ToLower, "movie.jpg")) Then + File.Delete(lFI.FullName) + Continue For + End If + End If + + If (Master.eSettings.CleanMovieTBNB AndAlso isCleaner) OrElse (Not isCleaner) Then + If lFI.FullName.ToLower = String.Concat(sPathNoExt.ToLower, ".tbn") _ + OrElse lFI.FullName.ToLower = Path.Combine(sPathShort.ToLower, "video_ts.tbn") _ + OrElse lFI.FullName.ToLower = Path.Combine(sPathShort.ToLower, "index.tbn") _ + OrElse lFI.FullName.ToLower = String.Concat(Path.Combine(sPathShort.ToLower, sOrName.ToLower), ".tbn") Then + If isCleaner Then + File.Delete(lFI.FullName) + Else + ItemsToDelete.Add(lFI) + End If + Continue For + End If + End If + + If (Master.eSettings.CleanMovieFanartJPG AndAlso isCleaner) OrElse (Not isCleaner) Then + If lFI.FullName.ToLower = String.Concat(sPathNoExt.ToLower, "-fanart.jpg") _ + OrElse lFI.FullName.ToLower = Path.Combine(sPathShort.ToLower, "video_ts-fanart.jpg") _ + OrElse lFI.FullName.ToLower = Path.Combine(sPathShort.ToLower, "index-fanart.jpg") _ + OrElse lFI.FullName.ToLower = String.Concat(Path.Combine(sPathShort.ToLower, sOrName.ToLower), "-fanart.jpg") Then + If isCleaner Then + File.Delete(lFI.FullName) + Else + ItemsToDelete.Add(lFI) + End If + Continue For + End If + End If + + If (Master.eSettings.CleanMovieNFOB AndAlso isCleaner) OrElse (Not isCleaner) Then + If lFI.FullName.ToLower = String.Concat(sPathNoExt.ToLower, ".nfo") _ + OrElse lFI.FullName.ToLower = Path.Combine(sPathShort.ToLower, "video_ts.nfo") _ + OrElse lFI.FullName.ToLower = Path.Combine(sPathShort.ToLower, "index.nfo") _ + OrElse lFI.FullName.ToLower = String.Concat(Path.Combine(sPathShort.ToLower, sOrName.ToLower), ".nfo") Then + If isCleaner Then + File.Delete(lFI.FullName) + Else + ItemsToDelete.Add(lFI) + End If + Continue For + End If + End If + + If (Master.eSettings.CleanDotFanartJPG AndAlso isCleaner) OrElse (Not isCleaner) Then + If lFI.FullName.ToLower = String.Concat(sPathNoExt.ToLower, ".fanart.jpg") _ + OrElse lFI.FullName.ToLower = Path.Combine(sPathShort.ToLower, "video_ts.fanart.jpg") _ + OrElse lFI.FullName.ToLower = Path.Combine(sPathShort.ToLower, "index.fanart.jpg") _ + OrElse lFI.FullName.ToLower = String.Concat(Path.Combine(sPathShort.ToLower, sOrName.ToLower), ".fanart.jpg") Then + If isCleaner Then + File.Delete(lFI.FullName) + Else + ItemsToDelete.Add(lFI) + End If + Continue For + End If + End If + + If (Master.eSettings.CleanMovieNameJPG AndAlso isCleaner) OrElse (Not isCleaner) Then + If lFI.FullName.ToLower = String.Concat(sPathNoExt.ToLower, ".jpg") _ + OrElse lFI.FullName.ToLower = Path.Combine(sPathShort.ToLower, "video_ts.jpg") _ + OrElse lFI.FullName.ToLower = Path.Combine(sPathShort.ToLower, "index.jpg") _ + OrElse lFI.FullName.ToLower = String.Concat(Path.Combine(sPathShort.ToLower, sOrName.ToLower), ".jpg") Then + If isCleaner Then + File.Delete(lFI.FullName) + Else + ItemsToDelete.Add(lFI) + End If + Continue For + End If + End If + Next + + If Not isCleaner Then + + ioFi.Clear() + Try + If mMovie.isSingle Then ioFi.AddRange(dirInfo.GetFiles(String.Concat(sOrName, "*.*"))) + Catch + End Try + + Try + ioFi.AddRange(dirInfo.GetFiles(String.Concat(Path.GetFileNameWithoutExtension(mMovie.Filename), ".*"))) + Catch + End Try + + ItemsToDelete.AddRange(ioFi) + + End If + + If Master.eSettings.CleanExtraThumbs Then + If Directory.Exists(Path.Combine(sPathShort, "extrathumbs")) Then + If isCleaner Then + DeleteDirectory(Path.Combine(sPathShort, "extrathumbs")) + Else + Dim dir As New DirectoryInfo(Path.Combine(sPathShort, "extrathumbs")) + If dir.Exists Then + ItemsToDelete.Add(dir) + End If + End If + End If + End If + + End If + End If + + ioFi = Nothing + dirInfo = Nothing + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + Return ItemsToDelete + End Function + +#End Region 'Methods + + End Class Public Class FileSorter @@ -401,51 +402,52 @@ Namespace FileUtils #Region "Methods" - Public Sub SortFiles(ByVal sPath As String) - Dim tmpAL As New List(Of String) - Dim tmpPath As String = String.Empty - Dim tmpName As String = String.Empty - Dim iCount As Integer = 0 - Try - If Directory.Exists(sPath) Then - Dim di As New DirectoryInfo(sPath) - Dim lFi As New List(Of FileInfo) - - Try - lFi.AddRange(di.GetFiles()) - Catch - End Try - - RaiseEvent ProgressUpdated(lFi.Count, String.Empty) - - For Each sFile As FileInfo In lFi - RaiseEvent ProgressUpdated(iCount, String.Concat(Master.eLang.GetString(219, "Moving "), sFile.Name)) + Public Sub SortFiles(ByVal sPath As String) + Dim tmpAL As New List(Of String) + Dim tmpPath As String = String.Empty + Dim tmpName As String = String.Empty + Dim iCount As Integer = 0 + Try + If Directory.Exists(sPath) Then + Dim di As New DirectoryInfo(sPath) + Dim lFi As New List(Of FileInfo) + + Try + lFi.AddRange(di.GetFiles()) + Catch + End Try + + RaiseEvent ProgressUpdated(lFi.Count, String.Empty) + + For Each sFile As FileInfo In lFi + RaiseEvent ProgressUpdated(iCount, String.Concat(Master.eLang.GetString(219, "Moving "), sFile.Name)) tmpName = Path.GetFileNameWithoutExtension(sFile.Name) - tmpName = tmpName.Replace(".fanart", String.Empty) - tmpName = tmpName.Replace("-fanart", String.Empty) - tmpName = tmpName.Replace("-trailer", String.Empty) - tmpName = Regex.Replace(tmpName, "\[trailer(\d+)\]", String.Empty) - tmpName = StringUtils.CleanStackingMarkers(tmpName) - tmpPath = Path.Combine(sPath, tmpName) - If Not Directory.Exists(tmpPath) Then - Directory.CreateDirectory(tmpPath) - End If - - File.Move(sFile.FullName, Path.Combine(tmpPath, sFile.Name)) - iCount += 1 - Next - - lFi = Nothing - di = Nothing - End If - Catch ex As Exception - Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") - End Try - End Sub - -#End Region 'Methods - - End Class + tmpName = tmpName.Replace("-poster", String.Empty) + tmpName = tmpName.Replace(".fanart", String.Empty) + tmpName = tmpName.Replace("-fanart", String.Empty) + tmpName = tmpName.Replace("-trailer", String.Empty) + tmpName = Regex.Replace(tmpName, "\[trailer(\d+)\]", String.Empty) + tmpName = StringUtils.CleanStackingMarkers(tmpName) + tmpPath = Path.Combine(sPath, tmpName) + If Not Directory.Exists(tmpPath) Then + Directory.CreateDirectory(tmpPath) + End If + + File.Move(sFile.FullName, Path.Combine(tmpPath, sFile.Name)) + iCount += 1 + Next + + lFi = Nothing + di = Nothing + End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + +#End Region 'Methods + + End Class End Namespace diff --git a/EmberAPI/clsAPIHTTP.vb b/EmberAPI/clsAPIHTTP.vb index 9d6daf8..d1c3fe1 100644 --- a/EmberAPI/clsAPIHTTP.vb +++ b/EmberAPI/clsAPIHTTP.vb @@ -28,363 +28,438 @@ Public Class HTTP #Region "Fields" - Private dThread As New Threading.Thread(AddressOf DownloadImage) - Private wrRequest As HttpWebRequest - Private _cancel As Boolean - Private _image As Image - Private _responseuri As String - Private _URL As String = String.Empty -#End Region 'Fields + Private dThread As New Threading.Thread(AddressOf DownloadImage) + Private wrRequest As HttpWebRequest + Private _cancel As Boolean + Private _image As Image + Private _ms As MemoryStream = New MemoryStream() + Private _responseuri As String + Private _URL As String = String.Empty + Private _isJPG As Boolean = False +#End Region 'Fields #Region "Constructors" - Public Sub New() - Me.Clear() - End Sub + Public Sub New() + Me.Clear() + End Sub - Protected Overrides Sub Finalize() - Me.wrRequest = Nothing - MyBase.Finalize() - End Sub + Protected Overrides Sub Finalize() + Me.wrRequest = Nothing + MyBase.Finalize() + End Sub -#End Region 'Constructors +#End Region 'Constructors #Region "Events" - Public Event ProgressUpdated(ByVal iPercent As Integer) + Public Event ProgressUpdated(ByVal iPercent As Integer) -#End Region 'Events +#End Region 'Events #Region "Properties" - Public ReadOnly Property Image() As Image - Get - Return Me._image - End Get - End Property - - Public Property ResponseUri() As String - Get - Return Me._responseuri - End Get - Set(ByVal value As String) - Me._responseuri = value - End Set - End Property - -#End Region 'Properties + Public ReadOnly Property Image() As Image + Get + Return Me._image + End Get + End Property + + Public ReadOnly Property isJPG() As Boolean + Get + Return Me._isJPG + End Get + End Property + + Public ReadOnly Property ms() As MemoryStream + Get + Return Me._ms + End Get + End Property + + Public Property ResponseUri() As String + Get + Return Me._responseuri + End Get + Set(ByVal value As String) + Me._responseuri = value + End Set + End Property + +#End Region 'Properties #Region "Methods" - Public Sub Cancel() - Me._cancel = True - If Not IsNothing(Me.wrRequest) Then Me.wrRequest.Abort() - End Sub - - Public Sub Clear() - Me._responseuri = String.Empty - Me._image = Nothing - Me._cancel = False - End Sub - Public Function DownloadData(ByVal URL As String) As String - Dim sResponse As String = String.Empty - Dim cEncoding As System.Text.Encoding - - Me.Clear() - - Try - Me.wrRequest = DirectCast(WebRequest.Create(URL), HttpWebRequest) - Me.wrRequest.Timeout = 20000 - Me.wrRequest.Headers.Add("Accept-Encoding", "gzip,deflate") - Me.wrRequest.KeepAlive = False - - If Not String.IsNullOrEmpty(Master.eSettings.ProxyURI) AndAlso Master.eSettings.ProxyPort >= 0 Then - Dim wProxy As New WebProxy(Master.eSettings.ProxyURI, Master.eSettings.ProxyPort) - wProxy.BypassProxyOnLocal = True - If Not String.IsNullOrEmpty(Master.eSettings.ProxyCreds.UserName) Then - wProxy.Credentials = Master.eSettings.ProxyCreds - Else - wProxy.Credentials = CredentialCache.DefaultCredentials - End If - Me.wrRequest.Proxy = wProxy - End If - Using wrResponse As HttpWebResponse = DirectCast(Me.wrRequest.GetResponse(), HttpWebResponse) - Select Case True - 'for our purposes I think it's safe to assume that all xmls we will be dealing with will be UTF-8 encoded - Case wrResponse.ContentType.ToLower.Contains("/xml") OrElse wrResponse.ContentType.ToLower.Contains("charset=utf-8") - cEncoding = System.Text.Encoding.UTF8 - Case Else - cEncoding = System.Text.Encoding.GetEncoding(28591) - End Select - Using Ms As Stream = wrResponse.GetResponseStream - If wrResponse.ContentEncoding.ToLower = "gzip" Then - sResponse = New StreamReader(New GZipStream(Ms, CompressionMode.Decompress), cEncoding, True).ReadToEnd - ElseIf wrResponse.ContentEncoding.ToLower = "deflate" Then - sResponse = New StreamReader(New DeflateStream(Ms, CompressionMode.Decompress), cEncoding, True).ReadToEnd - Else - sResponse = New StreamReader(Ms, cEncoding, True).ReadToEnd - End If - End Using - Me._responseuri = wrResponse.ResponseUri.ToString - End Using - Catch ex As Exception - End Try - - Return sResponse - End Function - Private Function MakePostFieldText(ByVal Boundary As String, ByVal name As String, ByVal value As String) As String - Return String.Concat(Boundary, vbCrLf, String.Format("Content-Disposition:form-data;name=""{0}""", name), vbCrLf, vbCrLf, value, vbCrLf) - End Function - Private Function MakePostFieldFile(ByVal Boundary As String, ByVal name As String) As String - Return String.Concat(Boundary, vbCrLf, String.Format("Content-Disposition:form-data;name=""file"";filename=""{0}""", name), vbCrLf, "Content-Type: application/octet-stream", vbCrLf, vbCrLf) - End Function - - Public Function PostDownloadData(ByVal URL As String, ByVal postDataList As List(Of String())) As String - Dim sResponse As String = String.Empty - Dim cEncoding As System.Text.Encoding - Dim Idboundary As String = Convert.ToInt64(Functions.ConvertToUnixTimestamp(Now)).ToString - Dim Boundary As String = String.Format("--{0}", Idboundary) - Dim postDataBytes As New List(Of Byte()) - Me.Clear() - System.Net.ServicePointManager.Expect100Continue = False - Try - For Each s() As String In postDataList - If s.Count = 2 Then postDataBytes.Add(System.Text.Encoding.UTF8.GetBytes(String.Concat(MakePostFieldText(Boundary, s(0), s(1))))) - If s.Count = 3 Then - Select Case s(2) - Case "file" 'array in list is {filename,filepath,"file"} - postDataBytes.Add(System.Text.Encoding.UTF8.GetBytes(String.Concat(MakePostFieldFile(Boundary, s(0))))) - postDataBytes.Add(File.ReadAllBytes(s(1))) - postDataBytes.Add(System.Text.Encoding.UTF8.GetBytes(String.Concat(vbCrLf, Boundary, vbCrLf))) - End Select - End If - Next - postDataBytes.Add(System.Text.Encoding.UTF8.GetBytes(String.Concat(Boundary, vbCrLf))) - - Me.wrRequest = DirectCast(WebRequest.Create(URL), HttpWebRequest) - Me.wrRequest.Timeout = 20000 - Me.wrRequest.Headers.Add("Accept-Encoding", "gzip,deflate") - If Not String.IsNullOrEmpty(Master.eSettings.ProxyURI) AndAlso Master.eSettings.ProxyPort >= 0 Then - Dim wProxy As New WebProxy(Master.eSettings.ProxyURI, Master.eSettings.ProxyPort) - wProxy.BypassProxyOnLocal = True - If Not String.IsNullOrEmpty(Master.eSettings.ProxyCreds.UserName) Then - wProxy.Credentials = Master.eSettings.ProxyCreds - Else - wProxy.Credentials = CredentialCache.DefaultCredentials - End If - Me.wrRequest.Proxy = wProxy - End If - Me.wrRequest.Method = "POST" - Me.wrRequest.ContentType = String.Concat("multipart/form-data;boundary=", Idboundary) - Dim size As Integer = 0 - For i As Integer = 0 To postDataBytes.Count - 1 - size += postDataBytes(i).Length - Next - Me.wrRequest.ContentLength = size - Dim newStream As Stream = Me.wrRequest.GetRequestStream() - For i As Integer = 0 To postDataBytes.Count - 1 - newStream.Write(postDataBytes(i), 0, postDataBytes(i).Length) - Next - newStream.Close() - - Using wrResponse As HttpWebResponse = DirectCast(Me.wrRequest.GetResponse(), HttpWebResponse) - Select Case True - Case wrResponse.ContentType.ToLower.Contains("/xml") OrElse wrResponse.ContentType.ToLower.Contains("charset=utf-8") - cEncoding = System.Text.Encoding.UTF8 - Case Else - cEncoding = System.Text.Encoding.GetEncoding(28591) - End Select - Using Ms As Stream = wrResponse.GetResponseStream - If wrResponse.ContentEncoding.ToLower = "gzip" Then - sResponse = New StreamReader(New GZipStream(Ms, CompressionMode.Decompress), cEncoding, True).ReadToEnd - ElseIf wrResponse.ContentEncoding.ToLower = "deflate" Then - sResponse = New StreamReader(New DeflateStream(Ms, CompressionMode.Decompress), cEncoding, True).ReadToEnd - Else - sResponse = New StreamReader(Ms, cEncoding, True).ReadToEnd - End If - End Using - Me._responseuri = wrResponse.ResponseUri.ToString - End Using - Catch ex As Exception - Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error", False) - End Try - - Return sResponse - End Function - - Public Function DownloadFile(ByVal URL As String, ByVal LocalFile As String, ByVal ReportUpdate As Boolean, ByVal Type As String) As String - Dim outFile As String = String.Empty - Dim urlExt As String = String.Empty - - Me._cancel = False - Try - Me.wrRequest = DirectCast(WebRequest.Create(URL), HttpWebRequest) - Me.wrRequest.Timeout = 20000 - - If Not String.IsNullOrEmpty(Master.eSettings.ProxyURI) AndAlso Master.eSettings.ProxyPort >= 0 Then - Dim wProxy As New WebProxy(Master.eSettings.ProxyURI, Master.eSettings.ProxyPort) - wProxy.BypassProxyOnLocal = True - If Not String.IsNullOrEmpty(Master.eSettings.ProxyCreds.UserName) Then - wProxy.Credentials = Master.eSettings.ProxyCreds - Else - wProxy.Credentials = CredentialCache.DefaultCredentials - End If - Me.wrRequest.Proxy = wProxy - End If - - Try - urlExt = Path.GetExtension(URL) - Catch - End Try - - Using wrResponse As HttpWebResponse = DirectCast(Me.wrRequest.GetResponse(), HttpWebResponse) - Select Case True - Case Type = "trailer" AndAlso Master.eSettings.ValidExts.Contains(urlExt) - outFile = Path.Combine(Directory.GetParent(LocalFile).FullName, String.Concat(Path.GetFileNameWithoutExtension(LocalFile), If(Master.eSettings.DashTrailer, "-trailer", "[trailer]"), Path.GetExtension(URL))) - Case Type = "trailer" AndAlso Master.eSettings.ValidExts.Contains(Path.GetExtension(wrResponse.ResponseUri.AbsolutePath)) - outFile = Path.Combine(Directory.GetParent(LocalFile).FullName, String.Concat(Path.GetFileNameWithoutExtension(LocalFile), If(Master.eSettings.DashTrailer, "-trailer", "[trailer]"), Path.GetExtension(wrResponse.ResponseUri.AbsolutePath))) - Case Type = "trailer" AndAlso wrResponse.ContentType.Contains("mp4") - outFile = Path.Combine(Directory.GetParent(LocalFile).FullName, String.Concat(Path.GetFileNameWithoutExtension(LocalFile), If(Master.eSettings.DashTrailer, "-trailer.mp4", "[trailer].mp4"))) - Case Type = "trailer" AndAlso wrResponse.ContentType.Contains("flv") - outFile = Path.Combine(Directory.GetParent(LocalFile).FullName, String.Concat(Path.GetFileNameWithoutExtension(LocalFile), If(Master.eSettings.DashTrailer, "-trailer.flv", "[trailer].flv"))) - Case Type = "trailer" AndAlso wrResponse.ContentType.Contains("webm") - outFile = Path.Combine(Directory.GetParent(LocalFile).FullName, String.Concat(Path.GetFileNameWithoutExtension(LocalFile), If(Master.eSettings.DashTrailer, "-trailer.webm", "[trailer].webm"))) - Case Type = "other" - outFile = LocalFile - End Select - - If Not String.IsNullOrEmpty(outFile) AndAlso Not wrResponse.ContentLength = 0 Then - - If File.Exists(outFile) Then File.Delete(outFile) - - Using Ms As Stream = wrResponse.GetResponseStream - Using mStream As New FileStream(outFile, FileMode.Create, FileAccess.Write) - Dim StreamBuffer(4096) As Byte - Dim BlockSize As Integer - Dim iProgress As Integer - Dim iCurrent As Integer - Do - BlockSize = Ms.Read(StreamBuffer, 0, 4096) - iCurrent += BlockSize - If BlockSize > 0 Then - mStream.Write(StreamBuffer, 0, BlockSize) - If ReportUpdate Then - iProgress = Convert.ToInt32((iCurrent / wrResponse.ContentLength) * 100) - RaiseEvent ProgressUpdated(iProgress) - End If - End If - Loop While BlockSize > 0 AndAlso Not Me._cancel - StreamBuffer = Nothing - End Using - End Using - End If - - End Using - Catch ex As Exception - End Try - - Return outFile - End Function - - Public Sub DownloadImage() - Try - If StringUtils.isValidURL(Me._URL) Then - Me.wrRequest = DirectCast(HttpWebRequest.Create(Me._URL), HttpWebRequest) - Me.wrRequest.Timeout = 20000 - - If Me._cancel Then Return - - If Not String.IsNullOrEmpty(Master.eSettings.ProxyURI) AndAlso Master.eSettings.ProxyPort >= 0 Then - Dim wProxy As New WebProxy(Master.eSettings.ProxyURI, Master.eSettings.ProxyPort) - wProxy.BypassProxyOnLocal = True - If Not String.IsNullOrEmpty(Master.eSettings.ProxyCreds.UserName) AndAlso _ - Not String.IsNullOrEmpty(Master.eSettings.ProxyCreds.Password) Then - wProxy.Credentials = Master.eSettings.ProxyCreds - Else - wProxy.Credentials = CredentialCache.DefaultCredentials - End If - Me.wrRequest.Proxy = wProxy - End If - - If Me._cancel Then Return - - Using wrResponse As WebResponse = Me.wrRequest.GetResponse() - If Me._cancel Then Return - Dim temp As String = wrResponse.ContentType.ToString - If wrResponse.ContentType.ToLower.Contains("image") Then - If Me._cancel Then Return - Me._image = Image.FromStream(wrResponse.GetResponseStream) - End If - End Using - End If - Catch - End Try - End Sub - - Public Function DownloadZip(ByVal URL As String) As Byte() - Me.wrRequest = DirectCast(WebRequest.Create(URL), HttpWebRequest) - - Try - Me.wrRequest.Timeout = 20000 - - If Not String.IsNullOrEmpty(Master.eSettings.ProxyURI) AndAlso Master.eSettings.ProxyPort >= 0 Then - Dim wProxy As New WebProxy(Master.eSettings.ProxyURI, Master.eSettings.ProxyPort) - wProxy.BypassProxyOnLocal = True - If Not String.IsNullOrEmpty(Master.eSettings.ProxyCreds.UserName) Then - wProxy.Credentials = Master.eSettings.ProxyCreds - Else - wProxy.Credentials = CredentialCache.DefaultCredentials - End If - Me.wrRequest.Proxy = wProxy - End If - - Using wrResponse As HttpWebResponse = DirectCast(Me.wrRequest.GetResponse(), HttpWebResponse) - Return Functions.ReadStreamToEnd(wrResponse.GetResponseStream) - End Using - Catch - End Try - - Return Nothing - End Function - - Public Function IsDownloading() As Boolean - Return Me.dThread.IsAlive - End Function - - Public Function IsValidURL(ByVal URL As String) As Boolean - Dim wrResponse As WebResponse - Try - Me.wrRequest = DirectCast(WebRequest.Create(URL), HttpWebRequest) - - If Not String.IsNullOrEmpty(Master.eSettings.ProxyURI) AndAlso Master.eSettings.ProxyPort >= 0 Then - Dim wProxy As New WebProxy(Master.eSettings.ProxyURI, Master.eSettings.ProxyPort) - wProxy.BypassProxyOnLocal = True - If Not String.IsNullOrEmpty(Master.eSettings.ProxyCreds.UserName) Then - wProxy.Credentials = Master.eSettings.ProxyCreds - Else - wProxy.Credentials = CredentialCache.DefaultCredentials - End If - Me.wrRequest.Proxy = wProxy - End If - - Dim noCachePolicy As System.Net.Cache.HttpRequestCachePolicy = New System.Net.Cache.HttpRequestCachePolicy(System.Net.Cache.HttpRequestCacheLevel.NoCacheNoStore) - Me.wrRequest.CachePolicy = noCachePolicy - Me.wrRequest.Timeout = Master.eSettings.TrailerTimeout * 1000 - wrResponse = Me.wrRequest.GetResponse() - Catch ex As Exception - Return False - End Try - wrResponse.Close() - wrResponse = Nothing - Return True - End Function - - Public Sub StartDownloadImage(ByVal sURL As String) - Me.Clear() - Me._URL = sURL - Me.dThread = New Threading.Thread(AddressOf DownloadImage) - Me.dThread.IsBackground = True - Me.dThread.Start() - End Sub - -#End Region 'Methods + Public Sub Cancel() + Me._cancel = True + If Not IsNothing(Me.wrRequest) Then Me.wrRequest.Abort() + End Sub + + Public Sub Clear() + Me._responseuri = String.Empty + Me._image = Nothing + Me._cancel = False + End Sub + + Public Function DownloadData(ByVal URL As String) As String + Dim sResponse As String = String.Empty + Dim cEncoding As System.Text.Encoding + + Me.Clear() + + Try + Me.wrRequest = DirectCast(WebRequest.Create(URL), HttpWebRequest) + Me.wrRequest.Timeout = 20000 + Me.wrRequest.Headers.Add("Accept-Encoding", "gzip,deflate") + Me.wrRequest.KeepAlive = False + + If Not String.IsNullOrEmpty(Master.eSettings.ProxyURI) AndAlso Master.eSettings.ProxyPort >= 0 Then + Dim wProxy As New WebProxy(Master.eSettings.ProxyURI, Master.eSettings.ProxyPort) + wProxy.BypassProxyOnLocal = True + If Not String.IsNullOrEmpty(Master.eSettings.ProxyCreds.UserName) Then + wProxy.Credentials = Master.eSettings.ProxyCreds + Else + wProxy.Credentials = CredentialCache.DefaultCredentials + End If + Me.wrRequest.Proxy = wProxy + End If + Using wrResponse As HttpWebResponse = DirectCast(Me.wrRequest.GetResponse(), HttpWebResponse) + Select Case True + 'for our purposes I think it's safe to assume that all xmls we will be dealing with will be UTF-8 encoded + Case wrResponse.ContentType.ToLower.Contains("/xml") OrElse wrResponse.ContentType.ToLower.Contains("charset=utf-8") + cEncoding = System.Text.Encoding.UTF8 + Case Else + cEncoding = System.Text.Encoding.GetEncoding(28591) + End Select + Using Ms As Stream = wrResponse.GetResponseStream + If wrResponse.ContentEncoding.ToLower = "gzip" Then + sResponse = New StreamReader(New GZipStream(Ms, CompressionMode.Decompress), cEncoding, True).ReadToEnd + ElseIf wrResponse.ContentEncoding.ToLower = "deflate" Then + sResponse = New StreamReader(New DeflateStream(Ms, CompressionMode.Decompress), cEncoding, True).ReadToEnd + Else + sResponse = New StreamReader(Ms, cEncoding, True).ReadToEnd + End If + End Using + Me._responseuri = wrResponse.ResponseUri.ToString + End Using + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error", False) + End Try + + Return sResponse + End Function + + Private Function MakePostFieldText(ByVal Boundary As String, ByVal name As String, ByVal value As String) As String + Return String.Concat(Boundary, vbCrLf, String.Format("Content-Disposition:form-data;name=""{0}""", name), vbCrLf, vbCrLf, value, vbCrLf) + End Function + + Private Function MakePostFieldFile(ByVal Boundary As String, ByVal name As String) As String + Return String.Concat(Boundary, vbCrLf, String.Format("Content-Disposition:form-data;name=""file"";filename=""{0}""", name), vbCrLf, "Content-Type: application/octet-stream", vbCrLf, vbCrLf) + End Function + + Public Function PostDownloadData(ByVal URL As String, ByVal postDataList As List(Of String())) As String + Dim sResponse As String = String.Empty + Dim cEncoding As System.Text.Encoding + Dim Idboundary As String = Convert.ToInt64(Functions.ConvertToUnixTimestamp(Now)).ToString + Dim Boundary As String = String.Format("--{0}", Idboundary) + Dim postDataBytes As New List(Of Byte()) + Me.Clear() + System.Net.ServicePointManager.Expect100Continue = False + Try + For Each s() As String In postDataList + If s.Count = 2 Then postDataBytes.Add(System.Text.Encoding.UTF8.GetBytes(String.Concat(MakePostFieldText(Boundary, s(0), s(1))))) + If s.Count = 3 Then + Select Case s(2) + Case "file" 'array in list is {filename,filepath,"file"} + postDataBytes.Add(System.Text.Encoding.UTF8.GetBytes(String.Concat(MakePostFieldFile(Boundary, s(0))))) + postDataBytes.Add(File.ReadAllBytes(s(1))) + postDataBytes.Add(System.Text.Encoding.UTF8.GetBytes(String.Concat(vbCrLf, Boundary, vbCrLf))) + End Select + End If + Next + postDataBytes.Add(System.Text.Encoding.UTF8.GetBytes(String.Concat(Boundary, vbCrLf))) + + Me.wrRequest = DirectCast(WebRequest.Create(URL), HttpWebRequest) + Me.wrRequest.Timeout = 20000 + Me.wrRequest.Headers.Add("Accept-Encoding", "gzip,deflate") + If Not String.IsNullOrEmpty(Master.eSettings.ProxyURI) AndAlso Master.eSettings.ProxyPort >= 0 Then + Dim wProxy As New WebProxy(Master.eSettings.ProxyURI, Master.eSettings.ProxyPort) + wProxy.BypassProxyOnLocal = True + If Not String.IsNullOrEmpty(Master.eSettings.ProxyCreds.UserName) Then + wProxy.Credentials = Master.eSettings.ProxyCreds + Else + wProxy.Credentials = CredentialCache.DefaultCredentials + End If + Me.wrRequest.Proxy = wProxy + End If + Me.wrRequest.Method = "POST" + Me.wrRequest.ContentType = String.Concat("multipart/form-data;boundary=", Idboundary) + Dim size As Integer = 0 + For i As Integer = 0 To postDataBytes.Count - 1 + size += postDataBytes(i).Length + Next + Me.wrRequest.ContentLength = size + Dim newStream As Stream = Me.wrRequest.GetRequestStream() + For i As Integer = 0 To postDataBytes.Count - 1 + newStream.Write(postDataBytes(i), 0, postDataBytes(i).Length) + Next + newStream.Close() + + Using wrResponse As HttpWebResponse = DirectCast(Me.wrRequest.GetResponse(), HttpWebResponse) + Select Case True + Case wrResponse.ContentType.ToLower.Contains("/xml") OrElse wrResponse.ContentType.ToLower.Contains("charset=utf-8") + cEncoding = System.Text.Encoding.UTF8 + Case Else + cEncoding = System.Text.Encoding.GetEncoding(28591) + End Select + Using Ms As Stream = wrResponse.GetResponseStream + If wrResponse.ContentEncoding.ToLower = "gzip" Then + sResponse = New StreamReader(New GZipStream(Ms, CompressionMode.Decompress), cEncoding, True).ReadToEnd + ElseIf wrResponse.ContentEncoding.ToLower = "deflate" Then + sResponse = New StreamReader(New DeflateStream(Ms, CompressionMode.Decompress), cEncoding, True).ReadToEnd + Else + sResponse = New StreamReader(Ms, cEncoding, True).ReadToEnd + End If + End Using + Me._responseuri = wrResponse.ResponseUri.ToString + End Using + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error", False) + End Try + + Return sResponse + End Function + + Public Function DownloadFile(ByVal URL As String, ByVal LocalFile As String, ByVal ReportUpdate As Boolean, ByVal Type As String) As String + Dim outFile As String = String.Empty + Dim urlExt As String = String.Empty + + Me._cancel = False + Try + Me.wrRequest = DirectCast(WebRequest.Create(URL), HttpWebRequest) + Me.wrRequest.Timeout = 20000 + + If Not String.IsNullOrEmpty(Master.eSettings.ProxyURI) AndAlso Master.eSettings.ProxyPort >= 0 Then + Dim wProxy As New WebProxy(Master.eSettings.ProxyURI, Master.eSettings.ProxyPort) + wProxy.BypassProxyOnLocal = True + If Not String.IsNullOrEmpty(Master.eSettings.ProxyCreds.UserName) Then + wProxy.Credentials = Master.eSettings.ProxyCreds + Else + wProxy.Credentials = CredentialCache.DefaultCredentials + End If + Me.wrRequest.Proxy = wProxy + End If + + Try + urlExt = Path.GetExtension(URL) + Catch + End Try + + Using wrResponse As HttpWebResponse = DirectCast(Me.wrRequest.GetResponse(), HttpWebResponse) + Select Case True + Case Type = "trailer" AndAlso Master.eSettings.ValidExts.Contains(urlExt) + If Master.eSettings.VideoTSParentXBMC AndAlso FileUtils.Common.isBDRip(LocalFile) Then + outFile = Path.Combine(Directory.GetParent(LocalFile).FullName, String.Concat(Path.GetFileNameWithoutExtension(LocalFile), If(Master.eSettings.DashTrailer, "-trailer", "[trailer]"), Path.GetExtension(URL))) + ElseIf Master.eSettings.MovieNameNFOStack Then + Dim LocalFileStack As String = StringUtils.CleanStackingMarkers(Path.GetFileNameWithoutExtension(LocalFile)) + outFile = String.Concat(Directory.GetParent(LocalFile).FullName, "\", LocalFileStack, If(Master.eSettings.DashTrailer, "-trailer", "[trailer]"), Path.GetExtension(URL)) + Else + outFile = Path.Combine(Directory.GetParent(LocalFile).FullName, String.Concat(Path.GetFileNameWithoutExtension(LocalFile), If(Master.eSettings.DashTrailer, "-trailer", "[trailer]"), Path.GetExtension(URL))) + End If + Case Type = "trailer" AndAlso Master.eSettings.ValidExts.Contains(Path.GetExtension(wrResponse.ResponseUri.AbsolutePath)) + If Master.eSettings.VideoTSParentXBMC AndAlso FileUtils.Common.isBDRip(LocalFile) Then + outFile = Path.Combine(Directory.GetParent(LocalFile).FullName, String.Concat(Path.GetFileNameWithoutExtension(LocalFile), If(Master.eSettings.DashTrailer, "-trailer", "[trailer]"), Path.GetExtension(wrResponse.ResponseUri.AbsolutePath))) + ElseIf Master.eSettings.MovieNameNFOStack Then + Dim LocalFileStack As String = StringUtils.CleanStackingMarkers(Path.GetFileNameWithoutExtension(LocalFile)) + outFile = String.Concat(Directory.GetParent(LocalFile).FullName, "\", LocalFileStack, If(Master.eSettings.DashTrailer, "-trailer", "[trailer]"), Path.GetExtension(wrResponse.ResponseUri.AbsolutePath)) + Else + outFile = Path.Combine(Directory.GetParent(LocalFile).FullName, String.Concat(Path.GetFileNameWithoutExtension(LocalFile), If(Master.eSettings.DashTrailer, "-trailer", "[trailer]"), Path.GetExtension(wrResponse.ResponseUri.AbsolutePath))) + End If + Case Type = "trailer" AndAlso wrResponse.ContentType.Contains("mp4") + If Master.eSettings.VideoTSParentXBMC AndAlso FileUtils.Common.isBDRip(LocalFile) Then + outFile = String.Concat(Directory.GetParent(Directory.GetParent(LocalFile).FullName).FullName, "\", "index", If(Master.eSettings.DashTrailer, "-trailer.mp4", "[trailer].mp4")) + ElseIf Master.eSettings.MovieNameNFOStack Then + Dim LocalFileStack As String = StringUtils.CleanStackingMarkers(Path.GetFileNameWithoutExtension(LocalFile)) + outFile = String.Concat(Directory.GetParent(LocalFile).FullName, "\", LocalFileStack, If(Master.eSettings.DashTrailer, "-trailer.mp4", "[trailer].mp4")) + Else + outFile = Path.Combine(Directory.GetParent(LocalFile).FullName, String.Concat(Path.GetFileNameWithoutExtension(LocalFile), If(Master.eSettings.DashTrailer, "-trailer.mp4", "[trailer].mp4"))) + End If + Case Type = "trailer" AndAlso wrResponse.ContentType.Contains("flv") + If Master.eSettings.VideoTSParentXBMC AndAlso FileUtils.Common.isBDRip(LocalFile) Then + outFile = String.Concat(Directory.GetParent(Directory.GetParent(LocalFile).FullName).FullName, "\", "index", If(Master.eSettings.DashTrailer, "-trailer.flv", "[trailer].flv")) + ElseIf Master.eSettings.MovieNameNFOStack Then + Dim LocalFileStack As String = StringUtils.CleanStackingMarkers(Path.GetFileNameWithoutExtension(LocalFile)) + outFile = String.Concat(Directory.GetParent(LocalFile).FullName, "\", LocalFileStack, If(Master.eSettings.DashTrailer, "-trailer.flv", "[trailer].flv")) + Else + outFile = Path.Combine(Directory.GetParent(LocalFile).FullName, String.Concat(Path.GetFileNameWithoutExtension(LocalFile), If(Master.eSettings.DashTrailer, "-trailer.flv", "[trailer].flv"))) + End If + Case Type = "trailer" AndAlso wrResponse.ContentType.Contains("webm") + If Master.eSettings.VideoTSParentXBMC AndAlso FileUtils.Common.isBDRip(LocalFile) Then + outFile = String.Concat(Directory.GetParent(Directory.GetParent(LocalFile).FullName).FullName, "\", "index", If(Master.eSettings.DashTrailer, "-trailer.webm", "[trailer].webm")) + ElseIf Master.eSettings.MovieNameNFOStack Then + Dim LocalFileStack As String = StringUtils.CleanStackingMarkers(Path.GetFileNameWithoutExtension(LocalFile)) + outFile = String.Concat(Directory.GetParent(LocalFile).FullName, "\", LocalFileStack, If(Master.eSettings.DashTrailer, "-trailer.webm", "[trailer].webm")) + Else + outFile = Path.Combine(Directory.GetParent(LocalFile).FullName, String.Concat(Path.GetFileNameWithoutExtension(LocalFile), If(Master.eSettings.DashTrailer, "-trailer.webm", "[trailer].webm"))) + End If + Case Type = "other" + outFile = LocalFile + End Select + + If Not String.IsNullOrEmpty(outFile) AndAlso Not wrResponse.ContentLength = 0 Then + + If File.Exists(outFile) Then File.Delete(outFile) + + Using Ms As Stream = wrResponse.GetResponseStream + Using mStream As New FileStream(outFile, FileMode.Create, FileAccess.Write) + Dim StreamBuffer(4096) As Byte + Dim BlockSize As Integer + Dim iProgress As Integer + Dim iCurrent As Integer + Do + BlockSize = Ms.Read(StreamBuffer, 0, 4096) + iCurrent += BlockSize + If BlockSize > 0 Then + mStream.Write(StreamBuffer, 0, BlockSize) + If ReportUpdate Then + iProgress = Convert.ToInt32((iCurrent / wrResponse.ContentLength) * 100) + RaiseEvent ProgressUpdated(iProgress) + End If + End If + Loop While BlockSize > 0 AndAlso Not Me._cancel + StreamBuffer = Nothing + End Using + End Using + End If + + End Using + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error", False) + End Try + + Return outFile + End Function + + Public Sub DownloadImage() + Try + Me._isJPG = False + If StringUtils.isValidURL(Me._URL) Then + Me.wrRequest = DirectCast(HttpWebRequest.Create(Me._URL), HttpWebRequest) + Me.wrRequest.Timeout = 20000 + + If Me._cancel Then Return + + If Not String.IsNullOrEmpty(Master.eSettings.ProxyURI) AndAlso Master.eSettings.ProxyPort >= 0 Then + Dim wProxy As New WebProxy(Master.eSettings.ProxyURI, Master.eSettings.ProxyPort) + wProxy.BypassProxyOnLocal = True + If Not String.IsNullOrEmpty(Master.eSettings.ProxyCreds.UserName) AndAlso _ + Not String.IsNullOrEmpty(Master.eSettings.ProxyCreds.Password) Then + wProxy.Credentials = Master.eSettings.ProxyCreds + Else + wProxy.Credentials = CredentialCache.DefaultCredentials + End If + Me.wrRequest.Proxy = wProxy + End If + + If Me._cancel Then Return + + Using wrResponse As WebResponse = Me.wrRequest.GetResponse() + If Me._cancel Then Return + Dim temp As String = wrResponse.ContentType.ToString + If wrResponse.ContentType.ToLower.Contains("image") Then + If Me._cancel Then Return + If wrResponse.ContentType.ToLower.Contains("jpeg") Then + _isJPG = True + End If + Using SourceStream As System.IO.Stream = wrResponse.GetResponseStream() + Dim count = Convert.ToInt32(wrResponse.ContentLength) + Dim buffer = New Byte(count) {} + Dim bytesRead As Integer + Do + bytesRead += SourceStream.Read(buffer, bytesRead, count - bytesRead) + Loop Until bytesRead = count + SourceStream.Close() + Me._ms.Dispose() + Me._ms = New MemoryStream() + + Me._ms.Write(buffer, 0, bytesRead) + Me._ms.Flush() + Me._image = New Bitmap(Me._ms) + End Using + 'Me._image = Image.FromStream(wrResponse.GetResponseStream) + End If + End Using + End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error", False) + End Try + End Sub + + Public Function DownloadZip(ByVal URL As String) As Byte() + Me.wrRequest = DirectCast(WebRequest.Create(URL), HttpWebRequest) + + Try + Me.wrRequest.Timeout = 20000 + + If Not String.IsNullOrEmpty(Master.eSettings.ProxyURI) AndAlso Master.eSettings.ProxyPort >= 0 Then + Dim wProxy As New WebProxy(Master.eSettings.ProxyURI, Master.eSettings.ProxyPort) + wProxy.BypassProxyOnLocal = True + If Not String.IsNullOrEmpty(Master.eSettings.ProxyCreds.UserName) Then + wProxy.Credentials = Master.eSettings.ProxyCreds + Else + wProxy.Credentials = CredentialCache.DefaultCredentials + End If + Me.wrRequest.Proxy = wProxy + End If + + Using wrResponse As HttpWebResponse = DirectCast(Me.wrRequest.GetResponse(), HttpWebResponse) + Return Functions.ReadStreamToEnd(wrResponse.GetResponseStream) + End Using + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error", False) + End Try + + Return Nothing + End Function + + Public Function IsDownloading() As Boolean + Return Me.dThread.IsAlive + End Function + + Public Function IsValidURL(ByVal URL As String) As Boolean + Dim wrResponse As WebResponse + Try + Me.wrRequest = DirectCast(WebRequest.Create(URL), HttpWebRequest) + + If Not String.IsNullOrEmpty(Master.eSettings.ProxyURI) AndAlso Master.eSettings.ProxyPort >= 0 Then + Dim wProxy As New WebProxy(Master.eSettings.ProxyURI, Master.eSettings.ProxyPort) + wProxy.BypassProxyOnLocal = True + If Not String.IsNullOrEmpty(Master.eSettings.ProxyCreds.UserName) Then + wProxy.Credentials = Master.eSettings.ProxyCreds + Else + wProxy.Credentials = CredentialCache.DefaultCredentials + End If + Me.wrRequest.Proxy = wProxy + End If + + Dim noCachePolicy As System.Net.Cache.HttpRequestCachePolicy = New System.Net.Cache.HttpRequestCachePolicy(System.Net.Cache.HttpRequestCacheLevel.NoCacheNoStore) + Me.wrRequest.CachePolicy = noCachePolicy + Me.wrRequest.Timeout = Master.eSettings.TrailerTimeout * 1000 + wrResponse = Me.wrRequest.GetResponse() + Catch ex As Exception + Return False + End Try + wrResponse.Close() + wrResponse = Nothing + Return True + End Function + + Public Sub StartDownloadImage(ByVal sURL As String) + Me.Clear() + Me._URL = sURL + Me.dThread = New Threading.Thread(AddressOf DownloadImage) + Me.dThread.IsBackground = True + Me.dThread.Start() + End Sub + +#End Region 'Methods End Class \ No newline at end of file diff --git a/EmberAPI/clsAPIHashing.vb b/EmberAPI/clsAPIHashing.vb index 5218128..a440017 100644 --- a/EmberAPI/clsAPIHashing.vb +++ b/EmberAPI/clsAPIHashing.vb @@ -29,98 +29,100 @@ Public Class HashFile #Region "Methods" - Public Shared Function ComputeMovieHash(ByVal filename As String) As Byte() - Dim result As Byte() - Using input As Stream = File.OpenRead(filename) - result = ComputeMovieHash(input) - End Using - Return result - End Function - - Public Shared Function ComputeMovieHash(ByVal input As Stream) As Byte() - Dim lhash As System.Int64, streamsize As Long - streamsize = input.Length - lhash = streamsize - - Dim i As Long = 0 - Dim buffer As Byte() = New Byte(Marshal.SizeOf(GetType(Long)) - 1) {} - While i < 65536 / Marshal.SizeOf(GetType(Long)) AndAlso (input.Read(buffer, 0, Marshal.SizeOf(GetType(Long))) > 0) - i += 1 - - lhash += BitConverter.ToInt64(buffer, 0) - End While - - input.Position = Math.Max(0, streamsize - 65536) - i = 0 - While i < 65536 / Marshal.SizeOf(GetType(Long)) AndAlso (input.Read(buffer, 0, Marshal.SizeOf(GetType(Long))) > 0) - i += 1 - lhash += BitConverter.ToInt64(buffer, 0) - End While - input.Close() - Dim result As Byte() = BitConverter.GetBytes(lhash) - Array.Reverse(result) - Return result - End Function - - Public Shared Function CurrentETHashes(ByVal sPath As String) As List(Of String) - Dim ETHashes As New List(Of String) - Dim tPath As String = String.Empty - - If Master.eSettings.VideoTSParent AndAlso FileUtils.Common.isVideoTS(sPath) Then - tPath = Path.Combine(Directory.GetParent(Directory.GetParent(sPath).FullName).FullName, "extrathumbs") - ElseIf Master.eSettings.VideoTSParent AndAlso FileUtils.Common.isBDRip(sPath) Then - tPath = Path.Combine(Directory.GetParent(Directory.GetParent(Directory.GetParent(sPath).FullName).FullName).FullName, "extrathumbs") - Else - tPath = Path.Combine(Directory.GetParent(sPath).FullName, "extrathumbs") - End If - - If Directory.Exists(tPath) Then - Dim fThumbs As New List(Of String) - - Try - fThumbs.AddRange(Directory.GetFiles(tPath, "thumb*.jpg")) - Catch - End Try - - For Each fThumb As String In fThumbs - ETHashes.Add(HashCalcFile(fThumb)) - Next - End If - - Return ETHashes - End Function - - Public Shared Function HashCalcFile(ByVal filepath As String) As String - Using reader As New FileStream(filepath, FileMode.Open, FileAccess.Read) - Dim KeyValue As Byte() = (New System.Text.UnicodeEncoding).GetBytes("HashingKey") - Using HMA As New HMACSHA1(KeyValue, True) - - Dim hash() As Byte = HMA.ComputeHash(reader) - - Return ByteArrayToString(hash) - - End Using - End Using - End Function - - Public Shared Function ToHexadecimal(ByVal bytes As Byte()) As String - Dim hexBuilder As New StringBuilder() - For i As Integer = 0 To bytes.Length - 1 - hexBuilder.Append(bytes(i).ToString("x2")) - Next - Return hexBuilder.ToString() - End Function - - Private Shared Function ByteArrayToString(ByVal arrInput() As Byte) As String - Dim sb As New StringBuilder(arrInput.Length * 2) - - For i As Integer = 0 To arrInput.Length - 1 - sb.Append(arrInput(i).ToString("X2")) - Next - - Return sb.ToString().ToLower - End Function - - #End Region 'Methods + 'Public Shared Function ComputeMovieHash(ByVal filename As String) As Byte() + ' Dim result As Byte() + ' Using input As Stream = File.OpenRead(filename) + ' result = ComputeMovieHash(input) + ' End Using + ' Return result + 'End Function + + 'Public Shared Function ComputeMovieHash(ByVal input As Stream) As Byte() + ' Dim lhash As System.Int64, streamsize As Long + ' streamsize = input.Length + ' lhash = streamsize + + ' Dim i As Long = 0 + ' Dim buffer As Byte() = New Byte(Marshal.SizeOf(GetType(Long)) - 1) {} + ' While i < 65536 / Marshal.SizeOf(GetType(Long)) AndAlso (input.Read(buffer, 0, Marshal.SizeOf(GetType(Long))) > 0) + ' i += 1 + + ' lhash += BitConverter.ToInt64(buffer, 0) + ' End While + + ' input.Position = Math.Max(0, streamsize - 65536) + ' i = 0 + ' While i < 65536 / Marshal.SizeOf(GetType(Long)) AndAlso (input.Read(buffer, 0, Marshal.SizeOf(GetType(Long))) > 0) + ' i += 1 + ' lhash += BitConverter.ToInt64(buffer, 0) + ' End While + ' input.Close() + ' Dim result As Byte() = BitConverter.GetBytes(lhash) + ' Array.Reverse(result) + ' Return result + 'End Function + + Public Shared Function CurrentETHashes(ByVal sPath As String) As List(Of String) + Dim ETHashes As New List(Of String) + Dim tPath As String = String.Empty + + If Master.eSettings.VideoTSParent AndAlso FileUtils.Common.isVideoTS(sPath) Then + tPath = Path.Combine(Directory.GetParent(Directory.GetParent(sPath).FullName).FullName, "extrathumbs") + ElseIf Master.eSettings.VideoTSParent AndAlso FileUtils.Common.isBDRip(sPath) Then + tPath = Path.Combine(Directory.GetParent(Directory.GetParent(Directory.GetParent(sPath).FullName).FullName).FullName, "extrathumbs") + ElseIf Master.eSettings.VideoTSParentXBMC AndAlso FileUtils.Common.isBDRip(sPath) Then + tPath = Path.Combine(Directory.GetParent(Directory.GetParent(sPath).FullName).FullName, "extrathumbs") + Else + tPath = Path.Combine(Directory.GetParent(sPath).FullName, "extrathumbs") + End If + + If Directory.Exists(tPath) Then + Dim fThumbs As New List(Of String) + + Try + fThumbs.AddRange(Directory.GetFiles(tPath, "thumb*.jpg")) + Catch + End Try + + For Each fThumb As String In fThumbs + ETHashes.Add(HashCalcFile(fThumb)) + Next + End If + + Return ETHashes + End Function + + Public Shared Function HashCalcFile(ByVal filepath As String) As String + Using reader As New FileStream(filepath, FileMode.Open, FileAccess.Read) + Dim KeyValue As Byte() = (New System.Text.UnicodeEncoding).GetBytes("HashingKey") + Using HMA As New HMACSHA1(KeyValue, True) + + Dim hash() As Byte = HMA.ComputeHash(reader) + + Return ByteArrayToString(hash) + + End Using + End Using + End Function + + 'Public Shared Function ToHexadecimal(ByVal bytes As Byte()) As String + ' Dim hexBuilder As New StringBuilder() + ' For i As Integer = 0 To bytes.Length - 1 + ' hexBuilder.Append(bytes(i).ToString("x2")) + ' Next + ' Return hexBuilder.ToString() + 'End Function + + Private Shared Function ByteArrayToString(ByVal arrInput() As Byte) As String + Dim sb As New StringBuilder(arrInput.Length * 2) + + For i As Integer = 0 To arrInput.Length - 1 + sb.Append(arrInput(i).ToString("X2")) + Next + + Return sb.ToString().ToLower + End Function + +#End Region 'Methods End Class \ No newline at end of file diff --git a/EmberAPI/clsAPIImageUtils.vb b/EmberAPI/clsAPIImageUtils.vb index baca209..c2af5c0 100644 --- a/EmberAPI/clsAPIImageUtils.vb +++ b/EmberAPI/clsAPIImageUtils.vb @@ -25,37 +25,41 @@ Public Class ImageUtils #Region "Methods" - Public Shared Function AddMissingStamp(ByVal oImage As Image) As Image - Dim nImage As New Bitmap(GrayScale(oImage)) + Public Shared Function AddMissingStamp(ByVal oImage As Images) As Images + Dim nImage As New Bitmap(GrayScale(oImage).Image) - 'now overlay "missing" image - Dim grOverlay As Graphics = Graphics.FromImage(nImage) - Dim oWidth As Integer = If(nImage.Width >= My.Resources.missing.Width, My.Resources.missing.Width, nImage.Width) - Dim oheight As Integer = If(nImage.Height >= My.Resources.missing.Height, My.Resources.missing.Height, nImage.Height) - grOverlay.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic - grOverlay.DrawImage(My.Resources.missing, 0, 0, oWidth, oheight) + 'now overlay "missing" image + Dim grOverlay As Graphics = Graphics.FromImage(nImage) + Dim oWidth As Integer = If(nImage.Width >= My.Resources.missing.Width, My.Resources.missing.Width, nImage.Width) + Dim oheight As Integer = If(nImage.Height >= My.Resources.missing.Height, My.Resources.missing.Height, nImage.Height) + grOverlay.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic + grOverlay.DrawImage(My.Resources.missing, 0, 0, oWidth, oheight) - Return nImage - End Function + oImage.UpdateMSfromImg(nImage) - Public Shared Function GrayScale(ByVal oImage As Image) As Image - Dim nImage As New Bitmap(oImage) + Return oImage + End Function - 'first let's convert the background to grayscale - Dim g As Graphics = Graphics.FromImage(nImage) - Dim cm As Imaging.ColorMatrix = New Imaging.ColorMatrix(New Single()() _ - {New Single() {0.5, 0.5, 0.5, 0, 0}, _ - New Single() {0.5, 0.5, 0.5, 0, 0}, _ - New Single() {0.5, 0.5, 0.5, 0, 0}, _ - New Single() {0, 0, 0, 1, 0}, _ - New Single() {0, 0, 0, 0, 1}}) + Public Shared Function GrayScale(ByVal oImage As Images) As Images + Dim nImage As New Bitmap(oImage.Image) - Dim ia As Imaging.ImageAttributes = New Imaging.ImageAttributes() - ia.SetColorMatrix(cm) - g.DrawImage(oImage, New Rectangle(0, 0, oImage.Width, oImage.Height), 0, 0, oImage.Width, oImage.Height, GraphicsUnit.Pixel, ia) + 'first let's convert the background to grayscale + Dim g As Graphics = Graphics.FromImage(nImage) + Dim cm As Imaging.ColorMatrix = New Imaging.ColorMatrix(New Single()() _ + {New Single() {0.5, 0.5, 0.5, 0, 0}, _ + New Single() {0.5, 0.5, 0.5, 0, 0}, _ + New Single() {0.5, 0.5, 0.5, 0, 0}, _ + New Single() {0, 0, 0, 1, 0}, _ + New Single() {0, 0, 0, 0, 1}}) - Return nImage - End Function + Dim ia As Imaging.ImageAttributes = New Imaging.ImageAttributes() + ia.SetColorMatrix(cm) + g.DrawImage(nImage, New Rectangle(0, 0, nImage.Width, nImage.Height), 0, 0, nImage.Width, nImage.Height, GraphicsUnit.Pixel, ia) + + oImage.UpdateMSfromImg(nImage) + + Return oImage + End Function Public Shared Sub DrawGradEllipse(ByRef graphics As Graphics, ByVal bounds As Rectangle, ByVal color1 As Color, ByVal color2 As Color) Try @@ -254,6 +258,47 @@ Public Class ImageUtils Return imgUnderlay End Function + 'cocotus, 2013/02 Export HTML expanded: configurable resizable images + ' New Image methods added here (resizing/compressing) + + ''' + ''' Compress JPEG Image and save result as local image + ''' + ''' Image which should be compressed/encoded + ''' Savepath of recoded image + ''' Quality Setting 0-100 + Public Shared Sub JPEGCompression(ByVal Image As Image, ByVal OutPutFile As String, ByVal Qualitiy As Integer) + Dim ImageCodecs() As Imaging.ImageCodecInfo + Dim ImageParameters As Imaging.EncoderParameters + + ImageCodecs = Imaging.ImageCodecInfo.GetImageEncoders() + ImageParameters = New Imaging.EncoderParameters(1) + ImageParameters.Param(0) = New Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.Quality, Qualitiy) + Image.Save(OutPutFile, ImageCodecs(1), ImageParameters) + End Sub + + ''' + ''' Resizes Image + ''' + ''' Image which should be resized + ''' Size of image + Public Shared Function ResizeImage(ByVal poImage As Image, ByVal poSize As Size) As Image + + Dim Original As Image = DirectCast(poImage.Clone(), Image) + Dim ResizedImage As Image = New Bitmap(poSize.Width, poSize.Height, Original.PixelFormat) + Dim oGraphic As Graphics = Graphics.FromImage(ResizedImage) + oGraphic.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality + oGraphic.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality + oGraphic.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic + Dim oRectangle As Rectangle = New Rectangle(0, 0, poSize.Width, poSize.Height) + oGraphic.DrawImage(Original, oRectangle) + oGraphic.Dispose() + Original.Dispose() + Return ResizedImage + End Function + + 'cocotus end + #End Region 'Methods End Class \ No newline at end of file diff --git a/EmberAPI/clsAPIImages.vb b/EmberAPI/clsAPIImages.vb index eaed4c1..b21d841 100644 --- a/EmberAPI/clsAPIImages.vb +++ b/EmberAPI/clsAPIImages.vb @@ -29,11 +29,11 @@ Public Class Images #Region "Fields" - Private ms As MemoryStream = New MemoryStream() + Private _ms As MemoryStream Private Ret As Byte() _ Private sHTTP As New HTTP - Private _image As Image + Private _image As Image Private _isedit As Boolean #End Region 'Fields @@ -57,40 +57,59 @@ Public Class Images End Set End Property - Public Property [Image]() As Image - Get - Return _image - End Get - Set(ByVal value As Image) - _image = value - End Set - End Property + Public ReadOnly Property [Image]() As Image + Get + Return _image + End Get + 'Set(ByVal value As Image) + ' _image = value + 'End Set + End Property #End Region 'Properties #Region "Methods" - Public Shared Function GetFanartDims(ByVal imgImage As Image) As Enums.FanartSize - '// - ' Check the size of the image and return a generic name for the size - '\\ + Public Sub UpdateMSfromImg(nImage As Bitmap) - Dim x As Integer = imgImage.Width - Dim y As Integer = imgImage.Height + Try + Dim ICI As ImageCodecInfo = GetEncoderInfo(ImageFormat.Jpeg) + Dim EncPars As EncoderParameters = New EncoderParameters(2) - Try - If (y > 1000 AndAlso x > 750) OrElse (x > 1000 AndAlso y > 750) Then - Return Enums.FanartSize.Lrg - ElseIf (y > 700 AndAlso x > 400) OrElse (x > 700 AndAlso y > 400) Then - Return Enums.FanartSize.Mid - Else - Return Enums.FanartSize.Small - End If - Catch ex As Exception - Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") - Return Enums.FanartSize.Small - End Try - End Function + EncPars.Param(0) = New EncoderParameter(Encoder.RenderMethod, EncoderValue.RenderNonProgressive) + + EncPars.Param(1) = New EncoderParameter(Encoder.Quality, 100) + _ms.Dispose() + _ms = New MemoryStream() + nImage.Save(_ms, ICI, EncPars) + _ms.Flush() + _image = New Bitmap(_ms) + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + End Sub + + Public Shared Function GetFanartDims(ByVal imgImage As Image) As Enums.FanartSize + '// + ' Check the size of the image and return a generic name for the size + '\\ + + Dim x As Integer = imgImage.Width + Dim y As Integer = imgImage.Height + + Try + If (y > 1000 AndAlso x > 750) OrElse (x > 1000 AndAlso y > 750) Then + Return Enums.FanartSize.Lrg + ElseIf (y > 700 AndAlso x > 400) OrElse (x > 700 AndAlso y > 400) Then + Return Enums.FanartSize.Mid + Else + Return Enums.FanartSize.Small + End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + Return Enums.FanartSize.Small + End Try + End Function Public Shared Function GetPosterDims(ByVal imgImage As Image) As Enums.PosterSize '// @@ -120,9 +139,14 @@ Public Class Images End Function Public Sub Clear() - _isedit = False - _image = Nothing - End Sub + _isedit = False + If Not IsNothing(_ms) Or Not IsNothing(_image) Then + Me.Dispose() + Else + _image = Nothing + _ms = New MemoryStream() + End If + End Sub Public Sub Delete(ByVal sPath As String) If Not String.IsNullOrEmpty(sPath) Then @@ -145,8 +169,14 @@ Public Class Images Public Sub DeleteEpFanart(ByVal mShow As Structures.DBTV) Try - Delete(String.Concat(FileUtils.Common.RemoveExtFromPath(mShow.ShowPath), "-fanart.jpg")) - Delete(String.Concat(FileUtils.Common.RemoveExtFromPath(mShow.ShowPath), ".fanart.jpg")) + Dim tPath As String = FileUtils.Common.RemoveExtFromPath(mShow.Filename) + + Delete(String.Concat(tPath, "-fanart.jpg")) + Delete(String.Concat(tPath, ".fanart.jpg")) + + 'Delete(String.Concat(FileUtils.Common.RemoveExtFromPath(mShow.ShowPath), "-fanart.jpg")) + 'Delete(String.Concat(FileUtils.Common.RemoveExtFromPath(mShow.ShowPath), ".fanart.jpg")) + Catch ex As Exception Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") End Try @@ -158,6 +188,7 @@ Public Class Images Delete(String.Concat(tPath, ".tbn")) Delete(String.Concat(tPath, ".jpg")) + Delete(String.Concat(tPath, "-thumb.jpg")) Catch ex As Exception Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") @@ -168,28 +199,18 @@ Public Class Images Try Dim tPath As String = Directory.GetParent(mMovie.Filename).FullName Dim params As New List(Of Object)(New Object() {mMovie}) + ModulesManager.Instance.RunGeneric(Enums.ModuleEventType.OnMovieFanartDelete, params, Nothing, False) - If Master.eSettings.VideoTSParent AndAlso FileUtils.Common.isVideoTS(mMovie.Filename) Then - If Master.eSettings.FanartJPG Then - Delete(String.Concat(Directory.GetParent(tPath).FullName, "\", "fanart.jpg")) - ElseIf Master.eSettings.MovieNameFanartJPG Then - Delete(String.Concat(Path.Combine(Directory.GetParent(tPath).FullName, Directory.GetParent(tPath).Name), "-fanart.jpg")) - ElseIf Master.eSettings.MovieNameDotFanartJPG Then - Delete(String.Concat(Path.Combine(Directory.GetParent(tPath).FullName, Directory.GetParent(tPath).Name), ".fanart.jpg")) - Else - Delete(String.Concat(Directory.GetParent(tPath).FullName, "\", "fanart.jpg")) - End If - ElseIf Master.eSettings.VideoTSParent AndAlso FileUtils.Common.isBDRip(mMovie.Filename) Then - If Master.eSettings.FanartJPG Then - Delete(String.Concat(Directory.GetParent(Directory.GetParent(tPath).FullName).FullName, "\", "fanart.jpg")) - ElseIf Master.eSettings.MovieNameFanartJPG Then - Delete(String.Concat(Path.Combine(Directory.GetParent(Directory.GetParent(tPath).FullName).FullName, Directory.GetParent(Directory.GetParent(tPath).FullName).Name), "-fanart.jpg")) - ElseIf Master.eSettings.MovieNameDotFanartJPG Then - Delete(String.Concat(Path.Combine(Directory.GetParent(Directory.GetParent(tPath).FullName).FullName, Directory.GetParent(Directory.GetParent(tPath).FullName).Name), ".fanart.jpg")) - Else - Delete(String.Concat(Directory.GetParent(Directory.GetParent(tPath).FullName).FullName, "\", "fanart.jpg")) - End If + If FileUtils.Common.isVideoTS(mMovie.Filename) Then + Delete(String.Concat(Directory.GetParent(tPath).FullName, "\", "fanart.jpg")) + Delete(String.Concat(Directory.GetParent(tPath).FullName, "\", ".fanart.jpg")) + Delete(String.Concat(Path.Combine(Directory.GetParent(tPath).FullName, Directory.GetParent(tPath).Name), "-fanart.jpg")) + Delete(String.Concat(Path.Combine(Directory.GetParent(tPath).FullName, Directory.GetParent(tPath).Name), ".fanart.jpg")) + ElseIf FileUtils.Common.isBDRip(mMovie.Filename) Then + Delete(String.Concat(Directory.GetParent(Directory.GetParent(tPath).FullName).FullName, "\", "fanart.jpg")) + Delete(String.Concat(Path.Combine(Directory.GetParent(Directory.GetParent(tPath).FullName).FullName, Directory.GetParent(Directory.GetParent(tPath).FullName).Name), "-fanart.jpg")) + Delete(String.Concat(Path.Combine(Directory.GetParent(Directory.GetParent(tPath).FullName).FullName, Directory.GetParent(Directory.GetParent(tPath).FullName).Name), ".fanart.jpg")) Else If mMovie.isSingle Then Delete(Path.Combine(tPath, "fanart.jpg")) @@ -203,10 +224,11 @@ Public Class Images Delete(Path.Combine(tPath, "index.fanart.jpg")) Else Dim fPath As String = Path.Combine(tPath, Path.GetFileNameWithoutExtension(mMovie.Filename)) + Dim fPathStack As String = Path.Combine(tPath, StringUtils.CleanStackingMarkers(Path.GetFileNameWithoutExtension(mMovie.Filename))) Delete(String.Concat(fPath, "-fanart.jpg")) Delete(String.Concat(fPath, ".fanart.jpg")) + Delete(String.Concat(fPathStack, "-fanart.jpg")) End If - End If Catch ex As Exception Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") @@ -217,47 +239,26 @@ Public Class Images Try Dim tPath As String = Directory.GetParent(mMovie.Filename).FullName Dim params As New List(Of Object)(New Object() {mMovie}) + ModulesManager.Instance.RunGeneric(Enums.ModuleEventType.OnMoviePosterDelete, params, Nothing, False) - If Master.eSettings.VideoTSParent AndAlso FileUtils.Common.isVideoTS(mMovie.Filename) Then - With Master.eSettings - If .MovieNameJPG Then - Delete(String.Concat(Path.Combine(Directory.GetParent(tPath).FullName, Directory.GetParent(tPath).Name), ".jpg")) - ElseIf .MovieJPG Then - Delete(String.Concat(Directory.GetParent(tPath).FullName, "\", "movie.jpg")) - ElseIf .FolderJPG Then - Delete(String.Concat(Directory.GetParent(tPath).FullName, "\", "folder.jpg")) - ElseIf .PosterJPG Then - Delete(String.Concat(Directory.GetParent(tPath).FullName, "\", "poster.jpg")) - ElseIf .MovieNameTBN Then - Delete(String.Concat(Path.Combine(Directory.GetParent(tPath).FullName, Directory.GetParent(tPath).Name), ".tbn")) - ElseIf .MovieNameDashPosterJPG Then - Delete(String.Concat(Path.Combine(Directory.GetParent(tPath).FullName, Directory.GetParent(tPath).Name), "-poster.jpg")) - ElseIf .MovieTBN Then - Delete(String.Concat(Directory.GetParent(tPath).FullName, "\", "movie.tbn")) - ElseIf .PosterTBN Then - Delete(String.Concat(Directory.GetParent(tPath).FullName, "\", "poster.tbn")) - End If - End With - ElseIf Master.eSettings.VideoTSParent AndAlso FileUtils.Common.isBDRip(mMovie.Filename) Then - With Master.eSettings - If .MovieNameJPG Then - Delete(String.Concat(Path.Combine(Directory.GetParent(Directory.GetParent(tPath).FullName).FullName, Directory.GetParent(Directory.GetParent(tPath).FullName).Name), ".jpg")) - ElseIf .MovieJPG Then - Delete(String.Concat(Directory.GetParent(Directory.GetParent(tPath).FullName).FullName, "\", "movie.jpg")) - ElseIf .FolderJPG Then - Delete(String.Concat(Directory.GetParent(Directory.GetParent(tPath).FullName).FullName, "\", "folder.jpg")) - ElseIf .PosterJPG Then - Delete(String.Concat(Directory.GetParent(Directory.GetParent(tPath).FullName).FullName, "\", "poster.jpg")) - ElseIf .MovieNameTBN Then - Delete(String.Concat(Path.Combine(Directory.GetParent(Directory.GetParent(tPath).FullName).FullName, Directory.GetParent(Directory.GetParent(tPath).FullName).Name), ".tbn")) - ElseIf .MovieNameDashPosterJPG Then - Delete(String.Concat(Path.Combine(Directory.GetParent(Directory.GetParent(tPath).FullName).FullName, Directory.GetParent(Directory.GetParent(tPath).FullName).Name), "-poster.jpg")) - ElseIf .MovieTBN Then - Delete(String.Concat(Directory.GetParent(Directory.GetParent(tPath).FullName).FullName, "\", "movie.tbn")) - ElseIf .PosterTBN Then - Delete(String.Concat(Directory.GetParent(Directory.GetParent(tPath).FullName).FullName, "\", "poster.tbn")) - End If - End With + + If FileUtils.Common.isVideoTS(mMovie.Filename) Then + Delete(String.Concat(Directory.GetParent(tPath).FullName, "\", "movie.jpg")) + Delete(String.Concat(Directory.GetParent(tPath).FullName, "\", "movie.tbn")) + Delete(String.Concat(Directory.GetParent(tPath).FullName, "\", "folder.jpg")) + Delete(String.Concat(Directory.GetParent(tPath).FullName, "\", "poster.jpg")) + Delete(String.Concat(Directory.GetParent(tPath).FullName, "\", "poster.tbn")) + Delete(String.Concat(Path.Combine(Directory.GetParent(tPath).FullName, Directory.GetParent(tPath).Name), ".jpg")) + Delete(String.Concat(Path.Combine(Directory.GetParent(tPath).FullName, Directory.GetParent(tPath).Name), ".tbn")) + ElseIf FileUtils.Common.isBDRip(mMovie.Filename) Then + Delete(String.Concat(Directory.GetParent(tPath).FullName, "\", "poster.jpg")) + Delete(String.Concat(Directory.GetParent(Directory.GetParent(tPath).FullName).FullName, "\", "movie.jpg")) + Delete(String.Concat(Directory.GetParent(Directory.GetParent(tPath).FullName).FullName, "\", "movie.tbn")) + Delete(String.Concat(Directory.GetParent(Directory.GetParent(tPath).FullName).FullName, "\", "folder.jpg")) + Delete(String.Concat(Directory.GetParent(Directory.GetParent(tPath).FullName).FullName, "\", "poster.jpg")) + Delete(String.Concat(Directory.GetParent(Directory.GetParent(tPath).FullName).FullName, "\", "poster.tbn")) + Delete(String.Concat(Path.Combine(Directory.GetParent(Directory.GetParent(tPath).FullName).FullName, Directory.GetParent(Directory.GetParent(tPath).FullName).Name), ".jpg")) + Delete(String.Concat(Path.Combine(Directory.GetParent(Directory.GetParent(tPath).FullName).FullName, Directory.GetParent(Directory.GetParent(tPath).FullName).Name), ".tbn")) Else If mMovie.isSingle Then @@ -276,8 +277,11 @@ Public Class Images Delete(Path.Combine(tPath, "index.jpg")) Else Dim pPath As String = Path.Combine(tPath, Path.GetFileNameWithoutExtension(mMovie.Filename)) + Dim pPathStack As String = Path.Combine(tPath, StringUtils.CleanStackingMarkers(Path.GetFileNameWithoutExtension(mMovie.Filename))) Delete(String.Concat(pPath, ".tbn")) Delete(String.Concat(pPath, ".jpg")) + Delete(String.Concat(pPath, "-poster.jpg")) + Delete(String.Concat(pPathStack, "-poster.jpg")) End If End If @@ -301,6 +305,8 @@ Public Class Images Delete(Path.Combine(tPath, "Fanart.jpg")) End If + Delete(Path.Combine(mShow.ShowPath, String.Format("season{0}-fanart.jpg", mShow.TVEp.Season.ToString.PadLeft(2, Convert.ToChar("0"))))) + Catch ex As Exception Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") End Try @@ -362,81 +368,152 @@ Public Class Images End Sub Public Sub Dispose() Implements IDisposable.Dispose - ms.Flush() - ms.Close() - ms.Dispose() - ms = Nothing - Clear() + If Not IsNothing(_ms) Then + _ms.Flush() + _ms.Close() + _ms.Dispose() + _ms = Nothing + End If + If Not IsNothing(_image) Then + _image.Dispose() + _image = Nothing + End If + _isedit = False End Sub - Public Sub FromFile(ByVal sPath As String) - If Not String.IsNullOrEmpty(sPath) AndAlso File.Exists(sPath) Then - Try - Using fsImage As New FileStream(sPath, FileMode.Open, FileAccess.Read) - ms.SetLength(fsImage.Length) - fsImage.Read(ms.GetBuffer(), 0, Convert.ToInt32(fsImage.Length)) - ms.Flush() - _image = New Bitmap(ms) - End Using - Catch ex As Exception - Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error: " & sPath) - End Try - End If - End Sub + Public Sub FromFile(ByVal sPath As String) + Debug.Print("FromFile/t{0}", sPath) + If Not IsNothing(Me._ms) Then + Me._ms.Dispose() + End If + If Not IsNothing(Me._image) Then + Me._image.Dispose() + End If + If Not String.IsNullOrEmpty(sPath) AndAlso File.Exists(sPath) Then + Try + Me._ms = New MemoryStream() + Using fsImage As New FileStream(sPath, FileMode.Open, FileAccess.Read) + Dim StreamBuffer(Convert.ToInt32(fsImage.Length - 1)) As Byte + + fsImage.Read(StreamBuffer, 0, StreamBuffer.Length) + Me._ms.Write(StreamBuffer, 0, StreamBuffer.Length) + + StreamBuffer = Nothing + '_ms.SetLength(fsImage.Length) + 'fsImage.Read(_ms.GetBuffer(), 0, Convert.ToInt32(fsImage.Length)) + Me._ms.Flush() + _image = New Bitmap(Me._ms) + End Using + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error: " & sPath) + End Try + End If + End Sub Public Sub FromWeb(ByVal sURL As String) Try sHTTP.StartDownloadImage(sURL) - + Debug.Print("FromWeb/t{0}", sURL) While sHTTP.IsDownloading Application.DoEvents() Threading.Thread.Sleep(50) End While - If Not IsNothing(sHTTP.Image) Then _image = New Bitmap(sHTTP.Image) + If Not IsNothing(sHTTP.Image) Then + If Not IsNothing(Me._ms) Then + Me._ms.Dispose() + End If + Me._ms = New MemoryStream() + + Dim retSave() As Byte + retSave = sHTTP.ms.ToArray + Me._ms.Write(retSave, 0, retSave.Length) + + 'Dim kkk As String = Path.Combine(Master.TempPath, sHTTP.ms.Length.ToString) + 'Using fs As New FileStream(kkk & "a.jpg", FileMode.Create, FileAccess.Write) + ' fs.Write(retSave, 0, retSave.Length) + ' fs.Flush() + ' fs.Close() + 'End Using + + 'retSave = _ms.ToArray() + 'Using fs As New FileStream(kkk & "a2.jpg", FileMode.Create, FileAccess.Write) + ' fs.Write(retSave, 0, retSave.Length) + ' fs.Flush() + ' fs.Close() + 'End Using + 'Me.Save(kkk & "b.jpg", , , False) + + 'I do not copy from the _ms as it could not be a JPG + _image = New Bitmap(sHTTP.Image) + + ' if is not a JPG we have to conver the memory stream to JPG format + If Not sHTTP.isJPG Then + UpdateMSfromImg(New Bitmap(_image)) + End If + End If + Catch End Try End Sub - Public Function IsAllowedToDownload(ByVal mMovie As Structures.DBMovie, ByVal fType As Enums.ImageType, Optional ByVal isChange As Boolean = False) As Boolean - Try - Select Case fType - Case Enums.ImageType.Fanart - If (isChange OrElse (String.IsNullOrEmpty(mMovie.FanartPath) OrElse Master.eSettings.OverwriteFanart)) AndAlso _ - (Master.eSettings.MovieNameDotFanartJPG OrElse Master.eSettings.MovieNameFanartJPG OrElse Master.eSettings.FanartJPG) AndAlso _ - AdvancedSettings.GetBooleanSetting("UseTMDB", True) Then - Return True - Else - Return False - End If - Case Else - If (isChange OrElse (String.IsNullOrEmpty(mMovie.PosterPath) OrElse Master.eSettings.OverwritePoster)) AndAlso _ - (Master.eSettings.MovieTBN OrElse Master.eSettings.MovieNameTBN OrElse Master.eSettings.MovieJPG OrElse _ - Master.eSettings.MovieNameJPG OrElse Master.eSettings.MovieNameDashPosterJPG OrElse Master.eSettings.PosterTBN OrElse Master.eSettings.PosterJPG OrElse Master.eSettings.FolderJPG) AndAlso _ - (AdvancedSettings.GetBooleanSetting("UseIMPA", False) OrElse AdvancedSettings.GetBooleanSetting("UseMPDB", False) OrElse AdvancedSettings.GetBooleanSetting("UseTMDB", True)) Then - Return True - Else - Return False - End If - End Select - Catch ex As Exception - Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") - Return False - End Try - End Function - - Public Sub ResizeExtraThumb(ByVal fromPath As String, ByVal toPath As String) - Me.FromFile(fromPath) - If Not Master.eSettings.ETNative Then - Dim iWidth As Integer = Master.eSettings.ETWidth - Dim iHeight As Integer = Master.eSettings.ETHeight - ImageUtils.ResizeImage(_image, iWidth, iHeight, Master.eSettings.ETPadding, Color.Black.ToArgb) - End If - Me.Save(toPath) - End Sub + Public Function IsAllowedToDownload(ByVal mMovie As Structures.DBMovie, ByVal fType As Enums.ImageType, Optional ByVal isChange As Boolean = False) As Boolean + Try + Select Case fType + Case Enums.ImageType.Fanart + If (isChange OrElse (String.IsNullOrEmpty(mMovie.FanartPath) OrElse Master.eSettings.OverwriteFanart)) AndAlso _ + (Master.eSettings.MovieNameDotFanartJPG OrElse Master.eSettings.MovieNameFanartJPG OrElse Master.eSettings.FanartJPG) Then + ' Removed as there is not ONLY the TMDB scraper. Also the GetSetting is bound the calling procedure, is always true + ' AndAlso AdvancedSettings.GetBooleanSetting("UseTMDB", True) Then + Return True + Else + Return False + End If + Case Else + If (isChange OrElse (String.IsNullOrEmpty(mMovie.PosterPath) OrElse Master.eSettings.OverwritePoster)) AndAlso _ + (Master.eSettings.MovieTBN OrElse Master.eSettings.MovieNameTBN OrElse Master.eSettings.MovieJPG OrElse _ + Master.eSettings.MovieNameJPG OrElse Master.eSettings.MovieNameDashPosterJPG OrElse Master.eSettings.PosterTBN OrElse Master.eSettings.PosterJPG OrElse Master.eSettings.FolderJPG) Then + ' Removed as there is not ONLY the Native scraper scraper. Also the GetSetting is bound the calling procedure, is always true + ' AndAlso (AdvancedSettings.GetBooleanSetting("UseIMPA", False) OrElse AdvancedSettings.GetBooleanSetting("UseMPDB", False) OrElse AdvancedSettings.GetBooleanSetting("UseTMDB", True)) Then + Return True + Else + Return False + End If + End Select + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + Return False + End Try + End Function + + Public Sub ResizeExtraThumb(ByVal fromPath As String, ByVal toPath As String) + Me.FromFile(fromPath) + If Not Master.eSettings.ETNative Then + Dim iWidth As Integer = Master.eSettings.ETWidth + Dim iHeight As Integer = Master.eSettings.ETHeight + ImageUtils.ResizeImage(_image, iWidth, iHeight, Master.eSettings.ETPadding, Color.Black.ToArgb) + End If + Me.Save(toPath) + End Sub - Public Sub Save(ByVal sPath As String, Optional ByVal iQuality As Long = 0, Optional ByVal sUrl As String = "") + Public Sub Save(ByVal sPath As String, Optional ByVal iQuality As Long = 0, Optional ByVal sUrl As String = "", Optional ByVal doResize As Boolean = False) + Dim retSave() As Byte Try + If Not doResize Then + 'EmberAPI.FileUtils.Common.MoveFileWithStream(sUrl, sPath) + retSave = _ms.ToArray + + 'make sure directory exists + Directory.CreateDirectory(Directory.GetParent(sPath).FullName) + If sPath.Length <= 260 Then + Using fs As New FileStream(sPath, FileMode.Create, FileAccess.Write) + fs.Write(retSave, 0, retSave.Length) + fs.Flush() + fs.Close() + End Using + End If + Return + End If If IsNothing(_image) Then Exit Sub Dim doesExist As Boolean = File.Exists(sPath) @@ -455,30 +532,13 @@ Public Class Images End If If Not sUrl = "" Then - 'TODO V3 API implementation to get ALL posters! http://docs.themoviedb.apiary.io/#configuration - ' GetsImagesFromTMDBv3("URL/MOVIEDID") - - Dim stroriginalurl As String = sUrl - 'Image Download from tmdb is special, need original size - If Not sUrl.Contains("impawards") AndAlso Not sUrl.Contains("movieposterdb") Then - 'Always get original image... - 'links to images (tmdb) have following structure: 'example: http://d3gtl9l2a4fn1j.cloudfront.net/t/p/w92/x65b4vsFKYuA878pLN1mJiAsgIP.jpg - - Dim stringArray() As String = Split(stroriginalurl, "/") - If stringArray.Length > 4 Then - ' stringArray(5) contains values like "w185","original", "w154"...-->size -> we want original! - stringArray(5) = "original" - stroriginalurl = Join(stringArray, "/") - End If - End If Dim webclient As New Net.WebClient 'Download image! - webclient.DownloadFile(stroriginalurl, sPath) + webclient.DownloadFile(sUrl, sPath) Else Using msSave As New MemoryStream - Dim retSave() As Byte Dim ICI As ImageCodecInfo = GetEncoderInfo(ImageFormat.Jpeg) Dim EncPars As EncoderParameters = New EncoderParameters(If(iQuality > 0, 2, 1)) @@ -511,219 +571,270 @@ Public Class Images End Try End Sub - Public Function SaveAsAllSeasonPoster(ByVal mShow As Structures.DBTV) As String - Dim strReturn As String = String.Empty - - Try - Dim pPath As String = String.Empty + Public Function SaveAsAllSeasonPoster(ByVal mShow As Structures.DBTV, Optional sURL As String = "") As String + Dim strReturn As String = String.Empty + Dim doResize As Boolean = Master.eSettings.ResizeAllSPoster AndAlso (_image.Width > Master.eSettings.AllSPosterWidth OrElse _image.Height > Master.eSettings.AllSPosterHeight) - If Master.eSettings.ResizeAllSPoster AndAlso (_image.Width > Master.eSettings.AllSPosterWidth OrElse _image.Height > Master.eSettings.AllSPosterHeight) Then - ImageUtils.ResizeImage(_image, Master.eSettings.AllSPosterWidth, Master.eSettings.AllSPosterHeight) - End If - Try - Dim params As New List(Of Object)(New Object() {Enums.TVImageType.AllSeasonPoster, mShow, New List(Of String)}) - Dim doContinue As Boolean = True - ModulesManager.Instance.RunGeneric(Enums.ModuleEventType.TVImageNaming, params, doContinue) - For Each s As String In DirectCast(params(2), List(Of String)) - If Not File.Exists(s) OrElse (IsEdit OrElse Master.eSettings.OverwriteAllSPoster) Then - Save(s, Master.eSettings.AllSPosterQuality) - If String.IsNullOrEmpty(strReturn) Then strReturn = s - End If - Next - If Not doContinue Then Return strReturn - Catch ex As Exception - Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") - End Try + Try + Dim pPath As String = String.Empty - If Master.eSettings.SeasonAllJPG Then - pPath = Path.Combine(mShow.ShowPath, "season-all.jpg") - If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteAllSPoster) Then - Save(pPath, Master.eSettings.AllSPosterQuality) - strReturn = pPath - End If - End If + If doResize Then + ImageUtils.ResizeImage(_image, Master.eSettings.AllSPosterWidth, Master.eSettings.AllSPosterHeight) + End If - If Master.eSettings.SeasonAllTBN Then - pPath = Path.Combine(mShow.ShowPath, "season-all.tbn") - If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteAllSPoster) Then - Save(pPath, Master.eSettings.AllSPosterQuality) - strReturn = pPath - End If - End If + Try + Dim params As New List(Of Object)(New Object() {Enums.TVImageType.AllSeasonPoster, mShow, New List(Of String)}) + Dim doContinue As Boolean = True + ModulesManager.Instance.RunGeneric(Enums.ModuleEventType.TVImageNaming, params, doContinue) + For Each s As String In DirectCast(params(2), List(Of String)) + If Not File.Exists(s) OrElse (IsEdit OrElse Master.eSettings.OverwriteAllSPoster) Then + Save(s, Master.eSettings.AllSPosterQuality, sURL, doResize) + If String.IsNullOrEmpty(strReturn) Then strReturn = s + End If + Next + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + + If Master.eSettings.SeasonAllJPG Then + pPath = Path.Combine(mShow.ShowPath, "season-all.jpg") + If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteAllSPoster) Then + Save(pPath, Master.eSettings.AllSPosterQuality, sURL, doResize) + strReturn = pPath + End If + End If - If Master.eSettings.SeasonAllPosterJPG Then - pPath = Path.Combine(mShow.ShowPath, "season-all-poster.jpg") - If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteAllSPoster) Then - Save(pPath, Master.eSettings.AllSPosterQuality) - strReturn = pPath - End If - End If + If Master.eSettings.SeasonAllTBN Then + pPath = Path.Combine(mShow.ShowPath, "season-all.tbn") + If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteAllSPoster) Then + Save(pPath, Master.eSettings.AllSPosterQuality, sURL, doResize) + strReturn = pPath + End If + End If - Catch ex As Exception - Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") - End Try + If Master.eSettings.SeasonAllPosterJPG Then + pPath = Path.Combine(mShow.ShowPath, "season-all-poster.jpg") + If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteAllSPoster) Then + Save(pPath, Master.eSettings.AllSPosterQuality, sURL, doResize) + strReturn = pPath + End If + End If - Return strReturn - End Function + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try - Public Function SaveAsEpFanart(ByVal mShow As Structures.DBTV) As String - Dim strReturn As String = String.Empty + Return strReturn + End Function - Try - Dim tPath As String = String.Empty + Public Function SaveAsEpFanart(ByVal mShow As Structures.DBTV, Optional sURL As String = "") As String + Dim strReturn As String = String.Empty + Dim doResize As Boolean = Master.eSettings.ResizeEpFanart AndAlso (_image.Width > Master.eSettings.EpFanartWidth OrElse _image.Height > Master.eSettings.EpFanartHeight) - If Master.eSettings.ResizeEpFanart AndAlso (_image.Width > Master.eSettings.EpFanartWidth OrElse _image.Height > Master.eSettings.EpFanartHeight) Then - ImageUtils.ResizeImage(_image, Master.eSettings.EpFanartWidth, Master.eSettings.EpFanartHeight) - End If - Try - Dim params As New List(Of Object)(New Object() {Enums.TVImageType.EpisodeFanart, mShow, New List(Of String)}) - Dim doContinue As Boolean = True - ModulesManager.Instance.RunGeneric(Enums.ModuleEventType.TVImageNaming, params, doContinue) - For Each s As String In DirectCast(params(2), List(Of String)) - If Not File.Exists(s) OrElse (IsEdit OrElse Master.eSettings.OverwriteEpFanart) Then - Save(s, Master.eSettings.EpFanartQuality) - If String.IsNullOrEmpty(strReturn) Then strReturn = s - End If - Next - If Not doContinue Then Return strReturn - Catch ex As Exception - Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") - End Try + Try + Dim tPath As String = String.Empty - If Master.eSettings.EpisodeDotFanart Then - tPath = String.Concat(FileUtils.Common.RemoveExtFromPath(mShow.Filename), ".fanart.jpg") - If Not File.Exists(tPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteEpFanart) Then - Save(tPath, Master.eSettings.EpFanartQuality) - strReturn = tPath - End If - End If + If doResize Then + ImageUtils.ResizeImage(_image, Master.eSettings.EpFanartWidth, Master.eSettings.EpFanartHeight) + End If + Try + Dim params As New List(Of Object)(New Object() {Enums.TVImageType.EpisodeFanart, mShow, New List(Of String)}) + Dim doContinue As Boolean = True + ModulesManager.Instance.RunGeneric(Enums.ModuleEventType.TVImageNaming, params, doContinue) + For Each s As String In DirectCast(params(2), List(Of String)) + If Not File.Exists(s) OrElse (IsEdit OrElse Master.eSettings.OverwriteEpFanart) Then + Save(s, Master.eSettings.AllSPosterQuality, sURL, doResize) + If String.IsNullOrEmpty(strReturn) Then strReturn = s + End If + Next + If Not doContinue Then + Return strReturn + End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + + If Master.eSettings.EpisodeDotFanart Then + tPath = String.Concat(FileUtils.Common.RemoveExtFromPath(mShow.Filename), ".fanart.jpg") + If Not File.Exists(tPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteEpFanart) Then + Save(tPath, Master.eSettings.AllSPosterQuality, sURL, doResize) + strReturn = tPath + End If + End If - If Master.eSettings.EpisodeDashFanart Then - tPath = String.Concat(FileUtils.Common.RemoveExtFromPath(mShow.Filename), "-fanart.jpg") - If Not File.Exists(tPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteEpFanart) Then - Save(tPath, Master.eSettings.EpFanartQuality) - strReturn = tPath - End If - End If + If Master.eSettings.EpisodeDashFanart Then + tPath = String.Concat(FileUtils.Common.RemoveExtFromPath(mShow.Filename), "-fanart.jpg") + If Not File.Exists(tPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteEpFanart) Then + Save(tPath, Master.eSettings.AllSPosterQuality, sURL, doResize) + strReturn = tPath + End If + End If - Catch ex As Exception - Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") - End Try + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + Return strReturn + End Function - Return strReturn - End Function + Public Function SaveAsEpPoster(ByVal mShow As Structures.DBTV, Optional sURL As String = "") As String + Dim strReturn As String = String.Empty + Dim doResize As Boolean = Master.eSettings.ResizeEpPoster AndAlso (_image.Width > Master.eSettings.EpPosterWidth OrElse _image.Height > Master.eSettings.EpPosterHeight) - Public Function SaveAsEpPoster(ByVal mShow As Structures.DBTV) As String - Dim strReturn As String = String.Empty + Try + Dim pPath As String = String.Empty - Try - Dim pPath As String = String.Empty + If doResize Then + ImageUtils.ResizeImage(_image, Master.eSettings.EpPosterWidth, Master.eSettings.EpPosterHeight) + End If + Try + Dim params As New List(Of Object)(New Object() {Enums.TVImageType.EpisodePoster, mShow, New List(Of String)}) + Dim doContinue As Boolean = True + ModulesManager.Instance.RunGeneric(Enums.ModuleEventType.TVImageNaming, params, doContinue) + For Each s As String In DirectCast(params(2), List(Of String)) + If Not File.Exists(s) OrElse (IsEdit OrElse Master.eSettings.OverwriteEpPoster) Then + Save(s, Master.eSettings.AllSPosterQuality, sURL, doResize) + If String.IsNullOrEmpty(strReturn) Then strReturn = s + End If + Next + If Not doContinue Then + Return strReturn + End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + + If Master.eSettings.EpisodeJPG Then + pPath = String.Concat(FileUtils.Common.RemoveExtFromPath(mShow.Filename), ".jpg") + If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteEpPoster) Then + Save(pPath, Master.eSettings.AllSPosterQuality, sURL, doResize) + strReturn = pPath + End If + End If - If Master.eSettings.ResizeEpPoster AndAlso (_image.Width > Master.eSettings.EpPosterWidth OrElse _image.Height > Master.eSettings.EpPosterHeight) Then - ImageUtils.ResizeImage(_image, Master.eSettings.EpPosterWidth, Master.eSettings.EpPosterHeight) - End If - Try - Dim params As New List(Of Object)(New Object() {Enums.TVImageType.EpisodePoster, mShow, New List(Of String)}) - Dim doContinue As Boolean = True - ModulesManager.Instance.RunGeneric(Enums.ModuleEventType.TVImageNaming, params, doContinue) - For Each s As String In DirectCast(params(2), List(Of String)) - If Not File.Exists(s) OrElse (IsEdit OrElse Master.eSettings.OverwriteEpPoster) Then - Save(s, Master.eSettings.EpPosterQuality) - If String.IsNullOrEmpty(strReturn) Then strReturn = s - End If - Next - If Not doContinue Then Return strReturn - Catch ex As Exception - Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") - End Try + If Master.eSettings.EpisodeTBN Then + pPath = String.Concat(FileUtils.Common.RemoveExtFromPath(mShow.Filename), ".tbn") + If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteEpPoster) Then + Save(pPath, Master.eSettings.AllSPosterQuality, sURL, doResize) + strReturn = pPath + End If + End If - If Master.eSettings.EpisodeJPG Then - pPath = String.Concat(FileUtils.Common.RemoveExtFromPath(mShow.Filename), ".jpg") - If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteEpPoster) Then - Save(pPath, Master.eSettings.EpPosterQuality) - strReturn = pPath - End If - End If + If Master.eSettings.EpisodeDashThumbJPG Then + pPath = String.Concat(FileUtils.Common.RemoveExtFromPath(mShow.Filename), "-thumb.jpg") + If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteEpPoster) Then + Save(pPath, Master.eSettings.AllSPosterQuality, sURL, doResize) + strReturn = pPath + End If + End If - If Master.eSettings.EpisodeTBN Then - pPath = String.Concat(FileUtils.Common.RemoveExtFromPath(mShow.Filename), ".tbn") - If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteEpPoster) Then - Save(pPath, Master.eSettings.EpPosterQuality) - strReturn = pPath - End If - End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + Return strReturn + End Function - If Master.eSettings.EpisodeDashThumbJPG Then - pPath = String.Concat(FileUtils.Common.RemoveExtFromPath(mShow.Filename), "-thumb.jpg") - If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteEpPoster) Then - Save(pPath, Master.eSettings.EpPosterQuality) - strReturn = pPath - End If - End If + Public Function SaveAsFanart(ByVal mMovie As Structures.DBMovie, Optional sURL As String = "") As String + Dim strReturn As String = String.Empty + Dim doResize As Boolean = Master.eSettings.ResizeFanart AndAlso (_image.Width > Master.eSettings.FanartWidth OrElse _image.Height > Master.eSettings.FanartHeight) - Catch ex As Exception - Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") - End Try + Try + Dim fPath As String = String.Empty + Dim fPathStack As String = String.Empty + Dim tPath As String = String.Empty + + Try + Dim params As New List(Of Object)(New Object() {mMovie}) + ModulesManager.Instance.RunGeneric(Enums.ModuleEventType.OnMovieFanartSave, params, _image, False) + Catch ex As Exception + End Try + + If doResize Then + ImageUtils.ResizeImage(_image, Master.eSettings.FanartWidth, Master.eSettings.FanartHeight) + End If - Return strReturn - End Function + If (Master.eSettings.VideoTSParent OrElse Master.eSettings.VideoTSParentXBMC) AndAlso FileUtils.Common.isVideoTS(mMovie.Filename) Then + With Master.eSettings + If .FanartJPG Then + fPath = String.Concat(Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).FullName, "\", "fanart.jpg") + If Not File.Exists(fPath) OrElse (IsEdit OrElse Master.eSettings.OverwritePoster) Then + Save(fPath, Master.eSettings.AllSPosterQuality, sURL, doResize) + strReturn = fPath + End If + End If - Public Function SaveAsFanart(ByVal mMovie As Structures.DBMovie) As String - Dim strReturn As String = String.Empty + If .MovieNameFanartJPG AndAlso Not Master.eSettings.VideoTSParentXBMC Then + fPath = String.Concat(Path.Combine(Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).FullName, Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).Name), "-fanart.jpg") + If Not File.Exists(fPath) OrElse (IsEdit OrElse Master.eSettings.OverwritePoster) Then + Save(fPath, Master.eSettings.AllSPosterQuality, sURL, doResize) + strReturn = fPath + End If + End If - Try - Dim fPath As String = String.Empty - Dim tPath As String = String.Empty + If .MovieNameFanartJPG AndAlso Master.eSettings.VideoTSParentXBMC Then + fPath = String.Concat(Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).FullName, "\", "fanart.jpg") + If Not File.Exists(fPath) OrElse (IsEdit OrElse Master.eSettings.OverwritePoster) Then + Save(fPath, Master.eSettings.AllSPosterQuality, sURL, doResize) + strReturn = fPath + End If + End If - Try - Dim params As New List(Of Object)(New Object() {mMovie}) - ModulesManager.Instance.RunGeneric(Enums.ModuleEventType.OnMovieFanartSave, params, _image, False) - Catch ex As Exception - End Try + If .MovieNameDotFanartJPG Then + fPath = String.Concat(Path.Combine(Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).FullName, Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).Name), ".fanart.jpg") + If Not File.Exists(fPath) OrElse (IsEdit OrElse Master.eSettings.OverwritePoster) Then + Save(fPath, Master.eSettings.AllSPosterQuality, sURL, doResize) + strReturn = fPath + End If + End If + End With + + If Master.eSettings.AutoBD AndAlso Directory.Exists(Master.eSettings.BDPath) Then + Save(String.Concat(Master.eSettings.BDPath, Path.DirectorySeparatorChar, StringUtils.CleanFileName(mMovie.Movie.OriginalTitle), "_tt", mMovie.Movie.IMDBID, ".jpg"), Master.eSettings.AllSPosterQuality, sURL, doResize) + End If - If Master.eSettings.ResizeFanart AndAlso (_image.Width > Master.eSettings.FanartWidth OrElse _image.Height > Master.eSettings.FanartHeight) Then - ImageUtils.ResizeImage(_image, Master.eSettings.FanartWidth, Master.eSettings.FanartHeight) - End If + ElseIf (Master.eSettings.VideoTSParent OrElse Master.eSettings.VideoTSParentXBMC) AndAlso FileUtils.Common.isBDRip(mMovie.Filename) Then + With Master.eSettings + If .FanartJPG Then + fPath = String.Concat(Path.Combine(Directory.GetParent(Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).FullName).FullName, "fanart.jpg")) + If Not File.Exists(fPath) OrElse (IsEdit OrElse Master.eSettings.OverwritePoster) Then + Save(fPath, Master.eSettings.AllSPosterQuality, sURL, doResize) + strReturn = fPath + End If + End If - If Master.eSettings.VideoTSParent AndAlso FileUtils.Common.isVideoTS(mMovie.Filename) Then - If Master.eSettings.FanartJPG Then - fPath = String.Concat(Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).FullName, "\", "fanart.jpg") - ElseIf Master.eSettings.MovieNameFanartJPG Then - fPath = String.Concat(Path.Combine(Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).FullName, Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).Name), "-fanart.jpg") - ElseIf Master.eSettings.MovieNameDotFanartJPG Then - fPath = String.Concat(Path.Combine(Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).FullName, Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).Name), ".fanart.jpg") - Else - fPath = String.Concat(Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).FullName, "\", "fanart.jpg") - End If + If .MovieNameFanartJPG AndAlso Not Master.eSettings.VideoTSParentXBMC Then + fPath = String.Concat(Path.Combine(Directory.GetParent(Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).FullName).FullName, Directory.GetParent(Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).FullName).Name), "-fanart.jpg") + If Not File.Exists(fPath) OrElse (IsEdit OrElse Master.eSettings.OverwritePoster) Then + Save(fPath, Master.eSettings.AllSPosterQuality, sURL, doResize) + strReturn = fPath + End If + End If - If Not File.Exists(fPath) OrElse (IsEdit OrElse Master.eSettings.OverwritePoster) Then - Save(fPath, Master.eSettings.FanartQuality) - strReturn = fPath - If Master.eSettings.AutoBD AndAlso Directory.Exists(Master.eSettings.BDPath) Then - Save(Path.Combine(Master.eSettings.BDPath, Path.GetFileName(fPath)), Master.eSettings.FanartQuality) + If .MovieNameFanartJPG AndAlso Master.eSettings.VideoTSParentXBMC Then + fPath = String.Concat(Directory.GetParent(Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).FullName).FullName, "\", "fanart.jpg") + If Not File.Exists(fPath) OrElse (IsEdit OrElse Master.eSettings.OverwritePoster) Then + Save(fPath, Master.eSettings.AllSPosterQuality, sURL, doResize) + strReturn = fPath + End If End If - End If - ElseIf Master.eSettings.VideoTSParent AndAlso FileUtils.Common.isBDRip(mMovie.Filename) Then - If Master.eSettings.FanartJPG Then - fPath = String.Concat(Path.Combine(Directory.GetParent(Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).FullName).FullName, "fanart.jpg")) - ElseIf Master.eSettings.MovieNameFanartJPG Then - fPath = String.Concat(Path.Combine(Directory.GetParent(Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).FullName).FullName, Directory.GetParent(Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).FullName).Name), "-fanart.jpg") - ElseIf Master.eSettings.MovieNameDotFanartJPG Then - fPath = String.Concat(Path.Combine(Directory.GetParent(Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).FullName).FullName, Directory.GetParent(Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).FullName).Name), ".fanart.jpg") - Else - fPath = String.Concat(Path.Combine(Directory.GetParent(Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).FullName).FullName, "fanart.jpg")) - End If - If Not File.Exists(fPath) OrElse (IsEdit OrElse Master.eSettings.OverwritePoster) Then - Save(fPath, Master.eSettings.FanartQuality) - strReturn = fPath - If Master.eSettings.AutoBD AndAlso Directory.Exists(Master.eSettings.BDPath) Then - Save(Path.Combine(Master.eSettings.BDPath, Path.GetFileName(fPath)), Master.eSettings.FanartQuality) + If .MovieNameDotFanartJPG Then + fPath = String.Concat(Path.Combine(Directory.GetParent(Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).FullName).FullName, Directory.GetParent(Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).FullName).Name), ".fanart.jpg") + If Not File.Exists(fPath) OrElse (IsEdit OrElse Master.eSettings.OverwritePoster) Then + Save(fPath, Master.eSettings.AllSPosterQuality, sURL, doResize) + strReturn = fPath + End If End If + End With + + If Master.eSettings.AutoBD AndAlso Directory.Exists(Master.eSettings.BDPath) Then + Save(String.Concat(Master.eSettings.BDPath, Path.DirectorySeparatorChar, StringUtils.CleanFileName(mMovie.Movie.OriginalTitle), "_tt", mMovie.Movie.IMDBID, ".jpg"), Master.eSettings.AllSPosterQuality, sURL, doResize) End If + Else Dim tmpName As String = Path.GetFileNameWithoutExtension(mMovie.Filename) + Dim tmpNameStack As String = StringUtils.CleanStackingMarkers(Path.GetFileNameWithoutExtension(mMovie.Filename)) fPath = Path.Combine(Directory.GetParent(mMovie.Filename).FullName, tmpName) + fPathStack = Path.Combine(Directory.GetParent(mMovie.Filename).FullName, tmpNameStack) If Master.eSettings.MovieNameDotFanartJPG AndAlso (Not mMovie.isSingle OrElse Not Master.eSettings.MovieNameMultiOnly) Then If FileUtils.Common.isVideoTS(mMovie.Filename) Then @@ -734,17 +845,8 @@ Public Class Images tPath = String.Concat(fPath, ".fanart.jpg") End If If Not File.Exists(tPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteFanart) Then - Save(tPath, Master.eSettings.FanartQuality) + Save(tPath, Master.eSettings.FanartQuality, sURL, doResize) strReturn = tPath - If Master.eSettings.AutoBD AndAlso Directory.Exists(Master.eSettings.BDPath) Then - If FileUtils.Common.isVideoTS(mMovie.Filename) Then - Save(Path.Combine(Master.eSettings.BDPath, String.Concat(Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).Name, "-fanart.jpg")), Master.eSettings.FanartQuality) - ElseIf FileUtils.Common.isBDRip(mMovie.Filename) Then - Save(Path.Combine(Master.eSettings.BDPath, String.Concat(Directory.GetParent(Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).FullName).Name, "-fanart.jpg")), Master.eSettings.FanartQuality) - Else - Save(Path.Combine(Master.eSettings.BDPath, Path.GetFileName(tPath)), Master.eSettings.FanartQuality) - End If - End If End If End If @@ -754,133 +856,224 @@ Public Class Images ElseIf FileUtils.Common.isBDRip(mMovie.Filename) Then tPath = Path.Combine(Directory.GetParent(mMovie.Filename).FullName, "index-fanart.jpg") Else - tPath = String.Concat(fPath, "-fanart.jpg") + If Master.eSettings.VideoTSParentXBMC AndAlso tmpName.ToLower = "video_ts" Then + tPath = String.Concat(Directory.GetParent(fPath).FullName, "\", "fanart.jpg") + Else + tPath = String.Concat(fPathStack, "-fanart.jpg") + End If End If If Not File.Exists(tPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteFanart) Then - Save(tPath, Master.eSettings.FanartQuality) + Save(tPath, Master.eSettings.FanartQuality, sURL, doResize) strReturn = tPath - If Master.eSettings.AutoBD AndAlso Directory.Exists(Master.eSettings.BDPath) Then - If FileUtils.Common.isVideoTS(mMovie.Filename) Then - Save(Path.Combine(Master.eSettings.BDPath, String.Concat(Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).Name, "-fanart.jpg")), Master.eSettings.FanartQuality) - ElseIf FileUtils.Common.isBDRip(mMovie.Filename) Then - Save(Path.Combine(Master.eSettings.BDPath, String.Concat(Directory.GetParent(Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).FullName).Name, "-fanart.jpg")), Master.eSettings.FanartQuality) - Else - Save(Path.Combine(Master.eSettings.BDPath, Path.GetFileName(tPath)), Master.eSettings.FanartQuality) - End If - End If End If End If If Master.eSettings.FanartJPG AndAlso mMovie.isSingle Then tPath = Path.Combine(Directory.GetParent(mMovie.Filename).FullName, "fanart.jpg") If Not File.Exists(tPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteFanart) Then - Save(tPath, Master.eSettings.FanartQuality) + Save(tPath, Master.eSettings.FanartQuality, sURL, doResize) strReturn = tPath - If Master.eSettings.AutoBD AndAlso Directory.Exists(Master.eSettings.BDPath) Then - If FileUtils.Common.isVideoTS(mMovie.Filename) Then - Save(Path.Combine(Master.eSettings.BDPath, String.Concat(Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).Name, "-fanart.jpg")), Master.eSettings.FanartQuality) - ElseIf FileUtils.Common.isBDRip(mMovie.Filename) Then - Save(Path.Combine(Master.eSettings.BDPath, String.Concat(Directory.GetParent(Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).FullName).Name, "-fanart.jpg")), Master.eSettings.FanartQuality) - Else - Save(Path.Combine(Master.eSettings.BDPath, String.Concat(tmpName, "-fanart.jpg")), Master.eSettings.FanartQuality) - End If - End If End If End If + + If Master.eSettings.AutoBD AndAlso Directory.Exists(Master.eSettings.BDPath) Then + Save(String.Concat(Master.eSettings.BDPath, Path.DirectorySeparatorChar, StringUtils.CleanFileName(mMovie.Movie.OriginalTitle), "_tt", mMovie.Movie.IMDBID, ".jpg"), Master.eSettings.AllSPosterQuality, sURL, doResize) + End If End If + Catch ex As Exception Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") End Try - Return strReturn - End Function + Return strReturn + End Function - Public Function SaveAsPoster(ByVal mMovie As Structures.DBMovie) As String - Dim strReturn As String = String.Empty + Public Function SaveAsPoster(ByVal mMovie As Structures.DBMovie, Optional sURL As String = "") As String + Dim strReturn As String = String.Empty + Dim doResize As Boolean = Master.eSettings.ResizePoster AndAlso (_image.Width > Master.eSettings.PosterWidth OrElse _image.Height > Master.eSettings.PosterHeight) - Try - Dim pPath As String = String.Empty - Try - Dim params As New List(Of Object)(New Object() {mMovie}) - ModulesManager.Instance.RunGeneric(Enums.ModuleEventType.OnMoviePosterSave, params, _image, False) - Catch ex As Exception - End Try - If Master.eSettings.ResizePoster AndAlso (_image.Width > Master.eSettings.PosterWidth OrElse _image.Height > Master.eSettings.PosterHeight) Then - ImageUtils.ResizeImage(_image, Master.eSettings.PosterWidth, Master.eSettings.PosterHeight) - End If + Try + Dim pPath As String = String.Empty + Dim pPathStack As String = String.Empty + Try + Dim params As New List(Of Object)(New Object() {mMovie}) + ModulesManager.Instance.RunGeneric(Enums.ModuleEventType.OnMoviePosterSave, params, _image, False) + Catch ex As Exception + End Try + + If doResize Then + ImageUtils.ResizeImage(_image, Master.eSettings.PosterWidth, Master.eSettings.PosterHeight) + End If - If Master.eSettings.VideoTSParent AndAlso FileUtils.Common.isVideoTS(mMovie.Filename) Then + If (Master.eSettings.VideoTSParent OrElse Master.eSettings.VideoTSParentXBMC) AndAlso FileUtils.Common.isVideoTS(mMovie.Filename) Then With Master.eSettings If .MovieNameJPG Then pPath = String.Concat(Path.Combine(Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).FullName, Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).Name), ".jpg") - ElseIf .MovieJPG Then + If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwritePoster) Then + Save(pPath, Master.eSettings.PosterQuality, sURL, doResize) + strReturn = pPath + End If + End If + + If .MovieJPG Then pPath = String.Concat(Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).FullName, "\", "movie.jpg") - ElseIf .FolderJPG Then + If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwritePoster) Then + Save(pPath, Master.eSettings.PosterQuality, sURL, doResize) + strReturn = pPath + End If + End If + + If .FolderJPG Then pPath = String.Concat(Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).FullName, "\", "folder.jpg") - ElseIf .PosterJPG Then + If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwritePoster) Then + Save(pPath, Master.eSettings.PosterQuality, sURL, doResize) + strReturn = pPath + End If + End If + + If .PosterJPG Then pPath = String.Concat(Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).FullName, "\", "poster.jpg") - ElseIf .MovieNameTBN Then + If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwritePoster) Then + Save(pPath, Master.eSettings.PosterQuality, sURL, doResize) + strReturn = pPath + End If + End If + + If .MovieNameTBN Then pPath = String.Concat(Path.Combine(Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).FullName, Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).Name), ".tbn") - ElseIf .MovieNameDashPosterJPG Then + If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwritePoster) Then + Save(pPath, Master.eSettings.PosterQuality, sURL, doResize) + strReturn = pPath + End If + End If + + If .MovieNameDashPosterJPG And Not Master.eSettings.VideoTSParentXBMC Then pPath = String.Concat(Path.Combine(Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).FullName, Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).Name), "-poster.jpg") - ElseIf .MovieTBN Then + If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwritePoster) Then + Save(pPath, Master.eSettings.PosterQuality, sURL, doResize) + strReturn = pPath + End If + End If + + If .MovieNameDashPosterJPG And Master.eSettings.VideoTSParentXBMC Then + pPath = String.Concat(Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).FullName, "\", "poster.jpg") + If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwritePoster) Then + Save(pPath, Master.eSettings.PosterQuality, sURL, doResize) + strReturn = pPath + End If + End If + + If .MovieTBN Then pPath = String.Concat(Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).FullName, "\", "movie.tbn") - ElseIf .PosterTBN Then + If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwritePoster) Then + Save(pPath, Master.eSettings.PosterQuality, sURL, doResize) + strReturn = pPath + End If + End If + + If .PosterTBN Then pPath = String.Concat(Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).FullName, "\", "poster.tbn") - Else - pPath = String.Empty + If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwritePoster) Then + Save(pPath, Master.eSettings.PosterQuality, sURL, doResize) + strReturn = pPath + End If End If End With - - If Not pPath = String.Empty And (Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwritePoster)) Then - Save(pPath, Master.eSettings.PosterQuality) - strReturn = pPath - End If - ElseIf Master.eSettings.VideoTSParent AndAlso FileUtils.Common.isBDRip(mMovie.Filename) Then + ElseIf (Master.eSettings.VideoTSParent OrElse Master.eSettings.VideoTSParentXBMC) AndAlso FileUtils.Common.isBDRip(mMovie.Filename) Then With Master.eSettings If .MovieNameJPG Then pPath = String.Concat(Path.Combine(Directory.GetParent(Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).FullName).FullName, Directory.GetParent(Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).FullName).Name), ".jpg") - ElseIf .MovieJPG Then + If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwritePoster) Then + Save(pPath, Master.eSettings.PosterQuality, sURL, doResize) + strReturn = pPath + End If + End If + + If .MovieJPG Then pPath = String.Concat(Path.Combine(Directory.GetParent(Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).FullName).FullName, "movie.jpg")) - ElseIf .FolderJPG Then + If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwritePoster) Then + Save(pPath, Master.eSettings.PosterQuality, sURL, doResize) + strReturn = pPath + End If + End If + + If .FolderJPG Then pPath = String.Concat(Path.Combine(Directory.GetParent(Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).FullName).FullName, "folder.jpg")) - ElseIf .PosterJPG Then + If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwritePoster) Then + Save(pPath, Master.eSettings.PosterQuality, sURL, doResize) + strReturn = pPath + End If + End If + + If .PosterJPG Then pPath = String.Concat(Path.Combine(Directory.GetParent(Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).FullName).FullName, "poster.jpg")) - ElseIf .MovieNameTBN Then + If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwritePoster) Then + Save(pPath, Master.eSettings.PosterQuality, sURL, doResize) + strReturn = pPath + End If + End If + + If .MovieNameTBN Then pPath = String.Concat(Path.Combine(Directory.GetParent(Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).FullName).FullName, Directory.GetParent(Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).FullName).Name), ".tbn") - ElseIf .MovieNameDashPosterJPG Then + If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwritePoster) Then + Save(pPath, Master.eSettings.PosterQuality, sURL, doResize) + strReturn = pPath + End If + End If + + If .MovieNameDashPosterJPG And Not Master.eSettings.VideoTSParentXBMC Then pPath = String.Concat(Path.Combine(Directory.GetParent(Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).FullName).FullName, Directory.GetParent(Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).FullName).Name), "-poster.jpg") - ElseIf .MovieTBN Then + If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwritePoster) Then + Save(pPath, Master.eSettings.PosterQuality, sURL, doResize) + strReturn = pPath + End If + End If + + If .MovieNameDashPosterJPG And Master.eSettings.VideoTSParentXBMC Then + pPath = String.Concat(Path.Combine(Directory.GetParent(Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).FullName).FullName, "poster.jpg")) + If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwritePoster) Then + Save(pPath, Master.eSettings.PosterQuality, sURL, doResize) + strReturn = pPath + End If + End If + + If .MovieTBN Then pPath = String.Concat(Path.Combine(Directory.GetParent(Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).FullName).FullName, "movie.tbn")) - ElseIf .PosterTBN Then + If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwritePoster) Then + Save(pPath, Master.eSettings.PosterQuality, sURL, doResize) + strReturn = pPath + End If + End If + + If .PosterTBN Then pPath = String.Concat(Path.Combine(Directory.GetParent(Directory.GetParent(Directory.GetParent(mMovie.Filename).FullName).FullName).FullName, "poster.tbn")) - Else - pPath = String.Empty + If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwritePoster) Then + Save(pPath, Master.eSettings.PosterQuality, sURL, doResize) + strReturn = pPath + End If End If End With - - If Not pPath = String.Empty And (Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwritePoster)) Then - Save(pPath, Master.eSettings.PosterQuality) - strReturn = pPath - End If Else Dim tPath As String = String.Empty + Dim parPath As String = Directory.GetParent(mMovie.Filename).FullName Dim tmpName As String = Path.GetFileNameWithoutExtension(mMovie.Filename) + Dim tmpNameStack As String = StringUtils.CleanStackingMarkers(Path.GetFileNameWithoutExtension(mMovie.Filename)) pPath = Path.Combine(Directory.GetParent(mMovie.Filename).FullName, tmpName) + pPathStack = Path.Combine(Directory.GetParent(mMovie.Filename).FullName, tmpNameStack) If Master.eSettings.FolderJPG AndAlso mMovie.isSingle Then tPath = Path.Combine(Directory.GetParent(mMovie.Filename).FullName, "folder.jpg") If Not File.Exists(tPath) OrElse (IsEdit OrElse Master.eSettings.OverwritePoster) Then - Save(tPath, Master.eSettings.PosterQuality) - strReturn = tPath + Save(tPath, Master.eSettings.PosterQuality, sURL, doResize) + strReturn = pPath End If End If If Master.eSettings.PosterJPG AndAlso mMovie.isSingle Then tPath = Path.Combine(Directory.GetParent(mMovie.Filename).FullName, "poster.jpg") If Not File.Exists(tPath) OrElse (IsEdit OrElse Master.eSettings.OverwritePoster) Then - Save(tPath, Master.eSettings.PosterQuality) + Save(tPath, Master.eSettings.PosterQuality, sURL, doResize) strReturn = tPath End If End If @@ -888,7 +1081,7 @@ Public Class Images If Master.eSettings.PosterTBN AndAlso mMovie.isSingle Then tPath = Path.Combine(Directory.GetParent(mMovie.Filename).FullName, "poster.tbn") If Not File.Exists(tPath) OrElse (IsEdit OrElse Master.eSettings.OverwritePoster) Then - Save(tPath, Master.eSettings.PosterQuality) + Save(tPath, Master.eSettings.PosterQuality, sURL, doResize) strReturn = tPath End If End If @@ -902,7 +1095,7 @@ Public Class Images tPath = String.Concat(pPath, ".jpg") End If If Not File.Exists(tPath) OrElse (IsEdit OrElse Master.eSettings.OverwritePoster) Then - Save(tPath, Master.eSettings.PosterQuality) + Save(tPath, Master.eSettings.PosterQuality, sURL, doResize) strReturn = tPath End If End If @@ -913,10 +1106,14 @@ Public Class Images ElseIf FileUtils.Common.isBDRip(mMovie.Filename) Then tPath = Path.Combine(Directory.GetParent(mMovie.Filename).FullName, "index-poster.jpg") Else - tPath = String.Concat(pPath, "-poster.jpg") + If Master.eSettings.VideoTSParentXBMC AndAlso tmpName.ToLower = "video_ts" Then + tPath = String.Concat(Directory.GetParent(pPath).FullName, "\", "poster.jpg") + Else + tPath = String.Concat(pPathStack, "-poster.jpg") + End If End If If Not File.Exists(tPath) OrElse (IsEdit OrElse Master.eSettings.OverwritePoster) Then - Save(tPath, Master.eSettings.PosterQuality) + Save(tPath, Master.eSettings.PosterQuality, sURL, doResize) strReturn = tPath End If End If @@ -924,7 +1121,7 @@ Public Class Images If Master.eSettings.MovieJPG AndAlso mMovie.isSingle Then tPath = Path.Combine(Directory.GetParent(mMovie.Filename).FullName, "movie.jpg") If Not File.Exists(tPath) OrElse (IsEdit OrElse Master.eSettings.OverwritePoster) Then - Save(tPath, Master.eSettings.PosterQuality) + Save(tPath, Master.eSettings.PosterQuality, sURL, doResize) strReturn = tPath End If End If @@ -938,7 +1135,7 @@ Public Class Images tPath = String.Concat(pPath, ".tbn") End If If Not File.Exists(tPath) OrElse (IsEdit OrElse Master.eSettings.OverwritePoster) Then - Save(tPath, Master.eSettings.PosterQuality) + Save(tPath, Master.eSettings.PosterQuality, sURL, doResize) strReturn = tPath End If End If @@ -946,7 +1143,7 @@ Public Class Images If Master.eSettings.MovieTBN AndAlso mMovie.isSingle Then tPath = Path.Combine(Directory.GetParent(mMovie.Filename).FullName, "movie.tbn") If Not File.Exists(tPath) OrElse (IsEdit OrElse Master.eSettings.OverwritePoster) Then - Save(tPath, Master.eSettings.PosterQuality) + Save(tPath, Master.eSettings.PosterQuality, sURL, doResize) strReturn = tPath End If End If @@ -954,43 +1151,58 @@ Public Class Images Catch ex As Exception Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") End Try + Return strReturn + End Function - Return strReturn - End Function - Public Function SaveAsActorThumb(ByVal actor As MediaContainers.Person, ByVal fpath As String) As String - Dim tPath As String = String.Empty - tPath = Path.Combine(Path.Combine(fpath, ".actors"), String.Concat(actor.Name.Replace(" ", "_"), ".jpg")) - If Not Directory.Exists(Path.Combine(fpath, ".actors")) Then Directory.CreateDirectory(Path.Combine(fpath, ".actors")) - If Not File.Exists(tPath) Then ' OrElse (IsEdit OrElse Master.eSettings.OverwritePoster) Then - Save(tPath, Master.eSettings.PosterQuality) - End If - Return tPath - End Function - Public Function SaveAsSeasonFanart(ByVal mShow As Structures.DBTV) As String - Dim strReturn As String = String.Empty + Public Function SaveAsActorThumb(ByVal actor As MediaContainers.Person, ByVal fpath As String, ByVal aMovie As Structures.DBMovie) As String + Dim tPath As String = String.Empty - Try + If Master.eSettings.VideoTSParentXBMC AndAlso FileUtils.Common.isBDRip(aMovie.Filename) Then + tPath = Path.Combine(Path.Combine(Directory.GetParent(fpath).FullName, ".actors"), String.Concat(actor.Name.Replace(" ", "_"), ".jpg")) + If Not Directory.Exists(Path.Combine(Directory.GetParent(fpath).FullName, ".actors")) Then Directory.CreateDirectory(Path.Combine(Directory.GetParent(fpath).FullName, ".actors")) + If Not File.Exists(tPath) Then ' OrElse (IsEdit OrElse Master.eSettings.OverwritePoster) Then + Save(tPath, Master.eSettings.PosterQuality) + End If + Else + tPath = Path.Combine(Path.Combine(fpath, ".actors"), String.Concat(actor.Name.Replace(" ", "_"), ".jpg")) + If Not Directory.Exists(Path.Combine(fpath, ".actors")) Then Directory.CreateDirectory(Path.Combine(fpath, ".actors")) + If Not File.Exists(tPath) Then ' OrElse (IsEdit OrElse Master.eSettings.OverwritePoster) Then + Save(tPath, Master.eSettings.PosterQuality) + End If + End If + 'End If + Return tPath + End Function + + Public Function SaveAsSeasonFanart(ByVal mShow As Structures.DBTV, Optional sURL As String = "") As String + Dim strReturn As String = String.Empty + Dim doResize As Boolean = Master.eSettings.ResizeSeasonFanart AndAlso (_image.Width > Master.eSettings.SeasonFanartWidth OrElse _image.Height > Master.eSettings.SeasonFanartHeight) + + Try Dim pPath As String = String.Empty - If Master.eSettings.SeasonFanartJPG OrElse Master.eSettings.SeasonDashFanart OrElse Master.eSettings.SeasonXXDashFanartJPG OrElse Master.eSettings.SeasonDotFanart Then - If Master.eSettings.ResizeSeasonFanart AndAlso (_image.Width > Master.eSettings.SeasonFanartWidth OrElse _image.Height > Master.eSettings.SeasonFanartHeight) Then - ImageUtils.ResizeImage(_image, Master.eSettings.SeasonFanartWidth, Master.eSettings.SeasonFanartHeight) + If doResize Then + ImageUtils.ResizeImage(_image, Master.eSettings.SeasonFanartWidth, Master.eSettings.SeasonFanartHeight) + End If + Try + Dim params As New List(Of Object)(New Object() {Enums.TVImageType.SeasonFanart, mShow, New List(Of String)}) + Dim doContinue As Boolean = True + ModulesManager.Instance.RunGeneric(Enums.ModuleEventType.TVImageNaming, params, doContinue) + For Each s As String In DirectCast(params(2), List(Of String)) + If Not File.Exists(s) OrElse (IsEdit OrElse Master.eSettings.OverwriteSeasonFanart) Then + + Save(s, Master.eSettings.SeasonFanartQuality, sURL, doResize) + If String.IsNullOrEmpty(strReturn) Then strReturn = s + End If + Next + If Not doContinue Then + Return strReturn End If - Try - Dim params As New List(Of Object)(New Object() {Enums.TVImageType.SeasonFanart, mShow, New List(Of String)}) - Dim doContinue As Boolean = True - ModulesManager.Instance.RunGeneric(Enums.ModuleEventType.TVImageNaming, params, doContinue) - For Each s As String In DirectCast(params(2), List(Of String)) - If Not File.Exists(s) OrElse (IsEdit OrElse Master.eSettings.OverwriteSeasonFanart) Then - Save(s, Master.eSettings.SeasonFanartQuality) - If String.IsNullOrEmpty(strReturn) Then strReturn = s - End If - Next - If Not doContinue Then Return strReturn - Catch ex As Exception - Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") - End Try + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + If Master.eSettings.SeasonFanartJPG OrElse Master.eSettings.SeasonDashFanart OrElse Master.eSettings.SeasonXXDashFanartJPG OrElse Master.eSettings.SeasonDotFanart Then Dim tPath As String = String.Empty Try @@ -1003,7 +1215,7 @@ Public Class Images If Master.eSettings.SeasonDotFanart Then pPath = Path.Combine(tPath, String.Concat(FileUtils.Common.GetDirectory(tPath), ".fanart.jpg")) If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteSeasonFanart) Then - Save(pPath, Master.eSettings.SeasonFanartQuality) + Save(pPath, Master.eSettings.SeasonFanartQuality, sURL, doResize) strReturn = pPath End If End If @@ -1011,7 +1223,7 @@ Public Class Images If Master.eSettings.SeasonDashFanart Then pPath = Path.Combine(tPath, String.Concat(FileUtils.Common.GetDirectory(tPath), "-fanart.jpg")) If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteSeasonFanart) Then - Save(pPath, Master.eSettings.SeasonFanartQuality) + Save(pPath, Master.eSettings.SeasonFanartQuality, sURL, doResize) strReturn = pPath End If End If @@ -1019,7 +1231,7 @@ Public Class Images If Master.eSettings.SeasonFanartJPG Then pPath = Path.Combine(tPath, "Fanart.jpg") If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteSeasonFanart) Then - Save(pPath, Master.eSettings.SeasonFanartQuality) + Save(pPath, Master.eSettings.SeasonFanartQuality, sURL, doResize) strReturn = pPath End If End If @@ -1031,7 +1243,7 @@ Public Class Images pPath = Path.Combine(mShow.ShowPath, String.Format("season{0}-fanart.jpg", mShow.TVEp.Season.ToString.PadLeft(2, Convert.ToChar("0")))) End If If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteSeasonFanart) Then - Save(pPath, Master.eSettings.SeasonFanartQuality) + Save(pPath, Master.eSettings.SeasonFanartQuality, sURL, doResize) strReturn = pPath End If End If @@ -1044,278 +1256,277 @@ Public Class Images pPath = Path.Combine(mShow.ShowPath, String.Format("season{0}-fanart.jpg", mShow.TVEp.Season.ToString.PadLeft(2, Convert.ToChar("0")))) End If If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteSeasonFanart) Then - Save(pPath, Master.eSettings.SeasonFanartQuality) + Save(pPath, Master.eSettings.SeasonFanartQuality, sURL, doResize) strReturn = pPath End If End If End If End If - Catch ex As Exception - Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") - End Try - - Return strReturn - End Function - - Public Function SaveAsSeasonPoster(ByVal mShow As Structures.DBTV) As String - Dim strReturn As String = String.Empty - - Try - Dim pPath As String = String.Empty - - If Master.eSettings.ResizeSeasonPoster AndAlso (_image.Width > Master.eSettings.SeasonPosterWidth OrElse _image.Height > Master.eSettings.SeasonPosterHeight) Then - ImageUtils.ResizeImage(_image, Master.eSettings.SeasonPosterWidth, Master.eSettings.SeasonPosterHeight) - End If - - Try - Dim params As New List(Of Object)(New Object() {Enums.TVImageType.SeasonPoster, mShow, New List(Of String)}) - Dim doContinue As Boolean = True - ModulesManager.Instance.RunGeneric(Enums.ModuleEventType.TVImageNaming, params, doContinue) - For Each s As String In DirectCast(params(2), List(Of String)) - If Not File.Exists(s) OrElse (IsEdit OrElse Master.eSettings.OverwriteSeasonPoster) Then - Save(s, Master.eSettings.SeasonPosterQuality) - If String.IsNullOrEmpty(strReturn) Then strReturn = s - End If - Next - If Not doContinue Then Return strReturn - Catch ex As Exception - Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") - End Try - - If Master.eSettings.SeasonPosterTBN OrElse Master.eSettings.SeasonPosterJPG OrElse Master.eSettings.SeasonNameTBN OrElse _ - Master.eSettings.SeasonNameJPG OrElse Master.eSettings.FolderJPG Then - Dim tPath As String = String.Empty - - - Try - tPath = Functions.GetSeasonDirectoryFromShowPath(mShow.ShowPath, mShow.TVEp.Season) - Catch - End Try - - If Not String.IsNullOrEmpty(tPath) Then - If Master.eSettings.SeasonPosterTBN Then - pPath = Path.Combine(tPath, "Poster.tbn") - If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteSeasonPoster) Then - Save(pPath, Master.eSettings.SeasonPosterQuality) - strReturn = pPath - End If - End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + Return strReturn + End Function - If Master.eSettings.SeasonPosterJPG Then - pPath = Path.Combine(tPath, "Poster.jpg") - If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteSeasonPoster) Then - Save(pPath, Master.eSettings.SeasonPosterQuality) - strReturn = pPath - End If - End If + Public Function SaveAsSeasonPoster(ByVal mShow As Structures.DBTV, Optional sURL As String = "") As String + Dim strReturn As String = String.Empty + Dim doResize As Boolean = Master.eSettings.ResizeSeasonPoster AndAlso (_image.Width > Master.eSettings.SeasonPosterWidth OrElse _image.Height > Master.eSettings.SeasonPosterHeight) - If Master.eSettings.SeasonNameTBN Then - pPath = Path.Combine(tPath, String.Concat(FileUtils.Common.GetDirectory(tPath), ".tbn")) - If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteSeasonPoster) Then - Save(pPath, Master.eSettings.SeasonPosterQuality) - strReturn = pPath - End If - End If - - If Master.eSettings.SeasonNameJPG Then - pPath = Path.Combine(tPath, String.Concat(FileUtils.Common.GetDirectory(tPath), ".jpg")) - If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteSeasonPoster) Then - Save(pPath, Master.eSettings.SeasonPosterQuality) - strReturn = pPath - End If - End If + Try + Dim pPath As String = String.Empty - If Master.eSettings.SeasonFolderJPG Then - pPath = Path.Combine(tPath, "Folder.jpg") - If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteSeasonPoster) Then - Save(pPath, Master.eSettings.SeasonPosterQuality) - strReturn = pPath - End If - End If - End If - End If + If doResize Then + ImageUtils.ResizeImage(_image, Master.eSettings.SeasonPosterWidth, Master.eSettings.SeasonPosterHeight) + End If - If Master.eSettings.SeasonX Then - If mShow.TVEp.Season = 0 Then - pPath = Path.Combine(mShow.ShowPath, "season-specials.tbn") - Else - pPath = Path.Combine(mShow.ShowPath, String.Format("season{0}.tbn", mShow.TVEp.Season)) - End If - If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteSeasonPoster) Then - Save(pPath, Master.eSettings.SeasonPosterQuality) - strReturn = pPath - End If - End If + Try + Dim params As New List(Of Object)(New Object() {Enums.TVImageType.SeasonPoster, mShow, New List(Of String)}) + Dim doContinue As Boolean = True + ModulesManager.Instance.RunGeneric(Enums.ModuleEventType.TVImageNaming, params, doContinue) + For Each s As String In DirectCast(params(2), List(Of String)) + If Not File.Exists(s) OrElse (IsEdit OrElse Master.eSettings.OverwriteSeasonPoster) Then + Save(s, Master.eSettings.SeasonPosterQuality, sURL, doResize) + If String.IsNullOrEmpty(strReturn) Then strReturn = s + End If + Next + If Not doContinue Then + Return strReturn + End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + + If Master.eSettings.SeasonPosterTBN OrElse Master.eSettings.SeasonPosterJPG OrElse Master.eSettings.SeasonNameTBN OrElse _ + Master.eSettings.SeasonNameJPG OrElse Master.eSettings.FolderJPG Then + Dim tPath As String = String.Empty + Try + tPath = Functions.GetSeasonDirectoryFromShowPath(mShow.ShowPath, mShow.TVEp.Season) + Catch + End Try + + If Not String.IsNullOrEmpty(tPath) Then + If Master.eSettings.SeasonPosterTBN Then + pPath = Path.Combine(tPath, "Poster.tbn") + If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteSeasonPoster) Then + Save(pPath, Master.eSettings.SeasonFanartQuality, sURL, doResize) + strReturn = pPath + End If + End If - If Master.eSettings.SeasonXX Then - If mShow.TVEp.Season = 0 Then - pPath = Path.Combine(mShow.ShowPath, "season-specials.tbn") - Else - pPath = Path.Combine(mShow.ShowPath, String.Format("season{0}.tbn", mShow.TVEp.Season.ToString.PadLeft(2, Convert.ToChar("0")))) - End If - If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteSeasonPoster) Then - Save(pPath, Master.eSettings.SeasonPosterQuality) - strReturn = pPath - End If - End If + If Master.eSettings.SeasonPosterJPG Then + pPath = Path.Combine(tPath, "Poster.jpg") + If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteSeasonPoster) Then + Save(pPath, Master.eSettings.SeasonFanartQuality, sURL, doResize) + strReturn = pPath + End If + End If - If Master.eSettings.SeasonXXDashPosterJPG Then - If mShow.TVEp.Season = 0 Then - pPath = Path.Combine(mShow.ShowPath, "season-specials-poster.jpg") - Else - pPath = Path.Combine(mShow.ShowPath, String.Format("season{0}-poster.jpg", mShow.TVEp.Season.ToString.PadLeft(2, Convert.ToChar("0")))) - End If - If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteSeasonPoster) Then - Save(pPath, Master.eSettings.SeasonPosterQuality) - strReturn = pPath - End If - End If + If Master.eSettings.SeasonNameTBN Then + pPath = Path.Combine(tPath, String.Concat(FileUtils.Common.GetDirectory(tPath), ".tbn")) + If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteSeasonPoster) Then + Save(pPath, Master.eSettings.SeasonFanartQuality, sURL, doResize) + strReturn = pPath + End If + End If - Catch ex As Exception - Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") - End Try + If Master.eSettings.SeasonNameJPG Then + pPath = Path.Combine(tPath, String.Concat(FileUtils.Common.GetDirectory(tPath), ".jpg")) + If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteSeasonPoster) Then + Save(pPath, Master.eSettings.SeasonFanartQuality, sURL, doResize) + strReturn = pPath + End If + End If - Return strReturn - End Function + If Master.eSettings.SeasonFolderJPG Then + pPath = Path.Combine(tPath, "Folder.jpg") + If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteSeasonPoster) Then + Save(pPath, Master.eSettings.SeasonFanartQuality, sURL, doResize) + strReturn = pPath + End If + End If + End If + End If - Public Function SaveAsShowFanart(ByVal mShow As Structures.DBTV) As String - Dim strReturn As String = String.Empty + If Master.eSettings.SeasonX Then + If mShow.TVEp.Season = 0 Then + pPath = Path.Combine(mShow.ShowPath, "season-specials.tbn") + Else + pPath = Path.Combine(mShow.ShowPath, String.Format("season{0}.tbn", mShow.TVEp.Season)) + End If + If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteSeasonPoster) Then + Save(pPath, Master.eSettings.SeasonFanartQuality, sURL, doResize) + strReturn = pPath + End If + End If - Try - Dim tPath As String = String.Empty + If Master.eSettings.SeasonXX Then + If mShow.TVEp.Season = 0 Then + pPath = Path.Combine(mShow.ShowPath, "season-specials.tbn") + Else + pPath = Path.Combine(mShow.ShowPath, String.Format("season{0}.tbn", mShow.TVEp.Season.ToString.PadLeft(2, Convert.ToChar("0")))) + End If + If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteSeasonPoster) Then + Save(pPath, Master.eSettings.SeasonFanartQuality, sURL, doResize) + strReturn = pPath + End If + End If - If Master.eSettings.ResizeShowFanart AndAlso (_image.Width > Master.eSettings.ShowFanartWidth OrElse _image.Height > Master.eSettings.ShowFanartHeight) Then - ImageUtils.ResizeImage(_image, Master.eSettings.ShowFanartWidth, Master.eSettings.ShowFanartHeight) - End If + If Master.eSettings.SeasonXXDashPosterJPG Then + If mShow.TVEp.Season = 0 Then + pPath = Path.Combine(mShow.ShowPath, "season-specials-poster.jpg") + Else + pPath = Path.Combine(mShow.ShowPath, String.Format("season{0}-poster.jpg", mShow.TVEp.Season.ToString.PadLeft(2, Convert.ToChar("0")))) + End If + If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteSeasonPoster) Then + Save(pPath, Master.eSettings.SeasonFanartQuality, sURL, doResize) + strReturn = pPath + End If + End If - Try - Dim params As New List(Of Object)(New Object() {Enums.TVImageType.ShowFanart, mShow, New List(Of String)}) - Dim doContinue As Boolean = True - ModulesManager.Instance.RunGeneric(Enums.ModuleEventType.TVImageNaming, params, doContinue) - For Each s As String In DirectCast(params(2), List(Of String)) - If Not File.Exists(s) OrElse (IsEdit OrElse Master.eSettings.OverwriteShowFanart) Then - Save(s, Master.eSettings.ShowFanartQuality) - If String.IsNullOrEmpty(strReturn) Then strReturn = s - End If - Next - If Not doContinue Then Return strReturn - Catch ex As Exception - Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") - End Try + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + Return strReturn + End Function - If Master.eSettings.ShowDotFanart Then - tPath = Path.Combine(mShow.ShowPath, String.Concat(FileUtils.Common.GetDirectory(mShow.ShowPath), ".fanart.jpg")) - If Not File.Exists(tPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteShowFanart) Then - Save(tPath, Master.eSettings.ShowFanartQuality) - strReturn = tPath - End If - End If + Public Function SaveAsShowFanart(ByVal mShow As Structures.DBTV, Optional sURL As String = "") As String + Dim strReturn As String = String.Empty + Dim doResize As Boolean = Master.eSettings.ResizeShowFanart AndAlso (_image.Width > Master.eSettings.ShowFanartWidth OrElse _image.Height > Master.eSettings.ShowFanartHeight) - If Master.eSettings.ShowDashFanart Then - tPath = Path.Combine(mShow.ShowPath, String.Concat(FileUtils.Common.GetDirectory(mShow.ShowPath), "-fanart.jpg")) - If Not File.Exists(tPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteShowFanart) Then - Save(tPath, Master.eSettings.ShowFanartQuality) - strReturn = tPath - End If - End If + Try + Dim tPath As String = String.Empty - If Master.eSettings.ShowFanartJPG Then - tPath = Path.Combine(mShow.ShowPath, "fanart.jpg") - If Not File.Exists(tPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteShowFanart) Then - Save(tPath, Master.eSettings.ShowFanartQuality) - strReturn = tPath - End If - End If + If doResize Then + ImageUtils.ResizeImage(_image, Master.eSettings.ShowFanartWidth, Master.eSettings.ShowFanartHeight) + End If - Catch ex As Exception - Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") - End Try + Try + Dim params As New List(Of Object)(New Object() {Enums.TVImageType.ShowFanart, mShow, New List(Of String)}) + Dim doContinue As Boolean = True + ModulesManager.Instance.RunGeneric(Enums.ModuleEventType.TVImageNaming, params, doContinue) + For Each s As String In DirectCast(params(2), List(Of String)) + If Not File.Exists(s) OrElse (IsEdit OrElse Master.eSettings.OverwriteShowFanart) Then + Save(s, Master.eSettings.SeasonFanartQuality, sURL, doResize) + If String.IsNullOrEmpty(strReturn) Then strReturn = s + End If + Next + If Not doContinue Then + Return strReturn + End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + + If Master.eSettings.ShowDotFanart Then + tPath = Path.Combine(mShow.ShowPath, String.Concat(FileUtils.Common.GetDirectory(mShow.ShowPath), ".fanart.jpg")) + If Not File.Exists(tPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteShowFanart) Then + Save(tPath, Master.eSettings.SeasonFanartQuality, sURL, doResize) + strReturn = tPath + End If + End If - Return strReturn - End Function + If Master.eSettings.ShowDashFanart Then + tPath = Path.Combine(mShow.ShowPath, String.Concat(FileUtils.Common.GetDirectory(mShow.ShowPath), "-fanart.jpg")) + If Not File.Exists(tPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteShowFanart) Then + Save(tPath, Master.eSettings.SeasonFanartQuality, sURL, doResize) + strReturn = tPath + End If + End If - Public Function SaveAsShowPoster(ByVal mShow As Structures.DBTV) As String - Dim strReturn As String = String.Empty + If Master.eSettings.ShowFanartJPG Then + tPath = Path.Combine(mShow.ShowPath, "fanart.jpg") + If Not File.Exists(tPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteShowFanart) Then + Save(tPath, Master.eSettings.SeasonFanartQuality, sURL, doResize) + strReturn = tPath + End If + End If - Try - Dim pPath As String = String.Empty + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + Return strReturn + End Function - If Master.eSettings.ResizeShowPoster AndAlso (_image.Width > Master.eSettings.ShowPosterWidth OrElse _image.Height > Master.eSettings.ShowPosterHeight) Then - ImageUtils.ResizeImage(_image, Master.eSettings.ShowPosterWidth, Master.eSettings.ShowPosterHeight) - End If + Public Function SaveAsShowPoster(ByVal mShow As Structures.DBTV, Optional sURL As String = "") As String + Dim strReturn As String = String.Empty + Dim doResize As Boolean = Master.eSettings.ResizeShowPoster AndAlso (_image.Width > Master.eSettings.ShowPosterWidth OrElse _image.Height > Master.eSettings.ShowPosterHeight) - Try - Dim params As New List(Of Object)(New Object() {Enums.TVImageType.ShowPoster, mShow, New List(Of String)}) - Dim doContinue As Boolean = True - ModulesManager.Instance.RunGeneric(Enums.ModuleEventType.TVImageNaming, params, doContinue) - For Each s As String In DirectCast(params(2), List(Of String)) - If Not File.Exists(s) OrElse (IsEdit OrElse Master.eSettings.OverwriteShowPoster) Then - Save(s, Master.eSettings.ShowPosterQuality) - If String.IsNullOrEmpty(strReturn) Then strReturn = s - End If - Next - If Not doContinue Then Return strReturn - Catch ex As Exception - Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") - End Try + Try + Dim pPath As String = String.Empty - If Master.eSettings.ShowPosterJPG Then - pPath = Path.Combine(mShow.ShowPath, "poster.jpg") - If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteShowPoster) Then - Save(pPath, Master.eSettings.ShowPosterQuality) - strReturn = pPath - End If - End If + If doResize Then + ImageUtils.ResizeImage(_image, Master.eSettings.ShowPosterWidth, Master.eSettings.ShowPosterHeight) + End If - If Master.eSettings.ShowPosterTBN Then - pPath = Path.Combine(mShow.ShowPath, "poster.tbn") - If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteShowPoster) Then - Save(pPath, Master.eSettings.ShowPosterQuality) - strReturn = pPath - End If - End If + Try + Dim params As New List(Of Object)(New Object() {Enums.TVImageType.ShowPoster, mShow, New List(Of String)}) + Dim doContinue As Boolean = True + ModulesManager.Instance.RunGeneric(Enums.ModuleEventType.TVImageNaming, params, doContinue) + For Each s As String In DirectCast(params(2), List(Of String)) + If Not File.Exists(s) OrElse (IsEdit OrElse Master.eSettings.OverwriteShowPoster) Then + Save(s, Master.eSettings.SeasonFanartQuality, sURL, doResize) + If String.IsNullOrEmpty(strReturn) Then strReturn = s + End If + Next + If Not doContinue Then Return strReturn + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + + If Master.eSettings.ShowPosterJPG Then + pPath = Path.Combine(mShow.ShowPath, "poster.jpg") + If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteShowPoster) Then + Save(pPath, Master.eSettings.ShowPosterQuality, sURL, doResize) + strReturn = pPath + End If + End If - If Master.eSettings.ShowFolderJPG Then - pPath = Path.Combine(mShow.ShowPath, "folder.jpg") - If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteShowPoster) Then - Save(pPath, Master.eSettings.ShowPosterQuality) - strReturn = pPath - End If - End If + If Master.eSettings.ShowPosterTBN Then + pPath = Path.Combine(mShow.ShowPath, "poster.tbn") + If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteShowPoster) Then + Save(pPath, Master.eSettings.ShowPosterQuality, sURL, doResize) + strReturn = pPath + End If + End If - If Master.eSettings.ShowJPG Then - pPath = Path.Combine(mShow.ShowPath, String.Concat(FileUtils.Common.GetDirectory(mShow.ShowPath), ".jpg")) - If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteShowPoster) Then - Save(pPath, Master.eSettings.ShowPosterQuality) - strReturn = pPath - End If - End If + If Master.eSettings.ShowFolderJPG Then + pPath = Path.Combine(mShow.ShowPath, "folder.jpg") + If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteShowPoster) Then + Save(pPath, Master.eSettings.ShowPosterQuality, sURL, doResize) + strReturn = pPath + End If + End If - If Master.eSettings.ShowTBN Then - pPath = Path.Combine(mShow.ShowPath, String.Concat(FileUtils.Common.GetDirectory(mShow.ShowPath), ".tbn")) - If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteShowPoster) Then - Save(pPath, Master.eSettings.ShowPosterQuality) - strReturn = pPath - End If - End If + If Master.eSettings.ShowJPG Then + pPath = Path.Combine(mShow.ShowPath, String.Concat(FileUtils.Common.GetDirectory(mShow.ShowPath), ".jpg")) + If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteShowPoster) Then + Save(pPath, Master.eSettings.ShowPosterQuality, sURL, doResize) + strReturn = pPath + End If + End If - Catch ex As Exception - Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") - End Try + If Master.eSettings.ShowTBN Then + pPath = Path.Combine(mShow.ShowPath, String.Concat(FileUtils.Common.GetDirectory(mShow.ShowPath), ".tbn")) + If Not File.Exists(pPath) OrElse (IsEdit OrElse Master.eSettings.OverwriteShowPoster) Then + Save(pPath, Master.eSettings.ShowPosterQuality, sURL, doResize) + strReturn = pPath + End If + End If - Return strReturn - End Function + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + Return strReturn + End Function Public Sub SaveFAasET(ByVal faPath As String, ByVal inPath As String) Dim iMod As Integer = 0 Dim iVal As Integer = 1 Dim extraPath As String = String.Empty - If Master.eSettings.VideoTSParent AndAlso FileUtils.Common.isVideoTS(inPath) Then + If Master.eSettings.VideoTSParentXBMC AndAlso FileUtils.Common.isBDRip(inPath) Then extraPath = Path.Combine(Directory.GetParent(Directory.GetParent(inPath).FullName).FullName, "extrathumbs") - ElseIf Master.eSettings.VideoTSParent AndAlso FileUtils.Common.isBDRip(inPath) Then - extraPath = Path.Combine(Directory.GetParent(Directory.GetParent(Directory.GetParent(inPath).FullName).FullName).FullName, "extrathumbs") Else extraPath = Path.Combine(Directory.GetParent(inPath).FullName, "extrathumbs") End If @@ -1342,6 +1553,7 @@ Public Class Images Return Nothing End Function + #End Region 'Methods End Class \ No newline at end of file diff --git a/EmberAPI/clsAPIInterfaces.vb b/EmberAPI/clsAPIInterfaces.vb index e212f4b..39df585 100644 --- a/EmberAPI/clsAPIInterfaces.vb +++ b/EmberAPI/clsAPIInterfaces.vb @@ -73,7 +73,9 @@ Public Class Interfaces Event PostScraperSetupChanged(ByVal name As String, ByVal State As Boolean, ByVal difforder As Integer) - Event ScraperSetupChanged(ByVal name As String, ByVal State As Boolean, ByVal difforder As Integer) + Event ScraperSetupChanged(ByVal name As String, ByVal State As Boolean, ByVal difforder As Integer) + + Event SetupNeedsRestart() Sub ScraperOrderChanged() @@ -169,7 +171,7 @@ Public Class Interfaces Function GetSingleEpisode(ByVal ShowID As Integer, ByVal TVDBID As String, ByVal Season As Integer, ByVal Episode As Integer, ByVal Lang As String, ByVal Ordering As Enums.Ordering, ByVal Options As Structures.TVScrapeOptions, ByRef epDetails As MediaContainers.EpisodeDetails) As ModuleResult - Function GetSingleImage(ByVal Title As String, ByVal ShowID As Integer, ByVal TVDBID As String, ByVal Type As Enums.TVImageType, ByVal Season As Integer, ByVal Episode As Integer, ByVal Lang As String, ByVal Ordering As Enums.Ordering, ByVal CurrentImage As Image, ByRef Image As Image) As ModuleResult + Function GetSingleImage(ByVal Title As String, ByVal ShowID As Integer, ByVal TVDBID As String, ByVal Type As Enums.TVImageType, ByVal Season As Integer, ByVal Episode As Integer, ByVal Lang As String, ByVal Ordering As Enums.Ordering, ByVal CurrentImage As Images, ByRef Image As Images) As ModuleResult Sub Init(ByVal sAssemblyName As String) diff --git a/EmberAPI/clsAPIMediaContainers.vb b/EmberAPI/clsAPIMediaContainers.vb index 14cc876..7c721be 100644 --- a/EmberAPI/clsAPIMediaContainers.vb +++ b/EmberAPI/clsAPIMediaContainers.vb @@ -41,6 +41,7 @@ Namespace MediaContainers Private _poster As Images Private _posterurl As String Private _localfile As String + Private _playcount As String Private _fanart As Images #End Region 'Fields @@ -184,6 +185,16 @@ Namespace MediaContainers End Set End Property + _ + Public Property Playcount() As String + Get + Return Me._playcount + End Get + Set(ByVal value As String) + Me._playcount = value + End Set + End Property + _ Public ReadOnly Property CreditsSpecified() As Boolean Get @@ -288,6 +299,8 @@ Namespace MediaContainers End Set End Property + + #End Region 'Properties #Region "Methods" @@ -393,7 +406,7 @@ Namespace MediaContainers Private _runtime As String Private _trailer As String Private _playcount As String - Private _watched As String + 'Private _watched As String Private _actors As New List(Of Person) Private _thumb As New List(Of String) Private _fanart As New Fanart @@ -401,7 +414,8 @@ Namespace MediaContainers Private _ysets As New SetContainer Private _fileInfo As New MediaInfo.Fileinfo Private _lev As Integer - Private _videosource As String + Private _videosource As String + Private _TMDBID As String #End Region 'Fields #Region "Constructors" @@ -483,7 +497,8 @@ Namespace MediaContainers Set(ByVal value As String) Me.MovieID.ID = value End Set - End Property + End Property + _ Public Property IDMovieDB() As String Get @@ -494,6 +509,16 @@ Namespace MediaContainers End Set End Property + _ + Public Property TMDBID() As String + Get + Return Me._TMDBID + End Get + Set(ByVal value As String) + Me._TMDBID = value + End Set + End Property + _ Public Property IMDBID() As String Get @@ -901,22 +926,22 @@ Namespace MediaContainers End Get End Property - _ - Public Property Watched() As String - Get - Return Me._watched - End Get - Set(ByVal value As String) - Me._watched = value - End Set - End Property + ' _ + 'Public Property Watched() As String + ' Get + ' Return Me._watched + ' End Get + ' Set(ByVal value As String) + ' Me._watched = value + ' End Set + 'End Property - _ - Public ReadOnly Property WatchedSpecified() As Boolean - Get - Return Not String.IsNullOrEmpty(Me._watched) - End Get - End Property + ' _ + 'Public ReadOnly Property WatchedSpecified() As Boolean + ' Get + ' Return Not String.IsNullOrEmpty(Me._watched) + ' End Get + 'End Property _ Public Property Actors() As List(Of Person) @@ -1222,7 +1247,7 @@ Namespace MediaContainers Me._directors.Clear() Me._credits.Clear() Me._playcount = String.Empty - Me._watched = String.Empty + 'Me._watched = String.Empty Me._thumb.Clear() Me._fanart = New Fanart Me._actors.Clear() @@ -1492,7 +1517,7 @@ Namespace MediaContainers End Get End Property - _ + _ Public Property EpisodeGuideURL() As String Get Return Me._episodeguideurl diff --git a/EmberAPI/clsAPIMediaInfo.vb b/EmberAPI/clsAPIMediaInfo.vb index 5929b2a..74a67e2 100644 --- a/EmberAPI/clsAPIMediaInfo.vb +++ b/EmberAPI/clsAPIMediaInfo.vb @@ -78,6 +78,7 @@ Public Class MediaInfo 'DON'T clear it out 'miMovie.Movie.FileInfo = New MediaInfo.Fileinfo Dim tinfo = New MediaInfo.Fileinfo + Dim pExt As String = Path.GetExtension(miMovie.Filename).ToLower If Not pExt = ".rar" AndAlso (Master.CanScanDiscImage OrElse Not (pExt = ".iso" OrElse _ pExt = ".img" OrElse pExt = ".bin" OrElse pExt = ".cue" OrElse pExt = ".nrg")) Then @@ -86,6 +87,62 @@ Public Class MediaInfo MI.GetMIFromPath(tinfo, miMovie.Filename, False) If tinfo.StreamDetails.Video.Count > 0 OrElse tinfo.StreamDetails.Audio.Count > 0 OrElse tinfo.StreamDetails.Subtitle.Count > 0 Then ' overwrite only if it get something from Mediainfo + + + If Master.eSettings.LockLanguageV Then + Try + 'sets old language setting if setting is enabled (lock language) + 'First make sure that there is no completely new video source scanned of the movie --> if so (i.e. more streams) then update! + If tinfo.StreamDetails.Video.Count = miMovie.Movie.FileInfo.StreamDetails.Video.Count Then + For i = 0 To tinfo.StreamDetails.Video.Count - 1 + 'only preserve if language tag is filled --> else update! + If Not String.IsNullOrEmpty(miMovie.Movie.FileInfo.StreamDetails.Video.Item(i).LongLanguage) Then + tinfo.StreamDetails.Video.Item(i).Language = miMovie.Movie.FileInfo.StreamDetails.Video.Item(i).Language + tinfo.StreamDetails.Video.Item(i).LongLanguage = miMovie.Movie.FileInfo.StreamDetails.Video.Item(i).LongLanguage + End If + Next + End If + Catch ex As Exception + + End Try + End If + If Master.eSettings.LockLanguageA Then + Try + 'sets old language setting if setting is enabled (lock language) + 'First make sure that there is no completely new audio source scanned of the movie --> if so (i.e. more streams) then update! + If tinfo.StreamDetails.Audio.Count = miMovie.Movie.FileInfo.StreamDetails.Audio.Count Then + For i = 0 To tinfo.StreamDetails.Audio.Count - 1 + 'only preserve if language tag is filled --> else update! + If Not String.IsNullOrEmpty(miMovie.Movie.FileInfo.StreamDetails.Audio.Item(i).LongLanguage) Then + tinfo.StreamDetails.Audio.Item(i).Language = miMovie.Movie.FileInfo.StreamDetails.Audio.Item(i).Language + tinfo.StreamDetails.Audio.Item(i).LongLanguage = miMovie.Movie.FileInfo.StreamDetails.Audio.Item(i).LongLanguage + End If + Next + End If + + Catch ex As Exception + + End Try + End If + + If Master.eSettings.LockSubtitle Then + Try + 'sets old subinfo setting if setting is enabled (lock subs) + 'First make sure that there is no completely new source scanned of the movie --> if so (i.e. more streams) then update! + If tinfo.StreamDetails.Subtitle.Count = miMovie.Movie.FileInfo.StreamDetails.Subtitle.Count Then + For i = 0 To tinfo.StreamDetails.Subtitle.Count - 1 + 'only preserve if tag is filled --> else update! + If Not String.IsNullOrEmpty(miMovie.Movie.FileInfo.StreamDetails.Subtitle.Item(i).LongLanguage) Then + tinfo.StreamDetails.Subtitle.Item(i) = miMovie.Movie.FileInfo.StreamDetails.Subtitle.Item(i) + End If + Next + End If + + Catch ex As Exception + + End Try + End If + miMovie.Movie.FileInfo = tinfo End If If miMovie.Movie.FileInfo.StreamDetails.Video.Count > 0 AndAlso Master.eSettings.UseMIDuration Then @@ -101,6 +158,7 @@ Public Class MediaInfo _mi = MediaInfo.ApplyDefaults(pExt) If Not _mi Is Nothing Then miMovie.Movie.FileInfo = _mi End If + Catch ex As Exception Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") End Try @@ -355,6 +413,17 @@ Public Class MediaInfo End If Return AdvancedSettings.GetSetting(String.Concat("AudioFormatConvert:", sFormat.ToLower), sFormat.ToLower) 'Return sFormat + 'cocotus, 2013/02 Fix2 for DTS Scan + ElseIf Not String.IsNullOrEmpty(sProfile) Then + If sProfile.ToUpper.Contains("MA") Then + sFormat = "dtshd_ma" 'Master Audio + ElseIf sProfile.ToUpper.Contains("HRA") Then + sFormat = "dtshd_hra" 'high resolution + ElseIf sProfile.ToLower.Contains("truehd") Then + sFormat = "truehd" 'Dolby TrueHD + End If + Return AdvancedSettings.GetSetting(String.Concat("AudioFormatConvert:", sFormat.ToLower), sFormat.ToLower) + 'cocotus end Else Return String.Empty End If @@ -450,6 +519,39 @@ Public Class MediaInfo Dim vCodec As String = String.Empty For v As Integer = 0 To VideoStreams - 1 miVideo = New Video + + + 'cocotus, 2013/02 Added support for new MediaInfo-fields + 'map VideoBitrate from MediaInfoScan to Ember + + 'Bitrate handling: + Dim newstr As String = Me.Get_(StreamKind.Visual, v, "BitRate/String") + 'now consider bitrate number and calculate all values in KB instead of MB/KB + If newstr.ToUpper.IndexOf("K") > 0 Then + newstr = newstr.Substring(0, newstr.ToUpper.IndexOf("K")) + newstr = newstr.Replace(" ", "") + ElseIf newstr.ToUpper.IndexOf("M") > 0 Then + 'can happen if video is ripped from bluray + newstr = newstr.Substring(0, newstr.ToUpper.IndexOf("M")) + newstr = newstr.Replace(" ", "") + Try + newstr = (CDbl(newstr) * 100).ToString + Catch ex As Exception + End Try + End If + 'If no bitrate is read by MediaInfo, then set default 0 - I need value here because of comparing numbers later in HTML/Javascript template! + If newstr = "" Then + newstr = "0" + End If + 'now save cleaned bitrate + miVideo.Bitrate = newstr + + ' map multiview info (Support for 3D Movies) from MediaInfoScan to Ember (If > 1 -> 3D Movie) + miVideo.MultiView = Me.Get_(StreamKind.Visual, v, "MultiView_Count") + 'map used encoder-settings from MediaInfoScan to Ember + miVideo.EncodedSettings = Me.Get_(StreamKind.Visual, v, "Encoded_Library_Settings") + 'cocotus end + miVideo.Width = Me.Get_(StreamKind.Visual, v, "Width") miVideo.Height = Me.Get_(StreamKind.Visual, v, "Height") miVideo.Codec = ConvertVFormat(Me.Get_(StreamKind.Visual, v, "CodecID/Hint")) @@ -489,6 +591,52 @@ Public Class MediaInfo miAudio.Codec = If(IsNumeric(aCodec) OrElse String.IsNullOrEmpty(aCodec), ConvertAFormat(Me.Get_(StreamKind.Audio, a, "Format"), a_Profile), aCodec) End If miAudio.Channels = Me.Get_(StreamKind.Audio, a, "Channel(s)") + + 'cocotus 20130303 ChannelInfo fix + 'Channel(s)/sNumber might contain: "8 / 6" (7.1) so we must handle backslash and spaces --> XBMC/Ember only supports Number like 2,6,8... + If miAudio.Channels.Contains("/") Then + Dim mystring As String = "" + 'use regex to get rid of all letters(if that ever happens just in case) and also remove spaces + mystring = Text.RegularExpressions.Regex.Replace(miAudio.Channels, "[^/.0-9]", "").Trim + 'now get channel number + If mystring.Length > 0 Then + If Char.IsDigit(mystring(0)) Then + Try + 'In case of "x/y" this will return x which is highest number, i.e 8/6 -> 8 (highest number always first!) + miAudio.Channels = CStr(mystring(0)) + Catch ex As Exception + End Try + End If + End If + End If + 'cocotus end + + 'cocotus, 2013/02 Added support for new MediaInfo-fields + 'map audio bitrate from MediaInfoScan to Ember + + 'Bitrate handling: + Dim newstr As String = Me.Get_(StreamKind.Audio, a, "BitRate/String") + 'now consider bitrate number and calculate all values in KB instead of MB/KB + If newstr.ToUpper.IndexOf("K") > 0 Then + newstr = newstr.Substring(0, newstr.ToUpper.IndexOf("K")) + newstr = newstr.Replace(" ", "") + ElseIf newstr.ToUpper.IndexOf("M") > 0 Then + 'can happen if video is ripped from bluray + newstr = newstr.Substring(0, newstr.ToUpper.IndexOf("M")) + newstr = newstr.Replace(" ", "") + Try + newstr = (CDbl(newstr) * 100).ToString + Catch ex As Exception + End Try + End If + 'If no bitrate is read by MediaInfo, then set default 0 - I need value here because of comparing numbers later in HTML/Javascript template! + If newstr = "" Then + newstr = "0" + End If + 'now save cleaned bitrate + miAudio.Bitrate = newstr + 'cocotus end + aLang = Me.Get_(StreamKind.Audio, a, "Language/String") If Not String.IsNullOrEmpty(aLang) Then miAudio.LongLanguage = aLang @@ -569,6 +717,10 @@ Public Class MediaInfo Private _language As String = String.Empty Private _longlanguage As String = String.Empty + 'cocotus, 2013/02 Added support for new MediaInfo-fields + Private _bitrate As String = String.Empty + 'cocotus end + #End Region 'Fields #Region "Properties" @@ -651,6 +803,19 @@ Public Class MediaInfo End Get End Property + 'cocotus, 2013/02 Added support for new MediaInfo-fields + 'add GETTER/Setter for new fields here.. + _ + Public Property Bitrate() As String + Get + Return Me._bitrate + End Get + Set(ByVal Value As String) + Me._bitrate = Value + End Set + End Property + 'end cocotus + #End Region 'Properties End Class @@ -842,6 +1007,12 @@ Public Class MediaInfo Private _scantype As String = String.Empty Private _width As String = String.Empty + 'cocotus, 2013/02 Added support for new MediaInfo-fields + Private _bitrate As String = String.Empty + Private _multiview As String = String.Empty + Private _encoded_Settings As String = String.Empty + 'cocotus end + #End Region 'Fields #Region "Properties" @@ -982,6 +1153,39 @@ Public Class MediaInfo End Get End Property + 'cocotus, 2013/02 Added support for new MediaInfo-fields + 'add GETTER/Setter for new fields here.. + + _ + Public Property Bitrate() As String + Get + Return Me._bitrate + End Get + Set(ByVal Value As String) + Me._bitrate = Value + End Set + End Property + + _ + Public Property MultiView() As String + Get + Return Me._multiview + End Get + Set(ByVal Value As String) + Me._multiview = Value + End Set + End Property + _ + Public Property EncodedSettings() As String + Get + Return Me._encoded_Settings + End Get + Set(ByVal Value As String) + Me._encoded_Settings = Value + End Set + End Property + 'cocotus end + #End Region 'Properties End Class diff --git a/EmberAPI/clsAPIModules.vb b/EmberAPI/clsAPIModules.vb index c59278f..3ddcc78 100644 --- a/EmberAPI/clsAPIModules.vb +++ b/EmberAPI/clsAPIModules.vb @@ -516,18 +516,18 @@ Public Class ModulesManager Return ret.Cancelled End Function - Public Function TVSingleImageOnly(ByVal Title As String, ByVal ShowID As Integer, ByVal TVDBID As String, ByVal Type As Enums.TVImageType, ByVal Season As Integer, ByVal Episode As Integer, ByVal Lang As String, ByVal Ordering As Enums.Ordering, ByVal CurrentImage As Image) As Image - Dim Image As Image = Nothing - Dim ret As Interfaces.ModuleResult - For Each _externaltvScraperModule As _externalTVScraperModuleClass In externalTVScrapersModules.Where(Function(e) e.ProcessorModule.IsScraper AndAlso e.ProcessorModule.ScraperEnabled) - Try - ret = _externaltvScraperModule.ProcessorModule.GetSingleImage(Title, ShowID, TVDBID, Type, Season, Episode, Lang, Ordering, CurrentImage, Image) - Catch ex As Exception - End Try - If ret.breakChain Then Exit For - Next - Return Image - End Function + Public Function TVSingleImageOnly(ByVal Title As String, ByVal ShowID As Integer, ByVal TVDBID As String, ByVal Type As Enums.TVImageType, ByVal Season As Integer, ByVal Episode As Integer, ByVal Lang As String, ByVal Ordering As Enums.Ordering, ByVal CurrentImage As Images) As Images + Dim Image As New Images + Dim ret As Interfaces.ModuleResult + For Each _externaltvScraperModule As _externalTVScraperModuleClass In externalTVScrapersModules.Where(Function(e) e.ProcessorModule.IsScraper AndAlso e.ProcessorModule.ScraperEnabled) + Try + ret = _externaltvScraperModule.ProcessorModule.GetSingleImage(Title, ShowID, TVDBID, Type, Season, Episode, Lang, Ordering, CurrentImage, Image) + Catch ex As Exception + End Try + If ret.breakChain Then Exit For + Next + Return Image + End Function Private Sub BuildVersionList() VersionList.Clear() diff --git a/EmberAPI/clsAPINFO.vb b/EmberAPI/clsAPINFO.vb index fb09860..77338d6 100644 --- a/EmberAPI/clsAPINFO.vb +++ b/EmberAPI/clsAPINFO.vb @@ -62,6 +62,8 @@ Public Class NFO If Not String.IsNullOrEmpty(miVideo.Aspect) Then strOutput.AppendFormat("- {0}: {1}{2}", Master.eLang.GetString(614, "Aspect Ratio"), miVideo.Aspect, vbNewLine) If Not String.IsNullOrEmpty(miVideo.Scantype) Then strOutput.AppendFormat("- {0}: {1}{2}", Master.eLang.GetString(605, "Scan Type"), miVideo.Scantype, vbNewLine) If Not String.IsNullOrEmpty(miVideo.Codec) Then strOutput.AppendFormat("- {0}: {1}{2}", Master.eLang.GetString(604, "Codec"), miVideo.Codec, vbNewLine) + If Not String.IsNullOrEmpty(miVideo.Bitrate) Then strOutput.AppendFormat("- {0}: {1}{2}", "Bitrate", miVideo.Bitrate, vbNewLine) + If Not String.IsNullOrEmpty(miVideo.MultiView) Then strOutput.AppendFormat("- {0}: {1}{2}", "MultiView", miVideo.MultiView, vbNewLine) If Not String.IsNullOrEmpty(miVideo.Duration) Then strOutput.AppendFormat("- {0}: {1}", Master.eLang.GetString(609, "Duration"), miVideo.Duration) If Not String.IsNullOrEmpty(miVideo.LongLanguage) Then strOutput.AppendFormat("{0}- {1}: {2}", vbNewLine, Master.eLang.GetString(610, "Language"), miVideo.LongLanguage) iVS += 1 @@ -74,6 +76,7 @@ Public Class NFO strOutput.AppendFormat("{0}{1} {2}{0}", vbNewLine, Master.eLang.GetString(618, "Audio Stream"), iAS.ToString) If Not String.IsNullOrEmpty(miAudio.Codec) Then strOutput.AppendFormat("- {0}: {1}{2}", Master.eLang.GetString(604, "Codec"), miAudio.Codec, vbNewLine) If Not String.IsNullOrEmpty(miAudio.Channels) Then strOutput.AppendFormat("- {0}: {1}{2}", Master.eLang.GetString(611, "Channels"), miAudio.Channels, vbNewLine) + If Not String.IsNullOrEmpty(miAudio.Bitrate) Then strOutput.AppendFormat("- {0}: {1}{2}", "Bitrate", miAudio.Bitrate, vbNewLine) If Not String.IsNullOrEmpty(miAudio.LongLanguage) Then strOutput.AppendFormat("- {0}: {1}", Master.eLang.GetString(610, "Language"), miAudio.LongLanguage) iAS += 1 Next @@ -117,6 +120,10 @@ Public Class NFO fiaOut.Channels = String.Empty fiaOut.Language = String.Empty + 'cocotus, 2013/02 Added support for new MediaInfo-fields + fiaOut.Bitrate = String.Empty + 'cocotus end + For Each miAudio As MediaInfo.Audio In miFIA.StreamDetails.Audio If Not String.IsNullOrEmpty(miAudio.Channels) Then sinChans = NumUtils.ConvertToSingle(miAudio.Channels) @@ -125,6 +132,11 @@ Public Class NFO fiaOut.Codec = miAudio.Codec fiaOut.Channels = sinChans.ToString fiaOut.Language = miAudio.Language + + 'cocotus, 2013/02 Added support for new MediaInfo-fields + fiaOut.Bitrate = miAudio.Bitrate + 'cocotus end + End If End If @@ -159,6 +171,11 @@ Public Class NFO fivOut.Duration = String.Empty fivOut.Scantype = String.Empty fivOut.Language = String.Empty + 'cocotus, 2013/02 Added support for new MediaInfo-fields + fivOut.Bitrate = String.Empty + fivOut.MultiView = String.Empty + fivOut.EncodedSettings = String.Empty + 'cocotus end For Each miVideo As MediaInfo.Video In miFIV.StreamDetails.Video If Not String.IsNullOrEmpty(miVideo.Width) Then @@ -172,6 +189,19 @@ Public Class NFO fivOut.Duration = miVideo.Duration fivOut.Scantype = miVideo.Scantype fivOut.Language = miVideo.Language + + 'cocotus, 2013/02 Added support for new MediaInfo-fields + + 'Multiview (3D) handling, simply map field + fivOut.MultiView = miVideo.MultiView + + 'EncodedSettings handling, simply map field + fivOut.EncodedSettings = miVideo.EncodedSettings + + 'Bitrate handling, simply map field + fivOut.Bitrate = miVideo.Bitrate + 'cocotus end + End If End If Next @@ -712,6 +742,7 @@ Public Class NFO Dim tPath As String = String.Empty Dim nPath As String = String.Empty + Dim nPathStack As String = String.Empty Dim doesExist As Boolean = False Dim fAtt As New FileAttributes Dim fAttWritable As Boolean = True @@ -782,7 +813,9 @@ Public Class NFO End If Else Dim tmpName As String = Path.GetFileNameWithoutExtension(movieToSave.Filename) + Dim tmpNameStack As String = StringUtils.CleanStackingMarkers(Path.GetFileNameWithoutExtension(movieToSave.Filename)) nPath = Path.Combine(Directory.GetParent(movieToSave.Filename).FullName, tmpName) + nPathStack = Path.Combine(Directory.GetParent(movieToSave.Filename).FullName, tmpNameStack) If Master.eSettings.MovieNameNFO AndAlso (Not movieToSave.isSingle OrElse Not Master.eSettings.MovieNameMultiOnly) Then If FileUtils.Common.isVideoTS(movieToSave.Filename) Then @@ -818,6 +851,40 @@ Public Class NFO End If End If + If Master.eSettings.MovieNameNFOStack AndAlso (Not movieToSave.isSingle OrElse Not Master.eSettings.MovieNameMultiOnly) Then + If FileUtils.Common.isVideoTS(movieToSave.Filename) Then + tPath = Path.Combine(Directory.GetParent(movieToSave.Filename).FullName, "video_ts.nfo") + ElseIf FileUtils.Common.isBDRip(movieToSave.Filename) Then + tPath = Path.Combine(Directory.GetParent(Directory.GetParent(movieToSave.Filename).FullName).FullName, "index.nfo") + Else + tPath = String.Concat(nPathStack, ".nfo") + End If + + If Not Master.eSettings.OverwriteNfo Then + RenameNonConfNfo(tPath, False) + End If + + doesExist = File.Exists(tPath) + If Not doesExist OrElse (Not CBool(File.GetAttributes(tPath) And FileAttributes.ReadOnly)) Then + + If doesExist Then + fAtt = File.GetAttributes(tPath) + Try + File.SetAttributes(tPath, FileAttributes.Normal) + Catch ex As Exception + fAttWritable = False + End Try + End If + + Using xmlSW As New StreamWriter(tPath) + movieToSave.NfoPath = tPath + xmlSer.Serialize(xmlSW, movieToSave.Movie) + End Using + + If doesExist And fAttWritable Then File.SetAttributes(tPath, fAtt) + End If + End If + If movieToSave.isSingle AndAlso Master.eSettings.MovieNFO Then tPath = Path.Combine(Directory.GetParent(nPath).FullName, "movie.nfo") diff --git a/EmberAPI/clsAPIScanner.vb b/EmberAPI/clsAPIScanner.vb index d0c3473..46be93b 100644 --- a/EmberAPI/clsAPIScanner.vb +++ b/EmberAPI/clsAPIScanner.vb @@ -187,6 +187,11 @@ Public Class Scanner Episode.Poster = fList.FirstOrDefault(Function(s) s.ToLower = fName.ToLower) End If + If String.IsNullOrEmpty(Episode.Poster) AndAlso AdvancedSettings.GetBooleanSetting("YAMJEpisodePoster", False, "multi.Compatibility") Then + fName = String.Concat(tmpName, ".videoimage.jpg") + Episode.Poster = fList.FirstOrDefault(Function(s) s.ToLower = fName.ToLower) + End If + If Master.eSettings.EpisodeDashFanart Then fName = String.Concat(tmpName, "-fanart.jpg") Episode.Fanart = fList.FirstOrDefault(Function(s) s.ToLower = fName.ToLower) @@ -217,7 +222,9 @@ Public Class Scanner Dim currname As String = String.Empty Dim parPath As String = String.Empty Dim isYAMJ As Boolean = False + Dim isXBMC As Boolean = False Dim fList As New List(Of String) + Dim pList As New List(Of String) Try If Master.eSettings.VideoTSParent AndAlso FileUtils.Common.isVideoTS(Movie.Filename) Then @@ -235,6 +242,22 @@ Public Class Scanner If Movie.isSingle AndAlso File.Exists(String.Concat(Directory.GetParent(Directory.GetParent(Movie.Filename).FullName).FullName, Path.DirectorySeparatorChar, "extrathumbs", Path.DirectorySeparatorChar, "thumb1.jpg")) Then Movie.Extra = String.Concat(Directory.GetParent(Directory.GetParent(Movie.Filename).FullName).FullName, Path.DirectorySeparatorChar, "extrathumbs", Path.DirectorySeparatorChar, "thumb1.jpg") End If + ElseIf Master.eSettings.VideoTSParentXBMC AndAlso FileUtils.Common.isVideoTS(Movie.Filename) Then + isXBMC = True + + Try + fList.AddRange(Directory.GetFiles(Directory.GetParent(Movie.Filename).FullName)) + fList.AddRange(Directory.GetFiles(Directory.GetParent(Directory.GetParent(Movie.Filename).FullName).FullName)) + Catch + End Try + + parPath = Directory.GetParent(Directory.GetParent(Movie.Filename).FullName).FullName.ToLower + tmpName = Path.Combine(parPath, StringUtils.CleanStackingMarkers(Directory.GetParent(Directory.GetParent(Movie.Filename).FullName).Name)).ToLower + tmpNameNoStack = Path.Combine(parPath, Directory.GetParent(Directory.GetParent(Movie.Filename).FullName).Name).ToLower + + If Movie.isSingle AndAlso File.Exists(String.Concat(Directory.GetParent(Movie.Filename).FullName, Path.DirectorySeparatorChar, "extrathumbs", Path.DirectorySeparatorChar, "thumb1.jpg")) Then + Movie.Extra = String.Concat(Directory.GetParent(Movie.Filename).FullName, Path.DirectorySeparatorChar, "extrathumbs", Path.DirectorySeparatorChar, "thumb1.jpg") + End If ElseIf Master.eSettings.VideoTSParent AndAlso FileUtils.Common.isBDRip(Movie.Filename) Then isYAMJ = True @@ -250,39 +273,54 @@ Public Class Scanner If Movie.isSingle AndAlso File.Exists(String.Concat(Directory.GetParent(Directory.GetParent(Movie.Filename).FullName).FullName, Path.DirectorySeparatorChar, "extrathumbs", Path.DirectorySeparatorChar, "thumb1.jpg")) Then Movie.Extra = String.Concat(Directory.GetParent(Directory.GetParent(Movie.Filename).FullName).FullName, Path.DirectorySeparatorChar, "extrathumbs", Path.DirectorySeparatorChar, "thumb1.jpg") End If - Else - If Movie.isSingle Then - fList.AddRange(Directory.GetFiles(Directory.GetParent(Movie.Filename).FullName)) - Else - Try - Dim sName As String = StringUtils.CleanStackingMarkers(Path.GetFileNameWithoutExtension(Movie.Filename), True) - fList.AddRange(Directory.GetFiles(Directory.GetParent(Movie.Filename).FullName, If(sName.EndsWith("*"), sName, String.Concat(sName, "*")))) - Catch - End Try - End If + ElseIf Master.eSettings.VideoTSParentXBMC AndAlso FileUtils.Common.isBDRip(Movie.Filename) Then + isXBMC = True - parPath = Directory.GetParent(Movie.Filename).FullName.ToLower - tmpName = Path.Combine(parPath, StringUtils.CleanStackingMarkers(Path.GetFileNameWithoutExtension(Movie.Filename))).ToLower - tmpNameNoStack = Path.Combine(parPath, Path.GetFileNameWithoutExtension(Movie.Filename)).ToLower + Try + fList.AddRange(Directory.GetFiles(Directory.GetParent(Movie.Filename).FullName)) + fList.AddRange(Directory.GetFiles(Directory.GetParent(Directory.GetParent(Movie.Filename).FullName).FullName)) + fList.AddRange(Directory.GetFiles(Directory.GetParent(Directory.GetParent(Directory.GetParent(Movie.Filename).FullName).FullName).FullName)) + Catch + End Try - If Movie.isSingle AndAlso File.Exists(String.Concat(Directory.GetParent(Movie.Filename).FullName, Path.DirectorySeparatorChar, "extrathumbs", Path.DirectorySeparatorChar, "thumb1.jpg")) Then - Movie.Extra = String.Concat(Directory.GetParent(Movie.Filename).FullName, Path.DirectorySeparatorChar, "extrathumbs", Path.DirectorySeparatorChar, "thumb1.jpg") - End If - End If + parPath = Directory.GetParent(Directory.GetParent(Directory.GetParent(Movie.Filename).FullName).FullName).FullName.ToLower + tmpName = Path.Combine(parPath, StringUtils.CleanStackingMarkers(Directory.GetParent(Directory.GetParent(Directory.GetParent(Movie.Filename).FullName).FullName).Name)).ToLower + tmpNameNoStack = Path.Combine(parPath, Directory.GetParent(Directory.GetParent(Directory.GetParent(Movie.Filename).FullName).FullName).Name).ToLower - For Each fFile As String In fList - 'fanart - If String.IsNullOrEmpty(Movie.Fanart) Then + If Movie.isSingle AndAlso File.Exists(String.Concat(Directory.GetParent(Directory.GetParent(Movie.Filename).FullName).FullName, Path.DirectorySeparatorChar, "extrathumbs", Path.DirectorySeparatorChar, "thumb1.jpg")) Then + Movie.Extra = String.Concat(Directory.GetParent(Directory.GetParent(Movie.Filename).FullName).FullName, Path.DirectorySeparatorChar, "extrathumbs", Path.DirectorySeparatorChar, "thumb1.jpg") + End If + Else + If Movie.isSingle Then + fList.AddRange(Directory.GetFiles(Directory.GetParent(Movie.Filename).FullName)) + Else + Try + Dim sName As String = StringUtils.CleanStackingMarkers(Path.GetFileNameWithoutExtension(Movie.Filename), True) + fList.AddRange(Directory.GetFiles(Directory.GetParent(Movie.Filename).FullName, If(sName.EndsWith("*"), sName, String.Concat(sName, "*")))) + Catch + End Try + End If + + parPath = Directory.GetParent(Movie.Filename).FullName.ToLower + tmpName = Path.Combine(parPath, StringUtils.CleanStackingMarkers(Path.GetFileNameWithoutExtension(Movie.Filename))).ToLower + tmpNameNoStack = Path.Combine(parPath, Path.GetFileNameWithoutExtension(Movie.Filename)).ToLower + + If Movie.isSingle AndAlso File.Exists(String.Concat(Directory.GetParent(Movie.Filename).FullName, Path.DirectorySeparatorChar, "extrathumbs", Path.DirectorySeparatorChar, "thumb1.jpg")) Then + Movie.Extra = String.Concat(Directory.GetParent(Movie.Filename).FullName, Path.DirectorySeparatorChar, "extrathumbs", Path.DirectorySeparatorChar, "thumb1.jpg") + End If + End If + + For Each fFile As String In fList + 'fanart + If String.IsNullOrEmpty(Movie.Fanart) Then If (Movie.isSingle AndAlso Master.eSettings.FanartJPG AndAlso fFile.ToLower = Path.Combine(parPath, "fanart.jpg")) _ - OrElse ((Not Movie.isSingle OrElse Not Master.eSettings.MovieNameMultiOnly) AndAlso _ - ((Master.eSettings.MovieNameFanartJPG AndAlso fFile.ToLower = String.Concat(tmpNameNoStack, "-fanart.jpg")) _ - OrElse (Master.eSettings.MovieNameFanartJPG AndAlso fFile.ToLower = String.Concat(tmpName, "-fanart.jpg")) _ - OrElse (Master.eSettings.MovieNameFanartJPG AndAlso (fFile.ToLower = Path.Combine(parPath, "video_ts-fanart.jpg") OrElse fFile.ToLower = Path.Combine(parPath, "index-fanart.jpg")))) _ + OrElse (Movie.isSingle AndAlso isXBMC AndAlso fFile.ToLower = Path.Combine(parPath, "fanart.jpg")) _ + OrElse ((Not Movie.isSingle OrElse Not Master.eSettings.MovieNameMultiOnly) AndAlso ((Master.eSettings.MovieNameFanartJPG AndAlso fFile.ToLower = String.Concat(tmpNameNoStack, "-fanart.jpg")) _ + OrElse (Master.eSettings.MovieNameFanartJPG AndAlso Not isXBMC AndAlso fFile.ToLower = String.Concat(tmpName, "-fanart.jpg")) _ + OrElse (Master.eSettings.MovieNameFanartJPG AndAlso Not isXBMC AndAlso ((fFile.ToLower = Path.Combine(parPath, "fanart.jpg") AndAlso Movie.Filename.ToLower = String.Concat(parPath, "\", "video_ts.ifo") OrElse Movie.Filename.ToLower = String.Concat(parPath, "\", "00000.m2ts")) OrElse fFile.ToLower = Path.Combine(parPath, "video_ts-fanart.jpg") OrElse fFile.ToLower = Path.Combine(parPath, "index-fanart.jpg")))) _ OrElse (Master.eSettings.MovieNameDotFanartJPG AndAlso (fFile.ToLower = Path.Combine(parPath, "video_ts.fanart.jpg") OrElse fFile.ToLower = Path.Combine(parPath, "index.fanart.jpg")))) _ - OrElse ((Not Movie.isSingle OrElse isYAMJ OrElse Not Master.eSettings.MovieNameMultiOnly) AndAlso _ - (((Master.eSettings.MovieNameDotFanartJPG OrElse isYAMJ) AndAlso fFile.ToLower = String.Concat(tmpName, ".fanart.jpg")) _ + OrElse ((Not Movie.isSingle OrElse isYAMJ OrElse Not Master.eSettings.MovieNameMultiOnly) AndAlso (((Master.eSettings.MovieNameDotFanartJPG OrElse isYAMJ) AndAlso fFile.ToLower = String.Concat(tmpName, ".fanart.jpg")) _ OrElse ((Master.eSettings.MovieNameDotFanartJPG OrElse isYAMJ) AndAlso fFile.ToLower = String.Concat(tmpNameNoStack, ".fanart.jpg")))) Then - Movie.Fanart = fFile Continue For End If @@ -295,21 +333,19 @@ Public Class Scanner OrElse (Master.eSettings.MovieJPG AndAlso fFile.ToLower = Path.Combine(parPath, "movie.jpg")) _ OrElse (Master.eSettings.PosterJPG AndAlso fFile.ToLower = Path.Combine(parPath, "poster.jpg")) _ OrElse (Master.eSettings.FolderJPG AndAlso fFile.ToLower = Path.Combine(parPath, "folder.jpg"))) _ - OrElse ((Not Movie.isSingle OrElse Not Master.eSettings.MovieNameMultiOnly) AndAlso _ - ((Master.eSettings.MovieNameTBN AndAlso fFile.ToLower = Path.Combine(parPath, "video_ts.tbn")) _ + OrElse ((Not Movie.isSingle OrElse Not Master.eSettings.MovieNameMultiOnly) AndAlso ((Master.eSettings.MovieNameTBN AndAlso fFile.ToLower = Path.Combine(parPath, "video_ts.tbn")) _ OrElse (Master.eSettings.MovieNameJPG AndAlso fFile.ToLower = Path.Combine(parPath, "video_ts.jpg")) _ - OrElse (Master.eSettings.MovieNameDashPosterJPG AndAlso fFile.ToLower = Path.Combine(parPath, "video_ts-poster.jpg"))) _ - OrElse ((Not Movie.isSingle OrElse Not Master.eSettings.MovieNameMultiOnly) AndAlso _ - ((Master.eSettings.MovieNameTBN AndAlso fFile.ToLower = Path.Combine(parPath, "index.tbn")) _ + OrElse (Master.eSettings.MovieNameDashPosterJPG AndAlso Not isXBMC AndAlso (fFile.ToLower = Path.Combine(parPath, "video_ts-poster.jpg") OrElse (fFile.ToLower = Path.Combine(parPath, "poster.jpg") AndAlso Movie.Filename.ToLower = String.Concat(parPath, "\", "video_ts.ifo") OrElse Movie.Filename.ToLower = String.Concat(parPath, "\", "00000.m2ts"))))) _ + OrElse ((Not Movie.isSingle OrElse Not Master.eSettings.MovieNameMultiOnly) AndAlso ((Master.eSettings.MovieNameTBN AndAlso fFile.ToLower = Path.Combine(parPath, "index.tbn")) _ OrElse (Master.eSettings.MovieNameJPG AndAlso fFile.ToLower = Path.Combine(parPath, "index.jpg")) _ - OrElse (Master.eSettings.MovieNameDashPosterJPG AndAlso fFile.ToLower = Path.Combine(parPath, "index-poster.jpg"))))) _ - OrElse ((Not Movie.isSingle OrElse isYAMJ OrElse Not Master.eSettings.MovieNameMultiOnly) AndAlso _ - (((Master.eSettings.MovieNameTBN OrElse isYAMJ) AndAlso fFile.ToLower = String.Concat(tmpNameNoStack, ".tbn")) _ + OrElse (Master.eSettings.MovieNameDashPosterJPG AndAlso Not isXBMC AndAlso fFile.ToLower = Path.Combine(parPath, "index-poster.jpg"))))) _ + OrElse ((Not Movie.isSingle OrElse isYAMJ OrElse Not Master.eSettings.MovieNameMultiOnly) AndAlso (((Master.eSettings.MovieNameTBN OrElse isYAMJ) AndAlso fFile.ToLower = String.Concat(tmpNameNoStack, ".tbn")) _ OrElse ((Master.eSettings.MovieNameTBN OrElse isYAMJ) AndAlso fFile.ToLower = String.Concat(tmpName, ".tbn")) _ OrElse ((Master.eSettings.MovieNameJPG OrElse isYAMJ) AndAlso fFile.ToLower = String.Concat(tmpNameNoStack, ".jpg")) _ OrElse ((Master.eSettings.MovieNameJPG OrElse isYAMJ) AndAlso fFile.ToLower = String.Concat(tmpName, ".jpg")) _ - OrElse ((Master.eSettings.MovieNameDashPosterJPG OrElse isYAMJ) AndAlso fFile.ToLower = String.Concat(tmpNameNoStack, "-poster.jpg")) _ - OrElse ((Master.eSettings.MovieNameDashPosterJPG OrElse isYAMJ) AndAlso fFile.ToLower = String.Concat(tmpName, "-poster.jpg")))) Then + OrElse ((Master.eSettings.MovieNameDashPosterJPG AndAlso Not isXBMC) AndAlso fFile.ToLower = String.Concat(tmpNameNoStack, "-poster.jpg")) _ + OrElse ((Master.eSettings.MovieNameDashPosterJPG AndAlso Not isXBMC) AndAlso fFile.ToLower = String.Concat(tmpName, "-poster.jpg")) _ + OrElse ((Master.eSettings.MovieNameDashPosterJPG AndAlso isXBMC) AndAlso fFile.ToLower = Path.Combine(parPath, "poster.jpg")))) Then Movie.Poster = fFile Continue For End If @@ -318,16 +354,19 @@ Public Class Scanner 'nfo If String.IsNullOrEmpty(Movie.Nfo) Then If (Movie.isSingle AndAlso Master.eSettings.MovieNFO AndAlso fFile.ToLower = Path.Combine(parPath, "movie.nfo")) _ + OrElse (Movie.isSingle AndAlso isXBMC AndAlso fFile.ToLower = String.Concat(Directory.GetParent(Movie.Filename).FullName.ToLower, Path.DirectorySeparatorChar, "video_ts.nfo")) _ + OrElse (Movie.isSingle AndAlso isXBMC AndAlso fFile.ToLower = String.Concat(Directory.GetParent(Directory.GetParent(Movie.Filename).FullName.ToLower).FullName.ToLower, Path.DirectorySeparatorChar, "index.nfo")) _ OrElse ((Not Movie.isSingle OrElse isYAMJ OrElse Not Master.eSettings.MovieNameMultiOnly) AndAlso _ - (((Master.eSettings.MovieNameNFO OrElse isYAMJ) AndAlso (fFile.ToLower = String.Concat(tmpNameNoStack, ".nfo") OrElse _ - fFile.ToLower = String.Concat(tmpName, ".nfo") OrElse _ - fFile.ToLower = Path.Combine(parPath, "video_ts.nfo") OrElse _ - fFile.ToLower = Path.Combine(parPath, "index.nfo"))))) Then + (((Master.eSettings.MovieNameNFO OrElse Master.eSettings.MovieNameNFOStack OrElse isYAMJ) AndAlso Not isXBMC AndAlso (fFile.ToLower = String.Concat(tmpNameNoStack, ".nfo") OrElse _ + fFile.ToLower = String.Concat(tmpName, ".nfo") OrElse _ + fFile.ToLower = Path.Combine(parPath, "video_ts.nfo") OrElse _ + fFile.ToLower = Path.Combine(parPath, "index.nfo"))))) Then Movie.Nfo = fFile Continue For End If End If + 'subs If String.IsNullOrEmpty(Movie.Subs) Then If Regex.IsMatch(fFile.ToLower, String.Concat("^", Regex.Escape(tmpNameNoStack), AdvancedSettings.GetSetting("SubtitleExtension", ".*\.(sst|srt|sub|ssa|aqt|smi|sami|jss|mpl|rt|idx|ass)$")), RegexOptions.IgnoreCase) OrElse _ Regex.IsMatch(fFile.ToLower, String.Concat("^", Regex.Escape(tmpName), AdvancedSettings.GetSetting("SubtitleExtension", ".*\.(sst|srt|sub|ssa|aqt|smi|sami|jss|mpl|rt|idx|ass)$")), RegexOptions.IgnoreCase) Then @@ -336,10 +375,17 @@ Public Class Scanner End If End If + 'trailer If String.IsNullOrEmpty(Movie.Trailer) Then For Each t As String In Master.eSettings.ValidExts Select Case True - Case fFile.ToLower = String.Concat(tmpNameNoStack, "-trailer", t.ToLower) + Case fFile.ToLower = String.Concat(Directory.GetParent(Movie.Filename).FullName.ToLower, Path.DirectorySeparatorChar, "video_ts-trailer", t.ToLower) + Movie.Trailer = fFile + Exit For + Case fFile.ToLower = String.Concat(Directory.GetParent(Directory.GetParent(Movie.Filename).FullName.ToLower).FullName.ToLower, Path.DirectorySeparatorChar, "index-trailer", t.ToLower) + Movie.Trailer = fFile + Exit For + Case Not Master.eSettings.MovieNameNFOStack AndAlso fFile.ToLower = String.Concat(tmpNameNoStack, "-trailer", t.ToLower) Movie.Trailer = fFile Exit For Case fFile.ToLower = String.Concat(tmpName, "-trailer", t.ToLower) @@ -368,7 +414,7 @@ Public Class Scanner End If Next - Catch ex As Exception + Catch ex As Exception Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") End Try @@ -426,11 +472,55 @@ Public Class Scanner End If End If + If AdvancedSettings.GetBooleanSetting("YAMJTVImageNaming", False, "multi.Compatibility") Then + + Try + lFiles.AddRange(Directory.GetFiles(ShowPath, "*.jpg")) + Catch + End Try + + If String.IsNullOrEmpty(TVDB.SeasonPosterPath) AndAlso AdvancedSettings.GetBooleanSetting("YAMJSeasonPoster", False, "multi.Compatibility") Then + Dim tPath As String = String.Empty + Dim epPath As String = String.Empty + If Not String.IsNullOrEmpty(TVDB.Filename) AndAlso Not Path.GetFileNameWithoutExtension(TVDB.Filename).ToLower = "file" Then + epPath = TVDB.Filename + End If + If String.IsNullOrEmpty(epPath) Then + Dim dtEpisodes As New DataTable + Master.DB.FillDataTable(dtEpisodes, String.Concat("SELECT * FROM TVEps INNER JOIN TVEpPaths ON (TVEpPaths.ID = TVEpPathid) WHERE TVShowID = ", TVDB.ShowID, " AND Season = ", TVDB.TVEp.Season, " ORDER BY Episode;")) + If dtEpisodes.Rows.Count > 0 Then + epPath = dtEpisodes.Rows(0).Item("TVEpPath").ToString + End If + End If + fName = Path.Combine(Path.GetDirectoryName(epPath), String.Concat(Path.GetFileNameWithoutExtension(epPath), ".jpg")) + TVDB.SeasonPosterPath = lFiles.FirstOrDefault(Function(s) s.ToLower = fName.ToLower) + End If + + If String.IsNullOrEmpty(TVDB.SeasonFanartPath) AndAlso AdvancedSettings.GetBooleanSetting("YAMJSeasonFanart", False, "multi.Compatibility") Then + Dim tPath As String = String.Empty + Dim epPath As String = String.Empty + If Not String.IsNullOrEmpty(TVDB.Filename) AndAlso Not Path.GetFileNameWithoutExtension(TVDB.Filename).ToLower = "file" Then + epPath = TVDB.Filename + End If + If String.IsNullOrEmpty(epPath) Then + Dim dtEpisodes As New DataTable + Master.DB.FillDataTable(dtEpisodes, String.Concat("SELECT * FROM TVEps INNER JOIN TVEpPaths ON (TVEpPaths.ID = TVEpPathid) WHERE TVShowID = ", TVDB.ShowID, " AND Season = ", TVDB.TVEp.Season, " ORDER BY Episode;")) + If dtEpisodes.Rows.Count > 0 Then + epPath = dtEpisodes.Rows(0).Item("TVEpPath").ToString + End If + End If + fName = Path.Combine(Path.GetDirectoryName(epPath), String.Concat(Path.GetFileNameWithoutExtension(epPath), ".fanart.jpg")) + TVDB.SeasonFanartPath = lFiles.FirstOrDefault(Function(s) s.ToLower = fName.ToLower) + End If + End If + If bInside AndAlso ((Master.eSettings.SeasonPosterTBN OrElse Master.eSettings.SeasonPosterJPG OrElse _ Master.eSettings.SeasonNameTBN OrElse Master.eSettings.SeasonNameJPG OrElse _ - Master.eSettings.SeasonFolderJPG AndAlso String.IsNullOrEmpty(TVDB.SeasonPosterPath)) OrElse _ + Master.eSettings.SeasonFolderJPG OrElse AdvancedSettings.GetBooleanSetting("YAMJSeasonPoster", False, "multi.Compatibility") AndAlso _ + String.IsNullOrEmpty(TVDB.SeasonPosterPath)) OrElse _ (Master.eSettings.SeasonFanartJPG OrElse Master.eSettings.SeasonDashFanart OrElse _ - Master.eSettings.SeasonDotFanart AndAlso String.IsNullOrEmpty(TVDB.SeasonFanartPath))) Then + Master.eSettings.SeasonDotFanart OrElse AdvancedSettings.GetBooleanSetting("YAMJSeasonFanart", False, "multi.Compatibility") AndAlso _ + String.IsNullOrEmpty(TVDB.SeasonFanartPath))) Then SeasonPath = Directory.GetParent(TVDB.Filename).FullName @@ -467,6 +557,23 @@ Public Class Scanner fName = Path.Combine(SeasonPath, "folder.jpg") TVDB.SeasonPosterPath = lFiles.FirstOrDefault(Function(s) s.ToLower = fName.ToLower) End If + + If String.IsNullOrEmpty(TVDB.SeasonPosterPath) AndAlso AdvancedSettings.GetBooleanSetting("YAMJSeasonPoster", False, "multi.Compatibility") Then + Dim tPath As String = String.Empty + Dim epPath As String = String.Empty + If Not String.IsNullOrEmpty(TVDB.Filename) AndAlso Not Path.GetFileNameWithoutExtension(TVDB.Filename).ToLower = "file" Then + epPath = TVDB.Filename + End If + If String.IsNullOrEmpty(epPath) Then + Dim dtEpisodes As New DataTable + Master.DB.FillDataTable(dtEpisodes, String.Concat("SELECT * FROM TVEps INNER JOIN TVEpPaths ON (TVEpPaths.ID = TVEpPathid) WHERE TVShowID = ", TVDB.ShowID, " AND Season = ", TVDB.TVEp.Season, " ORDER BY Episode;")) + If dtEpisodes.Rows.Count > 0 Then + epPath = dtEpisodes.Rows(0).Item("TVEpPath").ToString + End If + End If + fName = Path.Combine(Path.GetDirectoryName(epPath), String.Concat(Path.GetFileNameWithoutExtension(epPath), ".jpg")) + TVDB.SeasonPosterPath = lFiles.FirstOrDefault(Function(s) s.ToLower = fName.ToLower) + End If End If If String.IsNullOrEmpty(TVDB.SeasonFanartPath) Then @@ -484,6 +591,23 @@ Public Class Scanner fName = Path.Combine(SeasonPath, String.Concat(Directory.GetParent(TVDB.Filename).Name, ".fanart.jpg")) TVDB.SeasonFanartPath = lFiles.FirstOrDefault(Function(s) s.ToLower = fName.ToLower) End If + + If String.IsNullOrEmpty(TVDB.SeasonFanartPath) AndAlso AdvancedSettings.GetBooleanSetting("YAMJSeasonFanart", False, "multi.Compatibility") Then + Dim tPath As String = String.Empty + Dim epPath As String = String.Empty + If Not String.IsNullOrEmpty(TVDB.Filename) AndAlso Not Path.GetFileNameWithoutExtension(TVDB.Filename).ToLower = "file" Then + epPath = TVDB.Filename + End If + If String.IsNullOrEmpty(epPath) Then + Dim dtEpisodes As New DataTable + Master.DB.FillDataTable(dtEpisodes, String.Concat("SELECT * FROM TVEps INNER JOIN TVEpPaths ON (TVEpPaths.ID = TVEpPathid) WHERE TVShowID = ", TVDB.ShowID, " AND Season = ", TVDB.TVEp.Season, " ORDER BY Episode;")) + If dtEpisodes.Rows.Count > 0 Then + epPath = dtEpisodes.Rows(0).Item("TVEpPath").ToString + End If + End If + fName = Path.Combine(Path.GetDirectoryName(epPath), String.Concat(Path.GetFileNameWithoutExtension(epPath), ".fanart.jpg")) + TVDB.SeasonFanartPath = lFiles.FirstOrDefault(Function(s) s.ToLower = fName.ToLower) + End If End If Else @@ -516,10 +640,10 @@ Public Class Scanner End Sub ''' - ''' Check if a directory contains supporting files (nfo, poster) + ''' Check if a directory contains supporting files (nfo, poster, fanart) ''' ''' TVShowContainer object. - Public Sub GetShowFolderContents(ByRef tShow As TVShowContainer) + Public Sub GetShowFolderContents(ByRef tShow As TVShowContainer, Optional ByVal ID As Long = 0) Dim parPath As String = tShow.ShowPath Dim fList As New List(Of String) Dim fName As String = String.Empty @@ -585,6 +709,72 @@ Public Class Scanner tShow.Fanart = fList.FirstOrDefault(Function(s) s.ToLower = fName.ToLower) End If + If String.IsNullOrEmpty(tShow.Poster) AndAlso AdvancedSettings.GetBooleanSetting("YAMJShowPoster", False, "multi.Compatibility") Then + Dim tPath As String = String.Empty + Dim seasonPath As String = String.Empty + If tShow.Episodes.Count > 0 Then + seasonPath = Directory.GetParent(tShow.Episodes.FirstOrDefault.Filename).FullName + End If + If String.IsNullOrEmpty(seasonPath) Then + Dim dtSeasons As New DataTable + Master.DB.FillDataTable(dtSeasons, String.Concat("SELECT * FROM TVEps INNER JOIN TVEpPaths ON (TVEpPaths.ID = TVEpPathid) WHERE TVShowID = ", ID, " ORDER BY Season, Episode;")) + If dtSeasons.Rows.Count > 0 Then + seasonPath = Functions.GetSeasonDirectoryFromShowPath(parPath, Convert.ToInt32(dtSeasons.Rows(0).Item("Season").ToString)) + End If + End If + Try + fList.AddRange(Directory.GetFiles(seasonPath)) + Catch + End Try + tPath = Path.Combine(parPath, seasonPath) + fName = Path.Combine(tPath, String.Concat("Set_", FileUtils.Common.GetDirectory(parPath), "_1.jpg")) + tShow.Poster = fList.FirstOrDefault(Function(s) s.ToLower = fName.ToLower) + End If + + If String.IsNullOrEmpty(tShow.AllSeasonPoster) AndAlso AdvancedSettings.GetBooleanSetting("YAMJAllSeasonPoster", False, "multi.Compatibility") Then + Dim tPath As String = String.Empty + Dim seasonPath As String = String.Empty + If tShow.Episodes.Count > 0 Then + seasonPath = Directory.GetParent(tShow.Episodes.FirstOrDefault.Filename).FullName + End If + If String.IsNullOrEmpty(seasonPath) Then + Dim dtSeasons As New DataTable + Master.DB.FillDataTable(dtSeasons, String.Concat("SELECT * FROM TVEps INNER JOIN TVEpPaths ON (TVEpPaths.ID = TVEpPathid) WHERE TVShowID = ", ID, " ORDER BY Season, Episode;")) + If dtSeasons.Rows.Count > 0 Then + seasonPath = Functions.GetSeasonDirectoryFromShowPath(parPath, Convert.ToInt32(dtSeasons.Rows(0).Item("Season").ToString)) + End If + End If + Try + fList.AddRange(Directory.GetFiles(seasonPath)) + Catch + End Try + tPath = Path.Combine(parPath, seasonPath) + fName = Path.Combine(tPath, String.Concat("Set_", FileUtils.Common.GetDirectory(parPath), "_1.banner.jpg")) + tShow.AllSeasonPoster = fList.FirstOrDefault(Function(s) s.ToLower = fName.ToLower) + End If + + If String.IsNullOrEmpty(tShow.Fanart) AndAlso AdvancedSettings.GetBooleanSetting("YAMJShowFanart", False, "multi.Compatibility") Then + Dim tPath As String = String.Empty + Dim seasonPath As String = String.Empty + If tShow.Episodes.Count > 0 Then + seasonPath = Directory.GetParent(tShow.Episodes.FirstOrDefault.Filename).FullName + End If + If String.IsNullOrEmpty(seasonPath) Then + Dim dtSeasons As New DataTable + Master.DB.FillDataTable(dtSeasons, String.Concat("SELECT * FROM TVEps INNER JOIN TVEpPaths ON (TVEpPaths.ID = TVEpPathid) WHERE TVShowID = ", ID, " ORDER BY Season, Episode;")) + If dtSeasons.Rows.Count > 0 Then + seasonPath = Functions.GetSeasonDirectoryFromShowPath(parPath, Convert.ToInt32(dtSeasons.Rows(0).Item("Season").ToString)) + End If + End If + Try + fList.AddRange(Directory.GetFiles(seasonPath)) + Catch + End Try + tPath = Path.Combine(parPath, seasonPath) + fName = Path.Combine(tPath, String.Concat("Set_", FileUtils.Common.GetDirectory(parPath), "_1.fanart.jpg")) + tShow.Fanart = fList.FirstOrDefault(Function(s) s.ToLower = fName.ToLower) + End If + fName = Path.Combine(parPath, "tvshow.nfo") tShow.Nfo = fList.FirstOrDefault(Function(s) s.ToLower = fName.ToLower) diff --git a/EmberAPI/clsAPISettings.vb b/EmberAPI/clsAPISettings.vb index 58d5d21..a2025c1 100644 --- a/EmberAPI/clsAPISettings.vb +++ b/EmberAPI/clsAPISettings.vb @@ -86,6 +86,7 @@ Public Class Settings Private _episodejpg As Boolean Private _episodedashthumbjpg As Boolean Private _episodenfocol As Boolean + Private _episodewatchedcol As Boolean Private _episodepostercol As Boolean Private _episodetbn As Boolean Private _eplockplot As Boolean @@ -147,6 +148,11 @@ Public Class Settings Private _lockoutline As Boolean Private _lockplot As Boolean Private _lockrating As Boolean + Private _locklanguageV As Boolean + Private _locklanguageA As Boolean + Private _lockMPAA As Boolean + Private _lockSubtitle As Boolean + Private _useMPAAForFSK As Boolean Private _lockstudio As Boolean Private _locktagline As Boolean Private _locktitle As Boolean @@ -172,6 +178,7 @@ Public Class Settings Private _movienamedashposterjpg As Boolean Private _movienamemultionly As Boolean Private _movienamenfo As Boolean + Private _movienamenfostack As Boolean Private _movienametbn As Boolean Private _movienfo As Boolean Private _movieposterCol As Boolean @@ -179,6 +186,7 @@ Public Class Settings Private _movietbn As Boolean Private _movietheme As String Private _movietrailerCol As Boolean + Private _moviewatchedCol As Boolean Private _nodisplayfanart As Boolean Private _nodisplayposter As Boolean Private _noepfilters As Boolean @@ -230,6 +238,7 @@ Public Class Settings Private _scmainstate As Integer Private _scshowstate As Integer Private _scseasonstate As Integer + Private _scraperactorthumbs As Boolean Private _scraperepactors As Boolean Private _scraperepaired As Boolean Private _scraperepcredits As Boolean @@ -339,12 +348,25 @@ Public Class Settings Private _validexts As List(Of String) Private _version As String Private _videotsparent As Boolean + Private _videotsparentxbmc As Boolean Private _windowloc As New Point Private _windowsize As New Size Private _windowstate As FormWindowState Private _yamjsetscompatible As Boolean Private _username As String Private _password As String + ' cocotus 2013/02 Trakt.tv syncing + 'Adding Settings + Private _traktuser As String + Private _traktpassword As String + Private _usetrakt As Boolean + 'cocotus end + + 'cocotus 20130303 Special DateAddvalue + 'Adding Settings + Private _usespecialdateadd As Boolean + 'cocotus end + #End Region 'Fields @@ -847,6 +869,15 @@ Public Class Settings End Set End Property + Public Property EpisodeWatchedCol() As Boolean + Get + Return Me._episodewatchedcol + End Get + Set(ByVal value As Boolean) + Me._episodewatchedcol = value + End Set + End Property + Public Property EpisodePosterCol() As Boolean Get Return Me._episodepostercol @@ -1405,6 +1436,46 @@ Public Class Settings End Set End Property + Public Property LockLanguageV() As Boolean + Get + Return Me._locklanguageV + End Get + Set(ByVal value As Boolean) + Me._locklanguageV = value + End Set + End Property + Public Property LockLanguageA() As Boolean + Get + Return Me._locklanguageA + End Get + Set(ByVal value As Boolean) + Me._locklanguageA = value + End Set + End Property + Public Property LockMPAA() As Boolean + Get + Return Me._lockMPAA + End Get + Set(ByVal value As Boolean) + Me._lockMPAA = value + End Set + End Property + Public Property LockSubtitle() As Boolean + Get + Return Me._lockSubtitle + End Get + Set(ByVal value As Boolean) + Me._lockSubtitle = value + End Set + End Property + Public Property UseMPAAForFSK() As Boolean + Get + Return Me._useMPAAForFSK + End Get + Set(ByVal value As Boolean) + Me._useMPAAForFSK = value + End Set + End Property Public Property LockStudio() As Boolean Get Return Me._lockstudio @@ -1630,6 +1701,15 @@ Public Class Settings End Set End Property + Public Property MovieNameNFOStack() As Boolean + Get + Return Me._movienamenfostack + End Get + Set(ByVal value As Boolean) + Me._movienamenfostack = value + End Set + End Property + Public Property MovieNameTBN() As Boolean Get Return Me._movienametbn @@ -1693,6 +1773,15 @@ Public Class Settings End Set End Property + Public Property MovieWatchedCol() As Boolean + Get + Return Me._moviewatchedCol + End Get + Set(ByVal value As Boolean) + Me._moviewatchedCol = value + End Set + End Property + Public Property NoDisplayFanart() As Boolean Get Return Me._nodisplayfanart @@ -2215,6 +2304,15 @@ Public Class Settings End Set End Property + Public Property ScraperActorThumbs() As Boolean + Get + Return Me._scraperactorthumbs + End Get + Set(ByVal value As Boolean) + Me._scraperactorthumbs = value + End Set + End Property + Public Property ScraperEpActors() As Boolean Get Return Me._scraperepactors @@ -3160,6 +3258,15 @@ Public Class Settings End Set End Property + Public Property VideoTSParentXBMC() As Boolean + Get + Return Me._videotsparentxbmc + End Get + Set(ByVal value As Boolean) + Me._videotsparentxbmc = value + End Set + End Property + Public Property WindowLoc() As Point Get Return Me._windowloc @@ -3213,13 +3320,53 @@ Public Class Settings Me._password = value End Set End Property + ' cocotus 2013/02 Trakt.tv syncing + 'Adding new settings + Public Property TraktUser() As String + Get + Return Me._traktuser + End Get + Set(ByVal value As String) + Me._traktuser = value + End Set + End Property + 'Adding new settings + Public Property TraktPassword() As String + Get + Return Me._traktpassword + End Get + Set(ByVal value As String) + Me._traktpassword = value + End Set + End Property + + Public Property UseTrakt() As Boolean + Get + Return Me._usetrakt + End Get + Set(ByVal value As Boolean) + Me._usetrakt = value + End Set + End Property + 'cocotus end + + 'cocotus 20130303 Special DateAddvalue + Public Property UseSpecialDateAddvalue() As Boolean + Get + Return Me._usespecialdateadd + End Get + Set(ByVal value As Boolean) + Me._usespecialdateadd = value + End Set + End Property + 'cocotus end #End Region 'Properties #Region "Methods" Public Function AllSeasonPosterEnabled() As Boolean - Return Me._seasonalltbn OrElse Me._seasonalljpg OrElse Me._seasonallposterjpg + Return Me._seasonalltbn OrElse Me._seasonalljpg OrElse Me._seasonallposterjpg OrElse AdvancedSettings.GetBooleanSetting("YAMJAllSeasonPoster", False, "multi.Compatibility") End Function Public Sub Clear() @@ -3241,6 +3388,7 @@ Public Class Settings Me._moviefanartCol = False Me._movieinfoCol = False Me._movietrailerCol = False + Me._moviewatchedCol = False Me._moviesubCol = False Me._movieextraCol = False Me._cleanfolderJpg = False @@ -3261,7 +3409,7 @@ Public Class Settings Me._cleanwhitelistexts = New List(Of String) Me._postersize = Enums.PosterSize.Xlrg Me._fanartsize = Enums.FanartSize.Lrg - Me._showbanner = True + Me._showbanner = False Me._showbannertype = Enums.ShowBannerType.Graphical Me._showpostersize = Enums.PosterSize.Xlrg Me._allsbanner = False @@ -3315,9 +3463,11 @@ Public Class Settings Me._movienamedotfanartjpg = False Me._movienfo = True Me._movienamenfo = True + Me._movienamenfostack = True Me._movienamemultionly = False Me._dashtrailer = True Me._videotsparent = False + Me._videotsparentxbmc = False Me._lockplot = False Me._lockoutline = False Me._locktitle = False @@ -3367,7 +3517,7 @@ Public Class Settings Me._scshowstate = 200 Me._scseasonstate = 200 Me._infopanelanim = False 'emm-r - Me._checkupdates = True + Me._checkupdates = False Me._bdpath = String.Empty Me._autobd = False Me._usemiduration = False @@ -3490,6 +3640,7 @@ Public Class Settings Me._episodepostercol = False Me._episodefanartcol = True Me._episodenfocol = False + Me._episodewatchedcol = False Me._proxyuri = String.Empty Me._proxyport = -1 Me._proxycredentials = New NetworkCredential @@ -3515,6 +3666,7 @@ Public Class Settings Me._eplocktitle = False Me._eplockplot = False Me._eplockrating = False + Me._scraperactorthumbs = False Me._scrapershowtitle = True Me._scrapershowegu = True Me._scrapershowgenre = True @@ -3579,7 +3731,7 @@ Public Class Settings End Sub Public Function SeasonFanartEnabled() As Boolean - Return Master.eSettings.SeasonFanartJPG OrElse Master.eSettings.SeasonDashFanart OrElse Master.eSettings.SeasonDotFanart OrElse Master.eSettings.SeasonXXDashFanartJPG + Return Master.eSettings.SeasonFanartJPG OrElse Master.eSettings.SeasonDashFanart OrElse Master.eSettings.SeasonDotFanart OrElse Master.eSettings.SeasonXXDashFanartJPG OrElse AdvancedSettings.GetBooleanSetting("YAMJSeasonFanart", False, "multi.Compatibility") End Function Public Sub SetDefaultsForLists(ByVal Type As Enums.DefaultType, ByVal Force As Boolean) @@ -3675,7 +3827,7 @@ Public Class Settings If (Type = Enums.DefaultType.All OrElse Type = Enums.DefaultType.ValidExts) AndAlso (Force OrElse Master.eSettings.ValidExts.Count <= 0) Then Master.eSettings.ValidExts.Clear() - Master.eSettings.ValidExts.AddRange(Strings.Split(".avi,.divx,.mkv,.iso,.mpg,.mp4,.mpeg,.wmv,.wma,.mov,.mts,.m2t,.img,.dat,.bin,.cue,.ifo,.vob,.dvb,.evo,.asf,.asx,.avs,.nsv,.ram,.ogg,.ogm,.ogv,.flv,.swf,.nut,.viv,.rar,.m2ts,.dvr-ms,.ts,.m4v,.rmvb", ",")) + Master.eSettings.ValidExts.AddRange(Strings.Split(".avi,.divx,.mkv,.iso,.mpg,.mp4,.mpeg,.wmv,.wma,.mov,.mts,.m2t,.img,.dat,.bin,.cue,.ifo,.vob,.dvb,.evo,.asf,.asx,.avs,.nsv,.ram,.ogg,.ogm,.ogv,.flv,.swf,.nut,.viv,.rar,.m2ts,.dvr-ms,.ts,.m4v,.rmvb,.webm", ",")) End If If (Type = Enums.DefaultType.All OrElse Type = Enums.DefaultType.ShowRegex) AndAlso (Force OrElse Master.eSettings.TVShowRegexes.Count <= 0) Then diff --git a/EmberAPI/clsAPIStringUtils.vb b/EmberAPI/clsAPIStringUtils.vb index 6ed102c..caa70f2 100644 --- a/EmberAPI/clsAPIStringUtils.vb +++ b/EmberAPI/clsAPIStringUtils.vb @@ -37,10 +37,36 @@ Public Class StringUtils End If End Function + Public Shared Function GenreFilter(aGenres As String) As String + + If Not String.IsNullOrEmpty(Master.eSettings.GenreFilter) Then + Dim sGenres() As String = Strings.Split(aGenres, "/") + Dim fGenres() As String = APIXML.GetGenreListString + Dim tGenres As String + Dim rGenres As New List(Of String) + + For Each Genre As String In fGenres + If sGenres.Contains(Genre) Then + rGenres.Add(Genre) + End If + Next + + If rGenres.Count > 0 Then + tGenres = Strings.Join(rGenres.ToArray, "/").Trim + Return tGenres + Else + Return "" + End If + Else + Return aGenres + End If + + End Function + Public Shared Function CleanStackingMarkers(ByVal sPath As String, Optional ByVal Asterisk As Boolean = False) As String If AdvancedSettings.GetBooleanSetting("DisableMultiPartMedia", False) Then Return sPath If String.IsNullOrEmpty(sPath) Then Return String.Empty - Dim sReturn As String = Regex.Replace(sPath, AdvancedSettings.GetSetting("DeleteStackMarkers", "\|?\-*\.*((cd|dvd|part|dis[ck])([0-9]))"), If(Asterisk, "*", " "), RegexOptions.IgnoreCase).Trim + Dim sReturn As String = Regex.Replace(sPath, AdvancedSettings.GetSetting("DeleteStackMarkers", "[\s_\-\.]?((cd|dvd|p(?:ar)?t|dis[ck])[\s_\-\.]*([0-9]+))"), If(Asterisk, "*", " "), RegexOptions.IgnoreCase).Trim If Not sReturn = sPath Then Return Regex.Replace(sReturn, "\s\s(\s+)?", " ").Trim Else @@ -276,7 +302,7 @@ Public Class StringUtils Public Shared Function FormatSeasonText(ByVal sSeason As Integer) As String If sSeason > 0 Then - Return String.Concat(Master.eLang.GetString(654, "Season "), sSeason.ToString.PadLeft(2, Convert.ToChar("0"))) + Return String.Concat(Master.eLang.GetString(654, "Season"), " ", sSeason.ToString.PadLeft(2, Convert.ToChar("0"))) ElseIf sSeason = 0 Then Return Master.eLang.GetString(655, "Season Specials") Else @@ -398,6 +424,24 @@ Public Class StringUtils Return String.Empty End Function + Public Shared Function CleanFileName(ByVal fName As String) As String + + If Not String.IsNullOrEmpty(fName) Then + fName = fName.Replace(":", " -") + fName = fName.Replace("/", String.Empty) + 'pattern = pattern.Replace("\", String.Empty) + fName = fName.Replace("|", String.Empty) + fName = fName.Replace("<", String.Empty) + fName = fName.Replace(">", String.Empty) + fName = fName.Replace("?", String.Empty) + fName = fName.Replace("*", String.Empty) + fName = fName.Replace(" ", " ") + Return fName + End If + + Return fName + End Function + #End Region 'Methods #Region "Nested Types" diff --git a/EmberAPI/clsAPIXML.vb b/EmberAPI/clsAPIXML.vb index 5f94097..d8934ff 100644 --- a/EmberAPI/clsAPIXML.vb +++ b/EmberAPI/clsAPIXML.vb @@ -306,6 +306,36 @@ Public Class APIXML Return retGenre.ToArray End Function + Public Shared Function GetGenreListString(Optional ByVal LangsOnly As Boolean = False) As String() + Dim retGenre As New List(Of String) + Try + If LangsOnly Then + Dim xGenre = From xGen In GenreXML....Descendants Select xGen.Value + If xGenre.Count > 0 Then + retGenre.AddRange(xGenre.ToArray) + End If + Else + Dim splitLang() As String + Dim xGenre = From xGen In GenreXML... Select xGen.@searchstring, xGen.@language + If xGenre.Count > 0 Then + For i As Integer = 0 To xGenre.Count - 1 + If Not IsNothing(xGenre(i).language) Then + splitLang = xGenre(i).language.Split(Convert.ToChar("|")) + For Each strGen As String In splitLang + If Not retGenre.Contains(xGenre(i).searchstring) AndAlso (Master.eSettings.GenreFilter.Contains(String.Format("{0}", Master.eLang.GetString(569, Master.eLang.All))) OrElse Master.eSettings.GenreFilter.Split(Convert.ToChar(",")).Contains(strGen)) Then + retGenre.Add(xGenre(i).searchstring) + End If + Next + End If + Next + End If + End If + Catch ex As Exception + Master.eLog.WriteToErrorLog(ex.Message, ex.StackTrace, "Error") + End Try + Return retGenre.ToArray + End Function + Public Shared Function GetRatingImage(ByVal strRating As String) As Image '// ' Parse the floating Rating box diff --git a/EmberAPI/clsAdvancedSettings.vb b/EmberAPI/clsAdvancedSettings.vb index 3f13d1f..0152caa 100644 --- a/EmberAPI/clsAdvancedSettings.vb +++ b/EmberAPI/clsAdvancedSettings.vb @@ -129,35 +129,35 @@ Public Class AdvancedSettings End Try End Function - Public Shared Sub CleanSetting(ByVal key As String, Optional ByVal cAssembly As String = "") - Dim Assembly As String = cAssembly - If Assembly = "" Then - Assembly = Path.GetFileNameWithoutExtension(System.Reflection.Assembly.GetCallingAssembly().Location) - If Assembly = "Ember Media Manager" OrElse Assembly = "EmberAPI" Then - Assembly = "*EmberAPP" - End If - End If - Dim v = From e In _AdvancedSettings.Where(Function(f) f.Name = key AndAlso f.Section = Assembly) - If Not v(0) Is Nothing Then - _AdvancedSettings.Remove(v(0)) - If Not _DoNotSave Then Save() - End If - End Sub - - Public Shared Sub ClearComplexSetting(ByVal key As String, Optional ByVal cAssembly As String = "") - Try - Dim Assembly As String = cAssembly - If Assembly = "" Then - Assembly = Path.GetFileNameWithoutExtension(System.Reflection.Assembly.GetCallingAssembly().Location) - If Assembly = "Ember Media Manager" OrElse Assembly = "EmberAPI" Then - Assembly = "*EmberAPP" - End If - End If - Dim v = _ComplexAdvancedSettings.FirstOrDefault(Function(f) f.Name = key AndAlso f.Section = Assembly) - If Not v Is Nothing Then v.TableItem.Clear() - Catch ex As Exception - End Try - End Sub + Public Shared Sub CleanSetting(ByVal key As String, Optional ByVal cAssembly As String = "") + Dim Assembly As String = cAssembly + If Assembly = "" Then + Assembly = Path.GetFileNameWithoutExtension(System.Reflection.Assembly.GetCallingAssembly().Location) + If Assembly = "Ember Media Manager" OrElse Assembly = "EmberAPI" Then + Assembly = "*EmberAPP" + End If + End If + Dim v = From e In _AdvancedSettings.Where(Function(f) f.Name = key AndAlso f.Section = Assembly) + If Not v(0) Is Nothing Then + _AdvancedSettings.Remove(v(0)) + If Not _DoNotSave Then Save() + End If + End Sub + + Public Shared Sub ClearComplexSetting(ByVal key As String, Optional ByVal cAssembly As String = "") + Try + Dim Assembly As String = cAssembly + If Assembly = "" Then + Assembly = Path.GetFileNameWithoutExtension(System.Reflection.Assembly.GetCallingAssembly().Location) + If Assembly = "Ember Media Manager" OrElse Assembly = "EmberAPI" Then + Assembly = "*EmberAPP" + End If + End If + Dim v = _ComplexAdvancedSettings.FirstOrDefault(Function(f) f.Name = key AndAlso f.Section = Assembly) + If Not v Is Nothing Then v.TableItem.Clear() + Catch ex As Exception + End Try + End Sub Public Shared Function GetComplexSetting(ByVal key As String, Optional ByVal cAssembly As String = "") As Hashtable Try @@ -343,6 +343,8 @@ Public Class AdvancedSettings SetSetting("AudioFormatConvert:wma2", "wmav2", "*EmberAPP", True) SetSetting("AudioFormatConvert:a_dts", "dca", "*EmberAPP", True) SetSetting("AudioFormatConvert:dts", "dca", "*EmberAPP", True) + SetSetting("AudioFormatConvert:a_truehd", "truehd", "*EmberAPP", True) + End If If Not loadSingle OrElse section = "VideoFormatConvert" Then @@ -359,11 +361,12 @@ Public Class AdvancedSettings SetSetting("VideoFormatConvert:3iv1", "3ivx", "*EmberAPP", True) SetSetting("VideoFormatConvert:3iv2", "3ivx", "*EmberAPP", True) SetSetting("VideoFormatConvert:3ivd", "3ivx", "*EmberAPP", True) + End If If Not loadSingle Then - SetSetting("CheckStackMarkers", "\|?((cd|dvd|part|dis[ck])([0-9]))", "*EmberAPP", True) - SetSetting("DeleteStackMarkers", "\|?((cd|dvd|part|dis[ck])([0-9]))", "*EmberAPP", True) + SetSetting("CheckStackMarkers", "[\s_\-\.]?((cd|dvd|p(?:ar)?t|dis[ck])[\s_\-\.]*([0-9]+))", "*EmberAPP", True) + SetSetting("DeleteStackMarkers", "[\s_\-\.]?((cd|dvd|p(?:ar)?t|dis[ck])[\s_\-\.]*([0-9]+))", "*EmberAPP", True) SetBooleanSetting("DisableMultiPartMedia", False) SetSetting("SubtitleExtension", ".*\.(sst|srt|sub|ssa|aqt|smi|sami|jss|mpl|rt|idx|ass)$", "*EmberAPP", True) @@ -372,10 +375,9 @@ Public Class AdvancedSettings SetSetting("NotValidDirIs", "extrathumbs|video_ts|bdmv|audio_ts|recycler|subs|subtitles|.trashes", "*EmberAPP", True) SetSetting("NotValidDirContains", "-trailer|[trailer|temporary files|(noscan)|$recycle.bin|lost+found|system volume information|sample", "*EmberAPP", True) - SetSetting("ForceTitle", "Argentina|Australia|Belgium|Brazil|Canada: English title|Canada: French title|Finland|France|Germany|Hong Kong|Iceland|Ireland|Netherlands|New Zealand|Peru|Portugal|Singapore|South Korea|Spain|Sweden|Switzerland|UK|USA", "*EmberAPP", True) + SetSetting("ForceTitle", "Argentina|Australia|Belgium|Brazil|Canada: English title|Canada: French title|Denmark|Finland|France|Germany|Hong Kong|Iceland|Ireland|Italy|Netherlands|New Zealand|Peru|Portugal|Singapore|South Korea|Spain|Sweden|Switzerland|UK|USA", "*EmberAPP", True) SetBooleanSetting("StudioTagAlwaysOn", False, "*EmberAPP", True) - SetBooleanSetting("ScrapeActorsThumbs", False, "*EmberAPP", True) SetBooleanSetting("PosterGlassOverlay", True, "*EmberAPP", True) End If @@ -415,4 +417,4 @@ Public Class AdvancedSettings #End Region 'Nested Types -End Class \ No newline at end of file +End Class diff --git a/EmberAPI/dlgCompatibility.Designer.vb b/EmberAPI/dlgCompatibility.Designer.vb new file mode 100644 index 0000000..79dd895 --- /dev/null +++ b/EmberAPI/dlgCompatibility.Designer.vb @@ -0,0 +1,138 @@ + _ +Partial Class dlgCompatibility + Inherits System.Windows.Forms.Form + + 'Form overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(dlgCompatibility)) + Me.lblHeader = New System.Windows.Forms.Label() + Me.lblBody = New System.Windows.Forms.Label() + Me.Panel1 = New System.Windows.Forms.Panel() + Me.tblCompatibility = New System.Windows.Forms.TableLayoutPanel() + Me.lblTutorial = New System.Windows.Forms.LinkLabel() + Me.btnOK = New System.Windows.Forms.Button() + Me.Panel1.SuspendLayout() + Me.tblCompatibility.SuspendLayout() + Me.SuspendLayout() + ' + 'lblHeader + ' + Me.lblHeader.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.lblHeader.Font = New System.Drawing.Font("Segoe UI", 14.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblHeader.Location = New System.Drawing.Point(3, 0) + Me.lblHeader.Name = "lblHeader" + Me.lblHeader.Size = New System.Drawing.Size(477, 30) + Me.lblHeader.TabIndex = 1 + Me.lblHeader.Text = "Database is not compatible!" + Me.lblHeader.TextAlign = System.Drawing.ContentAlignment.MiddleCenter + ' + 'lblBody + ' + Me.lblBody.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.lblBody.Location = New System.Drawing.Point(3, 30) + Me.lblBody.Name = "lblBody" + Me.lblBody.Size = New System.Drawing.Size(477, 112) + Me.lblBody.TabIndex = 0 + Me.lblBody.Text = resources.GetString("lblBody.Text") + Me.lblBody.TextAlign = System.Drawing.ContentAlignment.MiddleCenter + ' + 'Panel1 + ' + Me.Panel1.BackColor = System.Drawing.Color.White + Me.Panel1.Controls.Add(Me.tblCompatibility) + Me.Panel1.Location = New System.Drawing.Point(1, 2) + Me.Panel1.Name = "Panel1" + Me.Panel1.Size = New System.Drawing.Size(489, 177) + Me.Panel1.TabIndex = 1 + ' + 'tblCompatibility + ' + Me.tblCompatibility.ColumnCount = 1 + Me.tblCompatibility.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) + Me.tblCompatibility.Controls.Add(Me.lblBody, 0, 1) + Me.tblCompatibility.Controls.Add(Me.lblHeader, 0, 0) + Me.tblCompatibility.Controls.Add(Me.lblTutorial, 0, 2) + Me.tblCompatibility.Location = New System.Drawing.Point(3, 3) + Me.tblCompatibility.Name = "tblCompatibility" + Me.tblCompatibility.RowCount = 3 + Me.tblCompatibility.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30.0!)) + Me.tblCompatibility.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!)) + Me.tblCompatibility.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!)) + Me.tblCompatibility.Size = New System.Drawing.Size(483, 162) + Me.tblCompatibility.TabIndex = 2 + ' + 'lblTutorial + ' + Me.lblTutorial.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.lblTutorial.AutoSize = True + Me.lblTutorial.Location = New System.Drawing.Point(3, 142) + Me.lblTutorial.Name = "lblTutorial" + Me.lblTutorial.Size = New System.Drawing.Size(477, 20) + Me.lblTutorial.TabIndex = 2 + Me.lblTutorial.TabStop = True + Me.lblTutorial.Text = "Tutorial" + Me.lblTutorial.TextAlign = System.Drawing.ContentAlignment.MiddleCenter + ' + 'btnOK + ' + Me.btnOK.Anchor = System.Windows.Forms.AnchorStyles.Bottom + Me.btnOK.Location = New System.Drawing.Point(212, 195) + Me.btnOK.Name = "btnOK" + Me.btnOK.Size = New System.Drawing.Size(67, 23) + Me.btnOK.TabIndex = 0 + Me.btnOK.Text = "OK" + ' + 'dlgCompatibility + ' + Me.AcceptButton = Me.btnOK + Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi + Me.ClientSize = New System.Drawing.Size(492, 230) + Me.Controls.Add(Me.btnOK) + Me.Controls.Add(Me.Panel1) + Me.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "dlgCompatibility" + Me.ShowInTaskbar = False + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent + Me.Text = "Database Compatibility" + Me.Panel1.ResumeLayout(False) + Me.tblCompatibility.ResumeLayout(False) + Me.tblCompatibility.PerformLayout() + Me.ResumeLayout(False) + + End Sub + Friend WithEvents lblHeader As System.Windows.Forms.Label + Friend WithEvents lblBody As System.Windows.Forms.Label + Friend WithEvents Panel1 As System.Windows.Forms.Panel + Friend WithEvents btnOK As System.Windows.Forms.Button + Friend WithEvents tblCompatibility As System.Windows.Forms.TableLayoutPanel + Friend WithEvents lblTutorial As System.Windows.Forms.LinkLabel + +End Class diff --git a/EmberAPI/dlgCompatibility.resx b/EmberAPI/dlgCompatibility.resx new file mode 100644 index 0000000..d2e6590 --- /dev/null +++ b/EmberAPI/dlgCompatibility.resx @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Your database is not compatible with this version of Ember! + +Your existing database will be saved as "Media.emm_old" and an empty database will be created. + +To adapt your old Databank follow this tutorial. + + \ No newline at end of file diff --git a/EmberAPI/dlgCompatibility.vb b/EmberAPI/dlgCompatibility.vb new file mode 100644 index 0000000..837da90 --- /dev/null +++ b/EmberAPI/dlgCompatibility.vb @@ -0,0 +1,47 @@ +' ################################################################################ +' # EMBER MEDIA MANAGER # +' ################################################################################ +' ################################################################################ +' # This file is part of Ember Media Manager. # +' # # +' # Ember Media Manager is free software: you can redistribute it and/or modify # +' # it under the terms of the GNU General Public License as published by # +' # the Free Software Foundation, either version 3 of the License, or # +' # (at your option) any later version. # +' # # +' # Ember Media Manager is distributed in the hope that it will be useful, # +' # but WITHOUT ANY WARRANTY; without even the implied warranty of # +' # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +' # GNU General Public License for more details. # +' # # +' # You should have received a copy of the GNU General Public License # +' # along with Ember Media Manager. If not, see . # +' ################################################################################ + +Imports System.Windows.Forms +Imports EmberAPI + +Public Class dlgCompatibility + + Private Sub btnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOK.Click + Me.DialogResult = System.Windows.Forms.DialogResult.OK + Me.Close() + End Sub + + Private Sub dlgRestart_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load + Me.SetUp() + End Sub + + Private Sub SetUp() + Me.Text = Master.eLang.GetString(888, "Database Compatibility") + Me.lblHeader.Text = Master.eLang.GetString(889, "Database is not compatible!") + Me.lblBody.Text = Master.eLang.GetString(890, "Your database is not compatible with this version of Ember!\n\nYour existing database will be saved as ""Media.emm_old"" and an empty database will be created.\n\nTo adapt your old Databank follow this tutorial.").Replace("\n", vbCrLf) 'other languages ​​are currently not loaded + + Me.btnOK.Text = Master.eLang.GetString(179, "OK") + 'Me.btnAbort.Text = Master.eLang.GetString(887, "Cancel") + End Sub + + Private Sub lblTutorial_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles lblTutorial.LinkClicked + Process.Start("http://forum.xbmc.org/showthread.php?tid=116941&pid=1410086#pid1410086") + End Sub +End Class diff --git a/FanartTVAPI/FanartTV/FanartTV.Async.cs b/FanartTVAPI/FanartTV/FanartTV.Async.cs new file mode 100644 index 0000000..bb6967c --- /dev/null +++ b/FanartTVAPI/FanartTV/FanartTV.Async.cs @@ -0,0 +1,113 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using RestSharp; +using System.Net; + +namespace FanartTV.V1 +{ + public partial class FanartTV + { + #region Process Execution + + private void ProcessAsyncRequest(RestRequest request, Action> callback) + where T : new() + { + var client = new RestClient(BASE_URL); + client.AddHandler("application/json", new WatJsonDeserializer()); + client.AddHandler("application/json charset=utf-8", new WatJsonDeserializer()); + + if (Timeout.HasValue) + client.Timeout = Timeout.Value; + +#if !WINDOWS_PHONE + if (Proxy != null) + client.Proxy = Proxy; +#endif + + Error = null; + + //request.AddHeader("Accept", "application/json"); + //request.AddParameter("api_key", ApiKey); + + ++AsyncCount; + var asyncHandle = client.ExecuteAsync(request, resp => + { + --AsyncCount; + var result = new FanartTVAsyncResult + { + Data = resp.Data != null ? resp.Data : default(T), + UserState = request.UserState + }; + + ResponseContent = resp.Content; + ResponseHeaders = resp.Headers.ToDictionary(k => k.Name, v => v.Value); + + switch (resp.ResponseStatus) + { + case ResponseStatus.Completed: + switch (resp.StatusCode) + { + case HttpStatusCode.OK: + if (resp.Content == "Please specify a valid API key") + result.Error = resp.Content; + break; + default: + result.Error = resp.Content; + break; + } + break; + default: + result.Error = "HTTP Error"; + break; + } + + Error = result.Error; + + callback(result); + }); + } + + + #endregion + + private static bool CheckQuery(string query, object userState, Action> callback) + where T : class + { + if (string.IsNullOrEmpty(query)) + { + callback(new FanartTVAsyncResult + { + Data = null, + Error = "Search cannot be empty", + UserState = userState + }); + return false; + } + + return true; + } + + #region Movie Info + + /// + /// Retrieve all the basic movie information for a particular movie by FanartTV reference. + /// http://fanart.tv/api-docs/movie-api/ + /// + /// FanartTV movie id + /// optional - ISO 639-1 language code + /// The following parameters are optional but if you want to change any from the default value you must specify all optional parameters before the one you are changing (so if you are changing just format you don’t have to specify type, but if you want to change the sort you MUST also specify the format and type) + /// Returns the results in the requested format - json (default) / php (returns a php serialized object) + /// Returns the requested image types - all (default) / movielogo / movieart / moviedisc + /// 1 – Sorted by most popular image then newest(default) / 2 – Sorted by newest uploaded image / 3 – Sorted by oldest uploaded image + /// Value is either 1 (1 image) or 2 (all images – default), for example, when automatically downloading images you might only want to return the first result so the user doesn’t have to provide input, whereas with a manual download you might want the user to see all the options. + /// + public void GetMovieInfo(FanartTVRequest Request, Action> callback) + { + //ProcessAsyncRequest(BuildGetMovieInfoRequest(MovieID, language, UserState), callback); + ProcessAsyncRequest(Generator.GetMovieInfo(Request), callback); + } + #endregion + } +} diff --git a/FanartTVAPI/FanartTV/FanartTV.Sync.cs b/FanartTVAPI/FanartTV/FanartTV.Sync.cs new file mode 100644 index 0000000..407639c --- /dev/null +++ b/FanartTVAPI/FanartTV/FanartTV.Sync.cs @@ -0,0 +1,80 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using RestSharp; +using System.Net; + +namespace FanartTV.V1 +{ + public partial class FanartTV + { + #region Process Execution + + private T ProcessRequest(RestRequest request) + where T : new() + { + var client = new RestClient(BASE_URL); + client.AddHandler("application/json", new WatJsonDeserializer()); + client.AddHandler("application/json charset=utf-8", new WatJsonDeserializer()); + + if (Timeout.HasValue) + client.Timeout = Timeout.Value; + +#if !WINDOWS_PHONE + if (Proxy != null) + client.Proxy = Proxy; +#endif + + var resp = client.Execute(request); + + ResponseContent = resp.Content; + ResponseHeaders = resp.Headers.ToDictionary(k => k.Name, v => v.Value); + + switch (resp.ResponseStatus) + { + case ResponseStatus.Completed: + switch (resp.StatusCode) + { + case HttpStatusCode.OK: + if (resp.Content == "Please specify a valid API key") + Error = resp.Content; + return resp.Data; + break; + default: + Error = resp.Content; + return default(T); + break; + } + break; + default: + Error = "HTTP Error"; + return default(T); + break; + } + } + + #endregion + + + #region Movie Info + /// + /// Retrieve all the basic movie information for a particular movie by FanartTV reference. + /// http://fanart.tv/api-docs/movie-api/ + /// + /// FanartTV movie id + /// optional - ISO 639-1 language code + /// The following parameters are optional but if you want to change any from the default value you must specify all optional parameters before the one you are changing (so if you are changing just format you don’t have to specify type, but if you want to change the sort you MUST also specify the format and type) + /// Returns the results in the requested format - json (default) / php (returns a php serialized object) + /// Returns the requested image types - all (default) / movielogo / movieart / moviedisc + /// 1 – Sorted by most popular image then newest(default) / 2 – Sorted by newest uploaded image / 3 – Sorted by oldest uploaded image + /// Value is either 1 (1 image) or 2 (all images – default), for example, when automatically downloading images you might only want to return the first result so the user doesn’t have to provide input, whereas with a manual download you might want the user to see all the options. + /// + public FanartTVMovie GetMovieInfo(FanartTVRequest Request) + { + //return ProcessRequest(BuildGetMovieInfoRequest(MovieID, language)); + return ProcessRequest(Generator.GetMovieInfo(Request)); + } + #endregion + } +} diff --git a/FanartTVAPI/FanartTV/FanartTV.cs b/FanartTVAPI/FanartTV/FanartTV.cs new file mode 100644 index 0000000..23eea88 --- /dev/null +++ b/FanartTVAPI/FanartTV/FanartTV.cs @@ -0,0 +1,78 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using RestSharp.Deserializers; +using System.Net; +using RestSharp; +using FanartTV.Utilities; + +namespace FanartTV.V1 +{ + public partial class FanartTV + { + private const string BASE_URL = "http://api.fanart.tv/webservice/"; + + public FanartTV(string apiKey) + { + ApiKey = apiKey; + Error = null; + Timeout = null; + + Deserializer = new JsonDeserializer(); + Generator = new RequestGenerator(apiKey); + } + + #region Properties + + private RequestGenerator Generator { get; set; } + + private RequestGenerator ETagGenerator { get; set; } + + private string ApiKey { get; set; } + + private string Language { get; set; } + + private JsonDeserializer Deserializer; + + #endregion + + /// + /// Current count of outstanding Async calls awaiting callback response + /// + public int AsyncCount = 0; + + /// + /// Error message + /// + public string Error { get; set; } + + /// + /// String representation of response content + /// + public string ResponseContent { get; set; } + + /// + /// Dictionary of Header values in response + /// http://fanart.tv/api-docs/movie-api/ + /// + public Dictionary ResponseHeaders { get; set; } + + +#if !WINDOWS_PHONE + /// + /// Proxy to use for requests made. Passed on to underying WebRequest if set. + /// + public IWebProxy Proxy { get; set; } +#endif + /// + /// Timeout in milliseconds to use for requests made. + /// + public int? Timeout { get; set; } + + + + + } + +} diff --git a/FanartTVAPI/FanartTVAPI.csproj b/FanartTVAPI/FanartTVAPI.csproj new file mode 100644 index 0000000..14ab954 --- /dev/null +++ b/FanartTVAPI/FanartTVAPI.csproj @@ -0,0 +1,73 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {70F651C6-6BB4-4E4D-AD6C-25C36CA1E9E6} + Library + Properties + FanartTVAPI + FanartTVAPI + v3.5 + 512 + ..\ + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\packages\RestSharp.104.1\lib\net35\RestSharp.dll + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/FanartTVAPI/Properties/AssemblyInfo.cs b/FanartTVAPI/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..83f0b31 --- /dev/null +++ b/FanartTVAPI/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("FanartTVAPI")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("m.savazzi")] +[assembly: AssemblyProduct("FanartTVAPI")] +[assembly: AssemblyCopyright("Copyright © 2013")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("9ff623b4-3e53-43bc-9176-ebe5c91b5cb3")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/FanartTVAPI/Utilities/Constants.cs b/FanartTVAPI/Utilities/Constants.cs new file mode 100644 index 0000000..25c79ab --- /dev/null +++ b/FanartTVAPI/Utilities/Constants.cs @@ -0,0 +1,43 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace FanartTV.Utilities +{ + /// + /// Retrieve all the basic movie information for a particular movie by FanartTV reference. + /// http://fanart.tv/api-docs/movie-api/ + /// + /// FanartTV movie id + /// optional - ISO 639-1 language code + /// The following parameters are optional but if you want to change any from the default value you must specify all optional parameters before the one you are changing (so if you are changing just format you don’t have to specify type, but if you want to change the sort you MUST also specify the format and type) + /// Returns the results in the requested format - json (default) / php (returns a php serialized object) + /// Returns the requested image types - all (default) / movielogo / movieart / moviedisc + /// 1 – Sorted by most popular image then newest(default) / 2 – Sorted by newest uploaded image / 3 – Sorted by oldest uploaded image + /// Value is either 1 (1 image) or 2 (all images – default), for example, when automatically downloading images you might only want to return the first result so the user doesn’t have to provide input, whereas with a manual download you might want the user to see all the options. + /// + internal partial class RequestGenerator + { + + #region Request Constants + public const string REQUEST_MOVIE = "movie/{api_key}/{id}/{format}/{type}/{sort}/{limit}"; + #endregion + + } + + + internal partial class RequestBuilder + { + + #region Parameter Constants + public const string PARAMETER_APIKEY = "api_key"; + public const string PARAMETER_FORMAT = "format"; + public const string PARAMETER_TYPE = "type"; + public const string PARAMETER_SORT = "sort"; + public const string PARAMETER_ID = "id"; + public const string PARAMETER_LIMIT = "limit"; + #endregion + + } +} diff --git a/FanartTVAPI/Utilities/RequestBuilder.cs b/FanartTVAPI/Utilities/RequestBuilder.cs new file mode 100644 index 0000000..610cf33 --- /dev/null +++ b/FanartTVAPI/Utilities/RequestBuilder.cs @@ -0,0 +1,105 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using RestSharp; +using System.Globalization; + +namespace FanartTV.Utilities +{ + internal partial class RequestBuilder + { + public RequestBuilder(string resource, Method method) + { + Request = new RestRequest(resource, method); + Request.AddHeader("Accept", "application/json"); + } + + #region Properties + + private RestRequest Request { get; set; } + + private Method Method + { + get { return Request.Method; } + set { Request.Method = value; } + } + + private object UserState + { + get { return Request.UserState; } + set { if (value != null) Request.UserState = value; } + } + + #endregion + + public RestRequest GetRequest() + { + return Request; + } + + public RequestBuilder SetUserState(object userState) + { + UserState = userState; + return this; + } + + public RequestBuilder AddParameter(string name, bool? value) + { + if (!value.HasValue) return this; + + Request.AddParameter(name, value.Value ? "true" : "false"); + return this; + } + + public RequestBuilder AddParameter(string name, int? value) + { + if (!value.HasValue) return this; + + Request.AddParameter(name, value.Value); + return this; + } + + public RequestBuilder AddParameter(string name, string value) + { + if (string.IsNullOrEmpty(value)) return this; + value = value.EscapeString(); + + Request.AddParameter(name, value); + return this; + } + + public RequestBuilder AddParameter(string name, DateTime? value) + { + if (!value.HasValue) return this; + + Request.AddParameter(name, value.Value.ToString("yyyy-MM-dd")); + return this; + } + + public RequestBuilder AddParameter(string name, object value) + { + if (value == null) return this; + + Request.AddParameter(name, value); + return this; + } + + public RequestBuilder AddUrlSegment(string name, int? value) + { + if (!value.HasValue) return this; + + Request.AddUrlSegment(name, value.Value.ToString(CultureInfo.InvariantCulture)); + return this; + } + + public RequestBuilder AddUrlSegment(string name, string value) + { + if (string.IsNullOrEmpty(value)) return this; + value = value.EscapeString(); + + Request.AddUrlSegment(name, value); + return this; + } + } +} diff --git a/FanartTVAPI/Utilities/RequestGenerator.cs b/FanartTVAPI/Utilities/RequestGenerator.cs new file mode 100644 index 0000000..2787901 --- /dev/null +++ b/FanartTVAPI/Utilities/RequestGenerator.cs @@ -0,0 +1,46 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using RestSharp; + +namespace FanartTV.Utilities +{ + internal partial class RequestGenerator + { + #region Properties + + private Method Method { get; set; } + private string ApiKey { get; set; } + + #endregion + + public RequestGenerator(string apiKey, Method method = Method.GET) + { + Method = method; + ApiKey = apiKey; + } + + private RequestBuilder GetBuilder(string request) + { + return new RequestBuilder(request, Method) + .AddUrlSegment(RequestBuilder.PARAMETER_APIKEY, ApiKey); + } + + #region Movie Info + + internal RestRequest GetMovieInfo(FanartTV.V1.FanartTVRequest Request, object userState = null) + { + return GetBuilder(REQUEST_MOVIE) + .SetUserState(userState) + .AddUrlSegment(RequestBuilder.PARAMETER_ID, Request.MovieID) + .AddUrlSegment(RequestBuilder.PARAMETER_FORMAT, Request.format) + .AddUrlSegment(RequestBuilder.PARAMETER_LIMIT, Request.limit) + .AddUrlSegment(RequestBuilder.PARAMETER_SORT, Request.sort) + .AddUrlSegment(RequestBuilder.PARAMETER_TYPE, Request.type) + .GetRequest(); + } + + #endregion + } +} diff --git a/FanartTVAPI/Utilities/Utility.cs b/FanartTVAPI/Utilities/Utility.cs new file mode 100644 index 0000000..21d0e7f --- /dev/null +++ b/FanartTVAPI/Utilities/Utility.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; +using System.IO; + +namespace FanartTV +{ + public static class Utility + { + // remove invalid characters for use in URL + public static string EscapeString(this string s) + { + if (string.IsNullOrEmpty(s)) + return string.Empty; + +#if WINDOWS_PHONE + return Regex.Replace(s, "[" + Regex.Escape(new String(Path.GetInvalidPathChars())) + "]", "-"); +#else + return Regex.Replace(s, "[" + Regex.Escape(new String(Path.GetInvalidFileNameChars())) + "]", "-"); +#endif + } + } +} diff --git a/FanartTVAPI/V1/FanartTVAsyncResult.cs b/FanartTVAPI/V1/FanartTVAsyncResult.cs new file mode 100644 index 0000000..269d83c --- /dev/null +++ b/FanartTVAPI/V1/FanartTVAsyncResult.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace FanartTV.V1 +{ + public class FanartTVAsyncResult + { + public T Data { get; set; } + public string Error { get; set; } + public object UserState { get; set; } + } + + public class TmdbAsyncETagResult + { + public string ETag { get; set; } + public object UserState { get; set; } + } +} diff --git a/FanartTVAPI/V1/FanartTVError.cs b/FanartTVAPI/V1/FanartTVError.cs new file mode 100644 index 0000000..4381ee2 --- /dev/null +++ b/FanartTVAPI/V1/FanartTVError.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace FanartTVAPI.V1 +{ + class FanartTVError + { + public string status_message { get; set; } + } +} diff --git a/FanartTVAPI/V1/FanartTVMovie.cs b/FanartTVAPI/V1/FanartTVMovie.cs new file mode 100644 index 0000000..c11bf3c --- /dev/null +++ b/FanartTVAPI/V1/FanartTVMovie.cs @@ -0,0 +1,84 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace FanartTV.V1 +{ + public class MovieLogo + { + public string id { get; set; } + public string url { get; set; } + public string lang { get; set; } + public string likes { get; set; } + } + + public class MovieArt + { + public string id { get; set; } + public string url { get; set; } + public string lang { get; set; } + public string likes { get; set; } + } + + public class MovieBackground + { + public string id { get; set; } + public string url { get; set; } + public string lang { get; set; } + public string likes { get; set; } + } + + public class MovieDisc + { + public string id { get; set; } + public string url { get; set; } + public string lang { get; set; } + public string likes { get; set; } + public string disc { get; set; } + public string disc_type { get; set; } + } + + public class MovieThumb + { + public string id { get; set; } + public string url { get; set; } + public string lang { get; set; } + public string likes { get; set; } + } + + public class HDMovieLogo + { + public string id { get; set; } + public string url { get; set; } + public string lang { get; set; } + public string likes { get; set; } + } + + public class HDMovieClearArt + { + public string id { get; set; } + public string url { get; set; } + public string lang { get; set; } + public string likes { get; set; } + } + + public class FanartTVMovie_detail + { + public string tmdb_id { get; set; } + public string imdb_id { get; set; } + public List movielogo { get; set; } + public List movieart { get; set; } + public List moviebackground { get; set; } + public List moviedisc { get; set; } + public List moviethumb { get; set; } + public List hdmovielogo { get; set; } + public List hdmovieclearart { get; set; } + } + + public class FanartTVMovie + { + public string title { get; set; } + public FanartTVMovie_detail movieinfo { get; set; } + } +} diff --git a/FanartTVAPI/V1/FanartTVRequest.cs b/FanartTVAPI/V1/FanartTVRequest.cs new file mode 100644 index 0000000..34bcb7e --- /dev/null +++ b/FanartTVAPI/V1/FanartTVRequest.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace FanartTV.V1 +{ + public partial class FanartTVRequest + { + public string MovieID { get; set; } + public string format { get; set; } + public string type { get; set; } + public int sort { get; set; } + public int limit { get; set; } + + //public FanartTVRequest(string _MovieID, string _format, string _type, int _sort, int _limit) + //{ + // MovieID = _MovieID; + // format = _format; + // type = _type; + // sort = _sort; + // limit = _limit; + //} + + public FanartTVRequest(string _MovieID, string _format, string _type, int _sort, int _limit) + { + MovieID = _MovieID; + format = _format; + type = _type; + sort = _sort; + limit = _limit; + } + } +} diff --git a/FanartTVAPI/V1/WatJsonDeserializer.cs b/FanartTVAPI/V1/WatJsonDeserializer.cs new file mode 100644 index 0000000..63dd33c --- /dev/null +++ b/FanartTVAPI/V1/WatJsonDeserializer.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using RestSharp.Deserializers; + +namespace FanartTV.V1 +{ + public class WatJsonDeserializer : IDeserializer + { + #region IDeserializer Members + + public T Deserialize(RestSharp.IRestResponse response) + { + if (response.Content == null) + return default(T); + if (response.Content == "null") + return default(T); + + // handle custom answer + string astr = @"{""title"":" + response.Content.Substring(1, response.Content.Length - 1); + int pos = astr.IndexOf(@""":{""tmdb_id"""); + astr = astr.Substring(0, pos+1) + @",""movieinfo" + astr.Substring(pos, astr.Length - pos); + response.Content = astr; + + var deserializer = new JsonDeserializer(); + var data = deserializer.Deserialize(response); + + return data; + } + + public string DateFormat { get; set; } + public string Namespace { get; set; } + public string RootElement { get; set; } + + #endregion + } +} diff --git a/FanartTVAPI/packages.config b/FanartTVAPI/packages.config new file mode 100644 index 0000000..1de19f7 --- /dev/null +++ b/FanartTVAPI/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Packages.dgml b/Packages.dgml new file mode 100644 index 0000000..558aef9 --- /dev/null +++ b/Packages.dgml @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/RottenTomatoesAPI/Properties/AssemblyInfo.cs b/RottenTomatoesAPI/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..b4e904d --- /dev/null +++ b/RottenTomatoesAPI/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("RottenTomatoesAPI")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("m.savazzi")] +[assembly: AssemblyProduct("RottenTomatoesAPI")] +[assembly: AssemblyCopyright("Copyright © 2013")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("ACB20A8C-45DA-4E9B-83EE-FCC2ED50A47A")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/RottenTomatoesAPI/RottenTomatoes/RottenTomatoes.Async.cs b/RottenTomatoesAPI/RottenTomatoes/RottenTomatoes.Async.cs new file mode 100644 index 0000000..1fa8351 --- /dev/null +++ b/RottenTomatoesAPI/RottenTomatoes/RottenTomatoes.Async.cs @@ -0,0 +1,143 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using RestSharp; +using System.Net; + +namespace RottenTomatoes.V1 +{ + public partial class RottenTomatoes + { + #region Process Execution + + private void ProcessAsyncRequest(RestRequest request, Action> callback) + where T : new() + { + var client = new RestClient(BASE_URL); + client.AddHandler("application/json", new WatJsonDeserializer()); + client.AddHandler("application/json charset=utf-8", new WatJsonDeserializer()); + + if (Timeout.HasValue) + client.Timeout = Timeout.Value; + +#if !WINDOWS_PHONE + if (Proxy != null) + client.Proxy = Proxy; +#endif + + Error = null; + + //request.AddHeader("Accept", "application/json"); + //request.AddParameter("api_key", ApiKey); + + ++AsyncCount; + var asyncHandle = client.ExecuteAsync(request, resp => + { + --AsyncCount; + var result = new RottenTomatoesAsyncResult + { + Data = resp.Data != null ? resp.Data : default(T), + UserState = request.UserState + }; + + ResponseContent = resp.Content; + ResponseHeaders = resp.Headers.ToDictionary(k => k.Name, v => v.Value); + + switch (resp.ResponseStatus) + { + case ResponseStatus.Completed: + switch (resp.StatusCode) + { + case HttpStatusCode.OK: + if (resp.Content == "Please specify a valid API key") + result.Error = resp.Content; + break; + default: + result.Error = resp.Content; + break; + } + break; + default: + result.Error = "HTTP Error"; + break; + } + + Error = result.Error; + + callback(result); + }); + } + + + #endregion + + private static bool CheckQuery(string query, object userState, Action> callback) + where T : class + { + if (string.IsNullOrEmpty(query)) + { + callback(new RottenTomatoesAsyncResult + { + Data = null, + Error = "Search cannot be empty", + UserState = userState + }); + return false; + } + + return true; + } + + #region Movie Info + + /// + /// Retrieve all the basic movie information for a particular movie by RottenTomatoes reference. + /// http://api.rottentomatoes.com/api/public/v1.0/movies/.json?apikey= + /// + /// RottenTomatoes movie id + /// + public void GetMovieInfo(RottenTomatoesRequest Request, Action> callback) + { + ProcessAsyncRequest(Generator.GetMovieInfo(Request),callback); + } + + /// + /// Retrieve all the basic movie information for a particular movie by RottenTomatoes reference. + /// http://api.rottentomatoes.com/api/public/v1.0/movies//clips.json?apikey= + /// + /// RottenTomatoes movie id + /// + public void GetMovieInfo(RottenTomatoesRequest Request, Action> callback) + { + ProcessAsyncRequest(Generator.GetMovieInfo(Request),callback); + } + + /// + /// Retrieve all the basic movie information for a particular movie by RottenTomatoes reference. + /// http://api.rottentomatoes.com/api/public/v1.0/movies//cast.json?apikey= + /// + /// RottenTomatoes movie id + /// + public void GetMovieCast(RottenTomatoesRequest Request, Action> callback) + { + ProcessAsyncRequest(Generator.GetMovieInfo(Request), callback); + } + + /// + /// Retrieve all the basic movie information for a particular movie by RottenTomatoes reference. + /// http://api.rottentomatoes.com/api/public/v1.0/movies//cast.json?apikey= + /// + /// IMDB movie id without the initial tt + /// + public void GetMoviesAlias(RottenTomatoesRequest Request, Action> callback) + { + if (Request.MovieID.Substring(0, 2).ToLower() == "tt") + Request.MovieID = Request.MovieID.Substring(2, Request.MovieID.Length - 2); + + ProcessAsyncRequest(Generator.GetMovieInfo(Request),callback ); + } + + #endregion + } +} diff --git a/RottenTomatoesAPI/RottenTomatoes/RottenTomatoes.Sync.cs b/RottenTomatoesAPI/RottenTomatoes/RottenTomatoes.Sync.cs new file mode 100644 index 0000000..b48d1d9 --- /dev/null +++ b/RottenTomatoesAPI/RottenTomatoes/RottenTomatoes.Sync.cs @@ -0,0 +1,110 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using RestSharp; +using System.Net; + +namespace RottenTomatoes.V1 +{ + public partial class RottenTomatoes + { + #region Process Execution + + private T ProcessRequest(RestRequest request) + where T : new() + { + var client = new RestClient(BASE_URL); + client.AddHandler("application/json", new WatJsonDeserializer()); + + if (Timeout.HasValue) + client.Timeout = Timeout.Value; + +#if !WINDOWS_PHONE + if (Proxy != null) + client.Proxy = Proxy; +#endif + + var resp = client.Execute(request); + + ResponseContent = resp.Content; + ResponseHeaders = resp.Headers.ToDictionary(k => k.Name, v => v.Value); + + switch (resp.ResponseStatus) + { + case ResponseStatus.Completed: + switch (resp.StatusCode) + { + case HttpStatusCode.OK: + if (resp.Content == "Please specify a valid API key") + Error = resp.Content; + return resp.Data; + break; + default: + Error = resp.Content; + return default(T); + break; + } + break; + default: + Error = "HTTP Error"; + return default(T); + break; + } + return default(T); + } + + #endregion + + + #region Movie Info + /// + /// Retrieve all the basic movie information for a particular movie by RottenTomatoes reference. + /// http://api.rottentomatoes.com/api/public/v1.0/movies/.json?apikey= + /// + /// RottenTomatoes movie id + /// + public RottenTomatoesMovieInfo GetMovieInfo(RottenTomatoesRequest Request) + { + return ProcessRequest(Generator.GetMovieInfo(Request)); + } + + /// + /// Retrieve all the basic movie information for a particular movie by RottenTomatoes reference. + /// http://api.rottentomatoes.com/api/public/v1.0/movies//clips.json?apikey= + /// + /// RottenTomatoes movie id + /// + public RottenTomatoesMovieClips GetMovieClips(RottenTomatoesRequest Request) + { + return ProcessRequest(Generator.GetMovieInfo(Request)); + } + + /// + /// Retrieve all the basic movie information for a particular movie by RottenTomatoes reference. + /// http://api.rottentomatoes.com/api/public/v1.0/movies//cast.json?apikey= + /// + /// RottenTomatoes movie id + /// + public RottenTomatoesCastInfo GetMovieCast(RottenTomatoesRequest Request) + { + return ProcessRequest(Generator.GetMovieInfo(Request)); + } + + /// + /// Retrieve all the basic movie information for a particular movie by RottenTomatoes reference. + /// http://api.rottentomatoes.com/api/public/v1.0/movies//cast.json?apikey= + /// + /// IMDB movie id without the initial tt + /// + public RottenTomatoesMovieInfo GetMoviesAlias(RottenTomatoesRequest Request) + { + if (Request.MovieID.Substring(0, 2).ToLower() == "tt") + Request.MovieID = Request.MovieID.Substring(2, Request.MovieID.Length - 2); + + return ProcessRequest(Generator.GetMovieInfo(Request)); + } + + #endregion + } +} diff --git a/RottenTomatoesAPI/RottenTomatoes/RottenTomatoes.cs b/RottenTomatoesAPI/RottenTomatoes/RottenTomatoes.cs new file mode 100644 index 0000000..1b36ca8 --- /dev/null +++ b/RottenTomatoesAPI/RottenTomatoes/RottenTomatoes.cs @@ -0,0 +1,78 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using RestSharp.Deserializers; +using System.Net; +using RestSharp; +using RottenTomatoes.Utilities; + +namespace RottenTomatoes.V1 +{ + public partial class RottenTomatoes + { + private const string BASE_URL = "http://api.rottentomatoes.com/api/public/v1.0/"; + + public RottenTomatoes(string apiKey) + { + ApiKey = apiKey; + Error = null; + Timeout = null; + + Deserializer = new JsonDeserializer(); + Generator = new RequestGenerator(apiKey); + } + + #region Properties + + private RequestGenerator Generator { get; set; } + + private RequestGenerator ETagGenerator { get; set; } + + private string ApiKey { get; set; } + + private string Language { get; set; } + + private JsonDeserializer Deserializer; + + #endregion + + /// + /// Current count of outstanding Async calls awaiting callback response + /// + public int AsyncCount = 0; + + /// + /// Error message + /// + public string Error { get; set; } + + /// + /// String representation of response content + /// + public string ResponseContent { get; set; } + + /// + /// Dictionary of Header values in response + /// http://fanart.tv/api-docs/movie-api/ + /// + public Dictionary ResponseHeaders { get; set; } + + +#if !WINDOWS_PHONE + /// + /// Proxy to use for requests made. Passed on to underying WebRequest if set. + /// + public IWebProxy Proxy { get; set; } +#endif + /// + /// Timeout in milliseconds to use for requests made. + /// + public int? Timeout { get; set; } + + + + + } + +} diff --git a/RottenTomatoesAPI/RottenTomatoesAPI.csproj b/RottenTomatoesAPI/RottenTomatoesAPI.csproj new file mode 100644 index 0000000..bc80657 --- /dev/null +++ b/RottenTomatoesAPI/RottenTomatoesAPI.csproj @@ -0,0 +1,76 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {8DAFAF56-AD78-4B47-866F-E8179511AF5B} + Library + Properties + RottenTomatoesAPI + RottenTomatoesAPI + v3.5 + 512 + ..\ + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + AnyCPU + + + + ..\packages\RestSharp.104.1\lib\net35\RestSharp.dll + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/RottenTomatoesAPI/Utilities/Constants.cs b/RottenTomatoesAPI/Utilities/Constants.cs new file mode 100644 index 0000000..3f8e279 --- /dev/null +++ b/RottenTomatoesAPI/Utilities/Constants.cs @@ -0,0 +1,47 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace RottenTomatoes.Utilities +{ + /// + /// Retrieve all the basic movie information for a particular movie by RottenTomatoes reference. + /// http://fanart.tv/api-docs/movie-api/ + /// + /// RottenTomatoes movie id + /// optional - ISO 639-1 language code + /// The following parameters are optional but if you want to change any from the default value you must specify all optional parameters before the one you are changing (so if you are changing just format you don’t have to specify type, but if you want to change the sort you MUST also specify the format and type) + /// Returns the results in the requested format - json (default) / php (returns a php serialized object) + /// Returns the requested image types - all (default) / movielogo / movieart / moviedisc + /// 1 – Sorted by most popular image then newest(default) / 2 – Sorted by newest uploaded image / 3 – Sorted by oldest uploaded image + /// Value is either 1 (1 image) or 2 (all images – default), for example, when automatically downloading images you might only want to return the first result so the user doesn’t have to provide input, whereas with a manual download you might want the user to see all the options. + /// + internal partial class RequestGenerator + { + + #region Request Constants + // http://api.rottentomatoes.com/api/public/v1.0/movies/.json?apikey= + public const string REQUEST_MOVIE = "movies/{id}.json"; + // http://api.rottentomatoes.com/api/public/v1.0/movies//cast.json?apikey= + public const string REQUEST_MOVIECAST = "movies/{id}/cast.json"; + // http://api.rottentomatoes.com/api/public/v1.0/movies//clips.json?apikey= + public const string REQUEST_MOVIECLIPS = "movies/{id}/clips.json"; + // api.rottentomatoes.com/api/public/v1.0/movie_alias.json?id=0187393&type=imdb&apikey= + public const string REQUEST_MOVIEALIAS = "movies_alias.json"; + #endregion + + } + + + internal partial class RequestBuilder + { + + #region Parameter Constants + public const string PARAMETER_APIKEY = "apikey"; + public const string PARAMETER_TYPE = "type"; + public const string PARAMETER_ID = "id"; + #endregion + + } +} diff --git a/RottenTomatoesAPI/Utilities/RequestBuilder.cs b/RottenTomatoesAPI/Utilities/RequestBuilder.cs new file mode 100644 index 0000000..d77a9ef --- /dev/null +++ b/RottenTomatoesAPI/Utilities/RequestBuilder.cs @@ -0,0 +1,105 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using RestSharp; +using System.Globalization; + +namespace RottenTomatoes.Utilities +{ + internal partial class RequestBuilder + { + public RequestBuilder(string resource, Method method) + { + Request = new RestRequest(resource, method); + Request.AddHeader("Accept", "application/json"); + } + + #region Properties + + private RestRequest Request { get; set; } + + private Method Method + { + get { return Request.Method; } + set { Request.Method = value; } + } + + private object UserState + { + get { return Request.UserState; } + set { if (value != null) Request.UserState = value; } + } + + #endregion + + public RestRequest GetRequest() + { + return Request; + } + + public RequestBuilder SetUserState(object userState) + { + UserState = userState; + return this; + } + + public RequestBuilder AddParameter(string name, bool? value) + { + if (!value.HasValue) return this; + + Request.AddParameter(name, value.Value ? "true" : "false"); + return this; + } + + public RequestBuilder AddParameter(string name, int? value) + { + if (!value.HasValue) return this; + + Request.AddParameter(name, value.Value); + return this; + } + + public RequestBuilder AddParameter(string name, string value) + { + if (string.IsNullOrEmpty(value)) return this; + value = value.EscapeString(); + + Request.AddParameter(name, value); + return this; + } + + public RequestBuilder AddParameter(string name, DateTime? value) + { + if (!value.HasValue) return this; + + Request.AddParameter(name, value.Value.ToString("yyyy-MM-dd")); + return this; + } + + public RequestBuilder AddParameter(string name, object value) + { + if (value == null) return this; + + Request.AddParameter(name, value); + return this; + } + + public RequestBuilder AddUrlSegment(string name, int? value) + { + if (!value.HasValue) return this; + + Request.AddUrlSegment(name, value.Value.ToString(CultureInfo.InvariantCulture)); + return this; + } + + public RequestBuilder AddUrlSegment(string name, string value) + { + if (string.IsNullOrEmpty(value)) return this; + value = value.EscapeString(); + + Request.AddUrlSegment(name, value); + return this; + } + } +} diff --git a/RottenTomatoesAPI/Utilities/RequestGenerator.cs b/RottenTomatoesAPI/Utilities/RequestGenerator.cs new file mode 100644 index 0000000..e87bb2d --- /dev/null +++ b/RottenTomatoesAPI/Utilities/RequestGenerator.cs @@ -0,0 +1,70 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using RestSharp; + +namespace RottenTomatoes.Utilities +{ + internal partial class RequestGenerator + { + #region Properties + + private Method Method { get; set; } + private string ApiKey { get; set; } + + #endregion + + public RequestGenerator(string apiKey, Method method = Method.GET) + { + Method = method; + ApiKey = apiKey; + } + + private RequestBuilder GetBuilder(string request) + { + return new RequestBuilder(request, Method); + } + + #region Movie Info + + internal RestRequest GetMovieInfo(RottenTomatoes.V1.RottenTomatoesRequest Request, object userState = null) + { + return GetBuilder(REQUEST_MOVIE) + .SetUserState(userState) + .AddUrlSegment(RequestBuilder.PARAMETER_ID, Request.MovieID) + .AddParameter(RequestBuilder.PARAMETER_APIKEY, ApiKey ) + .GetRequest(); + } + + internal RestRequest GetMovieClips(RottenTomatoes.V1.RottenTomatoesRequest Request, object userState = null) + { + return GetBuilder(REQUEST_MOVIECLIPS) + .SetUserState(userState) + .AddUrlSegment(RequestBuilder.PARAMETER_ID, Request.MovieID) + .AddParameter(RequestBuilder.PARAMETER_APIKEY, ApiKey) + .GetRequest(); + } + + internal RestRequest GetMovieCast(RottenTomatoes.V1.RottenTomatoesRequest Request, object userState = null) + { + return GetBuilder(REQUEST_MOVIECAST) + .SetUserState(userState) + .AddUrlSegment(RequestBuilder.PARAMETER_ID, Request.MovieID) + .AddParameter(RequestBuilder.PARAMETER_APIKEY, ApiKey) + .GetRequest(); + } + + internal RestRequest GetMovieAlias(RottenTomatoes.V1.RottenTomatoesRequest Request, object userState = null) + { + return GetBuilder(REQUEST_MOVIECAST) + .SetUserState(userState) + .AddParameter(RequestBuilder.PARAMETER_ID, Request.MovieID) + .AddParameter(RequestBuilder.PARAMETER_APIKEY, ApiKey) + .AddParameter(RequestBuilder.PARAMETER_TYPE , "imdb") + .GetRequest(); + } + + #endregion + } +} diff --git a/RottenTomatoesAPI/Utilities/Utility.cs b/RottenTomatoesAPI/Utilities/Utility.cs new file mode 100644 index 0000000..7357aab --- /dev/null +++ b/RottenTomatoesAPI/Utilities/Utility.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; +using System.IO; + +namespace RottenTomatoes +{ + public static class Utility + { + // remove invalid characters for use in URL + public static string EscapeString(this string s) + { + if (string.IsNullOrEmpty(s)) + return string.Empty; + +#if WINDOWS_PHONE + return Regex.Replace(s, "[" + Regex.Escape(new String(Path.GetInvalidPathChars())) + "]", "-"); +#else + return Regex.Replace(s, "[" + Regex.Escape(new String(Path.GetInvalidFileNameChars())) + "]", "-"); +#endif + } + } +} diff --git a/RottenTomatoesAPI/V1/RottenTomatoesAsyncResult.cs b/RottenTomatoesAPI/V1/RottenTomatoesAsyncResult.cs new file mode 100644 index 0000000..0cfd950 --- /dev/null +++ b/RottenTomatoesAPI/V1/RottenTomatoesAsyncResult.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace RottenTomatoes.V1 +{ + public class RottenTomatoesAsyncResult + { + public T Data { get; set; } + public string Error { get; set; } + public object UserState { get; set; } + } + + public class TmdbAsyncETagResult + { + public string ETag { get; set; } + public object UserState { get; set; } + } +} diff --git a/RottenTomatoesAPI/V1/RottenTomatoesCastInfo.cs b/RottenTomatoesAPI/V1/RottenTomatoesCastInfo.cs new file mode 100644 index 0000000..44aee57 --- /dev/null +++ b/RottenTomatoesAPI/V1/RottenTomatoesCastInfo.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace RottenTomatoes.V1 +{ + public class Cast + { + public string id { get; set; } + public string name { get; set; } + public List characters { get; set; } + } + + public class CastLinks + { + public string rel { get; set; } + } + + public class RottenTomatoesCastInfo + { + public List cast { get; set; } + public CastLinks links { get; set; } + } +} diff --git a/RottenTomatoesAPI/V1/RottenTomatoesError.cs b/RottenTomatoesAPI/V1/RottenTomatoesError.cs new file mode 100644 index 0000000..def35b9 --- /dev/null +++ b/RottenTomatoesAPI/V1/RottenTomatoesError.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace RottenTomatoesAPI.V1 +{ + class RottenTomatoesError + { + public string status_message { get; set; } + } +} diff --git a/RottenTomatoesAPI/V1/RottenTomatoesMovieClips.cs b/RottenTomatoesAPI/V1/RottenTomatoesMovieClips.cs new file mode 100644 index 0000000..3e1b488 --- /dev/null +++ b/RottenTomatoesAPI/V1/RottenTomatoesMovieClips.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace RottenTomatoes.V1 +{ + public class MovieClipLinks + { + public string alternate { get; set; } + } + + public class Clip + { + public string title { get; set; } + public string duration { get; set; } + public string thumbnail { get; set; } + public MovieClipLinks links { get; set; } + } + + public class Links2 + { + public string self { get; set; } + public string alternate { get; set; } + public string rel { get; set; } + } + + public class RottenTomatoesMovieClips + { + public List clips { get; set; } + public Links2 links { get; set; } + } +} diff --git a/RottenTomatoesAPI/V1/RottenTomatoesMovieInfo.cs b/RottenTomatoesAPI/V1/RottenTomatoesMovieInfo.cs new file mode 100644 index 0000000..608cf45 --- /dev/null +++ b/RottenTomatoesAPI/V1/RottenTomatoesMovieInfo.cs @@ -0,0 +1,76 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace RottenTomatoes.V1 +{ + public class ReleaseDates + { + public string theater { get; set; } + public string dvd { get; set; } + } + + public class Ratings + { + public string critics_rating { get; set; } + public int critics_score { get; set; } + public string audience_rating { get; set; } + public int audience_score { get; set; } + } + + public class Posters + { + public string thumbnail { get; set; } + public string profile { get; set; } + public string detailed { get; set; } + public string original { get; set; } + } + + public class AbridgedCast + { + public string name { get; set; } + public string id { get; set; } + public List characters { get; set; } + } + + public class AbridgedDirector + { + public string name { get; set; } + } + + public class AlternateIds + { + public string imdb { get; set; } + } + + public class Links + { + public string self { get; set; } + public string alternate { get; set; } + public string cast { get; set; } + public string clips { get; set; } + public string reviews { get; set; } + public string similar { get; set; } + } + + public class RottenTomatoesMovieInfo + { + public int id { get; set; } + public string title { get; set; } + public int year { get; set; } + public List genres { get; set; } + public string mpaa_rating { get; set; } + public int runtime { get; set; } + public string critics_consensus { get; set; } + public ReleaseDates release_dates { get; set; } + public Ratings ratings { get; set; } + public string synopsis { get; set; } + public Posters posters { get; set; } + public List abridged_cast { get; set; } + public List abridged_directors { get; set; } + public string studio { get; set; } + public AlternateIds alternate_ids { get; set; } + public Links links { get; set; } + } +} diff --git a/RottenTomatoesAPI/V1/RottenTomatoesRequest.cs b/RottenTomatoesAPI/V1/RottenTomatoesRequest.cs new file mode 100644 index 0000000..e8784ff --- /dev/null +++ b/RottenTomatoesAPI/V1/RottenTomatoesRequest.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace RottenTomatoes.V1 +{ + public partial class RottenTomatoesRequest + { + public string MovieID { get; set; } + + + //public RottenTomatoesRequest(string _MovieID, string _format, string _type, int _sort, int _limit) + //{ + // MovieID = _MovieID; + // format = _format; + // type = _type; + // sort = _sort; + // limit = _limit; + //} + + public RottenTomatoesRequest(string _MovieID) + { + MovieID = _MovieID; + } + } +} diff --git a/RottenTomatoesAPI/V1/WatJsonDeserializer.cs b/RottenTomatoesAPI/V1/WatJsonDeserializer.cs new file mode 100644 index 0000000..3760583 --- /dev/null +++ b/RottenTomatoesAPI/V1/WatJsonDeserializer.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using RestSharp.Deserializers; + +namespace RottenTomatoes.V1 +{ + public class WatJsonDeserializer : IDeserializer + { + #region IDeserializer Members + + public T Deserialize(RestSharp.IRestResponse response) + { + if (response.Content == null) + return default(T); + + // 2012-07-26 - attempt to handle some of the bad json content, eg Similar Movies for id 80271 containing null values + // amongst the other objects in the results array + // eg ...."vote_average":0.0,"vote_count":0},null,null,{"backdrop_path":null,"id":73736,"original_title":... + // ^^^^ ^^^^ + // Causes "Object reference not set to an instance of an object" exception during deserialization + string astr = @"{""title"":" + response.Content.Substring(1, response.Content.Length - 1); + int pos = astr.IndexOf(@""":{""tmdb_id"""); + astr = astr.Substring(0, pos+1) + @",""movieinfo" + astr.Substring(pos, astr.Length - pos); + response.Content = astr; + + var deserializer = new JsonDeserializer(); + var data = deserializer.Deserialize(response); + + return data; + } + + public string DateFormat { get; set; } + public string Namespace { get; set; } + public string RootElement { get; set; } + + #endregion + } +} diff --git a/RottenTomatoesAPI/packages.config b/RottenTomatoesAPI/packages.config new file mode 100644 index 0000000..1de19f7 --- /dev/null +++ b/RottenTomatoesAPI/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/WatTmdb/Properties/AssemblyInfo.cs b/WatTmdb/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..cda59a0 --- /dev/null +++ b/WatTmdb/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("WatTmdb")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Watway")] +[assembly: AssemblyProduct("WatTmdb")] +[assembly: AssemblyCopyright("Copyright © Watway 2012")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("5b410834-16c6-4953-b6ed-f04c9e9d20a7")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("0.6.0.0")] +[assembly: AssemblyFileVersion("0.6.0.0")] diff --git a/WatTmdb/Tmdb/Tmdb.Async.cs b/WatTmdb/Tmdb/Tmdb.Async.cs new file mode 100644 index 0000000..2326618 --- /dev/null +++ b/WatTmdb/Tmdb/Tmdb.Async.cs @@ -0,0 +1,1210 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using RestSharp; +using System.Net; + +namespace WatTmdb.V3 +{ + public partial class Tmdb + { + #region Process Execution + + private void ProcessAsyncRequest(RestRequest request, Action> callback) + where T : new() + { + var client = new RestClient(BASE_URL); + client.AddHandler("application/json", new WatJsonDeserializer()); + if (Timeout.HasValue) + client.Timeout = Timeout.Value; + +#if !WINDOWS_PHONE + if (Proxy != null) + client.Proxy = Proxy; +#endif + + Error = null; + + //request.AddHeader("Accept", "application/json"); + //request.AddParameter("api_key", ApiKey); + + ++AsyncCount; + var asyncHandle = client.ExecuteAsync(request, resp => + { + --AsyncCount; + var result = new TmdbAsyncResult + { + Data = resp.Data != null ? resp.Data : default(T), + UserState = request.UserState + }; + + ResponseContent = resp.Content; + ResponseHeaders = resp.Headers.ToDictionary(k => k.Name, v => v.Value); + + if (resp.ResponseStatus != ResponseStatus.Completed) + { + if (resp.Content.Contains("status_message")) + result.Error = Deserializer.Deserialize(resp); + else if (resp.ErrorException != null) + throw resp.ErrorException; + else + result.Error = new TmdbError { status_message = resp.Content }; + } + + Error = result.Error; + + callback(result); + }); + } + + private void ProcessAsyncRequestETag(RestRequest request, Action callback) + { + var client = new RestClient(BASE_URL); + if (Timeout.HasValue) + client.Timeout = Timeout.Value; + +#if !WINDOWS_PHONE + if (Proxy != null) + client.Proxy = Proxy; +#endif + + Error = null; + + request.Method = Method.HEAD; + //request.AddHeader("Accept", "application/json"); + //request.AddParameter("api_key", ApiKey); + + var asyncHandle = client.ExecuteAsync(request, resp => + { + ResponseContent = resp.Content; + ResponseHeaders = resp.Headers.ToDictionary(k => k.Name, v => v.Value); + + var result = new TmdbAsyncETagResult + { + ETag = ResponseETag, + UserState = request.UserState + }; + + if (resp.ResponseStatus != ResponseStatus.Completed && resp.ErrorException != null) + throw resp.ErrorException; + + callback(result); + }); + } + + #endregion + + + private static bool CheckQuery(string query, object userState, Action> callback) + where T : class + { + if (string.IsNullOrEmpty(query)) + { + callback(new TmdbAsyncResult + { + Data = null, + Error = new TmdbError { status_message = "Search cannot be empty" }, + UserState = userState + }); + return false; + } + + return true; + } + + #region Configuration + /// + /// Retrieve configuration data from TMDB + /// (http://help.themoviedb.org/kb/api/configuration) + /// + /// User object to include in callback + /// + public void GetConfiguration(object UserState, Action> callback) + { + //ProcessAsyncRequest(BuildGetConfigurationRequest(UserState), callback); + ProcessAsyncRequest(Generator.GetConfiguration(UserState), callback); + } + + public void GetConfigurationETag(object UserState, Action callback) + { + //ProcessAsyncRequestETag(BuildGetConfigurationRequest(UserState), callback); + ProcessAsyncRequestETag(ETagGenerator.GetConfiguration(UserState), callback); + } + #endregion + + + #region Authentication Methods + /// + /// Generate a valid request token for user based authentication. + /// http://docs.themoviedb.apiary.io/#get-%2F3%2Fauthentication%2Ftoken%2Fnew + /// + /// + /// + public void GetAuthToken(object userState, Action> callback) + { + ProcessAsyncRequest(Generator.GetAuthToken(userState), callback); + } + + /// + /// Generate a session id for user based authentication. + /// http://docs.themoviedb.apiary.io/#get-%2F3%2Fauthentication%2Fsession%2Fnew + /// + /// + /// + /// + public void GetAuthSession(string RequestToken, object userState, Action> callback) + { + ProcessAsyncRequest(Generator.GetAuthSession(RequestToken, userState), callback); + } + + /// + /// Generate a Guest Session id + /// http://docs.themoviedb.apiary.io/#get-%2F3%2Fauthentication%2Fguest_session%2Fnew + /// + /// + /// + public void GetGuestSession(object userState, Action> callback) + { + ProcessAsyncRequest(Generator.GetGuestSession(userState), callback); + } + #endregion + + + #region Account Methods + /// + /// Get the basic information for an account. + /// http://docs.themoviedb.apiary.io/#get-%2F3%2Faccount + /// + /// + /// + /// + public void GetAccountInfo(string SessionID, object userState, Action> callback) + { + ProcessAsyncRequest(Generator.GetAccountInfo(SessionID, userState), callback); + } + + /// + /// Get the lists that you have created and marked as a favorite. + /// http://docs.themoviedb.apiary.io/#get-%2F3%2Faccount%2F%7Bid%7D%2Flists + /// + /// + /// + /// + /// + /// + /// + public void GetAccountLists(int AccountID, string SessionID, int page, string language, object userState, Action> callback) + { + ProcessAsyncRequest(Generator.GetAccountLists(AccountID, SessionID, page, language, userState), callback); + } + + /// + /// Get the list of favourite movies for an account + /// http://docs.themoviedb.apiary.io/#get-%2F3%2Faccount%2F%7Bid%7D%2Ffavorite_movies + /// + /// + /// + /// + /// + /// + /// + public void GetAccountFavouriteMovies(int AccountID, string SessionID, int page, string language, object userState, Action> callback) + { + ProcessAsyncRequest(Generator.GetAccountFavouriteMovies(AccountID, SessionID, page, language, userState), callback); + } + + /// + /// Get the list of rated movies for an account + /// http://docs.themoviedb.apiary.io/#get-%2F3%2Faccount%2F%7Bid%7D%2Frated_movies + /// + /// + /// + /// + /// + /// + /// + public void GetAccountRatedMovies(int AccountID, string SessionID, int page, string language, object userState, Action> callback) + { + ProcessAsyncRequest(Generator.GetAccountRatedMovies(AccountID, SessionID, page, language, userState), callback); + } + + /// + /// Get the list of movies on an accounts watchlist + /// http://docs.themoviedb.apiary.io/#get-%2F3%2Faccount%2F%7Bid%7D%2Fmovie_watchlist + /// + /// + /// + /// + /// + /// + /// + public void GetAccountWatchlistMovies(int AccountID, string SessionID, int page, string language, object userState, Action> callback) + { + ProcessAsyncRequest(Generator.GetAccountWatchlistMovies(AccountID, SessionID, page, language, userState), callback); + } + #endregion + + + #region Search + /// + /// Search for movies that are listed in TMDB + /// (http://help.themoviedb.org/kb/api/search-movies) + /// + /// Is your search text. + /// Result page to retrieve (1 based) + /// optional - ISO 639-1 language code + /// optional - include adult items in your search, (Default=false) + /// optional - to get a closer result + /// User object to include in callback + /// + public void SearchMovie(string query, int page, string language, bool? includeAdult, int? year, object UserState, Action> callback) + { + if (CheckQuery(query, UserState, callback) == false) + return; + + //ProcessAsyncRequest(BuildSearchMovieRequest(query, page, language, includeAdult, year, UserState), callback); + ProcessAsyncRequest(Generator.SearchMovie(query, page, language, includeAdult, year, UserState), callback); + } + + /// + /// Search for movies that are listed in TMDB + /// (http://help.themoviedb.org/kb/api/search-movies) + /// + /// Is your search text. + /// Result page to retrieve (1 based) + /// User object to include in callback + /// + public void SearchMovie(string query, int page, object UserState, Action> callback) + { + SearchMovie(query, page, Language, null, null, UserState, callback); + } + + /// + /// Search for people that are listed in TMDB. + /// (http://help.themoviedb.org/kb/api/search-people) + /// + /// Is your search text. + /// Result page to retrieve (1 based) + /// optional - ISO 639-1 language code + /// User object to include in callback + /// + public void SearchPerson(string query, int page, string language, object UserState, Action> callback) + { + if (CheckQuery(query, UserState, callback) == false) + return; + + //ProcessAsyncRequest(BuildSearchPersonRequest(query, page, language, UserState), callback); + ProcessAsyncRequest(Generator.SearchPerson(query, page, language, UserState), callback); + } + + /// + /// Search for people that are listed in TMDB. + /// (http://help.themoviedb.org/kb/api/search-people) + /// + /// Is your search text. + /// Result page to retrieve (1 based) + /// User object to include in callback + /// + public void SearchPerson(string query, int page, object UserState, Action> callback) + { + SearchPerson(query, page, Language, UserState, callback); + } + + /// + /// Search for production companies that are part of TMDB. + /// (http://help.themoviedb.org/kb/api/search-companies) + /// + /// Is your search text. + /// Result page to retrieve (1 based) + /// User object to include in callback + /// + public void SearchCompany(string query, int page, object UserState, Action> callback) + { + if (CheckQuery(query, UserState, callback) == false) + return; + + //ProcessAsyncRequest(BuildSearchCompanyRequest(query, page, UserState), callback); + ProcessAsyncRequest(Generator.SearchCompany(query, page, UserState), callback); + } + + /// + /// Search for keywords by name. + /// http://docs.themoviedb.apiary.io/#get-%2F3%2Fsearch%2Fkeyword + /// + /// + /// + /// + /// + public void SearchKeyword(string query, int page, object UserState, Action> callback) + { + if (CheckQuery(query, UserState, callback) == false) + return; + + ProcessAsyncRequest(Generator.SearchKeyword(query, page, UserState), callback); + } + + /// + /// Search for collections by name + /// http://docs.themoviedb.apiary.io/#get-%2F3%2Fsearch%2Fcollection + /// + /// + /// + /// + /// + /// + public void SearchCollection(string query, int page, string language, object UserState, Action> callback) + { + if (CheckQuery(query, UserState, callback) == false) + return; + + ProcessAsyncRequest(Generator.SearchCollection(query, page, language, UserState), callback); + } + + #endregion + + + #region Collections + /// + /// Get all of the basic information about a movie collection. + /// (http://help.themoviedb.org/kb/api/collection-info) + /// + /// Collection ID, available in TmdbMovie::belongs_to_collection + /// optional - ISO 639-1 language code + /// User object to include in callback + /// + public void GetCollectionInfo(int CollectionID, string language, object UserState, Action> callback) + { + //ProcessAsyncRequest(BuildGetCollectionInfoRequest(CollectionID, language, UserState), callback); + ProcessAsyncRequest(Generator.GetCollectionInfo(CollectionID, language, UserState), callback); + } + + public void GetCollectionInfoETag(int CollectionID, string language, object UserState, Action callback) + { + //ProcessAsyncRequestETag(BuildGetCollectionInfoRequest(CollectionID, language, UserState), callback); + ProcessAsyncRequestETag(ETagGenerator.GetCollectionInfo(CollectionID, language, UserState), callback); + } + + /// + /// Get all of the basic information about a movie collection. + /// (http://help.themoviedb.org/kb/api/collection-info) + /// + /// Collection ID, available in TmdbMovie::belongs_to_collection + /// User object to include in callback + /// + public void GetCollectionInfo(int CollectionID, object UserState, Action> callback) + { + GetCollectionInfo(CollectionID, Language, UserState, callback); + } + + public void GetCollectionInfoETag(int CollectionID, object UserState, Action callback) + { + GetCollectionInfoETag(CollectionID, Language, UserState, callback); + } + + /// + /// Get all the images for a movie collection + /// http://help.themoviedb.org/kb/api/collection-images + /// + /// Collection ID, available in TmdbMovie::belongs_to_collection + /// optional - ISO 639-1 language code + /// User object to include in callback + /// + public void GetCollectionImages(int CollectionID, string language, object UserState, Action> callback) + { + //ProcessAsyncRequest(BuildGetCollectionImagesRequest(CollectionID, language, UserState), callback); + ProcessAsyncRequest(Generator.GetCollectionImages(CollectionID, language, UserState), callback); + } + + public void GetCollectionImagesETag(int CollectionID, string language, object UserState, Action callback) + { + //ProcessAsyncRequestETag(BuildGetCollectionImagesRequest(CollectionID, language, UserState), callback); + ProcessAsyncRequestETag(ETagGenerator.GetCollectionImages(CollectionID, language, UserState), callback); + } + + /// + /// Get all the images for a movie collection + /// http://help.themoviedb.org/kb/api/collection-images + /// + /// Collection ID, available in TmdbMovie::belongs_to_collection + /// User object to include in callback + /// + public void GetCollectionImages(int CollectionID, object UserState, Action> callback) + { + GetCollectionImages(CollectionID, Language, UserState, callback); + } + + public void GetCollectionImagesETag(int CollectionID, object UserState, Action callback) + { + GetCollectionImagesETag(CollectionID, Language, UserState, callback); + } + #endregion + + + #region Movie Info + /// + /// Retrieve all the basic movie information for a particular movie by TMDB reference. + /// (http://help.themoviedb.org/kb/api/movie-info) + /// + /// TMDB movie id + /// optional - ISO 639-1 language code + /// User object to include in callback + /// + public void GetMovieInfo(int MovieID, string language, object UserState, Action> callback) + { + //ProcessAsyncRequest(BuildGetMovieInfoRequest(MovieID, language, UserState), callback); + ProcessAsyncRequest(Generator.GetMovieInfo(MovieID, language, UserState), callback); + } + + public void GetMovieInfoETag(int MovieID, string language, object UserState, Action callback) + { + //ProcessAsyncRequestETag(BuildGetMovieInfoRequest(MovieID, language, UserState), callback); + ProcessAsyncRequestETag(ETagGenerator.GetMovieInfo(MovieID, language, UserState), callback); + } + + /// + /// Retrieve all the basic movie information for a particular movie by TMDB reference. + /// (http://help.themoviedb.org/kb/api/movie-info) + /// + /// TMDB movie id + /// User object to include in callback + /// + public void GetMovieInfo(int MovieID, object UserState, Action> callback) + { + GetMovieInfo(MovieID, Language, UserState, callback); + } + + public void GetMovieInfoETag(int MovieID, object UserState, Action callback) + { + GetMovieInfoETag(MovieID, Language, UserState, callback); + } + + /// + /// Retrieve all the basic movie information for a particular movie by IMDB reference. + /// (http://help.themoviedb.org/kb/api/movie-info) + /// + /// IMDB movie id + /// + public void GetMovieByIMDB(string IMDB_ID, string language, object UserState, Action> callback) + { + if (CheckQuery(IMDB_ID, UserState, callback) == false) + return; + + //ProcessAsyncRequest(BuildGetMovieByIMDBRequest(IMDB_ID, language, UserState), callback); + ProcessAsyncRequest(Generator.GetMovieByIMDB(IMDB_ID, language, UserState), callback); + } + + public void GetMovieByIMDB(string IMDB_ID, object UserState, Action> callback) + { + GetMovieByIMDB(IMDB_ID, Language, UserState, callback); + } + + /// + /// Get list of all the alternative titles for a particular movie. + /// (http://help.themoviedb.org/kb/api/movie-alternative-titles) + /// + /// TMDB movie id + /// ISO 3166-1 country code (optional) + /// User object to include in callback + /// + public void GetMovieAlternateTitles(int MovieID, string Country, object UserState, Action> callback) + { + //ProcessAsyncRequest(BuildGetMovieAlternateTitlesRequest(MovieID, Country, UserState), callback); + ProcessAsyncRequest(Generator.GetMovieAlternateTitles(MovieID, Country, UserState), callback); + } + + public void GetMovieAlternateTitlesETag(int MovieID, string Country, object UserState, Action callback) + { + //ProcessAsyncRequestETag(BuildGetMovieAlternateTitlesRequest(MovieID, Country, UserState), callback); + ProcessAsyncRequestETag(ETagGenerator.GetMovieAlternateTitles(MovieID, Country, UserState), callback); + } + + /// + /// Get list of all the cast information for a particular movie. + /// (http://help.themoviedb.org/kb/api/movie-casts) + /// + /// TMDB movie id + /// User object to include in callback + /// + public void GetMovieCast(int MovieID, object UserState, Action> callback) + { + //ProcessAsyncRequest(BuildGetMovieCastRequest(MovieID, UserState), callback); + ProcessAsyncRequest(Generator.GetMovieCast(MovieID, UserState), callback); + } + + public void GetMovieCastETag(int MovieID, object UserState, Action callback) + { + //ProcessAsyncRequestETag(BuildGetMovieCastRequest(MovieID, UserState), callback); + ProcessAsyncRequestETag(ETagGenerator.GetMovieCast(MovieID, UserState), callback); + } + + /// + /// Get list of all the images for a particular movie. + /// (http://help.themoviedb.org/kb/api/movie-images) + /// + /// TMDB movie id + /// optional - ISO 639-1 language code + /// User object to include in callback + /// + public void GetMovieImages(int MovieID, string language, object UserState, Action> callback) + { + //ProcessAsyncRequest(BuildGetMovieImagesRequest(MovieID, language, UserState), callback); + ProcessAsyncRequest(Generator.GetMovieImages(MovieID, language, UserState), callback); + } + + public void GetMovieImagesETag(int MovieID, string language, object UserState, Action callback) + { + //ProcessAsyncRequestETag(BuildGetMovieImagesRequest(MovieID, language, UserState), callback); + ProcessAsyncRequestETag(ETagGenerator.GetMovieImages(MovieID, language, UserState), callback); + } + + /// + /// Get list of all the images for a particular movie. + /// (http://help.themoviedb.org/kb/api/movie-images) + /// + /// TMDB movie id + /// User object to include in callback + /// + public void GetMovieImages(int MovieID, object UserState, Action> callback) + { + GetMovieImages(MovieID, Language, UserState, callback); + } + + public void GetMovieImagesETag(int MovieID, object UserState, Action callback) + { + GetMovieImagesETag(MovieID, Language, UserState, callback); + } + + /// + /// Get list of all the keywords that have been added to a particular movie. Only English keywords exist currently. + /// (http://help.themoviedb.org/kb/api/movie-keywords) + /// + /// TMDB movie id + /// User object to include in callback + /// + public void GetMovieKeywords(int MovieID, object UserState, Action> callback) + { + //ProcessAsyncRequest(BuildGetMovieKeywordsRequest(MovieID, UserState), callback); + ProcessAsyncRequest(Generator.GetMovieKeywords(MovieID, UserState), callback); + } + + public void GetMovieKeywordsETag(int MovieID, object UserState, Action callback) + { + //ProcessAsyncRequestETag(BuildGetMovieKeywordsRequest(MovieID, UserState), callback); + ProcessAsyncRequestETag(ETagGenerator.GetMovieKeywords(MovieID, UserState), callback); + } + + /// + /// Get all the release and certification data in TMDB for a particular movie + /// (http://help.themoviedb.org/kb/api/movie-release-info) + /// + /// TMDB movie id + /// User object to include in callback + /// + public void GetMovieReleases(int MovieID, object UserState, Action> callback) + { + //ProcessAsyncRequest(BuildGetMovieReleasesRequest(MovieID, UserState), callback); + ProcessAsyncRequest(Generator.GetMovieReleases(MovieID, UserState), callback); + } + + public void GetMovieReleasesETag(int MovieID, object UserState, Action callback) + { + //ProcessAsyncRequestETag(BuildGetMovieReleasesRequest(MovieID, UserState), callback); + ProcessAsyncRequestETag(ETagGenerator.GetMovieReleases(MovieID, UserState), callback); + } + + /// + /// Get list of trailers for a particular movie. + /// (http://help.themoviedb.org/kb/api/movie-trailers) + /// + /// TMDB movie id + /// optional - ISO 639-1 language code + /// User object to include in callback + /// + public void GetMovieTrailers(int MovieID, string language, object UserState, Action> callback) + { + //ProcessAsyncRequest(BuildGetMovieTrailersRequest(MovieID, language, UserState), callback); + ProcessAsyncRequest(Generator.GetMovieTrailers(MovieID, language, UserState), callback); + } + + public void GetMovieTrailersETag(int MovieID, string language, object UserState, Action callback) + { + //ProcessAsyncRequestETag(BuildGetMovieTrailersRequest(MovieID, language, UserState), callback); + ProcessAsyncRequestETag(ETagGenerator.GetMovieTrailers(MovieID, language, UserState), callback); + } + + /// + /// Get list of trailers for a particular movie. + /// (http://help.themoviedb.org/kb/api/movie-trailers) + /// + /// TMDB movie id + /// User object to include in callback + /// + public void GetMovieTrailers(int MovieID, object UserState, Action> callback) + { + GetMovieTrailers(MovieID, Language, UserState, callback); + } + + public void GetMovieTrailersETag(int MovieID, object UserState, Action callback) + { + GetMovieTrailersETag(MovieID, Language, UserState, callback); + } + + /// + /// Get list of all available translations for a specific movie. + /// (http://help.themoviedb.org/kb/api/movie-translations) + /// + /// TMDB movie id + /// + /// User object to include in callback + /// + public void GetMovieTranslations(int MovieID, object UserState, Action> callback) + { + //ProcessAsyncRequest(BuildGetMovieTranslationsRequest(MovieID, UserState), callback); + ProcessAsyncRequest(Generator.GetMovieTranslations(MovieID, UserState), callback); + } + + public void GetMovieTranslationsETag(int MovieID, object UserState, Action callback) + { + //ProcessAsyncRequestETag(BuildGetMovieTranslationsRequest(MovieID, UserState), callback); + ProcessAsyncRequestETag(ETagGenerator.GetMovieTranslations(MovieID, UserState), callback); + } + + /// + /// Get the lists that the movie belongs to. + /// http://docs.themoviedb.apiary.io/#get-%2F3%2Fmovie%2F%7Bid%7D%2Flists + /// + /// + /// + /// + /// + /// + public void GetMovieLists(int MovieID, int page, string language, object UserState, Action> callback) + { + ProcessAsyncRequest(Generator.GetMovieLists(MovieID, page, language, UserState), callback); + } + + /// + /// Get list of changes for a specific movie, grouped by key and ordered by date in descending order. + /// (http://docs.themoviedb.apiary.io/#get-%2F3%2Fmovie%2F%7Bid%7D%2Fchanges) + /// + /// + /// + /// + public void GetMovieChanges(int MovieID, object userState, Action> callback) + { + ProcessAsyncRequest(Generator.GetMovieChanges(MovieID, userState), callback); + } + + public void GetMovieChangesETag(int MovieID, object userState, Action callback) + { + ProcessAsyncRequestETag(ETagGenerator.GetMovieChanges(MovieID, userState), callback); + } + + /// + /// Get list of similar movies for a particular movie. + /// (http://help.themoviedb.org/kb/api/movie-similar-movies) + /// + /// TMDB movie id + /// Result page to retrieve (1 based) + /// optional - ISO 639-1 language code + /// User object to include in callback + /// + public void GetSimilarMovies(int MovieID, int page, string language, object UserState, Action> callback) + { + //ProcessAsyncRequest(BuildGetSimilarMoviesRequest(MovieID, page, language, UserState), callback); + ProcessAsyncRequest(Generator.GetSimilarMovies(MovieID, page, language, UserState), callback); + } + + /// + /// Get list of similar movies for a particular movie. + /// (http://help.themoviedb.org/kb/api/movie-similar-movies) + /// + /// TMDB movie id + /// Result page to retrieve (1 based) + /// User object to include in callback + /// + public void GetSimilarMovies(int MovieID, int page, object UserState, Action> callback) + { + GetSimilarMovies(MovieID, page, Language, UserState, callback); + } + + /// + /// Get list of movies that are arriving to theatres in the next few weeks. + /// (http://help.themoviedb.org/kb/api/upcoming-movies) + /// + /// Result page to retrieve (1 based) + /// optional - ISO 639-1 language code + /// User object to include in callback + /// + public void GetUpcomingMovies(int page, string language, object UserState, Action> callback) + { + //ProcessAsyncRequest(BuildGetUpcomingMoviesRequest(page, language, UserState), callback); + ProcessAsyncRequest(Generator.GetUpcomingMovies(page, language, UserState), callback); + } + + /// + /// Get list of movies that are arriving to theatres in the next few weeks. + /// (http://help.themoviedb.org/kb/api/upcoming-movies) + /// + /// Result page to retrieve (1 based) + /// User object to include in callback + /// + public void GetUpcomingMovies(int page, object UserState, Action> callback) + { + GetUpcomingMovies(page, Language, UserState, callback); + } + + #endregion + + + #region Person Info + /// + /// Get all of the basic information for a person. + /// (http://help.themoviedb.org/kb/api/person-info) + /// + /// Person ID + /// User object to include in callback + /// + public void GetPersonInfo(int PersonID, object UserState, Action> callback) + { + //ProcessAsyncRequest(BuildGetPersonInfoRequest(PersonID, UserState), callback); + ProcessAsyncRequest(Generator.GetPersonInfo(PersonID, UserState), callback); + } + + public void GetPersonInfoETag(int PersonID, object UserState, Action callback) + { + //ProcessAsyncRequestETag(BuildGetPersonInfoRequest(PersonID, UserState), callback); + ProcessAsyncRequestETag(ETagGenerator.GetPersonInfo(PersonID, UserState), callback); + } + + /// + /// Get list of cast and crew information for a person. + /// (http://help.themoviedb.org/kb/api/person-credits) + /// + /// Person ID + /// optional - ISO 639-1 language code + /// User object to include in callback + /// + public void GetPersonCredits(int PersonID, string language, object UserState, Action> callback) + { + //ProcessAsyncRequest(BuildGetPersonCreditsRequest(PersonID, language, UserState), callback); + ProcessAsyncRequest(Generator.GetPersonCredits(PersonID, language, UserState), callback); + } + + public void GetPersonCreditsETag(int PersonID, string language, object UserState, Action callback) + { + //ProcessAsyncRequestETag(BuildGetPersonCreditsRequest(PersonID, language, UserState), callback); + ProcessAsyncRequestETag(ETagGenerator.GetPersonCredits(PersonID, language, UserState), callback); + } + + /// + /// Get list of cast and crew information for a person. + /// (http://help.themoviedb.org/kb/api/person-credits) + /// + /// Person ID + /// User object to include in callback + /// + public void GetPersonCredits(int PersonID, object UserState, Action> callback) + { + GetPersonCredits(PersonID, Language, UserState, callback); + } + + public void GetPersonCreditsETag(int PersonID, object UserState, Action callback) + { + GetPersonCreditsETag(PersonID, Language, UserState, callback); + } + + /// + /// Get list of images for a person. + /// (http://help.themoviedb.org/kb/api/person-images) + /// + /// Person ID + /// User object to include in callback + /// + public void GetPersonImages(int PersonID, object UserState, Action> callback) + { + //ProcessAsyncRequest(BuildGetPersonImagesRequest(PersonID, UserState), callback); + ProcessAsyncRequest(Generator.GetPersonImages(PersonID, UserState), callback); + } + + public void GetPersonImagesETag(int PersonID, object UserState, Action callback) + { + //ProcessAsyncRequestETag(BuildGetPersonImagesRequest(PersonID, UserState), callback); + ProcessAsyncRequestETag(ETagGenerator.GetPersonImages(PersonID, UserState), callback); + } + + /// + /// Get the list of changes for a specific person. Changes are grouped by key and ordered by date in descending order. + /// (http://docs.themoviedb.apiary.io/#get-%2F3%2Fperson%2F%7Bid%7D%2Fchanges) + /// + /// + /// + /// + public void GetPersonChanges(int PersonID, object userState, Action> callback) + { + ProcessAsyncRequest(Generator.GetPersonChanges(PersonID, userState), callback); + } + + public void GetPersonChangesETag(int PersonID, object userState, Action callback) + { + ProcessAsyncRequestETag(ETagGenerator.GetPersonChanges(PersonID, userState), callback); + } + #endregion + + + #region Miscellaneous Movie + /// + /// Get the newest movie added to the TMDB. + /// (http://help.themoviedb.org/kb/api/latest-movie) + /// + /// User object to include in callback + /// + /// + public void GetLatestMovie(object UserState, Action> callback) + { + //ProcessAsyncRequest(BuildGetLatestMovieRequest(UserState), callback); + ProcessAsyncRequest(Generator.GetLatestMovies(UserState), callback); + } + + public void GetLatestMovieETag(object UserState, Action callback) + { + //ProcessAsyncRequestETag(BuildGetLatestMovieRequest(UserState), callback); + ProcessAsyncRequestETag(ETagGenerator.GetLatestMovies(UserState), callback); + } + + /// + /// Get the list of movies currently in theatres. Response will contain 20 movies per page. + /// (http://help.themoviedb.org/kb/api/now-playing-movies) + /// + /// Result page to retrieve (1 based) + /// optional - ISO 639-1 language code + /// User object to include in callback + /// + public void GetNowPlayingMovies(int page, string language, object UserState, Action> callback) + { + //ProcessAsyncRequest(BuildGetNowPlayingMoviesRequest(page, language, UserState), callback); + ProcessAsyncRequest(Generator.GetNowPlayingMovies(page, language, UserState), callback); + } + + public void GetNowPlayingMoviesETag(int page, string language, object UserState, Action callback) + { + //ProcessAsyncRequestETag(BuildGetNowPlayingMoviesRequest(page, language, UserState), callback); + ProcessAsyncRequestETag(ETagGenerator.GetNowPlayingMovies(page, language, UserState), callback); + } + + /// + /// Get the list of movies currently in theatres. Response will contain 20 movies per page. + /// (http://help.themoviedb.org/kb/api/now-playing-movies) + /// + /// Result page to retrieve (1 based) + /// User object to include in callback + /// + public void GetNowPlayingMovies(int page, object UserState, Action> callback) + { + GetNowPlayingMovies(page, Language, UserState, callback); + } + + public void GetNowPlayingMoviesETag(int page, object UserState, Action callback) + { + GetNowPlayingMoviesETag(page, Language, UserState, callback); + } + + /// + /// Get the daily popularity list of movies. Response will contain 20 movies per page. + /// (http://help.themoviedb.org/kb/api/popular-movie-list) + /// + /// Result page to retrieve (1 based) + /// optional - ISO 639-1 language code + /// User object to include in callback + /// + public void GetPopularMovies(int page, string language, object UserState, Action> callback) + { + //ProcessAsyncRequest(BuildGetPopularMoviesRequest(page, language, UserState), callback); + ProcessAsyncRequest(Generator.GetPopularMovies(page, language, UserState), callback); + } + + public void GetPopularMoviesETag(int page, string language, object UserState, Action callback) + { + //ProcessAsyncRequestETag(BuildGetPopularMoviesRequest(page, language, UserState), callback); + ProcessAsyncRequestETag(ETagGenerator.GetPopularMovies(page, language, UserState), callback); + } + + /// + /// Get the daily popularity list of movies. Response will contain 20 movies per page. + /// (http://help.themoviedb.org/kb/api/popular-movie-list) + /// + /// Result page to retrieve (1 based) + /// User object to include in callback + /// + public void GetPopularMovies(int page, object UserState, Action> callback) + { + GetPopularMovies(page, Language, UserState, callback); + } + + public void GetPopularMoviesETag(int page, object UserState, Action callback) + { + GetPopularMoviesETag(page, Language, UserState, callback); + } + + /// + /// Get list of movies that have over 10 votes on TMDB. Response will contain 20 movies per page. + /// (http://help.themoviedb.org/kb/api/top-rated-movies) + /// + /// Result page to retrieve (1 based) + /// optional - ISO 639-1 language code + /// User object to include in callback + /// + public void GetTopRatedMovies(int page, string language, object UserState, Action> callback) + { + //ProcessAsyncRequest(BuildGetTopRatedMoviesRequest(page, language, UserState), callback); + ProcessAsyncRequest(Generator.GetTopRatedMovies(page, language, UserState), callback); + } + + public void GetTopRatedMoviesETag(int page, string language, object UserState, Action callback) + { + //ProcessAsyncRequestETag(BuildGetTopRatedMoviesRequest(page, language, UserState), callback); + ProcessAsyncRequestETag(ETagGenerator.GetTopRatedMovies(page, language, UserState), callback); + } + + /// + /// Get list of movies that have over 10 votes on TMDB. Response will contain 20 movies per page. + /// (http://help.themoviedb.org/kb/api/top-rated-movies) + /// + /// Result page to retrieve (1 based) + /// User object to include in callback + /// + public void GetTopRatedMovies(int page, object UserState, Action> callback) + { + GetTopRatedMovies(page, Language, UserState, callback); + } + + public void GetTopRatedMoviesETag(int page, object UserState, Action callback) + { + GetTopRatedMoviesETag(page, Language, UserState, callback); + } + + #endregion + + + #region Lists Methods + + /// + /// Get a list by id + /// http://docs.themoviedb.apiary.io/#get-%2F3%2Flist%2F%7Bid%7D + /// + /// + /// + /// + public void GetList(string ListID, object UserState, Action> callback) + { + ProcessAsyncRequest(Generator.GetList(ListID, UserState), callback); + } + + #endregion + + + #region Company Info + /// + /// Get basic information about a production company from TMDB. + /// (http://help.themoviedb.org/kb/api/company-info) + /// + /// Company ID + /// User object to include in callback + /// + public void GetCompanyInfo(int CompanyID, object UserState, Action> callback) + { + //ProcessAsyncRequest(BuildGetCompanyInfoRequest(CompanyID, UserState), callback); + ProcessAsyncRequest(Generator.GetCompanyInfo(CompanyID, UserState), callback); + } + + public void GetCompanyInfoETag(int CompanyID, object UserState, Action callback) + { + //ProcessAsyncRequestETag(BuildGetCompanyInfoRequest(CompanyID, UserState), callback); + ProcessAsyncRequestETag(ETagGenerator.GetCompanyInfo(CompanyID, UserState), callback); + } + + /// + /// Get list of movies associated with a company. Response will contain 20 movies per page. + /// (http://help.themoviedb.org/kb/api/company-movies) + /// + /// Company ID + /// Result page to retrieve (1 based) + /// optional - ISO 639-1 language code + /// User object to include in callback + /// + public void GetCompanyMovies(int CompanyID, int page, string language, object UserState, Action> callback) + { + //ProcessAsyncRequest(BuildGetCompanyMoviesRequest(CompanyID, page, language, UserState), callback); + ProcessAsyncRequest(Generator.GetCompanyMovies(CompanyID, page, language, UserState), callback); + } + + public void GetCompanyMoviesETag(int CompanyID, int page, string language, object UserState, Action callback) + { + //ProcessAsyncRequestETag(BuildGetCompanyMoviesRequest(CompanyID, page, language, UserState), callback); + ProcessAsyncRequestETag(ETagGenerator.GetCompanyMovies(CompanyID, page, language, UserState), callback); + } + + /// + /// Get list of movies associated with a company. Response will contain 20 movies per page. + /// (http://help.themoviedb.org/kb/api/company-movies) + /// + /// Company ID + /// Result page to retrieve (1 based) + /// User object to include in callback + /// + public void GetCompanyMovies(int CompanyID, int page, object UserState, Action> callback) + { + GetCompanyMovies(CompanyID, page, Language, UserState, callback); + } + + public void GetCompanyMoviesETag(int CompanyID, int page, object UserState, Action callback) + { + GetCompanyMoviesETag(CompanyID, page, Language, UserState, callback); + } + #endregion + + + #region Genre Info + /// + /// Get list of genres used in TMDB. The ids will correspond to those found in movie calls. + /// (http://help.themoviedb.org/kb/api/genre-list) + /// + /// optional - ISO 639-1 language code + /// User object to include in callback + /// + public void GetGenreList(string language, object UserState, Action> callback) + { + //ProcessAsyncRequest(BuildGetGenreListRequest(language, UserState), callback); + ProcessAsyncRequest(Generator.GetGenreList(language, UserState), callback); + } + + public void GetGenreListETag(string language, object UserState, Action callback) + { + //ProcessAsyncRequestETag(BuildGetGenreListRequest(language, UserState), callback); + ProcessAsyncRequestETag(ETagGenerator.GetGenreList(language, UserState), callback); + } + + /// + /// Get list of genres used in TMDB. The ids will correspond to those found in movie calls. + /// (http://help.themoviedb.org/kb/api/genre-list) + /// + /// User object to include in callback + /// + public void GetGenreList(object UserState, Action> callback) + { + GetGenreList(Language, UserState, callback); + } + + public void GetGenreListETag(object UserState, Action callback) + { + GetGenreListETag(Language, UserState, callback); + } + + /// + /// Get list of movies in a Genre. Note that only movies with more than 10 votes get listed. + /// (http://help.themoviedb.org/kb/api/genre-movies) + /// + /// TMDB Genre ID + /// Result page to retrieve (1 based) + /// optional - ISO 639-1 language code + /// User object to include in callback + /// + public void GetGenreMovies(int GenreID, int page, string language, object UserState, Action> callback) + { + //ProcessAsyncRequest(BuildGetGenreMoviesRequest(GenreID, page, language, UserState), callback); + ProcessAsyncRequest(Generator.GetGenreMovies(GenreID, page, language, UserState), callback); + } + + public void GetGenreMoviesETag(int GenreID, int page, string language, object UserState, Action callback) + { + //ProcessAsyncRequestETag(BuildGetGenreMoviesRequest(GenreID, page, language, UserState), callback); + ProcessAsyncRequestETag(ETagGenerator.GetGenreMovies(GenreID, page, language, UserState), callback); + } + + /// + /// Get list of movies in a Genre. Note that only movies with more than 10 votes get listed. + /// (http://help.themoviedb.org/kb/api/genre-movies) + /// + /// TMDB Genre ID + /// Result page to retrieve (1 based) + /// User object to include in callback + /// + public void GetGenreMovies(int GenreID, int page, object UserState, Action> callback) + { + GetGenreMovies(GenreID, page, Language, UserState, callback); + } + + public void GetGenreMoviesETag(int GenreID, int page, object UserState, Action callback) + { + GetGenreMoviesETag(GenreID, page, Language, UserState, callback); + } + #endregion + + + #region Keyword methods + + /// + /// Get the basic information for a specific keyword id. + /// http://docs.themoviedb.apiary.io/#get-%2F3%2Fkeyword%2F%7Bid%7D + /// + /// + /// + /// + public void GetKeyword(int KeywordID, object UserState, Action> callback) + { + ProcessAsyncRequest(Generator.GetKeyword(KeywordID, UserState), callback); + } + + /// + /// Get the list of movies for a particular keyword by id. + /// http://docs.themoviedb.apiary.io/#get-%2F3%2Fkeyword%2F%7Bid%7D%2Fmovies + /// + /// + /// + /// + /// + /// + public void GetKeywordMovies(int KeywordID, int page, string Language, object UserState, Action> callback) + { + ProcessAsyncRequest(Generator.GetKeywordMovies(KeywordID, page, Language, UserState), callback); + } + + #endregion + + + #region Changes methods + + /// + /// Get a list of movie ids that have been edited. By default results include the last 24 hours with + /// 100 items per page. Then use the method GetMovieChanges to get the data that has changed. + /// (http://docs.themoviedb.apiary.io/#get-%2F3%2Fmovie%2Fchanges) + /// + /// + /// + /// + /// + /// + public void GetChangesByMovie(int page, DateTime? StartDate, DateTime? EndDate, object userState, Action> callback) + { + ProcessAsyncRequest(Generator.GetChangesByMovie(page, StartDate, EndDate, userState), callback); + } + + /// + /// Get a list of person ids that have been edited. By default results include the last 24 hours with + /// 100 items per page. Then use the method GetPersonChanges to get the data that has changed. + /// (http://docs.themoviedb.apiary.io/#get-%2F3%2Fperson%2Fchanges) + /// + /// + /// + /// + /// + /// + public void GetChangesByPerson(int page, DateTime? StartDate, DateTime? EndDate, object userState, Action> callback) + { + ProcessAsyncRequest(Generator.GetChangesByPerson(page, StartDate, EndDate, userState), callback); + } + + #endregion + } +} diff --git a/WatTmdb/Tmdb/Tmdb.Sync.cs b/WatTmdb/Tmdb/Tmdb.Sync.cs new file mode 100644 index 0000000..f15788e --- /dev/null +++ b/WatTmdb/Tmdb/Tmdb.Sync.cs @@ -0,0 +1,885 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using RestSharp; +using System.Net; + +namespace WatTmdb.V3 +{ + public partial class Tmdb + { + #region Process Execution + + private T ProcessRequest(RestRequest request) + where T : new() + { + var client = new RestClient(BASE_URL); + client.AddHandler("application/json", new WatJsonDeserializer()); + + if (Timeout.HasValue) + client.Timeout = Timeout.Value; + +#if !WINDOWS_PHONE + if (Proxy != null) + client.Proxy = Proxy; +#endif + + Error = null; + + //request.AddHeader("Accept", "application/json"); + //request.AddParameter("api_key", ApiKey); + + var resp = client.Execute(request); + + ResponseContent = resp.Content; + ResponseHeaders = resp.Headers.ToDictionary(k => k.Name, v => v.Value); + + if (resp.ResponseStatus == ResponseStatus.Completed) + { + if (resp.Content.Contains("status_message")) + Error = Deserializer.Deserialize(resp); + + return resp.Data; + } + else + { + if (resp.Content.Contains("status_message")) + Error = Deserializer.Deserialize(resp); + else if (resp.ErrorException != null) + throw resp.ErrorException; + else + Error = new TmdbError { status_message = resp.ErrorMessage }; + } + + return default(T); + } + + private string ProcessRequestETag(RestRequest request) + { + var client = new RestClient(BASE_URL); + if (Timeout.HasValue) + client.Timeout = Timeout.Value; + +#if !WINDOWS_PHONE + if (Proxy != null) + client.Proxy = Proxy; +#endif + Error = null; + + request.Method = Method.HEAD; + //request.AddHeader("Accept", "application/json"); + //request.AddParameter("api_key", ApiKey); + + var resp = client.Execute(request); + ResponseContent = resp.Content; + ResponseHeaders = resp.Headers.ToDictionary(k => k.Name, v => v.Value); + + if (resp.ResponseStatus != ResponseStatus.Completed && resp.ErrorException != null) + throw resp.ErrorException; + + return this.ResponseETag; + } + + #endregion + + + #region Configuration + /// + /// Retrieve configuration data from TMDB + /// (http://help.themoviedb.org/kb/api/configuration) + /// + /// + public TmdbConfiguration GetConfiguration() + { + //return ProcessRequest(BuildGetConfigurationRequest()); + return ProcessRequest(Generator.GetConfiguration()); + } + + public string GetConfigurationETag() + { + //return ProcessRequestETag(BuildGetConfigurationRequest()); + return ProcessRequestETag(Generator.GetConfiguration()); + } + + #endregion + + + #region Authentication + + /// + /// Generate a valid request token for user based authentication. + /// http://docs.themoviedb.apiary.io/#get-%2F3%2Fauthentication%2Ftoken%2Fnew + /// + /// + public TmdbAuthToken GetAuthToken() + { + return ProcessRequest(Generator.GetAuthToken()); + } + + /// + /// Generate a session id for user based authentication. + /// http://docs.themoviedb.apiary.io/#get-%2F3%2Fauthentication%2Fsession%2Fnew + /// + /// + /// + public TmdbAuthSession GetAuthSession(string RequestToken) + { + return ProcessRequest(Generator.GetAuthSession(RequestToken)); + } + + /// + /// Generate a Guest Session id + /// http://docs.themoviedb.apiary.io/#get-%2F3%2Fauthentication%2Fguest_session%2Fnew + /// + /// + public TmdbGuestSession GetGuestSession() + { + return ProcessRequest(Generator.GetGuestSession()); + } + + #endregion + + + #region Account Methods + + /// + /// Get the basic information for an account. + /// http://docs.themoviedb.apiary.io/#get-%2F3%2Faccount + /// + /// + /// + public TmdbAccount GetAccountInfo(string SessionID) + { + return ProcessRequest(Generator.GetAccountInfo(SessionID)); + } + + /// + /// Get the lists that you have created and marked as a favorite. + /// http://docs.themoviedb.apiary.io/#get-%2F3%2Faccount%2F%7Bid%7D%2Flists + /// + /// + /// + /// + /// + /// + public TmdbList GetAccountLists(int AccountID, string SessionID, int page, string language = "") + { + return ProcessRequest(Generator.GetAccountLists(AccountID, SessionID, page, language)); + } + + /// + /// Get the list of favourite movies for an account + /// http://docs.themoviedb.apiary.io/#get-%2F3%2Faccount%2F%7Bid%7D%2Ffavorite_movies + /// + /// + /// + /// + /// + /// + public TmdbAccountMovies GetAccountFavouriteMovies(int AccountID, string SessionID, int page, string language = "") + { + return ProcessRequest(Generator.GetAccountFavouriteMovies(AccountID, SessionID, page, language)); + } + + /// + /// Get the list of rated movies for an account + /// http://docs.themoviedb.apiary.io/#get-%2F3%2Faccount%2F%7Bid%7D%2Frated_movies + /// + /// + /// + /// + /// + /// + public TmdbAccountMovies GetAccountRatedMovies(int AccountID, string SessionID, int page, string language = "") + { + return ProcessRequest(Generator.GetAccountRatedMovies(AccountID, SessionID, page, language)); + } + + /// + /// Get the list of movies on an accounts watchlist + /// http://docs.themoviedb.apiary.io/#get-%2F3%2Faccount%2F%7Bid%7D%2Fmovie_watchlist + /// + /// + /// + /// + /// + /// + public TmdbAccountMovies GetAccountWatchlistMovies(int AccountID, string SessionID, int page, string language = "") + { + return ProcessRequest(Generator.GetAccountWatchlistMovies(AccountID, SessionID, page, language)); + } + + #endregion + + + #region Search + /// + /// Search for movies that are listed in TMDB + /// (http://help.themoviedb.org/kb/api/search-movies) + /// + /// Is your search text. + /// Result page to retrieve (1 based) + /// optional - ISO 639-1 language code + /// optional - include adult items in your search, (Default=false) + /// optional - to get a closer result + /// + public TmdbMovieSearch SearchMovie(string query, int page, string language = "", bool? includeAdult = null, int? year = null) + { + if (string.IsNullOrEmpty(query)) + throw new ArgumentException("Search must be supplied"); + + //return ProcessRequest(BuildSearchMovieRequest(query, page, language, includeAdult, year)); + return ProcessRequest(Generator.SearchMovie(query, page, language, includeAdult, year)); + } + + /// + /// Search for people that are listed in TMDB. + /// (http://help.themoviedb.org/kb/api/search-people) + /// + /// Is your search text. + /// Result page to retrieve (1 based) + /// optional - ISO 639-1 language code + /// + public TmdbPersonSearch SearchPerson(string query, int page, string language = "") + { + if (string.IsNullOrEmpty(query)) + throw new ArgumentException("Search must be supplied"); + + //return ProcessRequest(BuildSearchPersonRequest(query, page, language)); + return ProcessRequest(Generator.SearchPerson(query, page, language)); + } + + /// + /// Search for production companies that are part of TMDB. + /// (http://help.themoviedb.org/kb/api/search-companies) + /// + /// Is your search text. + /// Result page to retrieve (1 based) + /// + public TmdbCompanySearch SearchCompany(string query, int page) + { + if (string.IsNullOrEmpty(query)) + throw new ArgumentException("Search must be supplied"); + + //return ProcessRequest(BuildSearchCompanyRequest(query, page)); + return ProcessRequest(Generator.SearchCompany(query, page)); + } + + /// + /// Search for keywords by name. + /// http://docs.themoviedb.apiary.io/#get-%2F3%2Fsearch%2Fkeyword + /// + /// + /// + /// + public TmdbKeywordSearch SearchKeyword(string query, int page) + { + if (string.IsNullOrEmpty(query)) + throw new ArgumentException("Search must be supplied"); + + return ProcessRequest(Generator.SearchKeyword(query, page)); + } + + /// + /// Search for collections by name + /// http://docs.themoviedb.apiary.io/#get-%2F3%2Fsearch%2Fcollection + /// + /// + /// + /// + public TmdbCollectionSearch SearchCollection(string query, int page, string language = "") + { + if (string.IsNullOrEmpty(query)) + throw new ArgumentException("Search must be supplied"); + + return ProcessRequest(Generator.SearchCollection(query, page, language)); + } + + #endregion + + + #region Collections + /// + /// Get all of the basic information about a movie collection. + /// (http://help.themoviedb.org/kb/api/collection-info) + /// + /// Collection ID, available in TmdbMovie::belongs_to_collection + /// optional - ISO 639-1 language code + /// + public TmdbCollection GetCollectionInfo(int CollectionID, string language = "") + { + //return ProcessRequest(BuildGetCollectionInfoRequest(CollectionID, language)); + return ProcessRequest(Generator.GetCollectionInfo(CollectionID, language)); + } + + public string GetCollectionInfoETag(int CollectionID, string language = "") + { + //return ProcessRequestETag(BuildGetCollectionInfoRequest(CollectionID, language)); + return ProcessRequestETag(ETagGenerator.GetCollectionInfo(CollectionID, language)); + } + + /// + /// Get all the images for a movie collection + /// http://help.themoviedb.org/kb/api/collection-images + /// + /// Collection ID, available in TmdbMovie::belongs_to_collection + /// optional - ISO 639-1 language code + /// + public TmdbCollectionImages GetCollectionImages(int CollectionID, string language = "") + { + //return ProcessRequest(BuildGetCollectionImagesRequest(CollectionID, language)); + return ProcessRequest(Generator.GetCollectionImages(CollectionID, language)); + } + + public string GetCollectionImagesETag(int CollectionID, string language = "") + { + //return ProcessRequestETag(BuildGetCollectionImagesRequest(CollectionID, language)); + return ProcessRequestETag(ETagGenerator.GetCollectionImages(CollectionID, language)); + } + + #endregion + + + #region Movie Info + /// + /// Retrieve all the basic movie information for a particular movie by TMDB reference. + /// (http://help.themoviedb.org/kb/api/movie-info) + /// + /// TMDB movie id + /// optional - ISO 639-1 language code + /// + public TmdbMovie GetMovieInfo(int MovieID, string language = "") + { + //return ProcessRequest(BuildGetMovieInfoRequest(MovieID, language)); + return ProcessRequest(Generator.GetMovieInfo(MovieID, language)); + } + + public string GetMovieInfoETag(int MovieID, string language = "") + { + //return ProcessRequestETag(BuildGetMovieInfoRequest(MovieID, language)); + return ProcessRequestETag(ETagGenerator.GetMovieInfo(MovieID, language)); + } + + /// + /// Retrieve all the basic movie information for a particular movie by IMDB reference. + /// (http://help.themoviedb.org/kb/api/movie-info) + /// + /// IMDB movie id + /// + public TmdbMovie GetMovieByIMDB(string imdbId, string language = "") + { + if (string.IsNullOrEmpty(imdbId)) + throw new ArgumentException("IMDB_ID must be supplied"); + + //return ProcessRequest(BuildGetMovieByIMDBRequest(imdbId, language)); + return ProcessRequest(Generator.GetMovieByIMDB(imdbId, language)); + } + + /// + /// Get list of all the alternative titles for a particular movie. + /// (http://help.themoviedb.org/kb/api/movie-alternative-titles) + /// + /// TMDB movie id + /// ISO 3166-1 country code (optional) + /// + public TmdbMovieAlternateTitles GetMovieAlternateTitles(int MovieID, string Country) + { + //return ProcessRequest(BuildGetMovieAlternateTitlesRequest(MovieID, Country)); + return ProcessRequest(Generator.GetMovieAlternateTitles(MovieID, Country)); + } + + public string GetMovieAlternateTitlesETag(int MovieID, string Country) + { + //return ProcessRequestETag(BuildGetMovieAlternateTitlesRequest(MovieID, Country)); + return ProcessRequestETag(ETagGenerator.GetMovieAlternateTitles(MovieID, Country)); + } + + /// + /// Get list of all the cast information for a particular movie. + /// (http://help.themoviedb.org/kb/api/movie-casts) + /// + /// TMDB movie id + /// + public TmdbMovieCast GetMovieCast(int MovieID) + { + //return ProcessRequest(BuildGetMovieCastRequest(MovieID)); + return ProcessRequest(Generator.GetMovieCast(MovieID)); + } + + public string GetMovieCastETag(int MovieID) + { + //return ProcessRequestETag(BuildGetMovieCastRequest(MovieID)); + return ProcessRequestETag(ETagGenerator.GetMovieCast(MovieID)); + } + + /// + /// Get list of all the images for a particular movie. + /// (http://help.themoviedb.org/kb/api/movie-images) + /// + /// TMDB movie id + /// optional - ISO 639-1 language code + /// + public TmdbMovieImages GetMovieImages(int MovieID, string language = "") + { + //return ProcessRequest(BuildGetMovieImagesRequest(MovieID, language)); + return ProcessRequest(Generator.GetMovieImages(MovieID, language)); + } + + public string GetMovieImagesETag(int MovieID, string language = "") + { + //return ProcessRequestETag(BuildGetMovieImagesRequest(MovieID, language)); + return ProcessRequestETag(ETagGenerator.GetMovieImages(MovieID, language)); + } + + /// + /// Get list of all the keywords that have been added to a particular movie. Only English keywords exist currently. + /// (http://help.themoviedb.org/kb/api/movie-keywords) + /// + /// TMDB movie id + /// + public TmdbMovieKeywords GetMovieKeywords(int MovieID) + { + //return ProcessRequest(BuildGetMovieKeywordsRequest(MovieID)); + return ProcessRequest(Generator.GetMovieKeywords(MovieID)); + } + + public string GetMovieKeywordsETag(int MovieID) + { + //return ProcessRequestETag(BuildGetMovieKeywordsRequest(MovieID)); + return ProcessRequestETag(ETagGenerator.GetMovieKeywords(MovieID)); + } + + /// + /// Get all the release and certification data in TMDB for a particular movie + /// (http://help.themoviedb.org/kb/api/movie-release-info) + /// + /// TMDB movie id + /// + public TmdbMovieReleases GetMovieReleases(int MovieID) + { + //return ProcessRequest(BuildGetMovieReleasesRequest(MovieID)); + return ProcessRequest(Generator.GetMovieReleases(MovieID)); + } + + public string GetMovieReleasesETag(int MovieID) + { + //return ProcessRequestETag(BuildGetMovieReleasesRequest(MovieID)); + return ProcessRequestETag(ETagGenerator.GetMovieReleases(MovieID)); + } + + /// + /// Get list of trailers for a particular movie. + /// (http://help.themoviedb.org/kb/api/movie-trailers) + /// + /// TMDB movie id + /// optional - ISO 639-1 language code + /// + public TmdbMovieTrailers GetMovieTrailers(int MovieID, string language = "") + { + //return ProcessRequest(BuildGetMovieTrailersRequest(MovieID, language)); + return ProcessRequest(Generator.GetMovieTrailers(MovieID, language)); + } + + public string GetMovieTrailersETag(int MovieID, string language = "") + { + //return ProcessRequestETag(BuildGetMovieTrailersRequest(MovieID, language)); + return ProcessRequestETag(ETagGenerator.GetMovieTrailers(MovieID, language)); + } + + /// + /// Get list of similar movies for a particular movie. + /// (http://help.themoviedb.org/kb/api/movie-similar-movies) + /// + /// TMDB movie id + /// Result page to retrieve (1 based) + /// optional - ISO 639-1 language code + /// + public TmdbSimilarMovies GetSimilarMovies(int MovieID, int page, string language = null) + { + //return ProcessRequest(BuildGetSimilarMoviesRequest(MovieID, page, language)); + return ProcessRequest(Generator.GetSimilarMovies(MovieID, page, language)); + } + + /// + /// Get list of all available translations for a specific movie. + /// (http://help.themoviedb.org/kb/api/movie-translations) + /// + /// TMDB movie id + /// + public TmdbTranslations GetMovieTranslations(int MovieID) + { + //return ProcessRequest(BuildGetMovieTranslationsRequest(MovieID)); + return ProcessRequest(Generator.GetMovieTranslations(MovieID)); + } + + public string GetMovieTranslationsETag(int MovieID) + { + //return ProcessRequestETag(BuildGetMovieTranslationsRequest(MovieID)); + return ProcessRequestETag(ETagGenerator.GetMovieTranslations(MovieID)); + } + + /// + /// Get the lists that the movie belongs to. + /// http://docs.themoviedb.apiary.io/#get-%2F3%2Fmovie%2F%7Bid%7D%2Flists + /// + /// + /// + /// + /// + public TmdbList GetMovieLists(int MovieID, int page, string language = null) + { + return ProcessRequest(Generator.GetMovieLists(MovieID, page, language)); + } + + /// + /// Get list of changes for a specific movie, grouped by key and ordered by date in descending order. + /// (http://docs.themoviedb.apiary.io/#get-%2F3%2Fmovie%2F%7Bid%7D%2Fchanges) + /// + /// TMDB Movie ID + /// + public TmdbMovieChanges GetMovieChanges(int MovieID) + { + return ProcessRequest(Generator.GetMovieChanges(MovieID)); + } + + public string GetMovieChangesETag(int MovieID) + { + return ProcessRequestETag(ETagGenerator.GetMovieChanges(MovieID)); + } + #endregion + + + #region Person Info + /// + /// Get all of the basic information for a person. + /// (http://help.themoviedb.org/kb/api/person-info) + /// + /// Person ID + /// + public TmdbPerson GetPersonInfo(int PersonID) + { + //return ProcessRequest(BuildGetPersonInfoRequest(PersonID)); + return ProcessRequest(Generator.GetPersonInfo(PersonID)); + } + + public string GetPersonInfoETag(int PersonID) + { + //return ProcessRequestETag(BuildGetPersonInfoRequest(PersonID)); + return ProcessRequestETag(ETagGenerator.GetPersonInfo(PersonID)); + } + + /// + /// Get list of cast and crew information for a person. + /// (http://help.themoviedb.org/kb/api/person-credits) + /// + /// Person ID + /// optional - ISO 639-1 language code + /// + public TmdbPersonCredits GetPersonCredits(int PersonID, string language = null) + { + //return ProcessRequest(BuildGetPersonCreditsRequest(PersonID, language)); + return ProcessRequest(Generator.GetPersonCredits(PersonID, language)); + } + + public string GetPersonCreditsETag(int PersonID, string language = null) + { + //return ProcessRequestETag(BuildGetPersonCreditsRequest(PersonID, language)); + return ProcessRequestETag(ETagGenerator.GetPersonCredits(PersonID, language)); + } + + /// + /// Get list of images for a person. + /// (http://help.themoviedb.org/kb/api/person-images) + /// + /// Person ID + /// + public TmdbPersonImages GetPersonImages(int PersonID) + { + //return ProcessRequest(BuildGetPersonImagesRequest(PersonID)); + return ProcessRequest(Generator.GetPersonImages(PersonID)); + } + + public string GetPersonImagesETag(int PersonID) + { + //return ProcessRequestETag(BuildGetPersonImagesRequest(PersonID)); + return ProcessRequestETag(ETagGenerator.GetPersonImages(PersonID)); + } + + /// + /// Get the list of changes for a specific person. Changes are grouped by key and ordered by date in descending order. + /// (http://docs.themoviedb.apiary.io/#get-%2F3%2Fperson%2F%7Bid%7D%2Fchanges) + /// + /// + /// + public TmdbPersonChanges GetPersonChanges(int PersonID) + { + return ProcessRequest(Generator.GetPersonChanges(PersonID)); + } + + public string GetPersonChangesETag(int PersonID) + { + return ProcessRequestETag(ETagGenerator.GetPersonChanges(PersonID)); + } + #endregion + + + #region Miscellaneous Movie + /// + /// Get the newest movie added to the TMDB. + /// (http://help.themoviedb.org/kb/api/latest-movie) + /// + /// + public TmdbLatestMovie GetLatestMovie() + { + //return ProcessRequest(BuildGetLatestMovieRequest()); + return ProcessRequest(Generator.GetLatestMovies()); + } + + public string GetLatestMovieETag() + { + //return ProcessRequestETag(BuildGetLatestMovieRequest()); + return ProcessRequestETag(ETagGenerator.GetLatestMovies()); + } + + /// + /// Get the list of movies currently in theatres. Response will contain 20 movies per page. + /// (http://help.themoviedb.org/kb/api/now-playing-movies) + /// + /// Result page to retrieve (1 based) + /// optional - ISO 639-1 language code + /// + public TmdbNowPlaying GetNowPlayingMovies(int page, string language = "") + { + //return ProcessRequest(BuildGetNowPlayingMoviesRequest(page, language)); + return ProcessRequest(Generator.GetNowPlayingMovies(page, language)); + } + + public string GetNowPlayingMoviesETag(int page, string language = null) + { + //return ProcessRequestETag(BuildGetNowPlayingMoviesRequest(page, language)); + return ProcessRequestETag(ETagGenerator.GetNowPlayingMovies(page, language)); + } + + /// + /// Get the daily popularity list of movies. Response will contain 20 movies per page. + /// (http://help.themoviedb.org/kb/api/popular-movie-list) + /// + /// Result page to retrieve (1 based) + /// optional - ISO 639-1 language code + /// + public TmdbPopular GetPopularMovies(int page, string language = null) + { + //return ProcessRequest(BuildGetPopularMoviesRequest(page, language)); + return ProcessRequest(Generator.GetPopularMovies(page, language)); + } + + public string GetPopularMoviesETag(int page, string language = null) + { + //return ProcessRequestETag(BuildGetPopularMoviesRequest(page, language)); + return ProcessRequestETag(ETagGenerator.GetPopularMovies(page, language)); + } + + /// + /// Get list of movies that have over 10 votes on TMDB. Response will contain 20 movies per page. + /// (http://help.themoviedb.org/kb/api/top-rated-movies) + /// + /// Result page to retrieve (1 based) + /// optional - ISO 639-1 language code + /// + public TmdbTopRated GetTopRatedMovies(int page, string language = null) + { + //return ProcessRequest(BuildGetTopRatedMoviesRequest(page, language)); + return ProcessRequest(Generator.GetTopRatedMovies(page, language)); + } + + public string GetTopRatedMoviesETag(int page, string language = null) + { + //return ProcessRequestETag(BuildGetTopRatedMoviesRequest(page, language)); + return ProcessRequestETag(ETagGenerator.GetTopRatedMovies(page, language)); + } + + /// + /// Get list of movies that are arriving to theatres in the next few weeks. + /// (http://help.themoviedb.org/kb/api/upcoming-movies) + /// + /// Result page to retrieve (1 based) + /// optional - ISO 639-1 language code + /// + public TmdbUpcoming GetUpcomingMovies(int page, string language = null) + { + //return ProcessRequest(BuildGetUpcomingMoviesRequest(page, language)); + return ProcessRequest(Generator.GetUpcomingMovies(page, language)); + } + + public string GetUpcomingMoviesETag(int page, string language = null) + { + //return ProcessRequestETag(BuildGetUpcomingMoviesRequest(page, language)); + return ProcessRequestETag(ETagGenerator.GetUpcomingMovies(page, language)); + } + + #endregion + + + #region Lists Methods + + /// + /// Get a list by id + /// http://docs.themoviedb.apiary.io/#get-%2F3%2Flist%2F%7Bid%7D + /// + /// + /// + public TmdbListItem GetList(string ListID) + { + return ProcessRequest(Generator.GetList(ListID)); + } + + #endregion + + + #region Company Info + /// + /// Get basic information about a production company from TMDB. + /// (http://help.themoviedb.org/kb/api/company-info) + /// + /// Company ID + /// + public TmdbCompany GetCompanyInfo(int CompanyID) + { + //return ProcessRequest(BuildGetCompanyInfoRequest(CompanyID)); + return ProcessRequest(Generator.GetCompanyInfo(CompanyID)); + } + + public string GetCompanyInfoETag(int CompanyID) + { + //return ProcessRequestETag(BuildGetCompanyInfoRequest(CompanyID)); + return ProcessRequestETag(ETagGenerator.GetCompanyInfo(CompanyID)); + } + + /// + /// Get list of movies associated with a company. Response will contain 20 movies per page. + /// (http://help.themoviedb.org/kb/api/company-movies) + /// + /// Company ID + /// Result page to retrieve (1 based) + /// optional - ISO 639-1 language code + /// + public TmdbCompanyMovies GetCompanyMovies(int CompanyID, int page, string language = null) + { + //return ProcessRequest(BuildGetCompanyMoviesRequest(CompanyID, page, language)); + return ProcessRequest(Generator.GetCompanyMovies(CompanyID, page, language)); + } + + public string GetCompanyMoviesETag(int CompanyID, int page, string language = null) + { + //return ProcessRequestETag(BuildGetCompanyMoviesRequest(CompanyID, page, language)); + return ProcessRequestETag(ETagGenerator.GetCompanyMovies(CompanyID, page, language)); + } + + #endregion + + + #region Genre Info + /// + /// Get list of genres used in TMDB. The ids will correspond to those found in movie calls. + /// (http://help.themoviedb.org/kb/api/genre-list) + /// + /// optional - ISO 639-1 language code + /// + public TmdbGenre GetGenreList(string language = null) + { + //return ProcessRequest(BuildGetGenreListRequest(language)); + return ProcessRequest(Generator.GetGenreList(language)); + } + + public string GetGenreListETag(string language = null) + { + //return ProcessRequestETag(BuildGetGenreListRequest(language)); + return ProcessRequestETag(ETagGenerator.GetGenreList(language)); + } + + /// + /// Get list of movies in a Genre. Note that only movies with more than 10 votes get listed. + /// (http://help.themoviedb.org/kb/api/genre-movies) + /// + /// TMDB Genre ID + /// Result page to retrieve (1 based) + /// optional - ISO 639-1 language code + /// + public TmdbGenreMovies GetGenreMovies(int GenreID, int page, string language = null) + { + //return ProcessRequest(BuildGetGenreMoviesRequest(GenreID, page, language)); + return ProcessRequest(Generator.GetGenreMovies(GenreID, page, language)); + } + + public string GetGenreMoviesETag(int GenreID, int page, string language = null) + { + //return ProcessRequestETag(BuildGetGenreMoviesRequest(GenreID, page, language)); + return ProcessRequestETag(ETagGenerator.GetGenreMovies(GenreID, page, language)); + } + + #endregion + + + #region Keyword Methods + + /// + /// Get the basic information for a specific keyword id. + /// http://docs.themoviedb.apiary.io/#get-%2F3%2Fkeyword%2F%7Bid%7D + /// + /// + /// + public TmdbKeyword GetKeyword(int KeywordID) + { + return ProcessRequest(Generator.GetKeyword(KeywordID)); + } + + /// + /// Get the list of movies for a particular keyword by id. + /// http://docs.themoviedb.apiary.io/#get-%2F3%2Fkeyword%2F%7Bid%7D%2Fmovies + /// + /// + /// + /// + /// + public TmdbKeywordMovies GetKeywordMovies(int KeywordID, int page, string language = "") + { + return ProcessRequest(Generator.GetKeywordMovies(KeywordID, page, language)); + } + + #endregion + + + #region Changes methods + + /// + /// Get a list of movie ids that have been edited. By default results include the last 24 hours with + /// 100 items per page. Then use the method GetMovieChanges to get the data that has changed. + /// (http://docs.themoviedb.apiary.io/#get-%2F3%2Fmovie%2Fchanges) + /// + /// + /// + /// + /// + public TmdbChanges GetChangesByMovie(int page, DateTime? StartDate = null, DateTime? EndDate = null) + { + return ProcessRequest(Generator.GetChangesByMovie(page, StartDate, EndDate)); + } + + /// + /// Get a list of person ids that have been edited. By default results include the last 24 hours with + /// 100 items per page. Then use the method GetPersonChanges to get the data that has changed. + /// (http://docs.themoviedb.apiary.io/#get-%2F3%2Fperson%2Fchanges) + /// + /// + /// + /// + /// + public TmdbChanges GetChangesByPerson(int page, DateTime? StartDate = null, DateTime? EndDate = null) + { + return ProcessRequest(Generator.GetChangesByPerson(page, StartDate, EndDate)); + } + + #endregion + } +} diff --git a/WatTmdb/Tmdb/Tmdb.cs b/WatTmdb/Tmdb/Tmdb.cs new file mode 100644 index 0000000..599fb88 --- /dev/null +++ b/WatTmdb/Tmdb/Tmdb.cs @@ -0,0 +1,472 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using RestSharp.Deserializers; +using System.Net; +using RestSharp; +using WatTmdb.Utilities; + +namespace WatTmdb.V3 +{ + public partial class Tmdb + { + private const string BASE_URL = "http://api.themoviedb.org/3"; + + public Tmdb(string apiKey) : this(apiKey, null) { } + + public Tmdb(string apiKey, string language) + { + Error = null; + ApiKey = apiKey; + Language = language; + Timeout = null; + + Deserializer = new JsonDeserializer(); + Generator = new RequestGenerator(apiKey, Language); + ETagGenerator = new RequestGenerator(apiKey, Language, Method.HEAD); + } + + #region Properties + + private RequestGenerator Generator { get; set; } + + private RequestGenerator ETagGenerator { get; set; } + + private string ApiKey { get; set; } + + private string Language { get; set; } + + private JsonDeserializer Deserializer; + + #endregion + + /// + /// Current count of outstanding Async calls awaiting callback response + /// + public int AsyncCount = 0; + + public TmdbError Error { get; set; } + + /// + /// String representation of response content + /// + public string ResponseContent { get; set; } + + /// + /// Dictionary of Header values in response + /// http://help.themoviedb.org/kb/api/content-versioning + /// + public Dictionary ResponseHeaders { get; set; } + + /// + /// ETag pulled out of the response header for the last request + /// http://help.themoviedb.org/kb/api/content-versioning + /// + public string ResponseETag + { + get + { + if (ResponseHeaders == null || ResponseHeaders.ContainsKey("ETag") == false) + return null; + + return Convert.ToString(ResponseHeaders["ETag"]).Trim('"'); + } + } + +#if !WINDOWS_PHONE + /// + /// Proxy to use for requests made. Passed on to underying WebRequest if set. + /// + public IWebProxy Proxy { get; set; } +#endif + /// + /// Timeout in milliseconds to use for requests made. + /// + public int? Timeout { get; set; } + + + + #region Build Requests - DEPRECATED, moved to a builder pattern + + + //#region Configuration Methods + //private static RestRequest BuildGetConfigurationRequest(object userState = null) + //{ + // var request = new RestRequest("configuration", Method.GET); + // if (userState != null) + // request.UserState = userState; + + // return request; + //} + //#endregion + + + //#region Search Methods + //private static RestRequest BuildSearchMovieRequest(string query, int page, string language, bool? includeAdult = null, int? year = null, object userState = null) + //{ + // var request = new RestRequest("search/movie", Method.GET); + // request.AddParameter("query", query.EscapeString()); + // request.AddParameter("page", page); + // if (string.IsNullOrEmpty(language) == false) + // request.AddParameter("language", language); + // if (includeAdult.HasValue) + // request.AddParameter("include_adult", includeAdult.Value ? "true" : "false"); + // if (year.HasValue) + // request.AddParameter("year", year.Value); + // if (userState != null) + // request.UserState = userState; + + // return request; + //} + + //private static RestRequest BuildSearchPersonRequest(string query, int page, string language, object userState = null) + //{ + // var request = new RestRequest("search/person", Method.GET); + // request.AddParameter("query", query.EscapeString()); + // request.AddParameter("page", page); + // if (string.IsNullOrEmpty(language) == false) + // request.AddParameter("language", language); + // if (userState != null) + // request.UserState = userState; + + // return request; + //} + + //private static RestRequest BuildSearchCompanyRequest(string query, int page, object userState = null) + //{ + // var request = new RestRequest("search/company", Method.GET); + // request.AddParameter("query", query.EscapeString()); + // request.AddParameter("page", page); + // if (userState != null) + // request.UserState = userState; + + // return request; + //} + //#endregion + + + //#region Collections + //private static RestRequest BuildGetCollectionInfoRequest(int CollectionID, string language, object userState = null) + //{ + // var request = new RestRequest("collection/{id}", Method.GET); + // if (string.IsNullOrEmpty(language) == false) + // request.AddParameter("language", language); + // request.AddUrlSegment("id", CollectionID.ToString()); + // if (userState != null) + // request.UserState = userState; + + // return request; + //} + + //private static RestRequest BuildGetCollectionImagesRequest(int CollectionID, string language, object userState = null) + //{ + // var request = new RestRequest("collection/{id}/images", Method.GET); + // if (string.IsNullOrEmpty(language) == false) + // request.AddParameter("language", language); + // request.AddUrlSegment("id", CollectionID.ToString()); + // if (userState != null) + // request.UserState = userState; + + // return request; + //} + //#endregion + + + //#region Movie Info + //private static RestRequest BuildGetMovieInfoRequest(int MovieID, string language, object userState = null) + //{ + // var request = new RestRequest("movie/{id}", Method.GET); + // if (string.IsNullOrEmpty(language) == false) + // request.AddParameter("language", language); + // request.AddUrlSegment("id", MovieID.ToString()); + // if (userState != null) + // request.UserState = userState; + + // return request; + //} + + //private static RestRequest BuildGetMovieByIMDBRequest(string IMDB_ID, string language, object userState = null) + //{ + // var request = new RestRequest("movie/{id}", Method.GET); + // if (string.IsNullOrEmpty(language) == false) + // request.AddParameter("language", language); + // request.AddUrlSegment("id", IMDB_ID.EscapeString()); + // if (userState != null) + // request.UserState = userState; + + // return request; + //} + + //private static RestRequest BuildGetMovieAlternateTitlesRequest(int MovieID, string Country, object userState = null) + //{ + // var request = new RestRequest("movie/{id}/alternative_titles", Method.GET); + // if (string.IsNullOrEmpty(Country) == false) + // request.AddParameter("country", Country); + // request.AddUrlSegment("id", MovieID.ToString()); + // if (userState != null) + // request.UserState = userState; + + // return request; + //} + + //private static RestRequest BuildGetMovieCastRequest(int MovieID, object userState = null) + //{ + // var request = new RestRequest("movie/{id}/casts", Method.GET); + // request.AddUrlSegment("id", MovieID.ToString()); + // if (userState != null) + // request.UserState = userState; + + // return request; + //} + + //private static RestRequest BuildGetMovieImagesRequest(int MovieID, string language, object userState = null) + //{ + // var request = new RestRequest("movie/{id}/images", Method.GET); + // if (string.IsNullOrEmpty(language) == false) + // request.AddParameter("language", language); + // request.AddUrlSegment("id", MovieID.ToString()); + // if (userState != null) + // request.UserState = userState; + + // return request; + //} + + //private static RestRequest BuildGetMovieKeywordsRequest(int MovieID, object userState = null) + //{ + // var request = new RestRequest("movie/{id}/keywords", Method.GET); + // request.AddUrlSegment("id", MovieID.ToString()); + // if (userState != null) + // request.UserState = userState; + + // return request; + //} + + //private static RestRequest BuildGetMovieReleasesRequest(int MovieID, object userState = null) + //{ + // var request = new RestRequest("movie/{id}/releases", Method.GET); + // request.AddUrlSegment("id", MovieID.ToString()); + // if (userState != null) + // request.UserState = userState; + + // return request; + //} + + //private static RestRequest BuildGetMovieTrailersRequest(int MovieID, string language, object userState = null) + //{ + // var request = new RestRequest("movie/{id}/trailers", Method.GET); + // if (string.IsNullOrEmpty(language) == false) + // request.AddParameter("language", language); + // request.AddUrlSegment("id", MovieID.ToString()); + // if (userState != null) + // request.UserState = userState; + + // return request; + //} + + //private static RestRequest BuildGetSimilarMoviesRequest(int MovieID, int page, string language, object userState = null) + //{ + // var request = new RestRequest("movie/{id}/similar_movies", Method.GET); + // request.AddParameter("page", page); + // if (string.IsNullOrEmpty(language) == false) + // request.AddParameter("language", language); + // request.AddUrlSegment("id", MovieID.ToString()); + // if (userState != null) + // request.UserState = userState; + + // return request; + //} + + //private static RestRequest BuildGetMovieTranslationsRequest(int MovieID, object userState = null) + //{ + // var request = new RestRequest("movie/{id}/translations", Method.GET); + // request.AddUrlSegment("id", MovieID.ToString()); + // if (userState != null) + // request.UserState = userState; + + // return request; + //} + //#endregion + + + //#region Person Info + //private static RestRequest BuildGetPersonInfoRequest(int PersonID, object userState = null) + //{ + // var request = new RestRequest("person/{id}", Method.GET); + // request.AddUrlSegment("id", PersonID.ToString()); + // if (userState != null) + // request.UserState = userState; + + // return request; + //} + + //private static RestRequest BuildGetPersonCreditsRequest(int PersonID, string language, object userState = null) + //{ + // var request = new RestRequest("person/{id}/credits", Method.GET); + // if (string.IsNullOrEmpty(language) == false) + // request.AddParameter("language", language); + // request.AddUrlSegment("id", PersonID.ToString()); + // if (userState != null) + // request.UserState = userState; + + // return request; + //} + + //private static RestRequest BuildGetPersonImagesRequest(int PersonID, object userState = null) + //{ + // var request = new RestRequest("person/{id}/images", Method.GET); + // request.AddUrlSegment("id", PersonID.ToString()); + // if (userState != null) + // request.UserState = userState; + + // return request; + //} + //#endregion + + + //#region Miscellaneous Movie + //private static RestRequest BuildGetLatestMovieRequest(object userState = null) + //{ + // var request = new RestRequest("movie/latest", Method.GET); + // if (userState != null) + // request.UserState = userState; + + // return request; + //} + + //private static RestRequest BuildGetNowPlayingMoviesRequest(int page, string language, object userState = null) + //{ + // var request = new RestRequest("movie/now_playing", Method.GET); + // if (string.IsNullOrEmpty(language) == false) + // request.AddParameter("language", language); + // request.AddParameter("page", page); + // if (userState != null) + // request.UserState = userState; + + // return request; + //} + + //private static RestRequest BuildGetPopularMoviesRequest(int page, string language, object userState = null) + //{ + // var request = new RestRequest("movie/popular", Method.GET); + // if (string.IsNullOrEmpty(language) == false) + // request.AddParameter("language", language); + // request.AddParameter("page", page); + // if (userState != null) + // request.UserState = userState; + + // return request; + //} + + //private static RestRequest BuildGetTopRatedMoviesRequest(int page, string language, object userState = null) + //{ + // var request = new RestRequest("movie/top_rated", Method.GET); + // if (string.IsNullOrEmpty(language) == false) + // request.AddParameter("language", language); + // request.AddParameter("page", page); + // if (userState != null) + // request.UserState = userState; + + // return request; + //} + + //private static RestRequest BuildGetUpcomingMoviesRequest(int page, string language, object userState = null) + //{ + // var request = new RestRequest("movie/upcoming", Method.GET); + // if (string.IsNullOrEmpty(language) == false) + // request.AddParameter("language", language); + // request.AddParameter("page", page); + // if (userState != null) + // request.UserState = userState; + + // return request; + //} + //#endregion + + + //#region Company Info + //private static RestRequest BuildGetCompanyInfoRequest(int CompanyID, object userState = null) + //{ + // var request = new RestRequest("company/{id}", Method.GET); + // request.AddUrlSegment("id", CompanyID.ToString()); + // if (userState != null) + // request.UserState = userState; + + // return request; + //} + + //private static RestRequest BuildGetCompanyMoviesRequest(int CompanyID, int page, string language, object userState = null) + //{ + // var request = new RestRequest("company/{id}/movies", Method.GET); + // request.AddUrlSegment("id", CompanyID.ToString()); + // if (string.IsNullOrEmpty(language) == false) + // request.AddParameter("language", language); + // request.AddParameter("page", page); + // if (userState != null) + // request.UserState = userState; + + // return request; + //} + //#endregion + + + //#region Genre Info + //private static RestRequest BuildGetGenreListRequest(string language, object userState = null) + //{ + // var request = new RestRequest("genre/list", Method.GET); + // if (string.IsNullOrEmpty(language) == false) + // request.AddParameter("language", language); + // if (userState != null) + // request.UserState = userState; + + // return request; + //} + + //private static RestRequest BuildGetGenreMoviesRequest(int GenreID, int page, string language, object userState = null) + //{ + // var request = new RestRequest("genre/{id}/movies", Method.GET); + // request.AddUrlSegment("id", GenreID.ToString()); + // if (string.IsNullOrEmpty(language) == false) + // request.AddParameter("language", language); + // request.AddParameter("page", page); + // if (userState != null) + // request.UserState = userState; + + // return request; + //} + //#endregion + + //#region Changes methods + //private static RestRequest BuildGetMovieChangesRequest(int page, DateTime? StartDate, DateTime? EndDate, object userState = null) + //{ + // var request = new RestRequest("movie/changes", Method.GET); + // request.AddParameter("page", page); + // if (StartDate.HasValue) + // request.AddParameter("start_date", StartDate.Value.ToString("yyyy-MM-dd")); + // if (EndDate.HasValue) + // request.AddParameter("end_date", EndDate.Value.ToString("yyyy-MM-dd")); + // if (userState != null) + // request.UserState = userState; + + // return request; + //} + + //private static RestRequest BuildGetPersonChangesRequest(int page, DateTime? StartDate, DateTime? EndDate, object userState = null) + //{ + // var request = new RestRequest("person/changes", Method.GET); + // request.AddParameter("page", page); + // if (StartDate.HasValue) + // request.AddParameter("start_date", StartDate.Value.ToString("yyyy-MM-dd")); + // if (EndDate.HasValue) + // request.AddParameter("end_date", EndDate.Value.ToString("yyyy-MM-dd")); + // if (userState != null) + // request.UserState = userState; + + // return request; + //} + //#endregion + + #endregion + } + +} diff --git a/WatTmdb/Utilities/Constants.cs b/WatTmdb/Utilities/Constants.cs new file mode 100644 index 0000000..0bd7d75 --- /dev/null +++ b/WatTmdb/Utilities/Constants.cs @@ -0,0 +1,94 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WatTmdb.Utilities +{ + internal partial class RequestGenerator + { + + #region Request Constants + public const string REQUEST_AUTH_TOKEN = "authentication/token/new"; + public const string REQUEST_AUTH_SESSION = "authentication/session/new"; + public const string REQUEST_AUTH_GUESTSESSION = "authentication/guest_session/new"; + + public const string REQUEST_ACCOUNT = "account"; + public const string REQUEST_ACCOUNT_LISTS = "account/{id}/lists"; + public const string REQUEST_ACCOUNT_FAVOURITE = "account/{id}/favorite_movies"; + public const string REQUEST_ACCOUNT_RATED = "account/{id}/rated_movies"; + public const string REQUEST_ACCOUNT_WATCHLIST = "account/{id}/movie_watchlist"; + + public const string REQUEST_CONFIG = "configuration"; + + public const string REQUEST_SEARCH_MOVIE = "search/movie"; + public const string REQUEST_SEARCH_PERSON = "search/person"; + public const string REQUEST_SEARCH_COMPANY = "search/company"; + public const string REQUEST_SEARCH_KEYWORD = "search/keyword"; + public const string REQUEST_SEARCH_COLLECTION = "search/collection"; + + public const string REQUEST_COLLECTION = "collection/{id}"; + public const string REQUEST_COLLECTION_IMAGES = "collection/{id}/images"; + + public const string REQUEST_MOVIE = "movie/{id}"; + public const string REQUEST_MOVIE_TITLES = "movie/{id}/alternative_titles"; + public const string REQUEST_MOVIE_CAST = "movie/{id}/casts"; + public const string REQUEST_MOVIE_IMAGES = "movie/{id}/images"; + public const string REQUEST_MOVIE_KEYWORDS = "movie/{id}/keywords"; + public const string REQUEST_MOVIE_RELEASES = "movie/{id}/releases"; + public const string REQUEST_MOVIE_TRAILERS = "movie/{id}/trailers"; + public const string REQUEST_MOVIE_SIMILAR = "movie/{id}/similar_movies"; + public const string REQUEST_MOVIE_TRANSLATIONS = "movie/{id}/translations"; + public const string REQUEST_MOVIE_LISTS = "movie/{id}/lists"; + public const string REQUEST_MOVIE_CHANGES = "movie/{id}/changes"; + + public const string REQUEST_MOVIE_LATEST = "movie/latest"; + public const string REQUEST_MOVIE_PLAYING = "movie/now_playing"; + public const string REQUEST_MOVIE_POPULAR = "movie/popular"; + public const string REQUEST_MOVIE_TOP = "movie/top_rated"; + public const string REQUEST_MOVIE_UPCOMING = "movie/upcoming"; + + public const string REQUEST_PERSON = "person/{id}"; + public const string REQUEST_PERSON_CREDITS = "person/{id}/credits"; + public const string REQUEST_PERSON_IMAGES = "person/{id}/images"; + public const string REQUEST_PERSON_CHANGES = "person/{id}/changes"; + + public const string REQUEST_LIST = "list/{id}"; + + public const string REQUEST_COMPANY = "company/{id}"; + public const string REQUEST_COMPANY_MOVIES = "company/{id}/movies"; + + public const string REQUEST_GENRE = "genre/list"; + public const string REQUEST_GENRE_MOVIES = "genre/{id}/movies"; + + public const string REQUEST_KEYWORD = "keyword/{id}"; + public const string REQUEST_KEYWORD_MOVIES = "keyword/{id}/movies"; + + public const string REQUEST_CHANGES_MOVIES = "movie/changes"; + public const string REQUEST_CHANGES_PERSON = "person/changes"; + + #endregion + + } + + + internal partial class RequestBuilder + { + + #region Parameter Constants + public const string PARAMETER_APIKEY = "api_key"; + public const string PARAMETER_QUERY = "query"; + public const string PARAMETER_PAGE = "page"; + public const string PARAMETER_LANGUAGE = "language"; + public const string PARAMETER_ADULT = "include_adult"; + public const string PARAMETER_YEAR = "year"; + public const string PARAMETER_ID = "id"; + public const string PARAMETER_COUNTRY = "country"; + public const string PARAMETER_STARTDATE = "start_date"; + public const string PARAMETER_ENDDATE = "end_date"; + public const string PARAMETER_REQUESTOKEN = "request_token"; + public const string PARAMETER_SESSIONID = "session_id"; + #endregion + + } +} diff --git a/WatTmdb/Utilities/RequestBuilder.cs b/WatTmdb/Utilities/RequestBuilder.cs new file mode 100644 index 0000000..db9860d --- /dev/null +++ b/WatTmdb/Utilities/RequestBuilder.cs @@ -0,0 +1,113 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using RestSharp; +using System.Globalization; + +namespace WatTmdb.Utilities +{ + internal partial class RequestBuilder + { + public RequestBuilder(string resource, Method method) : this(resource, method, string.Empty) { } + + public RequestBuilder(string resource, Method method, string language) + { + Request = new RestRequest(resource, method); + DefaultLanguage = language; + Request.AddHeader("Accept", "application/json"); + } + + #region Properties + + private RestRequest Request { get; set; } + + private Method Method + { + get { return Request.Method; } + set { Request.Method = value; } + } + + private string DefaultLanguage { get; set; } + + private object UserState + { + get { return Request.UserState; } + set { if (value != null) Request.UserState = value; } + } + + #endregion + + public RestRequest GetRequest() + { + return Request; + } + + public RequestBuilder SetUserState(object userState) + { + UserState = userState; + return this; + } + + public RequestBuilder AddParameter(string name, bool? value) + { + if (!value.HasValue) return this; + + Request.AddParameter(name, value.Value ? "true" : "false"); + return this; + } + + public RequestBuilder AddParameter(string name, int? value) + { + if (!value.HasValue) return this; + + Request.AddParameter(name, value.Value); + return this; + } + + public RequestBuilder AddParameter(string name, string value) + { + if (name == PARAMETER_LANGUAGE && string.IsNullOrEmpty(value)) + value = DefaultLanguage; + + if (string.IsNullOrEmpty(value)) return this; + value = value.EscapeString(); + + Request.AddParameter(name, value); + return this; + } + + public RequestBuilder AddParameter(string name, DateTime? value) + { + if (!value.HasValue) return this; + + Request.AddParameter(name, value.Value.ToString("yyyy-MM-dd")); + return this; + } + + public RequestBuilder AddParameter(string name, object value) + { + if (value == null) return this; + + Request.AddParameter(name, value); + return this; + } + + public RequestBuilder AddUrlSegment(string name, int? value) + { + if (!value.HasValue) return this; + + Request.AddUrlSegment(name, value.Value.ToString(CultureInfo.InvariantCulture)); + return this; + } + + public RequestBuilder AddUrlSegment(string name, string value) + { + if (string.IsNullOrEmpty(value)) return this; + value = value.EscapeString(); + + Request.AddUrlSegment(name, value); + return this; + } + } +} diff --git a/WatTmdb/Utilities/RequestGenerator.cs b/WatTmdb/Utilities/RequestGenerator.cs new file mode 100644 index 0000000..f90fd72 --- /dev/null +++ b/WatTmdb/Utilities/RequestGenerator.cs @@ -0,0 +1,508 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using RestSharp; + +namespace WatTmdb.Utilities +{ + internal partial class RequestGenerator + { + #region Properties + + private Method Method { get; set; } + private string DefaultLanguage { get; set; } + private string ApiKey { get; set; } + + #endregion + + public RequestGenerator(string apiKey, string language, Method method = Method.GET) + { + DefaultLanguage = language; + Method = method; + ApiKey = apiKey; + } + + private RequestBuilder GetBuilder(string request) + { + return new RequestBuilder(request, Method, DefaultLanguage) + .AddParameter(RequestBuilder.PARAMETER_APIKEY, ApiKey); + } + + #region Authentication Methods + + internal RestRequest GetAuthToken(object userState = null) + { + return GetBuilder(REQUEST_AUTH_TOKEN) + .SetUserState(userState) + .GetRequest(); + } + + internal RestRequest GetAuthSession(string token, object userState = null) + { + return GetBuilder(REQUEST_AUTH_SESSION) + .SetUserState(userState) + .AddParameter(RequestBuilder.PARAMETER_REQUESTOKEN, token) + .GetRequest(); + } + + internal RestRequest GetGuestSession(object userState = null) + { + return GetBuilder(REQUEST_AUTH_GUESTSESSION) + .SetUserState(userState) + .GetRequest(); + } + + #endregion + + + #region Account Methods + + internal RestRequest GetAccountInfo(string SessionID, object userState = null) + { + return GetBuilder(REQUEST_ACCOUNT) + .SetUserState(userState) + .AddParameter(RequestBuilder.PARAMETER_SESSIONID, SessionID) + .GetRequest(); + } + + internal RestRequest GetAccountLists(int AccountID, string SessionID, int? page, string language, object userState = null) + { + return GetBuilder(REQUEST_ACCOUNT_LISTS) + .SetUserState(userState) + .AddUrlSegment(RequestBuilder.PARAMETER_ID, AccountID) + .AddParameter(RequestBuilder.PARAMETER_SESSIONID, SessionID) + .AddParameter(RequestBuilder.PARAMETER_PAGE, page) + .AddParameter(RequestBuilder.PARAMETER_LANGUAGE, language) + .GetRequest(); + } + + internal RestRequest GetAccountFavouriteMovies(int AccountID, string SessionID, int? page, string language, object userState = null) + { + return GetBuilder(REQUEST_ACCOUNT_FAVOURITE) + .SetUserState(userState) + .AddUrlSegment(RequestBuilder.PARAMETER_ID, AccountID) + .AddParameter(RequestBuilder.PARAMETER_SESSIONID, SessionID) + .AddParameter(RequestBuilder.PARAMETER_PAGE, page) + .AddParameter(RequestBuilder.PARAMETER_LANGUAGE, language) + .GetRequest(); + } + + internal RestRequest GetAccountRatedMovies(int AccountID, string SessionID, int? page, string language, object userState = null) + { + return GetBuilder(REQUEST_ACCOUNT_RATED) + .SetUserState(userState) + .AddUrlSegment(RequestBuilder.PARAMETER_ID, AccountID) + .AddParameter(RequestBuilder.PARAMETER_SESSIONID, SessionID) + .AddParameter(RequestBuilder.PARAMETER_PAGE, page) + .AddParameter(RequestBuilder.PARAMETER_LANGUAGE, language) + .GetRequest(); + } + + internal RestRequest GetAccountWatchlistMovies(int AccountID, string SessionID, int? page, string language, object userState = null) + { + return GetBuilder(REQUEST_ACCOUNT_WATCHLIST) + .SetUserState(userState) + .AddUrlSegment(RequestBuilder.PARAMETER_ID, AccountID) + .AddParameter(RequestBuilder.PARAMETER_SESSIONID, SessionID) + .AddParameter(RequestBuilder.PARAMETER_PAGE, page) + .AddParameter(RequestBuilder.PARAMETER_LANGUAGE, language) + .GetRequest(); + } + + #endregion + + + #region Configuration Methods + + internal RestRequest GetConfiguration(object userState = null) + { + return GetBuilder(REQUEST_CONFIG) + .SetUserState(userState) + .GetRequest(); + } + + #endregion + + + #region Search Methods + + internal RestRequest SearchMovie(string query, int page, string language, bool? includeAdult = null, int? year = null, object userState = null) + { + return GetBuilder(REQUEST_SEARCH_MOVIE) + .SetUserState(userState) + .AddParameter(RequestBuilder.PARAMETER_QUERY, query) + .AddParameter(RequestBuilder.PARAMETER_PAGE, page) + .AddParameter(RequestBuilder.PARAMETER_LANGUAGE, language) + .AddParameter(RequestBuilder.PARAMETER_ADULT, includeAdult) + .AddParameter(RequestBuilder.PARAMETER_YEAR, year) + .GetRequest(); + } + + internal RestRequest SearchPerson(string query, int page, string language, object userState = null) + { + return GetBuilder(REQUEST_SEARCH_PERSON) + .SetUserState(userState) + .AddParameter(RequestBuilder.PARAMETER_QUERY, query) + .AddParameter(RequestBuilder.PARAMETER_PAGE, page) + .AddParameter(RequestBuilder.PARAMETER_LANGUAGE, language) + .GetRequest(); + } + + internal RestRequest SearchCompany(string query, int page, object userState = null) + { + return GetBuilder(REQUEST_SEARCH_COMPANY) + .SetUserState(userState) + .AddParameter(RequestBuilder.PARAMETER_QUERY, query) + .AddParameter(RequestBuilder.PARAMETER_PAGE, page) + .GetRequest(); + } + + internal RestRequest SearchKeyword(string query, int page, object userState = null) + { + return GetBuilder(REQUEST_SEARCH_KEYWORD) + .SetUserState(userState) + .AddParameter(RequestBuilder.PARAMETER_QUERY, query) + .AddParameter(RequestBuilder.PARAMETER_PAGE, page) + .GetRequest(); + } + + internal RestRequest SearchCollection(string query, int page, string language, object userState = null) + { + return GetBuilder(REQUEST_SEARCH_COLLECTION) + .SetUserState(userState) + .AddParameter(RequestBuilder.PARAMETER_QUERY, query) + .AddParameter(RequestBuilder.PARAMETER_PAGE, page) + .AddParameter(RequestBuilder.PARAMETER_LANGUAGE, language) + .GetRequest(); + } + + #endregion + + + #region Collections + + internal RestRequest GetCollectionInfo(int CollectionID, string language, object userState = null) + { + return GetBuilder(REQUEST_COLLECTION) + .SetUserState(userState) + .AddParameter(RequestBuilder.PARAMETER_LANGUAGE, language) + .AddUrlSegment(RequestBuilder.PARAMETER_ID, CollectionID) + .GetRequest(); + } + + internal RestRequest GetCollectionImages(int CollectionID, string language, object userState = null) + { + return GetBuilder(REQUEST_COLLECTION_IMAGES) + .SetUserState(userState) + .AddParameter(RequestBuilder.PARAMETER_LANGUAGE, language) + .AddUrlSegment(RequestBuilder.PARAMETER_ID, CollectionID) + .GetRequest(); + } + + #endregion + + + #region Movie Info + + internal RestRequest GetMovieInfo(int MovieID, string language, object userState = null) + { + return GetBuilder(REQUEST_MOVIE) + .SetUserState(userState) + .AddParameter(RequestBuilder.PARAMETER_LANGUAGE, language) + .AddUrlSegment(RequestBuilder.PARAMETER_ID, MovieID) + .GetRequest(); + } + + internal RestRequest GetMovieByIMDB(string imdbId, string language, object userState = null) + { + return GetBuilder(REQUEST_MOVIE) + .SetUserState(userState) + .AddParameter(RequestBuilder.PARAMETER_LANGUAGE, language) + .AddUrlSegment(RequestBuilder.PARAMETER_ID, imdbId) + .GetRequest(); + } + + internal RestRequest GetMovieAlternateTitles(int MovieID, string Country, object userState = null) + { + return GetBuilder(REQUEST_MOVIE_TITLES) + .SetUserState(userState) + .AddParameter(RequestBuilder.PARAMETER_COUNTRY, Country) + .AddUrlSegment(RequestBuilder.PARAMETER_ID, MovieID) + .GetRequest(); + } + + internal RestRequest GetMovieCast(int MovieID, object userState = null) + { + return GetBuilder(REQUEST_MOVIE_CAST) + .SetUserState(userState) + .AddUrlSegment(RequestBuilder.PARAMETER_ID, MovieID) + .GetRequest(); + } + + internal RestRequest GetMovieImages(int MovieID, string language, object userState = null) + { + return GetBuilder(REQUEST_MOVIE_IMAGES) + .SetUserState(userState) + .AddParameter(RequestBuilder.PARAMETER_LANGUAGE, language) + .AddUrlSegment(RequestBuilder.PARAMETER_ID, MovieID) + .GetRequest(); + } + + internal RestRequest GetMovieKeywords(int MovieID, object userState = null) + { + return GetBuilder(REQUEST_MOVIE_KEYWORDS) + .SetUserState(userState) + .AddUrlSegment(RequestBuilder.PARAMETER_ID, MovieID) + .GetRequest(); + } + + internal RestRequest GetMovieReleases(int MovieID, object userState = null) + { + return GetBuilder(REQUEST_MOVIE_RELEASES) + .SetUserState(userState) + .AddUrlSegment(RequestBuilder.PARAMETER_ID, MovieID) + .GetRequest(); + } + + internal RestRequest GetMovieTrailers(int MovieID, string language, object userState = null) + { + return GetBuilder(REQUEST_MOVIE_TRAILERS) + .SetUserState(userState) + .AddParameter(RequestBuilder.PARAMETER_LANGUAGE, language) + .AddUrlSegment(RequestBuilder.PARAMETER_ID, MovieID) + .GetRequest(); + } + + internal RestRequest GetSimilarMovies(int MovieID, int page, string language, object userState = null) + { + return GetBuilder(REQUEST_MOVIE_SIMILAR) + .SetUserState(userState) + .AddParameter(RequestBuilder.PARAMETER_PAGE, page) + .AddParameter(RequestBuilder.PARAMETER_LANGUAGE, language) + .AddUrlSegment(RequestBuilder.PARAMETER_ID, MovieID) + .GetRequest(); + } + + internal RestRequest GetMovieTranslations(int MovieID, object userState = null) + { + return GetBuilder(REQUEST_MOVIE_TRANSLATIONS) + .SetUserState(userState) + .AddUrlSegment(RequestBuilder.PARAMETER_ID, MovieID) + .GetRequest(); + } + + internal RestRequest GetMovieLists(int MovieID, int page, string language, object userState = null) + { + return GetBuilder(REQUEST_MOVIE_LISTS) + .SetUserState(userState) + .AddUrlSegment(RequestBuilder.PARAMETER_ID, MovieID) + .AddParameter(RequestBuilder.PARAMETER_PAGE, page) + .AddParameter(RequestBuilder.PARAMETER_LANGUAGE, language) + .GetRequest(); + } + + internal RestRequest GetMovieChanges(int MovieID, object userState = null) + { + return GetBuilder(REQUEST_MOVIE_CHANGES) + .SetUserState(userState) + .AddUrlSegment(RequestBuilder.PARAMETER_ID, MovieID) + .GetRequest(); + } + + #endregion + + + #region Person Info + + internal RestRequest GetPersonInfo(int PersonID, object userState = null) + { + return GetBuilder(REQUEST_PERSON) + .SetUserState(userState) + .AddUrlSegment(RequestBuilder.PARAMETER_ID, PersonID) + .GetRequest(); + } + + internal RestRequest GetPersonCredits(int PersonID, string language, object userState = null) + { + return GetBuilder(REQUEST_PERSON_CREDITS) + .SetUserState(userState) + .AddParameter(RequestBuilder.PARAMETER_LANGUAGE, language) + .AddUrlSegment(RequestBuilder.PARAMETER_ID, PersonID) + .GetRequest(); + } + + internal RestRequest GetPersonImages(int PersonID, object userState = null) + { + return GetBuilder(REQUEST_PERSON_IMAGES) + .SetUserState(userState) + .AddUrlSegment(RequestBuilder.PARAMETER_ID, PersonID) + .GetRequest(); + } + + internal RestRequest GetPersonChanges(int PersonID, object userState = null) + { + return GetBuilder(REQUEST_PERSON_CHANGES) + .SetUserState(userState) + .AddUrlSegment(RequestBuilder.PARAMETER_ID, PersonID) + .GetRequest(); + } + + #endregion + + + #region Miscellaneous Movie + + internal RestRequest GetLatestMovies(object userState = null) + { + return GetBuilder(REQUEST_MOVIE_LATEST) + .SetUserState(userState) + .GetRequest(); + } + + internal RestRequest GetNowPlayingMovies(int page, string language, object userState = null) + { + return GetBuilder(REQUEST_MOVIE_PLAYING) + .SetUserState(userState) + .AddParameter(RequestBuilder.PARAMETER_LANGUAGE, language) + .AddParameter(RequestBuilder.PARAMETER_PAGE, page) + .GetRequest(); + } + + internal RestRequest GetPopularMovies(int page, string language, object userState = null) + { + return GetBuilder(REQUEST_MOVIE_POPULAR) + .SetUserState(userState) + .AddParameter(RequestBuilder.PARAMETER_LANGUAGE, language) + .AddParameter(RequestBuilder.PARAMETER_PAGE, page) + .GetRequest(); + } + + internal RestRequest GetTopRatedMovies (int page, string language, object userState = null) + { + return GetBuilder (REQUEST_MOVIE_TOP) + .SetUserState (userState) + .AddParameter(RequestBuilder.PARAMETER_LANGUAGE, language) + .AddParameter(RequestBuilder.PARAMETER_PAGE, page) + .GetRequest(); + } + + internal RestRequest GetUpcomingMovies(int page, string language, object userState = null) + { + return GetBuilder(REQUEST_MOVIE_UPCOMING) + .SetUserState(userState) + .AddParameter(RequestBuilder.PARAMETER_LANGUAGE, language) + .AddParameter(RequestBuilder.PARAMETER_PAGE, page) + .GetRequest(); + } + + #endregion + + + #region Lists + + internal RestRequest GetList(string ListID, object userState = null) + { + return GetBuilder(REQUEST_LIST) + .SetUserState(userState) + .AddUrlSegment(RequestBuilder.PARAMETER_ID, ListID) + .GetRequest(); + } + + #endregion + + + #region Company Info + + internal RestRequest GetCompanyInfo(int CompanyID, object userState = null) + { + return GetBuilder(REQUEST_COMPANY) + .SetUserState(userState) + .AddUrlSegment(RequestBuilder.PARAMETER_ID, CompanyID) + .GetRequest(); + } + + internal RestRequest GetCompanyMovies(int CompanyID, int page, string language, object userState = null) + { + return GetBuilder(REQUEST_COMPANY_MOVIES) + .SetUserState(userState) + .AddParameter(RequestBuilder.PARAMETER_LANGUAGE, language) + .AddParameter(RequestBuilder.PARAMETER_PAGE, page) + .AddUrlSegment(RequestBuilder.PARAMETER_ID, CompanyID) + .GetRequest(); + } + + #endregion + + + #region Genre Info + + internal RestRequest GetGenreList(string language, object userState = null) + { + return GetBuilder(REQUEST_GENRE) + .SetUserState(userState) + .AddParameter(RequestBuilder.PARAMETER_LANGUAGE, language) + .GetRequest(); + } + + internal RestRequest GetGenreMovies(int GenreID, int page, string language, object userState = null) + { + return GetBuilder(REQUEST_GENRE_MOVIES) + .SetUserState(userState) + .AddParameter(RequestBuilder.PARAMETER_LANGUAGE, language) + .AddParameter(RequestBuilder.PARAMETER_PAGE, page) + .AddUrlSegment(RequestBuilder.PARAMETER_ID, GenreID) + .GetRequest(); + } + + #endregion + + + #region Keyword Methods + + internal RestRequest GetKeyword(int KeywordID, object userState = null) + { + return GetBuilder(REQUEST_KEYWORD) + .SetUserState(userState) + .AddUrlSegment(RequestBuilder.PARAMETER_ID, KeywordID) + .GetRequest(); + } + + internal RestRequest GetKeywordMovies(int KeywordID, int page, string language, object userState = null) + { + return GetBuilder(REQUEST_KEYWORD_MOVIES) + .SetUserState(userState) + .AddUrlSegment(RequestBuilder.PARAMETER_ID, KeywordID) + .AddParameter(RequestBuilder.PARAMETER_PAGE, page) + .AddParameter(RequestBuilder.PARAMETER_LANGUAGE, language) + .GetRequest(); + } + + #endregion + + + #region Changes Methods + + internal RestRequest GetChangesByMovie(int page, DateTime? StartDate, DateTime? EndDate, object userState = null) + { + return GetBuilder(REQUEST_CHANGES_MOVIES) + .SetUserState(userState) + .AddParameter(RequestBuilder.PARAMETER_PAGE, page) + .AddParameter(RequestBuilder.PARAMETER_STARTDATE, StartDate) + .AddParameter(RequestBuilder.PARAMETER_ENDDATE, EndDate) + .GetRequest(); + } + + internal RestRequest GetChangesByPerson(int page, DateTime? StartDate, DateTime? EndDate, object userState = null) + { + return GetBuilder(REQUEST_CHANGES_PERSON) + .SetUserState(userState) + .AddParameter(RequestBuilder.PARAMETER_PAGE, page) + .AddParameter(RequestBuilder.PARAMETER_STARTDATE, StartDate) + .AddParameter(RequestBuilder.PARAMETER_ENDDATE, EndDate) + .GetRequest(); + } + + #endregion + } +} diff --git a/WatTmdb/Utilities/Utility.cs b/WatTmdb/Utilities/Utility.cs new file mode 100644 index 0000000..3261d7e --- /dev/null +++ b/WatTmdb/Utilities/Utility.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; +using System.IO; + +namespace WatTmdb +{ + public static class Utility + { + // remove invalid characters for use in URL + public static string EscapeString(this string s) + { + if (string.IsNullOrEmpty(s)) + return string.Empty; + +#if WINDOWS_PHONE + return Regex.Replace(s, "[" + Regex.Escape(new String(Path.GetInvalidPathChars())) + "]", "-"); +#else + return Regex.Replace(s, "[" + Regex.Escape(new String(Path.GetInvalidFileNameChars())) + "]", "-"); +#endif + } + } +} diff --git a/WatTmdb/Utilities/WatJsonDeserializer.cs b/WatTmdb/Utilities/WatJsonDeserializer.cs new file mode 100644 index 0000000..f9ebf21 --- /dev/null +++ b/WatTmdb/Utilities/WatJsonDeserializer.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using RestSharp.Deserializers; + +namespace WatTmdb.V3 +{ + public class WatJsonDeserializer : IDeserializer + { + #region IDeserializer Members + + public T Deserialize(RestSharp.IRestResponse response) + { + if (response.Content == null) + return default(T); + + // 2012-07-26 - attempt to handle some of the bad json content, eg Similar Movies for id 80271 containing null values + // amongst the other objects in the results array + // eg ...."vote_average":0.0,"vote_count":0},null,null,{"backdrop_path":null,"id":73736,"original_title":... + // ^^^^ ^^^^ + // Causes "Object reference not set to an instance of an object" exception during deserialization + while (response.Content.IndexOf("},null,") != -1) + { + response.Content = response.Content.Replace("},null,", "},"); + } + + while (response.Content.IndexOf("[null,") != -1) + { + response.Content = response.Content.Replace("[null,", "["); + } + + var deserializer = new JsonDeserializer(); + var data = deserializer.Deserialize(response); + + return data; + } + + public string DateFormat { get; set; } + public string Namespace { get; set; } + public string RootElement { get; set; } + + #endregion + } +} diff --git a/WatTmdb/Utility.cs b/WatTmdb/Utility.cs new file mode 100644 index 0000000..8de4572 --- /dev/null +++ b/WatTmdb/Utility.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; +using System.IO; + +namespace WatTmdb +{ + public static class Utility + { + // remove invalid characters for use in URL + public static string EscapeString(this string s) + { +#if WINDOWS_PHONE + return Regex.Replace(s, "[" + Regex.Escape(new String(Path.GetInvalidPathChars())) + "]", "-"); +#else + return Regex.Replace(s, "[" + Regex.Escape(new String(Path.GetInvalidFileNameChars())) + "]", "-"); +#endif + } + } +} diff --git a/WatTmdb/V3/Tmdb.Sync.cs b/WatTmdb/V3/Tmdb.Sync.cs new file mode 100644 index 0000000..84465df --- /dev/null +++ b/WatTmdb/V3/Tmdb.Sync.cs @@ -0,0 +1,831 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using RestSharp; +using System.Net; + +namespace WatTmdb.V3 +{ + public partial class Tmdb + { + private T ProcessRequest(RestRequest request) + where T : new() + { + var client = new RestClient(BASE_URL); + client.AddHandler("application/json", new WatJsonDeserializer()); + + if (Timeout.HasValue) + client.Timeout = Timeout.Value; + +#if !WINDOWS_PHONE + if (Proxy != null) + client.Proxy = Proxy; +#endif + + Error = null; + + request.AddHeader("Accept", "application/json"); + request.AddParameter("api_key", ApiKey); + + var resp = client.Execute(request); + + ResponseContent = resp.Content; + ResponseHeaders = resp.Headers.ToDictionary(k => k.Name, v => v.Value); + + if (resp.ResponseStatus == ResponseStatus.Completed) + { + if (resp.Content.Contains("status_message")) + Error = jsonDeserializer.Deserialize(resp); + + return resp.Data; + } + else + { + if (resp.Content.Contains("status_message")) + Error = jsonDeserializer.Deserialize(resp); + else if (resp.ErrorException != null) + throw resp.ErrorException; + else + Error = new TmdbError { status_message = resp.ErrorMessage }; + } + + return default(T); + } + + private string ProcessRequestETag(RestRequest request) + { + var client = new RestClient(BASE_URL); + if (Timeout.HasValue) + client.Timeout = Timeout.Value; + +#if !WINDOWS_PHONE + if (Proxy != null) + client.Proxy = Proxy; +#endif + Error = null; + + request.Method = Method.HEAD; + request.AddHeader("Accept", "application/json"); + request.AddParameter("api_key", ApiKey); + + var resp = client.Execute(request); + ResponseContent = resp.Content; + ResponseHeaders = resp.Headers.ToDictionary(k => k.Name, v => v.Value); + + if (resp.ResponseStatus != ResponseStatus.Completed && resp.ErrorException != null) + throw resp.ErrorException; + + return this.ResponseETag; + } + + + #region Configuration + /// + /// Retrieve configuration data from TMDB + /// (http://help.themoviedb.org/kb/api/configuration) + /// + /// + public TmdbConfiguration GetConfiguration() + { + return ProcessRequest(BuildGetConfigurationRequest()); + } + + public string GetConfigurationETag() + { + return ProcessRequestETag(BuildGetConfigurationRequest()); + } + + #endregion + + + #region Authentication + //public TmdbAuthToken GetAuthToken() + //{ + // var request = new RestRequest("authentication/token/new", Method.GET); + // return ProcessRequest(request); + //} + + //public TmdbAuthSession GetAuthSession(string RequestToken) + //{ + // var request = new RestRequest("authentication/session/new", Method.GET); + // request.AddParameter("request_token", RequestToken); + // return ProcessRequest(request); + //} + #endregion + + + #region Search + /// + /// Search for movies that are listed in TMDB + /// (http://help.themoviedb.org/kb/api/search-movies) + /// + /// Is your search text. + /// Result page to retrieve (1 based) + /// optional - ISO 639-1 language code + /// optional - include adult items in your search, (Default=false) + /// optional - to get a closer result + /// + public TmdbMovieSearch SearchMovie(string query, int page, string language, bool? includeAdult = null, int? year = null) + { + if (string.IsNullOrEmpty(query)) + throw new ArgumentException("Search must be supplied"); + + return ProcessRequest(BuildSearchMovieRequest(query, page, language, includeAdult, year)); + } + + /// + /// Search for movies that are listed in TMDB + /// (http://help.themoviedb.org/kb/api/search-movies) + /// + /// Is your search text. + /// Result page to retrieve (1 based) + /// + public TmdbMovieSearch SearchMovie(string query, int page) + { + return SearchMovie(query, page, Language); + } + + /// + /// Search for people that are listed in TMDB. + /// (http://help.themoviedb.org/kb/api/search-people) + /// + /// Is your search text. + /// Result page to retrieve (1 based) + /// optional - ISO 639-1 language code + /// + public TmdbPersonSearch SearchPerson(string query, int page, string language) + { + if (string.IsNullOrEmpty(query)) + throw new ArgumentException("Search must be supplied"); + + return ProcessRequest(BuildSearchPersonRequest(query, page, language)); + } + + /// + /// Search for people that are listed in TMDB. + /// (http://help.themoviedb.org/kb/api/search-people) + /// + /// Is your search text. + /// Result page to retrieve (1 based) + /// + public TmdbPersonSearch SearchPerson(string query, int page) + { + return SearchPerson(query, page, Language); + } + + /// + /// Search for production companies that are part of TMDB. + /// (http://help.themoviedb.org/kb/api/search-companies) + /// + /// Is your search text. + /// Result page to retrieve (1 based) + /// + public TmdbCompanySearch SearchCompany(string query, int page) + { + if (string.IsNullOrEmpty(query)) + throw new ArgumentException("Search must be supplied"); + + return ProcessRequest(BuildSearchCompanyRequest(query, page)); + } + + #endregion + + + #region Collections + /// + /// Get all of the basic information about a movie collection. + /// (http://help.themoviedb.org/kb/api/collection-info) + /// + /// Collection ID, available in TmdbMovie::belongs_to_collection + /// optional - ISO 639-1 language code + /// + public TmdbCollection GetCollectionInfo(int CollectionID, string language) + { + return ProcessRequest(BuildGetCollectionInfoRequest(CollectionID, language)); + } + + public string GetCollectionInfoETag(int CollectionID, string language) + { + return ProcessRequestETag(BuildGetCollectionInfoRequest(CollectionID, language)); + } + + /// + /// Get all of the basic information about a movie collection. + /// (http://help.themoviedb.org/kb/api/collection-info) + /// + /// Collection ID, available in TmdbMovie::belongs_to_collection + /// + public TmdbCollection GetCollectionInfo(int CollectionID) + { + return GetCollectionInfo(CollectionID, Language); + } + + public string GetCollectionInfoETag(int CollectionID) + { + return GetCollectionInfoETag(CollectionID, Language); + } + + /// + /// Get all the images for a movie collection + /// http://help.themoviedb.org/kb/api/collection-images + /// + /// Collection ID, available in TmdbMovie::belongs_to_collection + /// optional - ISO 639-1 language code + /// + public TmdbCollectionImages GetCollectionImages(int CollectionID, string language) + { + return ProcessRequest(BuildGetCollectionImagesRequest(CollectionID, language)); + } + + public string GetCollectionImagesETag(int CollectionID, string language) + { + return ProcessRequestETag(BuildGetCollectionImagesRequest(CollectionID, language)); + } + + /// + /// Get all the images for a movie collection + /// http://help.themoviedb.org/kb/api/collection-images + /// + /// Collection ID, available in TmdbMovie::belongs_to_collection + /// + public TmdbCollectionImages GetCollectionImages(int CollectionID) + { + return GetCollectionImages(CollectionID, Language); + } + + public string GetCollectionImagesETag(int CollectionID) + { + return GetCollectionImagesETag(CollectionID, Language); + } + #endregion + + + #region Movie Info + /// + /// Retrieve all the basic movie information for a particular movie by TMDB reference. + /// (http://help.themoviedb.org/kb/api/movie-info) + /// + /// TMDB movie id + /// optional - ISO 639-1 language code + /// + public TmdbMovie GetMovieInfo(int MovieID, string language) + { + return ProcessRequest(BuildGetMovieInfoRequest(MovieID, language)); + } + + public string GetMovieInfoETag(int MovieID, string language) + { + return ProcessRequestETag(BuildGetMovieInfoRequest(MovieID, language)); + } + + /// + /// Retrieve all the basic movie information for a particular movie by TMDB reference. + /// (http://help.themoviedb.org/kb/api/movie-info) + /// + /// TMDB movie id + /// + public TmdbMovie GetMovieInfo(int MovieID) + { + return GetMovieInfo(MovieID, Language); + } + + public string GetMovieInfoETag(int MovieID) + { + return GetMovieInfoETag(MovieID, Language); + } + + /// + /// Retrieve all the basic movie information for a particular movie by IMDB reference. + /// (http://help.themoviedb.org/kb/api/movie-info) + /// + /// IMDB movie id + /// + public TmdbMovie GetMovieByIMDB(string IMDB_ID, string language) + { + if (string.IsNullOrEmpty(IMDB_ID)) + throw new ArgumentException("IMDB_ID must be supplied"); + + return ProcessRequest(BuildGetMovieByIMDBRequest(IMDB_ID, language)); + } + + public TmdbMovie GetMovieByIMDB(string IMDB_ID) + { + return GetMovieByIMDB(IMDB_ID, Language); + } + + /// + /// Get list of all the alternative titles for a particular movie. + /// (http://help.themoviedb.org/kb/api/movie-alternative-titles) + /// + /// TMDB movie id + /// ISO 3166-1 country code (optional) + /// + public TmdbMovieAlternateTitles GetMovieAlternateTitles(int MovieID, string Country) + { + return ProcessRequest(BuildGetMovieAlternateTitlesRequest(MovieID, Country)); + } + + public string GetMovieAlternateTitlesETag(int MovieID, string Country) + { + return ProcessRequestETag(BuildGetMovieAlternateTitlesRequest(MovieID, Country)); + } + + /// + /// Get list of all the cast information for a particular movie. + /// (http://help.themoviedb.org/kb/api/movie-casts) + /// + /// TMDB movie id + /// + public TmdbMovieCast GetMovieCast(int MovieID) + { + return ProcessRequest(BuildGetMovieCastRequest(MovieID)); + } + + public string GetMovieCastETag(int MovieID) + { + return ProcessRequestETag(BuildGetMovieCastRequest(MovieID)); + } + + /// + /// Get list of all the images for a particular movie. + /// (http://help.themoviedb.org/kb/api/movie-images) + /// + /// TMDB movie id + /// optional - ISO 639-1 language code + /// + public TmdbMovieImages GetMovieImages(int MovieID, string language) + { + return ProcessRequest(BuildGetMovieImagesRequest(MovieID, language)); + } + + public string GetMovieImagesETag(int MovieID, string language) + { + return ProcessRequestETag(BuildGetMovieImagesRequest(MovieID, language)); + } + + /// + /// Get list of all the images for a particular movie. + /// (http://help.themoviedb.org/kb/api/movie-images) + /// + /// TMDB movie id + /// + public TmdbMovieImages GetMovieImages(int MovieID) + { + return GetMovieImages(MovieID, Language); + } + + public string GetMovieImagesETag(int MovieID) + { + return GetMovieImagesETag(MovieID, Language); + } + + /// + /// Get list of all the keywords that have been added to a particular movie. Only English keywords exist currently. + /// (http://help.themoviedb.org/kb/api/movie-keywords) + /// + /// TMDB movie id + /// + public TmdbMovieKeywords GetMovieKeywords(int MovieID) + { + return ProcessRequest(BuildGetMovieKeywordsRequest(MovieID)); + } + + public string GetMovieKeywordsETag(int MovieID) + { + return ProcessRequestETag(BuildGetMovieKeywordsRequest(MovieID)); + } + + /// + /// Get all the release and certification data in TMDB for a particular movie + /// (http://help.themoviedb.org/kb/api/movie-release-info) + /// + /// TMDB movie id + /// + public TmdbMovieReleases GetMovieReleases(int MovieID) + { + return ProcessRequest(BuildGetMovieReleasesRequest(MovieID)); + } + + public string GetMovieReleasesETag(int MovieID) + { + return ProcessRequestETag(BuildGetMovieReleasesRequest(MovieID)); + } + + /// + /// Get list of trailers for a particular movie. + /// (http://help.themoviedb.org/kb/api/movie-trailers) + /// + /// TMDB movie id + /// optional - ISO 639-1 language code + /// + public TmdbMovieTrailers GetMovieTrailers(int MovieID, string language) + { + return ProcessRequest(BuildGetMovieTrailersRequest(MovieID, language)); + } + + public string GetMovieTrailersETag(int MovieID, string language) + { + return ProcessRequestETag(BuildGetMovieTrailersRequest(MovieID, language)); + } + + /// + /// Get list of trailers for a particular movie. + /// (http://help.themoviedb.org/kb/api/movie-trailers) + /// + /// TMDB movie id + /// + public TmdbMovieTrailers GetMovieTrailers(int MovieID) + { + return GetMovieTrailers(MovieID, Language); + } + + public string GetMovieTrailersETag(int MovieID) + { + return GetMovieTrailersETag(MovieID, Language); + } + + /// + /// Get list of similar movies for a particular movie. + /// (http://help.themoviedb.org/kb/api/movie-similar-movies) + /// + /// TMDB movie id + /// Result page to retrieve (1 based) + /// optional - ISO 639-1 language code + /// + public TmdbSimilarMovies GetSimilarMovies(int MovieID, int page, string language) + { + return ProcessRequest(BuildGetSimilarMoviesRequest(MovieID, page, language)); + } + + /// + /// Get list of similar movies for a particular movie. + /// (http://help.themoviedb.org/kb/api/movie-similar-movies) + /// + /// TMDB movie id + /// Result page to retrieve (1 based) + /// + public TmdbSimilarMovies GetSimilarMovies(int MovieID, int page) + { + return GetSimilarMovies(MovieID, page, Language); + } + + /// + /// Get list of all available translations for a specific movie. + /// (http://help.themoviedb.org/kb/api/movie-translations) + /// + /// TMDB movie id + /// + public TmdbTranslations GetMovieTranslations(int MovieID) + { + return ProcessRequest(BuildGetMovieTranslationsRequest(MovieID)); + } + + public string GetMovieTranslationsETag(int MovieID) + { + return ProcessRequestETag(BuildGetMovieTranslationsRequest(MovieID)); + } + #endregion + + + #region Person Info + /// + /// Get all of the basic information for a person. + /// (http://help.themoviedb.org/kb/api/person-info) + /// + /// Person ID + /// + public TmdbPerson GetPersonInfo(int PersonID) + { + return ProcessRequest(BuildGetPersonInfoRequest(PersonID)); + } + + public string GetPersonInfoETag(int PersonID) + { + return ProcessRequestETag(BuildGetPersonInfoRequest(PersonID)); + } + + /// + /// Get list of cast and crew information for a person. + /// (http://help.themoviedb.org/kb/api/person-credits) + /// + /// Person ID + /// optional - ISO 639-1 language code + /// + public TmdbPersonCredits GetPersonCredits(int PersonID, string language) + { + return ProcessRequest(BuildGetPersonCreditsRequest(PersonID, language)); + } + + public string GetPersonCreditsETag(int PersonID, string language) + { + return ProcessRequestETag(BuildGetPersonCreditsRequest(PersonID, language)); + } + + /// + /// Get list of cast and crew information for a person. + /// (http://help.themoviedb.org/kb/api/person-credits) + /// + /// Person ID + /// + public TmdbPersonCredits GetPersonCredits(int PersonID) + { + return GetPersonCredits(PersonID, Language); + } + + public string GetPersonCreditsETag(int PersonID) + { + return GetPersonCreditsETag(PersonID, Language); + } + + /// + /// Get list of images for a person. + /// (http://help.themoviedb.org/kb/api/person-images) + /// + /// Person ID + /// + public TmdbPersonImages GetPersonImages(int PersonID) + { + return ProcessRequest(BuildGetPersonImagesRequest(PersonID)); + } + + public string GetPersonImagesETag(int PersonID) + { + return ProcessRequestETag(BuildGetPersonImagesRequest(PersonID)); + } + #endregion + + + #region Miscellaneous Movie + /// + /// Get the newest movie added to the TMDB. + /// (http://help.themoviedb.org/kb/api/latest-movie) + /// + /// + public TmdbLatestMovie GetLatestMovie() + { + return ProcessRequest(BuildGetLatestMovieRequest()); + } + + public string GetLatestMovieETag() + { + return ProcessRequestETag(BuildGetLatestMovieRequest()); + } + + /// + /// Get the list of movies currently in theatres. Response will contain 20 movies per page. + /// (http://help.themoviedb.org/kb/api/now-playing-movies) + /// + /// Result page to retrieve (1 based) + /// optional - ISO 639-1 language code + /// + public TmdbNowPlaying GetNowPlayingMovies(int page, string language) + { + return ProcessRequest(BuildGetNowPlayingMoviesRequest(page, language)); + } + + public string GetNowPlayingMoviesETag(int page, string language) + { + return ProcessRequestETag(BuildGetNowPlayingMoviesRequest(page, language)); + } + + /// + /// Get the list of movies currently in theatres. Response will contain 20 movies per page. + /// (http://help.themoviedb.org/kb/api/now-playing-movies) + /// + /// Result page to retrieve (1 based) + /// + public TmdbNowPlaying GetNowPlayingMovies(int page) + { + return GetNowPlayingMovies(page, Language); + } + + public string GetNowPlayingMoviesETag(int page) + { + return GetNowPlayingMoviesETag(page, Language); + } + + /// + /// Get the daily popularity list of movies. Response will contain 20 movies per page. + /// (http://help.themoviedb.org/kb/api/popular-movie-list) + /// + /// Result page to retrieve (1 based) + /// optional - ISO 639-1 language code + /// + public TmdbPopular GetPopularMovies(int page, string language) + { + return ProcessRequest(BuildGetPopularMoviesRequest(page, language)); + } + + public string GetPopularMoviesETag(int page, string language) + { + return ProcessRequestETag(BuildGetPopularMoviesRequest(page, language)); + } + + /// + /// Get the daily popularity list of movies. Response will contain 20 movies per page. + /// (http://help.themoviedb.org/kb/api/popular-movie-list) + /// + /// Result page to retrieve (1 based) + /// + public TmdbPopular GetPopularMovies(int page) + { + return GetPopularMovies(page, Language); + } + + public string GetPopularMoviesETag(int page) + { + return GetPopularMoviesETag(page, Language); + } + + /// + /// Get list of movies that have over 10 votes on TMDB. Response will contain 20 movies per page. + /// (http://help.themoviedb.org/kb/api/top-rated-movies) + /// + /// Result page to retrieve (1 based) + /// optional - ISO 639-1 language code + /// + public TmdbTopRated GetTopRatedMovies(int page, string language) + { + return ProcessRequest(BuildGetTopRatedMoviesRequest(page, language)); + } + + public string GetTopRatedMoviesETag(int page, string language) + { + return ProcessRequestETag(BuildGetTopRatedMoviesRequest(page, language)); + } + + /// + /// Get list of movies that have over 10 votes on TMDB. Response will contain 20 movies per page. + /// (http://help.themoviedb.org/kb/api/top-rated-movies) + /// + /// Result page to retrieve (1 based) + /// + public TmdbTopRated GetTopRatedMovies(int page) + { + return GetTopRatedMovies(page, Language); + } + + public string GetTopRatedMoviesETag(int page) + { + return GetTopRatedMoviesETag(page, Language); + } + + /// + /// Get list of movies that are arriving to theatres in the next few weeks. + /// (http://help.themoviedb.org/kb/api/upcoming-movies) + /// + /// Result page to retrieve (1 based) + /// optional - ISO 639-1 language code + /// + public TmdbUpcoming GetUpcomingMovies(int page, string language) + { + return ProcessRequest(BuildGetUpcomingMoviesRequest(page, language)); + } + + public string GetUpcomingMoviesETag(int page, string language) + { + return ProcessRequestETag(BuildGetUpcomingMoviesRequest(page, language)); + } + + /// + /// Get list of movies that are arriving to theatres in the next few weeks. + /// (http://help.themoviedb.org/kb/api/upcoming-movies) + /// + /// Result page to retrieve (1 based) + /// + public TmdbUpcoming GetUpcomingMovies(int page) + { + return GetUpcomingMovies(page, Language); + } + + public string GetUpcomingMoviesETag(int page) + { + return GetUpcomingMoviesETag(page, Language); + } + #endregion + + + #region Company Info + /// + /// Get basic information about a production company from TMDB. + /// (http://help.themoviedb.org/kb/api/company-info) + /// + /// Company ID + /// + public TmdbCompany GetCompanyInfo(int CompanyID) + { + return ProcessRequest(BuildGetCompanyInfoRequest(CompanyID)); + } + + public string GetCompanyInfoETag(int CompanyID) + { + return ProcessRequestETag(BuildGetCompanyInfoRequest(CompanyID)); + } + + /// + /// Get list of movies associated with a company. Response will contain 20 movies per page. + /// (http://help.themoviedb.org/kb/api/company-movies) + /// + /// Company ID + /// Result page to retrieve (1 based) + /// optional - ISO 639-1 language code + /// + public TmdbCompanyMovies GetCompanyMovies(int CompanyID, int page, string language) + { + return ProcessRequest(BuildGetCompanyMoviesRequest(CompanyID, page, language)); + } + + public string GetCompanyMoviesETag(int CompanyID, int page, string language) + { + return ProcessRequestETag(BuildGetCompanyMoviesRequest(CompanyID, page, language)); + } + + /// + /// Get list of movies associated with a company. Response will contain 20 movies per page. + /// (http://help.themoviedb.org/kb/api/company-movies) + /// + /// Company ID + /// Result page to retrieve (1 based) + /// + public TmdbCompanyMovies GetCompanyMovies(int CompanyID, int page) + { + return GetCompanyMovies(CompanyID, page, Language); + } + + public string GetCompanyMoviesETag(int CompanyID, int page) + { + return GetCompanyMoviesETag(CompanyID, page, Language); + } + #endregion + + + #region Genre Info + /// + /// Get list of genres used in TMDB. The ids will correspond to those found in movie calls. + /// (http://help.themoviedb.org/kb/api/genre-list) + /// + /// optional - ISO 639-1 language code + /// + public TmdbGenre GetGenreList(string language) + { + return ProcessRequest(BuildGetGenreListRequest(language)); + } + + public string GetGenreListETag(string language) + { + return ProcessRequestETag(BuildGetGenreListRequest(language)); + } + + /// + /// Get list of genres used in TMDB. The ids will correspond to those found in movie calls. + /// (http://help.themoviedb.org/kb/api/genre-list) + /// + /// + public TmdbGenre GetGenreList() + { + return GetGenreList(Language); + } + + public string GetGenreListETag() + { + return GetGenreListETag(Language); + } + + /// + /// Get list of movies in a Genre. Note that only movies with more than 10 votes get listed. + /// (http://help.themoviedb.org/kb/api/genre-movies) + /// + /// TMDB Genre ID + /// Result page to retrieve (1 based) + /// optional - ISO 639-1 language code + /// + public TmdbGenreMovies GetGenreMovies(int GenreID, int page, string language) + { + return ProcessRequest(BuildGetGenreMoviesRequest(GenreID, page, language)); + } + + public string GetGenreMoviesETag(int GenreID, int page, string language) + { + return ProcessRequestETag(BuildGetGenreMoviesRequest(GenreID, page, language)); + } + + /// + /// Get list of movies in a Genre. Note that only movies with more than 10 votes get listed. + /// (http://help.themoviedb.org/kb/api/genre-movies) + /// + /// TMDB Genre ID + /// Result page to retrieve (1 based) + /// + public TmdbGenreMovies GetGenreMovies(int GenreID, int page) + { + return GetGenreMovies(GenreID, page, Language); + } + + public string GetGenreMoviesETag(int GenreID, int page) + { + return GetGenreMoviesETag(GenreID, page, Language); + } + #endregion + } +} diff --git a/WatTmdb/V3/TmdbAccount.cs b/WatTmdb/V3/TmdbAccount.cs new file mode 100644 index 0000000..ea8a9f7 --- /dev/null +++ b/WatTmdb/V3/TmdbAccount.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WatTmdb.V3 +{ + public class TmdbAccount + { + public int id { get; set; } + public bool include_adult { get; set; } + public string iso_3166_1 { get; set; } + public string iso_639_1 { get; set; } + public string name { get; set; } + public string username { get; set; } + } +} diff --git a/WatTmdb/V3/TmdbAccountMovies.cs b/WatTmdb/V3/TmdbAccountMovies.cs new file mode 100644 index 0000000..e671a51 --- /dev/null +++ b/WatTmdb/V3/TmdbAccountMovies.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WatTmdb.V3 +{ + public class AccountMovie + { + public string backdrop_path { get; set; } + public int id { get; set; } + public string original_title { get; set; } + public string release_date { get; set; } + public string poster_path { get; set; } + public string title { get; set; } + public double vote_average { get; set; } + public int vote_count { get; set; } + } + + public class TmdbAccountMovies : TmdbSearchResultBase + { } +} diff --git a/WatTmdb/V3/TmdbAsyncResult.cs b/WatTmdb/V3/TmdbAsyncResult.cs new file mode 100644 index 0000000..def1957 --- /dev/null +++ b/WatTmdb/V3/TmdbAsyncResult.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WatTmdb.V3 +{ + public class TmdbAsyncResult + { + public T Data { get; set; } + public TmdbError Error { get; set; } + public object UserState { get; set; } + } + + public class TmdbAsyncETagResult + { + public string ETag { get; set; } + public object UserState { get; set; } + } +} diff --git a/WatTmdb/V3/TmdbAuthSession.cs b/WatTmdb/V3/TmdbAuthSession.cs new file mode 100644 index 0000000..52717e2 --- /dev/null +++ b/WatTmdb/V3/TmdbAuthSession.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WatTmdb.V3 +{ + public class TmdbAuthSession + { + public string session_id { get; set; } + public bool success { get; set; } + } +} diff --git a/WatTmdb/V3/TmdbAuthToken.cs b/WatTmdb/V3/TmdbAuthToken.cs new file mode 100644 index 0000000..492b6d6 --- /dev/null +++ b/WatTmdb/V3/TmdbAuthToken.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WatTmdb.V3 +{ + public class TmdbAuthToken + { + public string expires_at { get; set; } + public string request_token { get; set; } + public bool success { get; set; } + } +} diff --git a/WatTmdb/V3/TmdbChanges.cs b/WatTmdb/V3/TmdbChanges.cs new file mode 100644 index 0000000..9a32837 --- /dev/null +++ b/WatTmdb/V3/TmdbChanges.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WatTmdb.V3 +{ + public class ChangesItem + { + public int id { get; set; } + public bool adult { get; set; } + } + + public class TmdbChanges : TmdbSearchResultBase + { } +} diff --git a/WatTmdb/V3/TmdbCollection.cs b/WatTmdb/V3/TmdbCollection.cs new file mode 100644 index 0000000..093c3ad --- /dev/null +++ b/WatTmdb/V3/TmdbCollection.cs @@ -0,0 +1,51 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WatTmdb.V3 +{ + public class CollectionPart + { + public string title { get; set; } + public int id { get; set; } + public string release_date { get; set; } + public string poster_path { get; set; } + public string backdrop_path { get; set; } + + public override string ToString() + { + return title; + } + } + + public class TmdbCollection + { + public int id { get; set; } + public string name { get; set; } + public string poster_path { get; set; } + public string backdrop_path { get; set; } + public List parts { get; set; } + + public override string ToString() + { + return name; + } + } + + public class CollectionSearch + { + public int id { get; set; } + public string backdrop_path { get; set; } + public string name { get; set; } + public string poster_path { get; set; } + + public override string ToString() + { + return name; + } + } + + public class TmdbCollectionSearch : TmdbSearchResultBase + { } +} diff --git a/WatTmdb/V3/TmdbCollectionImages.cs b/WatTmdb/V3/TmdbCollectionImages.cs new file mode 100644 index 0000000..1348c4a --- /dev/null +++ b/WatTmdb/V3/TmdbCollectionImages.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WatTmdb.V3 +{ + public class CollectionBackdrop + { + public string file_path { get; set; } + public int width { get; set; } + public int height { get; set; } + public string iso_639_1 { get; set; } + public double aspect_ratio { get; set; } + } + + public class CollectionPoster + { + public string file_path { get; set; } + public int width { get; set; } + public int height { get; set; } + public string iso_639_1 { get; set; } + public double aspect_ratio { get; set; } + } + + public class TmdbCollectionImages + { + public List backdrops { get; set; } + public List posters { get; set; } + } +} diff --git a/WatTmdb/V3/TmdbCompany.cs b/WatTmdb/V3/TmdbCompany.cs new file mode 100644 index 0000000..8b11fbf --- /dev/null +++ b/WatTmdb/V3/TmdbCompany.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WatTmdb.V3 +{ + public class ParentCompany + { + public string name { get; set; } + public int id { get; set; } + public string logo_path { get; set; } + + public override string ToString() + { + return name; + } + } + + public class TmdbCompany + { + public string description { get; set; } + public string headquarters { get; set; } + public string homepage { get; set; } + public int id { get; set; } + public string logo_path { get; set; } + public string name { get; set; } + public ParentCompany parent_company { get; set; } + + public override string ToString() + { + return name; + } + } +} diff --git a/WatTmdb/V3/TmdbCompanyMovies.cs b/WatTmdb/V3/TmdbCompanyMovies.cs new file mode 100644 index 0000000..235b1b1 --- /dev/null +++ b/WatTmdb/V3/TmdbCompanyMovies.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WatTmdb.V3 +{ + public class CompanyMovie + { + public string backdrop_path { get; set; } + public int id { get; set; } + public string original_title { get; set; } + public string release_date { get; set; } + public string poster_path { get; set; } + public string title { get; set; } + public double vote_average { get; set; } + public int vote_count { get; set; } + + public override string ToString() + { + return title; + } + } + + public class TmdbCompanyMovies : TmdbSearchResultBase + { + public int id { get; set; } + } +} diff --git a/WatTmdb/V3/TmdbCompanySearch.cs b/WatTmdb/V3/TmdbCompanySearch.cs new file mode 100644 index 0000000..a72073d --- /dev/null +++ b/WatTmdb/V3/TmdbCompanySearch.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WatTmdb.V3 +{ + public class CompanyResult + { + public int id { get; set; } + public string logo_path { get; set; } + public string name { get; set; } + + public override string ToString() + { + return name; + } + } + + public class TmdbCompanySearch : TmdbSearchResultBase + { } +} diff --git a/WatTmdb/V3/TmdbConfiguration.cs b/WatTmdb/V3/TmdbConfiguration.cs new file mode 100644 index 0000000..99d8d2a --- /dev/null +++ b/WatTmdb/V3/TmdbConfiguration.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WatTmdb.V3 +{ + public class ImageConfiguration + { + public string base_url { get; set; } + public string secure_base_url { get; set; } + public List poster_sizes { get; set; } + public List backdrop_sizes { get; set; } + public List profile_sizes { get; set; } + public List logo_sizes { get; set; } + } + + public class TmdbConfiguration + { + public ImageConfiguration images { get; set; } + public List change_keys { get; set; } + } +} diff --git a/WatTmdb/V3/TmdbError.cs b/WatTmdb/V3/TmdbError.cs new file mode 100644 index 0000000..7d298c2 --- /dev/null +++ b/WatTmdb/V3/TmdbError.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WatTmdb.V3 +{ + public class TmdbError + { + public int status_code { get; set; } + public string status_message { get; set; } + } +} diff --git a/WatTmdb/V3/TmdbGenre.cs b/WatTmdb/V3/TmdbGenre.cs new file mode 100644 index 0000000..f347dae --- /dev/null +++ b/WatTmdb/V3/TmdbGenre.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WatTmdb.V3 +{ + public class TmdbGenre + { + public List genres { get; set; } + } +} diff --git a/WatTmdb/V3/TmdbGenreMovies.cs b/WatTmdb/V3/TmdbGenreMovies.cs new file mode 100644 index 0000000..dd61a80 --- /dev/null +++ b/WatTmdb/V3/TmdbGenreMovies.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WatTmdb.V3 +{ + public class GenreMovie : TmdbMovieBase { } + + public class TmdbGenreMovies : TmdbSearchResultBase + { + public int id { get; set; } + } +} diff --git a/WatTmdb/V3/TmdbGuestSession.cs b/WatTmdb/V3/TmdbGuestSession.cs new file mode 100644 index 0000000..cca1ed2 --- /dev/null +++ b/WatTmdb/V3/TmdbGuestSession.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WatTmdb.V3 +{ + public class TmdbGuestSession + { + public string guest_session_id { get; set; } + public string expires_at { get; set; } + public bool success { get; set; } + } +} diff --git a/WatTmdb/V3/TmdbKeywords.cs b/WatTmdb/V3/TmdbKeywords.cs new file mode 100644 index 0000000..8b1fb2e --- /dev/null +++ b/WatTmdb/V3/TmdbKeywords.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WatTmdb.V3 +{ + public class TmdbKeyword + { + public int id { get; set; } + public string name { get; set; } + } + + public class KeywordMovie + { + public string backdrop_path { get; set; } + public int id { get; set; } + public string original_title { get; set; } + public string release_date { get; set; } + public string poster_path { get; set; } + public string title { get; set; } + public double vote_average { get; set; } + public int vote_count { get; set; } + + public override string ToString() + { + return title; + } + } + + public class TmdbKeywordMovies : TmdbSearchResultBase + { + public int id { get; set; } + } + + public class TmdbKeywordSearch : TmdbSearchResultBase + { } +} diff --git a/WatTmdb/V3/TmdbLatestMovie.cs b/WatTmdb/V3/TmdbLatestMovie.cs new file mode 100644 index 0000000..181f7e1 --- /dev/null +++ b/WatTmdb/V3/TmdbLatestMovie.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WatTmdb.V3 +{ + public class TmdbLatestMovie + { + public bool adult { get; set; } + public string backdrop_path { get; set; } + public BelongsToCollection belongs_to_collection { get; set; } + public int budget { get; set; } + public List genres { get; set; } + public string homepage { get; set; } + public int id { get; set; } + public string imdb_id { get; set; } + public string original_title { get; set; } + public string overview { get; set; } + public double popularity { get; set; } + public string poster_path { get; set; } + public List production_companies { get; set; } + public List production_countries { get; set; } + public string release_date { get; set; } + public Int64 revenue { get; set; } + public int runtime { get; set; } + public List spoken_languages { get; set; } + public string tagline { get; set; } + public string title { get; set; } + public double vote_average { get; set; } + public int vote_count { get; set; } + + public override string ToString() + { + return title; + } + } +} diff --git a/WatTmdb/V3/TmdbList.cs b/WatTmdb/V3/TmdbList.cs new file mode 100644 index 0000000..a7f17a1 --- /dev/null +++ b/WatTmdb/V3/TmdbList.cs @@ -0,0 +1,53 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WatTmdb.V3 +{ + public class ListItem + { + public string description { get; set; } + public int favorite_count { get; set; } + public string id { get; set; } + public int item_count { get; set; } + public string iso_639_1 { get; set; } + public string list_type { get; set; } + public string name { get; set; } + public string poster_path { get; set; } + + public override string ToString() + { + return name; + } + } + + public class TmdbList : TmdbSearchResultBase + { } + + public class ListMovie + { + public string backdrop_path { get; set; } + public int id { get; set; } + public string original_title { get; set; } + public string release_date { get; set; } + public string poster_path { get; set; } + public string title { get; set; } + public double vote_average { get; set; } + public int vote_count { get; set; } + + public override string ToString() + { + return title; + } + } + + public class TmdbListItem + { + public string created_by { get; set; } + public string description { get; set; } + public int favorite_count { get; set; } + public string id { get; set; } + public List items { get; set; } + } +} diff --git a/WatTmdb/V3/TmdbMovie.cs b/WatTmdb/V3/TmdbMovie.cs new file mode 100644 index 0000000..3eec861 --- /dev/null +++ b/WatTmdb/V3/TmdbMovie.cs @@ -0,0 +1,90 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WatTmdb.V3 +{ + public class BelongsToCollection + { + public int id { get; set; } + public string name { get; set; } + public string poster_path { get; set; } + public string backdrop_path { get; set; } + } + + public class MovieGenre + { + public int id { get; set; } + public string name { get; set; } + + public override string ToString() + { + return name; + } + } + + public class ProductionCompany + { + public string name { get; set; } + public int id { get; set; } + + public override string ToString() + { + return name; + } + } + + public class ProductionCountry + { + public string iso_3166_1 { get; set; } + public string name { get; set; } + + public override string ToString() + { + return name; + } + } + + public class SpokenLanguage + { + public string iso_639_1 { get; set; } + public string name { get; set; } + + public override string ToString() + { + return name; + } + } + + public class TmdbMovie + { + public bool adult { get; set; } + public string backdrop_path { get; set; } + public BelongsToCollection belongs_to_collection { get; set; } + public int budget { get; set; } + public List genres { get; set; } + public string homepage { get; set; } + public int id { get; set; } + public string imdb_id { get; set; } + public string original_title { get; set; } + public string overview { get; set; } + public double popularity { get; set; } + public string poster_path { get; set; } + public List production_companies { get; set; } + public List production_countries { get; set; } + public string release_date { get; set; } + public Int64 revenue { get; set; } + public int runtime { get; set; } + public List spoken_languages { get; set; } + public string tagline { get; set; } + public string title { get; set; } + public double vote_average { get; set; } + public int vote_count { get; set; } + + public override string ToString() + { + return title; + } + } +} diff --git a/WatTmdb/V3/TmdbMovieAlternateTitles.cs b/WatTmdb/V3/TmdbMovieAlternateTitles.cs new file mode 100644 index 0000000..50667e3 --- /dev/null +++ b/WatTmdb/V3/TmdbMovieAlternateTitles.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WatTmdb.V3 +{ + public class AlternateTitle + { + public string iso_3166_1 { get; set; } + public string title { get; set; } + + public override string ToString() + { + return title; + } + } + + public class TmdbMovieAlternateTitles + { + public int id { get; set; } + public List titles { get; set; } + } +} diff --git a/WatTmdb/V3/TmdbMovieBase.cs b/WatTmdb/V3/TmdbMovieBase.cs new file mode 100644 index 0000000..0251624 --- /dev/null +++ b/WatTmdb/V3/TmdbMovieBase.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WatTmdb.V3 +{ + public class TmdbMovieBase + { + public string backdrop_path { get; set; } + public int id { get; set; } + public string original_title { get; set; } + public string release_date { get; set; } + public string poster_path { get; set; } + public string title { get; set; } + public double vote_average { get; set; } + public int vote_count { get; set; } + + public override string ToString() + { + return title; + } + } +} diff --git a/WatTmdb/V3/TmdbMovieCast.cs b/WatTmdb/V3/TmdbMovieCast.cs new file mode 100644 index 0000000..6f5a846 --- /dev/null +++ b/WatTmdb/V3/TmdbMovieCast.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WatTmdb.V3 +{ + public class Cast + { + public int id { get; set; } + public string name { get; set; } + public string character { get; set; } + public int order { get; set; } + public string profile_path { get; set; } + + public override string ToString() + { + return name; + } + } + + public class Crew + { + public int id { get; set; } + public string name { get; set; } + public string department { get; set; } + public string job { get; set; } + public string profile_path { get; set; } + + public override string ToString() + { + return name; + } + } + + public class TmdbMovieCast + { + public int id { get; set; } + public List cast { get; set; } + public List crew { get; set; } + } +} diff --git a/WatTmdb/V3/TmdbMovieChanges.cs b/WatTmdb/V3/TmdbMovieChanges.cs new file mode 100644 index 0000000..0e19f96 --- /dev/null +++ b/WatTmdb/V3/TmdbMovieChanges.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WatTmdb.V3 +{ + public class MovieChangeItem + { + public string id { get; set; } + public string action { get; set; } + public string time { get; set; } + public string value { get; set; } + public string iso_639_1 { get; set; } + public string original_value { get; set; } + } + + public class MovieChange + { + public string key { get; set; } + public List items { get; set; } + } + + public class TmdbMovieChanges + { + public List changes { get; set; } + } +} diff --git a/WatTmdb/V3/TmdbMovieImages.cs b/WatTmdb/V3/TmdbMovieImages.cs new file mode 100644 index 0000000..ff28f8d --- /dev/null +++ b/WatTmdb/V3/TmdbMovieImages.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WatTmdb.V3 +{ + public class Backdrop + { + public string file_path { get; set; } + public int width { get; set; } + public int height { get; set; } + public string iso_639_1 { get; set; } + public double aspect_ratio { get; set; } + public double vote_average { get; set; } + public int vote_count { get; set; } + } + + public class Poster + { + public string file_path { get; set; } + public int width { get; set; } + public int height { get; set; } + public string iso_639_1 { get; set; } + public double aspect_ratio { get; set; } + public double vote_average { get; set; } + public int vote_count { get; set; } + } + + public class TmdbMovieImages + { + public int id { get; set; } + public List backdrops { get; set; } + public List posters { get; set; } + } +} diff --git a/WatTmdb/V3/TmdbMovieKeywords.cs b/WatTmdb/V3/TmdbMovieKeywords.cs new file mode 100644 index 0000000..e03d7aa --- /dev/null +++ b/WatTmdb/V3/TmdbMovieKeywords.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WatTmdb.V3 +{ + public class MovieKeyword + { + public int id { get; set; } + public string name { get; set; } + + public override string ToString() + { + return name; + } + } + + public class TmdbMovieKeywords + { + public int id { get; set; } + public List keywords { get; set; } + } +} diff --git a/WatTmdb/V3/TmdbMovieReleases.cs b/WatTmdb/V3/TmdbMovieReleases.cs new file mode 100644 index 0000000..215e7d1 --- /dev/null +++ b/WatTmdb/V3/TmdbMovieReleases.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WatTmdb.V3 +{ + public class ReleaseCountry + { + public string iso_3166_1 { get; set; } + public string certification { get; set; } + public string release_date { get; set; } + } + + public class TmdbMovieReleases + { + public int id { get; set; } + public List countries { get; set; } + } +} diff --git a/WatTmdb/V3/TmdbMovieSearch.cs b/WatTmdb/V3/TmdbMovieSearch.cs new file mode 100644 index 0000000..047631b --- /dev/null +++ b/WatTmdb/V3/TmdbMovieSearch.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WatTmdb.V3 +{ + public class MovieResult : TmdbMovieBase + { + public bool adult { get; set; } + public double popularity { get; set; } + } + + public class TmdbMovieSearch : TmdbSearchResultBase + { } +} diff --git a/WatTmdb/V3/TmdbMovieTrailers.cs b/WatTmdb/V3/TmdbMovieTrailers.cs new file mode 100644 index 0000000..f005a6f --- /dev/null +++ b/WatTmdb/V3/TmdbMovieTrailers.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WatTmdb.V3 +{ + public class Youtube + { + public string name { get; set; } + public string size { get; set; } + public string source { get; set; } + + public override string ToString() + { + return name; + } + } + + public class TmdbMovieTrailers + { + public int id { get; set; } + //public List quicktime { get; set; } + public List youtube { get; set; } + } +} diff --git a/WatTmdb/V3/TmdbNowPlaying.cs b/WatTmdb/V3/TmdbNowPlaying.cs new file mode 100644 index 0000000..756260e --- /dev/null +++ b/WatTmdb/V3/TmdbNowPlaying.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WatTmdb.V3 +{ + public class NowPlaying : TmdbMovieBase { } + + public class TmdbNowPlaying : TmdbSearchResultBase + { } +} diff --git a/WatTmdb/V3/TmdbPerson.cs b/WatTmdb/V3/TmdbPerson.cs new file mode 100644 index 0000000..f2b8738 --- /dev/null +++ b/WatTmdb/V3/TmdbPerson.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WatTmdb.V3 +{ + public class TmdbPerson + { + public bool adult { get; set; } + //public List also_known_as { get; set; } + public string biography { get; set; } + public string birthday { get; set; } + public string deathday { get; set; } + public string homepage { get; set; } + public int id { get; set; } + public string name { get; set; } + public string place_of_birth { get; set; } + public string profile_path { get; set; } + + public override string ToString() + { + return name; + } + } +} diff --git a/WatTmdb/V3/TmdbPersonChanges.cs b/WatTmdb/V3/TmdbPersonChanges.cs new file mode 100644 index 0000000..7cac54b --- /dev/null +++ b/WatTmdb/V3/TmdbPersonChanges.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WatTmdb.V3 +{ + public class PersonChangeItem + { + public string id { get; set; } + public string action { get; set; } + public string time { get; set; } + public string value { get; set; } + } + + public class PersonChange + { + public string key { get; set; } + public List items { get; set; } + } + + public class TmdbPersonChanges + { + public List changes { get; set; } + } +} diff --git a/WatTmdb/V3/TmdbPersonCredits.cs b/WatTmdb/V3/TmdbPersonCredits.cs new file mode 100644 index 0000000..fee30c7 --- /dev/null +++ b/WatTmdb/V3/TmdbPersonCredits.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WatTmdb.V3 +{ + public class CastCredit + { + public int id { get; set; } + public string title { get; set; } + public string character { get; set; } + public string original_title { get; set; } + public string poster_path { get; set; } + public string release_date { get; set; } + + public override string ToString() + { + return title; + } + } + + public class CrewCredit + { + public int id { get; set; } + public string title { get; set; } + public string original_title { get; set; } + public string department { get; set; } + public string job { get; set; } + public string poster_path { get; set; } + public string release_date { get; set; } + + public override string ToString() + { + return title; + } + } + + public class TmdbPersonCredits + { + public List cast { get; set; } + public List crew { get; set; } + public int id { get; set; } + } +} diff --git a/WatTmdb/V3/TmdbPersonImages.cs b/WatTmdb/V3/TmdbPersonImages.cs new file mode 100644 index 0000000..f93430a --- /dev/null +++ b/WatTmdb/V3/TmdbPersonImages.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WatTmdb.V3 +{ + public class PersonImageProfile + { + public string file_path { get; set; } + public int width { get; set; } + public int height { get; set; } + public object iso_639_1 { get; set; } + public double aspect_ratio { get; set; } + } + + public class TmdbPersonImages + { + public int id { get; set; } + public List profiles { get; set; } + } +} diff --git a/WatTmdb/V3/TmdbPersonSearch.cs b/WatTmdb/V3/TmdbPersonSearch.cs new file mode 100644 index 0000000..bca70f9 --- /dev/null +++ b/WatTmdb/V3/TmdbPersonSearch.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WatTmdb.V3 +{ + public class PersonResult + { + public bool adult { get; set; } + public int id { get; set; } + public string name { get; set; } + public string profile_path { get; set; } + + public override string ToString() + { + return name; + } + } + + public class TmdbPersonSearch : TmdbSearchResultBase + { } +} diff --git a/WatTmdb/V3/TmdbPopular.cs b/WatTmdb/V3/TmdbPopular.cs new file mode 100644 index 0000000..4c3de16 --- /dev/null +++ b/WatTmdb/V3/TmdbPopular.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WatTmdb.V3 +{ + public class PopularMovie : TmdbMovieBase { } + + public class TmdbPopular : TmdbSearchResultBase + { } +} diff --git a/WatTmdb/V3/TmdbSearchResultBase.cs b/WatTmdb/V3/TmdbSearchResultBase.cs new file mode 100644 index 0000000..0f2273a --- /dev/null +++ b/WatTmdb/V3/TmdbSearchResultBase.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WatTmdb.V3 +{ + public abstract class TmdbSearchResultBase + { + public int page { get; set; } + public List results { get; set; } + public int total_pages { get; set; } + public int total_results { get; set; } + } +} diff --git a/WatTmdb/V3/TmdbSimilarMovies.cs b/WatTmdb/V3/TmdbSimilarMovies.cs new file mode 100644 index 0000000..aaf57e9 --- /dev/null +++ b/WatTmdb/V3/TmdbSimilarMovies.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WatTmdb.V3 +{ + public class SimilarMovie : TmdbMovieBase { } + + public class TmdbSimilarMovies : TmdbSearchResultBase + { } +} diff --git a/WatTmdb/V3/TmdbTopRated.cs b/WatTmdb/V3/TmdbTopRated.cs new file mode 100644 index 0000000..f140e53 --- /dev/null +++ b/WatTmdb/V3/TmdbTopRated.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WatTmdb.V3 +{ + public class TopRated : TmdbMovieBase { } + + public class TmdbTopRated : TmdbSearchResultBase + { } +} diff --git a/WatTmdb/V3/TmdbTranslations.cs b/WatTmdb/V3/TmdbTranslations.cs new file mode 100644 index 0000000..bc039a6 --- /dev/null +++ b/WatTmdb/V3/TmdbTranslations.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WatTmdb.V3 +{ + public class Translation + { + public string iso_639_1 { get; set; } + public string name { get; set; } + public string english_name { get; set; } + } + + public class TmdbTranslations + { + public int id { get; set; } + public List translations { get; set; } + } +} diff --git a/WatTmdb/V3/TmdbUpcoming.cs b/WatTmdb/V3/TmdbUpcoming.cs new file mode 100644 index 0000000..7058004 --- /dev/null +++ b/WatTmdb/V3/TmdbUpcoming.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace WatTmdb.V3 +{ + public class UpcomingResult : TmdbMovieBase { } + + public class TmdbUpcoming : TmdbSearchResultBase + { } +} diff --git a/WatTmdb/V3/WatJsonDeserializer.cs b/WatTmdb/V3/WatJsonDeserializer.cs new file mode 100644 index 0000000..f9ebf21 --- /dev/null +++ b/WatTmdb/V3/WatJsonDeserializer.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using RestSharp.Deserializers; + +namespace WatTmdb.V3 +{ + public class WatJsonDeserializer : IDeserializer + { + #region IDeserializer Members + + public T Deserialize(RestSharp.IRestResponse response) + { + if (response.Content == null) + return default(T); + + // 2012-07-26 - attempt to handle some of the bad json content, eg Similar Movies for id 80271 containing null values + // amongst the other objects in the results array + // eg ...."vote_average":0.0,"vote_count":0},null,null,{"backdrop_path":null,"id":73736,"original_title":... + // ^^^^ ^^^^ + // Causes "Object reference not set to an instance of an object" exception during deserialization + while (response.Content.IndexOf("},null,") != -1) + { + response.Content = response.Content.Replace("},null,", "},"); + } + + while (response.Content.IndexOf("[null,") != -1) + { + response.Content = response.Content.Replace("[null,", "["); + } + + var deserializer = new JsonDeserializer(); + var data = deserializer.Deserialize(response); + + return data; + } + + public string DateFormat { get; set; } + public string Namespace { get; set; } + public string RootElement { get; set; } + + #endregion + } +} diff --git a/WatTmdb/WatTmdb.csproj b/WatTmdb/WatTmdb.csproj new file mode 100644 index 0000000..ef2aa5d --- /dev/null +++ b/WatTmdb/WatTmdb.csproj @@ -0,0 +1,111 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {EFC11645-FAB4-4C30-A498-29F5ECDF77E8} + Library + Properties + WatTmdb + WatTmdb + v3.5 + 512 + ..\ + true + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\packages\RestSharp.104.1\lib\net35\RestSharp.dll + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/WatTmdb/packages.config b/WatTmdb/packages.config new file mode 100644 index 0000000..1de19f7 --- /dev/null +++ b/WatTmdb/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/changelog.txt b/changelog.txt new file mode 100644 index 0000000..a7dd9f1 --- /dev/null +++ b/changelog.txt @@ -0,0 +1,100 @@ +Changelog 1.3.0.12 (02.05.2013): + +Movie List Exporter Module: (Cocotus) +- fixed: Watched /Unwatched Filter is now working when clicking on "ALL" +- fixed: No more crashes during saving process (dropped the filedialog and uses exportpath setting instead) +- added: TVShow View (just a list of all tv shows with season posters) +- added: Now everytime Watched or Unwatched checkbox is clicked, navigation will be updated at once +- changed: Trailer/IMDB Link opens in new tab/window +- changed: Moved Export settings to module settings, added JPG Quality setting to further reduce filesize and therefore decrease loading time + +Renamer Module: +- fixed: manually rename destroyed VIDEO_TS/BDMV structure +- fixed: Bulk Renamer destroyed VIDEO_TS/BDMV structure +- fixed: help window cuts a part of text + +YAMJ Module: +- added: save AllSeasonPoster as "Set__1.banner.jpg" +- fixed: module setting page does not deactivate tv show images +- fixed: local files are not recognized + +Ember Main: +- fixed: all images bugs with posters and fanarts (m.savazzi) +- fixed: frame exctration does not work for episodes (m.savazzi) +- fixed: poster/fanart preview not works (m.savazzi) +- fixed: season fanart can't change if episodes are not in a separate season folder +- fixed: not all the local posters/fanarts are deleted on first scraping/change movie/tv show +- fixed: Ember always create a fanart backdrop in Ember root folder +- fixed: unique filenames for fanart backdrops (_.jpg) +- fixed: season refresh does not save to database +- fixed: file stacking does not work with more then one digit (CD01) +- fixed: file info in movie search result windows display always the first scraped movie +- fixed: only a file name variant is saved for VIDEO_TS & BDMV, although several are activated +- fixed: file sorter does not move "*-poster.jpg" +- fixed: check title match confidence (known as "pink movie list bug") +- fixed: studioname in tv shows does not display +- fixed: mouse over studioname in tv shows creates an error when no movies are available in database +- fixed: trailer checkboxes in native and TMDB scraper settings page +- added: "Has Watched" column for movies and episodes (hide option in settings) +- added: export movies and tv shows to XML file (Tools menu), can be opened by Excel (Cocotus) +- added: subtitle lock (Cocotus) +- added: native and TMDB Scraper use IMDB ID in foldername * +- added: CTRL+A works now for plot and outline +- added: scrollbars for plot and outline +- changed: typ "Poster" as standard for tv shows +- removed: option "Check for Updates" +- removed: option "banner.jpg" in tv show (no banner support yet) +- updated: MediaInfo.dll and ffmpeg.exe + +- updated: german & norwegian languages +- added: dutch language (99% translated) (Shemhazai2, remmie, matrix808, kriss1981) +- added: spanish language (87% translated) (orbtwin, bsoriano, diegobarrioh) +- added: italian language (80% translated) (Wolf666) + +* If you use "Folder/File Name Filter" it is necessary to adjust the filter properly, so that the IMDB ID is not removed. + + + +Changelog 1.3.0.11 (17.04.2013): + +Trakt.tv addon: (Cocotus) +- added: basic authentification (username / password) required from now on, no problem with privacy settings +- added: playcount for tv show episodes + +Renamer Module: +- fixed: VIDEO_TS & BDMV handling +- fixed: multipart movies (tested with "Avatar CD1.avi" / "Avatar CD2.avi") +- fixed: auto rename on auto scraping + +YAMJ Module: +- fixed: tv show image handling/naming +- fixed: Ember now detects all existing images correctly +- changed: now all "File Naming" options in standard TV Shows settings can be deactivated, only these in the module must be activated + +Ember Main: +- added: display of metadata on main page of Ember (bitrate is displayed) (Cocotus) +- fixed: 7.1/6.1 scan of Mediafiles in Ember - i.e Mediainfo delivers "8 / 6" for audio channel which is wrong format for Ember (Ember expects only 1 char/Number) (Cocotus) +- added: language lock option for video & audio metadata (Cocotus) +- added: MPAA/certification lock (Cocotus) +- added: movie sets in MovieTemplate (Cocotus) +- fixed: better/faster image handling, movie images are no longer resized (direct download from TMDB) (m.savazzi) +- changed: "Enable Actors Cache" is renamed to "Enable Actors Thumbs" +- fixed: Ember create empty actor thumb files +- fixed: unchecking "Enable Actor Cache" does not stop creation of .actors folder +- added: option to set the preferred actor thumbs size +- fixed: Ember create movie poster/fanart outside of the movie folder when VIDEO_TS is activated in YAMJ-Module +- added: more file name stacking variants (same like XBMC + more) +- fixed: autoselect best entry in movie search result window +- added: movie title handling on OFDB; now change "Avengers, The" -> "The Avengers" +- fixed: many OFDB errors (missing title/genres, bad outline) +- added: open trailer in browser button in trailer window +- fixed: tag now work correct if a API key added in settings +- added: genre filter now work also on multi/auto-scraping +- added: gerne "Western" to german genre list +- fixed: image rescrape in movie/tv show and season edit window (episode has a error atm) +- added: file information and a button to open the movie file directory in search result window +- added: Denmark and Italy to forced title (themagnifico) +- added: norwegian lang files (Dragen) + +- removed: german genre "Kinder-" in genre list +- removed: portugues lang file (incomplete) \ No newline at end of file diff --git a/packages/RestSharp.104.1/RestSharp.104.1.nupkg b/packages/RestSharp.104.1/RestSharp.104.1.nupkg new file mode 100644 index 0000000..c9822a3 Binary files /dev/null and b/packages/RestSharp.104.1/RestSharp.104.1.nupkg differ diff --git a/packages/RestSharp.104.1/RestSharp.104.1.nuspec b/packages/RestSharp.104.1/RestSharp.104.1.nuspec new file mode 100644 index 0000000..ed4338e --- /dev/null +++ b/packages/RestSharp.104.1/RestSharp.104.1.nuspec @@ -0,0 +1,22 @@ + + + + RestSharp + 104.1 + John Sheehan, RestSharp Community + John Sheehan, RestSharp Community + https://github.com/restsharp/RestSharp/blob/master/LICENSE.txt + http://restsharp.org/ + http://dl.dropbox.com/u/1827/restsharp100.png + false + Simple REST and HTTP API Client + For full release notes see https://github.com/restsharp/RestSharp/blob/master/releasenotes.markdown + en-US + REST HTTP API JSON XML + + + + + + + \ No newline at end of file diff --git a/packages/RestSharp.104.1/lib/net35-client/RestSharp.dll b/packages/RestSharp.104.1/lib/net35-client/RestSharp.dll new file mode 100644 index 0000000..66e3817 Binary files /dev/null and b/packages/RestSharp.104.1/lib/net35-client/RestSharp.dll differ diff --git a/packages/RestSharp.104.1/lib/net35-client/RestSharp.xml b/packages/RestSharp.104.1/lib/net35-client/RestSharp.xml new file mode 100644 index 0000000..28de9da --- /dev/null +++ b/packages/RestSharp.104.1/lib/net35-client/RestSharp.xml @@ -0,0 +1,2611 @@ + + + + RestSharp + + + + + Tries to Authenticate with the credentials of the currently logged in user, or impersonate a user + + + + + Authenticate with the credentials of the currently logged in user + + + + + Authenticate by impersonation + + + + + + + Authenticate by impersonation, using an existing ICredentials instance + + + + + + + + + Base class for OAuth 2 Authenticators. + + + Since there are many ways to authenticate in OAuth2, + this is used as a base class to differentiate between + other authenticators. + + Any other OAuth2 authenticators must derive from this + abstract class. + + + + + Access token to be used when authenticating. + + + + + Initializes a new instance of the class. + + + The access token. + + + + + Gets the access token. + + + + + The OAuth 2 authenticator using URI query parameter. + + + Based on http://tools.ietf.org/html/draft-ietf-oauth-v2-10#section-5.1.2 + + + + + Initializes a new instance of the class. + + + The access token. + + + + + The OAuth 2 authenticator using the authorization request header field. + + + Based on http://tools.ietf.org/html/draft-ietf-oauth-v2-10#section-5.1.1 + + + + + Stores the Authoriztion header value as "OAuth accessToken". used for performance. + + + + + Initializes a new instance of the class. + + + The access token. + + + + + All text parameters are UTF-8 encoded (per section 5.1). + + + + + + Generates a random 16-byte lowercase alphanumeric string. + + + + + + + Generates a timestamp based on the current elapsed seconds since '01/01/1970 0000 GMT" + + + + + + + Generates a timestamp based on the elapsed seconds of a given time since '01/01/1970 0000 GMT" + + + A specified point in time. + + + + + The set of characters that are unreserved in RFC 2396 but are NOT unreserved in RFC 3986. + + + + + + URL encodes a string based on section 5.1 of the OAuth spec. + Namely, percent encoding with [RFC3986], avoiding unreserved characters, + upper-casing hexadecimal characters, and UTF-8 encoding for text value pairs. + + The value to escape. + The escaped value. + + The method is supposed to take on + RFC 3986 behavior if certain elements are present in a .config file. Even if this + actually worked (which in my experiments it doesn't), we can't rely on every + host actually having this configuration element present. + + + + + + + URL encodes a string based on section 5.1 of the OAuth spec. + Namely, percent encoding with [RFC3986], avoiding unreserved characters, + upper-casing hexadecimal characters, and UTF-8 encoding for text value pairs. + + + + + + + Sorts a collection of key-value pairs by name, and then value if equal, + concatenating them into a single string. This string should be encoded + prior to, or after normalization is run. + + + + + + + + Sorts a by name, and then value if equal. + + A collection of parameters to sort + A sorted parameter collection + + + + Creates a request URL suitable for making OAuth requests. + Resulting URLs must exclude port 80 or port 443 when accompanied by HTTP and HTTPS, respectively. + Resulting URLs must be lower case. + + + The original request URL + + + + + Creates a request elements concatentation value to send with a request. + This is also known as the signature base. + + + + The request's HTTP method type + The request URL + The request's parameters + A signature base string + + + + Creates a signature value given a signature base and the consumer secret. + This method is used when the token secret is currently unknown. + + + The hashing method + The signature base + The consumer key + + + + + Creates a signature value given a signature base and the consumer secret. + This method is used when the token secret is currently unknown. + + + The hashing method + The treatment to use on a signature value + The signature base + The consumer key + + + + + Creates a signature value given a signature base and the consumer secret and a known token secret. + + + The hashing method + The signature base + The consumer secret + The token secret + + + + + Creates a signature value given a signature base and the consumer secret and a known token secret. + + + The hashing method + The treatment to use on a signature value + The signature base + The consumer secret + The token secret + + + + + A class to encapsulate OAuth authentication flow. + + + + + + Generates a instance to pass to an + for the purpose of requesting an + unauthorized request token. + + The HTTP method for the intended request + + + + + + Generates a instance to pass to an + for the purpose of requesting an + unauthorized request token. + + The HTTP method for the intended request + Any existing, non-OAuth query parameters desired in the request + + + + + + Generates a instance to pass to an + for the purpose of exchanging a request token + for an access token authorized by the user at the Service Provider site. + + The HTTP method for the intended request + + + + + Generates a instance to pass to an + for the purpose of exchanging a request token + for an access token authorized by the user at the Service Provider site. + + The HTTP method for the intended request + + Any existing, non-OAuth query parameters desired in the request + + + + Generates a instance to pass to an + for the purpose of exchanging user credentials + for an access token authorized by the user at the Service Provider site. + + The HTTP method for the intended request + + Any existing, non-OAuth query parameters desired in the request + + + + + + + + + + + + + Allows control how class and property names and values are deserialized by XmlAttributeDeserializer + + + + + The name to use for the serialized element + + + + + Sets if the property to Deserialize is an Attribute or Element (Default: false) + + + + + Decodes an HTML-encoded string and returns the decoded string. + + The HTML string to decode. + The decoded text. + + + + Decodes an HTML-encoded string and sends the resulting output to a TextWriter output stream. + + The HTML string to decode + The TextWriter output stream containing the decoded string. + + + + HTML-encodes a string and sends the resulting output to a TextWriter output stream. + + The string to encode. + The TextWriter output stream containing the encoded string. + + + + Executes the request and callback asynchronously, authenticating if needed + + The IRestClient this method extends + Request to be executed + Callback function to be executed upon completion + + + + Executes the request and callback asynchronously, authenticating if needed + + The IRestClient this method extends + Target deserialization type + Request to be executed + Callback function to be executed upon completion providing access to the async handle + + + + Add a parameter to use on every request made with this client instance + + The IRestClient instance + Parameter to add + + + + + Adds a HTTP parameter (QueryString for GET, DELETE, OPTIONS and HEAD; Encoded form for POST and PUT) + Used on every request made by this client instance + + The IRestClient instance + Name of the parameter + Value of the parameter + This request + + + + Adds a parameter to the request. There are four types of parameters: + - GetOrPost: Either a QueryString value or encoded form value based on method + - HttpHeader: Adds the name/value pair to the HTTP request's Headers collection + - UrlSegment: Inserted into URL if there is a matching url token e.g. {AccountId} + - RequestBody: Used by AddBody() (not recommended to use directly) + + The IRestClient instance + Name of the parameter + Value of the parameter + The type of parameter to add + This request + + + + Shortcut to AddDefaultParameter(name, value, HttpHeader) overload + + The IRestClient instance + Name of the header to add + Value of the header to add + + + + + Shortcut to AddDefaultParameter(name, value, UrlSegment) overload + + The IRestClient instance + Name of the segment to add + Value of the segment to add + + + + + Uses Uri.EscapeDataString() based on recommendations on MSDN + http://blogs.msdn.com/b/yangxind/archive/2006/11/09/don-t-use-net-system-uri-unescapedatastring-in-url-decoding.aspx + + + + + Check that a string is not null or empty + + String to check + bool + + + + Remove underscores from a string + + String to process + string + + + + Parses most common JSON date formats + + JSON value to parse + DateTime + + + + Remove leading and trailing " from a string + + String to parse + String + + + + Checks a string to see if it matches a regex + + String to check + Pattern to match + bool + + + + Converts a string to pascal case + + String to convert + string + + + + Converts a string to pascal case with the option to remove underscores + + String to convert + Option to remove underscores + + + + + Converts a string to camel case + + String to convert + String + + + + Convert the first letter of a string to lower case + + String to convert + string + + + + Checks to see if a string is all uppper case + + String to check + bool + + + + Add underscores to a pascal-cased string + + String to convert + string + + + + Add dashes to a pascal-cased string + + String to convert + string + + + + Add an undescore prefix to a pascasl-cased string + + + + + + + Return possible variants of a name for name matching. + + String to convert + The culture to use for conversion + IEnumerable<string> + + + + HttpWebRequest wrapper (sync methods) + + + HttpWebRequest wrapper + + + HttpWebRequest wrapper (async methods) + + + + + Execute a POST request + + + + + Execute a PUT request + + + + + Execute a GET request + + + + + Execute a HEAD request + + + + + Execute an OPTIONS request + + + + + Execute a DELETE request + + + + + Execute a PATCH request + + + + + Execute a GET-style request with the specified HTTP Method. + + The HTTP method to execute. + + + + + Execute a POST-style request with the specified HTTP Method. + + The HTTP method to execute. + + + + + Creates an IHttp + + + + + + Default constructor + + + + + Execute an async POST-style request with the specified HTTP Method. + + The HTTP method to execute. + + + + + Execute an async GET-style request with the specified HTTP Method. + + The HTTP method to execute. + + + + + True if this HTTP request has any HTTP parameters + + + + + True if this HTTP request has any HTTP cookies + + + + + True if a request body has been specified + + + + + True if files have been set to be uploaded + + + + + UserAgent to be sent with request + + + + + Timeout in milliseconds to be used for the request + + + + + System.Net.ICredentials to be sent with request + + + + + The System.Net.CookieContainer to be used for the request + + + + + Collection of files to be sent with request + + + + + Whether or not HTTP 3xx response redirects should be automatically followed + + + + + X509CertificateCollection to be sent with request + + + + + Maximum number of automatic redirects to follow if FollowRedirects is true + + + + + HTTP headers to be sent with request + + + + + HTTP parameters (QueryString or Form values) to be sent with request + + + + + HTTP cookies to be sent with request + + + + + Request body to be sent with request + + + + + Content type of the request body. + + + + + URL to call for this request + + + + + Proxy info to be sent with request + + + + + Representation of an HTTP cookie + + + + + Comment of the cookie + + + + + Comment of the cookie + + + + + Indicates whether the cookie should be discarded at the end of the session + + + + + Domain of the cookie + + + + + Indicates whether the cookie is expired + + + + + Date and time that the cookie expires + + + + + Indicates that this cookie should only be accessed by the server + + + + + Name of the cookie + + + + + Path of the cookie + + + + + Port of the cookie + + + + + Indicates that the cookie should only be sent over secure channels + + + + + Date and time the cookie was created + + + + + Value of the cookie + + + + + Version of the cookie + + + + + HTTP response data + + + + + HTTP response data + + + + + MIME content type of response + + + + + Length in bytes of the response content + + + + + Encoding of the response content + + + + + String representation of response content + + + + + HTTP response status code + + + + + Description of HTTP status returned + + + + + Response content + + + + + The URL that actually responded to the content (different from request if redirected) + + + + + HttpWebResponse.Server + + + + + Headers returned by server with the response + + + + + Cookies returned by server with the response + + + + + Status of the request. Will return Error for transport errors. + HTTP errors will still return ResponseStatus.Completed, check StatusCode instead + + + + + Transport or other non-HTTP error generated while attempting request + + + + + Exception thrown when error is encountered. + + + + + Default constructor + + + + + MIME content type of response + + + + + Length in bytes of the response content + + + + + Encoding of the response content + + + + + Lazy-loaded string representation of response content + + + + + HTTP response status code + + + + + Description of HTTP status returned + + + + + Response content + + + + + The URL that actually responded to the content (different from request if redirected) + + + + + HttpWebResponse.Server + + + + + Headers returned by server with the response + + + + + Cookies returned by server with the response + + + + + Status of the request. Will return Error for transport errors. + HTTP errors will still return ResponseStatus.Completed, check StatusCode instead + + + + + Transport or other non-HTTP error generated while attempting request + + + + + Exception thrown when error is encountered. + + + + + Types of parameters that can be added to requests + + + + + Data formats + + + + + HTTP method to use when making requests + + + + + Format strings for commonly-used date formats + + + + + .NET format string for ISO 8601 date format + + + + + .NET format string for roundtrip date format + + + + + Status for responses (surprised?) + + + + + Extension method overload! + + + + + Save a byte array to a file + + Bytes to save + Full path to save file to + + + + Read a stream into a byte array + + Stream to read + byte[] + + + + Copies bytes from one stream to another + + The input stream. + The output stream. + + + + Converts a byte array to a string, using its byte order mark to convert it to the right encoding. + http://www.shrinkrays.net/code-snippets/csharp/an-extension-method-for-converting-a-byte-array-to-a-string.aspx + + An array of bytes to convert + The byte as a string. + + + + Reflection extensions + + + + + Retrieve an attribute from a member (property) + + Type of attribute to retrieve + Member to retrieve attribute from + + + + + Retrieve an attribute from a type + + Type of attribute to retrieve + Type to retrieve attribute from + + + + + Checks a type to see if it derives from a raw generic (e.g. List[[]]) + + + + + + + + + XML Extension Methods + + + + + Returns the name of an element with the namespace if specified + + Element name + XML Namespace + + + + + Container for files to be uploaded with requests + + + + + Creates a file parameter from an array of bytes. + + The parameter name to use in the request. + The data to use as the file's contents. + The filename to use in the request. + The content type to use in the request. + The + + + + Creates a file parameter from an array of bytes. + + The parameter name to use in the request. + The data to use as the file's contents. + The filename to use in the request. + The using the default content type. + + + + The length of data to be sent + + + + + Provides raw data for file + + + + + Name of the file to use when uploading + + + + + MIME content type of file + + + + + Name of the parameter + + + + + Container for HTTP file + + + + + The length of data to be sent + + + + + Provides raw data for file + + + + + Name of the file to use when uploading + + + + + MIME content type of file + + + + + Name of the parameter + + + + + Representation of an HTTP header + + + + + Name of the header + + + + + Value of the header + + + + + Representation of an HTTP parameter (QueryString or Form value) + + + + + Name of the parameter + + + + + Value of the parameter + + + + + + + + + + + + + + + + + + + + + + Executes a GET-style request and callback asynchronously, authenticating if needed + + Request to be executed + Callback function to be executed upon completion providing access to the async handle. + The HTTP method to execute + + + + Executes a POST-style request and callback asynchronously, authenticating if needed + + Request to be executed + Callback function to be executed upon completion providing access to the async handle. + The HTTP method to execute + + + + Executes a GET-style request and callback asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + Callback function to be executed upon completion + The HTTP method to execute + + + + Executes a GET-style request and callback asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + Callback function to be executed upon completion + The HTTP method to execute + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + X509CertificateCollection to be sent with request + + + + + Adds a file to the Files collection to be included with a POST or PUT request + (other methods do not support file uploads). + + The parameter name to use in the request + Full path to file to upload + This request + + + + Adds the bytes to the Files collection with the specified file name + + The parameter name to use in the request + The file data + The file name to use for the uploaded file + This request + + + + Adds the bytes to the Files collection with the specified file name and content type + + The parameter name to use in the request + The file data + The file name to use for the uploaded file + The MIME type of the file to upload + This request + + + + Serializes obj to format specified by RequestFormat, but passes xmlNamespace if using the default XmlSerializer + + The object to serialize + The XML namespace to use when serializing + This request + + + + Serializes obj to data format specified by RequestFormat and adds it to the request body. + + The object to serialize + This request + + + + Calls AddParameter() for all public, readable properties specified in the white list + + + request.AddObject(product, "ProductId", "Price", ...); + + The object with properties to add as parameters + The names of the properties to include + This request + + + + Calls AddParameter() for all public, readable properties of obj + + The object with properties to add as parameters + This request + + + + Add the parameter to the request + + Parameter to add + + + + + Adds a HTTP parameter to the request (QueryString for GET, DELETE, OPTIONS and HEAD; Encoded form for POST and PUT) + + Name of the parameter + Value of the parameter + This request + + + + Adds a parameter to the request. There are five types of parameters: + - GetOrPost: Either a QueryString value or encoded form value based on method + - HttpHeader: Adds the name/value pair to the HTTP request's Headers collection + - UrlSegment: Inserted into URL if there is a matching url token e.g. {AccountId} + - Cookie: Adds the name/value pair to the HTTP request's Cookies collection + - RequestBody: Used by AddBody() (not recommended to use directly) + + Name of the parameter + Value of the parameter + The type of parameter to add + This request + + + + Shortcut to AddParameter(name, value, HttpHeader) overload + + Name of the header to add + Value of the header to add + + + + + Shortcut to AddParameter(name, value, Cookie) overload + + Name of the cookie to add + Value of the cookie to add + + + + + Shortcut to AddParameter(name, value, UrlSegment) overload + + Name of the segment to add + Value of the segment to add + + + + + Serializer to use when writing JSON request bodies. Used if RequestFormat is Json. + By default the included JsonSerializer is used (currently using JSON.NET default serialization). + + + + + Serializer to use when writing XML request bodies. Used if RequestFormat is Xml. + By default the included XmlSerializer is used. + + + + + Container of all HTTP parameters to be passed with the request. + See AddParameter() for explanation of the types of parameters that can be passed + + + + + Container of all the files to be uploaded with the request. + + + + + Determines what HTTP method to use for this request. Supported methods: GET, POST, PUT, DELETE, HEAD, OPTIONS + Default is GET + + + + + The Resource URL to make the request against. + Tokens are substituted with UrlSegment parameters and match by name. + Should not include the scheme or domain. Do not include leading slash. + Combined with RestClient.BaseUrl to assemble final URL: + {BaseUrl}/{Resource} (BaseUrl is scheme + domain, e.g. http://example.com) + + + // example for url token replacement + request.Resource = "Products/{ProductId}"; + request.AddParameter("ProductId", 123, ParameterType.UrlSegment); + + + + + Serializer to use when writing XML request bodies. Used if RequestFormat is Xml. + By default XmlSerializer is used. + + + + + Used by the default deserializers to determine where to start deserializing from. + Can be used to skip container or root elements that do not have corresponding deserialzation targets. + + + + + Used by the default deserializers to explicitly set which date format string to use when parsing dates. + + + + + Used by XmlDeserializer. If not specified, XmlDeserializer will flatten response by removing namespaces from element names. + + + + + In general you would not need to set this directly. Used by the NtlmAuthenticator. + + + + + Timeout in milliseconds to be used for the request. This timeout value overrides a timeout set on the RestClient. + + + + + How many attempts were made to send this Request? + + + This Number is incremented each time the RestClient sends the request. + Useful when using Asynchronous Execution with Callbacks + + + + + Container for data sent back from API + + + + + The RestRequest that was made to get this RestResponse + + + Mainly for debugging if ResponseStatus is not OK + + + + + MIME content type of response + + + + + Length in bytes of the response content + + + + + Encoding of the response content + + + + + String representation of response content + + + + + HTTP response status code + + + + + Description of HTTP status returned + + + + + Response content + + + + + The URL that actually responded to the content (different from request if redirected) + + + + + HttpWebResponse.Server + + + + + Cookies returned by server with the response + + + + + Headers returned by server with the response + + + + + Status of the request. Will return Error for transport errors. + HTTP errors will still return ResponseStatus.Completed, check StatusCode instead + + + + + Transport or other non-HTTP error generated while attempting request + + + + + The exception thrown during the request, if any + + + + + Container for data sent back from API including deserialized data + + Type of data to deserialize to + + + + Deserialized entity data + + + + + Base class for common properties shared by RestResponse and RestResponse[[T]] + + + + + Default constructor + + + + + The RestRequest that was made to get this RestResponse + + + Mainly for debugging if ResponseStatus is not OK + + + + + MIME content type of response + + + + + Length in bytes of the response content + + + + + Encoding of the response content + + + + + String representation of response content + + + + + HTTP response status code + + + + + Description of HTTP status returned + + + + + Response content + + + + + The URL that actually responded to the content (different from request if redirected) + + + + + HttpWebResponse.Server + + + + + Cookies returned by server with the response + + + + + Headers returned by server with the response + + + + + Status of the request. Will return Error for transport errors. + HTTP errors will still return ResponseStatus.Completed, check StatusCode instead + + + + + Transport or other non-HTTP error generated while attempting request + + + + + The exception thrown during the request, if any + + + + + Container for data sent back from API including deserialized data + + Type of data to deserialize to + + + + Deserialized entity data + + + + + Container for data sent back from API + + + + + Parameter container for REST requests + + + + + Return a human-readable representation of this parameter + + String + + + + Name of the parameter + + + + + Value of the parameter + + + + + Type of the parameter + + + + + Client to translate RestRequests into Http requests and process response result + + + + + Default constructor that registers default content handlers + + + + + Sets the BaseUrl property for requests made by this client instance + + + + + + Registers a content handler to process response content + + MIME content type of the response content + Deserializer to use to process content + + + + Remove a content handler for the specified MIME content type + + MIME content type to remove + + + + Remove all content handlers + + + + + Retrieve the handler for the specified MIME content type + + MIME content type to retrieve + IDeserializer instance + + + + Assembles URL to call based on parameters, method and resource + + RestRequest to execute + Assembled System.Uri + + + + Executes the request and callback asynchronously, authenticating if needed + + Request to be executed + Callback function to be executed upon completion providing access to the async handle. + + + + Executes a GET-style request and callback asynchronously, authenticating if needed + + Request to be executed + Callback function to be executed upon completion providing access to the async handle. + The HTTP method to execute + + + + Executes a POST-style request and callback asynchronously, authenticating if needed + + Request to be executed + Callback function to be executed upon completion providing access to the async handle. + The HTTP method to execute + + + + Executes the request and callback asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + Callback function to be executed upon completion + + + + Executes a GET-style request and callback asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + Callback function to be executed upon completion + The HTTP method to execute + + + + Executes a POST-style request and callback asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + Callback function to be executed upon completion + The HTTP method to execute + + + + Executes the specified request and downloads the response data + + Request to execute + Response data + + + + Executes the request and returns a response, authenticating if needed + + Request to be executed + RestResponse + + + + Executes the specified request and deserializes the response content using the appropriate content handler + + Target deserialization type + Request to execute + RestResponse[[T]] with deserialized data in Data property + + + + Parameters included with every request made with this instance of RestClient + If specified in both client and request, the request wins + + + + + Maximum number of redirects to follow if FollowRedirects is true + + + + + X509CertificateCollection to be sent with request + + + + + Default is true. Determine whether or not requests that result in + HTTP status codes of 3xx should follow returned redirect + + + + + The CookieContainer used for requests made by this client instance + + + + + UserAgent to use for requests made by this client instance + + + + + Timeout in milliseconds to use for requests made by this client instance + + + + + Whether to invoke async callbacks using the SynchronizationContext.Current captured when invoked + + + + + Authenticator to use for requests made by this client instance + + + + + Combined with Request.Resource to construct URL for request + Should include scheme and domain without trailing slash. + + + client.BaseUrl = "http://example.com"; + + + + + Proxy to use for requests made by this client instance. + Passed on to underying WebRequest if set. + + + + + Container for data used to make requests + + + + + Default constructor + + + + + Sets Method property to value of method + + Method to use for this request + + + + Sets Resource property + + Resource to use for this request + + + + Sets Resource and Method properties + + Resource to use for this request + Method to use for this request + + + + Sets Resource property + + Resource to use for this request + + + + Sets Resource and Method properties + + Resource to use for this request + Method to use for this request + + + + Adds a file to the Files collection to be included with a POST or PUT request + (other methods do not support file uploads). + + The parameter name to use in the request + Full path to file to upload + This request + + + + Adds the bytes to the Files collection with the specified file name + + The parameter name to use in the request + The file data + The file name to use for the uploaded file + This request + + + + Adds the bytes to the Files collection with the specified file name and content type + + The parameter name to use in the request + The file data + The file name to use for the uploaded file + The MIME type of the file to upload + This request + + + + Adds the bytes to the Files collection with the specified file name and content type + + The parameter name to use in the request + A function that writes directly to the stream. Should NOT close the stream. + The file name to use for the uploaded file + This request + + + + Adds the bytes to the Files collection with the specified file name and content type + + The parameter name to use in the request + A function that writes directly to the stream. Should NOT close the stream. + The file name to use for the uploaded file + The MIME type of the file to upload + This request + + + + Serializes obj to format specified by RequestFormat, but passes xmlNamespace if using the default XmlSerializer + + The object to serialize + The XML namespace to use when serializing + This request + + + + Serializes obj to data format specified by RequestFormat and adds it to the request body. + + The object to serialize + This request + + + + Calls AddParameter() for all public, readable properties specified in the white list + + + request.AddObject(product, "ProductId", "Price", ...); + + The object with properties to add as parameters + The names of the properties to include + This request + + + + Calls AddParameter() for all public, readable properties of obj + + The object with properties to add as parameters + This request + + + + Add the parameter to the request + + Parameter to add + + + + + Adds a HTTP parameter to the request (QueryString for GET, DELETE, OPTIONS and HEAD; Encoded form for POST and PUT) + + Name of the parameter + Value of the parameter + This request + + + + Adds a parameter to the request. There are four types of parameters: + - GetOrPost: Either a QueryString value or encoded form value based on method + - HttpHeader: Adds the name/value pair to the HTTP request's Headers collection + - UrlSegment: Inserted into URL if there is a matching url token e.g. {AccountId} + - RequestBody: Used by AddBody() (not recommended to use directly) + + Name of the parameter + Value of the parameter + The type of parameter to add + This request + + + + Shortcut to AddParameter(name, value, HttpHeader) overload + + Name of the header to add + Value of the header to add + + + + + Shortcut to AddParameter(name, value, Cookie) overload + + Name of the cookie to add + Value of the cookie to add + + + + + Shortcut to AddParameter(name, value, UrlSegment) overload + + Name of the segment to add + Value of the segment to add + + + + + Internal Method so that RestClient can increase the number of attempts + + + + + Serializer to use when writing JSON request bodies. Used if RequestFormat is Json. + By default the included JsonSerializer is used (currently using JSON.NET default serialization). + + + + + Serializer to use when writing XML request bodies. Used if RequestFormat is Xml. + By default the included XmlSerializer is used. + + + + + Container of all HTTP parameters to be passed with the request. + See AddParameter() for explanation of the types of parameters that can be passed + + + + + Container of all the files to be uploaded with the request. + + + + + Determines what HTTP method to use for this request. Supported methods: GET, POST, PUT, DELETE, HEAD, OPTIONS + Default is GET + + + + + The Resource URL to make the request against. + Tokens are substituted with UrlSegment parameters and match by name. + Should not include the scheme or domain. Do not include leading slash. + Combined with RestClient.BaseUrl to assemble final URL: + {BaseUrl}/{Resource} (BaseUrl is scheme + domain, e.g. http://example.com) + + + // example for url token replacement + request.Resource = "Products/{ProductId}"; + request.AddParameter("ProductId", 123, ParameterType.UrlSegment); + + + + + Serializer to use when writing XML request bodies. Used if RequestFormat is Xml. + By default XmlSerializer is used. + + + + + Used by the default deserializers to determine where to start deserializing from. + Can be used to skip container or root elements that do not have corresponding deserialzation targets. + + + + + A function to run prior to deserializing starting (e.g. change settings if error encountered) + + + + + Used by the default deserializers to explicitly set which date format string to use when parsing dates. + + + + + Used by XmlDeserializer. If not specified, XmlDeserializer will flatten response by removing namespaces from element names. + + + + + In general you would not need to set this directly. Used by the NtlmAuthenticator. + + + + + Gets or sets a user-defined state object that contains information about a request and which can be later + retrieved when the request completes. + + + + + Timeout in milliseconds to be used for the request. This timeout value overrides a timeout set on the RestClient. + + + + + How many attempts were made to send this Request? + + + This Number is incremented each time the RestClient sends the request. + Useful when using Asynchronous Execution with Callbacks + + + + + Comment of the cookie + + + + + Comment of the cookie + + + + + Indicates whether the cookie should be discarded at the end of the session + + + + + Domain of the cookie + + + + + Indicates whether the cookie is expired + + + + + Date and time that the cookie expires + + + + + Indicates that this cookie should only be accessed by the server + + + + + Name of the cookie + + + + + Path of the cookie + + + + + Port of the cookie + + + + + Indicates that the cookie should only be sent over secure channels + + + + + Date and time the cookie was created + + + + + Value of the cookie + + + + + Version of the cookie + + + + + Wrapper for System.Xml.Serialization.XmlSerializer. + + + + + Wrapper for System.Xml.Serialization.XmlSerializer. + + + + + Default constructor, does not specify namespace + + + + + Specify the namespaced to be used when serializing + + XML namespace + + + + Serialize the object as XML + + Object to serialize + XML as string + + + + Name of the root element to use when serializing + + + + + XML namespace to use when serializing + + + + + Format string to use when serializing dates + + + + + Content type for serialized content + + + + + Encoding for serialized content + + + + + Need to subclass StringWriter in order to override Encoding + + + + + Default JSON serializer for request bodies + Doesn't currently use the SerializeAs attribute, defers to Newtonsoft's attributes + + + + + Default serializer + + + + + Serialize the object as JSON + + Object to serialize + JSON as String + + + + Unused for JSON Serialization + + + + + Unused for JSON Serialization + + + + + Unused for JSON Serialization + + + + + Content type for serialized content + + + + + Allows control how class and property names and values are serialized by XmlSerializer + Currently not supported with the JsonSerializer + When specified at the property level the class-level specification is overridden + + + + + Called by the attribute when NameStyle is speficied + + The string to transform + String + + + + The name to use for the serialized element + + + + + Sets the value to be serialized as an Attribute instead of an Element + + + + + The culture to use when serializing + + + + + Transforms the casing of the name based on the selected value. + + + + + The order to serialize the element. Default is int.MaxValue. + + + + + Options for transforming casing of element names + + + + + Default XML Serializer + + + + + Default constructor, does not specify namespace + + + + + Specify the namespaced to be used when serializing + + XML namespace + + + + Serialize the object as XML + + Object to serialize + XML as string + + + + Name of the root element to use when serializing + + + + + XML namespace to use when serializing + + + + + Format string to use when serializing dates + + + + + Content type for serialized content + + + + + Represents the json array. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The capacity of the json array. + + + + The json representation of the array. + + The json representation of the array. + + + + Represents the json object. + + + + + The internal member dictionary. + + + + + Adds the specified key. + + The key. + The value. + + + + Determines whether the specified key contains key. + + The key. + + true if the specified key contains key; otherwise, false. + + + + + Removes the specified key. + + The key. + + + + + Tries the get value. + + The key. + The value. + + + + + Adds the specified item. + + The item. + + + + Clears this instance. + + + + + Determines whether [contains] [the specified item]. + + The item. + + true if [contains] [the specified item]; otherwise, false. + + + + + Copies to. + + The array. + Index of the array. + + + + Removes the specified item. + + The item. + + + + + Gets the enumerator. + + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Returns a json that represents the current . + + + A json that represents the current . + + + + + Gets the at the specified index. + + + + + + Gets the keys. + + The keys. + + + + Gets the values. + + The values. + + + + Gets or sets the with the specified key. + + + + + + Gets the count. + + The count. + + + + Gets a value indicating whether this instance is read only. + + + true if this instance is read only; otherwise, false. + + + + + This class encodes and decodes JSON strings. + Spec. details, see http://www.json.org/ + + JSON uses Arrays and Objects. These correspond here to the datatypes JsonArray(IList<object>) and JsonObject(IDictionary<string,object>). + All numbers are parsed to doubles. + + + + + Parses the string json into a value + + A JSON string. + An IList<object>, a IDictionary<string,object>, a double, a string, null, true, or false + + + + Try parsing the json string into a value. + + + A JSON string. + + + The object. + + + Returns true if successfull otherwise false. + + + + + Converts a IDictionary<string,object> / IList<object> object into a JSON string + + A IDictionary<string,object> / IList<object> + Serializer strategy to use + A JSON encoded string, or null if object 'json' is not serializable + + + + Determines if a given object is numeric in any way + (can be integer, double, null, etc). + + + + + Helper methods for validating values + + + + + Validate an integer value is between the specified values (exclusive of min/max) + + Value to validate + Exclusive minimum value + Exclusive maximum value + + + + Validate a string length + + String to be validated + Maximum length of the string + + + + Helper methods for validating required values + + + + + Require a parameter to not be null + + Name of the parameter + Value of the parameter + + + diff --git a/packages/RestSharp.104.1/lib/net35/RestSharp.dll b/packages/RestSharp.104.1/lib/net35/RestSharp.dll new file mode 100644 index 0000000..66e3817 Binary files /dev/null and b/packages/RestSharp.104.1/lib/net35/RestSharp.dll differ diff --git a/packages/RestSharp.104.1/lib/net35/RestSharp.xml b/packages/RestSharp.104.1/lib/net35/RestSharp.xml new file mode 100644 index 0000000..28de9da --- /dev/null +++ b/packages/RestSharp.104.1/lib/net35/RestSharp.xml @@ -0,0 +1,2611 @@ + + + + RestSharp + + + + + Tries to Authenticate with the credentials of the currently logged in user, or impersonate a user + + + + + Authenticate with the credentials of the currently logged in user + + + + + Authenticate by impersonation + + + + + + + Authenticate by impersonation, using an existing ICredentials instance + + + + + + + + + Base class for OAuth 2 Authenticators. + + + Since there are many ways to authenticate in OAuth2, + this is used as a base class to differentiate between + other authenticators. + + Any other OAuth2 authenticators must derive from this + abstract class. + + + + + Access token to be used when authenticating. + + + + + Initializes a new instance of the class. + + + The access token. + + + + + Gets the access token. + + + + + The OAuth 2 authenticator using URI query parameter. + + + Based on http://tools.ietf.org/html/draft-ietf-oauth-v2-10#section-5.1.2 + + + + + Initializes a new instance of the class. + + + The access token. + + + + + The OAuth 2 authenticator using the authorization request header field. + + + Based on http://tools.ietf.org/html/draft-ietf-oauth-v2-10#section-5.1.1 + + + + + Stores the Authoriztion header value as "OAuth accessToken". used for performance. + + + + + Initializes a new instance of the class. + + + The access token. + + + + + All text parameters are UTF-8 encoded (per section 5.1). + + + + + + Generates a random 16-byte lowercase alphanumeric string. + + + + + + + Generates a timestamp based on the current elapsed seconds since '01/01/1970 0000 GMT" + + + + + + + Generates a timestamp based on the elapsed seconds of a given time since '01/01/1970 0000 GMT" + + + A specified point in time. + + + + + The set of characters that are unreserved in RFC 2396 but are NOT unreserved in RFC 3986. + + + + + + URL encodes a string based on section 5.1 of the OAuth spec. + Namely, percent encoding with [RFC3986], avoiding unreserved characters, + upper-casing hexadecimal characters, and UTF-8 encoding for text value pairs. + + The value to escape. + The escaped value. + + The method is supposed to take on + RFC 3986 behavior if certain elements are present in a .config file. Even if this + actually worked (which in my experiments it doesn't), we can't rely on every + host actually having this configuration element present. + + + + + + + URL encodes a string based on section 5.1 of the OAuth spec. + Namely, percent encoding with [RFC3986], avoiding unreserved characters, + upper-casing hexadecimal characters, and UTF-8 encoding for text value pairs. + + + + + + + Sorts a collection of key-value pairs by name, and then value if equal, + concatenating them into a single string. This string should be encoded + prior to, or after normalization is run. + + + + + + + + Sorts a by name, and then value if equal. + + A collection of parameters to sort + A sorted parameter collection + + + + Creates a request URL suitable for making OAuth requests. + Resulting URLs must exclude port 80 or port 443 when accompanied by HTTP and HTTPS, respectively. + Resulting URLs must be lower case. + + + The original request URL + + + + + Creates a request elements concatentation value to send with a request. + This is also known as the signature base. + + + + The request's HTTP method type + The request URL + The request's parameters + A signature base string + + + + Creates a signature value given a signature base and the consumer secret. + This method is used when the token secret is currently unknown. + + + The hashing method + The signature base + The consumer key + + + + + Creates a signature value given a signature base and the consumer secret. + This method is used when the token secret is currently unknown. + + + The hashing method + The treatment to use on a signature value + The signature base + The consumer key + + + + + Creates a signature value given a signature base and the consumer secret and a known token secret. + + + The hashing method + The signature base + The consumer secret + The token secret + + + + + Creates a signature value given a signature base and the consumer secret and a known token secret. + + + The hashing method + The treatment to use on a signature value + The signature base + The consumer secret + The token secret + + + + + A class to encapsulate OAuth authentication flow. + + + + + + Generates a instance to pass to an + for the purpose of requesting an + unauthorized request token. + + The HTTP method for the intended request + + + + + + Generates a instance to pass to an + for the purpose of requesting an + unauthorized request token. + + The HTTP method for the intended request + Any existing, non-OAuth query parameters desired in the request + + + + + + Generates a instance to pass to an + for the purpose of exchanging a request token + for an access token authorized by the user at the Service Provider site. + + The HTTP method for the intended request + + + + + Generates a instance to pass to an + for the purpose of exchanging a request token + for an access token authorized by the user at the Service Provider site. + + The HTTP method for the intended request + + Any existing, non-OAuth query parameters desired in the request + + + + Generates a instance to pass to an + for the purpose of exchanging user credentials + for an access token authorized by the user at the Service Provider site. + + The HTTP method for the intended request + + Any existing, non-OAuth query parameters desired in the request + + + + + + + + + + + + + Allows control how class and property names and values are deserialized by XmlAttributeDeserializer + + + + + The name to use for the serialized element + + + + + Sets if the property to Deserialize is an Attribute or Element (Default: false) + + + + + Decodes an HTML-encoded string and returns the decoded string. + + The HTML string to decode. + The decoded text. + + + + Decodes an HTML-encoded string and sends the resulting output to a TextWriter output stream. + + The HTML string to decode + The TextWriter output stream containing the decoded string. + + + + HTML-encodes a string and sends the resulting output to a TextWriter output stream. + + The string to encode. + The TextWriter output stream containing the encoded string. + + + + Executes the request and callback asynchronously, authenticating if needed + + The IRestClient this method extends + Request to be executed + Callback function to be executed upon completion + + + + Executes the request and callback asynchronously, authenticating if needed + + The IRestClient this method extends + Target deserialization type + Request to be executed + Callback function to be executed upon completion providing access to the async handle + + + + Add a parameter to use on every request made with this client instance + + The IRestClient instance + Parameter to add + + + + + Adds a HTTP parameter (QueryString for GET, DELETE, OPTIONS and HEAD; Encoded form for POST and PUT) + Used on every request made by this client instance + + The IRestClient instance + Name of the parameter + Value of the parameter + This request + + + + Adds a parameter to the request. There are four types of parameters: + - GetOrPost: Either a QueryString value or encoded form value based on method + - HttpHeader: Adds the name/value pair to the HTTP request's Headers collection + - UrlSegment: Inserted into URL if there is a matching url token e.g. {AccountId} + - RequestBody: Used by AddBody() (not recommended to use directly) + + The IRestClient instance + Name of the parameter + Value of the parameter + The type of parameter to add + This request + + + + Shortcut to AddDefaultParameter(name, value, HttpHeader) overload + + The IRestClient instance + Name of the header to add + Value of the header to add + + + + + Shortcut to AddDefaultParameter(name, value, UrlSegment) overload + + The IRestClient instance + Name of the segment to add + Value of the segment to add + + + + + Uses Uri.EscapeDataString() based on recommendations on MSDN + http://blogs.msdn.com/b/yangxind/archive/2006/11/09/don-t-use-net-system-uri-unescapedatastring-in-url-decoding.aspx + + + + + Check that a string is not null or empty + + String to check + bool + + + + Remove underscores from a string + + String to process + string + + + + Parses most common JSON date formats + + JSON value to parse + DateTime + + + + Remove leading and trailing " from a string + + String to parse + String + + + + Checks a string to see if it matches a regex + + String to check + Pattern to match + bool + + + + Converts a string to pascal case + + String to convert + string + + + + Converts a string to pascal case with the option to remove underscores + + String to convert + Option to remove underscores + + + + + Converts a string to camel case + + String to convert + String + + + + Convert the first letter of a string to lower case + + String to convert + string + + + + Checks to see if a string is all uppper case + + String to check + bool + + + + Add underscores to a pascal-cased string + + String to convert + string + + + + Add dashes to a pascal-cased string + + String to convert + string + + + + Add an undescore prefix to a pascasl-cased string + + + + + + + Return possible variants of a name for name matching. + + String to convert + The culture to use for conversion + IEnumerable<string> + + + + HttpWebRequest wrapper (sync methods) + + + HttpWebRequest wrapper + + + HttpWebRequest wrapper (async methods) + + + + + Execute a POST request + + + + + Execute a PUT request + + + + + Execute a GET request + + + + + Execute a HEAD request + + + + + Execute an OPTIONS request + + + + + Execute a DELETE request + + + + + Execute a PATCH request + + + + + Execute a GET-style request with the specified HTTP Method. + + The HTTP method to execute. + + + + + Execute a POST-style request with the specified HTTP Method. + + The HTTP method to execute. + + + + + Creates an IHttp + + + + + + Default constructor + + + + + Execute an async POST-style request with the specified HTTP Method. + + The HTTP method to execute. + + + + + Execute an async GET-style request with the specified HTTP Method. + + The HTTP method to execute. + + + + + True if this HTTP request has any HTTP parameters + + + + + True if this HTTP request has any HTTP cookies + + + + + True if a request body has been specified + + + + + True if files have been set to be uploaded + + + + + UserAgent to be sent with request + + + + + Timeout in milliseconds to be used for the request + + + + + System.Net.ICredentials to be sent with request + + + + + The System.Net.CookieContainer to be used for the request + + + + + Collection of files to be sent with request + + + + + Whether or not HTTP 3xx response redirects should be automatically followed + + + + + X509CertificateCollection to be sent with request + + + + + Maximum number of automatic redirects to follow if FollowRedirects is true + + + + + HTTP headers to be sent with request + + + + + HTTP parameters (QueryString or Form values) to be sent with request + + + + + HTTP cookies to be sent with request + + + + + Request body to be sent with request + + + + + Content type of the request body. + + + + + URL to call for this request + + + + + Proxy info to be sent with request + + + + + Representation of an HTTP cookie + + + + + Comment of the cookie + + + + + Comment of the cookie + + + + + Indicates whether the cookie should be discarded at the end of the session + + + + + Domain of the cookie + + + + + Indicates whether the cookie is expired + + + + + Date and time that the cookie expires + + + + + Indicates that this cookie should only be accessed by the server + + + + + Name of the cookie + + + + + Path of the cookie + + + + + Port of the cookie + + + + + Indicates that the cookie should only be sent over secure channels + + + + + Date and time the cookie was created + + + + + Value of the cookie + + + + + Version of the cookie + + + + + HTTP response data + + + + + HTTP response data + + + + + MIME content type of response + + + + + Length in bytes of the response content + + + + + Encoding of the response content + + + + + String representation of response content + + + + + HTTP response status code + + + + + Description of HTTP status returned + + + + + Response content + + + + + The URL that actually responded to the content (different from request if redirected) + + + + + HttpWebResponse.Server + + + + + Headers returned by server with the response + + + + + Cookies returned by server with the response + + + + + Status of the request. Will return Error for transport errors. + HTTP errors will still return ResponseStatus.Completed, check StatusCode instead + + + + + Transport or other non-HTTP error generated while attempting request + + + + + Exception thrown when error is encountered. + + + + + Default constructor + + + + + MIME content type of response + + + + + Length in bytes of the response content + + + + + Encoding of the response content + + + + + Lazy-loaded string representation of response content + + + + + HTTP response status code + + + + + Description of HTTP status returned + + + + + Response content + + + + + The URL that actually responded to the content (different from request if redirected) + + + + + HttpWebResponse.Server + + + + + Headers returned by server with the response + + + + + Cookies returned by server with the response + + + + + Status of the request. Will return Error for transport errors. + HTTP errors will still return ResponseStatus.Completed, check StatusCode instead + + + + + Transport or other non-HTTP error generated while attempting request + + + + + Exception thrown when error is encountered. + + + + + Types of parameters that can be added to requests + + + + + Data formats + + + + + HTTP method to use when making requests + + + + + Format strings for commonly-used date formats + + + + + .NET format string for ISO 8601 date format + + + + + .NET format string for roundtrip date format + + + + + Status for responses (surprised?) + + + + + Extension method overload! + + + + + Save a byte array to a file + + Bytes to save + Full path to save file to + + + + Read a stream into a byte array + + Stream to read + byte[] + + + + Copies bytes from one stream to another + + The input stream. + The output stream. + + + + Converts a byte array to a string, using its byte order mark to convert it to the right encoding. + http://www.shrinkrays.net/code-snippets/csharp/an-extension-method-for-converting-a-byte-array-to-a-string.aspx + + An array of bytes to convert + The byte as a string. + + + + Reflection extensions + + + + + Retrieve an attribute from a member (property) + + Type of attribute to retrieve + Member to retrieve attribute from + + + + + Retrieve an attribute from a type + + Type of attribute to retrieve + Type to retrieve attribute from + + + + + Checks a type to see if it derives from a raw generic (e.g. List[[]]) + + + + + + + + + XML Extension Methods + + + + + Returns the name of an element with the namespace if specified + + Element name + XML Namespace + + + + + Container for files to be uploaded with requests + + + + + Creates a file parameter from an array of bytes. + + The parameter name to use in the request. + The data to use as the file's contents. + The filename to use in the request. + The content type to use in the request. + The + + + + Creates a file parameter from an array of bytes. + + The parameter name to use in the request. + The data to use as the file's contents. + The filename to use in the request. + The using the default content type. + + + + The length of data to be sent + + + + + Provides raw data for file + + + + + Name of the file to use when uploading + + + + + MIME content type of file + + + + + Name of the parameter + + + + + Container for HTTP file + + + + + The length of data to be sent + + + + + Provides raw data for file + + + + + Name of the file to use when uploading + + + + + MIME content type of file + + + + + Name of the parameter + + + + + Representation of an HTTP header + + + + + Name of the header + + + + + Value of the header + + + + + Representation of an HTTP parameter (QueryString or Form value) + + + + + Name of the parameter + + + + + Value of the parameter + + + + + + + + + + + + + + + + + + + + + + Executes a GET-style request and callback asynchronously, authenticating if needed + + Request to be executed + Callback function to be executed upon completion providing access to the async handle. + The HTTP method to execute + + + + Executes a POST-style request and callback asynchronously, authenticating if needed + + Request to be executed + Callback function to be executed upon completion providing access to the async handle. + The HTTP method to execute + + + + Executes a GET-style request and callback asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + Callback function to be executed upon completion + The HTTP method to execute + + + + Executes a GET-style request and callback asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + Callback function to be executed upon completion + The HTTP method to execute + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + X509CertificateCollection to be sent with request + + + + + Adds a file to the Files collection to be included with a POST or PUT request + (other methods do not support file uploads). + + The parameter name to use in the request + Full path to file to upload + This request + + + + Adds the bytes to the Files collection with the specified file name + + The parameter name to use in the request + The file data + The file name to use for the uploaded file + This request + + + + Adds the bytes to the Files collection with the specified file name and content type + + The parameter name to use in the request + The file data + The file name to use for the uploaded file + The MIME type of the file to upload + This request + + + + Serializes obj to format specified by RequestFormat, but passes xmlNamespace if using the default XmlSerializer + + The object to serialize + The XML namespace to use when serializing + This request + + + + Serializes obj to data format specified by RequestFormat and adds it to the request body. + + The object to serialize + This request + + + + Calls AddParameter() for all public, readable properties specified in the white list + + + request.AddObject(product, "ProductId", "Price", ...); + + The object with properties to add as parameters + The names of the properties to include + This request + + + + Calls AddParameter() for all public, readable properties of obj + + The object with properties to add as parameters + This request + + + + Add the parameter to the request + + Parameter to add + + + + + Adds a HTTP parameter to the request (QueryString for GET, DELETE, OPTIONS and HEAD; Encoded form for POST and PUT) + + Name of the parameter + Value of the parameter + This request + + + + Adds a parameter to the request. There are five types of parameters: + - GetOrPost: Either a QueryString value or encoded form value based on method + - HttpHeader: Adds the name/value pair to the HTTP request's Headers collection + - UrlSegment: Inserted into URL if there is a matching url token e.g. {AccountId} + - Cookie: Adds the name/value pair to the HTTP request's Cookies collection + - RequestBody: Used by AddBody() (not recommended to use directly) + + Name of the parameter + Value of the parameter + The type of parameter to add + This request + + + + Shortcut to AddParameter(name, value, HttpHeader) overload + + Name of the header to add + Value of the header to add + + + + + Shortcut to AddParameter(name, value, Cookie) overload + + Name of the cookie to add + Value of the cookie to add + + + + + Shortcut to AddParameter(name, value, UrlSegment) overload + + Name of the segment to add + Value of the segment to add + + + + + Serializer to use when writing JSON request bodies. Used if RequestFormat is Json. + By default the included JsonSerializer is used (currently using JSON.NET default serialization). + + + + + Serializer to use when writing XML request bodies. Used if RequestFormat is Xml. + By default the included XmlSerializer is used. + + + + + Container of all HTTP parameters to be passed with the request. + See AddParameter() for explanation of the types of parameters that can be passed + + + + + Container of all the files to be uploaded with the request. + + + + + Determines what HTTP method to use for this request. Supported methods: GET, POST, PUT, DELETE, HEAD, OPTIONS + Default is GET + + + + + The Resource URL to make the request against. + Tokens are substituted with UrlSegment parameters and match by name. + Should not include the scheme or domain. Do not include leading slash. + Combined with RestClient.BaseUrl to assemble final URL: + {BaseUrl}/{Resource} (BaseUrl is scheme + domain, e.g. http://example.com) + + + // example for url token replacement + request.Resource = "Products/{ProductId}"; + request.AddParameter("ProductId", 123, ParameterType.UrlSegment); + + + + + Serializer to use when writing XML request bodies. Used if RequestFormat is Xml. + By default XmlSerializer is used. + + + + + Used by the default deserializers to determine where to start deserializing from. + Can be used to skip container or root elements that do not have corresponding deserialzation targets. + + + + + Used by the default deserializers to explicitly set which date format string to use when parsing dates. + + + + + Used by XmlDeserializer. If not specified, XmlDeserializer will flatten response by removing namespaces from element names. + + + + + In general you would not need to set this directly. Used by the NtlmAuthenticator. + + + + + Timeout in milliseconds to be used for the request. This timeout value overrides a timeout set on the RestClient. + + + + + How many attempts were made to send this Request? + + + This Number is incremented each time the RestClient sends the request. + Useful when using Asynchronous Execution with Callbacks + + + + + Container for data sent back from API + + + + + The RestRequest that was made to get this RestResponse + + + Mainly for debugging if ResponseStatus is not OK + + + + + MIME content type of response + + + + + Length in bytes of the response content + + + + + Encoding of the response content + + + + + String representation of response content + + + + + HTTP response status code + + + + + Description of HTTP status returned + + + + + Response content + + + + + The URL that actually responded to the content (different from request if redirected) + + + + + HttpWebResponse.Server + + + + + Cookies returned by server with the response + + + + + Headers returned by server with the response + + + + + Status of the request. Will return Error for transport errors. + HTTP errors will still return ResponseStatus.Completed, check StatusCode instead + + + + + Transport or other non-HTTP error generated while attempting request + + + + + The exception thrown during the request, if any + + + + + Container for data sent back from API including deserialized data + + Type of data to deserialize to + + + + Deserialized entity data + + + + + Base class for common properties shared by RestResponse and RestResponse[[T]] + + + + + Default constructor + + + + + The RestRequest that was made to get this RestResponse + + + Mainly for debugging if ResponseStatus is not OK + + + + + MIME content type of response + + + + + Length in bytes of the response content + + + + + Encoding of the response content + + + + + String representation of response content + + + + + HTTP response status code + + + + + Description of HTTP status returned + + + + + Response content + + + + + The URL that actually responded to the content (different from request if redirected) + + + + + HttpWebResponse.Server + + + + + Cookies returned by server with the response + + + + + Headers returned by server with the response + + + + + Status of the request. Will return Error for transport errors. + HTTP errors will still return ResponseStatus.Completed, check StatusCode instead + + + + + Transport or other non-HTTP error generated while attempting request + + + + + The exception thrown during the request, if any + + + + + Container for data sent back from API including deserialized data + + Type of data to deserialize to + + + + Deserialized entity data + + + + + Container for data sent back from API + + + + + Parameter container for REST requests + + + + + Return a human-readable representation of this parameter + + String + + + + Name of the parameter + + + + + Value of the parameter + + + + + Type of the parameter + + + + + Client to translate RestRequests into Http requests and process response result + + + + + Default constructor that registers default content handlers + + + + + Sets the BaseUrl property for requests made by this client instance + + + + + + Registers a content handler to process response content + + MIME content type of the response content + Deserializer to use to process content + + + + Remove a content handler for the specified MIME content type + + MIME content type to remove + + + + Remove all content handlers + + + + + Retrieve the handler for the specified MIME content type + + MIME content type to retrieve + IDeserializer instance + + + + Assembles URL to call based on parameters, method and resource + + RestRequest to execute + Assembled System.Uri + + + + Executes the request and callback asynchronously, authenticating if needed + + Request to be executed + Callback function to be executed upon completion providing access to the async handle. + + + + Executes a GET-style request and callback asynchronously, authenticating if needed + + Request to be executed + Callback function to be executed upon completion providing access to the async handle. + The HTTP method to execute + + + + Executes a POST-style request and callback asynchronously, authenticating if needed + + Request to be executed + Callback function to be executed upon completion providing access to the async handle. + The HTTP method to execute + + + + Executes the request and callback asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + Callback function to be executed upon completion + + + + Executes a GET-style request and callback asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + Callback function to be executed upon completion + The HTTP method to execute + + + + Executes a POST-style request and callback asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + Callback function to be executed upon completion + The HTTP method to execute + + + + Executes the specified request and downloads the response data + + Request to execute + Response data + + + + Executes the request and returns a response, authenticating if needed + + Request to be executed + RestResponse + + + + Executes the specified request and deserializes the response content using the appropriate content handler + + Target deserialization type + Request to execute + RestResponse[[T]] with deserialized data in Data property + + + + Parameters included with every request made with this instance of RestClient + If specified in both client and request, the request wins + + + + + Maximum number of redirects to follow if FollowRedirects is true + + + + + X509CertificateCollection to be sent with request + + + + + Default is true. Determine whether or not requests that result in + HTTP status codes of 3xx should follow returned redirect + + + + + The CookieContainer used for requests made by this client instance + + + + + UserAgent to use for requests made by this client instance + + + + + Timeout in milliseconds to use for requests made by this client instance + + + + + Whether to invoke async callbacks using the SynchronizationContext.Current captured when invoked + + + + + Authenticator to use for requests made by this client instance + + + + + Combined with Request.Resource to construct URL for request + Should include scheme and domain without trailing slash. + + + client.BaseUrl = "http://example.com"; + + + + + Proxy to use for requests made by this client instance. + Passed on to underying WebRequest if set. + + + + + Container for data used to make requests + + + + + Default constructor + + + + + Sets Method property to value of method + + Method to use for this request + + + + Sets Resource property + + Resource to use for this request + + + + Sets Resource and Method properties + + Resource to use for this request + Method to use for this request + + + + Sets Resource property + + Resource to use for this request + + + + Sets Resource and Method properties + + Resource to use for this request + Method to use for this request + + + + Adds a file to the Files collection to be included with a POST or PUT request + (other methods do not support file uploads). + + The parameter name to use in the request + Full path to file to upload + This request + + + + Adds the bytes to the Files collection with the specified file name + + The parameter name to use in the request + The file data + The file name to use for the uploaded file + This request + + + + Adds the bytes to the Files collection with the specified file name and content type + + The parameter name to use in the request + The file data + The file name to use for the uploaded file + The MIME type of the file to upload + This request + + + + Adds the bytes to the Files collection with the specified file name and content type + + The parameter name to use in the request + A function that writes directly to the stream. Should NOT close the stream. + The file name to use for the uploaded file + This request + + + + Adds the bytes to the Files collection with the specified file name and content type + + The parameter name to use in the request + A function that writes directly to the stream. Should NOT close the stream. + The file name to use for the uploaded file + The MIME type of the file to upload + This request + + + + Serializes obj to format specified by RequestFormat, but passes xmlNamespace if using the default XmlSerializer + + The object to serialize + The XML namespace to use when serializing + This request + + + + Serializes obj to data format specified by RequestFormat and adds it to the request body. + + The object to serialize + This request + + + + Calls AddParameter() for all public, readable properties specified in the white list + + + request.AddObject(product, "ProductId", "Price", ...); + + The object with properties to add as parameters + The names of the properties to include + This request + + + + Calls AddParameter() for all public, readable properties of obj + + The object with properties to add as parameters + This request + + + + Add the parameter to the request + + Parameter to add + + + + + Adds a HTTP parameter to the request (QueryString for GET, DELETE, OPTIONS and HEAD; Encoded form for POST and PUT) + + Name of the parameter + Value of the parameter + This request + + + + Adds a parameter to the request. There are four types of parameters: + - GetOrPost: Either a QueryString value or encoded form value based on method + - HttpHeader: Adds the name/value pair to the HTTP request's Headers collection + - UrlSegment: Inserted into URL if there is a matching url token e.g. {AccountId} + - RequestBody: Used by AddBody() (not recommended to use directly) + + Name of the parameter + Value of the parameter + The type of parameter to add + This request + + + + Shortcut to AddParameter(name, value, HttpHeader) overload + + Name of the header to add + Value of the header to add + + + + + Shortcut to AddParameter(name, value, Cookie) overload + + Name of the cookie to add + Value of the cookie to add + + + + + Shortcut to AddParameter(name, value, UrlSegment) overload + + Name of the segment to add + Value of the segment to add + + + + + Internal Method so that RestClient can increase the number of attempts + + + + + Serializer to use when writing JSON request bodies. Used if RequestFormat is Json. + By default the included JsonSerializer is used (currently using JSON.NET default serialization). + + + + + Serializer to use when writing XML request bodies. Used if RequestFormat is Xml. + By default the included XmlSerializer is used. + + + + + Container of all HTTP parameters to be passed with the request. + See AddParameter() for explanation of the types of parameters that can be passed + + + + + Container of all the files to be uploaded with the request. + + + + + Determines what HTTP method to use for this request. Supported methods: GET, POST, PUT, DELETE, HEAD, OPTIONS + Default is GET + + + + + The Resource URL to make the request against. + Tokens are substituted with UrlSegment parameters and match by name. + Should not include the scheme or domain. Do not include leading slash. + Combined with RestClient.BaseUrl to assemble final URL: + {BaseUrl}/{Resource} (BaseUrl is scheme + domain, e.g. http://example.com) + + + // example for url token replacement + request.Resource = "Products/{ProductId}"; + request.AddParameter("ProductId", 123, ParameterType.UrlSegment); + + + + + Serializer to use when writing XML request bodies. Used if RequestFormat is Xml. + By default XmlSerializer is used. + + + + + Used by the default deserializers to determine where to start deserializing from. + Can be used to skip container or root elements that do not have corresponding deserialzation targets. + + + + + A function to run prior to deserializing starting (e.g. change settings if error encountered) + + + + + Used by the default deserializers to explicitly set which date format string to use when parsing dates. + + + + + Used by XmlDeserializer. If not specified, XmlDeserializer will flatten response by removing namespaces from element names. + + + + + In general you would not need to set this directly. Used by the NtlmAuthenticator. + + + + + Gets or sets a user-defined state object that contains information about a request and which can be later + retrieved when the request completes. + + + + + Timeout in milliseconds to be used for the request. This timeout value overrides a timeout set on the RestClient. + + + + + How many attempts were made to send this Request? + + + This Number is incremented each time the RestClient sends the request. + Useful when using Asynchronous Execution with Callbacks + + + + + Comment of the cookie + + + + + Comment of the cookie + + + + + Indicates whether the cookie should be discarded at the end of the session + + + + + Domain of the cookie + + + + + Indicates whether the cookie is expired + + + + + Date and time that the cookie expires + + + + + Indicates that this cookie should only be accessed by the server + + + + + Name of the cookie + + + + + Path of the cookie + + + + + Port of the cookie + + + + + Indicates that the cookie should only be sent over secure channels + + + + + Date and time the cookie was created + + + + + Value of the cookie + + + + + Version of the cookie + + + + + Wrapper for System.Xml.Serialization.XmlSerializer. + + + + + Wrapper for System.Xml.Serialization.XmlSerializer. + + + + + Default constructor, does not specify namespace + + + + + Specify the namespaced to be used when serializing + + XML namespace + + + + Serialize the object as XML + + Object to serialize + XML as string + + + + Name of the root element to use when serializing + + + + + XML namespace to use when serializing + + + + + Format string to use when serializing dates + + + + + Content type for serialized content + + + + + Encoding for serialized content + + + + + Need to subclass StringWriter in order to override Encoding + + + + + Default JSON serializer for request bodies + Doesn't currently use the SerializeAs attribute, defers to Newtonsoft's attributes + + + + + Default serializer + + + + + Serialize the object as JSON + + Object to serialize + JSON as String + + + + Unused for JSON Serialization + + + + + Unused for JSON Serialization + + + + + Unused for JSON Serialization + + + + + Content type for serialized content + + + + + Allows control how class and property names and values are serialized by XmlSerializer + Currently not supported with the JsonSerializer + When specified at the property level the class-level specification is overridden + + + + + Called by the attribute when NameStyle is speficied + + The string to transform + String + + + + The name to use for the serialized element + + + + + Sets the value to be serialized as an Attribute instead of an Element + + + + + The culture to use when serializing + + + + + Transforms the casing of the name based on the selected value. + + + + + The order to serialize the element. Default is int.MaxValue. + + + + + Options for transforming casing of element names + + + + + Default XML Serializer + + + + + Default constructor, does not specify namespace + + + + + Specify the namespaced to be used when serializing + + XML namespace + + + + Serialize the object as XML + + Object to serialize + XML as string + + + + Name of the root element to use when serializing + + + + + XML namespace to use when serializing + + + + + Format string to use when serializing dates + + + + + Content type for serialized content + + + + + Represents the json array. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The capacity of the json array. + + + + The json representation of the array. + + The json representation of the array. + + + + Represents the json object. + + + + + The internal member dictionary. + + + + + Adds the specified key. + + The key. + The value. + + + + Determines whether the specified key contains key. + + The key. + + true if the specified key contains key; otherwise, false. + + + + + Removes the specified key. + + The key. + + + + + Tries the get value. + + The key. + The value. + + + + + Adds the specified item. + + The item. + + + + Clears this instance. + + + + + Determines whether [contains] [the specified item]. + + The item. + + true if [contains] [the specified item]; otherwise, false. + + + + + Copies to. + + The array. + Index of the array. + + + + Removes the specified item. + + The item. + + + + + Gets the enumerator. + + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Returns a json that represents the current . + + + A json that represents the current . + + + + + Gets the at the specified index. + + + + + + Gets the keys. + + The keys. + + + + Gets the values. + + The values. + + + + Gets or sets the with the specified key. + + + + + + Gets the count. + + The count. + + + + Gets a value indicating whether this instance is read only. + + + true if this instance is read only; otherwise, false. + + + + + This class encodes and decodes JSON strings. + Spec. details, see http://www.json.org/ + + JSON uses Arrays and Objects. These correspond here to the datatypes JsonArray(IList<object>) and JsonObject(IDictionary<string,object>). + All numbers are parsed to doubles. + + + + + Parses the string json into a value + + A JSON string. + An IList<object>, a IDictionary<string,object>, a double, a string, null, true, or false + + + + Try parsing the json string into a value. + + + A JSON string. + + + The object. + + + Returns true if successfull otherwise false. + + + + + Converts a IDictionary<string,object> / IList<object> object into a JSON string + + A IDictionary<string,object> / IList<object> + Serializer strategy to use + A JSON encoded string, or null if object 'json' is not serializable + + + + Determines if a given object is numeric in any way + (can be integer, double, null, etc). + + + + + Helper methods for validating values + + + + + Validate an integer value is between the specified values (exclusive of min/max) + + Value to validate + Exclusive minimum value + Exclusive maximum value + + + + Validate a string length + + String to be validated + Maximum length of the string + + + + Helper methods for validating required values + + + + + Require a parameter to not be null + + Name of the parameter + Value of the parameter + + + diff --git a/packages/RestSharp.104.1/lib/net4-client/RestSharp.dll b/packages/RestSharp.104.1/lib/net4-client/RestSharp.dll new file mode 100644 index 0000000..c1da1b5 Binary files /dev/null and b/packages/RestSharp.104.1/lib/net4-client/RestSharp.dll differ diff --git a/packages/RestSharp.104.1/lib/net4-client/RestSharp.xml b/packages/RestSharp.104.1/lib/net4-client/RestSharp.xml new file mode 100644 index 0000000..a681102 --- /dev/null +++ b/packages/RestSharp.104.1/lib/net4-client/RestSharp.xml @@ -0,0 +1,2680 @@ + + + + RestSharp + + + + + Tries to Authenticate with the credentials of the currently logged in user, or impersonate a user + + + + + Authenticate with the credentials of the currently logged in user + + + + + Authenticate by impersonation + + + + + + + Authenticate by impersonation, using an existing ICredentials instance + + + + + + + + + Base class for OAuth 2 Authenticators. + + + Since there are many ways to authenticate in OAuth2, + this is used as a base class to differentiate between + other authenticators. + + Any other OAuth2 authenticators must derive from this + abstract class. + + + + + Access token to be used when authenticating. + + + + + Initializes a new instance of the class. + + + The access token. + + + + + Gets the access token. + + + + + The OAuth 2 authenticator using URI query parameter. + + + Based on http://tools.ietf.org/html/draft-ietf-oauth-v2-10#section-5.1.2 + + + + + Initializes a new instance of the class. + + + The access token. + + + + + The OAuth 2 authenticator using the authorization request header field. + + + Based on http://tools.ietf.org/html/draft-ietf-oauth-v2-10#section-5.1.1 + + + + + Stores the Authoriztion header value as "OAuth accessToken". used for performance. + + + + + Initializes a new instance of the class. + + + The access token. + + + + + All text parameters are UTF-8 encoded (per section 5.1). + + + + + + Generates a random 16-byte lowercase alphanumeric string. + + + + + + + Generates a timestamp based on the current elapsed seconds since '01/01/1970 0000 GMT" + + + + + + + Generates a timestamp based on the elapsed seconds of a given time since '01/01/1970 0000 GMT" + + + A specified point in time. + + + + + The set of characters that are unreserved in RFC 2396 but are NOT unreserved in RFC 3986. + + + + + + URL encodes a string based on section 5.1 of the OAuth spec. + Namely, percent encoding with [RFC3986], avoiding unreserved characters, + upper-casing hexadecimal characters, and UTF-8 encoding for text value pairs. + + The value to escape. + The escaped value. + + The method is supposed to take on + RFC 3986 behavior if certain elements are present in a .config file. Even if this + actually worked (which in my experiments it doesn't), we can't rely on every + host actually having this configuration element present. + + + + + + + URL encodes a string based on section 5.1 of the OAuth spec. + Namely, percent encoding with [RFC3986], avoiding unreserved characters, + upper-casing hexadecimal characters, and UTF-8 encoding for text value pairs. + + + + + + + Sorts a collection of key-value pairs by name, and then value if equal, + concatenating them into a single string. This string should be encoded + prior to, or after normalization is run. + + + + + + + + Sorts a by name, and then value if equal. + + A collection of parameters to sort + A sorted parameter collection + + + + Creates a request URL suitable for making OAuth requests. + Resulting URLs must exclude port 80 or port 443 when accompanied by HTTP and HTTPS, respectively. + Resulting URLs must be lower case. + + + The original request URL + + + + + Creates a request elements concatentation value to send with a request. + This is also known as the signature base. + + + + The request's HTTP method type + The request URL + The request's parameters + A signature base string + + + + Creates a signature value given a signature base and the consumer secret. + This method is used when the token secret is currently unknown. + + + The hashing method + The signature base + The consumer key + + + + + Creates a signature value given a signature base and the consumer secret. + This method is used when the token secret is currently unknown. + + + The hashing method + The treatment to use on a signature value + The signature base + The consumer key + + + + + Creates a signature value given a signature base and the consumer secret and a known token secret. + + + The hashing method + The signature base + The consumer secret + The token secret + + + + + Creates a signature value given a signature base and the consumer secret and a known token secret. + + + The hashing method + The treatment to use on a signature value + The signature base + The consumer secret + The token secret + + + + + A class to encapsulate OAuth authentication flow. + + + + + + Generates a instance to pass to an + for the purpose of requesting an + unauthorized request token. + + The HTTP method for the intended request + + + + + + Generates a instance to pass to an + for the purpose of requesting an + unauthorized request token. + + The HTTP method for the intended request + Any existing, non-OAuth query parameters desired in the request + + + + + + Generates a instance to pass to an + for the purpose of exchanging a request token + for an access token authorized by the user at the Service Provider site. + + The HTTP method for the intended request + + + + + Generates a instance to pass to an + for the purpose of exchanging a request token + for an access token authorized by the user at the Service Provider site. + + The HTTP method for the intended request + + Any existing, non-OAuth query parameters desired in the request + + + + Generates a instance to pass to an + for the purpose of exchanging user credentials + for an access token authorized by the user at the Service Provider site. + + The HTTP method for the intended request + + Any existing, non-OAuth query parameters desired in the request + + + + + + + + + + + + + Allows control how class and property names and values are deserialized by XmlAttributeDeserializer + + + + + The name to use for the serialized element + + + + + Sets if the property to Deserialize is an Attribute or Element (Default: false) + + + + + Wrapper for System.Xml.Serialization.XmlSerializer. + + + + + Types of parameters that can be added to requests + + + + + Data formats + + + + + HTTP method to use when making requests + + + + + Format strings for commonly-used date formats + + + + + .NET format string for ISO 8601 date format + + + + + .NET format string for roundtrip date format + + + + + Status for responses (surprised?) + + + + + Extension method overload! + + + + + Save a byte array to a file + + Bytes to save + Full path to save file to + + + + Read a stream into a byte array + + Stream to read + byte[] + + + + Copies bytes from one stream to another + + The input stream. + The output stream. + + + + Converts a byte array to a string, using its byte order mark to convert it to the right encoding. + http://www.shrinkrays.net/code-snippets/csharp/an-extension-method-for-converting-a-byte-array-to-a-string.aspx + + An array of bytes to convert + The byte as a string. + + + + Decodes an HTML-encoded string and returns the decoded string. + + The HTML string to decode. + The decoded text. + + + + Decodes an HTML-encoded string and sends the resulting output to a TextWriter output stream. + + The HTML string to decode + The TextWriter output stream containing the decoded string. + + + + HTML-encodes a string and sends the resulting output to a TextWriter output stream. + + The string to encode. + The TextWriter output stream containing the encoded string. + + + + Reflection extensions + + + + + Retrieve an attribute from a member (property) + + Type of attribute to retrieve + Member to retrieve attribute from + + + + + Retrieve an attribute from a type + + Type of attribute to retrieve + Type to retrieve attribute from + + + + + Checks a type to see if it derives from a raw generic (e.g. List[[]]) + + + + + + + + + Uses Uri.EscapeDataString() based on recommendations on MSDN + http://blogs.msdn.com/b/yangxind/archive/2006/11/09/don-t-use-net-system-uri-unescapedatastring-in-url-decoding.aspx + + + + + Check that a string is not null or empty + + String to check + bool + + + + Remove underscores from a string + + String to process + string + + + + Parses most common JSON date formats + + JSON value to parse + DateTime + + + + Remove leading and trailing " from a string + + String to parse + String + + + + Checks a string to see if it matches a regex + + String to check + Pattern to match + bool + + + + Converts a string to pascal case + + String to convert + string + + + + Converts a string to pascal case with the option to remove underscores + + String to convert + Option to remove underscores + + + + + Converts a string to camel case + + String to convert + String + + + + Convert the first letter of a string to lower case + + String to convert + string + + + + Checks to see if a string is all uppper case + + String to check + bool + + + + Add underscores to a pascal-cased string + + String to convert + string + + + + Add dashes to a pascal-cased string + + String to convert + string + + + + Add an undescore prefix to a pascasl-cased string + + + + + + + Return possible variants of a name for name matching. + + String to convert + The culture to use for conversion + IEnumerable<string> + + + + XML Extension Methods + + + + + Returns the name of an element with the namespace if specified + + Element name + XML Namespace + + + + + Container for files to be uploaded with requests + + + + + Creates a file parameter from an array of bytes. + + The parameter name to use in the request. + The data to use as the file's contents. + The filename to use in the request. + The content type to use in the request. + The + + + + Creates a file parameter from an array of bytes. + + The parameter name to use in the request. + The data to use as the file's contents. + The filename to use in the request. + The using the default content type. + + + + The length of data to be sent + + + + + Provides raw data for file + + + + + Name of the file to use when uploading + + + + + MIME content type of file + + + + + Name of the parameter + + + + + HttpWebRequest wrapper (async methods) + + + HttpWebRequest wrapper + + + HttpWebRequest wrapper (sync methods) + + + + + Execute an async POST-style request with the specified HTTP Method. + + The HTTP method to execute. + + + + + Execute an async GET-style request with the specified HTTP Method. + + The HTTP method to execute. + + + + + Creates an IHttp + + + + + + Default constructor + + + + + Execute a POST request + + + + + Execute a PUT request + + + + + Execute a GET request + + + + + Execute a HEAD request + + + + + Execute an OPTIONS request + + + + + Execute a DELETE request + + + + + Execute a PATCH request + + + + + Execute a GET-style request with the specified HTTP Method. + + The HTTP method to execute. + + + + + Execute a POST-style request with the specified HTTP Method. + + The HTTP method to execute. + + + + + True if this HTTP request has any HTTP parameters + + + + + True if this HTTP request has any HTTP cookies + + + + + True if a request body has been specified + + + + + True if files have been set to be uploaded + + + + + UserAgent to be sent with request + + + + + Timeout in milliseconds to be used for the request + + + + + System.Net.ICredentials to be sent with request + + + + + The System.Net.CookieContainer to be used for the request + + + + + Collection of files to be sent with request + + + + + Whether or not HTTP 3xx response redirects should be automatically followed + + + + + X509CertificateCollection to be sent with request + + + + + Maximum number of automatic redirects to follow if FollowRedirects is true + + + + + HTTP headers to be sent with request + + + + + HTTP parameters (QueryString or Form values) to be sent with request + + + + + HTTP cookies to be sent with request + + + + + Request body to be sent with request + + + + + Content type of the request body. + + + + + URL to call for this request + + + + + Proxy info to be sent with request + + + + + Representation of an HTTP cookie + + + + + Comment of the cookie + + + + + Comment of the cookie + + + + + Indicates whether the cookie should be discarded at the end of the session + + + + + Domain of the cookie + + + + + Indicates whether the cookie is expired + + + + + Date and time that the cookie expires + + + + + Indicates that this cookie should only be accessed by the server + + + + + Name of the cookie + + + + + Path of the cookie + + + + + Port of the cookie + + + + + Indicates that the cookie should only be sent over secure channels + + + + + Date and time the cookie was created + + + + + Value of the cookie + + + + + Version of the cookie + + + + + Container for HTTP file + + + + + The length of data to be sent + + + + + Provides raw data for file + + + + + Name of the file to use when uploading + + + + + MIME content type of file + + + + + Name of the parameter + + + + + Representation of an HTTP header + + + + + Name of the header + + + + + Value of the header + + + + + Representation of an HTTP parameter (QueryString or Form value) + + + + + Name of the parameter + + + + + Value of the parameter + + + + + HTTP response data + + + + + HTTP response data + + + + + MIME content type of response + + + + + Length in bytes of the response content + + + + + Encoding of the response content + + + + + String representation of response content + + + + + HTTP response status code + + + + + Description of HTTP status returned + + + + + Response content + + + + + The URL that actually responded to the content (different from request if redirected) + + + + + HttpWebResponse.Server + + + + + Headers returned by server with the response + + + + + Cookies returned by server with the response + + + + + Status of the request. Will return Error for transport errors. + HTTP errors will still return ResponseStatus.Completed, check StatusCode instead + + + + + Transport or other non-HTTP error generated while attempting request + + + + + Exception thrown when error is encountered. + + + + + Default constructor + + + + + MIME content type of response + + + + + Length in bytes of the response content + + + + + Encoding of the response content + + + + + Lazy-loaded string representation of response content + + + + + HTTP response status code + + + + + Description of HTTP status returned + + + + + Response content + + + + + The URL that actually responded to the content (different from request if redirected) + + + + + HttpWebResponse.Server + + + + + Headers returned by server with the response + + + + + Cookies returned by server with the response + + + + + Status of the request. Will return Error for transport errors. + HTTP errors will still return ResponseStatus.Completed, check StatusCode instead + + + + + Transport or other non-HTTP error generated while attempting request + + + + + Exception thrown when error is encountered. + + + + + + + + + + + + + + + + + + + + + + Executes a GET-style request and callback asynchronously, authenticating if needed + + Request to be executed + Callback function to be executed upon completion providing access to the async handle. + The HTTP method to execute + + + + Executes a POST-style request and callback asynchronously, authenticating if needed + + Request to be executed + Callback function to be executed upon completion providing access to the async handle. + The HTTP method to execute + + + + Executes a GET-style request and callback asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + Callback function to be executed upon completion + The HTTP method to execute + + + + Executes a GET-style request and callback asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + Callback function to be executed upon completion + The HTTP method to execute + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + X509CertificateCollection to be sent with request + + + + + Adds a file to the Files collection to be included with a POST or PUT request + (other methods do not support file uploads). + + The parameter name to use in the request + Full path to file to upload + This request + + + + Adds the bytes to the Files collection with the specified file name + + The parameter name to use in the request + The file data + The file name to use for the uploaded file + This request + + + + Adds the bytes to the Files collection with the specified file name and content type + + The parameter name to use in the request + The file data + The file name to use for the uploaded file + The MIME type of the file to upload + This request + + + + Serializes obj to format specified by RequestFormat, but passes xmlNamespace if using the default XmlSerializer + + The object to serialize + The XML namespace to use when serializing + This request + + + + Serializes obj to data format specified by RequestFormat and adds it to the request body. + + The object to serialize + This request + + + + Calls AddParameter() for all public, readable properties specified in the white list + + + request.AddObject(product, "ProductId", "Price", ...); + + The object with properties to add as parameters + The names of the properties to include + This request + + + + Calls AddParameter() for all public, readable properties of obj + + The object with properties to add as parameters + This request + + + + Add the parameter to the request + + Parameter to add + + + + + Adds a HTTP parameter to the request (QueryString for GET, DELETE, OPTIONS and HEAD; Encoded form for POST and PUT) + + Name of the parameter + Value of the parameter + This request + + + + Adds a parameter to the request. There are five types of parameters: + - GetOrPost: Either a QueryString value or encoded form value based on method + - HttpHeader: Adds the name/value pair to the HTTP request's Headers collection + - UrlSegment: Inserted into URL if there is a matching url token e.g. {AccountId} + - Cookie: Adds the name/value pair to the HTTP request's Cookies collection + - RequestBody: Used by AddBody() (not recommended to use directly) + + Name of the parameter + Value of the parameter + The type of parameter to add + This request + + + + Shortcut to AddParameter(name, value, HttpHeader) overload + + Name of the header to add + Value of the header to add + + + + + Shortcut to AddParameter(name, value, Cookie) overload + + Name of the cookie to add + Value of the cookie to add + + + + + Shortcut to AddParameter(name, value, UrlSegment) overload + + Name of the segment to add + Value of the segment to add + + + + + Serializer to use when writing JSON request bodies. Used if RequestFormat is Json. + By default the included JsonSerializer is used (currently using JSON.NET default serialization). + + + + + Serializer to use when writing XML request bodies. Used if RequestFormat is Xml. + By default the included XmlSerializer is used. + + + + + Container of all HTTP parameters to be passed with the request. + See AddParameter() for explanation of the types of parameters that can be passed + + + + + Container of all the files to be uploaded with the request. + + + + + Determines what HTTP method to use for this request. Supported methods: GET, POST, PUT, DELETE, HEAD, OPTIONS + Default is GET + + + + + The Resource URL to make the request against. + Tokens are substituted with UrlSegment parameters and match by name. + Should not include the scheme or domain. Do not include leading slash. + Combined with RestClient.BaseUrl to assemble final URL: + {BaseUrl}/{Resource} (BaseUrl is scheme + domain, e.g. http://example.com) + + + // example for url token replacement + request.Resource = "Products/{ProductId}"; + request.AddParameter("ProductId", 123, ParameterType.UrlSegment); + + + + + Serializer to use when writing XML request bodies. Used if RequestFormat is Xml. + By default XmlSerializer is used. + + + + + Used by the default deserializers to determine where to start deserializing from. + Can be used to skip container or root elements that do not have corresponding deserialzation targets. + + + + + Used by the default deserializers to explicitly set which date format string to use when parsing dates. + + + + + Used by XmlDeserializer. If not specified, XmlDeserializer will flatten response by removing namespaces from element names. + + + + + In general you would not need to set this directly. Used by the NtlmAuthenticator. + + + + + Timeout in milliseconds to be used for the request. This timeout value overrides a timeout set on the RestClient. + + + + + How many attempts were made to send this Request? + + + This Number is incremented each time the RestClient sends the request. + Useful when using Asynchronous Execution with Callbacks + + + + + Container for data sent back from API + + + + + The RestRequest that was made to get this RestResponse + + + Mainly for debugging if ResponseStatus is not OK + + + + + MIME content type of response + + + + + Length in bytes of the response content + + + + + Encoding of the response content + + + + + String representation of response content + + + + + HTTP response status code + + + + + Description of HTTP status returned + + + + + Response content + + + + + The URL that actually responded to the content (different from request if redirected) + + + + + HttpWebResponse.Server + + + + + Cookies returned by server with the response + + + + + Headers returned by server with the response + + + + + Status of the request. Will return Error for transport errors. + HTTP errors will still return ResponseStatus.Completed, check StatusCode instead + + + + + Transport or other non-HTTP error generated while attempting request + + + + + The exception thrown during the request, if any + + + + + Container for data sent back from API including deserialized data + + Type of data to deserialize to + + + + Deserialized entity data + + + + + Parameter container for REST requests + + + + + Return a human-readable representation of this parameter + + String + + + + Name of the parameter + + + + + Value of the parameter + + + + + Type of the parameter + + + + + Client to translate RestRequests into Http requests and process response result + + + + + Executes the request and callback asynchronously, authenticating if needed + + Request to be executed + Callback function to be executed upon completion providing access to the async handle. + + + + Executes a GET-style request and callback asynchronously, authenticating if needed + + Request to be executed + Callback function to be executed upon completion providing access to the async handle. + The HTTP method to execute + + + + Executes a POST-style request and callback asynchronously, authenticating if needed + + Request to be executed + Callback function to be executed upon completion providing access to the async handle. + The HTTP method to execute + + + + Executes the request and callback asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + Callback function to be executed upon completion + + + + Executes a GET-style request and callback asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + Callback function to be executed upon completion + The HTTP method to execute + + + + Executes a POST-style request and callback asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + Callback function to be executed upon completion + The HTTP method to execute + + + + Default constructor that registers default content handlers + + + + + Sets the BaseUrl property for requests made by this client instance + + + + + + Registers a content handler to process response content + + MIME content type of the response content + Deserializer to use to process content + + + + Remove a content handler for the specified MIME content type + + MIME content type to remove + + + + Remove all content handlers + + + + + Retrieve the handler for the specified MIME content type + + MIME content type to retrieve + IDeserializer instance + + + + Assembles URL to call based on parameters, method and resource + + RestRequest to execute + Assembled System.Uri + + + + Executes the specified request and downloads the response data + + Request to execute + Response data + + + + Executes the request and returns a response, authenticating if needed + + Request to be executed + RestResponse + + + + Executes the specified request and deserializes the response content using the appropriate content handler + + Target deserialization type + Request to execute + RestResponse[[T]] with deserialized data in Data property + + + + Parameters included with every request made with this instance of RestClient + If specified in both client and request, the request wins + + + + + Maximum number of redirects to follow if FollowRedirects is true + + + + + X509CertificateCollection to be sent with request + + + + + Default is true. Determine whether or not requests that result in + HTTP status codes of 3xx should follow returned redirect + + + + + The CookieContainer used for requests made by this client instance + + + + + UserAgent to use for requests made by this client instance + + + + + Timeout in milliseconds to use for requests made by this client instance + + + + + Whether to invoke async callbacks using the SynchronizationContext.Current captured when invoked + + + + + Authenticator to use for requests made by this client instance + + + + + Combined with Request.Resource to construct URL for request + Should include scheme and domain without trailing slash. + + + client.BaseUrl = "http://example.com"; + + + + + Proxy to use for requests made by this client instance. + Passed on to underying WebRequest if set. + + + + + Executes the request and callback asynchronously, authenticating if needed + + The IRestClient this method extends + Request to be executed + Callback function to be executed upon completion + + + + Executes the request and callback asynchronously, authenticating if needed + + The IRestClient this method extends + Target deserialization type + Request to be executed + Callback function to be executed upon completion providing access to the async handle + + + + Add a parameter to use on every request made with this client instance + + The IRestClient instance + Parameter to add + + + + + Adds a HTTP parameter (QueryString for GET, DELETE, OPTIONS and HEAD; Encoded form for POST and PUT) + Used on every request made by this client instance + + The IRestClient instance + Name of the parameter + Value of the parameter + This request + + + + Adds a parameter to the request. There are four types of parameters: + - GetOrPost: Either a QueryString value or encoded form value based on method + - HttpHeader: Adds the name/value pair to the HTTP request's Headers collection + - UrlSegment: Inserted into URL if there is a matching url token e.g. {AccountId} + - RequestBody: Used by AddBody() (not recommended to use directly) + + The IRestClient instance + Name of the parameter + Value of the parameter + The type of parameter to add + This request + + + + Shortcut to AddDefaultParameter(name, value, HttpHeader) overload + + The IRestClient instance + Name of the header to add + Value of the header to add + + + + + Shortcut to AddDefaultParameter(name, value, UrlSegment) overload + + The IRestClient instance + Name of the segment to add + Value of the segment to add + + + + + Container for data used to make requests + + + + + Default constructor + + + + + Sets Method property to value of method + + Method to use for this request + + + + Sets Resource property + + Resource to use for this request + + + + Sets Resource and Method properties + + Resource to use for this request + Method to use for this request + + + + Sets Resource property + + Resource to use for this request + + + + Sets Resource and Method properties + + Resource to use for this request + Method to use for this request + + + + Adds a file to the Files collection to be included with a POST or PUT request + (other methods do not support file uploads). + + The parameter name to use in the request + Full path to file to upload + This request + + + + Adds the bytes to the Files collection with the specified file name + + The parameter name to use in the request + The file data + The file name to use for the uploaded file + This request + + + + Adds the bytes to the Files collection with the specified file name and content type + + The parameter name to use in the request + The file data + The file name to use for the uploaded file + The MIME type of the file to upload + This request + + + + Adds the bytes to the Files collection with the specified file name and content type + + The parameter name to use in the request + A function that writes directly to the stream. Should NOT close the stream. + The file name to use for the uploaded file + This request + + + + Adds the bytes to the Files collection with the specified file name and content type + + The parameter name to use in the request + A function that writes directly to the stream. Should NOT close the stream. + The file name to use for the uploaded file + The MIME type of the file to upload + This request + + + + Serializes obj to format specified by RequestFormat, but passes xmlNamespace if using the default XmlSerializer + + The object to serialize + The XML namespace to use when serializing + This request + + + + Serializes obj to data format specified by RequestFormat and adds it to the request body. + + The object to serialize + This request + + + + Calls AddParameter() for all public, readable properties specified in the white list + + + request.AddObject(product, "ProductId", "Price", ...); + + The object with properties to add as parameters + The names of the properties to include + This request + + + + Calls AddParameter() for all public, readable properties of obj + + The object with properties to add as parameters + This request + + + + Add the parameter to the request + + Parameter to add + + + + + Adds a HTTP parameter to the request (QueryString for GET, DELETE, OPTIONS and HEAD; Encoded form for POST and PUT) + + Name of the parameter + Value of the parameter + This request + + + + Adds a parameter to the request. There are four types of parameters: + - GetOrPost: Either a QueryString value or encoded form value based on method + - HttpHeader: Adds the name/value pair to the HTTP request's Headers collection + - UrlSegment: Inserted into URL if there is a matching url token e.g. {AccountId} + - RequestBody: Used by AddBody() (not recommended to use directly) + + Name of the parameter + Value of the parameter + The type of parameter to add + This request + + + + Shortcut to AddParameter(name, value, HttpHeader) overload + + Name of the header to add + Value of the header to add + + + + + Shortcut to AddParameter(name, value, Cookie) overload + + Name of the cookie to add + Value of the cookie to add + + + + + Shortcut to AddParameter(name, value, UrlSegment) overload + + Name of the segment to add + Value of the segment to add + + + + + Internal Method so that RestClient can increase the number of attempts + + + + + Serializer to use when writing JSON request bodies. Used if RequestFormat is Json. + By default the included JsonSerializer is used (currently using JSON.NET default serialization). + + + + + Serializer to use when writing XML request bodies. Used if RequestFormat is Xml. + By default the included XmlSerializer is used. + + + + + Container of all HTTP parameters to be passed with the request. + See AddParameter() for explanation of the types of parameters that can be passed + + + + + Container of all the files to be uploaded with the request. + + + + + Determines what HTTP method to use for this request. Supported methods: GET, POST, PUT, DELETE, HEAD, OPTIONS + Default is GET + + + + + The Resource URL to make the request against. + Tokens are substituted with UrlSegment parameters and match by name. + Should not include the scheme or domain. Do not include leading slash. + Combined with RestClient.BaseUrl to assemble final URL: + {BaseUrl}/{Resource} (BaseUrl is scheme + domain, e.g. http://example.com) + + + // example for url token replacement + request.Resource = "Products/{ProductId}"; + request.AddParameter("ProductId", 123, ParameterType.UrlSegment); + + + + + Serializer to use when writing XML request bodies. Used if RequestFormat is Xml. + By default XmlSerializer is used. + + + + + Used by the default deserializers to determine where to start deserializing from. + Can be used to skip container or root elements that do not have corresponding deserialzation targets. + + + + + A function to run prior to deserializing starting (e.g. change settings if error encountered) + + + + + Used by the default deserializers to explicitly set which date format string to use when parsing dates. + + + + + Used by XmlDeserializer. If not specified, XmlDeserializer will flatten response by removing namespaces from element names. + + + + + In general you would not need to set this directly. Used by the NtlmAuthenticator. + + + + + Gets or sets a user-defined state object that contains information about a request and which can be later + retrieved when the request completes. + + + + + Timeout in milliseconds to be used for the request. This timeout value overrides a timeout set on the RestClient. + + + + + How many attempts were made to send this Request? + + + This Number is incremented each time the RestClient sends the request. + Useful when using Asynchronous Execution with Callbacks + + + + + Base class for common properties shared by RestResponse and RestResponse[[T]] + + + + + Default constructor + + + + + The RestRequest that was made to get this RestResponse + + + Mainly for debugging if ResponseStatus is not OK + + + + + MIME content type of response + + + + + Length in bytes of the response content + + + + + Encoding of the response content + + + + + String representation of response content + + + + + HTTP response status code + + + + + Description of HTTP status returned + + + + + Response content + + + + + The URL that actually responded to the content (different from request if redirected) + + + + + HttpWebResponse.Server + + + + + Cookies returned by server with the response + + + + + Headers returned by server with the response + + + + + Status of the request. Will return Error for transport errors. + HTTP errors will still return ResponseStatus.Completed, check StatusCode instead + + + + + Transport or other non-HTTP error generated while attempting request + + + + + The exception thrown during the request, if any + + + + + Container for data sent back from API including deserialized data + + Type of data to deserialize to + + + + Deserialized entity data + + + + + Container for data sent back from API + + + + + Comment of the cookie + + + + + Comment of the cookie + + + + + Indicates whether the cookie should be discarded at the end of the session + + + + + Domain of the cookie + + + + + Indicates whether the cookie is expired + + + + + Date and time that the cookie expires + + + + + Indicates that this cookie should only be accessed by the server + + + + + Name of the cookie + + + + + Path of the cookie + + + + + Port of the cookie + + + + + Indicates that the cookie should only be sent over secure channels + + + + + Date and time the cookie was created + + + + + Value of the cookie + + + + + Version of the cookie + + + + + Wrapper for System.Xml.Serialization.XmlSerializer. + + + + + Default constructor, does not specify namespace + + + + + Specify the namespaced to be used when serializing + + XML namespace + + + + Serialize the object as XML + + Object to serialize + XML as string + + + + Name of the root element to use when serializing + + + + + XML namespace to use when serializing + + + + + Format string to use when serializing dates + + + + + Content type for serialized content + + + + + Encoding for serialized content + + + + + Need to subclass StringWriter in order to override Encoding + + + + + Default JSON serializer for request bodies + Doesn't currently use the SerializeAs attribute, defers to Newtonsoft's attributes + + + + + Default serializer + + + + + Serialize the object as JSON + + Object to serialize + JSON as String + + + + Unused for JSON Serialization + + + + + Unused for JSON Serialization + + + + + Unused for JSON Serialization + + + + + Content type for serialized content + + + + + Allows control how class and property names and values are serialized by XmlSerializer + Currently not supported with the JsonSerializer + When specified at the property level the class-level specification is overridden + + + + + Called by the attribute when NameStyle is speficied + + The string to transform + String + + + + The name to use for the serialized element + + + + + Sets the value to be serialized as an Attribute instead of an Element + + + + + The culture to use when serializing + + + + + Transforms the casing of the name based on the selected value. + + + + + The order to serialize the element. Default is int.MaxValue. + + + + + Options for transforming casing of element names + + + + + Default XML Serializer + + + + + Default constructor, does not specify namespace + + + + + Specify the namespaced to be used when serializing + + XML namespace + + + + Serialize the object as XML + + Object to serialize + XML as string + + + + Name of the root element to use when serializing + + + + + XML namespace to use when serializing + + + + + Format string to use when serializing dates + + + + + Content type for serialized content + + + + + Represents the json array. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The capacity of the json array. + + + + The json representation of the array. + + The json representation of the array. + + + + Represents the json object. + + + + + The internal member dictionary. + + + + + Adds the specified key. + + The key. + The value. + + + + Determines whether the specified key contains key. + + The key. + + true if the specified key contains key; otherwise, false. + + + + + Removes the specified key. + + The key. + + + + + Tries the get value. + + The key. + The value. + + + + + Adds the specified item. + + The item. + + + + Clears this instance. + + + + + Determines whether [contains] [the specified item]. + + The item. + + true if [contains] [the specified item]; otherwise, false. + + + + + Copies to. + + The array. + Index of the array. + + + + Removes the specified item. + + The item. + + + + + Gets the enumerator. + + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Returns a json that represents the current . + + + A json that represents the current . + + + + + Provides implementation for type conversion operations. Classes derived from the class can override this method to specify dynamic behavior for operations that convert an object from one type to another. + + Provides information about the conversion operation. The binder.Type property provides the type to which the object must be converted. For example, for the statement (String)sampleObject in C# (CType(sampleObject, Type) in Visual Basic), where sampleObject is an instance of the class derived from the class, binder.Type returns the type. The binder.Explicit property provides information about the kind of conversion that occurs. It returns true for explicit conversion and false for implicit conversion. + The result of the type conversion operation. + + Alwasy returns true. + + + + + Provides the implementation for operations that delete an object member. This method is not intended for use in C# or Visual Basic. + + Provides information about the deletion. + + Alwasy returns true. + + + + + Provides the implementation for operations that get a value by index. Classes derived from the class can override this method to specify dynamic behavior for indexing operations. + + Provides information about the operation. + The indexes that are used in the operation. For example, for the sampleObject[3] operation in C# (sampleObject(3) in Visual Basic), where sampleObject is derived from the DynamicObject class, is equal to 3. + The result of the index operation. + + Alwasy returns true. + + + + + Provides the implementation for operations that get member values. Classes derived from the class can override this method to specify dynamic behavior for operations such as getting a value for a property. + + Provides information about the object that called the dynamic operation. The binder.Name property provides the name of the member on which the dynamic operation is performed. For example, for the Console.WriteLine(sampleObject.SampleProperty) statement, where sampleObject is an instance of the class derived from the class, binder.Name returns "SampleProperty". The binder.IgnoreCase property specifies whether the member name is case-sensitive. + The result of the get operation. For example, if the method is called for a property, you can assign the property value to . + + Alwasy returns true. + + + + + Provides the implementation for operations that set a value by index. Classes derived from the class can override this method to specify dynamic behavior for operations that access objects by a specified index. + + Provides information about the operation. + The indexes that are used in the operation. For example, for the sampleObject[3] = 10 operation in C# (sampleObject(3) = 10 in Visual Basic), where sampleObject is derived from the class, is equal to 3. + The value to set to the object that has the specified index. For example, for the sampleObject[3] = 10 operation in C# (sampleObject(3) = 10 in Visual Basic), where sampleObject is derived from the class, is equal to 10. + + true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a language-specific run-time exception is thrown. + + + + + Provides the implementation for operations that set member values. Classes derived from the class can override this method to specify dynamic behavior for operations such as setting a value for a property. + + Provides information about the object that called the dynamic operation. The binder.Name property provides the name of the member to which the value is being assigned. For example, for the statement sampleObject.SampleProperty = "Test", where sampleObject is an instance of the class derived from the class, binder.Name returns "SampleProperty". The binder.IgnoreCase property specifies whether the member name is case-sensitive. + The value to set to the member. For example, for sampleObject.SampleProperty = "Test", where sampleObject is an instance of the class derived from the class, the is "Test". + + true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a language-specific run-time exception is thrown.) + + + + + Returns the enumeration of all dynamic member names. + + + A sequence that contains dynamic member names. + + + + + Gets the at the specified index. + + + + + + Gets the keys. + + The keys. + + + + Gets the values. + + The values. + + + + Gets or sets the with the specified key. + + + + + + Gets the count. + + The count. + + + + Gets a value indicating whether this instance is read only. + + + true if this instance is read only; otherwise, false. + + + + + This class encodes and decodes JSON strings. + Spec. details, see http://www.json.org/ + + JSON uses Arrays and Objects. These correspond here to the datatypes JsonArray(IList<object>) and JsonObject(IDictionary<string,object>). + All numbers are parsed to doubles. + + + + + Parses the string json into a value + + A JSON string. + An IList<object>, a IDictionary<string,object>, a double, a string, null, true, or false + + + + Try parsing the json string into a value. + + + A JSON string. + + + The object. + + + Returns true if successfull otherwise false. + + + + + Converts a IDictionary<string,object> / IList<object> object into a JSON string + + A IDictionary<string,object> / IList<object> + Serializer strategy to use + A JSON encoded string, or null if object 'json' is not serializable + + + + Determines if a given object is numeric in any way + (can be integer, double, null, etc). + + + + + Helper methods for validating required values + + + + + Require a parameter to not be null + + Name of the parameter + Value of the parameter + + + + Helper methods for validating values + + + + + Validate an integer value is between the specified values (exclusive of min/max) + + Value to validate + Exclusive minimum value + Exclusive maximum value + + + + Validate a string length + + String to be validated + Maximum length of the string + + + diff --git a/packages/RestSharp.104.1/lib/net4/RestSharp.dll b/packages/RestSharp.104.1/lib/net4/RestSharp.dll new file mode 100644 index 0000000..c1da1b5 Binary files /dev/null and b/packages/RestSharp.104.1/lib/net4/RestSharp.dll differ diff --git a/packages/RestSharp.104.1/lib/net4/RestSharp.xml b/packages/RestSharp.104.1/lib/net4/RestSharp.xml new file mode 100644 index 0000000..a681102 --- /dev/null +++ b/packages/RestSharp.104.1/lib/net4/RestSharp.xml @@ -0,0 +1,2680 @@ + + + + RestSharp + + + + + Tries to Authenticate with the credentials of the currently logged in user, or impersonate a user + + + + + Authenticate with the credentials of the currently logged in user + + + + + Authenticate by impersonation + + + + + + + Authenticate by impersonation, using an existing ICredentials instance + + + + + + + + + Base class for OAuth 2 Authenticators. + + + Since there are many ways to authenticate in OAuth2, + this is used as a base class to differentiate between + other authenticators. + + Any other OAuth2 authenticators must derive from this + abstract class. + + + + + Access token to be used when authenticating. + + + + + Initializes a new instance of the class. + + + The access token. + + + + + Gets the access token. + + + + + The OAuth 2 authenticator using URI query parameter. + + + Based on http://tools.ietf.org/html/draft-ietf-oauth-v2-10#section-5.1.2 + + + + + Initializes a new instance of the class. + + + The access token. + + + + + The OAuth 2 authenticator using the authorization request header field. + + + Based on http://tools.ietf.org/html/draft-ietf-oauth-v2-10#section-5.1.1 + + + + + Stores the Authoriztion header value as "OAuth accessToken". used for performance. + + + + + Initializes a new instance of the class. + + + The access token. + + + + + All text parameters are UTF-8 encoded (per section 5.1). + + + + + + Generates a random 16-byte lowercase alphanumeric string. + + + + + + + Generates a timestamp based on the current elapsed seconds since '01/01/1970 0000 GMT" + + + + + + + Generates a timestamp based on the elapsed seconds of a given time since '01/01/1970 0000 GMT" + + + A specified point in time. + + + + + The set of characters that are unreserved in RFC 2396 but are NOT unreserved in RFC 3986. + + + + + + URL encodes a string based on section 5.1 of the OAuth spec. + Namely, percent encoding with [RFC3986], avoiding unreserved characters, + upper-casing hexadecimal characters, and UTF-8 encoding for text value pairs. + + The value to escape. + The escaped value. + + The method is supposed to take on + RFC 3986 behavior if certain elements are present in a .config file. Even if this + actually worked (which in my experiments it doesn't), we can't rely on every + host actually having this configuration element present. + + + + + + + URL encodes a string based on section 5.1 of the OAuth spec. + Namely, percent encoding with [RFC3986], avoiding unreserved characters, + upper-casing hexadecimal characters, and UTF-8 encoding for text value pairs. + + + + + + + Sorts a collection of key-value pairs by name, and then value if equal, + concatenating them into a single string. This string should be encoded + prior to, or after normalization is run. + + + + + + + + Sorts a by name, and then value if equal. + + A collection of parameters to sort + A sorted parameter collection + + + + Creates a request URL suitable for making OAuth requests. + Resulting URLs must exclude port 80 or port 443 when accompanied by HTTP and HTTPS, respectively. + Resulting URLs must be lower case. + + + The original request URL + + + + + Creates a request elements concatentation value to send with a request. + This is also known as the signature base. + + + + The request's HTTP method type + The request URL + The request's parameters + A signature base string + + + + Creates a signature value given a signature base and the consumer secret. + This method is used when the token secret is currently unknown. + + + The hashing method + The signature base + The consumer key + + + + + Creates a signature value given a signature base and the consumer secret. + This method is used when the token secret is currently unknown. + + + The hashing method + The treatment to use on a signature value + The signature base + The consumer key + + + + + Creates a signature value given a signature base and the consumer secret and a known token secret. + + + The hashing method + The signature base + The consumer secret + The token secret + + + + + Creates a signature value given a signature base and the consumer secret and a known token secret. + + + The hashing method + The treatment to use on a signature value + The signature base + The consumer secret + The token secret + + + + + A class to encapsulate OAuth authentication flow. + + + + + + Generates a instance to pass to an + for the purpose of requesting an + unauthorized request token. + + The HTTP method for the intended request + + + + + + Generates a instance to pass to an + for the purpose of requesting an + unauthorized request token. + + The HTTP method for the intended request + Any existing, non-OAuth query parameters desired in the request + + + + + + Generates a instance to pass to an + for the purpose of exchanging a request token + for an access token authorized by the user at the Service Provider site. + + The HTTP method for the intended request + + + + + Generates a instance to pass to an + for the purpose of exchanging a request token + for an access token authorized by the user at the Service Provider site. + + The HTTP method for the intended request + + Any existing, non-OAuth query parameters desired in the request + + + + Generates a instance to pass to an + for the purpose of exchanging user credentials + for an access token authorized by the user at the Service Provider site. + + The HTTP method for the intended request + + Any existing, non-OAuth query parameters desired in the request + + + + + + + + + + + + + Allows control how class and property names and values are deserialized by XmlAttributeDeserializer + + + + + The name to use for the serialized element + + + + + Sets if the property to Deserialize is an Attribute or Element (Default: false) + + + + + Wrapper for System.Xml.Serialization.XmlSerializer. + + + + + Types of parameters that can be added to requests + + + + + Data formats + + + + + HTTP method to use when making requests + + + + + Format strings for commonly-used date formats + + + + + .NET format string for ISO 8601 date format + + + + + .NET format string for roundtrip date format + + + + + Status for responses (surprised?) + + + + + Extension method overload! + + + + + Save a byte array to a file + + Bytes to save + Full path to save file to + + + + Read a stream into a byte array + + Stream to read + byte[] + + + + Copies bytes from one stream to another + + The input stream. + The output stream. + + + + Converts a byte array to a string, using its byte order mark to convert it to the right encoding. + http://www.shrinkrays.net/code-snippets/csharp/an-extension-method-for-converting-a-byte-array-to-a-string.aspx + + An array of bytes to convert + The byte as a string. + + + + Decodes an HTML-encoded string and returns the decoded string. + + The HTML string to decode. + The decoded text. + + + + Decodes an HTML-encoded string and sends the resulting output to a TextWriter output stream. + + The HTML string to decode + The TextWriter output stream containing the decoded string. + + + + HTML-encodes a string and sends the resulting output to a TextWriter output stream. + + The string to encode. + The TextWriter output stream containing the encoded string. + + + + Reflection extensions + + + + + Retrieve an attribute from a member (property) + + Type of attribute to retrieve + Member to retrieve attribute from + + + + + Retrieve an attribute from a type + + Type of attribute to retrieve + Type to retrieve attribute from + + + + + Checks a type to see if it derives from a raw generic (e.g. List[[]]) + + + + + + + + + Uses Uri.EscapeDataString() based on recommendations on MSDN + http://blogs.msdn.com/b/yangxind/archive/2006/11/09/don-t-use-net-system-uri-unescapedatastring-in-url-decoding.aspx + + + + + Check that a string is not null or empty + + String to check + bool + + + + Remove underscores from a string + + String to process + string + + + + Parses most common JSON date formats + + JSON value to parse + DateTime + + + + Remove leading and trailing " from a string + + String to parse + String + + + + Checks a string to see if it matches a regex + + String to check + Pattern to match + bool + + + + Converts a string to pascal case + + String to convert + string + + + + Converts a string to pascal case with the option to remove underscores + + String to convert + Option to remove underscores + + + + + Converts a string to camel case + + String to convert + String + + + + Convert the first letter of a string to lower case + + String to convert + string + + + + Checks to see if a string is all uppper case + + String to check + bool + + + + Add underscores to a pascal-cased string + + String to convert + string + + + + Add dashes to a pascal-cased string + + String to convert + string + + + + Add an undescore prefix to a pascasl-cased string + + + + + + + Return possible variants of a name for name matching. + + String to convert + The culture to use for conversion + IEnumerable<string> + + + + XML Extension Methods + + + + + Returns the name of an element with the namespace if specified + + Element name + XML Namespace + + + + + Container for files to be uploaded with requests + + + + + Creates a file parameter from an array of bytes. + + The parameter name to use in the request. + The data to use as the file's contents. + The filename to use in the request. + The content type to use in the request. + The + + + + Creates a file parameter from an array of bytes. + + The parameter name to use in the request. + The data to use as the file's contents. + The filename to use in the request. + The using the default content type. + + + + The length of data to be sent + + + + + Provides raw data for file + + + + + Name of the file to use when uploading + + + + + MIME content type of file + + + + + Name of the parameter + + + + + HttpWebRequest wrapper (async methods) + + + HttpWebRequest wrapper + + + HttpWebRequest wrapper (sync methods) + + + + + Execute an async POST-style request with the specified HTTP Method. + + The HTTP method to execute. + + + + + Execute an async GET-style request with the specified HTTP Method. + + The HTTP method to execute. + + + + + Creates an IHttp + + + + + + Default constructor + + + + + Execute a POST request + + + + + Execute a PUT request + + + + + Execute a GET request + + + + + Execute a HEAD request + + + + + Execute an OPTIONS request + + + + + Execute a DELETE request + + + + + Execute a PATCH request + + + + + Execute a GET-style request with the specified HTTP Method. + + The HTTP method to execute. + + + + + Execute a POST-style request with the specified HTTP Method. + + The HTTP method to execute. + + + + + True if this HTTP request has any HTTP parameters + + + + + True if this HTTP request has any HTTP cookies + + + + + True if a request body has been specified + + + + + True if files have been set to be uploaded + + + + + UserAgent to be sent with request + + + + + Timeout in milliseconds to be used for the request + + + + + System.Net.ICredentials to be sent with request + + + + + The System.Net.CookieContainer to be used for the request + + + + + Collection of files to be sent with request + + + + + Whether or not HTTP 3xx response redirects should be automatically followed + + + + + X509CertificateCollection to be sent with request + + + + + Maximum number of automatic redirects to follow if FollowRedirects is true + + + + + HTTP headers to be sent with request + + + + + HTTP parameters (QueryString or Form values) to be sent with request + + + + + HTTP cookies to be sent with request + + + + + Request body to be sent with request + + + + + Content type of the request body. + + + + + URL to call for this request + + + + + Proxy info to be sent with request + + + + + Representation of an HTTP cookie + + + + + Comment of the cookie + + + + + Comment of the cookie + + + + + Indicates whether the cookie should be discarded at the end of the session + + + + + Domain of the cookie + + + + + Indicates whether the cookie is expired + + + + + Date and time that the cookie expires + + + + + Indicates that this cookie should only be accessed by the server + + + + + Name of the cookie + + + + + Path of the cookie + + + + + Port of the cookie + + + + + Indicates that the cookie should only be sent over secure channels + + + + + Date and time the cookie was created + + + + + Value of the cookie + + + + + Version of the cookie + + + + + Container for HTTP file + + + + + The length of data to be sent + + + + + Provides raw data for file + + + + + Name of the file to use when uploading + + + + + MIME content type of file + + + + + Name of the parameter + + + + + Representation of an HTTP header + + + + + Name of the header + + + + + Value of the header + + + + + Representation of an HTTP parameter (QueryString or Form value) + + + + + Name of the parameter + + + + + Value of the parameter + + + + + HTTP response data + + + + + HTTP response data + + + + + MIME content type of response + + + + + Length in bytes of the response content + + + + + Encoding of the response content + + + + + String representation of response content + + + + + HTTP response status code + + + + + Description of HTTP status returned + + + + + Response content + + + + + The URL that actually responded to the content (different from request if redirected) + + + + + HttpWebResponse.Server + + + + + Headers returned by server with the response + + + + + Cookies returned by server with the response + + + + + Status of the request. Will return Error for transport errors. + HTTP errors will still return ResponseStatus.Completed, check StatusCode instead + + + + + Transport or other non-HTTP error generated while attempting request + + + + + Exception thrown when error is encountered. + + + + + Default constructor + + + + + MIME content type of response + + + + + Length in bytes of the response content + + + + + Encoding of the response content + + + + + Lazy-loaded string representation of response content + + + + + HTTP response status code + + + + + Description of HTTP status returned + + + + + Response content + + + + + The URL that actually responded to the content (different from request if redirected) + + + + + HttpWebResponse.Server + + + + + Headers returned by server with the response + + + + + Cookies returned by server with the response + + + + + Status of the request. Will return Error for transport errors. + HTTP errors will still return ResponseStatus.Completed, check StatusCode instead + + + + + Transport or other non-HTTP error generated while attempting request + + + + + Exception thrown when error is encountered. + + + + + + + + + + + + + + + + + + + + + + Executes a GET-style request and callback asynchronously, authenticating if needed + + Request to be executed + Callback function to be executed upon completion providing access to the async handle. + The HTTP method to execute + + + + Executes a POST-style request and callback asynchronously, authenticating if needed + + Request to be executed + Callback function to be executed upon completion providing access to the async handle. + The HTTP method to execute + + + + Executes a GET-style request and callback asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + Callback function to be executed upon completion + The HTTP method to execute + + + + Executes a GET-style request and callback asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + Callback function to be executed upon completion + The HTTP method to execute + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + X509CertificateCollection to be sent with request + + + + + Adds a file to the Files collection to be included with a POST or PUT request + (other methods do not support file uploads). + + The parameter name to use in the request + Full path to file to upload + This request + + + + Adds the bytes to the Files collection with the specified file name + + The parameter name to use in the request + The file data + The file name to use for the uploaded file + This request + + + + Adds the bytes to the Files collection with the specified file name and content type + + The parameter name to use in the request + The file data + The file name to use for the uploaded file + The MIME type of the file to upload + This request + + + + Serializes obj to format specified by RequestFormat, but passes xmlNamespace if using the default XmlSerializer + + The object to serialize + The XML namespace to use when serializing + This request + + + + Serializes obj to data format specified by RequestFormat and adds it to the request body. + + The object to serialize + This request + + + + Calls AddParameter() for all public, readable properties specified in the white list + + + request.AddObject(product, "ProductId", "Price", ...); + + The object with properties to add as parameters + The names of the properties to include + This request + + + + Calls AddParameter() for all public, readable properties of obj + + The object with properties to add as parameters + This request + + + + Add the parameter to the request + + Parameter to add + + + + + Adds a HTTP parameter to the request (QueryString for GET, DELETE, OPTIONS and HEAD; Encoded form for POST and PUT) + + Name of the parameter + Value of the parameter + This request + + + + Adds a parameter to the request. There are five types of parameters: + - GetOrPost: Either a QueryString value or encoded form value based on method + - HttpHeader: Adds the name/value pair to the HTTP request's Headers collection + - UrlSegment: Inserted into URL if there is a matching url token e.g. {AccountId} + - Cookie: Adds the name/value pair to the HTTP request's Cookies collection + - RequestBody: Used by AddBody() (not recommended to use directly) + + Name of the parameter + Value of the parameter + The type of parameter to add + This request + + + + Shortcut to AddParameter(name, value, HttpHeader) overload + + Name of the header to add + Value of the header to add + + + + + Shortcut to AddParameter(name, value, Cookie) overload + + Name of the cookie to add + Value of the cookie to add + + + + + Shortcut to AddParameter(name, value, UrlSegment) overload + + Name of the segment to add + Value of the segment to add + + + + + Serializer to use when writing JSON request bodies. Used if RequestFormat is Json. + By default the included JsonSerializer is used (currently using JSON.NET default serialization). + + + + + Serializer to use when writing XML request bodies. Used if RequestFormat is Xml. + By default the included XmlSerializer is used. + + + + + Container of all HTTP parameters to be passed with the request. + See AddParameter() for explanation of the types of parameters that can be passed + + + + + Container of all the files to be uploaded with the request. + + + + + Determines what HTTP method to use for this request. Supported methods: GET, POST, PUT, DELETE, HEAD, OPTIONS + Default is GET + + + + + The Resource URL to make the request against. + Tokens are substituted with UrlSegment parameters and match by name. + Should not include the scheme or domain. Do not include leading slash. + Combined with RestClient.BaseUrl to assemble final URL: + {BaseUrl}/{Resource} (BaseUrl is scheme + domain, e.g. http://example.com) + + + // example for url token replacement + request.Resource = "Products/{ProductId}"; + request.AddParameter("ProductId", 123, ParameterType.UrlSegment); + + + + + Serializer to use when writing XML request bodies. Used if RequestFormat is Xml. + By default XmlSerializer is used. + + + + + Used by the default deserializers to determine where to start deserializing from. + Can be used to skip container or root elements that do not have corresponding deserialzation targets. + + + + + Used by the default deserializers to explicitly set which date format string to use when parsing dates. + + + + + Used by XmlDeserializer. If not specified, XmlDeserializer will flatten response by removing namespaces from element names. + + + + + In general you would not need to set this directly. Used by the NtlmAuthenticator. + + + + + Timeout in milliseconds to be used for the request. This timeout value overrides a timeout set on the RestClient. + + + + + How many attempts were made to send this Request? + + + This Number is incremented each time the RestClient sends the request. + Useful when using Asynchronous Execution with Callbacks + + + + + Container for data sent back from API + + + + + The RestRequest that was made to get this RestResponse + + + Mainly for debugging if ResponseStatus is not OK + + + + + MIME content type of response + + + + + Length in bytes of the response content + + + + + Encoding of the response content + + + + + String representation of response content + + + + + HTTP response status code + + + + + Description of HTTP status returned + + + + + Response content + + + + + The URL that actually responded to the content (different from request if redirected) + + + + + HttpWebResponse.Server + + + + + Cookies returned by server with the response + + + + + Headers returned by server with the response + + + + + Status of the request. Will return Error for transport errors. + HTTP errors will still return ResponseStatus.Completed, check StatusCode instead + + + + + Transport or other non-HTTP error generated while attempting request + + + + + The exception thrown during the request, if any + + + + + Container for data sent back from API including deserialized data + + Type of data to deserialize to + + + + Deserialized entity data + + + + + Parameter container for REST requests + + + + + Return a human-readable representation of this parameter + + String + + + + Name of the parameter + + + + + Value of the parameter + + + + + Type of the parameter + + + + + Client to translate RestRequests into Http requests and process response result + + + + + Executes the request and callback asynchronously, authenticating if needed + + Request to be executed + Callback function to be executed upon completion providing access to the async handle. + + + + Executes a GET-style request and callback asynchronously, authenticating if needed + + Request to be executed + Callback function to be executed upon completion providing access to the async handle. + The HTTP method to execute + + + + Executes a POST-style request and callback asynchronously, authenticating if needed + + Request to be executed + Callback function to be executed upon completion providing access to the async handle. + The HTTP method to execute + + + + Executes the request and callback asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + Callback function to be executed upon completion + + + + Executes a GET-style request and callback asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + Callback function to be executed upon completion + The HTTP method to execute + + + + Executes a POST-style request and callback asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + Callback function to be executed upon completion + The HTTP method to execute + + + + Default constructor that registers default content handlers + + + + + Sets the BaseUrl property for requests made by this client instance + + + + + + Registers a content handler to process response content + + MIME content type of the response content + Deserializer to use to process content + + + + Remove a content handler for the specified MIME content type + + MIME content type to remove + + + + Remove all content handlers + + + + + Retrieve the handler for the specified MIME content type + + MIME content type to retrieve + IDeserializer instance + + + + Assembles URL to call based on parameters, method and resource + + RestRequest to execute + Assembled System.Uri + + + + Executes the specified request and downloads the response data + + Request to execute + Response data + + + + Executes the request and returns a response, authenticating if needed + + Request to be executed + RestResponse + + + + Executes the specified request and deserializes the response content using the appropriate content handler + + Target deserialization type + Request to execute + RestResponse[[T]] with deserialized data in Data property + + + + Parameters included with every request made with this instance of RestClient + If specified in both client and request, the request wins + + + + + Maximum number of redirects to follow if FollowRedirects is true + + + + + X509CertificateCollection to be sent with request + + + + + Default is true. Determine whether or not requests that result in + HTTP status codes of 3xx should follow returned redirect + + + + + The CookieContainer used for requests made by this client instance + + + + + UserAgent to use for requests made by this client instance + + + + + Timeout in milliseconds to use for requests made by this client instance + + + + + Whether to invoke async callbacks using the SynchronizationContext.Current captured when invoked + + + + + Authenticator to use for requests made by this client instance + + + + + Combined with Request.Resource to construct URL for request + Should include scheme and domain without trailing slash. + + + client.BaseUrl = "http://example.com"; + + + + + Proxy to use for requests made by this client instance. + Passed on to underying WebRequest if set. + + + + + Executes the request and callback asynchronously, authenticating if needed + + The IRestClient this method extends + Request to be executed + Callback function to be executed upon completion + + + + Executes the request and callback asynchronously, authenticating if needed + + The IRestClient this method extends + Target deserialization type + Request to be executed + Callback function to be executed upon completion providing access to the async handle + + + + Add a parameter to use on every request made with this client instance + + The IRestClient instance + Parameter to add + + + + + Adds a HTTP parameter (QueryString for GET, DELETE, OPTIONS and HEAD; Encoded form for POST and PUT) + Used on every request made by this client instance + + The IRestClient instance + Name of the parameter + Value of the parameter + This request + + + + Adds a parameter to the request. There are four types of parameters: + - GetOrPost: Either a QueryString value or encoded form value based on method + - HttpHeader: Adds the name/value pair to the HTTP request's Headers collection + - UrlSegment: Inserted into URL if there is a matching url token e.g. {AccountId} + - RequestBody: Used by AddBody() (not recommended to use directly) + + The IRestClient instance + Name of the parameter + Value of the parameter + The type of parameter to add + This request + + + + Shortcut to AddDefaultParameter(name, value, HttpHeader) overload + + The IRestClient instance + Name of the header to add + Value of the header to add + + + + + Shortcut to AddDefaultParameter(name, value, UrlSegment) overload + + The IRestClient instance + Name of the segment to add + Value of the segment to add + + + + + Container for data used to make requests + + + + + Default constructor + + + + + Sets Method property to value of method + + Method to use for this request + + + + Sets Resource property + + Resource to use for this request + + + + Sets Resource and Method properties + + Resource to use for this request + Method to use for this request + + + + Sets Resource property + + Resource to use for this request + + + + Sets Resource and Method properties + + Resource to use for this request + Method to use for this request + + + + Adds a file to the Files collection to be included with a POST or PUT request + (other methods do not support file uploads). + + The parameter name to use in the request + Full path to file to upload + This request + + + + Adds the bytes to the Files collection with the specified file name + + The parameter name to use in the request + The file data + The file name to use for the uploaded file + This request + + + + Adds the bytes to the Files collection with the specified file name and content type + + The parameter name to use in the request + The file data + The file name to use for the uploaded file + The MIME type of the file to upload + This request + + + + Adds the bytes to the Files collection with the specified file name and content type + + The parameter name to use in the request + A function that writes directly to the stream. Should NOT close the stream. + The file name to use for the uploaded file + This request + + + + Adds the bytes to the Files collection with the specified file name and content type + + The parameter name to use in the request + A function that writes directly to the stream. Should NOT close the stream. + The file name to use for the uploaded file + The MIME type of the file to upload + This request + + + + Serializes obj to format specified by RequestFormat, but passes xmlNamespace if using the default XmlSerializer + + The object to serialize + The XML namespace to use when serializing + This request + + + + Serializes obj to data format specified by RequestFormat and adds it to the request body. + + The object to serialize + This request + + + + Calls AddParameter() for all public, readable properties specified in the white list + + + request.AddObject(product, "ProductId", "Price", ...); + + The object with properties to add as parameters + The names of the properties to include + This request + + + + Calls AddParameter() for all public, readable properties of obj + + The object with properties to add as parameters + This request + + + + Add the parameter to the request + + Parameter to add + + + + + Adds a HTTP parameter to the request (QueryString for GET, DELETE, OPTIONS and HEAD; Encoded form for POST and PUT) + + Name of the parameter + Value of the parameter + This request + + + + Adds a parameter to the request. There are four types of parameters: + - GetOrPost: Either a QueryString value or encoded form value based on method + - HttpHeader: Adds the name/value pair to the HTTP request's Headers collection + - UrlSegment: Inserted into URL if there is a matching url token e.g. {AccountId} + - RequestBody: Used by AddBody() (not recommended to use directly) + + Name of the parameter + Value of the parameter + The type of parameter to add + This request + + + + Shortcut to AddParameter(name, value, HttpHeader) overload + + Name of the header to add + Value of the header to add + + + + + Shortcut to AddParameter(name, value, Cookie) overload + + Name of the cookie to add + Value of the cookie to add + + + + + Shortcut to AddParameter(name, value, UrlSegment) overload + + Name of the segment to add + Value of the segment to add + + + + + Internal Method so that RestClient can increase the number of attempts + + + + + Serializer to use when writing JSON request bodies. Used if RequestFormat is Json. + By default the included JsonSerializer is used (currently using JSON.NET default serialization). + + + + + Serializer to use when writing XML request bodies. Used if RequestFormat is Xml. + By default the included XmlSerializer is used. + + + + + Container of all HTTP parameters to be passed with the request. + See AddParameter() for explanation of the types of parameters that can be passed + + + + + Container of all the files to be uploaded with the request. + + + + + Determines what HTTP method to use for this request. Supported methods: GET, POST, PUT, DELETE, HEAD, OPTIONS + Default is GET + + + + + The Resource URL to make the request against. + Tokens are substituted with UrlSegment parameters and match by name. + Should not include the scheme or domain. Do not include leading slash. + Combined with RestClient.BaseUrl to assemble final URL: + {BaseUrl}/{Resource} (BaseUrl is scheme + domain, e.g. http://example.com) + + + // example for url token replacement + request.Resource = "Products/{ProductId}"; + request.AddParameter("ProductId", 123, ParameterType.UrlSegment); + + + + + Serializer to use when writing XML request bodies. Used if RequestFormat is Xml. + By default XmlSerializer is used. + + + + + Used by the default deserializers to determine where to start deserializing from. + Can be used to skip container or root elements that do not have corresponding deserialzation targets. + + + + + A function to run prior to deserializing starting (e.g. change settings if error encountered) + + + + + Used by the default deserializers to explicitly set which date format string to use when parsing dates. + + + + + Used by XmlDeserializer. If not specified, XmlDeserializer will flatten response by removing namespaces from element names. + + + + + In general you would not need to set this directly. Used by the NtlmAuthenticator. + + + + + Gets or sets a user-defined state object that contains information about a request and which can be later + retrieved when the request completes. + + + + + Timeout in milliseconds to be used for the request. This timeout value overrides a timeout set on the RestClient. + + + + + How many attempts were made to send this Request? + + + This Number is incremented each time the RestClient sends the request. + Useful when using Asynchronous Execution with Callbacks + + + + + Base class for common properties shared by RestResponse and RestResponse[[T]] + + + + + Default constructor + + + + + The RestRequest that was made to get this RestResponse + + + Mainly for debugging if ResponseStatus is not OK + + + + + MIME content type of response + + + + + Length in bytes of the response content + + + + + Encoding of the response content + + + + + String representation of response content + + + + + HTTP response status code + + + + + Description of HTTP status returned + + + + + Response content + + + + + The URL that actually responded to the content (different from request if redirected) + + + + + HttpWebResponse.Server + + + + + Cookies returned by server with the response + + + + + Headers returned by server with the response + + + + + Status of the request. Will return Error for transport errors. + HTTP errors will still return ResponseStatus.Completed, check StatusCode instead + + + + + Transport or other non-HTTP error generated while attempting request + + + + + The exception thrown during the request, if any + + + + + Container for data sent back from API including deserialized data + + Type of data to deserialize to + + + + Deserialized entity data + + + + + Container for data sent back from API + + + + + Comment of the cookie + + + + + Comment of the cookie + + + + + Indicates whether the cookie should be discarded at the end of the session + + + + + Domain of the cookie + + + + + Indicates whether the cookie is expired + + + + + Date and time that the cookie expires + + + + + Indicates that this cookie should only be accessed by the server + + + + + Name of the cookie + + + + + Path of the cookie + + + + + Port of the cookie + + + + + Indicates that the cookie should only be sent over secure channels + + + + + Date and time the cookie was created + + + + + Value of the cookie + + + + + Version of the cookie + + + + + Wrapper for System.Xml.Serialization.XmlSerializer. + + + + + Default constructor, does not specify namespace + + + + + Specify the namespaced to be used when serializing + + XML namespace + + + + Serialize the object as XML + + Object to serialize + XML as string + + + + Name of the root element to use when serializing + + + + + XML namespace to use when serializing + + + + + Format string to use when serializing dates + + + + + Content type for serialized content + + + + + Encoding for serialized content + + + + + Need to subclass StringWriter in order to override Encoding + + + + + Default JSON serializer for request bodies + Doesn't currently use the SerializeAs attribute, defers to Newtonsoft's attributes + + + + + Default serializer + + + + + Serialize the object as JSON + + Object to serialize + JSON as String + + + + Unused for JSON Serialization + + + + + Unused for JSON Serialization + + + + + Unused for JSON Serialization + + + + + Content type for serialized content + + + + + Allows control how class and property names and values are serialized by XmlSerializer + Currently not supported with the JsonSerializer + When specified at the property level the class-level specification is overridden + + + + + Called by the attribute when NameStyle is speficied + + The string to transform + String + + + + The name to use for the serialized element + + + + + Sets the value to be serialized as an Attribute instead of an Element + + + + + The culture to use when serializing + + + + + Transforms the casing of the name based on the selected value. + + + + + The order to serialize the element. Default is int.MaxValue. + + + + + Options for transforming casing of element names + + + + + Default XML Serializer + + + + + Default constructor, does not specify namespace + + + + + Specify the namespaced to be used when serializing + + XML namespace + + + + Serialize the object as XML + + Object to serialize + XML as string + + + + Name of the root element to use when serializing + + + + + XML namespace to use when serializing + + + + + Format string to use when serializing dates + + + + + Content type for serialized content + + + + + Represents the json array. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The capacity of the json array. + + + + The json representation of the array. + + The json representation of the array. + + + + Represents the json object. + + + + + The internal member dictionary. + + + + + Adds the specified key. + + The key. + The value. + + + + Determines whether the specified key contains key. + + The key. + + true if the specified key contains key; otherwise, false. + + + + + Removes the specified key. + + The key. + + + + + Tries the get value. + + The key. + The value. + + + + + Adds the specified item. + + The item. + + + + Clears this instance. + + + + + Determines whether [contains] [the specified item]. + + The item. + + true if [contains] [the specified item]; otherwise, false. + + + + + Copies to. + + The array. + Index of the array. + + + + Removes the specified item. + + The item. + + + + + Gets the enumerator. + + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Returns a json that represents the current . + + + A json that represents the current . + + + + + Provides implementation for type conversion operations. Classes derived from the class can override this method to specify dynamic behavior for operations that convert an object from one type to another. + + Provides information about the conversion operation. The binder.Type property provides the type to which the object must be converted. For example, for the statement (String)sampleObject in C# (CType(sampleObject, Type) in Visual Basic), where sampleObject is an instance of the class derived from the class, binder.Type returns the type. The binder.Explicit property provides information about the kind of conversion that occurs. It returns true for explicit conversion and false for implicit conversion. + The result of the type conversion operation. + + Alwasy returns true. + + + + + Provides the implementation for operations that delete an object member. This method is not intended for use in C# or Visual Basic. + + Provides information about the deletion. + + Alwasy returns true. + + + + + Provides the implementation for operations that get a value by index. Classes derived from the class can override this method to specify dynamic behavior for indexing operations. + + Provides information about the operation. + The indexes that are used in the operation. For example, for the sampleObject[3] operation in C# (sampleObject(3) in Visual Basic), where sampleObject is derived from the DynamicObject class, is equal to 3. + The result of the index operation. + + Alwasy returns true. + + + + + Provides the implementation for operations that get member values. Classes derived from the class can override this method to specify dynamic behavior for operations such as getting a value for a property. + + Provides information about the object that called the dynamic operation. The binder.Name property provides the name of the member on which the dynamic operation is performed. For example, for the Console.WriteLine(sampleObject.SampleProperty) statement, where sampleObject is an instance of the class derived from the class, binder.Name returns "SampleProperty". The binder.IgnoreCase property specifies whether the member name is case-sensitive. + The result of the get operation. For example, if the method is called for a property, you can assign the property value to . + + Alwasy returns true. + + + + + Provides the implementation for operations that set a value by index. Classes derived from the class can override this method to specify dynamic behavior for operations that access objects by a specified index. + + Provides information about the operation. + The indexes that are used in the operation. For example, for the sampleObject[3] = 10 operation in C# (sampleObject(3) = 10 in Visual Basic), where sampleObject is derived from the class, is equal to 3. + The value to set to the object that has the specified index. For example, for the sampleObject[3] = 10 operation in C# (sampleObject(3) = 10 in Visual Basic), where sampleObject is derived from the class, is equal to 10. + + true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a language-specific run-time exception is thrown. + + + + + Provides the implementation for operations that set member values. Classes derived from the class can override this method to specify dynamic behavior for operations such as setting a value for a property. + + Provides information about the object that called the dynamic operation. The binder.Name property provides the name of the member to which the value is being assigned. For example, for the statement sampleObject.SampleProperty = "Test", where sampleObject is an instance of the class derived from the class, binder.Name returns "SampleProperty". The binder.IgnoreCase property specifies whether the member name is case-sensitive. + The value to set to the member. For example, for sampleObject.SampleProperty = "Test", where sampleObject is an instance of the class derived from the class, the is "Test". + + true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a language-specific run-time exception is thrown.) + + + + + Returns the enumeration of all dynamic member names. + + + A sequence that contains dynamic member names. + + + + + Gets the at the specified index. + + + + + + Gets the keys. + + The keys. + + + + Gets the values. + + The values. + + + + Gets or sets the with the specified key. + + + + + + Gets the count. + + The count. + + + + Gets a value indicating whether this instance is read only. + + + true if this instance is read only; otherwise, false. + + + + + This class encodes and decodes JSON strings. + Spec. details, see http://www.json.org/ + + JSON uses Arrays and Objects. These correspond here to the datatypes JsonArray(IList<object>) and JsonObject(IDictionary<string,object>). + All numbers are parsed to doubles. + + + + + Parses the string json into a value + + A JSON string. + An IList<object>, a IDictionary<string,object>, a double, a string, null, true, or false + + + + Try parsing the json string into a value. + + + A JSON string. + + + The object. + + + Returns true if successfull otherwise false. + + + + + Converts a IDictionary<string,object> / IList<object> object into a JSON string + + A IDictionary<string,object> / IList<object> + Serializer strategy to use + A JSON encoded string, or null if object 'json' is not serializable + + + + Determines if a given object is numeric in any way + (can be integer, double, null, etc). + + + + + Helper methods for validating required values + + + + + Require a parameter to not be null + + Name of the parameter + Value of the parameter + + + + Helper methods for validating values + + + + + Validate an integer value is between the specified values (exclusive of min/max) + + Value to validate + Exclusive minimum value + Exclusive maximum value + + + + Validate a string length + + String to be validated + Maximum length of the string + + + diff --git a/packages/RestSharp.104.1/lib/sl4-wp71/RestSharp.WindowsPhone.dll b/packages/RestSharp.104.1/lib/sl4-wp71/RestSharp.WindowsPhone.dll new file mode 100644 index 0000000..c686797 Binary files /dev/null and b/packages/RestSharp.104.1/lib/sl4-wp71/RestSharp.WindowsPhone.dll differ diff --git a/packages/RestSharp.104.1/lib/sl4-wp71/RestSharp.WindowsPhone.xml b/packages/RestSharp.104.1/lib/sl4-wp71/RestSharp.WindowsPhone.xml new file mode 100644 index 0000000..ea7e43f --- /dev/null +++ b/packages/RestSharp.104.1/lib/sl4-wp71/RestSharp.WindowsPhone.xml @@ -0,0 +1,3494 @@ + + + + RestSharp.WindowsPhone + + + + + + + + Base class for OAuth 2 Authenticators. + + + Since there are many ways to authenticate in OAuth2, + this is used as a base class to differentiate between + other authenticators. + + Any other OAuth2 authenticators must derive from this + abstract class. + + + + + Access token to be used when authenticating. + + + + + Initializes a new instance of the class. + + + The access token. + + + + + Gets the access token. + + + + + The OAuth 2 authenticator using URI query parameter. + + + Based on http://tools.ietf.org/html/draft-ietf-oauth-v2-10#section-5.1.2 + + + + + Initializes a new instance of the class. + + + The access token. + + + + + The OAuth 2 authenticator using the authorization request header field. + + + Based on http://tools.ietf.org/html/draft-ietf-oauth-v2-10#section-5.1.1 + + + + + Stores the Authoriztion header value as "OAuth accessToken". used for performance. + + + + + Initializes a new instance of the class. + + + The access token. + + + + + All text parameters are UTF-8 encoded (per section 5.1). + + + + + + Generates a random 16-byte lowercase alphanumeric string. + + + + + + + Generates a timestamp based on the current elapsed seconds since '01/01/1970 0000 GMT" + + + + + + + Generates a timestamp based on the elapsed seconds of a given time since '01/01/1970 0000 GMT" + + + A specified point in time. + + + + + The set of characters that are unreserved in RFC 2396 but are NOT unreserved in RFC 3986. + + + + + + URL encodes a string based on section 5.1 of the OAuth spec. + Namely, percent encoding with [RFC3986], avoiding unreserved characters, + upper-casing hexadecimal characters, and UTF-8 encoding for text value pairs. + + The value to escape. + The escaped value. + + The method is supposed to take on + RFC 3986 behavior if certain elements are present in a .config file. Even if this + actually worked (which in my experiments it doesn't), we can't rely on every + host actually having this configuration element present. + + + + + + + URL encodes a string based on section 5.1 of the OAuth spec. + Namely, percent encoding with [RFC3986], avoiding unreserved characters, + upper-casing hexadecimal characters, and UTF-8 encoding for text value pairs. + + + + + + + Sorts a collection of key-value pairs by name, and then value if equal, + concatenating them into a single string. This string should be encoded + prior to, or after normalization is run. + + + + + + + + Sorts a by name, and then value if equal. + + A collection of parameters to sort + A sorted parameter collection + + + + Creates a request URL suitable for making OAuth requests. + Resulting URLs must exclude port 80 or port 443 when accompanied by HTTP and HTTPS, respectively. + Resulting URLs must be lower case. + + + The original request URL + + + + + Creates a request elements concatentation value to send with a request. + This is also known as the signature base. + + + + The request's HTTP method type + The request URL + The request's parameters + A signature base string + + + + Creates a signature value given a signature base and the consumer secret. + This method is used when the token secret is currently unknown. + + + The hashing method + The signature base + The consumer key + + + + + Creates a signature value given a signature base and the consumer secret. + This method is used when the token secret is currently unknown. + + + The hashing method + The treatment to use on a signature value + The signature base + The consumer key + + + + + Creates a signature value given a signature base and the consumer secret and a known token secret. + + + The hashing method + The signature base + The consumer secret + The token secret + + + + + Creates a signature value given a signature base and the consumer secret and a known token secret. + + + The hashing method + The treatment to use on a signature value + The signature base + The consumer secret + The token secret + + + + + A class to encapsulate OAuth authentication flow. + + + + + + Generates a instance to pass to an + for the purpose of requesting an + unauthorized request token. + + The HTTP method for the intended request + + + + + + Generates a instance to pass to an + for the purpose of requesting an + unauthorized request token. + + The HTTP method for the intended request + Any existing, non-OAuth query parameters desired in the request + + + + + + Generates a instance to pass to an + for the purpose of exchanging a request token + for an access token authorized by the user at the Service Provider site. + + The HTTP method for the intended request + + + + + Generates a instance to pass to an + for the purpose of exchanging a request token + for an access token authorized by the user at the Service Provider site. + + The HTTP method for the intended request + + Any existing, non-OAuth query parameters desired in the request + + + + Generates a instance to pass to an + for the purpose of exchanging user credentials + for an access token authorized by the user at the Service Provider site. + + The HTTP method for the intended request + + Any existing, non-OAuth query parameters desired in the request + + + + + + + + + + + + + Calculates a 32bit Cyclic Redundancy Checksum (CRC) using the same polynomial + used by Zip. This type is used internally by DotNetZip; it is generally not used + directly by applications wishing to create, read, or manipulate zip archive + files. + + + + + Returns the CRC32 for the specified stream. + + The stream over which to calculate the CRC32 + the CRC32 calculation + + + + Returns the CRC32 for the specified stream, and writes the input into the + output stream. + + The stream over which to calculate the CRC32 + The stream into which to deflate the input + the CRC32 calculation + + + + Get the CRC32 for the given (word,byte) combo. This is a computation + defined by PKzip. + + The word to start with. + The byte to combine it with. + The CRC-ized result. + + + + Update the value for the running CRC32 using the given block of bytes. + This is useful when using the CRC32() class in a Stream. + + block of bytes to slurp + starting point in the block + how many bytes within the block to slurp + + + + indicates the total number of bytes read on the CRC stream. + This is used when writing the ZipDirEntry when compressing files. + + + + + Indicates the current CRC for all blocks slurped in. + + + + + A Stream that calculates a CRC32 (a checksum) on all bytes read, + or on all bytes written. + + + + + This class can be used to verify the CRC of a ZipEntry when + reading from a stream, or to calculate a CRC when writing to a + stream. The stream should be used to either read, or write, but + not both. If you intermix reads and writes, the results are not + defined. + + + + This class is intended primarily for use internally by the + DotNetZip library. + + + + + + The default constructor. + + + Instances returned from this constructor will leave the underlying stream + open upon Close(). + + The underlying stream + + + + The constructor allows the caller to specify how to handle the underlying + stream at close. + + The underlying stream + true to leave the underlying stream + open upon close of the CrcCalculatorStream.; false otherwise. + + + + A constructor allowing the specification of the length of the stream to read. + + + Instances returned from this constructor will leave the underlying stream open + upon Close(). + + The underlying stream + The length of the stream to slurp + + + + A constructor allowing the specification of the length of the stream to + read, as well as whether to keep the underlying stream open upon Close(). + + The underlying stream + The length of the stream to slurp + true to leave the underlying stream + open upon close of the CrcCalculatorStream.; false otherwise. + + + + Read from the stream + + the buffer to read + the offset at which to start + the number of bytes to read + the number of bytes actually read + + + + Write to the stream. + + the buffer from which to write + the offset at which to start writing + the number of bytes to write + + + + Flush the stream. + + + + + Not implemented. + + N/A + N/A + N/A + + + + Not implemented. + + N/A + + + + Closes the stream. + + + + + Gets the total number of bytes run through the CRC32 calculator. + + + + This is either the total number of bytes read, or the total number of bytes + written, depending on the direction of this stream. + + + + + Provides the current CRC for all blocks slurped in. + + + + + Indicates whether the underlying stream will be left open when the + CrcCalculatorStream is Closed. + + + + + Indicates whether the stream supports reading. + + + + + Indicates whether the stream supports seeking. + + + + + Indicates whether the stream supports writing. + + + + + Not implemented. + + + + + Not implemented. + + + + + Describes how to flush the current deflate operation. + + + The different FlushType values are useful when using a Deflate in a streaming application. + + + + No flush at all. + + + Closes the current block, but doesn't flush it to + the output. Used internally only in hypothetical + scenarios. This was supposed to be removed by Zlib, but it is + still in use in some edge cases. + + + + + Use this during compression to specify that all pending output should be + flushed to the output buffer and the output should be aligned on a byte + boundary. You might use this in a streaming communication scenario, so that + the decompressor can get all input data available so far. When using this + with a ZlibCodec, AvailableBytesIn will be zero after the call if + enough output space has been provided before the call. Flushing will + degrade compression and so it should be used only when necessary. + + + + + Use this during compression to specify that all output should be flushed, as + with FlushType.Sync, but also, the compression state should be reset + so that decompression can restart from this point if previous compressed + data has been damaged or if random access is desired. Using + FlushType.Full too often can significantly degrade the compression. + + + + Signals the end of the compression/decompression stream. + + + + A class for compressing and decompressing GZIP streams. + + + + + The GZipStream is a Decorator on a . It adds GZIP compression or decompression to any stream. + + + Like the Compression.GZipStream in the .NET Base + Class Library, the Ionic.Zlib.GZipStream can compress while writing, or decompress + while reading, but not vice versa. The compression method used is GZIP, which is + documented in IETF RFC 1952, + "GZIP file format specification version 4.3". + + A GZipStream can be used to decompress data (through Read()) or to compress + data (through Write()), but not both. + + If you wish to use the GZipStream to compress data, you must wrap it around a + write-able stream. As you call Write() on the GZipStream, the data will be + compressed into the GZIP format. If you want to decompress data, you must wrap the + GZipStream around a readable stream that contains an IETF RFC 1952-compliant stream. + The data will be decompressed as you call Read() on the GZipStream. + + Though the GZIP format allows data from multiple files to be concatenated + together, this stream handles only a single segment of GZIP format, typically + representing a single file. + + + This class is similar to and . + ZlibStream handles RFC1950-compliant streams. + handles RFC1951-compliant streams. This class handles RFC1952-compliant streams. + + + + + + + + + + The last modified time for the GZIP stream. + + + GZIP allows the storage of a last modified time with each GZIP entry. + When compressing data, you can set this before the first call to Write(). When + decompressing, you can retrieve this value any time after the first call to + Read(). + + + + Create a GZipStream using the specified CompressionMode and the specified CompressionLevel, + and explicitly specify whether the stream should be left open after Deflation or Inflation. + + + + This constructor allows the application to request that the captive stream remain open after + the deflation or inflation occurs. By default, after Close() is called on the stream, the + captive stream is also closed. In some cases this is not desired, for example if the stream + is a memory stream that will be re-read after compressed data has been written to it. Specify true for the + leaveOpen parameter to leave the stream open. + + + As noted in the class documentation, + the CompressionMode (Compress or Decompress) also establishes the "direction" of the stream. + A GZipStream with CompressionMode.Compress works only through Write(). A GZipStream with + CompressionMode.Decompress works only through Read(). + + + + This example shows how to use a DeflateStream to compress data. + + using (System.IO.Stream input = System.IO.File.OpenRead(fileToCompress)) + { + using (var raw = System.IO.File.Create(outputFile)) + { + using (Stream compressor = new GZipStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression, true)) + { + byte[] buffer = new byte[WORKING_BUFFER_SIZE]; + int n; + while ((n= input.Read(buffer, 0, buffer.Length)) != 0) + { + compressor.Write(buffer, 0, n); + } + } + } + } + + + Dim outputFile As String = (fileToCompress & ".compressed") + Using input As Stream = File.OpenRead(fileToCompress) + Using raw As FileStream = File.Create(outputFile) + Using compressor As Stream = New GZipStream(raw, CompressionMode.Compress, CompressionLevel.BestCompression, True) + Dim buffer As Byte() = New Byte(4096) {} + Dim n As Integer = -1 + Do While (n <> 0) + If (n > 0) Then + compressor.Write(buffer, 0, n) + End If + n = input.Read(buffer, 0, buffer.Length) + Loop + End Using + End Using + End Using + + + The stream which will be read or written. + Indicates whether the GZipStream will compress or decompress. + true if the application would like the stream to remain open after inflation/deflation. + A tuning knob to trade speed for effectiveness. + + + + Dispose the stream. + + + This may or may not result in a Close() call on the captive stream. + See the ctor's with leaveOpen parameters for more information. + + + + + Flush the stream. + + + + + Read and decompress data from the source stream. + + + With a GZipStream, decompression is done through reading. + + + + byte[] working = new byte[WORKING_BUFFER_SIZE]; + using (System.IO.Stream input = System.IO.File.OpenRead(_CompressedFile)) + { + using (Stream decompressor= new Ionic.Zlib.GZipStream(input, CompressionMode.Decompress, true)) + { + using (var output = System.IO.File.Create(_DecompressedFile)) + { + int n; + while ((n= decompressor.Read(working, 0, working.Length)) !=0) + { + output.Write(working, 0, n); + } + } + } + } + + + The buffer into which the decompressed data should be placed. + the offset within that data array to put the first byte read. + the number of bytes to read. + the number of bytes actually read + + + + Calling this method always throws a . + + irrelevant; it will always throw! + irrelevant; it will always throw! + irrelevant! + + + + Calling this method always throws a NotImplementedException. + + irrelevant; this method will always throw! + + + + The Comment on the GZIP stream. + + + + The GZIP format allows for each file to optionally have an associated comment stored with the + file. The comment is encoded with the ISO-8859-1 code page. To include a comment in + a GZIP stream you create, set this property before calling Write() for the first time + on the GZipStream. + + + + When using GZipStream to decompress, you can retrieve this property after the first + call to Read(). If no comment has been set in the GZIP bytestream, the Comment + property will return null (Nothing in VB). + + + + + + The FileName for the GZIP stream. + + + + The GZIP format optionally allows each file to have an associated filename. When + compressing data (through Write()), set this FileName before calling Write() the first + time on the GZipStream. The actual filename is encoded into the GZIP bytestream with + the ISO-8859-1 code page, according to RFC 1952. It is the application's responsibility to + insure that the FileName can be encoded and decoded correctly with this code page. + + + When decompressing (through Read()), you can retrieve this value any time after the + first Read(). In the case where there was no filename encoded into the GZIP + bytestream, the property will return null (Nothing in VB). + + + + + + The CRC on the GZIP stream. + + + This is used for internal error checking. You probably don't need to look at this property. + + + + + This property sets the flush behavior on the stream. + + + + + The size of the working buffer for the compression codec. + + + + + The working buffer is used for all stream operations. The default size is 1024 bytes. + The minimum size is 128 bytes. You may get better performance with a larger buffer. + Then again, you might not. You would have to test it. + + + + Set this before the first call to Read() or Write() on the stream. If you try to set it + afterwards, it will throw. + + + + + Returns the total number of bytes input so far. + + + Returns the total number of bytes output so far. + + + + Indicates whether the stream can be read. + + + The return value depends on whether the captive stream supports reading. + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream can be written. + + + The return value depends on whether the captive stream supports writing. + + + + + Reading this property always throws a NotImplementedException. + + + + + The position of the stream pointer. + + + Writing this property always throws a NotImplementedException. Reading will + return the total bytes written out, if used in writing, or the total bytes + read in, if used in reading. The count may refer to compressed bytes or + uncompressed bytes, depending on how you've used the stream. + + + + + A general purpose exception class for exceptions in the Zlib library. + + + + + The ZlibException class captures exception information generated + by the Zlib library. + + + + + This ctor collects a message attached to the exception. + + + + + + Performs an unsigned bitwise right shift with the specified number + + Number to operate on + Ammount of bits to shift + The resulting number from the shift operation + + + + Performs an unsigned bitwise right shift with the specified number + + Number to operate on + Ammount of bits to shift + The resulting number from the shift operation + + + Reads a number of characters from the current source TextReader and writes the data to the target array at the specified index. + The source TextReader to read from + Contains the array of characteres read from the source TextReader. + The starting index of the target array. + The maximum number of characters to read from the source TextReader. + The number of characters read. The number will be less than or equal to count depending on the data available in the source TextReader. Returns -1 if the end of the stream is reached. + + + + Computes an Adler-32 checksum. + + + The Adler checksum is similar to a CRC checksum, but faster to compute, though less + reliable. It is used in producing RFC1950 compressed streams. The Adler checksum + is a required part of the "ZLIB" standard. Applications will almost never need to + use this class directly. + + + + + Encoder and Decoder for ZLIB and DEFLATE (IETF RFC1950 and RFC1951). + + + + This class compresses and decompresses data according to the Deflate algorithm + and optionally, the ZLIB format, as documented in RFC 1950 - ZLIB and RFC 1951 - DEFLATE. + + + + + The buffer from which data is taken. + + + + + An index into the InputBuffer array, indicating where to start reading. + + + + + The number of bytes available in the InputBuffer, starting at NextIn. + + + Generally you should set this to InputBuffer.Length before the first Inflate() or Deflate() call. + The class will update this number as calls to Inflate/Deflate are made. + + + + + Total number of bytes read so far, through all calls to Inflate()/Deflate(). + + + + + Buffer to store output data. + + + + + An index into the OutputBuffer array, indicating where to start writing. + + + + + The number of bytes available in the OutputBuffer, starting at NextOut. + + + Generally you should set this to OutputBuffer.Length before the first Inflate() or Deflate() call. + The class will update this number as calls to Inflate/Deflate are made. + + + + + Total number of bytes written to the output so far, through all calls to Inflate()/Deflate(). + + + + + used for diagnostics, when something goes wrong! + + + + + The number of Window Bits to use. + + + This gauges the size of the sliding window, and hence the + compression effectiveness as well as memory consumption. It's best to just leave this + setting alone if you don't know what it is. The maximum value is 15 bits, which implies + a 32k window. + + + + + Create a ZlibCodec that decompresses. + + + + + Initialize the inflation state. + + + It is not necessary to call this before using the ZlibCodec to inflate data; + It is implicitly called when you call the constructor. + + Z_OK if everything goes well. + + + + Initialize the inflation state with an explicit flag to + govern the handling of RFC1950 header bytes. + + + + By default, the ZLIB header defined in RFC 1950 is expected. If + you want to read a zlib stream you should specify true for + expectRfc1950Header. If you have a deflate stream, you will want to specify + false. It is only necessary to invoke this initializer explicitly if you + want to specify false. + + + whether to expect an RFC1950 header byte + pair when reading the stream of data to be inflated. + + Z_OK if everything goes well. + + + + Initialize the ZlibCodec for inflation, with the specified number of window bits. + + The number of window bits to use. If you need to ask what that is, + then you shouldn't be calling this initializer. + Z_OK if all goes well. + + + + Initialize the inflation state with an explicit flag to govern the handling of + RFC1950 header bytes. + + + + If you want to read a zlib stream you should specify true for + expectRfc1950Header. In this case, the library will expect to find a ZLIB + header, as defined in RFC + 1950, in the compressed stream. If you will be reading a DEFLATE or + GZIP stream, which does not have such a header, you will want to specify + false. + + + whether to expect an RFC1950 header byte pair when reading + the stream of data to be inflated. + The number of window bits to use. If you need to ask what that is, + then you shouldn't be calling this initializer. + Z_OK if everything goes well. + + + + Inflate the data in the InputBuffer, placing the result in the OutputBuffer. + + + You must have set InputBuffer and OutputBuffer, NextIn and NextOut, and AvailableBytesIn and + AvailableBytesOut before calling this method. + + + + private void InflateBuffer() + { + int bufferSize = 1024; + byte[] buffer = new byte[bufferSize]; + ZlibCodec decompressor = new ZlibCodec(); + + Console.WriteLine("\n============================================"); + Console.WriteLine("Size of Buffer to Inflate: {0} bytes.", CompressedBytes.Length); + MemoryStream ms = new MemoryStream(DecompressedBytes); + + int rc = decompressor.InitializeInflate(); + + decompressor.InputBuffer = CompressedBytes; + decompressor.NextIn = 0; + decompressor.AvailableBytesIn = CompressedBytes.Length; + + decompressor.OutputBuffer = buffer; + + // pass 1: inflate + do + { + decompressor.NextOut = 0; + decompressor.AvailableBytesOut = buffer.Length; + rc = decompressor.Inflate(ZlibConstants.Z_NO_FLUSH); + + if (rc != ZlibConstants.Z_OK && rc != ZlibConstants.Z_STREAM_END) + throw new Exception("inflating: " + decompressor.Message); + + ms.Write(decompressor.OutputBuffer, 0, buffer.Length - decompressor.AvailableBytesOut); + } + while (decompressor.AvailableBytesIn > 0 || decompressor.AvailableBytesOut == 0); + + // pass 2: finish and flush + do + { + decompressor.NextOut = 0; + decompressor.AvailableBytesOut = buffer.Length; + rc = decompressor.Inflate(ZlibConstants.Z_FINISH); + + if (rc != ZlibConstants.Z_STREAM_END && rc != ZlibConstants.Z_OK) + throw new Exception("inflating: " + decompressor.Message); + + if (buffer.Length - decompressor.AvailableBytesOut > 0) + ms.Write(buffer, 0, buffer.Length - decompressor.AvailableBytesOut); + } + while (decompressor.AvailableBytesIn > 0 || decompressor.AvailableBytesOut == 0); + + decompressor.EndInflate(); + } + + + + The flush to use when inflating. + Z_OK if everything goes well. + + + + Ends an inflation session. + + + Call this after successively calling Inflate(). This will cause all buffers to be flushed. + After calling this you cannot call Inflate() without a intervening call to one of the + InitializeInflate() overloads. + + Z_OK if everything goes well. + + + + I don't know what this does! + + Z_OK if everything goes well. + + + + Set the dictionary to be used for either Inflation or Deflation. + + The dictionary bytes to use. + Z_OK if all goes well. + + + + The Adler32 checksum on the data transferred through the codec so far. You probably don't need to look at this. + + + + + A bunch of constants used in the Zlib interface. + + + + + The maximum number of window bits for the Deflate algorithm. + + + + + The default number of window bits for the Deflate algorithm. + + + + + indicates everything is A-OK + + + + + Indicates that the last operation reached the end of the stream. + + + + + The operation ended in need of a dictionary. + + + + + There was an error with the stream - not enough data, not open and readable, etc. + + + + + There was an error with the data - not enough data, bad data, etc. + + + + + There was an error with the working buffer. + + + + + The size of the working buffer used in the ZlibCodec class. Defaults to 8192 bytes. + + + + + The minimum size of the working buffer used in the ZlibCodec class. Currently it is 128 bytes. + + + + + Represents a Zlib stream for compression or decompression. + + + + + The ZlibStream is a Decorator on a . It adds ZLIB compression or decompression to any + stream. + + + Using this stream, applications can compress or decompress data via + stream Read and Write operations. Either compresssion or + decompression can occur through either reading or writing. The compression + format used is ZLIB, which is documented in IETF RFC 1950, "ZLIB Compressed + Data Format Specification version 3.3". This implementation of ZLIB always uses + DEFLATE as the compression method. (see IETF RFC 1951, "DEFLATE + Compressed Data Format Specification version 1.3.") + + + The ZLIB format allows for varying compression methods, window sizes, and dictionaries. + This implementation always uses the DEFLATE compression method, a preset dictionary, + and 15 window bits by default. + + + + This class is similar to , except that it adds the + RFC1950 header and trailer bytes to a compressed stream when compressing, or expects + the RFC1950 header and trailer bytes when decompressing. It is also similar to the + . + + + + + + + + Dispose the stream. + + + This may or may not result in a Close() call on the captive stream. + See the constructors that have a leaveOpen parameter for more information. + + + + + Flush the stream. + + + + + Read data from the stream. + + + + + + If you wish to use the ZlibStream to compress data while reading, you can create a + ZlibStream with CompressionMode.Compress, providing an uncompressed data stream. Then + call Read() on that ZlibStream, and the data read will be compressed. If you wish to + use the ZlibStream to decompress data while reading, you can create a ZlibStream with + CompressionMode.Decompress, providing a readable compressed data stream. Then call + Read() on that ZlibStream, and the data will be decompressed as it is read. + + + + A ZlibStream can be used for Read() or Write(), but not both. + + + The buffer into which the read data should be placed. + the offset within that data array to put the first byte read. + the number of bytes to read. + + + + Calling this method always throws a NotImplementedException. + + + + + Calling this method always throws a NotImplementedException. + + + + + Write data to the stream. + + + + + + If you wish to use the ZlibStream to compress data while writing, you can create a + ZlibStream with CompressionMode.Compress, and a writable output stream. Then call + Write() on that ZlibStream, providing uncompressed data as input. The data sent to + the output stream will be the compressed form of the data written. If you wish to use + the ZlibStream to decompress data while writing, you can create a ZlibStream with + CompressionMode.Decompress, and a writable output stream. Then call Write() on that + stream, providing previously compressed data. The data sent to the output stream will + be the decompressed form of the data written. + + + + A ZlibStream can be used for Read() or Write(), but not both. + + + The buffer holding data to write to the stream. + the offset within that data array to find the first byte to write. + the number of bytes to write. + + + + Uncompress a byte array into a single string. + + + + A buffer containing ZLIB-compressed data. + + + + + Uncompress a byte array into a byte array. + + + + + A buffer containing ZLIB-compressed data. + + + + + This property sets the flush behavior on the stream. + Sorry, though, not sure exactly how to describe all the various settings. + + + + + The size of the working buffer for the compression codec. + + + + + The working buffer is used for all stream operations. The default size is 1024 bytes. + The minimum size is 128 bytes. You may get better performance with a larger buffer. + Then again, you might not. You would have to test it. + + + + Set this before the first call to Read() or Write() on the stream. If you try to set it + afterwards, it will throw. + + + + + Returns the total number of bytes input so far. + + + Returns the total number of bytes output so far. + + + + Indicates whether the stream can be read. + + + The return value depends on whether the captive stream supports reading. + + + + + Indicates whether the stream supports Seek operations. + + + Always returns false. + + + + + Indicates whether the stream can be written. + + + The return value depends on whether the captive stream supports writing. + + + + + Reading this property always throws a NotImplementedException. + + + + + The position of the stream pointer. + + + Writing this property always throws a NotImplementedException. Reading will + return the total bytes written out, if used in writing, or the total bytes + read in, if used in reading. The count may refer to compressed bytes or + uncompressed bytes, depending on how you've used the stream. + + + + + Allows control how class and property names and values are deserialized by XmlAttributeDeserializer + + + + + The name to use for the serialized element + + + + + Sets if the property to Deserialize is an Attribute or Element (Default: false) + + + + + Wrapper for System.Xml.Serialization.XmlSerializer. + + + + + Types of parameters that can be added to requests + + + + + Data formats + + + + + HTTP method to use when making requests + + + + + Format strings for commonly-used date formats + + + + + .NET format string for ISO 8601 date format + + + + + .NET format string for roundtrip date format + + + + + Status for responses (surprised?) + + + + + Extension method overload! + + + + + Read a stream into a byte array + + Stream to read + byte[] + + + + Copies bytes from one stream to another + + The input stream. + The output stream. + + + + Converts a byte array to a string, using its byte order mark to convert it to the right encoding. + http://www.shrinkrays.net/code-snippets/csharp/an-extension-method-for-converting-a-byte-array-to-a-string.aspx + + An array of bytes to convert + The byte as a string. + + + + Reflection extensions + + + + + Retrieve an attribute from a member (property) + + Type of attribute to retrieve + Member to retrieve attribute from + + + + + Retrieve an attribute from a type + + Type of attribute to retrieve + Type to retrieve attribute from + + + + + Checks a type to see if it derives from a raw generic (e.g. List[[]]) + + + + + + + + + Uses Uri.EscapeDataString() based on recommendations on MSDN + http://blogs.msdn.com/b/yangxind/archive/2006/11/09/don-t-use-net-system-uri-unescapedatastring-in-url-decoding.aspx + + + + + Check that a string is not null or empty + + String to check + bool + + + + Remove underscores from a string + + String to process + string + + + + Parses most common JSON date formats + + JSON value to parse + DateTime + + + + Remove leading and trailing " from a string + + String to parse + String + + + + Checks a string to see if it matches a regex + + String to check + Pattern to match + bool + + + + Converts a string to pascal case + + String to convert + string + + + + Converts a string to pascal case with the option to remove underscores + + String to convert + Option to remove underscores + + + + + Converts a string to camel case + + String to convert + String + + + + Convert the first letter of a string to lower case + + String to convert + string + + + + Checks to see if a string is all uppper case + + String to check + bool + + + + Add underscores to a pascal-cased string + + String to convert + string + + + + Add dashes to a pascal-cased string + + String to convert + string + + + + Add an undescore prefix to a pascasl-cased string + + + + + + + Return possible variants of a name for name matching. + + String to convert + The culture to use for conversion + IEnumerable<string> + + + + XML Extension Methods + + + + + Returns the name of an element with the namespace if specified + + Element name + XML Namespace + + + + + Container for files to be uploaded with requests + + + + + Creates a file parameter from an array of bytes. + + The parameter name to use in the request. + The data to use as the file's contents. + The filename to use in the request. + The content type to use in the request. + The + + + + Creates a file parameter from an array of bytes. + + The parameter name to use in the request. + The data to use as the file's contents. + The filename to use in the request. + The using the default content type. + + + + The length of data to be sent + + + + + Provides raw data for file + + + + + Name of the file to use when uploading + + + + + MIME content type of file + + + + + Name of the parameter + + + + + HttpWebRequest wrapper (async methods) + + + HttpWebRequest wrapper + + + + + Execute an async POST-style request with the specified HTTP Method. + + The HTTP method to execute. + + + + + Execute an async GET-style request with the specified HTTP Method. + + The HTTP method to execute. + + + + + Creates an IHttp + + + + + + Default constructor + + + + + True if this HTTP request has any HTTP parameters + + + + + True if this HTTP request has any HTTP cookies + + + + + True if a request body has been specified + + + + + True if files have been set to be uploaded + + + + + UserAgent to be sent with request + + + + + Timeout in milliseconds to be used for the request + + + + + System.Net.ICredentials to be sent with request + + + + + The System.Net.CookieContainer to be used for the request + + + + + Collection of files to be sent with request + + + + + Whether or not HTTP 3xx response redirects should be automatically followed + + + + + HTTP headers to be sent with request + + + + + HTTP parameters (QueryString or Form values) to be sent with request + + + + + HTTP cookies to be sent with request + + + + + Request body to be sent with request + + + + + Content type of the request body. + + + + + URL to call for this request + + + + + Representation of an HTTP cookie + + + + + Comment of the cookie + + + + + Comment of the cookie + + + + + Indicates whether the cookie should be discarded at the end of the session + + + + + Domain of the cookie + + + + + Indicates whether the cookie is expired + + + + + Date and time that the cookie expires + + + + + Indicates that this cookie should only be accessed by the server + + + + + Name of the cookie + + + + + Path of the cookie + + + + + Port of the cookie + + + + + Indicates that the cookie should only be sent over secure channels + + + + + Date and time the cookie was created + + + + + Value of the cookie + + + + + Version of the cookie + + + + + Container for HTTP file + + + + + The length of data to be sent + + + + + Provides raw data for file + + + + + Name of the file to use when uploading + + + + + MIME content type of file + + + + + Name of the parameter + + + + + Representation of an HTTP header + + + + + Name of the header + + + + + Value of the header + + + + + Representation of an HTTP parameter (QueryString or Form value) + + + + + Name of the parameter + + + + + Value of the parameter + + + + + HTTP response data + + + + + HTTP response data + + + + + MIME content type of response + + + + + Length in bytes of the response content + + + + + Encoding of the response content + + + + + String representation of response content + + + + + HTTP response status code + + + + + Description of HTTP status returned + + + + + Response content + + + + + The URL that actually responded to the content (different from request if redirected) + + + + + HttpWebResponse.Server + + + + + Headers returned by server with the response + + + + + Cookies returned by server with the response + + + + + Status of the request. Will return Error for transport errors. + HTTP errors will still return ResponseStatus.Completed, check StatusCode instead + + + + + Transport or other non-HTTP error generated while attempting request + + + + + Exception thrown when error is encountered. + + + + + Default constructor + + + + + MIME content type of response + + + + + Length in bytes of the response content + + + + + Encoding of the response content + + + + + Lazy-loaded string representation of response content + + + + + HTTP response status code + + + + + Description of HTTP status returned + + + + + Response content + + + + + The URL that actually responded to the content (different from request if redirected) + + + + + HttpWebResponse.Server + + + + + Headers returned by server with the response + + + + + Cookies returned by server with the response + + + + + Status of the request. Will return Error for transport errors. + HTTP errors will still return ResponseStatus.Completed, check StatusCode instead + + + + + Transport or other non-HTTP error generated while attempting request + + + + + Exception thrown when error is encountered. + + + + + + + + + + + + + + + + + + + + + + Executes a GET-style request and callback asynchronously, authenticating if needed + + Request to be executed + Callback function to be executed upon completion providing access to the async handle. + The HTTP method to execute + + + + Executes a POST-style request and callback asynchronously, authenticating if needed + + Request to be executed + Callback function to be executed upon completion providing access to the async handle. + The HTTP method to execute + + + + Executes a GET-style request and callback asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + Callback function to be executed upon completion + The HTTP method to execute + + + + Executes a GET-style request and callback asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + Callback function to be executed upon completion + The HTTP method to execute + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Serializes obj to format specified by RequestFormat, but passes xmlNamespace if using the default XmlSerializer + + The object to serialize + The XML namespace to use when serializing + This request + + + + Serializes obj to data format specified by RequestFormat and adds it to the request body. + + The object to serialize + This request + + + + Calls AddParameter() for all public, readable properties specified in the white list + + + request.AddObject(product, "ProductId", "Price", ...); + + The object with properties to add as parameters + The names of the properties to include + This request + + + + Calls AddParameter() for all public, readable properties of obj + + The object with properties to add as parameters + This request + + + + Add the parameter to the request + + Parameter to add + + + + + Adds a HTTP parameter to the request (QueryString for GET, DELETE, OPTIONS and HEAD; Encoded form for POST and PUT) + + Name of the parameter + Value of the parameter + This request + + + + Adds a parameter to the request. There are five types of parameters: + - GetOrPost: Either a QueryString value or encoded form value based on method + - HttpHeader: Adds the name/value pair to the HTTP request's Headers collection + - UrlSegment: Inserted into URL if there is a matching url token e.g. {AccountId} + - Cookie: Adds the name/value pair to the HTTP request's Cookies collection + - RequestBody: Used by AddBody() (not recommended to use directly) + + Name of the parameter + Value of the parameter + The type of parameter to add + This request + + + + Shortcut to AddParameter(name, value, HttpHeader) overload + + Name of the header to add + Value of the header to add + + + + + Shortcut to AddParameter(name, value, Cookie) overload + + Name of the cookie to add + Value of the cookie to add + + + + + Shortcut to AddParameter(name, value, UrlSegment) overload + + Name of the segment to add + Value of the segment to add + + + + + Serializer to use when writing JSON request bodies. Used if RequestFormat is Json. + By default the included JsonSerializer is used (currently using JSON.NET default serialization). + + + + + Serializer to use when writing XML request bodies. Used if RequestFormat is Xml. + By default the included XmlSerializer is used. + + + + + Container of all HTTP parameters to be passed with the request. + See AddParameter() for explanation of the types of parameters that can be passed + + + + + Container of all the files to be uploaded with the request. + + + + + Determines what HTTP method to use for this request. Supported methods: GET, POST, PUT, DELETE, HEAD, OPTIONS + Default is GET + + + + + The Resource URL to make the request against. + Tokens are substituted with UrlSegment parameters and match by name. + Should not include the scheme or domain. Do not include leading slash. + Combined with RestClient.BaseUrl to assemble final URL: + {BaseUrl}/{Resource} (BaseUrl is scheme + domain, e.g. http://example.com) + + + // example for url token replacement + request.Resource = "Products/{ProductId}"; + request.AddParameter("ProductId", 123, ParameterType.UrlSegment); + + + + + Serializer to use when writing XML request bodies. Used if RequestFormat is Xml. + By default XmlSerializer is used. + + + + + Used by the default deserializers to determine where to start deserializing from. + Can be used to skip container or root elements that do not have corresponding deserialzation targets. + + + + + Used by the default deserializers to explicitly set which date format string to use when parsing dates. + + + + + Used by XmlDeserializer. If not specified, XmlDeserializer will flatten response by removing namespaces from element names. + + + + + In general you would not need to set this directly. Used by the NtlmAuthenticator. + + + + + Timeout in milliseconds to be used for the request. This timeout value overrides a timeout set on the RestClient. + + + + + How many attempts were made to send this Request? + + + This Number is incremented each time the RestClient sends the request. + Useful when using Asynchronous Execution with Callbacks + + + + + Container for data sent back from API + + + + + The RestRequest that was made to get this RestResponse + + + Mainly for debugging if ResponseStatus is not OK + + + + + MIME content type of response + + + + + Length in bytes of the response content + + + + + Encoding of the response content + + + + + String representation of response content + + + + + HTTP response status code + + + + + Description of HTTP status returned + + + + + Response content + + + + + The URL that actually responded to the content (different from request if redirected) + + + + + HttpWebResponse.Server + + + + + Cookies returned by server with the response + + + + + Headers returned by server with the response + + + + + Status of the request. Will return Error for transport errors. + HTTP errors will still return ResponseStatus.Completed, check StatusCode instead + + + + + Transport or other non-HTTP error generated while attempting request + + + + + The exception thrown during the request, if any + + + + + Container for data sent back from API including deserialized data + + Type of data to deserialize to + + + + Deserialized entity data + + + + + Parameter container for REST requests + + + + + Return a human-readable representation of this parameter + + String + + + + Name of the parameter + + + + + Value of the parameter + + + + + Type of the parameter + + + + + Client to translate RestRequests into Http requests and process response result + + + + + Executes the request and callback asynchronously, authenticating if needed + + Request to be executed + Callback function to be executed upon completion providing access to the async handle. + + + + Executes a GET-style request and callback asynchronously, authenticating if needed + + Request to be executed + Callback function to be executed upon completion providing access to the async handle. + The HTTP method to execute + + + + Executes a POST-style request and callback asynchronously, authenticating if needed + + Request to be executed + Callback function to be executed upon completion providing access to the async handle. + The HTTP method to execute + + + + Executes the request and callback asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + Callback function to be executed upon completion + + + + Executes a GET-style request and callback asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + Callback function to be executed upon completion + The HTTP method to execute + + + + Executes a POST-style request and callback asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + Callback function to be executed upon completion + The HTTP method to execute + + + + Default constructor that registers default content handlers + + + + + Sets the BaseUrl property for requests made by this client instance + + + + + + Registers a content handler to process response content + + MIME content type of the response content + Deserializer to use to process content + + + + Remove a content handler for the specified MIME content type + + MIME content type to remove + + + + Remove all content handlers + + + + + Retrieve the handler for the specified MIME content type + + MIME content type to retrieve + IDeserializer instance + + + + Assembles URL to call based on parameters, method and resource + + RestRequest to execute + Assembled System.Uri + + + + Parameters included with every request made with this instance of RestClient + If specified in both client and request, the request wins + + + + + Maximum number of redirects to follow if FollowRedirects is true + + + + + Default is true. Determine whether or not requests that result in + HTTP status codes of 3xx should follow returned redirect + + + + + The CookieContainer used for requests made by this client instance + + + + + UserAgent to use for requests made by this client instance + + + + + Timeout in milliseconds to use for requests made by this client instance + + + + + Whether to invoke async callbacks using the SynchronizationContext.Current captured when invoked + + + + + Authenticator to use for requests made by this client instance + + + + + Combined with Request.Resource to construct URL for request + Should include scheme and domain without trailing slash. + + + client.BaseUrl = "http://example.com"; + + + + + Executes the request and callback asynchronously, authenticating if needed + + The IRestClient this method extends + Request to be executed + Callback function to be executed upon completion + + + + Executes the request and callback asynchronously, authenticating if needed + + The IRestClient this method extends + Target deserialization type + Request to be executed + Callback function to be executed upon completion providing access to the async handle + + + + Add a parameter to use on every request made with this client instance + + The IRestClient instance + Parameter to add + + + + + Adds a HTTP parameter (QueryString for GET, DELETE, OPTIONS and HEAD; Encoded form for POST and PUT) + Used on every request made by this client instance + + The IRestClient instance + Name of the parameter + Value of the parameter + This request + + + + Adds a parameter to the request. There are four types of parameters: + - GetOrPost: Either a QueryString value or encoded form value based on method + - HttpHeader: Adds the name/value pair to the HTTP request's Headers collection + - UrlSegment: Inserted into URL if there is a matching url token e.g. {AccountId} + - RequestBody: Used by AddBody() (not recommended to use directly) + + The IRestClient instance + Name of the parameter + Value of the parameter + The type of parameter to add + This request + + + + Shortcut to AddDefaultParameter(name, value, HttpHeader) overload + + The IRestClient instance + Name of the header to add + Value of the header to add + + + + + Shortcut to AddDefaultParameter(name, value, UrlSegment) overload + + The IRestClient instance + Name of the segment to add + Value of the segment to add + + + + + Container for data used to make requests + + + + + Default constructor + + + + + Sets Method property to value of method + + Method to use for this request + + + + Sets Resource property + + Resource to use for this request + + + + Sets Resource and Method properties + + Resource to use for this request + Method to use for this request + + + + Sets Resource property + + Resource to use for this request + + + + Sets Resource and Method properties + + Resource to use for this request + Method to use for this request + + + + Adds a file to the Files collection to be included with a POST or PUT request + (other methods do not support file uploads). + + The parameter name to use in the request + Full path to file to upload + This request + + + + Adds the bytes to the Files collection with the specified file name + + The parameter name to use in the request + The file data + The file name to use for the uploaded file + This request + + + + Adds the bytes to the Files collection with the specified file name and content type + + The parameter name to use in the request + The file data + The file name to use for the uploaded file + The MIME type of the file to upload + This request + + + + Adds the bytes to the Files collection with the specified file name and content type + + The parameter name to use in the request + A function that writes directly to the stream. Should NOT close the stream. + The file name to use for the uploaded file + This request + + + + Adds the bytes to the Files collection with the specified file name and content type + + The parameter name to use in the request + A function that writes directly to the stream. Should NOT close the stream. + The file name to use for the uploaded file + The MIME type of the file to upload + This request + + + + Serializes obj to format specified by RequestFormat, but passes xmlNamespace if using the default XmlSerializer + + The object to serialize + The XML namespace to use when serializing + This request + + + + Serializes obj to data format specified by RequestFormat and adds it to the request body. + + The object to serialize + This request + + + + Calls AddParameter() for all public, readable properties specified in the white list + + + request.AddObject(product, "ProductId", "Price", ...); + + The object with properties to add as parameters + The names of the properties to include + This request + + + + Calls AddParameter() for all public, readable properties of obj + + The object with properties to add as parameters + This request + + + + Add the parameter to the request + + Parameter to add + + + + + Adds a HTTP parameter to the request (QueryString for GET, DELETE, OPTIONS and HEAD; Encoded form for POST and PUT) + + Name of the parameter + Value of the parameter + This request + + + + Adds a parameter to the request. There are four types of parameters: + - GetOrPost: Either a QueryString value or encoded form value based on method + - HttpHeader: Adds the name/value pair to the HTTP request's Headers collection + - UrlSegment: Inserted into URL if there is a matching url token e.g. {AccountId} + - RequestBody: Used by AddBody() (not recommended to use directly) + + Name of the parameter + Value of the parameter + The type of parameter to add + This request + + + + Shortcut to AddParameter(name, value, HttpHeader) overload + + Name of the header to add + Value of the header to add + + + + + Shortcut to AddParameter(name, value, Cookie) overload + + Name of the cookie to add + Value of the cookie to add + + + + + Shortcut to AddParameter(name, value, UrlSegment) overload + + Name of the segment to add + Value of the segment to add + + + + + Internal Method so that RestClient can increase the number of attempts + + + + + Serializer to use when writing JSON request bodies. Used if RequestFormat is Json. + By default the included JsonSerializer is used (currently using JSON.NET default serialization). + + + + + Serializer to use when writing XML request bodies. Used if RequestFormat is Xml. + By default the included XmlSerializer is used. + + + + + Container of all HTTP parameters to be passed with the request. + See AddParameter() for explanation of the types of parameters that can be passed + + + + + Container of all the files to be uploaded with the request. + + + + + Determines what HTTP method to use for this request. Supported methods: GET, POST, PUT, DELETE, HEAD, OPTIONS + Default is GET + + + + + The Resource URL to make the request against. + Tokens are substituted with UrlSegment parameters and match by name. + Should not include the scheme or domain. Do not include leading slash. + Combined with RestClient.BaseUrl to assemble final URL: + {BaseUrl}/{Resource} (BaseUrl is scheme + domain, e.g. http://example.com) + + + // example for url token replacement + request.Resource = "Products/{ProductId}"; + request.AddParameter("ProductId", 123, ParameterType.UrlSegment); + + + + + Serializer to use when writing XML request bodies. Used if RequestFormat is Xml. + By default XmlSerializer is used. + + + + + Used by the default deserializers to determine where to start deserializing from. + Can be used to skip container or root elements that do not have corresponding deserialzation targets. + + + + + A function to run prior to deserializing starting (e.g. change settings if error encountered) + + + + + Used by the default deserializers to explicitly set which date format string to use when parsing dates. + + + + + Used by XmlDeserializer. If not specified, XmlDeserializer will flatten response by removing namespaces from element names. + + + + + In general you would not need to set this directly. Used by the NtlmAuthenticator. + + + + + Gets or sets a user-defined state object that contains information about a request and which can be later + retrieved when the request completes. + + + + + Timeout in milliseconds to be used for the request. This timeout value overrides a timeout set on the RestClient. + + + + + How many attempts were made to send this Request? + + + This Number is incremented each time the RestClient sends the request. + Useful when using Asynchronous Execution with Callbacks + + + + + Base class for common properties shared by RestResponse and RestResponse[[T]] + + + + + Default constructor + + + + + The RestRequest that was made to get this RestResponse + + + Mainly for debugging if ResponseStatus is not OK + + + + + MIME content type of response + + + + + Length in bytes of the response content + + + + + Encoding of the response content + + + + + String representation of response content + + + + + HTTP response status code + + + + + Description of HTTP status returned + + + + + Response content + + + + + The URL that actually responded to the content (different from request if redirected) + + + + + HttpWebResponse.Server + + + + + Cookies returned by server with the response + + + + + Headers returned by server with the response + + + + + Status of the request. Will return Error for transport errors. + HTTP errors will still return ResponseStatus.Completed, check StatusCode instead + + + + + Transport or other non-HTTP error generated while attempting request + + + + + The exception thrown during the request, if any + + + + + Container for data sent back from API including deserialized data + + Type of data to deserialize to + + + + Deserialized entity data + + + + + Container for data sent back from API + + + + + Wrapper for System.Xml.Serialization.XmlSerializer. + + + + + Default constructor, does not specify namespace + + + + + Specify the namespaced to be used when serializing + + XML namespace + + + + Serialize the object as XML + + Object to serialize + XML as string + + + + Name of the root element to use when serializing + + + + + XML namespace to use when serializing + + + + + Format string to use when serializing dates + + + + + Content type for serialized content + + + + + Encoding for serialized content + + + + + Need to subclass StringWriter in order to override Encoding + + + + + Default JSON serializer for request bodies + Doesn't currently use the SerializeAs attribute, defers to Newtonsoft's attributes + + + + + Default serializer + + + + + Serialize the object as JSON + + Object to serialize + JSON as String + + + + Unused for JSON Serialization + + + + + Unused for JSON Serialization + + + + + Unused for JSON Serialization + + + + + Content type for serialized content + + + + + Allows control how class and property names and values are serialized by XmlSerializer + Currently not supported with the JsonSerializer + When specified at the property level the class-level specification is overridden + + + + + Called by the attribute when NameStyle is speficied + + The string to transform + String + + + + The name to use for the serialized element + + + + + Sets the value to be serialized as an Attribute instead of an Element + + + + + The culture to use when serializing + + + + + Transforms the casing of the name based on the selected value. + + + + + The order to serialize the element. Default is int.MaxValue. + + + + + Options for transforming casing of element names + + + + + Default XML Serializer + + + + + Default constructor, does not specify namespace + + + + + Specify the namespaced to be used when serializing + + XML namespace + + + + Serialize the object as XML + + Object to serialize + XML as string + + + + Name of the root element to use when serializing + + + + + XML namespace to use when serializing + + + + + Format string to use when serializing dates + + + + + Content type for serialized content + + + + + Represents the json array. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The capacity of the json array. + + + + The json representation of the array. + + The json representation of the array. + + + + Represents the json object. + + + + + The internal member dictionary. + + + + + Adds the specified key. + + The key. + The value. + + + + Determines whether the specified key contains key. + + The key. + + true if the specified key contains key; otherwise, false. + + + + + Removes the specified key. + + The key. + + + + + Tries the get value. + + The key. + The value. + + + + + Adds the specified item. + + The item. + + + + Clears this instance. + + + + + Determines whether [contains] [the specified item]. + + The item. + + true if [contains] [the specified item]; otherwise, false. + + + + + Copies to. + + The array. + Index of the array. + + + + Removes the specified item. + + The item. + + + + + Gets the enumerator. + + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Returns a json that represents the current . + + + A json that represents the current . + + + + + Gets the at the specified index. + + + + + + Gets the keys. + + The keys. + + + + Gets the values. + + The values. + + + + Gets or sets the with the specified key. + + + + + + Gets the count. + + The count. + + + + Gets a value indicating whether this instance is read only. + + + true if this instance is read only; otherwise, false. + + + + + This class encodes and decodes JSON strings. + Spec. details, see http://www.json.org/ + + JSON uses Arrays and Objects. These correspond here to the datatypes JsonArray(IList<object>) and JsonObject(IDictionary<string,object>). + All numbers are parsed to doubles. + + + + + Parses the string json into a value + + A JSON string. + An IList<object>, a IDictionary<string,object>, a double, a string, null, true, or false + + + + Try parsing the json string into a value. + + + A JSON string. + + + The object. + + + Returns true if successfull otherwise false. + + + + + Converts a IDictionary<string,object> / IList<object> object into a JSON string + + A IDictionary<string,object> / IList<object> + Serializer strategy to use + A JSON encoded string, or null if object 'json' is not serializable + + + + Determines if a given object is numeric in any way + (can be integer, double, null, etc). + + + + + Helper methods for validating required values + + + + + Require a parameter to not be null + + Name of the parameter + Value of the parameter + + + + Helper methods for validating values + + + + + Validate an integer value is between the specified values (exclusive of min/max) + + Value to validate + Exclusive minimum value + Exclusive maximum value + + + + Validate a string length + + String to be validated + Maximum length of the string + + + + Comment of the cookie + + + + + Comment of the cookie + + + + + Indicates whether the cookie should be discarded at the end of the session + + + + + Domain of the cookie + + + + + Indicates whether the cookie is expired + + + + + Date and time that the cookie expires + + + + + Indicates that this cookie should only be accessed by the server + + + + + Name of the cookie + + + + + Path of the cookie + + + + + Port of the cookie + + + + + Indicates that the cookie should only be sent over secure channels + + + + + Date and time the cookie was created + + + + + Value of the cookie + + + + + Version of the cookie + + + + diff --git a/packages/RestSharp.104.1/lib/sl4/RestSharp.Silverlight.dll b/packages/RestSharp.104.1/lib/sl4/RestSharp.Silverlight.dll new file mode 100644 index 0000000..c6b2687 Binary files /dev/null and b/packages/RestSharp.104.1/lib/sl4/RestSharp.Silverlight.dll differ diff --git a/packages/RestSharp.104.1/lib/sl4/RestSharp.Silverlight.xml b/packages/RestSharp.104.1/lib/sl4/RestSharp.Silverlight.xml new file mode 100644 index 0000000..fbe07a7 --- /dev/null +++ b/packages/RestSharp.104.1/lib/sl4/RestSharp.Silverlight.xml @@ -0,0 +1,2429 @@ + + + + RestSharp.Silverlight + + + + + + + + Base class for OAuth 2 Authenticators. + + + Since there are many ways to authenticate in OAuth2, + this is used as a base class to differentiate between + other authenticators. + + Any other OAuth2 authenticators must derive from this + abstract class. + + + + + Access token to be used when authenticating. + + + + + Initializes a new instance of the class. + + + The access token. + + + + + Gets the access token. + + + + + The OAuth 2 authenticator using URI query parameter. + + + Based on http://tools.ietf.org/html/draft-ietf-oauth-v2-10#section-5.1.2 + + + + + Initializes a new instance of the class. + + + The access token. + + + + + The OAuth 2 authenticator using the authorization request header field. + + + Based on http://tools.ietf.org/html/draft-ietf-oauth-v2-10#section-5.1.1 + + + + + Stores the Authoriztion header value as "OAuth accessToken". used for performance. + + + + + Initializes a new instance of the class. + + + The access token. + + + + + All text parameters are UTF-8 encoded (per section 5.1). + + + + + + Generates a random 16-byte lowercase alphanumeric string. + + + + + + + Generates a timestamp based on the current elapsed seconds since '01/01/1970 0000 GMT" + + + + + + + Generates a timestamp based on the elapsed seconds of a given time since '01/01/1970 0000 GMT" + + + A specified point in time. + + + + + The set of characters that are unreserved in RFC 2396 but are NOT unreserved in RFC 3986. + + + + + + URL encodes a string based on section 5.1 of the OAuth spec. + Namely, percent encoding with [RFC3986], avoiding unreserved characters, + upper-casing hexadecimal characters, and UTF-8 encoding for text value pairs. + + The value to escape. + The escaped value. + + The method is supposed to take on + RFC 3986 behavior if certain elements are present in a .config file. Even if this + actually worked (which in my experiments it doesn't), we can't rely on every + host actually having this configuration element present. + + + + + + + URL encodes a string based on section 5.1 of the OAuth spec. + Namely, percent encoding with [RFC3986], avoiding unreserved characters, + upper-casing hexadecimal characters, and UTF-8 encoding for text value pairs. + + + + + + + Sorts a collection of key-value pairs by name, and then value if equal, + concatenating them into a single string. This string should be encoded + prior to, or after normalization is run. + + + + + + + + Sorts a by name, and then value if equal. + + A collection of parameters to sort + A sorted parameter collection + + + + Creates a request URL suitable for making OAuth requests. + Resulting URLs must exclude port 80 or port 443 when accompanied by HTTP and HTTPS, respectively. + Resulting URLs must be lower case. + + + The original request URL + + + + + Creates a request elements concatentation value to send with a request. + This is also known as the signature base. + + + + The request's HTTP method type + The request URL + The request's parameters + A signature base string + + + + Creates a signature value given a signature base and the consumer secret. + This method is used when the token secret is currently unknown. + + + The hashing method + The signature base + The consumer key + + + + + Creates a signature value given a signature base and the consumer secret. + This method is used when the token secret is currently unknown. + + + The hashing method + The treatment to use on a signature value + The signature base + The consumer key + + + + + Creates a signature value given a signature base and the consumer secret and a known token secret. + + + The hashing method + The signature base + The consumer secret + The token secret + + + + + Creates a signature value given a signature base and the consumer secret and a known token secret. + + + The hashing method + The treatment to use on a signature value + The signature base + The consumer secret + The token secret + + + + + A class to encapsulate OAuth authentication flow. + + + + + + Generates a instance to pass to an + for the purpose of requesting an + unauthorized request token. + + The HTTP method for the intended request + + + + + + Generates a instance to pass to an + for the purpose of requesting an + unauthorized request token. + + The HTTP method for the intended request + Any existing, non-OAuth query parameters desired in the request + + + + + + Generates a instance to pass to an + for the purpose of exchanging a request token + for an access token authorized by the user at the Service Provider site. + + The HTTP method for the intended request + + + + + Generates a instance to pass to an + for the purpose of exchanging a request token + for an access token authorized by the user at the Service Provider site. + + The HTTP method for the intended request + + Any existing, non-OAuth query parameters desired in the request + + + + Generates a instance to pass to an + for the purpose of exchanging user credentials + for an access token authorized by the user at the Service Provider site. + + The HTTP method for the intended request + + Any existing, non-OAuth query parameters desired in the request + + + + + + + + + + + + + Allows control how class and property names and values are deserialized by XmlAttributeDeserializer + + + + + The name to use for the serialized element + + + + + Sets if the property to Deserialize is an Attribute or Element (Default: false) + + + + + Wrapper for System.Xml.Serialization.XmlSerializer. + + + + + Types of parameters that can be added to requests + + + + + Data formats + + + + + HTTP method to use when making requests + + + + + Format strings for commonly-used date formats + + + + + .NET format string for ISO 8601 date format + + + + + .NET format string for roundtrip date format + + + + + Status for responses (surprised?) + + + + + Extension method overload! + + + + + Save a byte array to a file + + Bytes to save + Full path to save file to + + + + Read a stream into a byte array + + Stream to read + byte[] + + + + Copies bytes from one stream to another + + The input stream. + The output stream. + + + + Converts a byte array to a string, using its byte order mark to convert it to the right encoding. + http://www.shrinkrays.net/code-snippets/csharp/an-extension-method-for-converting-a-byte-array-to-a-string.aspx + + An array of bytes to convert + The byte as a string. + + + + Reflection extensions + + + + + Retrieve an attribute from a member (property) + + Type of attribute to retrieve + Member to retrieve attribute from + + + + + Retrieve an attribute from a type + + Type of attribute to retrieve + Type to retrieve attribute from + + + + + Checks a type to see if it derives from a raw generic (e.g. List[[]]) + + + + + + + + + Uses Uri.EscapeDataString() based on recommendations on MSDN + http://blogs.msdn.com/b/yangxind/archive/2006/11/09/don-t-use-net-system-uri-unescapedatastring-in-url-decoding.aspx + + + + + Check that a string is not null or empty + + String to check + bool + + + + Remove underscores from a string + + String to process + string + + + + Parses most common JSON date formats + + JSON value to parse + DateTime + + + + Remove leading and trailing " from a string + + String to parse + String + + + + Checks a string to see if it matches a regex + + String to check + Pattern to match + bool + + + + Converts a string to pascal case + + String to convert + string + + + + Converts a string to pascal case with the option to remove underscores + + String to convert + Option to remove underscores + + + + + Converts a string to camel case + + String to convert + String + + + + Convert the first letter of a string to lower case + + String to convert + string + + + + Checks to see if a string is all uppper case + + String to check + bool + + + + Add underscores to a pascal-cased string + + String to convert + string + + + + Add dashes to a pascal-cased string + + String to convert + string + + + + Add an undescore prefix to a pascasl-cased string + + + + + + + Return possible variants of a name for name matching. + + String to convert + The culture to use for conversion + IEnumerable<string> + + + + XML Extension Methods + + + + + Returns the name of an element with the namespace if specified + + Element name + XML Namespace + + + + + Container for files to be uploaded with requests + + + + + Creates a file parameter from an array of bytes. + + The parameter name to use in the request. + The data to use as the file's contents. + The filename to use in the request. + The content type to use in the request. + The + + + + Creates a file parameter from an array of bytes. + + The parameter name to use in the request. + The data to use as the file's contents. + The filename to use in the request. + The using the default content type. + + + + The length of data to be sent + + + + + Provides raw data for file + + + + + Name of the file to use when uploading + + + + + MIME content type of file + + + + + Name of the parameter + + + + + HttpWebRequest wrapper (async methods) + + + HttpWebRequest wrapper + + + + + Execute an async POST-style request with the specified HTTP Method. + + The HTTP method to execute. + + + + + Execute an async GET-style request with the specified HTTP Method. + + The HTTP method to execute. + + + + + Creates an IHttp + + + + + + Default constructor + + + + + True if this HTTP request has any HTTP parameters + + + + + True if this HTTP request has any HTTP cookies + + + + + True if a request body has been specified + + + + + True if files have been set to be uploaded + + + + + UserAgent to be sent with request + + + + + Timeout in milliseconds to be used for the request + + + + + System.Net.ICredentials to be sent with request + + + + + The System.Net.CookieContainer to be used for the request + + + + + Collection of files to be sent with request + + + + + HTTP headers to be sent with request + + + + + HTTP parameters (QueryString or Form values) to be sent with request + + + + + HTTP cookies to be sent with request + + + + + Request body to be sent with request + + + + + Content type of the request body. + + + + + URL to call for this request + + + + + Representation of an HTTP cookie + + + + + Comment of the cookie + + + + + Comment of the cookie + + + + + Indicates whether the cookie should be discarded at the end of the session + + + + + Domain of the cookie + + + + + Indicates whether the cookie is expired + + + + + Date and time that the cookie expires + + + + + Indicates that this cookie should only be accessed by the server + + + + + Name of the cookie + + + + + Path of the cookie + + + + + Port of the cookie + + + + + Indicates that the cookie should only be sent over secure channels + + + + + Date and time the cookie was created + + + + + Value of the cookie + + + + + Version of the cookie + + + + + Container for HTTP file + + + + + The length of data to be sent + + + + + Provides raw data for file + + + + + Name of the file to use when uploading + + + + + MIME content type of file + + + + + Name of the parameter + + + + + Representation of an HTTP header + + + + + Name of the header + + + + + Value of the header + + + + + Representation of an HTTP parameter (QueryString or Form value) + + + + + Name of the parameter + + + + + Value of the parameter + + + + + HTTP response data + + + + + HTTP response data + + + + + MIME content type of response + + + + + Length in bytes of the response content + + + + + Encoding of the response content + + + + + String representation of response content + + + + + HTTP response status code + + + + + Description of HTTP status returned + + + + + Response content + + + + + The URL that actually responded to the content (different from request if redirected) + + + + + HttpWebResponse.Server + + + + + Headers returned by server with the response + + + + + Cookies returned by server with the response + + + + + Status of the request. Will return Error for transport errors. + HTTP errors will still return ResponseStatus.Completed, check StatusCode instead + + + + + Transport or other non-HTTP error generated while attempting request + + + + + Exception thrown when error is encountered. + + + + + Default constructor + + + + + MIME content type of response + + + + + Length in bytes of the response content + + + + + Encoding of the response content + + + + + Lazy-loaded string representation of response content + + + + + HTTP response status code + + + + + Description of HTTP status returned + + + + + Response content + + + + + The URL that actually responded to the content (different from request if redirected) + + + + + HttpWebResponse.Server + + + + + Headers returned by server with the response + + + + + Cookies returned by server with the response + + + + + Status of the request. Will return Error for transport errors. + HTTP errors will still return ResponseStatus.Completed, check StatusCode instead + + + + + Transport or other non-HTTP error generated while attempting request + + + + + Exception thrown when error is encountered. + + + + + + + + + + + + + + + + + + + + + + Executes a GET-style request and callback asynchronously, authenticating if needed + + Request to be executed + Callback function to be executed upon completion providing access to the async handle. + The HTTP method to execute + + + + Executes a POST-style request and callback asynchronously, authenticating if needed + + Request to be executed + Callback function to be executed upon completion providing access to the async handle. + The HTTP method to execute + + + + Executes a GET-style request and callback asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + Callback function to be executed upon completion + The HTTP method to execute + + + + Executes a GET-style request and callback asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + Callback function to be executed upon completion + The HTTP method to execute + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Serializes obj to format specified by RequestFormat, but passes xmlNamespace if using the default XmlSerializer + + The object to serialize + The XML namespace to use when serializing + This request + + + + Serializes obj to data format specified by RequestFormat and adds it to the request body. + + The object to serialize + This request + + + + Calls AddParameter() for all public, readable properties specified in the white list + + + request.AddObject(product, "ProductId", "Price", ...); + + The object with properties to add as parameters + The names of the properties to include + This request + + + + Calls AddParameter() for all public, readable properties of obj + + The object with properties to add as parameters + This request + + + + Add the parameter to the request + + Parameter to add + + + + + Adds a HTTP parameter to the request (QueryString for GET, DELETE, OPTIONS and HEAD; Encoded form for POST and PUT) + + Name of the parameter + Value of the parameter + This request + + + + Adds a parameter to the request. There are five types of parameters: + - GetOrPost: Either a QueryString value or encoded form value based on method + - HttpHeader: Adds the name/value pair to the HTTP request's Headers collection + - UrlSegment: Inserted into URL if there is a matching url token e.g. {AccountId} + - Cookie: Adds the name/value pair to the HTTP request's Cookies collection + - RequestBody: Used by AddBody() (not recommended to use directly) + + Name of the parameter + Value of the parameter + The type of parameter to add + This request + + + + Shortcut to AddParameter(name, value, HttpHeader) overload + + Name of the header to add + Value of the header to add + + + + + Shortcut to AddParameter(name, value, Cookie) overload + + Name of the cookie to add + Value of the cookie to add + + + + + Shortcut to AddParameter(name, value, UrlSegment) overload + + Name of the segment to add + Value of the segment to add + + + + + Serializer to use when writing JSON request bodies. Used if RequestFormat is Json. + By default the included JsonSerializer is used (currently using JSON.NET default serialization). + + + + + Serializer to use when writing XML request bodies. Used if RequestFormat is Xml. + By default the included XmlSerializer is used. + + + + + Container of all HTTP parameters to be passed with the request. + See AddParameter() for explanation of the types of parameters that can be passed + + + + + Container of all the files to be uploaded with the request. + + + + + Determines what HTTP method to use for this request. Supported methods: GET, POST, PUT, DELETE, HEAD, OPTIONS + Default is GET + + + + + The Resource URL to make the request against. + Tokens are substituted with UrlSegment parameters and match by name. + Should not include the scheme or domain. Do not include leading slash. + Combined with RestClient.BaseUrl to assemble final URL: + {BaseUrl}/{Resource} (BaseUrl is scheme + domain, e.g. http://example.com) + + + // example for url token replacement + request.Resource = "Products/{ProductId}"; + request.AddParameter("ProductId", 123, ParameterType.UrlSegment); + + + + + Serializer to use when writing XML request bodies. Used if RequestFormat is Xml. + By default XmlSerializer is used. + + + + + Used by the default deserializers to determine where to start deserializing from. + Can be used to skip container or root elements that do not have corresponding deserialzation targets. + + + + + Used by the default deserializers to explicitly set which date format string to use when parsing dates. + + + + + Used by XmlDeserializer. If not specified, XmlDeserializer will flatten response by removing namespaces from element names. + + + + + In general you would not need to set this directly. Used by the NtlmAuthenticator. + + + + + Timeout in milliseconds to be used for the request. This timeout value overrides a timeout set on the RestClient. + + + + + How many attempts were made to send this Request? + + + This Number is incremented each time the RestClient sends the request. + Useful when using Asynchronous Execution with Callbacks + + + + + Container for data sent back from API + + + + + The RestRequest that was made to get this RestResponse + + + Mainly for debugging if ResponseStatus is not OK + + + + + MIME content type of response + + + + + Length in bytes of the response content + + + + + Encoding of the response content + + + + + String representation of response content + + + + + HTTP response status code + + + + + Description of HTTP status returned + + + + + Response content + + + + + The URL that actually responded to the content (different from request if redirected) + + + + + HttpWebResponse.Server + + + + + Cookies returned by server with the response + + + + + Headers returned by server with the response + + + + + Status of the request. Will return Error for transport errors. + HTTP errors will still return ResponseStatus.Completed, check StatusCode instead + + + + + Transport or other non-HTTP error generated while attempting request + + + + + The exception thrown during the request, if any + + + + + Container for data sent back from API including deserialized data + + Type of data to deserialize to + + + + Deserialized entity data + + + + + Parameter container for REST requests + + + + + Return a human-readable representation of this parameter + + String + + + + Name of the parameter + + + + + Value of the parameter + + + + + Type of the parameter + + + + + Client to translate RestRequests into Http requests and process response result + + + + + Executes the request and callback asynchronously, authenticating if needed + + Request to be executed + Callback function to be executed upon completion providing access to the async handle. + + + + Executes a GET-style request and callback asynchronously, authenticating if needed + + Request to be executed + Callback function to be executed upon completion providing access to the async handle. + The HTTP method to execute + + + + Executes a POST-style request and callback asynchronously, authenticating if needed + + Request to be executed + Callback function to be executed upon completion providing access to the async handle. + The HTTP method to execute + + + + Executes the request and callback asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + Callback function to be executed upon completion + + + + Executes a GET-style request and callback asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + Callback function to be executed upon completion + The HTTP method to execute + + + + Executes a POST-style request and callback asynchronously, authenticating if needed + + Target deserialization type + Request to be executed + Callback function to be executed upon completion + The HTTP method to execute + + + + Default constructor that registers default content handlers + + + + + Sets the BaseUrl property for requests made by this client instance + + + + + + Registers a content handler to process response content + + MIME content type of the response content + Deserializer to use to process content + + + + Remove a content handler for the specified MIME content type + + MIME content type to remove + + + + Remove all content handlers + + + + + Retrieve the handler for the specified MIME content type + + MIME content type to retrieve + IDeserializer instance + + + + Assembles URL to call based on parameters, method and resource + + RestRequest to execute + Assembled System.Uri + + + + Parameters included with every request made with this instance of RestClient + If specified in both client and request, the request wins + + + + + Maximum number of redirects to follow if FollowRedirects is true + + + + + Default is true. Determine whether or not requests that result in + HTTP status codes of 3xx should follow returned redirect + + + + + The CookieContainer used for requests made by this client instance + + + + + UserAgent to use for requests made by this client instance + + + + + Timeout in milliseconds to use for requests made by this client instance + + + + + Whether to invoke async callbacks using the SynchronizationContext.Current captured when invoked + + + + + Authenticator to use for requests made by this client instance + + + + + Combined with Request.Resource to construct URL for request + Should include scheme and domain without trailing slash. + + + client.BaseUrl = "http://example.com"; + + + + + Executes the request and callback asynchronously, authenticating if needed + + The IRestClient this method extends + Request to be executed + Callback function to be executed upon completion + + + + Executes the request and callback asynchronously, authenticating if needed + + The IRestClient this method extends + Target deserialization type + Request to be executed + Callback function to be executed upon completion providing access to the async handle + + + + Add a parameter to use on every request made with this client instance + + The IRestClient instance + Parameter to add + + + + + Adds a HTTP parameter (QueryString for GET, DELETE, OPTIONS and HEAD; Encoded form for POST and PUT) + Used on every request made by this client instance + + The IRestClient instance + Name of the parameter + Value of the parameter + This request + + + + Adds a parameter to the request. There are four types of parameters: + - GetOrPost: Either a QueryString value or encoded form value based on method + - HttpHeader: Adds the name/value pair to the HTTP request's Headers collection + - UrlSegment: Inserted into URL if there is a matching url token e.g. {AccountId} + - RequestBody: Used by AddBody() (not recommended to use directly) + + The IRestClient instance + Name of the parameter + Value of the parameter + The type of parameter to add + This request + + + + Shortcut to AddDefaultParameter(name, value, HttpHeader) overload + + The IRestClient instance + Name of the header to add + Value of the header to add + + + + + Shortcut to AddDefaultParameter(name, value, UrlSegment) overload + + The IRestClient instance + Name of the segment to add + Value of the segment to add + + + + + Container for data used to make requests + + + + + Default constructor + + + + + Sets Method property to value of method + + Method to use for this request + + + + Sets Resource property + + Resource to use for this request + + + + Sets Resource and Method properties + + Resource to use for this request + Method to use for this request + + + + Sets Resource property + + Resource to use for this request + + + + Sets Resource and Method properties + + Resource to use for this request + Method to use for this request + + + + Adds a file to the Files collection to be included with a POST or PUT request + (other methods do not support file uploads). + + The parameter name to use in the request + Full path to file to upload + This request + + + + Adds the bytes to the Files collection with the specified file name + + The parameter name to use in the request + The file data + The file name to use for the uploaded file + This request + + + + Adds the bytes to the Files collection with the specified file name and content type + + The parameter name to use in the request + The file data + The file name to use for the uploaded file + The MIME type of the file to upload + This request + + + + Adds the bytes to the Files collection with the specified file name and content type + + The parameter name to use in the request + A function that writes directly to the stream. Should NOT close the stream. + The file name to use for the uploaded file + This request + + + + Adds the bytes to the Files collection with the specified file name and content type + + The parameter name to use in the request + A function that writes directly to the stream. Should NOT close the stream. + The file name to use for the uploaded file + The MIME type of the file to upload + This request + + + + Serializes obj to format specified by RequestFormat, but passes xmlNamespace if using the default XmlSerializer + + The object to serialize + The XML namespace to use when serializing + This request + + + + Serializes obj to data format specified by RequestFormat and adds it to the request body. + + The object to serialize + This request + + + + Calls AddParameter() for all public, readable properties specified in the white list + + + request.AddObject(product, "ProductId", "Price", ...); + + The object with properties to add as parameters + The names of the properties to include + This request + + + + Calls AddParameter() for all public, readable properties of obj + + The object with properties to add as parameters + This request + + + + Add the parameter to the request + + Parameter to add + + + + + Adds a HTTP parameter to the request (QueryString for GET, DELETE, OPTIONS and HEAD; Encoded form for POST and PUT) + + Name of the parameter + Value of the parameter + This request + + + + Adds a parameter to the request. There are four types of parameters: + - GetOrPost: Either a QueryString value or encoded form value based on method + - HttpHeader: Adds the name/value pair to the HTTP request's Headers collection + - UrlSegment: Inserted into URL if there is a matching url token e.g. {AccountId} + - RequestBody: Used by AddBody() (not recommended to use directly) + + Name of the parameter + Value of the parameter + The type of parameter to add + This request + + + + Shortcut to AddParameter(name, value, HttpHeader) overload + + Name of the header to add + Value of the header to add + + + + + Shortcut to AddParameter(name, value, Cookie) overload + + Name of the cookie to add + Value of the cookie to add + + + + + Shortcut to AddParameter(name, value, UrlSegment) overload + + Name of the segment to add + Value of the segment to add + + + + + Internal Method so that RestClient can increase the number of attempts + + + + + Serializer to use when writing JSON request bodies. Used if RequestFormat is Json. + By default the included JsonSerializer is used (currently using JSON.NET default serialization). + + + + + Serializer to use when writing XML request bodies. Used if RequestFormat is Xml. + By default the included XmlSerializer is used. + + + + + Container of all HTTP parameters to be passed with the request. + See AddParameter() for explanation of the types of parameters that can be passed + + + + + Container of all the files to be uploaded with the request. + + + + + Determines what HTTP method to use for this request. Supported methods: GET, POST, PUT, DELETE, HEAD, OPTIONS + Default is GET + + + + + The Resource URL to make the request against. + Tokens are substituted with UrlSegment parameters and match by name. + Should not include the scheme or domain. Do not include leading slash. + Combined with RestClient.BaseUrl to assemble final URL: + {BaseUrl}/{Resource} (BaseUrl is scheme + domain, e.g. http://example.com) + + + // example for url token replacement + request.Resource = "Products/{ProductId}"; + request.AddParameter("ProductId", 123, ParameterType.UrlSegment); + + + + + Serializer to use when writing XML request bodies. Used if RequestFormat is Xml. + By default XmlSerializer is used. + + + + + Used by the default deserializers to determine where to start deserializing from. + Can be used to skip container or root elements that do not have corresponding deserialzation targets. + + + + + A function to run prior to deserializing starting (e.g. change settings if error encountered) + + + + + Used by the default deserializers to explicitly set which date format string to use when parsing dates. + + + + + Used by XmlDeserializer. If not specified, XmlDeserializer will flatten response by removing namespaces from element names. + + + + + In general you would not need to set this directly. Used by the NtlmAuthenticator. + + + + + Gets or sets a user-defined state object that contains information about a request and which can be later + retrieved when the request completes. + + + + + Timeout in milliseconds to be used for the request. This timeout value overrides a timeout set on the RestClient. + + + + + How many attempts were made to send this Request? + + + This Number is incremented each time the RestClient sends the request. + Useful when using Asynchronous Execution with Callbacks + + + + + Base class for common properties shared by RestResponse and RestResponse[[T]] + + + + + Default constructor + + + + + The RestRequest that was made to get this RestResponse + + + Mainly for debugging if ResponseStatus is not OK + + + + + MIME content type of response + + + + + Length in bytes of the response content + + + + + Encoding of the response content + + + + + String representation of response content + + + + + HTTP response status code + + + + + Description of HTTP status returned + + + + + Response content + + + + + The URL that actually responded to the content (different from request if redirected) + + + + + HttpWebResponse.Server + + + + + Cookies returned by server with the response + + + + + Headers returned by server with the response + + + + + Status of the request. Will return Error for transport errors. + HTTP errors will still return ResponseStatus.Completed, check StatusCode instead + + + + + Transport or other non-HTTP error generated while attempting request + + + + + The exception thrown during the request, if any + + + + + Container for data sent back from API including deserialized data + + Type of data to deserialize to + + + + Deserialized entity data + + + + + Container for data sent back from API + + + + + Wrapper for System.Xml.Serialization.XmlSerializer. + + + + + Default constructor, does not specify namespace + + + + + Specify the namespaced to be used when serializing + + XML namespace + + + + Serialize the object as XML + + Object to serialize + XML as string + + + + Name of the root element to use when serializing + + + + + XML namespace to use when serializing + + + + + Format string to use when serializing dates + + + + + Content type for serialized content + + + + + Encoding for serialized content + + + + + Need to subclass StringWriter in order to override Encoding + + + + + Default JSON serializer for request bodies + Doesn't currently use the SerializeAs attribute, defers to Newtonsoft's attributes + + + + + Default serializer + + + + + Serialize the object as JSON + + Object to serialize + JSON as String + + + + Unused for JSON Serialization + + + + + Unused for JSON Serialization + + + + + Unused for JSON Serialization + + + + + Content type for serialized content + + + + + Allows control how class and property names and values are serialized by XmlSerializer + Currently not supported with the JsonSerializer + When specified at the property level the class-level specification is overridden + + + + + Called by the attribute when NameStyle is speficied + + The string to transform + String + + + + The name to use for the serialized element + + + + + Sets the value to be serialized as an Attribute instead of an Element + + + + + The culture to use when serializing + + + + + Transforms the casing of the name based on the selected value. + + + + + The order to serialize the element. Default is int.MaxValue. + + + + + Options for transforming casing of element names + + + + + Default XML Serializer + + + + + Default constructor, does not specify namespace + + + + + Specify the namespaced to be used when serializing + + XML namespace + + + + Serialize the object as XML + + Object to serialize + XML as string + + + + Name of the root element to use when serializing + + + + + XML namespace to use when serializing + + + + + Format string to use when serializing dates + + + + + Content type for serialized content + + + + + Represents the json array. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + The capacity of the json array. + + + + The json representation of the array. + + The json representation of the array. + + + + Represents the json object. + + + + + The internal member dictionary. + + + + + Adds the specified key. + + The key. + The value. + + + + Determines whether the specified key contains key. + + The key. + + true if the specified key contains key; otherwise, false. + + + + + Removes the specified key. + + The key. + + + + + Tries the get value. + + The key. + The value. + + + + + Adds the specified item. + + The item. + + + + Clears this instance. + + + + + Determines whether [contains] [the specified item]. + + The item. + + true if [contains] [the specified item]; otherwise, false. + + + + + Copies to. + + The array. + Index of the array. + + + + Removes the specified item. + + The item. + + + + + Gets the enumerator. + + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Returns a json that represents the current . + + + A json that represents the current . + + + + + Gets the at the specified index. + + + + + + Gets the keys. + + The keys. + + + + Gets the values. + + The values. + + + + Gets or sets the with the specified key. + + + + + + Gets the count. + + The count. + + + + Gets a value indicating whether this instance is read only. + + + true if this instance is read only; otherwise, false. + + + + + This class encodes and decodes JSON strings. + Spec. details, see http://www.json.org/ + + JSON uses Arrays and Objects. These correspond here to the datatypes JsonArray(IList<object>) and JsonObject(IDictionary<string,object>). + All numbers are parsed to doubles. + + + + + Parses the string json into a value + + A JSON string. + An IList<object>, a IDictionary<string,object>, a double, a string, null, true, or false + + + + Try parsing the json string into a value. + + + A JSON string. + + + The object. + + + Returns true if successfull otherwise false. + + + + + Converts a IDictionary<string,object> / IList<object> object into a JSON string + + A IDictionary<string,object> / IList<object> + Serializer strategy to use + A JSON encoded string, or null if object 'json' is not serializable + + + + Determines if a given object is numeric in any way + (can be integer, double, null, etc). + + + + + Helper methods for validating required values + + + + + Require a parameter to not be null + + Name of the parameter + Value of the parameter + + + + Helper methods for validating values + + + + + Validate an integer value is between the specified values (exclusive of min/max) + + Value to validate + Exclusive minimum value + Exclusive maximum value + + + + Validate a string length + + String to be validated + Maximum length of the string + + + + Comment of the cookie + + + + + Comment of the cookie + + + + + Indicates whether the cookie should be discarded at the end of the session + + + + + Domain of the cookie + + + + + Indicates whether the cookie is expired + + + + + Date and time that the cookie expires + + + + + Indicates that this cookie should only be accessed by the server + + + + + Name of the cookie + + + + + Path of the cookie + + + + + Port of the cookie + + + + + Indicates that the cookie should only be sent over secure channels + + + + + Date and time the cookie was created + + + + + Value of the cookie + + + + + Version of the cookie + + + + diff --git a/packages/RestSharp.104.1/readme.txt b/packages/RestSharp.104.1/readme.txt new file mode 100644 index 0000000..dca2fa6 --- /dev/null +++ b/packages/RestSharp.104.1/readme.txt @@ -0,0 +1,19 @@ +*** IMPORTANT CHANGE IN RESTSHARP VERSION 103 *** + +In 103.0, JSON.NET was removed as a dependency. + +If this is still installed in your project and no other libraries depend on +it you may remove it from your installed packages. + +There is one breaking change: the default Json*Serializer* is no longer +compatible with Json.NET. To use Json.NET for serialization, copy the code +from https://github.com/restsharp/RestSharp/blob/86b31f9adf049d7fb821de8279154f41a17b36f7/RestSharp/Serializers/JsonSerializer.cs +and register it with your client: + +var client = new RestClient(); +client.JsonSerializer = new YourCustomSerializer(); + +The default Json*Deserializer* should be 100% compatible. + +If you run into any compatibility issues with deserialization, +please report it to http://groups.google.com/group/restsharp \ No newline at end of file diff --git a/packages/repositories.config b/packages/repositories.config index 47f002d..4e4e1f5 100644 --- a/packages/repositories.config +++ b/packages/repositories.config @@ -5,8 +5,12 @@ + + + + \ No newline at end of file diff --git a/sync.bat b/sync.bat new file mode 100644 index 0000000..b36b536 --- /dev/null +++ b/sync.bat @@ -0,0 +1,6 @@ +:: follow the instruction here to create a link to the upstream repository +:: https://help.github.com/articles/syncing-a-fork +:: then this batch will sync with upstream +git fetch upstream +git checkout 1.3.0.x +git merge upstream/1.3.0.x