sensible-cinema 0.27.0 → 0.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. data/TODO +0 -1
  2. data/VERSION +1 -1
  3. data/change_log_with_feature_list.txt +17 -0
  4. data/vendor/movie-content-editor-read-only/.metadata/.lock +0 -0
  5. data/vendor/movie-content-editor-read-only/.metadata/.mylyn/.tasks.xml.zip +0 -0
  6. data/vendor/movie-content-editor-read-only/.metadata/.mylyn/repositories.xml.zip +0 -0
  7. data/vendor/movie-content-editor-read-only/.metadata/.mylyn/tasks.xml.zip +0 -0
  8. data/vendor/movie-content-editor-read-only/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/history.version +1 -0
  9. data/vendor/movie-content-editor-read-only/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.index +0 -0
  10. data/vendor/movie-content-editor-read-only/.metadata/.plugins/org.eclipse.core.resources/.root/.indexes/properties.version +1 -0
  11. data/vendor/movie-content-editor-read-only/.metadata/.plugins/org.eclipse.core.resources/.root/2.tree +0 -0
  12. data/vendor/movie-content-editor-read-only/.metadata/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources +0 -0
  13. data/vendor/movie-content-editor-read-only/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.core.resources.prefs +3 -0
  14. data/vendor/movie-content-editor-read-only/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs +14 -0
  15. data/vendor/movie-content-editor-read-only/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.context.core.prefs +3 -0
  16. data/vendor/movie-content-editor-read-only/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs +5 -0
  17. data/vendor/movie-content-editor-read-only/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.prefs +3 -0
  18. data/vendor/movie-content-editor-read-only/.metadata/.plugins/org.eclipse.jdt.core/nonChainingJarsCache +0 -0
  19. data/vendor/movie-content-editor-read-only/.metadata/.plugins/org.eclipse.jdt.core/variablesAndContainers.dat +0 -0
  20. data/vendor/movie-content-editor-read-only/.metadata/.plugins/org.eclipse.jdt.ui/OpenTypeHistory.xml +2 -0
  21. data/vendor/movie-content-editor-read-only/.metadata/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml +2 -0
  22. data/vendor/movie-content-editor-read-only/.metadata/.plugins/org.eclipse.jdt.ui/dialog_settings.xml +10 -0
  23. data/vendor/movie-content-editor-read-only/.metadata/.plugins/org.eclipse.ui.ide/dialog_settings.xml +11 -0
  24. data/vendor/movie-content-editor-read-only/.metadata/.plugins/org.eclipse.ui.intro/dialog_settings.xml +4 -0
  25. data/vendor/movie-content-editor-read-only/.metadata/.plugins/org.eclipse.ui.workbench/dialog_settings.xml +10 -0
  26. data/vendor/movie-content-editor-read-only/.metadata/.plugins/org.eclipse.ui.workbench/workbench.xml +232 -0
  27. data/vendor/movie-content-editor-read-only/.metadata/.plugins/org.eclipse.ui.workbench/workingsets.xml +4 -0
  28. data/vendor/movie-content-editor-read-only/.metadata/version.ini +1 -0
  29. data/vendor/movie-content-editor-read-only/.project +17 -0
  30. data/vendor/movie-content-editor-read-only/.pydevproject +11 -0
  31. data/vendor/movie-content-editor-read-only/.settings/org.eclipse.core.resources.prefs +6 -0
  32. data/vendor/movie-content-editor-read-only/SubIt.py +171 -0
  33. data/vendor/movie-content-editor-read-only/VLCMacVideo.py +257 -0
  34. data/vendor/movie-content-editor-read-only/VideoMac.ui +102 -0
  35. data/vendor/movie-content-editor-read-only/badwords.txt +4 -0
  36. data/vendor/movie-content-editor-read-only/blank.srt +4 -0
  37. data/vendor/movie-content-editor-read-only/edit.py +197 -0
  38. data/vendor/movie-content-editor-read-only/mergeCommands.py +73 -0
  39. data/vendor/movie-content-editor-read-only/mute.txt +5 -0
  40. data/vendor/movie-content-editor-read-only/panda.srt +4235 -0
  41. data/vendor/movie-content-editor-read-only/panda_custom.txt +3 -0
  42. data/vendor/movie-content-editor-read-only/panda_edit.srt +4235 -0
  43. data/vendor/movie-content-editor-read-only/subtitle.py +90 -0
  44. data/vendor/movie-content-editor-read-only/vlc.py +5579 -0
  45. data/vendor/movie-content-editor-read-only/vlcwidget.py +154 -0
  46. metadata +43 -7
  47. data/legal/control_youtube.html +0 -135
  48. data/legal/md5s.txt +0 -53
  49. data/legal/play_with_inserted_scene.bat +0 -8
  50. data/legal/play_with_overlay.bat +0 -24
  51. data/legal/serve.rb +0 -6
  52. data/legal/transcript_mute_vlc.txt +0 -117
data/TODO CHANGED
@@ -40,7 +40,6 @@
40
40
  after get DVD down
41
41
  C player feedback message
42
42
  nextsprocket...
43
- releases that include Debug, python too :)
44
43
 
45
44
  == yes do, un-ordered currently, from the various future release options ==
