sensible-cinema 0.13.0 → 0.13.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +3 -0
- data/TODO +16 -22
- data/VERSION +1 -1
- data/bin/sensible-cinema +3 -3
- metadata +48 -23
- data/bin/AboutDialog.class +0 -0
- data/bin/AboutDialog.java +0 -38
- data/bin/ComboBoxes$1.class +0 -0
- data/bin/ComboBoxes$2.class +0 -0
- data/bin/ComboBoxes.class +0 -0
- data/bin/ComboBoxes.java +0 -67
- data/bin/sensible-cinema-hit-reload-twice-then-save-copy-of-for-death +0 -105
data/Rakefile
CHANGED
@@ -9,6 +9,9 @@ Jeweler::Tasks.new do |s|
|
|
9
9
|
s.add_dependency 'sane', '>= 0.22.0'
|
10
10
|
s.add_dependency 'rdp-win32screenshot', '>= 0.0.7.3'
|
11
11
|
s.add_dependency 'mini_magick' # for ocr...
|
12
|
+
s.add_dependency 'jruby-win32ole'
|
13
|
+
s.add_dependency 'rdp-ruby-wmi'
|
14
|
+
s.add_dependency 'ffi'
|
12
15
|
s.add_development_dependency 'rspec' # prefer rspec 2 I guess...
|
13
16
|
s.add_development_dependency 'jeweler'
|
14
17
|
s.add_development_dependency 'rdp-rmagick'
|
data/TODO
CHANGED
@@ -4,43 +4,30 @@
|
|
4
4
|
|
5
5
|
== probably next up/low prio ==
|
6
6
|
|
7
|
+
better timing for the saving thing...
|
7
8
|
byu.tv descriptor
|
8
9
|
back off on mouse jerking if they're movin' it
|
9
|
-
screencast of things helpful (use, creation).
|
10
|
-
youtube non full screen: work with other browsers
|
11
10
|
speed up unit tests
|
12
11
|
a netflix player descriptor
|
13
12
|
"just choose VLCx55" LOL
|
14
13
|
beep at them when not tracking [?]
|
15
14
|
default on...hmm
|
16
|
-
easier "here's how on the command line, BTW"
|
17
15
|
|
18
16
|
== slightly lower than that ==
|
19
17
|
|
20
18
|
can parse IMDB (require they put in the URL by hand fer now)
|
21
19
|
add stuffs to imdb hmmm
|
20
|
+
screencast of things helpful (use, creation...).
|
22
21
|
can "overplay" (for VLC only on special computers for now :P)
|
22
|
+
youtube non full screen: work with other browsers
|
23
|
+
easier "here's how on the command line, BTW"
|
23
24
|
|
24
25
|
== random backlog ... note: just plow forward, to "grab" available ideas...except that for now, just what *I* plan on needing for myself (filters for what I need/want). ==
|
25
26
|
|
26
|
-
|
27
|
-
GUI to make that actually feasible
|
28
|
-
|
29
|
-
"ripperzy-ize"
|
30
|
-
can rip from DVD and then edit that
|
31
|
-
mplayer?
|
32
|
-
can rip from screen
|
33
|
-
windows 7 only for now (?)
|
34
|
-
VLC to rip?
|
35
|
-
raw? SSD? cpu? huh? (assume quality audio card, even with windows 7, fer now...these people can chip in a few bucks)
|
36
|
-
mencoder?
|
37
|
-
research this "record netflix" et al
|
38
|
-
and track it as ripping, I guess (time -> time...)
|
39
|
-
and then able to edit that...
|
40
|
-
remove commercials?
|
27
|
+
leaner gem (size-wise...) but I guess some ability to have a zip downloader...hmm...
|
41
28
|
|
42
|
-
|
43
|
-
|
29
|
+
GUI:
|
30
|
+
preferences for levels, etc.
|
44
31
|
|
45
32
|
blanker: allow for one side of the screen or another...
|
46
33
|
|
@@ -56,12 +43,19 @@ run it off a normal person (hulu, DVD). rinse and repeat
|
|
56
43
|
|
57
44
|
advertise on ruby flow
|
58
45
|
|
46
|
+
"ripperzy-ize"
|
47
|
+
can record from online [huh? do I even want this?]
|
48
|
+
maybe can record something, then extract the bad, and get a better looking video...
|
49
|
+
low prio
|
50
|
+
research this "record netflix" et al
|
51
|
+
and track it as ripping, I guess (time -> time...)
|
52
|
+
and then able to edit that...
|
53
|
+
remove commercials?
|
54
|
+
|
59
55
|
DRY up the levels--it's in the ocr spec as well as the others...
|
60
56
|
|
61
57
|
unit tests pass with normal ruby
|
62
58
|
|
63
|
-
add unit tests for each player for "make all players actually play again"
|
64
|
-
|
65
59
|
screen time change only detected... [unexpected] [rid myself of it]
|
66
60
|
|
67
61
|
the stabilization on seconds -> 00 -> minutes++: make optional [?]
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.13.
|
1
|
+
0.13.1
|
data/bin/sensible-cinema
CHANGED
@@ -42,11 +42,11 @@ module SensibleSwing
|
|
42
42
|
|
43
43
|
fc = JFileChooser.new
|
44
44
|
# LODO allow for spaces in save to file
|
45
|
-
fc.set_dialog_title "Pick a location to save
|
45
|
+
fc.set_dialog_title "Pick a location to save file to"
|
46
46
|
save_to_file_name = ((descriptors["title"] || "my dvd") + ' edited').gsub(' ', '_').gsub( /\W/, '') # no punctuation for now...
|
47
47
|
fc.setSelectedFile(JFile.new(get_drive_with_most_space + save_to_file_name))
|
48
48
|
save_to = fc.go
|
49
|
-
#
|
49
|
+
# LODO don't pop up those annoying windows
|
50
50
|
dvd_title_track = descriptors["dvd_title_track"]
|
51
51
|
bat_file = VLCProgrammer.convert_to_full_xspf(descriptors, save_to, drive)
|
52
52
|
temp_dir = Dir.tmpdir
|
@@ -108,7 +108,7 @@ module SensibleSwing
|
|
108
108
|
|
109
109
|
def get_drive_with_most_space
|
110
110
|
disks = WMI::Win32_LogicalDisk.find(:all)
|
111
|
-
out = disks.sort_by{|d| d.FreeSpace}[-1].Name + "\\"
|
111
|
+
out = disks.sort_by{|d| d.FreeSpace.to_i}[-1].Name + "\\"
|
112
112
|
out
|
113
113
|
end
|
114
114
|
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 13
|
8
|
-
-
|
9
|
-
version: 0.13.
|
8
|
+
- 1
|
9
|
+
version: 0.13.1
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Roger Pack
|
@@ -62,7 +62,7 @@ dependencies:
|
|
62
62
|
type: :runtime
|
63
63
|
version_requirements: *id003
|
64
64
|
- !ruby/object:Gem::Dependency
|
65
|
-
name:
|
65
|
+
name: jruby-win32ole
|
66
66
|
prerelease: false
|
67
67
|
requirement: &id004 !ruby/object:Gem::Requirement
|
68
68
|
none: false
|
@@ -72,10 +72,10 @@ dependencies:
|
|
72
72
|
segments:
|
73
73
|
- 0
|
74
74
|
version: "0"
|
75
|
-
type: :
|
75
|
+
type: :runtime
|
76
76
|
version_requirements: *id004
|
77
77
|
- !ruby/object:Gem::Dependency
|
78
|
-
name:
|
78
|
+
name: rdp-ruby-wmi
|
79
79
|
prerelease: false
|
80
80
|
requirement: &id005 !ruby/object:Gem::Requirement
|
81
81
|
none: false
|
@@ -85,10 +85,10 @@ dependencies:
|
|
85
85
|
segments:
|
86
86
|
- 0
|
87
87
|
version: "0"
|
88
|
-
type: :
|
88
|
+
type: :runtime
|
89
89
|
version_requirements: *id005
|
90
90
|
- !ruby/object:Gem::Dependency
|
91
|
-
name:
|
91
|
+
name: ffi
|
92
92
|
prerelease: false
|
93
93
|
requirement: &id006 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
@@ -98,10 +98,10 @@ dependencies:
|
|
98
98
|
segments:
|
99
99
|
- 0
|
100
100
|
version: "0"
|
101
|
-
type: :
|
101
|
+
type: :runtime
|
102
102
|
version_requirements: *id006
|
103
103
|
- !ruby/object:Gem::Dependency
|
104
|
-
name:
|
104
|
+
name: rspec
|
105
105
|
prerelease: false
|
106
106
|
requirement: &id007 !ruby/object:Gem::Requirement
|
107
107
|
none: false
|
@@ -113,18 +113,50 @@ dependencies:
|
|
113
113
|
version: "0"
|
114
114
|
type: :development
|
115
115
|
version_requirements: *id007
|
116
|
+
- !ruby/object:Gem::Dependency
|
117
|
+
name: jeweler
|
118
|
+
prerelease: false
|
119
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
120
|
+
none: false
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
segments:
|
125
|
+
- 0
|
126
|
+
version: "0"
|
127
|
+
type: :development
|
128
|
+
version_requirements: *id008
|
129
|
+
- !ruby/object:Gem::Dependency
|
130
|
+
name: rdp-rmagick
|
131
|
+
prerelease: false
|
132
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
133
|
+
none: false
|
134
|
+
requirements:
|
135
|
+
- - ">="
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
segments:
|
138
|
+
- 0
|
139
|
+
version: "0"
|
140
|
+
type: :development
|
141
|
+
version_requirements: *id009
|
142
|
+
- !ruby/object:Gem::Dependency
|
143
|
+
name: hitimes
|
144
|
+
prerelease: false
|
145
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
146
|
+
none: false
|
147
|
+
requirements:
|
148
|
+
- - ">="
|
149
|
+
- !ruby/object:Gem::Version
|
150
|
+
segments:
|
151
|
+
- 0
|
152
|
+
version: "0"
|
153
|
+
type: :development
|
154
|
+
version_requirements: *id010
|
116
155
|
description:
|
117
156
|
email: rogerdpack@gmail.com
|
118
157
|
executables:
|
119
|
-
- AboutDialog.class
|
120
|
-
- AboutDialog.java
|
121
|
-
- ComboBoxes$1.class
|
122
|
-
- ComboBoxes$2.class
|
123
|
-
- ComboBoxes.class
|
124
|
-
- ComboBoxes.java
|
125
158
|
- sensible-cinema
|
126
159
|
- sensible-cinema-cli
|
127
|
-
- sensible-cinema-hit-reload-twice-then-save-copy-of-for-death
|
128
160
|
- swing_helpers.rb
|
129
161
|
extensions:
|
130
162
|
- ext/mkrf_conf.rb
|
@@ -258,13 +290,6 @@ files:
|
|
258
290
|
- zamples/scene_lists/star_trek_generations_hulu.yml
|
259
291
|
- zamples/scene_lists/youtube/gummy_bear_song_youtube.yml
|
260
292
|
- zamples/scene_lists/youtube/nuki_song_youtube.yml
|
261
|
-
- bin/AboutDialog.class
|
262
|
-
- bin/AboutDialog.java
|
263
|
-
- bin/ComboBoxes$1.class
|
264
|
-
- bin/ComboBoxes$2.class
|
265
|
-
- bin/ComboBoxes.class
|
266
|
-
- bin/ComboBoxes.java
|
267
|
-
- bin/sensible-cinema-hit-reload-twice-then-save-copy-of-for-death
|
268
293
|
has_rdoc: true
|
269
294
|
homepage: http://github.com/rdp
|
270
295
|
licenses: []
|
data/bin/AboutDialog.class
DELETED
Binary file
|
data/bin/AboutDialog.java
DELETED
@@ -1,38 +0,0 @@
|
|
1
|
-
import java.awt.BorderLayout;
|
2
|
-
import java.awt.Dimension;
|
3
|
-
import java.awt.Point;
|
4
|
-
import java.awt.event.ActionEvent;
|
5
|
-
import java.awt.event.ActionListener;
|
6
|
-
import javax.swing.JButton;
|
7
|
-
import javax.swing.JDialog;
|
8
|
-
import javax.swing.JFrame;
|
9
|
-
import javax.swing.JLabel;
|
10
|
-
import javax.swing.JPanel;
|
11
|
-
public class AboutDialog extends JDialog implements ActionListener {
|
12
|
-
public AboutDialog(JFrame parent, String title, String message) {
|
13
|
-
super(parent, title, true);
|
14
|
-
if (parent != null) {
|
15
|
-
Dimension parentSize = parent.getSize();
|
16
|
-
Point p = parent.getLocation();
|
17
|
-
setLocation(p.x + parentSize.width / 4, p.y + parentSize.height / 4);
|
18
|
-
}
|
19
|
-
JPanel messagePane = new JPanel();
|
20
|
-
messagePane.add(new JLabel(message));
|
21
|
-
getContentPane().add(messagePane);
|
22
|
-
JPanel buttonPane = new JPanel();
|
23
|
-
JButton button = new JButton("OK");
|
24
|
-
buttonPane.add(button);
|
25
|
-
button.addActionListener(this);
|
26
|
-
getContentPane().add(buttonPane, BorderLayout.SOUTH);
|
27
|
-
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
|
28
|
-
pack();
|
29
|
-
setVisible(true);
|
30
|
-
}
|
31
|
-
public void actionPerformed(ActionEvent e) {
|
32
|
-
setVisible(false);
|
33
|
-
dispose();
|
34
|
-
}
|
35
|
-
public static void main(String[] a) {
|
36
|
-
AboutDialog dlg = new AboutDialog(new JFrame(), "title", "message");
|
37
|
-
}
|
38
|
-
}
|
data/bin/ComboBoxes$1.class
DELETED
Binary file
|
data/bin/ComboBoxes$2.class
DELETED
Binary file
|
data/bin/ComboBoxes.class
DELETED
Binary file
|
data/bin/ComboBoxes.java
DELETED
@@ -1,67 +0,0 @@
|
|
1
|
-
|
2
|
-
// : c14:ComboBoxes.java
|
3
|
-
// Using drop-down lists.
|
4
|
-
// <applet code=ComboBoxes width=200 height=125></applet>
|
5
|
-
// From 'Thinking in Java, 3rd ed.' (c) Bruce Eckel 2002
|
6
|
-
// www.BruceEckel.com. See copyright notice in CopyRight.txt.
|
7
|
-
|
8
|
-
import java.awt.Container;
|
9
|
-
import java.awt.FlowLayout;
|
10
|
-
import java.awt.event.ActionEvent;
|
11
|
-
import java.awt.event.ActionListener;
|
12
|
-
|
13
|
-
import javax.swing.JApplet;
|
14
|
-
import javax.swing.JButton;
|
15
|
-
import javax.swing.JComboBox;
|
16
|
-
import javax.swing.JFrame;
|
17
|
-
import javax.swing.JTextField;
|
18
|
-
|
19
|
-
public class ComboBoxes extends JApplet {
|
20
|
-
private String[] description = { "Ebullient", "Obtuse", "Recalcitrant",
|
21
|
-
"Brilliant", "Somnescent", "Timorous", "Florid", "Putrescent" };
|
22
|
-
|
23
|
-
private JTextField t = new JTextField(15);
|
24
|
-
|
25
|
-
private JComboBox c = new JComboBox();
|
26
|
-
|
27
|
-
private JButton b = new JButton("Add items");
|
28
|
-
|
29
|
-
private int count = 0;
|
30
|
-
|
31
|
-
public void init() {
|
32
|
-
for (int i = 0; i < 4; i++)
|
33
|
-
c.addItem(description[count++]);
|
34
|
-
t.setEditable(false);
|
35
|
-
b.addActionListener(new ActionListener() {
|
36
|
-
public void actionPerformed(ActionEvent e) {
|
37
|
-
if (count < description.length)
|
38
|
-
c.addItem(description[count++]);
|
39
|
-
}
|
40
|
-
});
|
41
|
-
c.addActionListener(new ActionListener() {
|
42
|
-
public void actionPerformed(ActionEvent e) {
|
43
|
-
t.setText("index: " + c.getSelectedIndex() + " "
|
44
|
-
+ ((JComboBox) e.getSource()).getSelectedItem());
|
45
|
-
}
|
46
|
-
});
|
47
|
-
Container cp = getContentPane();
|
48
|
-
cp.setLayout(new FlowLayout());
|
49
|
-
cp.add(t);
|
50
|
-
cp.add(c);
|
51
|
-
cp.add(b);
|
52
|
-
}
|
53
|
-
|
54
|
-
public static void main(String[] args) {
|
55
|
-
run(new ComboBoxes(), 200, 125);
|
56
|
-
}
|
57
|
-
|
58
|
-
public static void run(JApplet applet, int width, int height) {
|
59
|
-
JFrame frame = new JFrame();
|
60
|
-
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
61
|
-
frame.getContentPane().add(applet);
|
62
|
-
frame.setSize(width, height);
|
63
|
-
applet.init();
|
64
|
-
applet.start();
|
65
|
-
frame.setVisible(true);
|
66
|
-
}
|
67
|
-
} ///:~
|
@@ -1,105 +0,0 @@
|
|
1
|
-
#!/usr/bin/ruby
|
2
|
-
puts 'Welcome to Sensible Cinema...'
|
3
|
-
require 'rubygems'
|
4
|
-
require 'ruby-wmi'
|
5
|
-
require 'swing_helpers'
|
6
|
-
|
7
|
-
module SensibleSwing
|
8
|
-
class MainWindow < JFrame
|
9
|
-
def initialize
|
10
|
-
super "Sensible-Cinema"
|
11
|
-
setDefaultCloseOperation JFrame::EXIT_ON_CLOSE
|
12
|
-
panel = JPanel.new
|
13
|
-
panel.set_layout nil
|
14
|
-
setSize 350,400
|
15
|
-
add panel # why can't I just slap these down?
|
16
|
-
|
17
|
-
jlabel = JLabel.new 'Welcome to Sensible Cinema'
|
18
|
-
happy = Font.new("Tahoma", Font::PLAIN, 11)
|
19
|
-
jlabel.setFont(happy)
|
20
|
-
jlabel.set_bounds(44,44,136,14)
|
21
|
-
panel.add jlabel
|
22
|
-
|
23
|
-
c=JButton.new( "Save local copy of an edited DVD" )
|
24
|
-
c.on_clicked {
|
25
|
-
drive = get_disk_name
|
26
|
-
=begin
|
27
|
-
fc = JFileChooser.new
|
28
|
-
fc.setFileSelectionMode(nil)
|
29
|
-
fc.set_dialog_title "Please pick a DVD descriptor file"
|
30
|
-
fc.set_current_directory(JFile.new( __dir__ + "/../zamples/scene_lists/dvds"))
|
31
|
-
descriptor = fc.execute
|
32
|
-
fc = JFileChooser.new
|
33
|
-
# TODO allow for spaces in save to file
|
34
|
-
fc.set_dialog_title "Pick a location to save it to (like 'my_dvd')"
|
35
|
-
fc.setCurrentDirectory(JFile.new("c:\\"))
|
36
|
-
save_to = fc.execute
|
37
|
-
p [drive, descriptor, save_to]
|
38
|
-
descriptors = YAML.load_file descriptor
|
39
|
-
bat_file = VLCProgrammer.convert_to_full_xspf(descriptors, save_to, drive)
|
40
|
-
temp_dir = Dir.tmpdir
|
41
|
-
temp_file = temp_dir + '/' + 'convert_it.bat'
|
42
|
-
File.write(temp_file, bat_file)
|
43
|
-
p 'running', temp_file
|
44
|
-
p 'got', system(temp_file)
|
45
|
-
JOptionPane.showMessageDialog(nil, " Done--you may now watch file #{save_to}.ps in VLC player", "Done!", JOptionPane::ERROR_MESSAGE)
|
46
|
-
self.close
|
47
|
-
=end
|
48
|
-
}
|
49
|
-
c.set_bounds(44,180,200,23)
|
50
|
-
panel.add c
|
51
|
-
|
52
|
-
reload = JButton.new( "reload code" ).on_clicked {
|
53
|
-
eval File.read(__FILE__), nil, __FILE__
|
54
|
-
p 're-evaled it'
|
55
|
-
}
|
56
|
-
reload.set_bounds(44,280,200,23)
|
57
|
-
panel.add reload # if ARGV.find{|a| a == '--test'}
|
58
|
-
|
59
|
-
end
|
60
|
-
|
61
|
-
def exit_and_close
|
62
|
-
JOptionPane.showMessageDialog(nil, "exiting", "exiting", JOptionPane::ERROR_MESSAGE)
|
63
|
-
close
|
64
|
-
exit
|
65
|
-
end
|
66
|
-
|
67
|
-
def get_disk_name
|
68
|
-
disks = WMI::Win32_LogicalDisk.find(:all)
|
69
|
-
|
70
|
-
opticals = disks.select{|d| d.Description =~ /CD-ROM/}
|
71
|
-
|
72
|
-
opticals.map!{|d| [d.Name + "\\", d.VolumeName]}
|
73
|
-
p opticals
|
74
|
-
p 'showing dialog'
|
75
|
-
dialog = GetDisk.new(self, opticals)
|
76
|
-
p 'done showing dialog'
|
77
|
-
|
78
|
-
return opticals[0][0]
|
79
|
-
end
|
80
|
-
|
81
|
-
|
82
|
-
end
|
83
|
-
|
84
|
-
class GetDisk < JDialog
|
85
|
-
def initialize parent, options_array
|
86
|
-
super parent, true
|
87
|
-
|
88
|
-
box = JComboBox.new
|
89
|
-
box.add_action_listener do |e|
|
90
|
-
p 'chosen perhaps?', e, box.get_selected_index, e.get_source, get_selected_item
|
91
|
-
#dispose if
|
92
|
-
end
|
93
|
-
box.add_item "Select DVD drive"
|
94
|
-
box.add_item "halloo"
|
95
|
-
|
96
|
-
add box
|
97
|
-
pack
|
98
|
-
end
|
99
|
-
end
|
100
|
-
|
101
|
-
end
|
102
|
-
|
103
|
-
SensibleSwing::MainWindow.new.set_visible true
|
104
|
-
|
105
|
-
puts 'Please see the Sensible Cinema window'
|