end of refactoring...
[falcomics:falcomics.git] / Sources / plugins / pluginZip.fal
1 /***************************************************\r
2 * Module Name :\r
3 * Author      : Lucone\r
4 * Create date : 2011-05-27\r
5 * Edit by     : --        in date   : ....-..-..\r
6 * Module Description -------------------------------\r
7 *        <please insert a module description>\r
8 ***************************************************/\r
9 /***************************************************\r
10 --Classes, Object and functions:\r
11 *       27      function getExtensions()\r
12 *       34      class pluginClass( comicsName ) from pluginBase( comicsName )\r
13 *       49              function _loadInfo()\r
14 *       53                      TODO: if cmd is nil, an exception has to be raised!\r
15 *       65                      TODO: the linux part\r
16 ***************************************************/\r
17 export\r
18 \r
19 load gtk\r
20 load naturalOrder\r
21 load plugins.pluginBase\r
22 load process\r
23 \r
24 /*      the variable and method below are mandatory\r
25         for ALL plugins and will returns\r
26         the extension managed by the pluginClass                                */\r
27 function getExtensions()\r
28         return ["7z", "lzma", "cab", "zip", "gzip", "bzip2", "Z", "tar", "rar", "cbr", "cbz"]\r
29 end\r
30 \r
31 /*\r
32         comicsName:     full path name of the file to manage\r
33                                                                                                                         */\r
34 class pluginClass( comicsName ) from pluginBase( comicsName )\r
35         _tempPath   = nil       // The path where will be save the decompressed comics\r
36         _extension      = nil   // The extension of the archive\r
37 \r
38         init\r
39 \r
40                 self._extension = fileExt(comicsName)\r
41                 self._comicsName = fileName( comicsName ).replace( "." + self._extension, "")\r
42                 self._tempPath = @mySettings.getSettings("tempPath")\r
43                 self._loadInfo()\r
44 \r
45         end\r
46 \r
47 \r
48         //      Load all the infos needed about the comics\r
49         function _loadInfo()\r
50 \r
51                 cmd = mySettings.getSettings( self._extension )\r
52 \r
53                 // Todo: if cmd is nil, an exception has to be raised!\r
54                 if not cmd: return\r
55 \r
56                 if vmSystemType() == "WIN"\r
57 \r
58                         // first, remove the full tree from the top (if existing..)\r
59                         pread(["rd", "/S",  "/Q", '"' + Path(self._tempPath).winpath + '"'])\r
60 \r
61                         cmd = cmd.replace("%filename%", Path(self._fullPath).winpath)\r
62 \r
63                 else\r
64 \r
65                         // TODO: the linux part\r
66 \r
67                 end\r
68 \r
69                 // OK, Decompressing the archive into the temp folder\r
70                 \r
71                 systemCall( (@cmd).split("!"), true)\r
72 \r
73                 self._searchInFolder( self._tempPath )          \r
74 \r
75         end\r
76 \r
77 end