46
45
  todo.upconvert
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.27.0
1
+ 0.28.0
@@ -1,3 +1,20 @@
1
+ == 0.28.0 ==
2
+
3
+ Includes vendored support (experimental) for EDL playback via VLC via its internal libVLC control API
4
+ includes parsing of srt files to detect subtitle profanity time, merging
5
+ of EDL with other EDL, subtitle preferences, etc.
6
+ And a GUI for editing etc.
7
+ pulled from http://code.google.com/p/movie-content-editor, has its own license/owner/responsibility.
8
+ "VLC is a free and open source cross-platform multimedia player and framework that plays most multimedia files as well as
9
+ DVD, Audio CD, VCD, and various streaming protocols."
10
+ So I suppose you can say we merge/join with that and its playback/scripting/EDL playback ability now.
11
+ Also had the idea of applying edit lists to streaming content like media/audio
12
+ (ex: OCR iTunes to mute etc., possibly automatically detecting playback content via strings, OCR, or being
13
+ able to specify it play file x at time y, etc., as one can do with VLC).
14
+ Also note that VLC can playback from a playlist to mix different types of media (audio/video, differing sources, etc.).
15
+ VLC also contains several other side-projects too, so I suppose you can say our code mixes well with theirs for
16
+ those as well. This may also bind us to a license as well, I'm not sure.
17
+
1
18
  == 0.27.0 ==
2
19
 
3
20
  Added support for Microsoft DVD Player style playback codes.
