dolit 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/lib/dolit.rb +53 -3
  2. data/lib/dolit/version.rb +1 -1
  3. metadata +1 -1
@@ -13,13 +13,63 @@ module Dolit
13
13
  typedef :int, :status
14
14
  end
15
15
 
16
-
17
16
  attach_function :video_parse, :DLVideo_Parse, [:string, :string, :id], :status
18
17
  attach_function :video_freevideoresult, :DLVideo_FreeVideoResult, [:id], :void
19
18
 
20
- def parse(url, user_agent = nil)
21
- pResult = nil
19
+ def self.parse(url, user_agent = nil)
20
+ pResult = MemoryPointer.new :pointer
22
21
  ret = video_parse(url, user_agent, pResult)
22
+ return if ret != 0
23
+ pos = 0
24
+ res = {}
25
+ pVideoResult = pResult.get_pointer
26
+ res[:site_id] = pVideoResult.get_int(pos)
27
+ pos += 4
28
+ res[:time_length] = pVideoResult.get_long(pos)
29
+ pos += 8
30
+ res[:framCount] = pVideoResult.get_long(pos)
31
+ pos += 8
32
+ res[:total_size] = pVideoResult.get_long(pos)
33
+ pos += 8
34
+ res[:v_name] = pVideoResult.get_pointer(pos).read_string
35
+ pos += 4
36
+ res[:tags] = pVideoResult.get_pointer(pos).read_string
37
+ pos += 4
38
+ count = pVideoResult.get_int(pos)
39
+ pos += 4
40
+ pTypePtr = pVideoResult.get_pointer(pos)
41
+ pos += 4
42
+ if count > 0
43
+ p = 0
44
+ res[:str_typs] = []
45
+ 0.upto(count - 1) do |i|
46
+ type_hash = {}
47
+ type_hash[:str_type] = pTypePtr.get_pointer(p).read_string
48
+ p += 4
49
+ segCount = pTypePtr.get_int(p)
50
+ pSegPtr = pTypePtr.get_pointer(p)
51
+ p += 4
23
52
 
53
+ if segCount > 0
54
+ type_hash[:files] = []
55
+ segPinterPos = 0
56
+ 0.upto(segCount - 1) do |j|
57
+ file_hash = {}
58
+ file_hash[:file_size] = pSegPtr.get_long(segPinterPos)
59
+ segPinterPos += 8
60
+ file_hash[:seconds] = pSegPtr.get_int(segPinterPos)
61
+ segPinterPos += 4
62
+ file_hash[:file_no] = pSegPtr.get_int(segPinterPos)
63
+ segPinterPos += 4
64
+ file_hash[:url] = pSegPtr.get_int(segPinterPos).read_string
65
+ segPinterPos += 4
66
+ type_hash[:files][j] = file_hash
67
+ end
68
+ end
69
+ res[:str_typs][i] = type_hash
70
+ end
71
+ end
72
+ video_freevideoresult(pResult)
73
+ res
24
74
  end
25
75
  end
@@ -1,3 +1,3 @@
1
1
  module Dolit
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dolit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: