VictoriaFreSh 2020.7.21
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/lib/VictoriaFreSh/filemessage.pb.rb +15 -0
- data/lib/victoriafresh.rb +52 -0
- data/victoriafresh.example.rb +27 -0
- metadata +65 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: fc6cfc97b686d61a5afc8d69c5f9e478af9f33fc6437fcbfdd4d45f82da63fb3
|
4
|
+
data.tar.gz: f599c4a3f99706742e140ae37b88684b151587887fe13e71a7e98bb5bbf91def
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: e1c3ff37bfa37c3065e1028b9c2e00d4ae4f772b67c79552c3effd3a88ee54de4804975b3979d62d961d88b530f7150cf7fa7872bc9ce3b690a9ae9287c8a387
|
7
|
+
data.tar.gz: 91188412fbe776a00245a20344416597d8286577719054f0c07cccb30d81cb433d14f08992c69cf8e363225b421b516d8ebe736359e23d7a22a0e8db28d29403
|
@@ -0,0 +1,15 @@
|
|
1
|
+
## Generated from filemessage.proto for com.stupidbeauty.victoriafresh
|
2
|
+
require "beefcake"
|
3
|
+
|
4
|
+
|
5
|
+
class FileMessage
|
6
|
+
include Beefcake::Message
|
7
|
+
end
|
8
|
+
|
9
|
+
class FileMessage
|
10
|
+
optional :name, :string, 1
|
11
|
+
repeated :sub_files, FileMessage, 2
|
12
|
+
optional :is_file, :bool, 3
|
13
|
+
optional :file_start_index, :int32, 5
|
14
|
+
optional :file_length, :int32, 6
|
15
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
|
3
|
+
require 'pathname'
|
4
|
+
require File.dirname(__FILE__)+'/VictoriaFreSh/filemessage.pb.rb'
|
5
|
+
|
6
|
+
class VictoriaFresh
|
7
|
+
def checkOnce(directoryPath,startIndex=0) #打包一个目录树。
|
8
|
+
packagedFile=FileMessage.new #创建文件消息对象。
|
9
|
+
packagedFile.sub_files=[] #初始化数组。
|
10
|
+
|
11
|
+
directoryPathName=Pathname.new(directoryPath) #构造路径名字对象。
|
12
|
+
|
13
|
+
baseName=directoryPathName.basename.to_s #基本文件名。
|
14
|
+
|
15
|
+
packagedFile.name=baseName #设置文件名。
|
16
|
+
|
17
|
+
isFile=directoryPathName.file? #是否是文件。
|
18
|
+
packagedFile.is_file=isFile #设置属性,是否是文件。
|
19
|
+
packagedFile.file_start_index=startIndex #记录文件内容的开始位置。
|
20
|
+
|
21
|
+
if (isFile) #是文件,不用再列出其子文件了。
|
22
|
+
packagedFile.file_length=directoryPathName.size #记录文件的内容长度。
|
23
|
+
|
24
|
+
#读取文件内容:
|
25
|
+
fileToReadContent=File.new(directoryPath,"rb") #创建文件。
|
26
|
+
contentString=fileToReadContent.read #全部读取。
|
27
|
+
|
28
|
+
else #是目录。
|
29
|
+
contentString="" #容纳内容的字符串。
|
30
|
+
subFileStartIndex=startIndex #子文件的起始位置,以此目录的起始位置为基准。
|
31
|
+
packagedFile.file_length=0 #本目录的内容长度。
|
32
|
+
|
33
|
+
directoryPathName.each_child do |subFile| #一个个文件地处理。
|
34
|
+
realPath=subFile.realpath #获取绝对路径。
|
35
|
+
|
36
|
+
|
37
|
+
packagedSubFile,subFileContent=checkOnce(realPath,subFileStartIndex) #打包这个子文件。
|
38
|
+
|
39
|
+
packagedFile.sub_files << packagedSubFile #加入到子文件列表中。
|
40
|
+
|
41
|
+
contentString = contentString + subFileContent #串接文件内容。
|
42
|
+
|
43
|
+
subFileStartIndex+=packagedSubFile.file_length #记录打包的子文件的长度,更新下一个要打包的子文件的起始位置。
|
44
|
+
|
45
|
+
packagedFile.file_length+=packagedSubFile.file_length #随着子文件的打包而更新本目录的总长度。
|
46
|
+
end #directoryPathName.each_child do |subFile| #一个个文件地处理。
|
47
|
+
end #if (isFile) #是文件,不用再列出其子文件了。
|
48
|
+
|
49
|
+
return packagedFile,contentString #返回打包之后的对象。和文件内容字节数组。
|
50
|
+
end #def downloadOne #下载一个视频。
|
51
|
+
end
|
52
|
+
|
@@ -0,0 +1,27 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
|
3
|
+
# require 'pathname'
|
4
|
+
# require File.dirname(__FILE__)+'/filemessage.pb.rb'
|
5
|
+
require 'VictoriaFreSh'
|
6
|
+
|
7
|
+
if (ARGV.empty? ) #未指定命令行参数。
|
8
|
+
else #指定了命令行参数。
|
9
|
+
$rootPath=ARGV[0] #记录要打包的目录树的根目录。
|
10
|
+
|
11
|
+
$clipDownloader=VictoriaFresh.new #创建下载器。
|
12
|
+
|
13
|
+
victoriaFresh,victoriaFreshData=$clipDownloader.checkOnce($rootPath) #打包该目录树。
|
14
|
+
|
15
|
+
#利用protobuf打包成字节数组:
|
16
|
+
replyByteArray="" #回复时使用的字节数组。
|
17
|
+
victoriaFresh.encode(replyByteArray) #打包成字节数组。
|
18
|
+
|
19
|
+
victoriaFreshFile=File.new("victoriafresh.v","wb") #创建文件。
|
20
|
+
victoriaFreshFile.syswrite(replyByteArray) #写入文件。
|
21
|
+
|
22
|
+
victoriaFreshFile.close #关闭文件。
|
23
|
+
|
24
|
+
victoriaFreshDataFile=File.new("victoriafreshdata.v","wb") #数据文件。
|
25
|
+
victoriaFreshDataFile.syswrite(victoriaFreshData) #写入文件。
|
26
|
+
victoriaFreshDataFile.close #关闭文件。
|
27
|
+
end
|
metadata
ADDED
@@ -0,0 +1,65 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: VictoriaFreSh
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 2020.7.21
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Hxcan Cai
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2020-07-21 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: beefcake
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 1.2.0
|
20
|
+
- - "~>"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '1.2'
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 1.2.0
|
30
|
+
- - "~>"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '1.2'
|
33
|
+
description: Virtual file system.
|
34
|
+
email: caihuosheng@gmail.com
|
35
|
+
executables: []
|
36
|
+
extensions: []
|
37
|
+
extra_rdoc_files: []
|
38
|
+
files:
|
39
|
+
- lib/VictoriaFreSh/filemessage.pb.rb
|
40
|
+
- lib/victoriafresh.rb
|
41
|
+
- victoriafresh.example.rb
|
42
|
+
homepage: http://rubygems.org/gems/VictoriaFreSh
|
43
|
+
licenses:
|
44
|
+
- MIT
|
45
|
+
metadata: {}
|
46
|
+
post_install_message:
|
47
|
+
rdoc_options: []
|
48
|
+
require_paths:
|
49
|
+
- lib
|
50
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
56
|
+
requirements:
|
57
|
+
- - ">="
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: '0'
|
60
|
+
requirements: []
|
61
|
+
rubygems_version: 3.0.3
|
62
|
+
signing_key:
|
63
|
+
specification_version: 4
|
64
|
+
summary: VictoriaFreSh
|
65
|
+
test_files: []
|