@@ -0,0 +1,3 @@
1
+ #Tue Feb 16 00:01:02 EST 2010
2
+ version=1
3
+ eclipse.preferences.version=1
@@ -0,0 +1,14 @@
1
+ #Tue Feb 16 00:01:02 EST 2010
2
+ useQuickDiffPrefPage=true
3
+ proposalOrderMigrated=true
4
+ tabWidthPropagated=true
5
+ content_assist_proposals_background=255,255,255
6
+ org.eclipse.jdt.ui.javadoclocations.migrated=true
7
+ useAnnotationsPrefPage=true
8
+ org.eclipse.jface.textfont=1|Courier New|10.0|0|WINDOWS|1|0|0|0|0|0|0|0|0|1|0|0|0|0|Courier New;
9
+ org.eclipse.jdt.ui.editor.tab.width=
10
+ org.eclipse.jdt.ui.formatterprofiles.version=11
11
+ spelling_locale_initialized=true
12
+ eclipse.preferences.version=1
13
+ content_assist_proposals_foreground=0,0,0
14
+ fontPropagated=true
@@ -0,0 +1,3 @@
1
+ #Mon Feb 15 23:59:20 EST 2010
2
+ eclipse.preferences.version=1
3
+ mylyn.attention.migrated=true
@@ -0,0 +1,5 @@
1
+ #Tue Feb 16 00:01:02 EST 2010
2
+ eclipse.preferences.version=1
3
+ tipsAndTricks=true
4
+ platformState=1266290582025
5
+ PROBLEMS_FILTERS_MIGRATE=true
@@ -0,0 +1,3 @@
1
+ #Mon Feb 15 23:59:21 EST 2010
2
+ eclipse.preferences.version=1
3
+ showIntro=false
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <typeInfoHistroy/>
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <qualifiedTypeNameHistroy/>
@@ -0,0 +1,10 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <section name="Workbench">
3
+ <section name="org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart">
4
+ <item value="true" key="group_libraries"/>
5
+ <item value="false" key="linkWithEditor"/>
6
+ <item value="2" key="layout"/>
7
+ <item value="1" key="rootMode"/>
8
+ <item value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#x0D;&#x0A;&lt;packageExplorer group_libraries=&quot;1&quot; layout=&quot;2&quot; linkWithEditor=&quot;0&quot; rootMode=&quot;1&quot; workingSetName=&quot;Aggregate for window 1266296360001&quot;&gt;&#x0D;&#x0A;&lt;customFilters userDefinedPatternsEnabled=&quot;false&quot;&gt;&#x0D;&#x0A;&lt;xmlDefinedFilters&gt;&#x0D;&#x0A;&lt;child filterId=&quot;org.eclipse.jdt.ui.PackageExplorer.LibraryFilter&quot; isEnabled=&quot;false&quot;/&gt;&#x0D;&#x0A;&lt;child filterId=&quot;org.eclipse.jdt.ui.PackageExplorer.LocalTypesFilter&quot; isEnabled=&quot;false&quot;/&gt;&#x0D;&#x0A;&lt;child filterId=&quot;org.eclipse.jdt.ui.PackageExplorer.StaticsFilter&quot; isEnabled=&quot;false&quot;/&gt;&#x0D;&#x0A;&lt;child filterId=&quot;org.eclipse.pde.ui.ExternalPluginLibrariesFilter1&quot; isEnabled=&quot;true&quot;/&gt;&#x0D;&#x0A;&lt;child filterId=&quot;org.eclipse.jdt.ui.PackageExplorer.ClosedProjectsFilter&quot; isEnabled=&quot;false&quot;/&gt;&#x0D;&#x0A;&lt;child filterId=&quot;org.eclipse.jdt.ui.PackageExplorer.NonSharedProjectsFilter&quot; isEnabled=&quot;false&quot;/&gt;&#x0D;&#x0A;&lt;child filterId=&quot;org.eclipse.jdt.ui.PackageExplorer.NonJavaElementFilter&quot; isEnabled=&quot;false&quot;/&gt;&#x0D;&#x0A;&lt;child filterId=&quot;org.eclipse.jdt.ui.PackageExplorer.ContainedLibraryFilter&quot; isEnabled=&quot;false&quot;/&gt;&#x0D;&#x0A;&lt;child filterId=&quot;org.eclipse.jdt.ui.PackageExplorer.CuAndClassFileFilter&quot; isEnabled=&quot;false&quot;/&gt;&#x0D;&#x0A;&lt;child filterId=&quot;org.eclipse.jdt.ui.PackageExplorer.NonJavaProjectsFilter&quot; isEnabled=&quot;false&quot;/&gt;&#x0D;&#x0A;&lt;child filterId=&quot;org.eclipse.jdt.internal.ui.PackageExplorer.EmptyInnerPackageFilter&quot; isEnabled=&quot;true&quot;/&gt;&#x0D;&#x0A;&lt;child filterId=&quot;org.eclipse.jdt.ui.PackageExplorer.PackageDeclarationFilter&quot; isEnabled=&quot;true&quot;/&gt;&#x0D;&#x0A;&lt;child filterId=&quot;org.eclipse.jdt.internal.ui.PackageExplorer.EmptyPackageFilter&quot; isEnabled=&quot;false&quot;/&gt;&#x0D;&#x0A;&lt;child filterId=&quot;org.eclipse.jdt.ui.PackageExplorer.ImportDeclarationFilter&quot; isEnabled=&quot;true&quot;/&gt;&#x0D;&#x0A;&lt;child filterId=&quot;org.eclipse.jdt.ui.PackageExplorer.FieldsFilter&quot; isEnabled=&quot;false&quot;/&gt;&#x0D;&#x0A;&lt;child filterId=&quot;org.eclipse.jdt.internal.ui.PackageExplorer.HideInnerClassFilesFilter&quot; isEnabled=&quot;true&quot;/&gt;&#x0D;&#x0A;&lt;child filterId=&quot;org.eclipse.jdt.ui.PackageExplorer.NonPublicFilter&quot; isEnabled=&quot;false&quot;/&gt;&#x0D;&#x0A;&lt;child filterId=&quot;org.eclipse.jdt.ui.PackageExplorer_patternFilterId_.*&quot; isEnabled=&quot;true&quot;/&gt;&#x0D;&#x0A;&lt;child filterId=&quot;org.eclipse.jdt.ui.PackageExplorer.EmptyLibraryContainerFilter&quot; isEnabled=&quot;true&quot;/&gt;&#x0D;&#x0A;&lt;child filterId=&quot;org.eclipse.pde.ui.BinaryProjectFilter1&quot; isEnabled=&quot;false&quot;/&gt;&#x0D;&#x0A;&lt;child filterId=&quot;org.eclipse.jdt.ui.PackageExplorer.SyntheticMembersFilter&quot; isEnabled=&quot;true&quot;/&gt;&#x0D;&#x0A;&lt;/xmlDefinedFilters&gt;&#x0D;&#x0A;&lt;/customFilters&gt;&#x0D;&#x0A;&lt;/packageExplorer&gt;" key="memento"/>
9
+ </section>
10
+ </section>
@@ -0,0 +1,11 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <section name="Workbench">
3
+ <section name="ChooseWorkspaceDialogSettings">
4
+ <item value="193" key="DIALOG_Y_ORIGIN"/>
5
+ <item value="202" key="DIALOG_X_ORIGIN"/>
6
+ </section>
7
+ <section name="WORKBENCH_SETTINGS">
8
+ <list key="ENABLED_TRANSFERS">
9
+ </list>
10
+ </section>
11
+ </section>
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <section name="Workbench">
3
+ <item value="1024" key="introLaunchBar.location"/>
4
+ </section>
@@ -0,0 +1,10 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <section name="Workbench">
3
+ <section name="ShowViewDialog">
4
+ <item value="311" key="DIALOG_WIDTH"/>
5
+ <item value="88" key="DIALOG_Y_ORIGIN"/>
6
+ <item value="438" key="DIALOG_HEIGHT"/>
7
+ <item value="357" key="DIALOG_X_ORIGIN"/>
8
+ <item value="1|Segoe UI|9.0|0|WINDOWS|1|-12|0|0|0|400|0|0|0|1|0|0|0|0|Segoe UI" key="DIALOG_FONT_NAME"/>
9
+ </section>
10
+ </section>
@@ -0,0 +1,232 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <workbench progressCount="20" version="2.0">
3
+ <workbenchAdvisor/>
4
+ <window height="760" width="1024" x="175" y="0">
5
+ <fastViewData fastViewLocation="1024"/>
6
+ <perspectiveBar>
7
+ <itemSize x="160"/>
8
+ </perspectiveBar>
9
+ <coolbarLayout locked="0">
10
+ <coolItem id="group.file" itemType="typeGroupMarker"/>
11
+ <coolItem id="org.eclipse.ui.workbench.file" itemType="typeToolBarContribution" x="99" y="22"/>
12
+ <coolItem id="additions" itemType="typeGroupMarker"/>
13
+ <coolItem id="org.eclipse.debug.ui.launchActionSet" itemType="typeToolBarContribution" x="129" y="22"/>
14
+ <coolItem id="org.eclipse.jdt.ui.JavaElementCreationActionSet" itemType="typeToolBarContribution" x="99" y="22"/>
15
+ <coolItem id="org.eclipse.search.searchActionSet" itemType="typeToolBarContribution" x="99" y="22"/>
16
+ <coolItem id="group.nav" itemType="typeGroupMarker"/>
17
+ <coolItem id="org.eclipse.ui.workbench.navigate" itemType="typeToolBarContribution" x="190" y="22"/>
18
+ <coolItem id="group.editor" itemType="typeGroupMarker"/>
19
+ <coolItem id="group.help" itemType="typeGroupMarker"/>
20
+ <coolItem id="org.eclipse.ui.workbench.help" itemType="typeToolBarContribution" x="-1" y="-1"/>
21
+ </coolbarLayout>
22
+ <page aggregateWorkingSetId="Aggregate for window 1266296360001" focus="true" label="Workspace - Java">
23
+ <editors>
24
+ <editorArea activeWorkbook="DefaultEditorWorkbook">
25
+ <info part="DefaultEditorWorkbook">
26
+ <folder appearance="1" expanded="2">
27
+ <presentation id="org.eclipse.ui.presentations.WorkbenchPresentationFactory"/>
28
+ </folder>
29
+ </info>
30
+ </editorArea>
31
+ </editors>
32
+ <views>
33
+ <view id="org.eclipse.jdt.ui.TypeHierarchy" partName="Hierarchy"/>
34
+ <view id="org.eclipse.ui.views.ProblemView" partName="Problems">
35
+ <viewState PRIMARY_SORT_FIELD="org.eclipse.ui.ide.severityAndDescriptionField" categoryGroup="org.eclipse.ui.ide.severity" markerContentGenerator="org.eclipse.ui.ide.problemsGenerator" partName="Problems">
36
+ <columnWidths org.eclipse.ui.ide.locationField="64" org.eclipse.ui.ide.markerType="94" org.eclipse.ui.ide.pathField="124" org.eclipse.ui.ide.resourceField="94" org.eclipse.ui.ide.severityAndDescriptionField="300"/>
37
+ <visible IMemento.internal.id="org.eclipse.ui.ide.severityAndDescriptionField"/>
38
+ <visible IMemento.internal.id="org.eclipse.ui.ide.resourceField"/>
39
+ <visible IMemento.internal.id="org.eclipse.ui.ide.pathField"/>
40
+ <visible IMemento.internal.id="org.eclipse.ui.ide.locationField"/>
41
+ <visible IMemento.internal.id="org.eclipse.ui.ide.markerType"/>
42
+ </viewState>
43
+ </view>
44
+ <view id="org.eclipse.jdt.ui.PackageExplorer" partName="Package Explorer">
45
+ <viewState group_libraries="1" layout="2" linkWithEditor="0" rootMode="1" workingSetName="Aggregate for window 1266296360001">
46
+ <customFilters userDefinedPatternsEnabled="false">
47
+ <xmlDefinedFilters>
48
+ <child filterId="org.eclipse.jdt.ui.PackageExplorer.LibraryFilter" isEnabled="false"/>
49
+ <child filterId="org.eclipse.jdt.ui.PackageExplorer.LocalTypesFilter" isEnabled="false"/>
50
+ <child filterId="org.eclipse.jdt.ui.PackageExplorer.StaticsFilter" isEnabled="false"/>
51
+ <child filterId="org.eclipse.pde.ui.ExternalPluginLibrariesFilter1" isEnabled="true"/>
52
+ <child filterId="org.eclipse.jdt.ui.PackageExplorer.ClosedProjectsFilter" isEnabled="false"/>
53
+ <child filterId="org.eclipse.jdt.ui.PackageExplorer.NonSharedProjectsFilter" isEnabled="false"/>
54
+ <child filterId="org.eclipse.jdt.ui.PackageExplorer.NonJavaElementFilter" isEnabled="false"/>
55
+ <child filterId="org.eclipse.jdt.ui.PackageExplorer.ContainedLibraryFilter" isEnabled="false"/>
56
+ <child filterId="org.eclipse.jdt.ui.PackageExplorer.CuAndClassFileFilter" isEnabled="false"/>
57
+ <child filterId="org.eclipse.jdt.ui.PackageExplorer.NonJavaProjectsFilter" isEnabled="false"/>
58
+ <child filterId="org.eclipse.jdt.internal.ui.PackageExplorer.EmptyInnerPackageFilter" isEnabled="true"/>
59
+ <child filterId="org.eclipse.jdt.ui.PackageExplorer.PackageDeclarationFilter" isEnabled="true"/>
60
+ <child filterId="org.eclipse.jdt.internal.ui.PackageExplorer.EmptyPackageFilter" isEnabled="false"/>
61
+ <child filterId="org.eclipse.jdt.ui.PackageExplorer.ImportDeclarationFilter" isEnabled="true"/>
62
+ <child filterId="org.eclipse.jdt.ui.PackageExplorer.FieldsFilter" isEnabled="false"/>
63
+ <child filterId="org.eclipse.jdt.internal.ui.PackageExplorer.HideInnerClassFilesFilter" isEnabled="true"/>
64
+ <child filterId="org.eclipse.jdt.ui.PackageExplorer.NonPublicFilter" isEnabled="false"/>
65
+ <child filterId="org.eclipse.jdt.ui.PackageExplorer_patternFilterId_.*" isEnabled="true"/>
66
+ <child filterId="org.eclipse.jdt.ui.PackageExplorer.EmptyLibraryContainerFilter" isEnabled="true"/>
67
+ <child filterId="org.eclipse.pde.ui.BinaryProjectFilter1" isEnabled="false"/>
68
+ <child filterId="org.eclipse.jdt.ui.PackageExplorer.SyntheticMembersFilter" isEnabled="true"/>
69
+ </xmlDefinedFilters>
70
+ </customFilters>
71
+ </viewState>
72
+ </view>
73
+ <view id="org.eclipse.mylyn.tasks.ui.views.tasks" partName="Task List">
74
+ <viewState linkWithEditor="true" presentation="org.eclipse.mylyn.tasks.ui.categorized">
75
+ <sorter groupBy="CATEGORY_QUERY">
76
+ <sorter>
77
+ <sort0 sortDirection="1" sortKey="PRIORITY"/>
78
+ <sort1 sortDirection="1" sortKey="DATE_CREATED"/>
79
+ <sort2 sortDirection="1" sortKey="NONE"/>
80
+ <sort3 sortDirection="1" sortKey="NONE"/>
81
+ </sorter>
82
+ </sorter>
83
+ </viewState>
84
+ </view>
85
+ <view id="org.eclipse.ui.views.ContentOutline" partName="Outline">
86
+ <viewState/>
87
+ </view>
88
+ <view id="org.eclipse.jdt.ui.SourceView" partName="Declaration"/>
89
+ <view id="org.eclipse.jdt.ui.JavadocView" partName="Javadoc"/>
90
+ </views>
91
+ <perspectives activePart="org.eclipse.jdt.ui.PackageExplorer" activePerspective="org.eclipse.jdt.ui.JavaPerspective">
92
+ <perspective editorAreaTrimState="2" editorAreaVisible="1" fixed="0" version="0.016">
93
+ <descriptor class="org.eclipse.jdt.internal.ui.JavaPerspectiveFactory" id="org.eclipse.jdt.ui.JavaPerspective" label="Java"/>
94
+ <alwaysOnActionSet id="org.eclipse.ui.cheatsheets.actionSet"/>
95
+ <alwaysOnActionSet id="org.eclipse.search.searchActionSet"/>
96
+ <alwaysOnActionSet id="org.eclipse.ui.edit.text.actionSet.annotationNavigation"/>
97
+ <alwaysOnActionSet id="org.eclipse.ui.edit.text.actionSet.navigation"/>
98
+ <alwaysOnActionSet id="org.eclipse.ui.edit.text.actionSet.convertLineDelimitersTo"/>
99
+ <alwaysOnActionSet id="org.eclipse.ui.externaltools.ExternalToolsSet"/>
100
+ <alwaysOnActionSet id="org.eclipse.ui.actionSet.keyBindings"/>
101
+ <alwaysOnActionSet id="org.eclipse.ui.actionSet.openFiles"/>
102
+ <alwaysOnActionSet id="org.eclipse.mylyn.context.ui.actionSet"/>
103
+ <alwaysOnActionSet id="org.eclipse.mylyn.tasks.ui.navigation"/>
104
+ <alwaysOnActionSet id="org.eclipse.debug.ui.launchActionSet"/>
105
+ <alwaysOnActionSet id="org.eclipse.jdt.ui.JavaActionSet"/>
106
+ <alwaysOnActionSet id="org.eclipse.jdt.ui.JavaElementCreationActionSet"/>
107
+ <alwaysOnActionSet id="org.eclipse.ui.NavigateActionSet"/>
108
+ <alwaysOnActionSet id="org.eclipse.debug.ui.breakpointActionSet"/>
109
+ <alwaysOnActionSet id="org.eclipse.jdt.debug.ui.JDTDebugActionSet"/>
110
+ <alwaysOnActionSet id="org.eclipse.jdt.junit.JUnitActionSet"/>
111
+ <show_view_action id="org.eclipse.jdt.ui.PackageExplorer"/>
112
+ <show_view_action id="org.eclipse.jdt.ui.TypeHierarchy"/>
113
+ <show_view_action id="org.eclipse.jdt.ui.SourceView"/>
114
+ <show_view_action id="org.eclipse.jdt.ui.JavadocView"/>
115
+ <show_view_action id="org.eclipse.search.ui.views.SearchView"/>
116
+ <show_view_action id="org.eclipse.ui.console.ConsoleView"/>
117
+ <show_view_action id="org.eclipse.ui.views.ContentOutline"/>
118
+ <show_view_action id="org.eclipse.ui.views.ProblemView"/>
119
+ <show_view_action id="org.eclipse.ui.views.ResourceNavigator"/>
120
+ <show_view_action id="org.eclipse.ui.views.TaskList"/>
121
+ <show_view_action id="org.eclipse.ui.views.ProgressView"/>
122
+ <show_view_action id="org.eclipse.ui.navigator.ProjectExplorer"/>
123
+ <show_view_action id="org.eclipse.ui.texteditor.TemplatesView"/>
124
+ <show_view_action id="org.eclipse.ant.ui.views.AntView"/>
125
+ <show_view_action id="org.eclipse.pde.runtime.LogView"/>
126
+ <show_view_action id="org.eclipse.mylyn.tasks.ui.views.tasks"/>
127
+ <new_wizard_action id="org.eclipse.jdt.ui.wizards.JavaProjectWizard"/>
128
+ <new_wizard_action id="org.eclipse.jdt.ui.wizards.NewPackageCreationWizard"/>
129
+ <new_wizard_action id="org.eclipse.jdt.ui.wizards.NewClassCreationWizard"/>
130
+ <new_wizard_action id="org.eclipse.jdt.ui.wizards.NewInterfaceCreationWizard"/>
131
+ <new_wizard_action id="org.eclipse.jdt.ui.wizards.NewEnumCreationWizard"/>
132
+ <new_wizard_action id="org.eclipse.jdt.ui.wizards.NewAnnotationCreationWizard"/>
133
+ <new_wizard_action id="org.eclipse.jdt.ui.wizards.NewSourceFolderCreationWizard"/>
134
+ <new_wizard_action id="org.eclipse.jdt.ui.wizards.NewSnippetFileCreationWizard"/>
135
+ <new_wizard_action id="org.eclipse.jdt.ui.wizards.NewJavaWorkingSetWizard"/>
136
+ <new_wizard_action id="org.eclipse.ui.wizards.new.folder"/>
137
+ <new_wizard_action id="org.eclipse.ui.wizards.new.file"/>
138
+ <new_wizard_action id="org.eclipse.ui.editors.wizards.UntitledTextFileWizard"/>
139
+ <new_wizard_action id="org.eclipse.jdt.junit.wizards.NewTestCaseCreationWizard"/>
140
+ <new_wizard_action id="org.eclipse.mylyn.tasks.ui.wizards.new.repository.task"/>
141
+ <perspective_action id="org.eclipse.debug.ui.DebugPerspective"/>
142
+ <perspective_action id="org.eclipse.jdt.ui.JavaBrowsingPerspective"/>
143
+ <hide_toolbar_item_id id="org.eclipse.ui.edit.text.toggleShowSelectedElementOnly"/>
144
+ <view id="org.eclipse.jdt.ui.PackageExplorer"/>
145
+ <view id="org.eclipse.jdt.ui.TypeHierarchy"/>
146
+ <view id="org.eclipse.ui.views.ProblemView"/>
147
+ <view id="org.eclipse.jdt.ui.JavadocView"/>
148
+ <view id="org.eclipse.jdt.ui.SourceView"/>
149
+ <view id="org.eclipse.ui.views.ContentOutline"/>
150
+ <view id="org.eclipse.mylyn.tasks.ui.views.tasks"/>
151
+ <fastViewBars/>
152
+ <layout>
153
+ <mainWindow>
154
+ <info folder="true" part="left">
155
+ <folder activePageID="org.eclipse.jdt.ui.PackageExplorer" appearance="2" expanded="2">
156
+ <page content="org.eclipse.jdt.ui.PackageExplorer" label="Package Explorer"/>
157
+ <page content="org.eclipse.jdt.ui.TypeHierarchy" label="Hierarchy"/>
158
+ <page content="org.eclipse.ui.views.ResourceNavigator" label="LabelNotFound"/>
159
+ <page content="org.eclipse.ui.navigator.ProjectExplorer" label="LabelNotFound"/>
160
+ <page content="org.eclipse.jdt.junit.ResultView" label="LabelNotFound"/>
161
+ <presentation id="org.eclipse.ui.presentations.WorkbenchPresentationFactory">
162
+ <part id="0"/>
163
+ <part id="1"/>
164
+ </presentation>
165
+ </folder>
166
+ </info>
167
+ <info folder="true" part="org.eclipse.ui.internal.ViewStack@6489f0" ratio="0.75" ratioLeft="750" ratioRight="250" relationship="2" relative="left">
168
+ <folder appearance="2" expanded="2">
169
+ <page content="org.eclipse.help.ui.HelpView" label="LabelNotFound"/>
170
+ <page content="org.eclipse.ui.internal.introview" label="LabelNotFound"/>
171
+ <page content="org.eclipse.ui.cheatsheets.views.CheatSheetView" label="LabelNotFound"/>
172
+ <presentation id="org.eclipse.ui.presentations.WorkbenchPresentationFactory"/>
173
+ </folder>
174
+ </info>
175
+ <info part="org.eclipse.ui.editorss" ratio="0.25" ratioLeft="250" ratioRight="750" relationship="2" relative="left"/>
176
+ <info folder="true" part="bottom" ratio="0.74960876" ratioLeft="479" ratioRight="160" relationship="4" relative="org.eclipse.ui.editorss">
177
+ <folder activePageID="org.eclipse.ui.views.ProblemView" appearance="2" expanded="2">
178
+ <page content="org.eclipse.ui.views.ProblemView" label="Problems"/>
179
+ <page content="org.eclipse.jdt.ui.JavadocView" label="Javadoc"/>
180
+ <page content="org.eclipse.jdt.ui.SourceView" label="Declaration"/>
181
+ <page content="org.eclipse.search.ui.views.SearchView" label="LabelNotFound"/>
182
+ <page content="org.eclipse.ui.console.ConsoleView" label="LabelNotFound"/>
183
+ <page content="org.eclipse.ui.views.BookmarkView" label="LabelNotFound"/>
184
+ <page content="org.eclipse.ui.views.ProgressView" label="LabelNotFound"/>
185
+ <presentation id="org.eclipse.ui.presentations.WorkbenchPresentationFactory">
186
+ <part id="0"/>
187
+ <part id="1"/>
188
+ <part id="2"/>
189
+ </presentation>
190
+ </folder>
191
+ </info>
192
+ <info folder="true" part="org.eclipse.ui.internal.ViewStack@d5e270" ratio="0.7493333" ratioLeft="562" ratioRight="188" relationship="2" relative="org.eclipse.ui.editorss">
193
+ <folder activePageID="org.eclipse.mylyn.tasks.ui.views.tasks" appearance="2" expanded="2">
194
+ <page content="org.eclipse.mylyn.tasks.ui.views.tasks" label="Task List"/>
195
+ <presentation id="org.eclipse.ui.presentations.WorkbenchPresentationFactory">
196
+ <part id="0"/>
197
+ </presentation>
198
+ </folder>
199
+ </info>
200
+ <info folder="true" part="right" ratio="0.49895614" ratioLeft="239" ratioRight="240" relationship="4" relative="org.eclipse.ui.internal.ViewStack@d5e270">
201
+ <folder activePageID="org.eclipse.ui.views.ContentOutline" appearance="2" expanded="2">
202
+ <page content="org.eclipse.ui.views.ContentOutline" label="Outline"/>
203
+ <page content="org.eclipse.ui.texteditor.TemplatesView" label="LabelNotFound"/>
204
+ <page content="org.eclipse.ant.ui.views.AntView" label="LabelNotFound"/>
205
+ <presentation id="org.eclipse.ui.presentations.WorkbenchPresentationFactory">
206
+ <part id="0"/>
207
+ </presentation>
208
+ </folder>
209
+ </info>
210
+ </mainWindow>
211
+ </layout>
212
+ </perspective>
213
+ </perspectives>
214
+ <workingSets/>
215
+ <navigationHistory/>
216
+ <input factoryID="org.eclipse.ui.internal.model.ResourceFactory" path="/" type="8"/>
217
+ </page>
218
+ <workbenchWindowAdvisor/>
219
+ <actionBarAdvisor/>
220
+ <trimLayout>
221
+ <trimArea IMemento.internal.id="128">
222
+ <trimItem IMemento.internal.id="org.eclipse.ui.internal.WorkbenchWindow.topBar"/>
223
+ </trimArea>
224
+ <trimArea IMemento.internal.id="1024">
225
+ <trimItem IMemento.internal.id="org.eclise.ui.internal.FastViewBar"/>
226
+ <trimItem IMemento.internal.id="org.eclipse.jface.action.StatusLineManager"/>
227
+ <trimItem IMemento.internal.id="org.eclipse.ui.internal.progress.ProgressRegion"/>
228
+ </trimArea>
229
+ </trimLayout>
230
+ </window>
231
+ <mruList/>
232
+ </workbench>
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <workingSetManager>
3
+ <workingSet aggregate="true" factoryID="org.eclipse.ui.internal.WorkingSetFactory" id="1266296360003_0" label="Window Working Set" name="Aggregate for window 1266296360001"/>
4
+ </workingSetManager>
@@ -0,0 +1 @@
1
+ org.eclipse.core.runtime=1
@@ -0,0 +1,17 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <projectDescription>
3
+ <name>movie_editor</name>
4
+ <comment></comment>
5
+ <projects>
6
+ </projects>
7
+ <buildSpec>
8
+ <buildCommand>
9
+ <name>org.python.pydev.PyDevBuilder</name>
10
+ <arguments>
11
+ </arguments>
12
+ </buildCommand>
13
+ </buildSpec>
14
+ <natures>
15
+ <nature>org.python.pydev.pythonNature</nature>
16
+ </natures>
17
+ </projectDescription>
@@ -0,0 +1,11 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <?eclipse-pydev version="1.0"?>
3
+
4
+ <pydev_project>
5
+ <pydev_pathproperty name="org.python.pydev.PROJECT_SOURCE_PATH">
6
+ <path>/movie_editor/src</path>
7
+ <path>/movie_editor</path>
8
+ </pydev_pathproperty>
9
+ <pydev_property name="org.python.pydev.PYTHON_PROJECT_VERSION">python 2.6</pydev_property>
10
+ <pydev_property name="org.python.pydev.PYTHON_PROJECT_INTERPRETER">Default</pydev_property>
11
+ </pydev_project>
@@ -0,0 +1,6 @@
1
+ #Mon Feb 15 20:40:43 PST 2010
2
+ eclipse.preferences.version=1
3
+ encoding//subdownloader/FileManagement/Subtitle.py=utf-8
4
+ encoding//subdownloader/gui/main.py=utf-8
5
+ encoding//subdownloader/modules/subtitlefile.py=utf-8
6
+ encoding//subdownloader/run.py=utf-8
@@ -0,0 +1,171 @@
1
+ #Subit
2
+ # * Version 1.2
3
+ # * 2009-01-11
4
+ # * URL: http://www.homeofthehip.com
5
+ # * Description: Subtitle downloader.
6
+ # * Author: Magnus Dunker
7
+ # * Modified by: S. Andrew Ning
8
+ # * Copyright: Copyright (c) 2009 Magnus Dunker. Use it anyway you like
9
+ #
10
+ #@Parameters
11
+ # -f The name of the avi file or directory. If -f is not specified subit will look in the current directory.
12
+ # -l A comma delimitered string specifying the language of the subtitles in prioritied order.
13
+ #
14
+ #Usage: SubIt.py -f "M:\MyAvis" -l dan,eng
15
+
16
+ import time
17
+ from array import array
18
+ import struct
19
+ import os
20
+ import urllib
21
+ import sys
22
+
23
+ from zipfile import *
24
+ from xmlrpclib import ServerProxy, Error
25
+ from urllib2 import Request, urlopen, URLError, HTTPError
26
+ from optparse import OptionParser
27
+
28
+ server = ServerProxy("http://api.opensubtitles.org/xml-rpc")
29
+ token=""
30
+ def SubIt():
31
+ filename=""
32
+ lang=""
33
+ movieFound=False
34
+ parser = OptionParser()
35
+ parser.add_option("-f", help="name of the file or directory to get subtitles for. If omitted SubIt will look for .avi files in the current directory", dest="filename")
36
+ parser.add_option("-l", help="comma delimitered string with languages. eg dan,eng. If omitted the default will be english", dest="languages")
37
+
38
+ (options, args) = parser.parse_args()
39
+
40
+ if options.filename:
41
+ filename = options.filename
42
+ if options.languages:
43
+ lang=options.languages
44
+ else:
45
+ lang="eng"
46
+
47
+
48
+ if filename=="" or os.path.isdir(filename) == True:
49
+ if(os.path.isdir(filename) == True):
50
+ directory = filename
51
+ else:
52
+ directory=os.getcwd()
53
+ for root, dirs, files in os.walk(directory):
54
+ for fname in files:
55
+ extension = os.path.splitext( fname )[1]
56
+ if extension==".avi":
57
+ movieFound=True
58
+ FindSubtitles(root +"\\"+ fname,lang)
59
+
60
+ else:
61
+ FindSubtitles(filename,lang)
62
+ movieFound=True
63
+ if not movieFound:
64
+ print "No movies found in '"+os.getcwd()+"'"
65
+
66
+ raw_input("Done... press enter ")
67
+ def FindSubtitles(videoname,lang):
68
+ print "Contacting www.opensubtitles.org ("+videoname+")"
69
+ filename = os.path.dirname(videoname) + "\\" +os.path.splitext(os.path.basename(videoname))[0]+ ".srt"
70
+
71
+ langs=lang.split(",")
72
+
73
+ data=GetSubtitles(videoname);
74
+ found=False
75
+ if data:
76
+ for l in langs:
77
+ for item in data:
78
+ if item['SubLanguageID']== l and not found:
79
+ print "Found", item['LanguageName'], "subtitle ..."
80
+ zipname=Download(item['ZipDownloadLink'],item['SubFileName'])
81
+ print "Extracting subtitle ",filename
82
+ Unzip(zipname,filename)
83
+ os.remove(zipname)
84
+ found=True
85
+ else:
86
+ print "No Subtitles found"
87
+
88
+ def GetSubtitles(moviepath ):
89
+ #print server.LogIn("","","","SubIt")['status']
90
+ try:
91
+ token=server.LogIn("","","","SubIt")['token']
92
+ except:
93
+ print "opensubtitles.org server is not online at the moment. please try again later."
94
+ exit(1);
95
+
96
+ moviebytesize = os.path.getsize(moviepath)
97
+ hash=Compute(moviepath)
98
+ movieInfo = {'sublanguageid' : 'eng','moviehash' : hash, 'moviebytesize' : moviebytesize}
99
+ movies=[movieInfo]
100
+ data=server.SearchSubtitles(token,movies)['data']
101
+
102
+ # if the hash fails, try searching by title of movie (assuming file is named after its title)
103
+ if (data == False):
104
+ basename = os.path.basename(moviepath)
105
+ name = os.path.splitext(basename)[0]
106
+ print "Could not find by hash ..."
107
+ print "Searching by name: \"" + name + "\""
108
+ movieInfo = {'sublanguageid' : 'eng','query' : name}
109
+ movies=[movieInfo]
110
+ data=server.SearchSubtitles(token,movies)['data']
111
+
112
+ server.LogOut()
113
+
114
+ return data
115
+
116
+
117
+
118
+ def Compute(name):
119
+ try:
120
+ longlongformat = 'q' # long long
121
+ bytesize = struct.calcsize(longlongformat)
122
+ f = file(name, "rb")
123
+ filesize = os.path.getsize(name)
124
+ hash = filesize
125
+
126
+ if filesize < 65536 * 2:
127
+ return "SizeError"
128
+
129
+ for x in range(65536/bytesize):
130
+ buffer = f.read(bytesize)
131
+ (l_value,)= struct.unpack(longlongformat, buffer)
132
+ hash += l_value
133
+ hash = hash & 0xFFFFFFFFFFFFFFFF #to remain as 64bit number
134
+
135
+
136
+ f.seek(max(0,filesize-65536),0)
137
+ for x in range(65536/bytesize):
138
+ buffer = f.read(bytesize)
139
+ (l_value,)= struct.unpack(longlongformat, buffer)
140
+ hash += l_value
141
+ hash = hash & 0xFFFFFFFFFFFFFFFF
142
+
143
+ f.close()
144
+ returnedhash = "%016x" % hash
145
+ return returnedhash
146
+
147
+ except(IOError):
148
+ return "IOError"
149
+
150
+ def Unzip(zipname,unzipname):
151
+ z = ZipFile(zipname)
152
+ for filename in z.namelist():
153
+ if os.path.splitext(os.path.basename(filename))[1] == ".srt":
154
+ outfile = file(unzipname, "w")
155
+ outfile.write(z.read(filename))
156
+ outfile.close()
157
+
158
+ def Download(url,filename):
159
+ req = Request(url)
160
+ f = urlopen(req)
161
+ print "downloading " + url
162
+ # Open our local file for writing
163
+ local_file = open(filename+".zip", "w" + "b")
164
+ #Write to our local file
165
+ local_file.write(f.read())
166
+ local_file.close()
167
+ return filename+".zip"
168
+
169
+
170
+ SubIt()
171
+