mirror of
https://github.com/robweber/xbmcbackup.git
synced 2026-01-07 00:04:44 +01:00
Compare commits
506 Commits
eden-0.1.9
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a9e4e1711b | ||
|
|
f9eebf9efa | ||
|
|
201d04afeb | ||
|
|
2dabb23c2d | ||
|
|
2f19ec2b75 | ||
|
|
db215873cf | ||
|
|
bd963719d4 | ||
|
|
18b7f338c7 | ||
|
|
92a9245bdc | ||
|
|
568c3758a4 | ||
|
|
af999f7d04 | ||
|
|
1264ab86b2 | ||
|
|
90c458d4fc | ||
|
|
0e6f5acfb5 | ||
|
|
c9dd381037 | ||
|
|
55b2ac83d4 | ||
|
|
0d14dd17c6 | ||
|
|
9fa354b467 | ||
|
|
006485b19e | ||
|
|
3c2f512ecf | ||
|
|
190b4fd86f | ||
|
|
9ecf706d63 | ||
|
|
05c53b7ed8 | ||
|
|
8bc73f2832 | ||
|
|
edc4a7b20f | ||
|
|
90b4aeeebe | ||
|
|
7ce9123e1f | ||
|
|
8bfef6692f | ||
|
|
e63560f0c4 | ||
|
|
51f2ef3973 | ||
|
|
04bac77690 | ||
|
|
b1f6d36d73 | ||
|
|
5d398836ba | ||
|
|
23a14d67c4 | ||
|
|
0eebe1c5cc | ||
|
|
4d55385179 | ||
|
|
ac68001aa1 | ||
|
|
233dff0e15 | ||
|
|
6f69f80742 | ||
|
|
47fcb119f3 | ||
|
|
f9f49e3fe6 | ||
|
|
7c23c17e33 | ||
|
|
710bcd08f8 | ||
|
|
5e2d099448 | ||
|
|
8d66fa6a9f | ||
|
|
5ee610a586 | ||
|
|
8c4465f552 | ||
|
|
3849a902ea | ||
|
|
4492ab593e | ||
|
|
16e13c7d80 | ||
|
|
0cc0684263 | ||
|
|
dd5b99c978 | ||
|
|
6c99667afa | ||
|
|
6514b3db02 | ||
|
|
88341d9e1f | ||
|
|
95649c2b3f | ||
|
|
3e9de429dd | ||
|
|
db18c6a7b4 | ||
|
|
35e05acaf2 | ||
|
|
92ec8bf25c | ||
|
|
0c79aef4e7 | ||
|
|
fea7dca500 | ||
|
|
f7665c8ddd | ||
|
|
bbbfc3dd84 | ||
|
|
0b03914175 | ||
|
|
51553f7720 | ||
|
|
294683fb43 | ||
|
|
b74c1af704 | ||
|
|
edd4002d3f | ||
|
|
3aa912ca4c | ||
|
|
5c3e1712f6 | ||
|
|
82bdc955b5 | ||
|
|
4f1e5060e9 | ||
|
|
7d895a6028 | ||
|
|
7ede17fbbd | ||
|
|
d32620ea18 | ||
|
|
def99767e8 | ||
|
|
c7a9a8512d | ||
|
|
332afffc5b | ||
|
|
42d0f1b451 | ||
|
|
8d07310980 | ||
|
|
048d016e0e | ||
|
|
c50c5245fc | ||
|
|
e91037208b | ||
|
|
ff2ca53a22 | ||
|
|
1a27b279b0 | ||
|
|
6dfa4a5520 | ||
|
|
a7b9aeb9c1 | ||
|
|
7226178bfb | ||
|
|
f5bd7130e2 | ||
|
|
ae76d24e86 | ||
|
|
4d56331d8f | ||
|
|
45cf9a367d | ||
|
|
d8ceecb168 | ||
|
|
a2d7e8613a | ||
|
|
c0b0fa82cb | ||
|
|
6ac1d3559b | ||
|
|
d93589ecad | ||
|
|
b21c11de26 | ||
|
|
a4bb3f3feb | ||
|
|
1f6324b2d5 | ||
|
|
12b25f7cea | ||
|
|
5d9d8a1820 | ||
|
|
2fdf8d37fe | ||
|
|
aa94060cfe | ||
|
|
b9e0424ea5 | ||
|
|
495ecb1048 | ||
|
|
a1c0c0bbfe | ||
|
|
9f570233d9 | ||
|
|
b38aff2a8e | ||
|
|
456ebe9374 | ||
|
|
30f8b93629 | ||
|
|
94f872fb81 | ||
|
|
8f8402ae8a | ||
|
|
db93e40f59 | ||
|
|
72c77fb33a | ||
|
|
1f0e262c5b | ||
|
|
b75487bb2a | ||
|
|
b34e538d6b | ||
|
|
b5a7aada4c | ||
|
|
1a9c43b998 | ||
|
|
b7f4b14fe2 | ||
|
|
787b054bba | ||
|
|
a7be48a341 | ||
|
|
2fe76b7b52 | ||
|
|
3aed105fd7 | ||
|
|
c9b4554eac | ||
|
|
e736b964a5 | ||
|
|
4c5f6774df | ||
|
|
1f2e315208 | ||
|
|
138f910d07 | ||
|
|
1d3b2f58ab | ||
|
|
865416977d | ||
|
|
68093b2130 | ||
|
|
701a1831bf | ||
|
|
493e0d3a2e | ||
|
|
d87e209226 | ||
|
|
d703374792 | ||
|
|
c057f66a1e | ||
|
|
9960e2fc6b | ||
|
|
6aae9d9247 | ||
|
|
004b8dae58 | ||
|
|
6b934ed30c | ||
|
|
e950400222 | ||
|
|
cb2bb8a237 | ||
|
|
eb765c974b | ||
|
|
d18ed2960e | ||
|
|
9f1755686c | ||
|
|
534b3b108f | ||
|
|
4a8b891129 | ||
|
|
49af21a67e | ||
|
|
3ee2cb0414 | ||
|
|
061fd3efed | ||
|
|
76c2fdc0c2 | ||
|
|
2c999b46b9 | ||
|
|
4d891ab551 | ||
|
|
6c33e7c9ba | ||
|
|
f0d8e297a9 | ||
|
|
04ec3bd8a8 | ||
|
|
65ea3c98c4 | ||
|
|
ee2f38e865 | ||
|
|
4513eb67f9 | ||
|
|
d0b1d6bb34 | ||
|
|
34529471a7 | ||
|
|
c44d71b8b4 | ||
|
|
bc91dfe2a2 | ||
|
|
27fbadebda | ||
|
|
4108f333e2 | ||
|
|
913090637c | ||
|
|
7139b920ad | ||
|
|
48d07c24a0 | ||
|
|
90e4b0c1f4 | ||
|
|
c9415cbf59 | ||
|
|
32d2fde51c | ||
|
|
181654b414 | ||
|
|
71b048418e | ||
|
|
1896a684b0 | ||
|
|
545bd93e8c | ||
|
|
83a01a48bf | ||
|
|
dcc8482d73 | ||
|
|
85306f9469 | ||
|
|
c0d3b01ade | ||
|
|
5c6a8ce91a | ||
|
|
c8f148cd1a | ||
|
|
2e7080fef8 | ||
|
|
e148bd4894 | ||
|
|
b6e57b04b1 | ||
|
|
8ac5da3b66 | ||
|
|
adbf225ea2 | ||
|
|
d9d6c1ed42 | ||
|
|
55d6ca7464 | ||
|
|
9490f7565c | ||
|
|
6a8573a0c8 | ||
|
|
4b8b847544 | ||
|
|
f5f7bcfcb5 | ||
|
|
4608f04d96 | ||
|
|
e1c8b5a61c | ||
|
|
e02245e422 | ||
|
|
ada1efb165 | ||
|
|
588132c8dc | ||
|
|
5a43b5e340 | ||
|
|
33bc84c288 | ||
|
|
8c61616d3c | ||
|
|
622939901e | ||
|
|
756f50bba1 | ||
|
|
5fefbd286d | ||
|
|
5779784e0a | ||
|
|
24f570e888 | ||
|
|
489dcd317f | ||
|
|
216e2f4561 | ||
|
|
f31c2f7b4d | ||
|
|
c3fe86293d | ||
|
|
92f84b07db | ||
|
|
af1ae52e69 | ||
|
|
87b1a832c5 | ||
|
|
20ee7a92ad | ||
|
|
64daaa13e8 | ||
|
|
009d67d65b | ||
|
|
dda08d04a3 | ||
|
|
469b5ff340 | ||
|
|
ff2f764b2f | ||
|
|
30ddff0bf2 | ||
|
|
ec0c52ee6e | ||
|
|
4647bdec14 | ||
|
|
fc2c4b341a | ||
|
|
71e8e44e27 | ||
|
|
2af3070528 | ||
|
|
7e01f51e86 | ||
|
|
af93f1916b | ||
|
|
4689ce9b82 | ||
|
|
db4b404a88 | ||
|
|
2927e31c59 | ||
|
|
7d51ee05bc | ||
|
|
2c634f9250 | ||
|
|
3fcc15ebe5 | ||
|
|
94f0887393 | ||
|
|
87c638a0d6 | ||
|
|
fcafc77180 | ||
|
|
72e9950af7 | ||
|
|
c46f684ea5 | ||
|
|
b1d16df817 | ||
|
|
49f6ae5270 | ||
|
|
2e7552896a | ||
|
|
d3ed0bc63c | ||
|
|
8edaae803b | ||
|
|
d846cffd80 | ||
|
|
439c8aae28 | ||
|
|
ca454d5eee | ||
|
|
17aeb98bf2 | ||
|
|
8a6518fd2d | ||
|
|
b7c24896c9 | ||
|
|
405783cde0 | ||
|
|
9f949e6320 | ||
|
|
cff2ea86b7 | ||
|
|
e162ff3c19 | ||
|
|
622039febb | ||
|
|
d0028d440c | ||
|
|
210a907f8a | ||
|
|
0926c5d3a1 | ||
|
|
3e38f992b5 | ||
|
|
032a772a81 | ||
|
|
97a977c721 | ||
|
|
9add0b2981 | ||
|
|
7ed70ca9cb | ||
|
|
2a5accfed1 | ||
|
|
faccf424b7 | ||
|
|
2ad895626a | ||
|
|
98a369db6f | ||
|
|
09b6010738 | ||
|
|
6786a233e0 | ||
|
|
7d2c8c54c6 | ||
|
|
7448b6fea1 | ||
|
|
99e19b8fd5 | ||
|
|
1d7ca0afcf | ||
|
|
1eb84c6ecf | ||
|
|
f0cce73851 | ||
|
|
776c3872ae | ||
|
|
02e3a73623 | ||
|
|
eaf5f12245 | ||
|
|
49f6b176e8 | ||
|
|
5050af931c | ||
|
|
5c40b0edc4 | ||
|
|
044cdc4bdc | ||
|
|
9d7076da0c | ||
|
|
d62f829421 | ||
|
|
6de7ccaddf | ||
|
|
65d10e22d9 | ||
|
|
f887df0197 | ||
|
|
e395c60293 | ||
|
|
16f4d4073a | ||
|
|
fec65afc8f | ||
|
|
ee5dfed50b | ||
|
|
7730c727e5 | ||
|
|
d9e31e32ad | ||
|
|
138047bd32 | ||
|
|
2ac05ab042 | ||
|
|
b91591ec05 | ||
|
|
e803573340 | ||
|
|
687e830bcd | ||
|
|
c578fe15d8 | ||
|
|
d68679f534 | ||
|
|
744ba77251 | ||
|
|
fae5a052c7 | ||
|
|
8473542aaf | ||
|
|
72b2abfe8d | ||
|
|
d6d7221551 | ||
|
|
0b6a3ae506 | ||
|
|
2fc26b6e8c | ||
|
|
f41f37782d | ||
|
|
9e5873fcb7 | ||
|
|
b0ecaa8416 | ||
|
|
d335634618 | ||
|
|
355135853b | ||
|
|
f8c00b473f | ||
|
|
cdf67dbd0c | ||
|
|
69afda758b | ||
|
|
64ae75252f | ||
|
|
9246c9b586 | ||
|
|
e90c8e7803 | ||
|
|
cf40edad79 | ||
|
|
e316e82013 | ||
|
|
9c73b5b0b8 | ||
|
|
06fbef26db | ||
|
|
74cb8c2b28 | ||
|
|
c36df5ade9 | ||
|
|
0df7364bea | ||
|
|
b593a55120 | ||
|
|
3e32882afc | ||
|
|
4d109d138f | ||
|
|
08be62b4ec | ||
|
|
7bab6a9ada | ||
|
|
f0a6b3351a | ||
|
|
64d788e9f7 | ||
|
|
62104184de | ||
|
|
91af11c9f7 | ||
|
|
d9ff17eeec | ||
|
|
53ddc92325 | ||
|
|
250a5021e0 | ||
|
|
eb2f5dce74 | ||
|
|
b14fda20fb | ||
|
|
38cc67a54d | ||
|
|
d69a1b2d27 | ||
|
|
d7a0e622be | ||
|
|
a1c91ef51c | ||
|
|
45b6cea057 | ||
|
|
80f4e6bdfb | ||
|
|
f249ea1583 | ||
|
|
9945dc628e | ||
|
|
24e1311db5 | ||
|
|
49783f712a | ||
|
|
1255283f4d | ||
|
|
b3bbdd6911 | ||
|
|
5dfa9d9b76 | ||
|
|
545843e949 | ||
|
|
647bd8811b | ||
|
|
e6215dde51 | ||
|
|
9a89066e66 | ||
|
|
c28f9fd26b | ||
|
|
933fdbdf09 | ||
|
|
c49aebeba1 | ||
|
|
525dd8ff86 | ||
|
|
19fcb8bd46 | ||
|
|
24385a2c68 | ||
|
|
6dc23de55b | ||
|
|
eeb25a4c58 | ||
|
|
2365649f86 | ||
|
|
097238cf7b | ||
|
|
dd3a50027e | ||
|
|
ee435a90ef | ||
|
|
23b70af3dc | ||
|
|
a439863c05 | ||
|
|
6f34d39822 | ||
|
|
e025b3213c | ||
|
|
9f794549c2 | ||
|
|
290446c3a8 | ||
|
|
35c1717699 | ||
|
|
3a25c1c4eb | ||
|
|
37fb30d7ab | ||
|
|
a09677930f | ||
|
|
ed696a5c4f | ||
|
|
6f4de551dc | ||
|
|
6ad083ced8 | ||
|
|
eecdf4277c | ||
|
|
450687ba5d | ||
|
|
a217960576 | ||
|
|
7f42129606 | ||
|
|
4312625003 | ||
|
|
2bec306892 | ||
|
|
542bc692d9 | ||
|
|
70ced05cd5 | ||
|
|
405bbc08b5 | ||
|
|
775a5aeda2 | ||
|
|
e185ddf131 | ||
|
|
aec7d19b00 | ||
|
|
b0b611b5c9 | ||
|
|
884633073a | ||
|
|
4fcd40c745 | ||
|
|
77dbd69ce2 | ||
|
|
e3be458a28 | ||
|
|
987d90de12 | ||
|
|
163124089b | ||
|
|
4dd6c90ab9 | ||
|
|
d28596728b | ||
|
|
25a9faed9a | ||
|
|
83213c5561 | ||
|
|
4962a9c63b | ||
|
|
968248aaaf | ||
|
|
2b14f23a1d | ||
|
|
1a4e64572a | ||
|
|
1c7fdeb5a7 | ||
|
|
fbd53619cb | ||
|
|
dcfb5a1f89 | ||
|
|
f028bffca4 | ||
|
|
3ae5ce8f6f | ||
|
|
a7044cd17c | ||
|
|
af11c1a990 | ||
|
|
c9d285c76f | ||
|
|
9cbd6270e9 | ||
|
|
7ed09f3715 | ||
|
|
ff4cbf5493 | ||
|
|
f071dbd832 | ||
|
|
47308c6282 | ||
|
|
6151cc771b | ||
|
|
e63ba10473 | ||
|
|
7652a90c1a | ||
|
|
47f4b16571 | ||
|
|
d1620f116c | ||
|
|
27a4554ffa | ||
|
|
92a672e1ad | ||
|
|
4da499ebaa | ||
|
|
db7f7a02f5 | ||
|
|
7e703ca08c | ||
|
|
498e161347 | ||
|
|
625de8fa71 | ||
|
|
1357d45945 | ||
|
|
9165f8b2dc | ||
|
|
2d123318d9 | ||
|
|
a9b63500c3 | ||
|
|
052cd1a062 | ||
|
|
cfdc3694ef | ||
|
|
f2d61ed19d | ||
|
|
36332f20b8 | ||
|
|
3cd1ae3247 | ||
|
|
8e7aacca4f | ||
|
|
6eb5b7f986 | ||
|
|
e582be4c7b | ||
|
|
361be97e34 | ||
|
|
e32383c9ed | ||
|
|
e40e6c685d | ||
|
|
46cd3c6731 | ||
|
|
9fe364ef86 | ||
|
|
018a1a1e82 | ||
|
|
a036cde5a8 | ||
|
|
f4f4b658a0 | ||
|
|
52b6b74b9e | ||
|
|
042ed51ef3 | ||
|
|
16e55bdd23 | ||
|
|
926382e28e | ||
|
|
f6cac868d7 | ||
|
|
4ff0e49d82 | ||
|
|
1f25e11c93 | ||
|
|
18c85870ec | ||
|
|
c1784c0485 | ||
|
|
738033897f | ||
|
|
4f6128b39c | ||
|
|
da5d98a344 | ||
|
|
755e212b26 | ||
|
|
be7aea90bb | ||
|
|
535cd43e8a | ||
|
|
5b6b5d6c9a | ||
|
|
33e10c2a61 | ||
|
|
140610db5a | ||
|
|
c4a8e60729 | ||
|
|
cb6fdd7efe | ||
|
|
6c20e3a3ad | ||
|
|
847ad3a510 | ||
|
|
49f7c2fbbd | ||
|
|
e600703c94 | ||
|
|
9eb857396a | ||
|
|
9bc0c27ccf | ||
|
|
d3eab55f8a | ||
|
|
5ec8770057 | ||
|
|
4749978adb | ||
|
|
1321e244a7 | ||
|
|
ad2ddfa22f | ||
|
|
77f138e159 | ||
|
|
8ffbe3a791 | ||
|
|
5caeff23c9 | ||
|
|
7bed37a6c2 | ||
|
|
6b5b465121 | ||
|
|
28e3d08f0c | ||
|
|
db7021d97e | ||
|
|
272ea8b8a9 | ||
|
|
a3724657c7 | ||
|
|
3892a16778 | ||
|
|
dd39dc182e | ||
|
|
719a189de6 | ||
|
|
557771ee95 | ||
|
|
2cf9356f9c | ||
|
|
dff28f2653 | ||
|
|
377d7cd58d | ||
|
|
d908f23d72 | ||
|
|
92b74eb41c | ||
|
|
3d1729b721 | ||
|
|
38b2c0b535 | ||
|
|
e4f25f174f |
32
README.md
Normal file
32
README.md
Normal file
@@ -0,0 +1,32 @@
|
||||
# Backup Addon
|
||||
|
||||
### __This is not the default branch - go to the [Matrix branch](https://github.com/robweber/xbmcbackup/tree/matrix) for the current supported version__
|
||||
|
||||
## About
|
||||
|
||||
I've had to recover my database, thumbnails, and source configuration enough times that I just wanted a quick easy way to back them up. That is what this addon is meant to do.
|
||||
|
||||
## Running the Program
|
||||
|
||||
Running the program will allow you to select Backup or Restore as a running mode. Selecting Backup will push files to your remote store using the addon settings you defined. Selecting Restore will give you a list of restore points currently in your remote destination. Selecting one will pull the files matching your selection criteria from the restore point to your local Kodi folders.
|
||||
|
||||
For more specific information please check out the [wiki on Github](https://github.com/robweber/xbmcbackup/wiki) for this project. Advanced descriptions for the following are all there:
|
||||
|
||||
* [Configuration](https://github.com/robweber/xbmcbackup/wiki/Configuration)
|
||||
* [Cloud Storage](https://github.com/robweber/xbmcbackup/wiki/Cloud-Storage)
|
||||
* [Scheduling](https://github.com/robweber/xbmcbackup/wiki/Scheduling)
|
||||
* [Scripting](https://github.com/robweber/xbmcbackup/wiki/Scripting)
|
||||
* [FAQ](https://github.com/robweber/xbmcbackup/wiki/FAQ)
|
||||
|
||||
|
||||
## Attributions
|
||||
|
||||
Icon files from Open Iconic — www.useiconic.com/open
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
23
README.txt
23
README.txt
@@ -1,23 +0,0 @@
|
||||
XBMC Backup
|
||||
|
||||
About:
|
||||
I've had to recover my database, thumbnails, and source configuration enough times that I just wanted a quick easy way to back them up. That is what this addon is meant to do.
|
||||
|
||||
Usage:
|
||||
|
||||
In the addon settings you can define a remote path for the destination of your xbmc files. Each backup will create a folder named in a month, day, year format so you can create multiple backups.
|
||||
|
||||
On the Backup Selection page you can select which items from your user profile folder will be sent to the backup location. By default all are turned on except the Addon Data directory.
|
||||
|
||||
To restore your data simply switch the Mode from "backup" to "restore" and type the date of the backup you wish to restore from . The files will be copied from your remote directory to the local path. The file selection criteria will be used for the restore as well.
|
||||
|
||||
Scheduling:
|
||||
|
||||
You can also schedule backups to be completed on a set interval via the scheduling area. When it is time for the backup to run it will be executed in the background.
|
||||
|
||||
What this Addon Will Not Do:
|
||||
|
||||
This is not meant as an XBMC file sync solution. If you have multiple frontends you want to keep in sync this addon may work in a "poor man's" sort of way but it is not intended for that.
|
||||
|
||||
This backup will not check the backup destination and delete files that do not match. It is best to only do one backup per day so that each folder is correct.
|
||||
|
||||
37
addon.xml
37
addon.xml
@@ -1,37 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<addon id="script.xbmcbackup"
|
||||
name="XBMC Backup" version="0.1.7" provider-name="robweber">
|
||||
<requires>
|
||||
<import addon="xbmc.python" version="2.0"/>
|
||||
</requires>
|
||||
<extension point="xbmc.python.script" library="default.py">
|
||||
<provides>executable</provides>
|
||||
</extension>
|
||||
<extension point="xbmc.service" library="scheduler.py" start="startup" />
|
||||
<extension point="xbmc.addon.metadata">
|
||||
<summary lang="de">Die XBMC Datenbank sichern und bei Dateiverlust oder Beschädigung wiederherstellen.</summary>
|
||||
<summary lang="en">Backup and restore your XBMC database and configuration files in the event of a crash or file corruption.</summary>
|
||||
<summary lang="es">Haz copia de seguridad de tu base de datos y configuración y recupera todo en caso de fallo.</summary>
|
||||
<summary lang="es_MX">Respalda y restaura tu base de datos y archivos de configuración de XBMC dado el evento de un cuelgue o corrupción de archivos. </summary>
|
||||
<summary lang="fr">Sauvegarder et restaurer vos bases de données XBMC et vos fichiers de configuration en cas de crash ou de fichiers corrompus.</summary>
|
||||
<summary lang="he">גיבוי ושחזור מסד הנתונים וקבצי ההגדרות של XBMC במקרה של קריסה או קבצים פגומים.</summary>
|
||||
<summary lang="lt">Atsarginė kopija katra atkuria jūsų XBMC duomenų bazę ir konfigūracijos failus avarijos ar failo sugadinimo metu.</summary>
|
||||
<summary lang="pl">Stwórz kopię bezpieczeńśtwa oraz przywróć twoją bazę XBMC łącznie z plikami konfiguracyjnymi w przypadku awarii lub uszkodzenia plików.</summary>
|
||||
<summary lang="pt_BR">Backup e restaure o banco de dados do XBMC e seus arquivos de configuração, no caso de falha ou corrupção de arquivo</summary>
|
||||
<summary lang="sk">Zálohovanie a obnova XBMC databázy a konfiguračných súborov pre prípad havárie alebo poškodenia súboru.</summary>
|
||||
<summary lang="sv">Ta backupp av eller återställ din XBMC-databas och konfigurationsfiler i händelse av en krash eller filkorruption.</summary>
|
||||
<description lang="de">Jemals deine XBMC Konfiguration zerschossen und dir dann gewünscht, dass ein Backup existiert? Jetzt kannst du eine Sicherung mit nur einem Klick erzeugen. Du kannst deine Datenbanen, Playlisten, Thumbnails, Addons und andere Details zu einem Ort deiner Wahl sichern.</description>
|
||||
<description lang="en">Ever hosed your XBMC configuration and wished you'd had a backup? Now you can with one easy click. You can export your database, playlist, thumbnails, addons and other configuration details to any source writeable by XBMC. Backups can be run on demand or via a scheduler. </description>
|
||||
<description lang="es_MX">¿Alguna vez haz echado a perder tu configuración de XBMC y haz deseado tener un respaldo? Ahora puedes tenerlo con un simple click. Puedes exportar tu base de datos, listas de reproducción, miniaturas, addons y otros detalles de configuración correspondientes a cualquier fuente que pueda escribir XBMC. Los respaldos pueden ser efectuados a pedido o mediante una programación temporal</description>
|
||||
<description lang="fr">Avez-vous déjà perdu votre configuration XBMC et espéré avoir fait une sauvegarde ? Maintenant, vous pouvez le faire en un simple click. Vous pouvez exporter vos bases de données, playlists, miniatures, addons et autres fichiers de configuration vers n'importe quel endroit accessible depuis XBMC.</description>
|
||||
<description lang="he">Ever hosed your XBMC configuration and wished you'd had a backup? Now you can with one easy click. You can export your database, playlist, thumbnails, addons and other configuration details to any source writeable by XBMC. Backups can be run on demand or via a scheduler. </description>
|
||||
<description lang="lt">Kada naujinate ir konfiguruojate savo XBMC ar susimastėte, kad jums reikalinga atsarginė kopija? Dabar galite tai atlikti vienu spustelėjimu. Savo duomenų bazes, atkūrimą, miniatiūras, priedus ir kitas konfigūracijos failus galite eksportuoti iš bet kokio šaltinio. Atsarginė(-ės) kopija(-os) gali būti paleistos pareikalavus arba per tvarkaraštį.</description>
|
||||
<description lang="pl">Straciłeś kiedyś swoją konfigurację XBMC i marzyłeś o tym by mieć backup? Teraz już możesz i to w prosty sposób. Możesz eksportować twoją bazę, playlisty, miniatury, dodatki oraz wiele więcej do dowolnego źródłą prosto z XBMC. Kopia bezpieczeństwa może być uruchomiona na rządanie lub przez plan.</description>
|
||||
<description lang="pt_BR">Sempre se preocupou com sua configuração do XBMC e desejou ter backup? Agora você pode, e somente com um simples clique. Você pode exportar seu banco de dados, lista de reprodução, miniaturas, addons e outros detalhes de configuração para qualquer fonte gravável pelo XBMC. Os backups podem ser executados sob demanda ou ser agendados.</description>
|
||||
<description lang="sk">Už ste niekedy poškodili konfiguráciu XBMC a priali si mať zálohu? Teraz môžete - na jeden klik. Môžete exportovať Vašu databázu, playlist, náhľady, doplnky a konfigurácie na ktorýkoľvek zdroj zapisovateľný XBMC. Zálohy môžu byť púšťané na požiadanie alebo plánovačom. </description>
|
||||
<description lang="sv">Har du någonsin tappat bort din XBMC konfiguration och önskat att du hade en backup? Nu kan du enkelt med ett klick. Du kan exportera din databas, spellista, minityrer, tillägg och andra konfigurationsdetaljer till valfri källa som är skrivbar för XBMC. Backupper kan köras på begäran eller via scheman.</description>
|
||||
<platform>all</platform>
|
||||
</extension>
|
||||
</addon>
|
||||
|
||||
|
||||
@@ -1,84 +0,0 @@
|
||||
[b]Version 0.1.7[/b]
|
||||
|
||||
minor bug fixes and translations updates
|
||||
|
||||
[b]Version 0.1.6[/b]
|
||||
|
||||
merged scheduler branch with master, can now schedule backups on an interval
|
||||
|
||||
[b]Version 0.1.5[/b]
|
||||
|
||||
pulled xbmcbackup class into separate library
|
||||
|
||||
[b]Version 0.1.4[/b]
|
||||
|
||||
added more verbose error message for incorrect paths
|
||||
|
||||
[b]Version 0.1.3[/b]
|
||||
|
||||
backup folder format - thanks zeroram
|
||||
|
||||
added German translations - thanks dersphere
|
||||
|
||||
removed need for separate verbose logging setting
|
||||
|
||||
updated utf-8 encoding for all logging
|
||||
|
||||
backup now uses date as folder name, restore allows user to type date of last backup
|
||||
|
||||
[b]Version 0.1.2[/b]
|
||||
|
||||
added French language translation - thanks mikebzh44
|
||||
|
||||
added some utf-8 encoding tags to filenames
|
||||
|
||||
[b]Version 0.1.1[/b]
|
||||
|
||||
added check for key in vfs.py - Thanks Martijn!
|
||||
|
||||
[b]Version 0.1.0[/b]
|
||||
|
||||
removed transparency from icon.png
|
||||
|
||||
[b]Version 0.0.9 [/b]
|
||||
|
||||
modified vfs.py again to filter out xsp files (smart playlists). Created running list for these types of compressed files
|
||||
|
||||
added enable/disable logging toggle in settings
|
||||
|
||||
[b]Version 0.0.8[/b]
|
||||
|
||||
modified vfs.py script to exclude handling zip files as directories, added keymap and peripheral data folders in the "config" section
|
||||
|
||||
[b]Version 0.0.7[/b]
|
||||
|
||||
removed "restore.txt" file and now write file listing to memory list instead
|
||||
|
||||
[b]Version 0.0.6[/b]
|
||||
|
||||
Added the vfs module created by paddycarey
|
||||
File Selection is now followed for both backup and restore options
|
||||
|
||||
[b]Version 0.0.5[/b]
|
||||
|
||||
Added option to manually type a path rather than browse for one (only one used)
|
||||
Show progress bar right away so you know this is doing something
|
||||
|
||||
[b]Version 0.0.4[/b]
|
||||
|
||||
Finished code for restore mode.
|
||||
|
||||
[b]Version 0.0.3[/b]
|
||||
|
||||
Added progress bar and "silent" option for running on startup or as a script
|
||||
|
||||
[b]Version 0.0.2[/b]
|
||||
|
||||
First version, should backup directories as needed
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
from resources.lib.backup import XbmcBackup
|
||||
|
||||
#run the profile backup
|
||||
backup = XbmcBackup()
|
||||
|
||||
if(backup.isReady()):
|
||||
backup.run()
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010"></string>
|
||||
<string id="30011"></string>
|
||||
<string id="30012"></string>
|
||||
<string id="30013"></string>
|
||||
<string id="30016"></string>
|
||||
<string id="30017"></string>
|
||||
<string id="30018"></string>
|
||||
<string id="30019"></string>
|
||||
<string id="30020"></string>
|
||||
<string id="30021"></string>
|
||||
<string id="30022"></string>
|
||||
<string id="30023"></string>
|
||||
<string id="30024"></string>
|
||||
<string id="30025"></string>
|
||||
<string id="30030"></string>
|
||||
<string id="30031"></string>
|
||||
<string id="30032"></string>
|
||||
<string id="30033"></string>
|
||||
<string id="30034"></string>
|
||||
<string id="30035"></string>
|
||||
<string id="30045"></string>
|
||||
<string id="30046"></string>
|
||||
<string id="30047"></string>
|
||||
<string id="30048"></string>
|
||||
<string id="30049"></string>
|
||||
<string id="30050"></string>
|
||||
<string id="30051"></string>
|
||||
<string id="30052"></string>
|
||||
<string id="30053"></string>
|
||||
<string id="30060"></string>
|
||||
<string id="30061"></string>
|
||||
<string id="30062"></string>
|
||||
<string id="30063"></string>
|
||||
<string id="30064"></string>
|
||||
<string id="30065"></string>
|
||||
<string id="30066"></string>
|
||||
<string id="30067"></string>
|
||||
<string id="30068"></string>
|
||||
<string id="30069"></string>
|
||||
<string id="30070"></string>
|
||||
<string id="30071"></string>
|
||||
<string id="30072"></string>
|
||||
<string id="30073"></string>
|
||||
<string id="30074"></string>
|
||||
<string id="30075"></string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010"></string>
|
||||
<string id="30011"></string>
|
||||
<string id="30012"></string>
|
||||
<string id="30013"></string>
|
||||
<string id="30016"></string>
|
||||
<string id="30017"></string>
|
||||
<string id="30018"></string>
|
||||
<string id="30019"></string>
|
||||
<string id="30020"></string>
|
||||
<string id="30021"></string>
|
||||
<string id="30022"></string>
|
||||
<string id="30023"></string>
|
||||
<string id="30024"></string>
|
||||
<string id="30025"></string>
|
||||
<string id="30030"></string>
|
||||
<string id="30031"></string>
|
||||
<string id="30032"></string>
|
||||
<string id="30033"></string>
|
||||
<string id="30034"></string>
|
||||
<string id="30035"></string>
|
||||
<string id="30045"></string>
|
||||
<string id="30046"></string>
|
||||
<string id="30047"></string>
|
||||
<string id="30048"></string>
|
||||
<string id="30049"></string>
|
||||
<string id="30050"></string>
|
||||
<string id="30051"></string>
|
||||
<string id="30052"></string>
|
||||
<string id="30053"></string>
|
||||
<string id="30060"></string>
|
||||
<string id="30061"></string>
|
||||
<string id="30062"></string>
|
||||
<string id="30063"></string>
|
||||
<string id="30064"></string>
|
||||
<string id="30065"></string>
|
||||
<string id="30066"></string>
|
||||
<string id="30067"></string>
|
||||
<string id="30068"></string>
|
||||
<string id="30069"></string>
|
||||
<string id="30070"></string>
|
||||
<string id="30071"></string>
|
||||
<string id="30072"></string>
|
||||
<string id="30073"></string>
|
||||
<string id="30074"></string>
|
||||
<string id="30075"></string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010"></string>
|
||||
<string id="30011"></string>
|
||||
<string id="30012"></string>
|
||||
<string id="30013"></string>
|
||||
<string id="30016"></string>
|
||||
<string id="30017"></string>
|
||||
<string id="30018"></string>
|
||||
<string id="30019"></string>
|
||||
<string id="30020"></string>
|
||||
<string id="30021"></string>
|
||||
<string id="30022"></string>
|
||||
<string id="30023"></string>
|
||||
<string id="30024"></string>
|
||||
<string id="30025"></string>
|
||||
<string id="30030"></string>
|
||||
<string id="30031"></string>
|
||||
<string id="30032"></string>
|
||||
<string id="30033"></string>
|
||||
<string id="30034"></string>
|
||||
<string id="30035"></string>
|
||||
<string id="30045"></string>
|
||||
<string id="30046"></string>
|
||||
<string id="30047"></string>
|
||||
<string id="30048"></string>
|
||||
<string id="30049"></string>
|
||||
<string id="30050"></string>
|
||||
<string id="30051"></string>
|
||||
<string id="30052"></string>
|
||||
<string id="30053"></string>
|
||||
<string id="30060"></string>
|
||||
<string id="30061"></string>
|
||||
<string id="30062"></string>
|
||||
<string id="30063"></string>
|
||||
<string id="30064"></string>
|
||||
<string id="30065"></string>
|
||||
<string id="30066"></string>
|
||||
<string id="30067"></string>
|
||||
<string id="30068"></string>
|
||||
<string id="30069"></string>
|
||||
<string id="30070"></string>
|
||||
<string id="30071"></string>
|
||||
<string id="30072"></string>
|
||||
<string id="30073"></string>
|
||||
<string id="30074"></string>
|
||||
<string id="30075"></string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010"></string>
|
||||
<string id="30011"></string>
|
||||
<string id="30012"></string>
|
||||
<string id="30013"></string>
|
||||
<string id="30016"></string>
|
||||
<string id="30017"></string>
|
||||
<string id="30018"></string>
|
||||
<string id="30019"></string>
|
||||
<string id="30020"></string>
|
||||
<string id="30021"></string>
|
||||
<string id="30022"></string>
|
||||
<string id="30023"></string>
|
||||
<string id="30024"></string>
|
||||
<string id="30025"></string>
|
||||
<string id="30030"></string>
|
||||
<string id="30031"></string>
|
||||
<string id="30032"></string>
|
||||
<string id="30033"></string>
|
||||
<string id="30034"></string>
|
||||
<string id="30035"></string>
|
||||
<string id="30045"></string>
|
||||
<string id="30046"></string>
|
||||
<string id="30047"></string>
|
||||
<string id="30048"></string>
|
||||
<string id="30049"></string>
|
||||
<string id="30050"></string>
|
||||
<string id="30051"></string>
|
||||
<string id="30052"></string>
|
||||
<string id="30053"></string>
|
||||
<string id="30060"></string>
|
||||
<string id="30061"></string>
|
||||
<string id="30062"></string>
|
||||
<string id="30063"></string>
|
||||
<string id="30064"></string>
|
||||
<string id="30065"></string>
|
||||
<string id="30066"></string>
|
||||
<string id="30067"></string>
|
||||
<string id="30068"></string>
|
||||
<string id="30069"></string>
|
||||
<string id="30070"></string>
|
||||
<string id="30071"></string>
|
||||
<string id="30072"></string>
|
||||
<string id="30073"></string>
|
||||
<string id="30074"></string>
|
||||
<string id="30075"></string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010"></string>
|
||||
<string id="30011"></string>
|
||||
<string id="30012"></string>
|
||||
<string id="30013"></string>
|
||||
<string id="30016"></string>
|
||||
<string id="30017"></string>
|
||||
<string id="30018"></string>
|
||||
<string id="30019"></string>
|
||||
<string id="30020"></string>
|
||||
<string id="30021"></string>
|
||||
<string id="30022"></string>
|
||||
<string id="30023"></string>
|
||||
<string id="30024"></string>
|
||||
<string id="30025"></string>
|
||||
<string id="30030"></string>
|
||||
<string id="30031"></string>
|
||||
<string id="30032"></string>
|
||||
<string id="30033"></string>
|
||||
<string id="30034"></string>
|
||||
<string id="30035"></string>
|
||||
<string id="30045"></string>
|
||||
<string id="30046"></string>
|
||||
<string id="30047"></string>
|
||||
<string id="30048"></string>
|
||||
<string id="30049"></string>
|
||||
<string id="30050"></string>
|
||||
<string id="30051"></string>
|
||||
<string id="30052"></string>
|
||||
<string id="30053"></string>
|
||||
<string id="30060"></string>
|
||||
<string id="30061"></string>
|
||||
<string id="30062"></string>
|
||||
<string id="30063"></string>
|
||||
<string id="30064"></string>
|
||||
<string id="30065"></string>
|
||||
<string id="30066"></string>
|
||||
<string id="30067"></string>
|
||||
<string id="30068"></string>
|
||||
<string id="30069"></string>
|
||||
<string id="30070"></string>
|
||||
<string id="30071"></string>
|
||||
<string id="30072"></string>
|
||||
<string id="30073"></string>
|
||||
<string id="30074"></string>
|
||||
<string id="30075"></string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010"></string>
|
||||
<string id="30011"></string>
|
||||
<string id="30012"></string>
|
||||
<string id="30013"></string>
|
||||
<string id="30016"></string>
|
||||
<string id="30017"></string>
|
||||
<string id="30018"></string>
|
||||
<string id="30019"></string>
|
||||
<string id="30020"></string>
|
||||
<string id="30021"></string>
|
||||
<string id="30022"></string>
|
||||
<string id="30023"></string>
|
||||
<string id="30024"></string>
|
||||
<string id="30025"></string>
|
||||
<string id="30030"></string>
|
||||
<string id="30031"></string>
|
||||
<string id="30032"></string>
|
||||
<string id="30033"></string>
|
||||
<string id="30034"></string>
|
||||
<string id="30035"></string>
|
||||
<string id="30045"></string>
|
||||
<string id="30046"></string>
|
||||
<string id="30047"></string>
|
||||
<string id="30048"></string>
|
||||
<string id="30049"></string>
|
||||
<string id="30050"></string>
|
||||
<string id="30051"></string>
|
||||
<string id="30052"></string>
|
||||
<string id="30053"></string>
|
||||
<string id="30060"></string>
|
||||
<string id="30061"></string>
|
||||
<string id="30062"></string>
|
||||
<string id="30063"></string>
|
||||
<string id="30064"></string>
|
||||
<string id="30065"></string>
|
||||
<string id="30066"></string>
|
||||
<string id="30067"></string>
|
||||
<string id="30068"></string>
|
||||
<string id="30069"></string>
|
||||
<string id="30070"></string>
|
||||
<string id="30071"></string>
|
||||
<string id="30072"></string>
|
||||
<string id="30073"></string>
|
||||
<string id="30074"></string>
|
||||
<string id="30075"></string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010"></string>
|
||||
<string id="30011"></string>
|
||||
<string id="30012"></string>
|
||||
<string id="30013"></string>
|
||||
<string id="30016"></string>
|
||||
<string id="30017"></string>
|
||||
<string id="30018"></string>
|
||||
<string id="30019"></string>
|
||||
<string id="30020"></string>
|
||||
<string id="30021"></string>
|
||||
<string id="30022"></string>
|
||||
<string id="30023"></string>
|
||||
<string id="30024"></string>
|
||||
<string id="30025"></string>
|
||||
<string id="30030"></string>
|
||||
<string id="30031"></string>
|
||||
<string id="30032"></string>
|
||||
<string id="30033"></string>
|
||||
<string id="30034"></string>
|
||||
<string id="30035"></string>
|
||||
<string id="30045"></string>
|
||||
<string id="30046"></string>
|
||||
<string id="30047"></string>
|
||||
<string id="30048"></string>
|
||||
<string id="30049"></string>
|
||||
<string id="30050"></string>
|
||||
<string id="30051"></string>
|
||||
<string id="30052"></string>
|
||||
<string id="30053"></string>
|
||||
<string id="30060"></string>
|
||||
<string id="30061"></string>
|
||||
<string id="30062"></string>
|
||||
<string id="30063"></string>
|
||||
<string id="30064"></string>
|
||||
<string id="30065"></string>
|
||||
<string id="30066"></string>
|
||||
<string id="30067"></string>
|
||||
<string id="30068"></string>
|
||||
<string id="30069"></string>
|
||||
<string id="30070"></string>
|
||||
<string id="30071"></string>
|
||||
<string id="30072"></string>
|
||||
<string id="30073"></string>
|
||||
<string id="30074"></string>
|
||||
<string id="30075"></string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010"></string>
|
||||
<string id="30011"></string>
|
||||
<string id="30012"></string>
|
||||
<string id="30013"></string>
|
||||
<string id="30016"></string>
|
||||
<string id="30017"></string>
|
||||
<string id="30018"></string>
|
||||
<string id="30019"></string>
|
||||
<string id="30020"></string>
|
||||
<string id="30021"></string>
|
||||
<string id="30022"></string>
|
||||
<string id="30023"></string>
|
||||
<string id="30024"></string>
|
||||
<string id="30025"></string>
|
||||
<string id="30030"></string>
|
||||
<string id="30031"></string>
|
||||
<string id="30032"></string>
|
||||
<string id="30033"></string>
|
||||
<string id="30034"></string>
|
||||
<string id="30035"></string>
|
||||
<string id="30045"></string>
|
||||
<string id="30046"></string>
|
||||
<string id="30047"></string>
|
||||
<string id="30048"></string>
|
||||
<string id="30049"></string>
|
||||
<string id="30050"></string>
|
||||
<string id="30051"></string>
|
||||
<string id="30052"></string>
|
||||
<string id="30053"></string>
|
||||
<string id="30060"></string>
|
||||
<string id="30061"></string>
|
||||
<string id="30062"></string>
|
||||
<string id="30063"></string>
|
||||
<string id="30064"></string>
|
||||
<string id="30065"></string>
|
||||
<string id="30066"></string>
|
||||
<string id="30067"></string>
|
||||
<string id="30068"></string>
|
||||
<string id="30069"></string>
|
||||
<string id="30070"></string>
|
||||
<string id="30071"></string>
|
||||
<string id="30072"></string>
|
||||
<string id="30073"></string>
|
||||
<string id="30074"></string>
|
||||
<string id="30075"></string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010"></string>
|
||||
<string id="30011"></string>
|
||||
<string id="30012"></string>
|
||||
<string id="30013"></string>
|
||||
<string id="30016"></string>
|
||||
<string id="30017"></string>
|
||||
<string id="30018"></string>
|
||||
<string id="30019"></string>
|
||||
<string id="30020"></string>
|
||||
<string id="30021"></string>
|
||||
<string id="30022"></string>
|
||||
<string id="30023"></string>
|
||||
<string id="30024"></string>
|
||||
<string id="30025"></string>
|
||||
<string id="30030"></string>
|
||||
<string id="30031"></string>
|
||||
<string id="30032"></string>
|
||||
<string id="30033"></string>
|
||||
<string id="30034"></string>
|
||||
<string id="30035"></string>
|
||||
<string id="30045"></string>
|
||||
<string id="30046"></string>
|
||||
<string id="30047"></string>
|
||||
<string id="30048"></string>
|
||||
<string id="30049"></string>
|
||||
<string id="30050"></string>
|
||||
<string id="30051"></string>
|
||||
<string id="30052"></string>
|
||||
<string id="30053"></string>
|
||||
<string id="30060"></string>
|
||||
<string id="30061"></string>
|
||||
<string id="30062"></string>
|
||||
<string id="30063"></string>
|
||||
<string id="30064"></string>
|
||||
<string id="30065"></string>
|
||||
<string id="30066"></string>
|
||||
<string id="30067"></string>
|
||||
<string id="30068"></string>
|
||||
<string id="30069"></string>
|
||||
<string id="30070"></string>
|
||||
<string id="30071"></string>
|
||||
<string id="30072"></string>
|
||||
<string id="30073"></string>
|
||||
<string id="30074"></string>
|
||||
<string id="30075"></string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010"></string>
|
||||
<string id="30011"></string>
|
||||
<string id="30012"></string>
|
||||
<string id="30013"></string>
|
||||
<string id="30016"></string>
|
||||
<string id="30017"></string>
|
||||
<string id="30018"></string>
|
||||
<string id="30019"></string>
|
||||
<string id="30020"></string>
|
||||
<string id="30021"></string>
|
||||
<string id="30022"></string>
|
||||
<string id="30023"></string>
|
||||
<string id="30024"></string>
|
||||
<string id="30025"></string>
|
||||
<string id="30030"></string>
|
||||
<string id="30031"></string>
|
||||
<string id="30032"></string>
|
||||
<string id="30033"></string>
|
||||
<string id="30034"></string>
|
||||
<string id="30035"></string>
|
||||
<string id="30045"></string>
|
||||
<string id="30046"></string>
|
||||
<string id="30047"></string>
|
||||
<string id="30048"></string>
|
||||
<string id="30049"></string>
|
||||
<string id="30050"></string>
|
||||
<string id="30051"></string>
|
||||
<string id="30052"></string>
|
||||
<string id="30053"></string>
|
||||
<string id="30060"></string>
|
||||
<string id="30061"></string>
|
||||
<string id="30062"></string>
|
||||
<string id="30063"></string>
|
||||
<string id="30064"></string>
|
||||
<string id="30065"></string>
|
||||
<string id="30066"></string>
|
||||
<string id="30067"></string>
|
||||
<string id="30068"></string>
|
||||
<string id="30069"></string>
|
||||
<string id="30070"></string>
|
||||
<string id="30071"></string>
|
||||
<string id="30072"></string>
|
||||
<string id="30073"></string>
|
||||
<string id="30074"></string>
|
||||
<string id="30075"></string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010"></string>
|
||||
<string id="30011"></string>
|
||||
<string id="30012"></string>
|
||||
<string id="30013"></string>
|
||||
<string id="30016"></string>
|
||||
<string id="30017"></string>
|
||||
<string id="30018"></string>
|
||||
<string id="30019"></string>
|
||||
<string id="30020"></string>
|
||||
<string id="30021"></string>
|
||||
<string id="30022"></string>
|
||||
<string id="30023"></string>
|
||||
<string id="30024"></string>
|
||||
<string id="30025"></string>
|
||||
<string id="30030"></string>
|
||||
<string id="30031"></string>
|
||||
<string id="30032"></string>
|
||||
<string id="30033"></string>
|
||||
<string id="30034"></string>
|
||||
<string id="30035"></string>
|
||||
<string id="30045"></string>
|
||||
<string id="30046"></string>
|
||||
<string id="30047"></string>
|
||||
<string id="30048"></string>
|
||||
<string id="30049"></string>
|
||||
<string id="30050"></string>
|
||||
<string id="30051"></string>
|
||||
<string id="30052"></string>
|
||||
<string id="30053"></string>
|
||||
<string id="30060"></string>
|
||||
<string id="30061"></string>
|
||||
<string id="30062"></string>
|
||||
<string id="30063"></string>
|
||||
<string id="30064"></string>
|
||||
<string id="30065"></string>
|
||||
<string id="30066"></string>
|
||||
<string id="30067"></string>
|
||||
<string id="30068"></string>
|
||||
<string id="30069"></string>
|
||||
<string id="30070"></string>
|
||||
<string id="30071"></string>
|
||||
<string id="30072"></string>
|
||||
<string id="30073"></string>
|
||||
<string id="30074"></string>
|
||||
<string id="30075"></string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010"></string>
|
||||
<string id="30011"></string>
|
||||
<string id="30012"></string>
|
||||
<string id="30013"></string>
|
||||
<string id="30016"></string>
|
||||
<string id="30017"></string>
|
||||
<string id="30018"></string>
|
||||
<string id="30019"></string>
|
||||
<string id="30020"></string>
|
||||
<string id="30021"></string>
|
||||
<string id="30022"></string>
|
||||
<string id="30023"></string>
|
||||
<string id="30024"></string>
|
||||
<string id="30025"></string>
|
||||
<string id="30030"></string>
|
||||
<string id="30031"></string>
|
||||
<string id="30032"></string>
|
||||
<string id="30033"></string>
|
||||
<string id="30034"></string>
|
||||
<string id="30035"></string>
|
||||
<string id="30045"></string>
|
||||
<string id="30046"></string>
|
||||
<string id="30047"></string>
|
||||
<string id="30048"></string>
|
||||
<string id="30049"></string>
|
||||
<string id="30050"></string>
|
||||
<string id="30051"></string>
|
||||
<string id="30052"></string>
|
||||
<string id="30053"></string>
|
||||
<string id="30060"></string>
|
||||
<string id="30061"></string>
|
||||
<string id="30062"></string>
|
||||
<string id="30063"></string>
|
||||
<string id="30064"></string>
|
||||
<string id="30065"></string>
|
||||
<string id="30066"></string>
|
||||
<string id="30067"></string>
|
||||
<string id="30068"></string>
|
||||
<string id="30069"></string>
|
||||
<string id="30070"></string>
|
||||
<string id="30071"></string>
|
||||
<string id="30072"></string>
|
||||
<string id="30073"></string>
|
||||
<string id="30074"></string>
|
||||
<string id="30075"></string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010"></string>
|
||||
<string id="30011"></string>
|
||||
<string id="30012"></string>
|
||||
<string id="30013"></string>
|
||||
<string id="30016"></string>
|
||||
<string id="30017"></string>
|
||||
<string id="30018"></string>
|
||||
<string id="30019"></string>
|
||||
<string id="30020"></string>
|
||||
<string id="30021"></string>
|
||||
<string id="30022"></string>
|
||||
<string id="30023"></string>
|
||||
<string id="30024"></string>
|
||||
<string id="30025"></string>
|
||||
<string id="30030"></string>
|
||||
<string id="30031"></string>
|
||||
<string id="30032"></string>
|
||||
<string id="30033"></string>
|
||||
<string id="30034"></string>
|
||||
<string id="30035"></string>
|
||||
<string id="30045"></string>
|
||||
<string id="30046"></string>
|
||||
<string id="30047"></string>
|
||||
<string id="30048"></string>
|
||||
<string id="30049"></string>
|
||||
<string id="30050"></string>
|
||||
<string id="30051"></string>
|
||||
<string id="30052"></string>
|
||||
<string id="30053"></string>
|
||||
<string id="30060"></string>
|
||||
<string id="30061"></string>
|
||||
<string id="30062"></string>
|
||||
<string id="30063"></string>
|
||||
<string id="30064"></string>
|
||||
<string id="30065"></string>
|
||||
<string id="30066"></string>
|
||||
<string id="30067"></string>
|
||||
<string id="30068"></string>
|
||||
<string id="30069"></string>
|
||||
<string id="30070"></string>
|
||||
<string id="30071"></string>
|
||||
<string id="30072"></string>
|
||||
<string id="30073"></string>
|
||||
<string id="30074"></string>
|
||||
<string id="30075"></string>
|
||||
</strings>
|
||||
@@ -1,52 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010">XBMC Backup</string>
|
||||
<string id="30011">General</string>
|
||||
<string id="30012">File Selection</string>
|
||||
<string id="30013">Scheduling</string>
|
||||
|
||||
<string id="30016">Backup</string>
|
||||
<string id="30017">Restore</string>
|
||||
<string id="30018">Browse Path</string>
|
||||
<string id="30019">Type Path</string>
|
||||
<string id="30020">Browse Remote Path</string>
|
||||
<string id="30021">Backup Folder Name</string>
|
||||
<string id="30022">Run Silent</string>
|
||||
<string id="30023">Mode</string>
|
||||
<string id="30024">Type Remote Path</string>
|
||||
<string id="30025">Remote Path Type</string>
|
||||
|
||||
<string id="30030">User Addons</string>
|
||||
<string id="30031">Addon Data</string>
|
||||
<string id="30032">Database</string>
|
||||
<string id="30033">Playlist</string>
|
||||
<string id="30034">Thumbnails/Fanart</string>
|
||||
<string id="30035">Config Files</string>
|
||||
|
||||
<string id="30045">Error: Remote path doesn't exist</string>
|
||||
<string id="30046">Starting</string>
|
||||
<string id="30047">Local Dir</string>
|
||||
<string id="30048">Remote Dir</string>
|
||||
<string id="30049">Gathering file list</string>
|
||||
<string id="30050">Remote Path exists - may have old files in it!</string>
|
||||
<string id="30051">Creating Files List</string>
|
||||
<string id="30052">Writing file</string>
|
||||
<string id="30053">Starting scheduled backup</string>
|
||||
|
||||
<string id="30060">Enable Scheduler</string>
|
||||
<string id="30061">Schedule</string>
|
||||
<string id="30062">Hour of Day</string>
|
||||
<string id="30063">Day of Week</string>
|
||||
<string id="30064">Cron Schedule</string>
|
||||
<string id="30065">Sunday</string>
|
||||
<string id="30066">Monday</string>
|
||||
<string id="30067">Tuesday</string>
|
||||
<string id="30068">Wednesday</string>
|
||||
<string id="30069">Thursday</string>
|
||||
<string id="30070">Friday</string>
|
||||
<string id="30071">Saturday</string>
|
||||
<string id="30072">Every Day</string>
|
||||
<string id="30073">Every Week</string>
|
||||
<string id="30074">First Day of Month</string>
|
||||
<string id="30075">Custom Schedule</string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010"></string>
|
||||
<string id="30011"></string>
|
||||
<string id="30012"></string>
|
||||
<string id="30013"></string>
|
||||
<string id="30016"></string>
|
||||
<string id="30017"></string>
|
||||
<string id="30018"></string>
|
||||
<string id="30019"></string>
|
||||
<string id="30020"></string>
|
||||
<string id="30021"></string>
|
||||
<string id="30022"></string>
|
||||
<string id="30023"></string>
|
||||
<string id="30024"></string>
|
||||
<string id="30025"></string>
|
||||
<string id="30030"></string>
|
||||
<string id="30031"></string>
|
||||
<string id="30032"></string>
|
||||
<string id="30033"></string>
|
||||
<string id="30034"></string>
|
||||
<string id="30035"></string>
|
||||
<string id="30045"></string>
|
||||
<string id="30046"></string>
|
||||
<string id="30047"></string>
|
||||
<string id="30048"></string>
|
||||
<string id="30049"></string>
|
||||
<string id="30050"></string>
|
||||
<string id="30051"></string>
|
||||
<string id="30052"></string>
|
||||
<string id="30053"></string>
|
||||
<string id="30060"></string>
|
||||
<string id="30061"></string>
|
||||
<string id="30062"></string>
|
||||
<string id="30063"></string>
|
||||
<string id="30064"></string>
|
||||
<string id="30065"></string>
|
||||
<string id="30066"></string>
|
||||
<string id="30067"></string>
|
||||
<string id="30068"></string>
|
||||
<string id="30069"></string>
|
||||
<string id="30070"></string>
|
||||
<string id="30071"></string>
|
||||
<string id="30072"></string>
|
||||
<string id="30073"></string>
|
||||
<string id="30074"></string>
|
||||
<string id="30075"></string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010"></string>
|
||||
<string id="30011"></string>
|
||||
<string id="30012"></string>
|
||||
<string id="30013"></string>
|
||||
<string id="30016"></string>
|
||||
<string id="30017"></string>
|
||||
<string id="30018"></string>
|
||||
<string id="30019"></string>
|
||||
<string id="30020"></string>
|
||||
<string id="30021"></string>
|
||||
<string id="30022"></string>
|
||||
<string id="30023"></string>
|
||||
<string id="30024"></string>
|
||||
<string id="30025"></string>
|
||||
<string id="30030"></string>
|
||||
<string id="30031"></string>
|
||||
<string id="30032"></string>
|
||||
<string id="30033"></string>
|
||||
<string id="30034"></string>
|
||||
<string id="30035"></string>
|
||||
<string id="30045"></string>
|
||||
<string id="30046"></string>
|
||||
<string id="30047"></string>
|
||||
<string id="30048"></string>
|
||||
<string id="30049"></string>
|
||||
<string id="30050"></string>
|
||||
<string id="30051"></string>
|
||||
<string id="30052"></string>
|
||||
<string id="30053"></string>
|
||||
<string id="30060"></string>
|
||||
<string id="30061"></string>
|
||||
<string id="30062"></string>
|
||||
<string id="30063"></string>
|
||||
<string id="30064"></string>
|
||||
<string id="30065"></string>
|
||||
<string id="30066"></string>
|
||||
<string id="30067"></string>
|
||||
<string id="30068"></string>
|
||||
<string id="30069"></string>
|
||||
<string id="30070"></string>
|
||||
<string id="30071"></string>
|
||||
<string id="30072"></string>
|
||||
<string id="30073"></string>
|
||||
<string id="30074"></string>
|
||||
<string id="30075"></string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010"></string>
|
||||
<string id="30011"></string>
|
||||
<string id="30012"></string>
|
||||
<string id="30013"></string>
|
||||
<string id="30016"></string>
|
||||
<string id="30017"></string>
|
||||
<string id="30018"></string>
|
||||
<string id="30019"></string>
|
||||
<string id="30020"></string>
|
||||
<string id="30021"></string>
|
||||
<string id="30022"></string>
|
||||
<string id="30023"></string>
|
||||
<string id="30024"></string>
|
||||
<string id="30025"></string>
|
||||
<string id="30030"></string>
|
||||
<string id="30031"></string>
|
||||
<string id="30032"></string>
|
||||
<string id="30033"></string>
|
||||
<string id="30034"></string>
|
||||
<string id="30035"></string>
|
||||
<string id="30045"></string>
|
||||
<string id="30046"></string>
|
||||
<string id="30047"></string>
|
||||
<string id="30048"></string>
|
||||
<string id="30049"></string>
|
||||
<string id="30050"></string>
|
||||
<string id="30051"></string>
|
||||
<string id="30052"></string>
|
||||
<string id="30053"></string>
|
||||
<string id="30060"></string>
|
||||
<string id="30061"></string>
|
||||
<string id="30062"></string>
|
||||
<string id="30063"></string>
|
||||
<string id="30064"></string>
|
||||
<string id="30065"></string>
|
||||
<string id="30066"></string>
|
||||
<string id="30067"></string>
|
||||
<string id="30068"></string>
|
||||
<string id="30069"></string>
|
||||
<string id="30070"></string>
|
||||
<string id="30071"></string>
|
||||
<string id="30072"></string>
|
||||
<string id="30073"></string>
|
||||
<string id="30074"></string>
|
||||
<string id="30075"></string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010">Sauvegarde XBMC</string>
|
||||
<string id="30011">Général</string>
|
||||
<string id="30012">Sélection des fichiers</string>
|
||||
<string id="30013">Planification</string>
|
||||
<string id="30016">Sauvegarde</string>
|
||||
<string id="30017">Restauration</string>
|
||||
<string id="30018">Parcourir</string>
|
||||
<string id="30019">Saisir</string>
|
||||
<string id="30020">Parcourir le chemin de sauvegarde</string>
|
||||
<string id="30021">Nom du répertoire de sauvegarde</string>
|
||||
<string id="30022">Mode silencieux</string>
|
||||
<string id="30023">Mode</string>
|
||||
<string id="30024">Saisir le chemin de sauvegarde</string>
|
||||
<string id="30025">Mode de saisie du chemin</string>
|
||||
<string id="30030">Addons de l'utilisaeur</string>
|
||||
<string id="30031">Données des addons</string>
|
||||
<string id="30032">Base de données</string>
|
||||
<string id="30033">Playliste</string>
|
||||
<string id="30034">Miniatures / Fanart</string>
|
||||
<string id="30035">Fichiers de configuration</string>
|
||||
<string id="30045">Erreur : chemin distant n'existe pas</string>
|
||||
<string id="30046">Démarrage</string>
|
||||
<string id="30047">Dossier Local</string>
|
||||
<string id="30048">Dossier Distant</string>
|
||||
<string id="30049">Collecte de la liste des fichiers</string>
|
||||
<string id="30050">Le chemin distant existe - d'anciens fichiers peuvent s'y trouver !</string>
|
||||
<string id="30051">Création de la liste des fichiers</string>
|
||||
<string id="30052">Ecriture du fichier</string>
|
||||
<string id="30053">Démarrage de la sauvegarde planifiée</string>
|
||||
<string id="30060">Activer le planificateur</string>
|
||||
<string id="30061">Planifier</string>
|
||||
<string id="30062">Heure</string>
|
||||
<string id="30063">Jour de la semaine</string>
|
||||
<string id="30064">Planification Cron</string>
|
||||
<string id="30065">Dimanche</string>
|
||||
<string id="30066">Lundi</string>
|
||||
<string id="30067">Mardi</string>
|
||||
<string id="30068">Mercredi</string>
|
||||
<string id="30069">Jeudi</string>
|
||||
<string id="30070">Vendredi</string>
|
||||
<string id="30071">Samedi</string>
|
||||
<string id="30072">Chaque jour</string>
|
||||
<string id="30073">Chaque semaine</string>
|
||||
<string id="30074">Premier jour du mois</string>
|
||||
<string id="30075">Planification personnalisée</string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010"></string>
|
||||
<string id="30011"></string>
|
||||
<string id="30012"></string>
|
||||
<string id="30013"></string>
|
||||
<string id="30016"></string>
|
||||
<string id="30017"></string>
|
||||
<string id="30018"></string>
|
||||
<string id="30019"></string>
|
||||
<string id="30020"></string>
|
||||
<string id="30021"></string>
|
||||
<string id="30022"></string>
|
||||
<string id="30023"></string>
|
||||
<string id="30024"></string>
|
||||
<string id="30025"></string>
|
||||
<string id="30030"></string>
|
||||
<string id="30031"></string>
|
||||
<string id="30032"></string>
|
||||
<string id="30033"></string>
|
||||
<string id="30034"></string>
|
||||
<string id="30035"></string>
|
||||
<string id="30045"></string>
|
||||
<string id="30046"></string>
|
||||
<string id="30047"></string>
|
||||
<string id="30048"></string>
|
||||
<string id="30049"></string>
|
||||
<string id="30050"></string>
|
||||
<string id="30051"></string>
|
||||
<string id="30052"></string>
|
||||
<string id="30053"></string>
|
||||
<string id="30060"></string>
|
||||
<string id="30061"></string>
|
||||
<string id="30062"></string>
|
||||
<string id="30063"></string>
|
||||
<string id="30064"></string>
|
||||
<string id="30065"></string>
|
||||
<string id="30066"></string>
|
||||
<string id="30067"></string>
|
||||
<string id="30068"></string>
|
||||
<string id="30069"></string>
|
||||
<string id="30070"></string>
|
||||
<string id="30071"></string>
|
||||
<string id="30072"></string>
|
||||
<string id="30073"></string>
|
||||
<string id="30074"></string>
|
||||
<string id="30075"></string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010">XBMC Backup</string>
|
||||
<string id="30011">Allgemein</string>
|
||||
<string id="30012">Datenauswahl</string>
|
||||
<string id="30013">Zeitplan</string>
|
||||
<string id="30016">Sichern</string>
|
||||
<string id="30017">Wiederherstellen</string>
|
||||
<string id="30018">Verzeichnis wählen</string>
|
||||
<string id="30019">Verzeichnis eintippen</string>
|
||||
<string id="30020">Entferntes Verzeichnis wählen</string>
|
||||
<string id="30021">Sicherungsverzeichnisname</string>
|
||||
<string id="30022">Im Hintergrund arbeiten</string>
|
||||
<string id="30023">Modus</string>
|
||||
<string id="30024">Entferntes Verzeichnis</string>
|
||||
<string id="30025">Typ Entferntes Verzeichnis</string>
|
||||
<string id="30030">Benutzer Addons</string>
|
||||
<string id="30031">Addon Daten</string>
|
||||
<string id="30032">Datenbanken</string>
|
||||
<string id="30033">Playlisten</string>
|
||||
<string id="30034">Thumbnails/Fanart</string>
|
||||
<string id="30035">Config Dateien</string>
|
||||
<string id="30045">Fehler: Entferntes Verzeichnis nicht konfiguriert</string>
|
||||
<string id="30046">Starte</string>
|
||||
<string id="30047">Lokales Verzeichnis</string>
|
||||
<string id="30048">Entferntes Verzeichnis</string>
|
||||
<string id="30049">Dateiliste wird erzeugt</string>
|
||||
<string id="30050">Entferntes Verzeichnis existiert - es könnte bereits Dateien beinhalten!</string>
|
||||
<string id="30051">Dateiliste wird erzeugt</string>
|
||||
<string id="30052">Schreibe Datei</string>
|
||||
<string id="30053">Starte geplantes backup</string>
|
||||
<string id="30060">Zeitplaner einschalten</string>
|
||||
<string id="30061">Zeitplan</string>
|
||||
<string id="30062">Stunde</string>
|
||||
<string id="30063">Wochentag</string>
|
||||
<string id="30064">Cron Plan</string>
|
||||
<string id="30065">Sonntag</string>
|
||||
<string id="30066">Montag</string>
|
||||
<string id="30067">Dienstag</string>
|
||||
<string id="30068">Mittwoch</string>
|
||||
<string id="30069">Donnerstag</string>
|
||||
<string id="30070">Freitag</string>
|
||||
<string id="30071">Samstag</string>
|
||||
<string id="30072">Jeden Tag</string>
|
||||
<string id="30073">Jede Woche</string>
|
||||
<string id="30074">Erster Tag eines Monats</string>
|
||||
<string id="30075">Benutzerdefiniert</string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010"></string>
|
||||
<string id="30011"></string>
|
||||
<string id="30012"></string>
|
||||
<string id="30013"></string>
|
||||
<string id="30016"></string>
|
||||
<string id="30017"></string>
|
||||
<string id="30018"></string>
|
||||
<string id="30019"></string>
|
||||
<string id="30020"></string>
|
||||
<string id="30021"></string>
|
||||
<string id="30022"></string>
|
||||
<string id="30023"></string>
|
||||
<string id="30024"></string>
|
||||
<string id="30025"></string>
|
||||
<string id="30030"></string>
|
||||
<string id="30031"></string>
|
||||
<string id="30032"></string>
|
||||
<string id="30033"></string>
|
||||
<string id="30034"></string>
|
||||
<string id="30035"></string>
|
||||
<string id="30045"></string>
|
||||
<string id="30046"></string>
|
||||
<string id="30047"></string>
|
||||
<string id="30048"></string>
|
||||
<string id="30049"></string>
|
||||
<string id="30050"></string>
|
||||
<string id="30051"></string>
|
||||
<string id="30052"></string>
|
||||
<string id="30053"></string>
|
||||
<string id="30060"></string>
|
||||
<string id="30061"></string>
|
||||
<string id="30062"></string>
|
||||
<string id="30063"></string>
|
||||
<string id="30064"></string>
|
||||
<string id="30065"></string>
|
||||
<string id="30066"></string>
|
||||
<string id="30067"></string>
|
||||
<string id="30068"></string>
|
||||
<string id="30069"></string>
|
||||
<string id="30070"></string>
|
||||
<string id="30071"></string>
|
||||
<string id="30072"></string>
|
||||
<string id="30073"></string>
|
||||
<string id="30074"></string>
|
||||
<string id="30075"></string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010"></string>
|
||||
<string id="30011"></string>
|
||||
<string id="30012"></string>
|
||||
<string id="30013"></string>
|
||||
<string id="30016"></string>
|
||||
<string id="30017"></string>
|
||||
<string id="30018"></string>
|
||||
<string id="30019"></string>
|
||||
<string id="30020"></string>
|
||||
<string id="30021"></string>
|
||||
<string id="30022"></string>
|
||||
<string id="30023"></string>
|
||||
<string id="30024"></string>
|
||||
<string id="30025"></string>
|
||||
<string id="30030"></string>
|
||||
<string id="30031"></string>
|
||||
<string id="30032"></string>
|
||||
<string id="30033"></string>
|
||||
<string id="30034"></string>
|
||||
<string id="30035"></string>
|
||||
<string id="30045"></string>
|
||||
<string id="30046"></string>
|
||||
<string id="30047"></string>
|
||||
<string id="30048"></string>
|
||||
<string id="30049"></string>
|
||||
<string id="30050"></string>
|
||||
<string id="30051"></string>
|
||||
<string id="30052"></string>
|
||||
<string id="30053"></string>
|
||||
<string id="30060"></string>
|
||||
<string id="30061"></string>
|
||||
<string id="30062"></string>
|
||||
<string id="30063"></string>
|
||||
<string id="30064"></string>
|
||||
<string id="30065"></string>
|
||||
<string id="30066"></string>
|
||||
<string id="30067"></string>
|
||||
<string id="30068"></string>
|
||||
<string id="30069"></string>
|
||||
<string id="30070"></string>
|
||||
<string id="30071"></string>
|
||||
<string id="30072"></string>
|
||||
<string id="30073"></string>
|
||||
<string id="30074"></string>
|
||||
<string id="30075"></string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010"></string>
|
||||
<string id="30011"></string>
|
||||
<string id="30012"></string>
|
||||
<string id="30013"></string>
|
||||
<string id="30016"></string>
|
||||
<string id="30017"></string>
|
||||
<string id="30018"></string>
|
||||
<string id="30019"></string>
|
||||
<string id="30020"></string>
|
||||
<string id="30021"></string>
|
||||
<string id="30022"></string>
|
||||
<string id="30023"></string>
|
||||
<string id="30024"></string>
|
||||
<string id="30025"></string>
|
||||
<string id="30030"></string>
|
||||
<string id="30031"></string>
|
||||
<string id="30032"></string>
|
||||
<string id="30033"></string>
|
||||
<string id="30034"></string>
|
||||
<string id="30035"></string>
|
||||
<string id="30045"></string>
|
||||
<string id="30046"></string>
|
||||
<string id="30047"></string>
|
||||
<string id="30048"></string>
|
||||
<string id="30049"></string>
|
||||
<string id="30050"></string>
|
||||
<string id="30051"></string>
|
||||
<string id="30052"></string>
|
||||
<string id="30053"></string>
|
||||
<string id="30060"></string>
|
||||
<string id="30061"></string>
|
||||
<string id="30062"></string>
|
||||
<string id="30063"></string>
|
||||
<string id="30064"></string>
|
||||
<string id="30065"></string>
|
||||
<string id="30066"></string>
|
||||
<string id="30067"></string>
|
||||
<string id="30068"></string>
|
||||
<string id="30069"></string>
|
||||
<string id="30070"></string>
|
||||
<string id="30071"></string>
|
||||
<string id="30072"></string>
|
||||
<string id="30073"></string>
|
||||
<string id="30074"></string>
|
||||
<string id="30075"></string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010"></string>
|
||||
<string id="30011"></string>
|
||||
<string id="30012"></string>
|
||||
<string id="30013"></string>
|
||||
<string id="30016"></string>
|
||||
<string id="30017"></string>
|
||||
<string id="30018"></string>
|
||||
<string id="30019"></string>
|
||||
<string id="30020"></string>
|
||||
<string id="30021"></string>
|
||||
<string id="30022"></string>
|
||||
<string id="30023"></string>
|
||||
<string id="30024"></string>
|
||||
<string id="30025"></string>
|
||||
<string id="30030"></string>
|
||||
<string id="30031"></string>
|
||||
<string id="30032"></string>
|
||||
<string id="30033"></string>
|
||||
<string id="30034"></string>
|
||||
<string id="30035"></string>
|
||||
<string id="30045"></string>
|
||||
<string id="30046"></string>
|
||||
<string id="30047"></string>
|
||||
<string id="30048"></string>
|
||||
<string id="30049"></string>
|
||||
<string id="30050"></string>
|
||||
<string id="30051"></string>
|
||||
<string id="30052"></string>
|
||||
<string id="30053"></string>
|
||||
<string id="30060"></string>
|
||||
<string id="30061"></string>
|
||||
<string id="30062"></string>
|
||||
<string id="30063"></string>
|
||||
<string id="30064"></string>
|
||||
<string id="30065"></string>
|
||||
<string id="30066"></string>
|
||||
<string id="30067"></string>
|
||||
<string id="30068"></string>
|
||||
<string id="30069"></string>
|
||||
<string id="30070"></string>
|
||||
<string id="30071"></string>
|
||||
<string id="30072"></string>
|
||||
<string id="30073"></string>
|
||||
<string id="30074"></string>
|
||||
<string id="30075"></string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010"></string>
|
||||
<string id="30011"></string>
|
||||
<string id="30012"></string>
|
||||
<string id="30013"></string>
|
||||
<string id="30016"></string>
|
||||
<string id="30017"></string>
|
||||
<string id="30018"></string>
|
||||
<string id="30019"></string>
|
||||
<string id="30020"></string>
|
||||
<string id="30021"></string>
|
||||
<string id="30022"></string>
|
||||
<string id="30023"></string>
|
||||
<string id="30024"></string>
|
||||
<string id="30025"></string>
|
||||
<string id="30030"></string>
|
||||
<string id="30031"></string>
|
||||
<string id="30032"></string>
|
||||
<string id="30033"></string>
|
||||
<string id="30034"></string>
|
||||
<string id="30035"></string>
|
||||
<string id="30045"></string>
|
||||
<string id="30046"></string>
|
||||
<string id="30047"></string>
|
||||
<string id="30048"></string>
|
||||
<string id="30049"></string>
|
||||
<string id="30050"></string>
|
||||
<string id="30051"></string>
|
||||
<string id="30052"></string>
|
||||
<string id="30053"></string>
|
||||
<string id="30060"></string>
|
||||
<string id="30061"></string>
|
||||
<string id="30062"></string>
|
||||
<string id="30063"></string>
|
||||
<string id="30064"></string>
|
||||
<string id="30065"></string>
|
||||
<string id="30066"></string>
|
||||
<string id="30067"></string>
|
||||
<string id="30068"></string>
|
||||
<string id="30069"></string>
|
||||
<string id="30070"></string>
|
||||
<string id="30071"></string>
|
||||
<string id="30072"></string>
|
||||
<string id="30073"></string>
|
||||
<string id="30074"></string>
|
||||
<string id="30075"></string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010"></string>
|
||||
<string id="30011"></string>
|
||||
<string id="30012"></string>
|
||||
<string id="30013"></string>
|
||||
<string id="30016"></string>
|
||||
<string id="30017"></string>
|
||||
<string id="30018"></string>
|
||||
<string id="30019"></string>
|
||||
<string id="30020"></string>
|
||||
<string id="30021"></string>
|
||||
<string id="30022"></string>
|
||||
<string id="30023"></string>
|
||||
<string id="30024"></string>
|
||||
<string id="30025"></string>
|
||||
<string id="30030"></string>
|
||||
<string id="30031"></string>
|
||||
<string id="30032"></string>
|
||||
<string id="30033"></string>
|
||||
<string id="30034"></string>
|
||||
<string id="30035"></string>
|
||||
<string id="30045"></string>
|
||||
<string id="30046"></string>
|
||||
<string id="30047"></string>
|
||||
<string id="30048"></string>
|
||||
<string id="30049"></string>
|
||||
<string id="30050"></string>
|
||||
<string id="30051"></string>
|
||||
<string id="30052"></string>
|
||||
<string id="30053"></string>
|
||||
<string id="30060"></string>
|
||||
<string id="30061"></string>
|
||||
<string id="30062"></string>
|
||||
<string id="30063"></string>
|
||||
<string id="30064"></string>
|
||||
<string id="30065"></string>
|
||||
<string id="30066"></string>
|
||||
<string id="30067"></string>
|
||||
<string id="30068"></string>
|
||||
<string id="30069"></string>
|
||||
<string id="30070"></string>
|
||||
<string id="30071"></string>
|
||||
<string id="30072"></string>
|
||||
<string id="30073"></string>
|
||||
<string id="30074"></string>
|
||||
<string id="30075"></string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010"></string>
|
||||
<string id="30011"></string>
|
||||
<string id="30012"></string>
|
||||
<string id="30013"></string>
|
||||
<string id="30016"></string>
|
||||
<string id="30017"></string>
|
||||
<string id="30018"></string>
|
||||
<string id="30019"></string>
|
||||
<string id="30020"></string>
|
||||
<string id="30021"></string>
|
||||
<string id="30022"></string>
|
||||
<string id="30023"></string>
|
||||
<string id="30024"></string>
|
||||
<string id="30025"></string>
|
||||
<string id="30030"></string>
|
||||
<string id="30031"></string>
|
||||
<string id="30032"></string>
|
||||
<string id="30033"></string>
|
||||
<string id="30034"></string>
|
||||
<string id="30035"></string>
|
||||
<string id="30045"></string>
|
||||
<string id="30046"></string>
|
||||
<string id="30047"></string>
|
||||
<string id="30048"></string>
|
||||
<string id="30049"></string>
|
||||
<string id="30050"></string>
|
||||
<string id="30051"></string>
|
||||
<string id="30052"></string>
|
||||
<string id="30053"></string>
|
||||
<string id="30060"></string>
|
||||
<string id="30061"></string>
|
||||
<string id="30062"></string>
|
||||
<string id="30063"></string>
|
||||
<string id="30064"></string>
|
||||
<string id="30065"></string>
|
||||
<string id="30066"></string>
|
||||
<string id="30067"></string>
|
||||
<string id="30068"></string>
|
||||
<string id="30069"></string>
|
||||
<string id="30070"></string>
|
||||
<string id="30071"></string>
|
||||
<string id="30072"></string>
|
||||
<string id="30073"></string>
|
||||
<string id="30074"></string>
|
||||
<string id="30075"></string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010"></string>
|
||||
<string id="30011"></string>
|
||||
<string id="30012"></string>
|
||||
<string id="30013"></string>
|
||||
<string id="30016"></string>
|
||||
<string id="30017"></string>
|
||||
<string id="30018"></string>
|
||||
<string id="30019"></string>
|
||||
<string id="30020"></string>
|
||||
<string id="30021"></string>
|
||||
<string id="30022"></string>
|
||||
<string id="30023"></string>
|
||||
<string id="30024"></string>
|
||||
<string id="30025"></string>
|
||||
<string id="30030"></string>
|
||||
<string id="30031"></string>
|
||||
<string id="30032"></string>
|
||||
<string id="30033"></string>
|
||||
<string id="30034"></string>
|
||||
<string id="30035"></string>
|
||||
<string id="30045"></string>
|
||||
<string id="30046"></string>
|
||||
<string id="30047"></string>
|
||||
<string id="30048"></string>
|
||||
<string id="30049"></string>
|
||||
<string id="30050"></string>
|
||||
<string id="30051"></string>
|
||||
<string id="30052"></string>
|
||||
<string id="30053"></string>
|
||||
<string id="30060"></string>
|
||||
<string id="30061"></string>
|
||||
<string id="30062"></string>
|
||||
<string id="30063"></string>
|
||||
<string id="30064"></string>
|
||||
<string id="30065"></string>
|
||||
<string id="30066"></string>
|
||||
<string id="30067"></string>
|
||||
<string id="30068"></string>
|
||||
<string id="30069"></string>
|
||||
<string id="30070"></string>
|
||||
<string id="30071"></string>
|
||||
<string id="30072"></string>
|
||||
<string id="30073"></string>
|
||||
<string id="30074"></string>
|
||||
<string id="30075"></string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010"></string>
|
||||
<string id="30011"></string>
|
||||
<string id="30012"></string>
|
||||
<string id="30013"></string>
|
||||
<string id="30016"></string>
|
||||
<string id="30017"></string>
|
||||
<string id="30018"></string>
|
||||
<string id="30019"></string>
|
||||
<string id="30020"></string>
|
||||
<string id="30021"></string>
|
||||
<string id="30022"></string>
|
||||
<string id="30023"></string>
|
||||
<string id="30024"></string>
|
||||
<string id="30025"></string>
|
||||
<string id="30030"></string>
|
||||
<string id="30031"></string>
|
||||
<string id="30032"></string>
|
||||
<string id="30033"></string>
|
||||
<string id="30034"></string>
|
||||
<string id="30035"></string>
|
||||
<string id="30045"></string>
|
||||
<string id="30046"></string>
|
||||
<string id="30047"></string>
|
||||
<string id="30048"></string>
|
||||
<string id="30049"></string>
|
||||
<string id="30050"></string>
|
||||
<string id="30051"></string>
|
||||
<string id="30052"></string>
|
||||
<string id="30053"></string>
|
||||
<string id="30060"></string>
|
||||
<string id="30061"></string>
|
||||
<string id="30062"></string>
|
||||
<string id="30063"></string>
|
||||
<string id="30064"></string>
|
||||
<string id="30065"></string>
|
||||
<string id="30066"></string>
|
||||
<string id="30067"></string>
|
||||
<string id="30068"></string>
|
||||
<string id="30069"></string>
|
||||
<string id="30070"></string>
|
||||
<string id="30071"></string>
|
||||
<string id="30072"></string>
|
||||
<string id="30073"></string>
|
||||
<string id="30074"></string>
|
||||
<string id="30075"></string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010"></string>
|
||||
<string id="30011"></string>
|
||||
<string id="30012"></string>
|
||||
<string id="30013"></string>
|
||||
<string id="30016"></string>
|
||||
<string id="30017"></string>
|
||||
<string id="30018"></string>
|
||||
<string id="30019"></string>
|
||||
<string id="30020"></string>
|
||||
<string id="30021"></string>
|
||||
<string id="30022"></string>
|
||||
<string id="30023"></string>
|
||||
<string id="30024"></string>
|
||||
<string id="30025"></string>
|
||||
<string id="30030"></string>
|
||||
<string id="30031"></string>
|
||||
<string id="30032"></string>
|
||||
<string id="30033"></string>
|
||||
<string id="30034"></string>
|
||||
<string id="30035"></string>
|
||||
<string id="30045"></string>
|
||||
<string id="30046"></string>
|
||||
<string id="30047"></string>
|
||||
<string id="30048"></string>
|
||||
<string id="30049"></string>
|
||||
<string id="30050"></string>
|
||||
<string id="30051"></string>
|
||||
<string id="30052"></string>
|
||||
<string id="30053"></string>
|
||||
<string id="30060"></string>
|
||||
<string id="30061"></string>
|
||||
<string id="30062"></string>
|
||||
<string id="30063"></string>
|
||||
<string id="30064"></string>
|
||||
<string id="30065"></string>
|
||||
<string id="30066"></string>
|
||||
<string id="30067"></string>
|
||||
<string id="30068"></string>
|
||||
<string id="30069"></string>
|
||||
<string id="30070"></string>
|
||||
<string id="30071"></string>
|
||||
<string id="30072"></string>
|
||||
<string id="30073"></string>
|
||||
<string id="30074"></string>
|
||||
<string id="30075"></string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010"></string>
|
||||
<string id="30011"></string>
|
||||
<string id="30012"></string>
|
||||
<string id="30013"></string>
|
||||
<string id="30016"></string>
|
||||
<string id="30017"></string>
|
||||
<string id="30018"></string>
|
||||
<string id="30019"></string>
|
||||
<string id="30020"></string>
|
||||
<string id="30021"></string>
|
||||
<string id="30022"></string>
|
||||
<string id="30023"></string>
|
||||
<string id="30024"></string>
|
||||
<string id="30025"></string>
|
||||
<string id="30030"></string>
|
||||
<string id="30031"></string>
|
||||
<string id="30032"></string>
|
||||
<string id="30033"></string>
|
||||
<string id="30034"></string>
|
||||
<string id="30035"></string>
|
||||
<string id="30045"></string>
|
||||
<string id="30046"></string>
|
||||
<string id="30047"></string>
|
||||
<string id="30048"></string>
|
||||
<string id="30049"></string>
|
||||
<string id="30050"></string>
|
||||
<string id="30051"></string>
|
||||
<string id="30052"></string>
|
||||
<string id="30053"></string>
|
||||
<string id="30060"></string>
|
||||
<string id="30061"></string>
|
||||
<string id="30062"></string>
|
||||
<string id="30063"></string>
|
||||
<string id="30064"></string>
|
||||
<string id="30065"></string>
|
||||
<string id="30066"></string>
|
||||
<string id="30067"></string>
|
||||
<string id="30068"></string>
|
||||
<string id="30069"></string>
|
||||
<string id="30070"></string>
|
||||
<string id="30071"></string>
|
||||
<string id="30072"></string>
|
||||
<string id="30073"></string>
|
||||
<string id="30074"></string>
|
||||
<string id="30075"></string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010"></string>
|
||||
<string id="30011"></string>
|
||||
<string id="30012"></string>
|
||||
<string id="30013"></string>
|
||||
<string id="30016"></string>
|
||||
<string id="30017"></string>
|
||||
<string id="30018"></string>
|
||||
<string id="30019"></string>
|
||||
<string id="30020"></string>
|
||||
<string id="30021"></string>
|
||||
<string id="30022"></string>
|
||||
<string id="30023"></string>
|
||||
<string id="30024"></string>
|
||||
<string id="30025"></string>
|
||||
<string id="30030"></string>
|
||||
<string id="30031"></string>
|
||||
<string id="30032"></string>
|
||||
<string id="30033"></string>
|
||||
<string id="30034"></string>
|
||||
<string id="30035"></string>
|
||||
<string id="30045"></string>
|
||||
<string id="30046"></string>
|
||||
<string id="30047"></string>
|
||||
<string id="30048"></string>
|
||||
<string id="30049"></string>
|
||||
<string id="30050"></string>
|
||||
<string id="30051"></string>
|
||||
<string id="30052"></string>
|
||||
<string id="30053"></string>
|
||||
<string id="30060"></string>
|
||||
<string id="30061"></string>
|
||||
<string id="30062"></string>
|
||||
<string id="30063"></string>
|
||||
<string id="30064"></string>
|
||||
<string id="30065"></string>
|
||||
<string id="30066"></string>
|
||||
<string id="30067"></string>
|
||||
<string id="30068"></string>
|
||||
<string id="30069"></string>
|
||||
<string id="30070"></string>
|
||||
<string id="30071"></string>
|
||||
<string id="30072"></string>
|
||||
<string id="30073"></string>
|
||||
<string id="30074"></string>
|
||||
<string id="30075"></string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010"></string>
|
||||
<string id="30011"></string>
|
||||
<string id="30012"></string>
|
||||
<string id="30013"></string>
|
||||
<string id="30016"></string>
|
||||
<string id="30017"></string>
|
||||
<string id="30018"></string>
|
||||
<string id="30019"></string>
|
||||
<string id="30020"></string>
|
||||
<string id="30021"></string>
|
||||
<string id="30022"></string>
|
||||
<string id="30023"></string>
|
||||
<string id="30024"></string>
|
||||
<string id="30025"></string>
|
||||
<string id="30030"></string>
|
||||
<string id="30031"></string>
|
||||
<string id="30032"></string>
|
||||
<string id="30033"></string>
|
||||
<string id="30034"></string>
|
||||
<string id="30035"></string>
|
||||
<string id="30045"></string>
|
||||
<string id="30046"></string>
|
||||
<string id="30047"></string>
|
||||
<string id="30048"></string>
|
||||
<string id="30049"></string>
|
||||
<string id="30050"></string>
|
||||
<string id="30051"></string>
|
||||
<string id="30052"></string>
|
||||
<string id="30053"></string>
|
||||
<string id="30060"></string>
|
||||
<string id="30061"></string>
|
||||
<string id="30062"></string>
|
||||
<string id="30063"></string>
|
||||
<string id="30064"></string>
|
||||
<string id="30065"></string>
|
||||
<string id="30066"></string>
|
||||
<string id="30067"></string>
|
||||
<string id="30068"></string>
|
||||
<string id="30069"></string>
|
||||
<string id="30070"></string>
|
||||
<string id="30071"></string>
|
||||
<string id="30072"></string>
|
||||
<string id="30073"></string>
|
||||
<string id="30074"></string>
|
||||
<string id="30075"></string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010"></string>
|
||||
<string id="30011"></string>
|
||||
<string id="30012"></string>
|
||||
<string id="30013"></string>
|
||||
<string id="30016"></string>
|
||||
<string id="30017"></string>
|
||||
<string id="30018"></string>
|
||||
<string id="30019"></string>
|
||||
<string id="30020"></string>
|
||||
<string id="30021"></string>
|
||||
<string id="30022"></string>
|
||||
<string id="30023"></string>
|
||||
<string id="30024"></string>
|
||||
<string id="30025"></string>
|
||||
<string id="30030"></string>
|
||||
<string id="30031"></string>
|
||||
<string id="30032"></string>
|
||||
<string id="30033"></string>
|
||||
<string id="30034"></string>
|
||||
<string id="30035"></string>
|
||||
<string id="30045"></string>
|
||||
<string id="30046"></string>
|
||||
<string id="30047"></string>
|
||||
<string id="30048"></string>
|
||||
<string id="30049"></string>
|
||||
<string id="30050"></string>
|
||||
<string id="30051"></string>
|
||||
<string id="30052"></string>
|
||||
<string id="30053"></string>
|
||||
<string id="30060"></string>
|
||||
<string id="30061"></string>
|
||||
<string id="30062"></string>
|
||||
<string id="30063"></string>
|
||||
<string id="30064"></string>
|
||||
<string id="30065"></string>
|
||||
<string id="30066"></string>
|
||||
<string id="30067"></string>
|
||||
<string id="30068"></string>
|
||||
<string id="30069"></string>
|
||||
<string id="30070"></string>
|
||||
<string id="30071"></string>
|
||||
<string id="30072"></string>
|
||||
<string id="30073"></string>
|
||||
<string id="30074"></string>
|
||||
<string id="30075"></string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010"></string>
|
||||
<string id="30011"></string>
|
||||
<string id="30012"></string>
|
||||
<string id="30013"></string>
|
||||
<string id="30016"></string>
|
||||
<string id="30017"></string>
|
||||
<string id="30018"></string>
|
||||
<string id="30019"></string>
|
||||
<string id="30020"></string>
|
||||
<string id="30021"></string>
|
||||
<string id="30022"></string>
|
||||
<string id="30023"></string>
|
||||
<string id="30024"></string>
|
||||
<string id="30025"></string>
|
||||
<string id="30030"></string>
|
||||
<string id="30031"></string>
|
||||
<string id="30032"></string>
|
||||
<string id="30033"></string>
|
||||
<string id="30034"></string>
|
||||
<string id="30035"></string>
|
||||
<string id="30045"></string>
|
||||
<string id="30046"></string>
|
||||
<string id="30047"></string>
|
||||
<string id="30048"></string>
|
||||
<string id="30049"></string>
|
||||
<string id="30050"></string>
|
||||
<string id="30051"></string>
|
||||
<string id="30052"></string>
|
||||
<string id="30053"></string>
|
||||
<string id="30060"></string>
|
||||
<string id="30061"></string>
|
||||
<string id="30062"></string>
|
||||
<string id="30063"></string>
|
||||
<string id="30064"></string>
|
||||
<string id="30065"></string>
|
||||
<string id="30066"></string>
|
||||
<string id="30067"></string>
|
||||
<string id="30068"></string>
|
||||
<string id="30069"></string>
|
||||
<string id="30070"></string>
|
||||
<string id="30071"></string>
|
||||
<string id="30072"></string>
|
||||
<string id="30073"></string>
|
||||
<string id="30074"></string>
|
||||
<string id="30075"></string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010"></string>
|
||||
<string id="30011"></string>
|
||||
<string id="30012"></string>
|
||||
<string id="30013"></string>
|
||||
<string id="30016"></string>
|
||||
<string id="30017"></string>
|
||||
<string id="30018"></string>
|
||||
<string id="30019"></string>
|
||||
<string id="30020"></string>
|
||||
<string id="30021"></string>
|
||||
<string id="30022"></string>
|
||||
<string id="30023"></string>
|
||||
<string id="30024"></string>
|
||||
<string id="30025"></string>
|
||||
<string id="30030"></string>
|
||||
<string id="30031"></string>
|
||||
<string id="30032"></string>
|
||||
<string id="30033"></string>
|
||||
<string id="30034"></string>
|
||||
<string id="30035"></string>
|
||||
<string id="30045"></string>
|
||||
<string id="30046"></string>
|
||||
<string id="30047"></string>
|
||||
<string id="30048"></string>
|
||||
<string id="30049"></string>
|
||||
<string id="30050"></string>
|
||||
<string id="30051"></string>
|
||||
<string id="30052"></string>
|
||||
<string id="30053"></string>
|
||||
<string id="30060"></string>
|
||||
<string id="30061"></string>
|
||||
<string id="30062"></string>
|
||||
<string id="30063"></string>
|
||||
<string id="30064"></string>
|
||||
<string id="30065"></string>
|
||||
<string id="30066"></string>
|
||||
<string id="30067"></string>
|
||||
<string id="30068"></string>
|
||||
<string id="30069"></string>
|
||||
<string id="30070"></string>
|
||||
<string id="30071"></string>
|
||||
<string id="30072"></string>
|
||||
<string id="30073"></string>
|
||||
<string id="30074"></string>
|
||||
<string id="30075"></string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010"></string>
|
||||
<string id="30011"></string>
|
||||
<string id="30012"></string>
|
||||
<string id="30013"></string>
|
||||
<string id="30016"></string>
|
||||
<string id="30017"></string>
|
||||
<string id="30018"></string>
|
||||
<string id="30019"></string>
|
||||
<string id="30020"></string>
|
||||
<string id="30021"></string>
|
||||
<string id="30022"></string>
|
||||
<string id="30023"></string>
|
||||
<string id="30024"></string>
|
||||
<string id="30025"></string>
|
||||
<string id="30030"></string>
|
||||
<string id="30031"></string>
|
||||
<string id="30032"></string>
|
||||
<string id="30033"></string>
|
||||
<string id="30034"></string>
|
||||
<string id="30035"></string>
|
||||
<string id="30045"></string>
|
||||
<string id="30046"></string>
|
||||
<string id="30047"></string>
|
||||
<string id="30048"></string>
|
||||
<string id="30049"></string>
|
||||
<string id="30050"></string>
|
||||
<string id="30051"></string>
|
||||
<string id="30052"></string>
|
||||
<string id="30053"></string>
|
||||
<string id="30060"></string>
|
||||
<string id="30061"></string>
|
||||
<string id="30062"></string>
|
||||
<string id="30063"></string>
|
||||
<string id="30064"></string>
|
||||
<string id="30065"></string>
|
||||
<string id="30066"></string>
|
||||
<string id="30067"></string>
|
||||
<string id="30068"></string>
|
||||
<string id="30069"></string>
|
||||
<string id="30070"></string>
|
||||
<string id="30071"></string>
|
||||
<string id="30072"></string>
|
||||
<string id="30073"></string>
|
||||
<string id="30074"></string>
|
||||
<string id="30075"></string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010"></string>
|
||||
<string id="30011"></string>
|
||||
<string id="30012"></string>
|
||||
<string id="30013"></string>
|
||||
<string id="30016"></string>
|
||||
<string id="30017"></string>
|
||||
<string id="30018"></string>
|
||||
<string id="30019"></string>
|
||||
<string id="30020"></string>
|
||||
<string id="30021"></string>
|
||||
<string id="30022"></string>
|
||||
<string id="30023"></string>
|
||||
<string id="30024"></string>
|
||||
<string id="30025"></string>
|
||||
<string id="30030"></string>
|
||||
<string id="30031"></string>
|
||||
<string id="30032"></string>
|
||||
<string id="30033"></string>
|
||||
<string id="30034"></string>
|
||||
<string id="30035"></string>
|
||||
<string id="30045"></string>
|
||||
<string id="30046"></string>
|
||||
<string id="30047"></string>
|
||||
<string id="30048"></string>
|
||||
<string id="30049"></string>
|
||||
<string id="30050"></string>
|
||||
<string id="30051"></string>
|
||||
<string id="30052"></string>
|
||||
<string id="30053"></string>
|
||||
<string id="30060"></string>
|
||||
<string id="30061"></string>
|
||||
<string id="30062"></string>
|
||||
<string id="30063"></string>
|
||||
<string id="30064"></string>
|
||||
<string id="30065"></string>
|
||||
<string id="30066"></string>
|
||||
<string id="30067"></string>
|
||||
<string id="30068"></string>
|
||||
<string id="30069"></string>
|
||||
<string id="30070"></string>
|
||||
<string id="30071"></string>
|
||||
<string id="30072"></string>
|
||||
<string id="30073"></string>
|
||||
<string id="30074"></string>
|
||||
<string id="30075"></string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010"></string>
|
||||
<string id="30011"></string>
|
||||
<string id="30012"></string>
|
||||
<string id="30013"></string>
|
||||
<string id="30016"></string>
|
||||
<string id="30017"></string>
|
||||
<string id="30018"></string>
|
||||
<string id="30019"></string>
|
||||
<string id="30020"></string>
|
||||
<string id="30021"></string>
|
||||
<string id="30022"></string>
|
||||
<string id="30023"></string>
|
||||
<string id="30024"></string>
|
||||
<string id="30025"></string>
|
||||
<string id="30030"></string>
|
||||
<string id="30031"></string>
|
||||
<string id="30032"></string>
|
||||
<string id="30033"></string>
|
||||
<string id="30034"></string>
|
||||
<string id="30035"></string>
|
||||
<string id="30045"></string>
|
||||
<string id="30046"></string>
|
||||
<string id="30047"></string>
|
||||
<string id="30048"></string>
|
||||
<string id="30049"></string>
|
||||
<string id="30050"></string>
|
||||
<string id="30051"></string>
|
||||
<string id="30052"></string>
|
||||
<string id="30053"></string>
|
||||
<string id="30060"></string>
|
||||
<string id="30061"></string>
|
||||
<string id="30062"></string>
|
||||
<string id="30063"></string>
|
||||
<string id="30064"></string>
|
||||
<string id="30065"></string>
|
||||
<string id="30066"></string>
|
||||
<string id="30067"></string>
|
||||
<string id="30068"></string>
|
||||
<string id="30069"></string>
|
||||
<string id="30070"></string>
|
||||
<string id="30071"></string>
|
||||
<string id="30072"></string>
|
||||
<string id="30073"></string>
|
||||
<string id="30074"></string>
|
||||
<string id="30075"></string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010"></string>
|
||||
<string id="30011"></string>
|
||||
<string id="30012"></string>
|
||||
<string id="30013"></string>
|
||||
<string id="30016"></string>
|
||||
<string id="30017"></string>
|
||||
<string id="30018"></string>
|
||||
<string id="30019"></string>
|
||||
<string id="30020"></string>
|
||||
<string id="30021"></string>
|
||||
<string id="30022"></string>
|
||||
<string id="30023"></string>
|
||||
<string id="30024"></string>
|
||||
<string id="30025"></string>
|
||||
<string id="30030"></string>
|
||||
<string id="30031"></string>
|
||||
<string id="30032"></string>
|
||||
<string id="30033"></string>
|
||||
<string id="30034"></string>
|
||||
<string id="30035"></string>
|
||||
<string id="30045"></string>
|
||||
<string id="30046"></string>
|
||||
<string id="30047"></string>
|
||||
<string id="30048"></string>
|
||||
<string id="30049"></string>
|
||||
<string id="30050"></string>
|
||||
<string id="30051"></string>
|
||||
<string id="30052"></string>
|
||||
<string id="30053"></string>
|
||||
<string id="30060"></string>
|
||||
<string id="30061"></string>
|
||||
<string id="30062"></string>
|
||||
<string id="30063"></string>
|
||||
<string id="30064"></string>
|
||||
<string id="30065"></string>
|
||||
<string id="30066"></string>
|
||||
<string id="30067"></string>
|
||||
<string id="30068"></string>
|
||||
<string id="30069"></string>
|
||||
<string id="30070"></string>
|
||||
<string id="30071"></string>
|
||||
<string id="30072"></string>
|
||||
<string id="30073"></string>
|
||||
<string id="30074"></string>
|
||||
<string id="30075"></string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010"></string>
|
||||
<string id="30011"></string>
|
||||
<string id="30012"></string>
|
||||
<string id="30013"></string>
|
||||
<string id="30016"></string>
|
||||
<string id="30017"></string>
|
||||
<string id="30018"></string>
|
||||
<string id="30019"></string>
|
||||
<string id="30020"></string>
|
||||
<string id="30021"></string>
|
||||
<string id="30022"></string>
|
||||
<string id="30023"></string>
|
||||
<string id="30024"></string>
|
||||
<string id="30025"></string>
|
||||
<string id="30030"></string>
|
||||
<string id="30031"></string>
|
||||
<string id="30032"></string>
|
||||
<string id="30033"></string>
|
||||
<string id="30034"></string>
|
||||
<string id="30035"></string>
|
||||
<string id="30045"></string>
|
||||
<string id="30046"></string>
|
||||
<string id="30047"></string>
|
||||
<string id="30048"></string>
|
||||
<string id="30049"></string>
|
||||
<string id="30050"></string>
|
||||
<string id="30051"></string>
|
||||
<string id="30052"></string>
|
||||
<string id="30053"></string>
|
||||
<string id="30060"></string>
|
||||
<string id="30061"></string>
|
||||
<string id="30062"></string>
|
||||
<string id="30063"></string>
|
||||
<string id="30064"></string>
|
||||
<string id="30065"></string>
|
||||
<string id="30066"></string>
|
||||
<string id="30067"></string>
|
||||
<string id="30068"></string>
|
||||
<string id="30069"></string>
|
||||
<string id="30070"></string>
|
||||
<string id="30071"></string>
|
||||
<string id="30072"></string>
|
||||
<string id="30073"></string>
|
||||
<string id="30074"></string>
|
||||
<string id="30075"></string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010"></string>
|
||||
<string id="30011"></string>
|
||||
<string id="30012"></string>
|
||||
<string id="30013"></string>
|
||||
<string id="30016"></string>
|
||||
<string id="30017"></string>
|
||||
<string id="30018"></string>
|
||||
<string id="30019"></string>
|
||||
<string id="30020"></string>
|
||||
<string id="30021"></string>
|
||||
<string id="30022"></string>
|
||||
<string id="30023"></string>
|
||||
<string id="30024"></string>
|
||||
<string id="30025"></string>
|
||||
<string id="30030"></string>
|
||||
<string id="30031"></string>
|
||||
<string id="30032"></string>
|
||||
<string id="30033"></string>
|
||||
<string id="30034"></string>
|
||||
<string id="30035"></string>
|
||||
<string id="30045"></string>
|
||||
<string id="30046"></string>
|
||||
<string id="30047"></string>
|
||||
<string id="30048"></string>
|
||||
<string id="30049"></string>
|
||||
<string id="30050"></string>
|
||||
<string id="30051"></string>
|
||||
<string id="30052"></string>
|
||||
<string id="30053"></string>
|
||||
<string id="30060"></string>
|
||||
<string id="30061"></string>
|
||||
<string id="30062"></string>
|
||||
<string id="30063"></string>
|
||||
<string id="30064"></string>
|
||||
<string id="30065"></string>
|
||||
<string id="30066"></string>
|
||||
<string id="30067"></string>
|
||||
<string id="30068"></string>
|
||||
<string id="30069"></string>
|
||||
<string id="30070"></string>
|
||||
<string id="30071"></string>
|
||||
<string id="30072"></string>
|
||||
<string id="30073"></string>
|
||||
<string id="30074"></string>
|
||||
<string id="30075"></string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010"></string>
|
||||
<string id="30011"></string>
|
||||
<string id="30012"></string>
|
||||
<string id="30013"></string>
|
||||
<string id="30016"></string>
|
||||
<string id="30017"></string>
|
||||
<string id="30018"></string>
|
||||
<string id="30019"></string>
|
||||
<string id="30020"></string>
|
||||
<string id="30021"></string>
|
||||
<string id="30022"></string>
|
||||
<string id="30023"></string>
|
||||
<string id="30024"></string>
|
||||
<string id="30025"></string>
|
||||
<string id="30030"></string>
|
||||
<string id="30031"></string>
|
||||
<string id="30032"></string>
|
||||
<string id="30033"></string>
|
||||
<string id="30034"></string>
|
||||
<string id="30035"></string>
|
||||
<string id="30045"></string>
|
||||
<string id="30046"></string>
|
||||
<string id="30047"></string>
|
||||
<string id="30048"></string>
|
||||
<string id="30049"></string>
|
||||
<string id="30050"></string>
|
||||
<string id="30051"></string>
|
||||
<string id="30052"></string>
|
||||
<string id="30053"></string>
|
||||
<string id="30060"></string>
|
||||
<string id="30061"></string>
|
||||
<string id="30062"></string>
|
||||
<string id="30063"></string>
|
||||
<string id="30064"></string>
|
||||
<string id="30065"></string>
|
||||
<string id="30066"></string>
|
||||
<string id="30067"></string>
|
||||
<string id="30068"></string>
|
||||
<string id="30069"></string>
|
||||
<string id="30070"></string>
|
||||
<string id="30071"></string>
|
||||
<string id="30072"></string>
|
||||
<string id="30073"></string>
|
||||
<string id="30074"></string>
|
||||
<string id="30075"></string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010"></string>
|
||||
<string id="30011"></string>
|
||||
<string id="30012"></string>
|
||||
<string id="30013"></string>
|
||||
<string id="30016"></string>
|
||||
<string id="30017"></string>
|
||||
<string id="30018"></string>
|
||||
<string id="30019"></string>
|
||||
<string id="30020"></string>
|
||||
<string id="30021"></string>
|
||||
<string id="30022"></string>
|
||||
<string id="30023"></string>
|
||||
<string id="30024"></string>
|
||||
<string id="30025"></string>
|
||||
<string id="30030"></string>
|
||||
<string id="30031"></string>
|
||||
<string id="30032"></string>
|
||||
<string id="30033"></string>
|
||||
<string id="30034"></string>
|
||||
<string id="30035"></string>
|
||||
<string id="30045"></string>
|
||||
<string id="30046"></string>
|
||||
<string id="30047"></string>
|
||||
<string id="30048"></string>
|
||||
<string id="30049"></string>
|
||||
<string id="30050"></string>
|
||||
<string id="30051"></string>
|
||||
<string id="30052"></string>
|
||||
<string id="30053"></string>
|
||||
<string id="30060"></string>
|
||||
<string id="30061"></string>
|
||||
<string id="30062"></string>
|
||||
<string id="30063"></string>
|
||||
<string id="30064"></string>
|
||||
<string id="30065"></string>
|
||||
<string id="30066"></string>
|
||||
<string id="30067"></string>
|
||||
<string id="30068"></string>
|
||||
<string id="30069"></string>
|
||||
<string id="30070"></string>
|
||||
<string id="30071"></string>
|
||||
<string id="30072"></string>
|
||||
<string id="30073"></string>
|
||||
<string id="30074"></string>
|
||||
<string id="30075"></string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010"></string>
|
||||
<string id="30011"></string>
|
||||
<string id="30012"></string>
|
||||
<string id="30013"></string>
|
||||
<string id="30016"></string>
|
||||
<string id="30017"></string>
|
||||
<string id="30018"></string>
|
||||
<string id="30019"></string>
|
||||
<string id="30020"></string>
|
||||
<string id="30021"></string>
|
||||
<string id="30022"></string>
|
||||
<string id="30023"></string>
|
||||
<string id="30024"></string>
|
||||
<string id="30025"></string>
|
||||
<string id="30030"></string>
|
||||
<string id="30031"></string>
|
||||
<string id="30032"></string>
|
||||
<string id="30033"></string>
|
||||
<string id="30034"></string>
|
||||
<string id="30035"></string>
|
||||
<string id="30045"></string>
|
||||
<string id="30046"></string>
|
||||
<string id="30047"></string>
|
||||
<string id="30048"></string>
|
||||
<string id="30049"></string>
|
||||
<string id="30050"></string>
|
||||
<string id="30051"></string>
|
||||
<string id="30052"></string>
|
||||
<string id="30053"></string>
|
||||
<string id="30060"></string>
|
||||
<string id="30061"></string>
|
||||
<string id="30062"></string>
|
||||
<string id="30063"></string>
|
||||
<string id="30064"></string>
|
||||
<string id="30065"></string>
|
||||
<string id="30066"></string>
|
||||
<string id="30067"></string>
|
||||
<string id="30068"></string>
|
||||
<string id="30069"></string>
|
||||
<string id="30070"></string>
|
||||
<string id="30071"></string>
|
||||
<string id="30072"></string>
|
||||
<string id="30073"></string>
|
||||
<string id="30074"></string>
|
||||
<string id="30075"></string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010"></string>
|
||||
<string id="30011"></string>
|
||||
<string id="30012"></string>
|
||||
<string id="30013"></string>
|
||||
<string id="30016"></string>
|
||||
<string id="30017"></string>
|
||||
<string id="30018"></string>
|
||||
<string id="30019"></string>
|
||||
<string id="30020"></string>
|
||||
<string id="30021"></string>
|
||||
<string id="30022"></string>
|
||||
<string id="30023"></string>
|
||||
<string id="30024"></string>
|
||||
<string id="30025"></string>
|
||||
<string id="30030"></string>
|
||||
<string id="30031"></string>
|
||||
<string id="30032"></string>
|
||||
<string id="30033"></string>
|
||||
<string id="30034"></string>
|
||||
<string id="30035"></string>
|
||||
<string id="30045"></string>
|
||||
<string id="30046"></string>
|
||||
<string id="30047"></string>
|
||||
<string id="30048"></string>
|
||||
<string id="30049"></string>
|
||||
<string id="30050"></string>
|
||||
<string id="30051"></string>
|
||||
<string id="30052"></string>
|
||||
<string id="30053"></string>
|
||||
<string id="30060"></string>
|
||||
<string id="30061"></string>
|
||||
<string id="30062"></string>
|
||||
<string id="30063"></string>
|
||||
<string id="30064"></string>
|
||||
<string id="30065"></string>
|
||||
<string id="30066"></string>
|
||||
<string id="30067"></string>
|
||||
<string id="30068"></string>
|
||||
<string id="30069"></string>
|
||||
<string id="30070"></string>
|
||||
<string id="30071"></string>
|
||||
<string id="30072"></string>
|
||||
<string id="30073"></string>
|
||||
<string id="30074"></string>
|
||||
<string id="30075"></string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010"></string>
|
||||
<string id="30011"></string>
|
||||
<string id="30012"></string>
|
||||
<string id="30013"></string>
|
||||
<string id="30016"></string>
|
||||
<string id="30017"></string>
|
||||
<string id="30018"></string>
|
||||
<string id="30019"></string>
|
||||
<string id="30020"></string>
|
||||
<string id="30021"></string>
|
||||
<string id="30022"></string>
|
||||
<string id="30023"></string>
|
||||
<string id="30024"></string>
|
||||
<string id="30025"></string>
|
||||
<string id="30030"></string>
|
||||
<string id="30031"></string>
|
||||
<string id="30032"></string>
|
||||
<string id="30033"></string>
|
||||
<string id="30034"></string>
|
||||
<string id="30035"></string>
|
||||
<string id="30045"></string>
|
||||
<string id="30046"></string>
|
||||
<string id="30047"></string>
|
||||
<string id="30048"></string>
|
||||
<string id="30049"></string>
|
||||
<string id="30050"></string>
|
||||
<string id="30051"></string>
|
||||
<string id="30052"></string>
|
||||
<string id="30053"></string>
|
||||
<string id="30060"></string>
|
||||
<string id="30061"></string>
|
||||
<string id="30062"></string>
|
||||
<string id="30063"></string>
|
||||
<string id="30064"></string>
|
||||
<string id="30065"></string>
|
||||
<string id="30066"></string>
|
||||
<string id="30067"></string>
|
||||
<string id="30068"></string>
|
||||
<string id="30069"></string>
|
||||
<string id="30070"></string>
|
||||
<string id="30071"></string>
|
||||
<string id="30072"></string>
|
||||
<string id="30073"></string>
|
||||
<string id="30074"></string>
|
||||
<string id="30075"></string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010"></string>
|
||||
<string id="30011"></string>
|
||||
<string id="30012"></string>
|
||||
<string id="30013"></string>
|
||||
<string id="30016"></string>
|
||||
<string id="30017"></string>
|
||||
<string id="30018"></string>
|
||||
<string id="30019"></string>
|
||||
<string id="30020"></string>
|
||||
<string id="30021"></string>
|
||||
<string id="30022"></string>
|
||||
<string id="30023"></string>
|
||||
<string id="30024"></string>
|
||||
<string id="30025"></string>
|
||||
<string id="30030"></string>
|
||||
<string id="30031"></string>
|
||||
<string id="30032"></string>
|
||||
<string id="30033"></string>
|
||||
<string id="30034"></string>
|
||||
<string id="30035"></string>
|
||||
<string id="30045"></string>
|
||||
<string id="30046"></string>
|
||||
<string id="30047"></string>
|
||||
<string id="30048"></string>
|
||||
<string id="30049"></string>
|
||||
<string id="30050"></string>
|
||||
<string id="30051"></string>
|
||||
<string id="30052"></string>
|
||||
<string id="30053"></string>
|
||||
<string id="30060"></string>
|
||||
<string id="30061"></string>
|
||||
<string id="30062"></string>
|
||||
<string id="30063"></string>
|
||||
<string id="30064"></string>
|
||||
<string id="30065"></string>
|
||||
<string id="30066"></string>
|
||||
<string id="30067"></string>
|
||||
<string id="30068"></string>
|
||||
<string id="30069"></string>
|
||||
<string id="30070"></string>
|
||||
<string id="30071"></string>
|
||||
<string id="30072"></string>
|
||||
<string id="30073"></string>
|
||||
<string id="30074"></string>
|
||||
<string id="30075"></string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010"></string>
|
||||
<string id="30011"></string>
|
||||
<string id="30012"></string>
|
||||
<string id="30013"></string>
|
||||
<string id="30016"></string>
|
||||
<string id="30017"></string>
|
||||
<string id="30018"></string>
|
||||
<string id="30019"></string>
|
||||
<string id="30020"></string>
|
||||
<string id="30021"></string>
|
||||
<string id="30022"></string>
|
||||
<string id="30023"></string>
|
||||
<string id="30024"></string>
|
||||
<string id="30025"></string>
|
||||
<string id="30030"></string>
|
||||
<string id="30031"></string>
|
||||
<string id="30032"></string>
|
||||
<string id="30033"></string>
|
||||
<string id="30034"></string>
|
||||
<string id="30035"></string>
|
||||
<string id="30045"></string>
|
||||
<string id="30046"></string>
|
||||
<string id="30047"></string>
|
||||
<string id="30048"></string>
|
||||
<string id="30049"></string>
|
||||
<string id="30050"></string>
|
||||
<string id="30051"></string>
|
||||
<string id="30052"></string>
|
||||
<string id="30053"></string>
|
||||
<string id="30060"></string>
|
||||
<string id="30061"></string>
|
||||
<string id="30062"></string>
|
||||
<string id="30063"></string>
|
||||
<string id="30064"></string>
|
||||
<string id="30065"></string>
|
||||
<string id="30066"></string>
|
||||
<string id="30067"></string>
|
||||
<string id="30068"></string>
|
||||
<string id="30069"></string>
|
||||
<string id="30070"></string>
|
||||
<string id="30071"></string>
|
||||
<string id="30072"></string>
|
||||
<string id="30073"></string>
|
||||
<string id="30074"></string>
|
||||
<string id="30075"></string>
|
||||
</strings>
|
||||
@@ -1,48 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<strings>
|
||||
<string id="30010"></string>
|
||||
<string id="30011"></string>
|
||||
<string id="30012"></string>
|
||||
<string id="30013"></string>
|
||||
<string id="30016"></string>
|
||||
<string id="30017"></string>
|
||||
<string id="30018"></string>
|
||||
<string id="30019"></string>
|
||||
<string id="30020"></string>
|
||||
<string id="30021"></string>
|
||||
<string id="30022"></string>
|
||||
<string id="30023"></string>
|
||||
<string id="30024"></string>
|
||||
<string id="30025"></string>
|
||||
<string id="30030"></string>
|
||||
<string id="30031"></string>
|
||||
<string id="30032"></string>
|
||||
<string id="30033"></string>
|
||||
<string id="30034"></string>
|
||||
<string id="30035"></string>
|
||||
<string id="30045"></string>
|
||||
<string id="30046"></string>
|
||||
<string id="30047"></string>
|
||||
<string id="30048"></string>
|
||||
<string id="30049"></string>
|
||||
<string id="30050"></string>
|
||||
<string id="30051"></string>
|
||||
<string id="30052"></string>
|
||||
<string id="30053"></string>
|
||||
<string id="30060"></string>
|
||||
<string id="30061"></string>
|
||||
<string id="30062"></string>
|
||||
<string id="30063"></string>
|
||||
<string id="30064"></string>
|
||||
<string id="30065"></string>
|
||||
<string id="30066"></string>
|
||||
<string id="30067"></string>
|
||||
<string id="30068"></string>
|
||||
<string id="30069"></string>
|
||||
<string id="30070"></string>
|
||||
<string id="30071"></string>
|
||||
<string id="30072"></string>
|
||||
<string id="30073"></string>
|
||||
<string id="30074"></string>
|
||||
<string id="30075"></string>
|
||||
</strings>
|
||||
@@ -1,210 +0,0 @@
|
||||
import xbmc
|
||||
import xbmcgui
|
||||
import vfs as vfs
|
||||
import utils as utils
|
||||
import os
|
||||
import time
|
||||
|
||||
class FileManager:
|
||||
walk_path = ''
|
||||
fileArray = None
|
||||
verbose_log = False
|
||||
|
||||
def __init__(self,path):
|
||||
self.walk_path = path
|
||||
|
||||
def createFileList(self):
|
||||
self.fileArray = []
|
||||
self.verbose_log = utils.getSetting("verbose_log") == 'true'
|
||||
|
||||
#figure out which syncing options to run
|
||||
if(utils.getSetting('backup_addons') == 'true'):
|
||||
self.addFile("-addons")
|
||||
self.walkTree(self.walk_path + "addons/")
|
||||
|
||||
self.addFile("-userdata")
|
||||
|
||||
if(utils.getSetting('backup_addon_data') == 'true'):
|
||||
self.addFile("-userdata/addon_data")
|
||||
self.walkTree(self.walk_path + "userdata/addon_data/")
|
||||
|
||||
if(utils.getSetting('backup_database') == 'true'):
|
||||
self.addFile("-userdata/Database")
|
||||
self.walkTree(self.walk_path + "userdata/Database")
|
||||
|
||||
if(utils.getSetting("backup_playlists") == 'true'):
|
||||
self.addFile("-userdata/playlists")
|
||||
self.walkTree(self.walk_path + "userdata/playlists")
|
||||
|
||||
if(utils.getSetting("backup_thumbnails") == "true"):
|
||||
self.addFile("-userdata/Thumbnails")
|
||||
self.walkTree(self.walk_path + "userdata/Thumbnails")
|
||||
|
||||
if(utils.getSetting("backup_config") == "true"):
|
||||
self.addFile("-userdata/keymaps")
|
||||
self.walkTree(self.walk_path + "userdata/keymaps")
|
||||
|
||||
self.addFile("-userdata/peripheral_data")
|
||||
self.walkTree(self.walk_path + "userdata/peripheral_data")
|
||||
|
||||
#this part is an oddity
|
||||
configFiles = vfs.listdir(self.walk_path + "userdata/",extra_metadata=True)
|
||||
for aFile in configFiles:
|
||||
if(aFile['file'].endswith(".xml")):
|
||||
self.addFile(aFile['file'][len(self.walk_path):])
|
||||
|
||||
def walkTree(self,directory):
|
||||
for (path, dirs, files) in vfs.walk(directory):
|
||||
|
||||
#create all the subdirs first
|
||||
for aDir in dirs:
|
||||
self.addFile("-" + aDir[len(self.walk_path):])
|
||||
#copy all the files
|
||||
for aFile in files:
|
||||
filePath = aFile[len(self.walk_path):]
|
||||
self.addFile(filePath)
|
||||
|
||||
def addFile(self,filename):
|
||||
#write the full remote path name of this file
|
||||
utils.log("Add File: " + filename,xbmc.LOGDEBUG)
|
||||
self.fileArray.append(filename)
|
||||
|
||||
def getFileList(self):
|
||||
return self.fileArray
|
||||
|
||||
class XbmcBackup:
|
||||
#constants for initiating a back or restore
|
||||
Backup = 0
|
||||
Restore = 1
|
||||
|
||||
local_path = ''
|
||||
remote_path = ''
|
||||
restoreFile = None
|
||||
|
||||
#for the progress bar
|
||||
progressBar = None
|
||||
filesLeft = 0
|
||||
filesTotal = 1
|
||||
|
||||
fileManager = None
|
||||
|
||||
def __init__(self):
|
||||
self.local_path = xbmc.makeLegalFilename(xbmc.translatePath("special://home"),False);
|
||||
|
||||
if(utils.getSetting('remote_selection') == '1'):
|
||||
self.remote_path = utils.getSetting('remote_path_2')
|
||||
utils.setSetting("remote_path","")
|
||||
elif(utils.getSetting('remote_selection') == '0'):
|
||||
self.remote_path = utils.getSetting("remote_path")
|
||||
|
||||
#fix slashes
|
||||
self.remote_path = self.remote_path.replace("\\","/")
|
||||
|
||||
#check if trailing slash is included
|
||||
if(self.remote_path[-1:] != "/"):
|
||||
self.remote_path = self.remote_path + "/"
|
||||
|
||||
utils.log(utils.getString(30046))
|
||||
|
||||
def run(self,mode=-1,runSilent=False):
|
||||
#check if we should use the progress bar
|
||||
if(utils.getSetting('run_silent') == 'false' and not runSilent):
|
||||
self.progressBar = xbmcgui.DialogProgress()
|
||||
self.progressBar.create(utils.getString(30010),utils.getString(30049) + "......")
|
||||
|
||||
#determine backup mode
|
||||
if(mode == -1):
|
||||
mode = int(utils.getSetting('addon_mode'))
|
||||
|
||||
#append backup folder name
|
||||
if(mode == self.Backup and self.remote_path != ''):
|
||||
self.remote_path = self.remote_path + time.strftime("%Y%m%d") + "/"
|
||||
elif(mode == self.Restore and utils.getSetting("backup_name") != '' and self.remote_path != ''):
|
||||
self.remote_path = self.remote_path + utils.getSetting("backup_name") + "/"
|
||||
else:
|
||||
self.remote_path = ""
|
||||
|
||||
utils.log(utils.getString(30047) + ": " + self.local_path)
|
||||
utils.log(utils.getString(30048) + ": " + self.remote_path)
|
||||
|
||||
#run the correct mode
|
||||
if(mode == self.Backup):
|
||||
utils.log(utils.getString(30023) + " - " + utils.getString(30016))
|
||||
self.fileManager = FileManager(self.local_path)
|
||||
|
||||
#for backups check if remote path exists
|
||||
if(vfs.exists(self.remote_path)):
|
||||
#this will fail - need a disclaimer here
|
||||
utils.log(utils.getString(30050))
|
||||
|
||||
self.syncFiles()
|
||||
else:
|
||||
utils.log(utils.getString(30023) + " - " + utils.getString(30017))
|
||||
self.fileManager = FileManager(self.remote_path)
|
||||
|
||||
#for restores remote path must exist
|
||||
if(vfs.exists(self.remote_path)):
|
||||
self.restoreFiles()
|
||||
else:
|
||||
xbmcgui.Dialog().ok(utils.getString(30010),utils.getString(30045),self.remote_path)
|
||||
|
||||
if(utils.getSetting('run_silent') == 'false' and not runSilent):
|
||||
self.progressBar.close()
|
||||
|
||||
def syncFiles(self):
|
||||
|
||||
#make the remote directory
|
||||
vfs.mkdir(self.remote_path)
|
||||
|
||||
utils.log(utils.getString(30051))
|
||||
self.fileManager.createFileList()
|
||||
|
||||
allFiles = self.fileManager.getFileList()
|
||||
|
||||
#write list from local to remote
|
||||
self.writeFiles(allFiles,self.local_path,self.remote_path)
|
||||
|
||||
def restoreFiles(self):
|
||||
self.fileManager.createFileList()
|
||||
|
||||
utils.log(utils.getString(30051))
|
||||
allFiles = self.fileManager.getFileList()
|
||||
|
||||
#write list from remote to local
|
||||
self.writeFiles(allFiles,self.remote_path,self.local_path)
|
||||
|
||||
#call update addons to refresh everything
|
||||
xbmc.executebuiltin('UpdateLocalAddons')
|
||||
|
||||
def writeFiles(self,fileList,source,dest):
|
||||
utils.log("Writing files to: " + dest)
|
||||
self.filesTotal = len(fileList)
|
||||
self.filesLeft = self.filesTotal
|
||||
|
||||
#write each file from source to destination
|
||||
for aFile in fileList:
|
||||
if(not self.checkCancel()):
|
||||
utils.log('Writing file: ' + source + aFile,xbmc.LOGDEBUG)
|
||||
self.updateProgress(aFile)
|
||||
if (aFile.startswith("-")):
|
||||
vfs.mkdir(xbmc.makeLegalFilename(dest + aFile[1:],False))
|
||||
else:
|
||||
vfs.copy(xbmc.makeLegalFilename(source + aFile),xbmc.makeLegalFilename(dest + aFile,False))
|
||||
|
||||
def updateProgress(self,message=''):
|
||||
self.filesLeft = self.filesLeft - 1
|
||||
|
||||
#update the progress bar
|
||||
if(self.progressBar != None):
|
||||
self.progressBar.update(int((float(self.filesTotal - self.filesLeft)/float(self.filesTotal)) * 100),message)
|
||||
|
||||
def checkCancel(self):
|
||||
result = False
|
||||
|
||||
if(self.progressBar != None):
|
||||
result = self.progressBar.iscanceled()
|
||||
|
||||
return result
|
||||
|
||||
def isReady(self):
|
||||
return True if self.remote_path != '' else False
|
||||
@@ -1,308 +0,0 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import re
|
||||
from time import time, mktime
|
||||
from datetime import datetime, date
|
||||
from relativedelta import relativedelta
|
||||
|
||||
search_re = re.compile(r'^([^-]+)-([^-/]+)(/(.*))?$')
|
||||
only_int_re = re.compile(r'^\d+$')
|
||||
any_int_re = re.compile(r'^\d+')
|
||||
star_or_int_re = re.compile(r'^(\d+|\*)$')
|
||||
|
||||
__all__ = ('croniter',)
|
||||
|
||||
|
||||
class croniter(object):
|
||||
RANGES = (
|
||||
(0, 59),
|
||||
(0, 23),
|
||||
(1, 31),
|
||||
(1, 12),
|
||||
(0, 6),
|
||||
(0, 59)
|
||||
)
|
||||
DAYS = (
|
||||
31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
|
||||
)
|
||||
|
||||
ALPHACONV = (
|
||||
{ },
|
||||
{ },
|
||||
{ },
|
||||
{ 'jan':1, 'feb':2, 'mar':3, 'apr':4, 'may':5, 'jun':6,
|
||||
'jul':7, 'aug':8, 'sep':9, 'oct':10, 'nov':11, 'dec':12 },
|
||||
{ 'sun':0, 'mon':1, 'tue':2, 'wed':3, 'thu':4, 'fri':5, 'sat':6 },
|
||||
{ }
|
||||
)
|
||||
|
||||
LOWMAP = (
|
||||
{},
|
||||
{},
|
||||
{0: 1},
|
||||
{0: 1},
|
||||
{7: 0},
|
||||
{},
|
||||
)
|
||||
|
||||
bad_length = 'Exactly 5 or 6 columns has to be specified for iterator' \
|
||||
'expression.'
|
||||
|
||||
def __init__(self, expr_format, start_time=time()):
|
||||
if isinstance(start_time, datetime):
|
||||
start_time = mktime(start_time.timetuple())
|
||||
|
||||
self.cur = start_time
|
||||
self.exprs = expr_format.split()
|
||||
|
||||
if len(self.exprs) != 5 and len(self.exprs) != 6:
|
||||
raise ValueError(self.bad_length)
|
||||
|
||||
expanded = []
|
||||
|
||||
for i, expr in enumerate(self.exprs):
|
||||
e_list = expr.split(',')
|
||||
res = []
|
||||
|
||||
while len(e_list) > 0:
|
||||
e = e_list.pop()
|
||||
t = re.sub(r'^\*(/.+)$', r'%d-%d\1' % (self.RANGES[i][0],
|
||||
self.RANGES[i][1]),
|
||||
str(e))
|
||||
m = search_re.search(t)
|
||||
|
||||
if m:
|
||||
(low, high, step) = m.group(1), m.group(2), m.group(4) or 1
|
||||
|
||||
if not any_int_re.search(low):
|
||||
low = self.ALPHACONV[i][low.lower()]
|
||||
|
||||
if not any_int_re.search(high):
|
||||
high = self.ALPHACONV[i][high.lower()]
|
||||
|
||||
if (not low or not high or int(low) > int(high)
|
||||
or not only_int_re.search(str(step))):
|
||||
raise ValueError("[%s] is not acceptable" %expr_format)
|
||||
|
||||
for j in xrange(int(low), int(high)+1):
|
||||
if j % int(step) == 0:
|
||||
e_list.append(j)
|
||||
else:
|
||||
if not star_or_int_re.search(t):
|
||||
t = self.ALPHACONV[i][t.lower()]
|
||||
|
||||
try:
|
||||
t = int(t)
|
||||
except:
|
||||
pass
|
||||
|
||||
if t in self.LOWMAP[i]:
|
||||
t = self.LOWMAP[i][t]
|
||||
|
||||
if t != '*' and (int(t) < self.RANGES[i][0] or
|
||||
int(t) > self.RANGES[i][1]):
|
||||
raise ValueError("[%s] is not acceptable, out of range" % expr_format)
|
||||
|
||||
res.append(t)
|
||||
|
||||
res.sort()
|
||||
expanded.append(['*'] if (len(res) == 1 and res[0] == '*') else res)
|
||||
self.expanded = expanded
|
||||
|
||||
def get_next(self, ret_type=float):
|
||||
return self._get_next(ret_type, is_prev=False)
|
||||
|
||||
def get_prev(self, ret_type=float):
|
||||
return self._get_next(ret_type, is_prev=True)
|
||||
|
||||
def _get_next(self, ret_type=float, is_prev=False):
|
||||
expanded = self.expanded[:]
|
||||
|
||||
if ret_type not in (float, datetime):
|
||||
raise TypeError("Invalid ret_type, only 'float' or 'datetime' " \
|
||||
"is acceptable.")
|
||||
|
||||
if expanded[2][0] != '*' and expanded[4][0] != '*':
|
||||
bak = expanded[4]
|
||||
expanded[4] = ['*']
|
||||
t1 = self._calc(self.cur, expanded, is_prev)
|
||||
expanded[4] = bak
|
||||
expanded[2] = ['*']
|
||||
|
||||
t2 = self._calc(self.cur, expanded, is_prev)
|
||||
if not is_prev:
|
||||
result = t1 if t1 < t2 else t2
|
||||
else:
|
||||
result = t1 if t1 > t2 else t2
|
||||
else:
|
||||
result = self._calc(self.cur, expanded, is_prev)
|
||||
self.cur = result
|
||||
|
||||
if ret_type == datetime:
|
||||
result = datetime.fromtimestamp(result)
|
||||
return result
|
||||
|
||||
def _calc(self, now, expanded, is_prev):
|
||||
if is_prev:
|
||||
nearest_method = self._get_prev_nearest
|
||||
nearest_diff_method = self._get_prev_nearest_diff
|
||||
sign = -1
|
||||
else:
|
||||
nearest_method = self._get_next_nearest
|
||||
nearest_diff_method = self._get_next_nearest_diff
|
||||
sign = 1
|
||||
|
||||
offset = len(expanded) == 6 and 1 or 60
|
||||
dst = now = datetime.fromtimestamp(now + sign * offset)
|
||||
|
||||
day, month, year = dst.day, dst.month, dst.year
|
||||
current_year = now.year
|
||||
DAYS = self.DAYS
|
||||
|
||||
def proc_month(d):
|
||||
if expanded[3][0] != '*':
|
||||
diff_month = nearest_diff_method(month, expanded[3], 12)
|
||||
days = DAYS[month - 1]
|
||||
if month == 2 and self.is_leap(year) == True:
|
||||
days += 1
|
||||
|
||||
reset_day = days if is_prev else 1
|
||||
|
||||
if diff_month != None and diff_month != 0:
|
||||
if is_prev:
|
||||
d += relativedelta(months=diff_month)
|
||||
else:
|
||||
d += relativedelta(months=diff_month, day=reset_day,
|
||||
hour=0, minute=0, second=0)
|
||||
return True, d
|
||||
return False, d
|
||||
|
||||
def proc_day_of_month(d):
|
||||
if expanded[2][0] != '*':
|
||||
days = DAYS[month - 1]
|
||||
if month == 2 and self.is_leap(year) == True:
|
||||
days += 1
|
||||
|
||||
diff_day = nearest_diff_method(d.day, expanded[2], days)
|
||||
|
||||
if diff_day != None and diff_day != 0:
|
||||
if is_prev:
|
||||
d += relativedelta(days=diff_day)
|
||||
else:
|
||||
d += relativedelta(days=diff_day, hour=0, minute=0, second=0)
|
||||
return True, d
|
||||
return False, d
|
||||
|
||||
def proc_day_of_week(d):
|
||||
if expanded[4][0] != '*':
|
||||
diff_day_of_week = nearest_diff_method(d.isoweekday() % 7, expanded[4], 7)
|
||||
if diff_day_of_week != None and diff_day_of_week != 0:
|
||||
if is_prev:
|
||||
d += relativedelta(days=diff_day_of_week)
|
||||
else:
|
||||
d += relativedelta(days=diff_day_of_week, hour=0, minute=0, second=0)
|
||||
return True, d
|
||||
return False, d
|
||||
|
||||
def proc_hour(d):
|
||||
if expanded[1][0] != '*':
|
||||
diff_hour = nearest_diff_method(d.hour, expanded[1], 24)
|
||||
if diff_hour != None and diff_hour != 0:
|
||||
if is_prev:
|
||||
d += relativedelta(hours = diff_hour)
|
||||
else:
|
||||
d += relativedelta(hours = diff_hour, minute=0, second=0)
|
||||
return True, d
|
||||
return False, d
|
||||
|
||||
def proc_minute(d):
|
||||
if expanded[0][0] != '*':
|
||||
diff_min = nearest_diff_method(d.minute, expanded[0], 60)
|
||||
if diff_min != None and diff_min != 0:
|
||||
if is_prev:
|
||||
d += relativedelta(minutes = diff_min)
|
||||
else:
|
||||
d += relativedelta(minutes = diff_min, second=0)
|
||||
return True, d
|
||||
return False, d
|
||||
|
||||
def proc_second(d):
|
||||
if len(expanded) == 6:
|
||||
if expanded[5][0] != '*':
|
||||
diff_sec = nearest_diff_method(d.second, expanded[5], 60)
|
||||
if diff_sec != None and diff_sec != 0:
|
||||
dst += relativedelta(seconds = diff_sec)
|
||||
return True, d
|
||||
else:
|
||||
d += relativedelta(second = 0)
|
||||
return False, d
|
||||
|
||||
if is_prev:
|
||||
procs = [proc_second,
|
||||
proc_minute,
|
||||
proc_hour,
|
||||
proc_day_of_week,
|
||||
proc_day_of_month,
|
||||
proc_month]
|
||||
else:
|
||||
procs = [proc_month,
|
||||
proc_day_of_month,
|
||||
proc_day_of_week,
|
||||
proc_hour,
|
||||
proc_minute,
|
||||
proc_second]
|
||||
|
||||
while abs(year - current_year) <= 1:
|
||||
next = False
|
||||
for proc in procs:
|
||||
(changed, dst) = proc(dst)
|
||||
if changed:
|
||||
next = True
|
||||
break
|
||||
if next:
|
||||
continue
|
||||
return mktime(dst.timetuple())
|
||||
|
||||
raise "failed to find prev date"
|
||||
|
||||
def _get_next_nearest(self, x, to_check):
|
||||
small = [item for item in to_check if item < x]
|
||||
large = [item for item in to_check if item >= x]
|
||||
large.extend(small)
|
||||
return large[0]
|
||||
|
||||
def _get_prev_nearest(self, x, to_check):
|
||||
small = [item for item in to_check if item <= x]
|
||||
large = [item for item in to_check if item > x]
|
||||
small.reverse()
|
||||
large.reverse()
|
||||
small.extend(large)
|
||||
return small[0]
|
||||
|
||||
def _get_next_nearest_diff(self, x, to_check, range_val):
|
||||
for i, d in enumerate(to_check):
|
||||
if d >= x:
|
||||
return d - x
|
||||
return to_check[0] - x + range_val
|
||||
|
||||
def _get_prev_nearest_diff(self, x, to_check, range_val):
|
||||
candidates = to_check[:]
|
||||
candidates.reverse()
|
||||
for d in candidates:
|
||||
if d <= x:
|
||||
return d - x
|
||||
return (candidates[0]) - x - range_val
|
||||
|
||||
def is_leap(self, year):
|
||||
if year % 400 == 0 or (year % 4 == 0 and year % 100 != 0):
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
base = datetime(2010, 1, 25)
|
||||
itr = croniter('0 0 1 * *', base)
|
||||
n1 = itr.get_next(datetime)
|
||||
print n1
|
||||
@@ -1,430 +0,0 @@
|
||||
"""
|
||||
Copyright (c) 2003-2010 Gustavo Niemeyer <gustavo@niemeyer.net>
|
||||
|
||||
This module offers extensions to the standard python 2.3+
|
||||
datetime module.
|
||||
"""
|
||||
__author__ = "Gustavo Niemeyer <gustavo@niemeyer.net>"
|
||||
__license__ = "PSF License"
|
||||
|
||||
import datetime
|
||||
import calendar
|
||||
|
||||
__all__ = ["relativedelta", "MO", "TU", "WE", "TH", "FR", "SA", "SU"]
|
||||
|
||||
class weekday(object):
|
||||
__slots__ = ["weekday", "n"]
|
||||
|
||||
def __init__(self, weekday, n=None):
|
||||
self.weekday = weekday
|
||||
self.n = n
|
||||
|
||||
def __call__(self, n):
|
||||
if n == self.n:
|
||||
return self
|
||||
else:
|
||||
return self.__class__(self.weekday, n)
|
||||
|
||||
def __eq__(self, other):
|
||||
try:
|
||||
if self.weekday != other.weekday or self.n != other.n:
|
||||
return False
|
||||
except AttributeError:
|
||||
return False
|
||||
return True
|
||||
|
||||
def __repr__(self):
|
||||
s = ("MO", "TU", "WE", "TH", "FR", "SA", "SU")[self.weekday]
|
||||
if not self.n:
|
||||
return s
|
||||
else:
|
||||
return "%s(%+d)" % (s, self.n)
|
||||
|
||||
MO, TU, WE, TH, FR, SA, SU = weekdays = tuple([weekday(x) for x in range(7)])
|
||||
|
||||
class relativedelta:
|
||||
"""
|
||||
The relativedelta type is based on the specification of the excelent
|
||||
work done by M.-A. Lemburg in his mx.DateTime extension. However,
|
||||
notice that this type does *NOT* implement the same algorithm as
|
||||
his work. Do *NOT* expect it to behave like mx.DateTime's counterpart.
|
||||
|
||||
There's two different ways to build a relativedelta instance. The
|
||||
first one is passing it two date/datetime classes:
|
||||
|
||||
relativedelta(datetime1, datetime2)
|
||||
|
||||
And the other way is to use the following keyword arguments:
|
||||
|
||||
year, month, day, hour, minute, second, microsecond:
|
||||
Absolute information.
|
||||
|
||||
years, months, weeks, days, hours, minutes, seconds, microseconds:
|
||||
Relative information, may be negative.
|
||||
|
||||
weekday:
|
||||
One of the weekday instances (MO, TU, etc). These instances may
|
||||
receive a parameter N, specifying the Nth weekday, which could
|
||||
be positive or negative (like MO(+1) or MO(-2). Not specifying
|
||||
it is the same as specifying +1. You can also use an integer,
|
||||
where 0=MO.
|
||||
|
||||
leapdays:
|
||||
Will add given days to the date found, if year is a leap
|
||||
year, and the date found is post 28 of february.
|
||||
|
||||
yearday, nlyearday:
|
||||
Set the yearday or the non-leap year day (jump leap days).
|
||||
These are converted to day/month/leapdays information.
|
||||
|
||||
Here is the behavior of operations with relativedelta:
|
||||
|
||||
1) Calculate the absolute year, using the 'year' argument, or the
|
||||
original datetime year, if the argument is not present.
|
||||
|
||||
2) Add the relative 'years' argument to the absolute year.
|
||||
|
||||
3) Do steps 1 and 2 for month/months.
|
||||
|
||||
4) Calculate the absolute day, using the 'day' argument, or the
|
||||
original datetime day, if the argument is not present. Then,
|
||||
subtract from the day until it fits in the year and month
|
||||
found after their operations.
|
||||
|
||||
5) Add the relative 'days' argument to the absolute day. Notice
|
||||
that the 'weeks' argument is multiplied by 7 and added to
|
||||
'days'.
|
||||
|
||||
6) Do steps 1 and 2 for hour/hours, minute/minutes, second/seconds,
|
||||
microsecond/microseconds.
|
||||
|
||||
7) If the 'weekday' argument is present, calculate the weekday,
|
||||
with the given (wday, nth) tuple. wday is the index of the
|
||||
weekday (0-6, 0=Mon), and nth is the number of weeks to add
|
||||
forward or backward, depending on its signal. Notice that if
|
||||
the calculated date is already Monday, for example, using
|
||||
(0, 1) or (0, -1) won't change the day.
|
||||
"""
|
||||
|
||||
def __init__(self, dt1=None, dt2=None,
|
||||
years=0, months=0, days=0, leapdays=0, weeks=0,
|
||||
hours=0, minutes=0, seconds=0, microseconds=0,
|
||||
year=None, month=None, day=None, weekday=None,
|
||||
yearday=None, nlyearday=None,
|
||||
hour=None, minute=None, second=None, microsecond=None):
|
||||
if dt1 and dt2:
|
||||
if not isinstance(dt1, datetime.date) or \
|
||||
not isinstance(dt2, datetime.date):
|
||||
raise TypeError, "relativedelta only diffs datetime/date"
|
||||
if type(dt1) is not type(dt2):
|
||||
if not isinstance(dt1, datetime.datetime):
|
||||
dt1 = datetime.datetime.fromordinal(dt1.toordinal())
|
||||
elif not isinstance(dt2, datetime.datetime):
|
||||
dt2 = datetime.datetime.fromordinal(dt2.toordinal())
|
||||
self.years = 0
|
||||
self.months = 0
|
||||
self.days = 0
|
||||
self.leapdays = 0
|
||||
self.hours = 0
|
||||
self.minutes = 0
|
||||
self.seconds = 0
|
||||
self.microseconds = 0
|
||||
self.year = None
|
||||
self.month = None
|
||||
self.day = None
|
||||
self.weekday = None
|
||||
self.hour = None
|
||||
self.minute = None
|
||||
self.second = None
|
||||
self.microsecond = None
|
||||
self._has_time = 0
|
||||
|
||||
months = (dt1.year*12+dt1.month)-(dt2.year*12+dt2.month)
|
||||
self._set_months(months)
|
||||
dtm = self.__radd__(dt2)
|
||||
if dt1 < dt2:
|
||||
while dt1 > dtm:
|
||||
months += 1
|
||||
self._set_months(months)
|
||||
dtm = self.__radd__(dt2)
|
||||
else:
|
||||
while dt1 < dtm:
|
||||
months -= 1
|
||||
self._set_months(months)
|
||||
dtm = self.__radd__(dt2)
|
||||
delta = dt1 - dtm
|
||||
self.seconds = delta.seconds+delta.days*86400
|
||||
self.microseconds = delta.microseconds
|
||||
else:
|
||||
self.years = years
|
||||
self.months = months
|
||||
self.days = days+weeks*7
|
||||
self.leapdays = leapdays
|
||||
self.hours = hours
|
||||
self.minutes = minutes
|
||||
self.seconds = seconds
|
||||
self.microseconds = microseconds
|
||||
self.year = year
|
||||
self.month = month
|
||||
self.day = day
|
||||
self.hour = hour
|
||||
self.minute = minute
|
||||
self.second = second
|
||||
self.microsecond = microsecond
|
||||
|
||||
if type(weekday) is int:
|
||||
self.weekday = weekdays[weekday]
|
||||
else:
|
||||
self.weekday = weekday
|
||||
|
||||
yday = 0
|
||||
if nlyearday:
|
||||
yday = nlyearday
|
||||
elif yearday:
|
||||
yday = yearday
|
||||
if yearday > 59:
|
||||
self.leapdays = -1
|
||||
if yday:
|
||||
ydayidx = [31,59,90,120,151,181,212,243,273,304,334,366]
|
||||
for idx, ydays in enumerate(ydayidx):
|
||||
if yday <= ydays:
|
||||
self.month = idx+1
|
||||
if idx == 0:
|
||||
self.day = yday
|
||||
else:
|
||||
self.day = yday-ydayidx[idx-1]
|
||||
break
|
||||
else:
|
||||
raise ValueError, "invalid year day (%d)" % yday
|
||||
|
||||
self._fix()
|
||||
|
||||
def _fix(self):
|
||||
if abs(self.microseconds) > 999999:
|
||||
s = self.microseconds//abs(self.microseconds)
|
||||
div, mod = divmod(self.microseconds*s, 1000000)
|
||||
self.microseconds = mod*s
|
||||
self.seconds += div*s
|
||||
if abs(self.seconds) > 59:
|
||||
s = self.seconds//abs(self.seconds)
|
||||
div, mod = divmod(self.seconds*s, 60)
|
||||
self.seconds = mod*s
|
||||
self.minutes += div*s
|
||||
if abs(self.minutes) > 59:
|
||||
s = self.minutes//abs(self.minutes)
|
||||
div, mod = divmod(self.minutes*s, 60)
|
||||
self.minutes = mod*s
|
||||
self.hours += div*s
|
||||
if abs(self.hours) > 23:
|
||||
s = self.hours//abs(self.hours)
|
||||
div, mod = divmod(self.hours*s, 24)
|
||||
self.hours = mod*s
|
||||
self.days += div*s
|
||||
if abs(self.months) > 11:
|
||||
s = self.months//abs(self.months)
|
||||
div, mod = divmod(self.months*s, 12)
|
||||
self.months = mod*s
|
||||
self.years += div*s
|
||||
if (self.hours or self.minutes or self.seconds or self.microseconds or
|
||||
self.hour is not None or self.minute is not None or
|
||||
self.second is not None or self.microsecond is not None):
|
||||
self._has_time = 1
|
||||
else:
|
||||
self._has_time = 0
|
||||
|
||||
def _set_months(self, months):
|
||||
self.months = months
|
||||
if abs(self.months) > 11:
|
||||
s = self.months//abs(self.months)
|
||||
div, mod = divmod(self.months*s, 12)
|
||||
self.months = mod*s
|
||||
self.years = div*s
|
||||
else:
|
||||
self.years = 0
|
||||
|
||||
def __radd__(self, other):
|
||||
if not isinstance(other, datetime.date):
|
||||
raise TypeError, "unsupported type for add operation"
|
||||
elif self._has_time and not isinstance(other, datetime.datetime):
|
||||
other = datetime.datetime.fromordinal(other.toordinal())
|
||||
year = (self.year or other.year)+self.years
|
||||
month = self.month or other.month
|
||||
if self.months:
|
||||
assert 1 <= abs(self.months) <= 12
|
||||
month += self.months
|
||||
if month > 12:
|
||||
year += 1
|
||||
month -= 12
|
||||
elif month < 1:
|
||||
year -= 1
|
||||
month += 12
|
||||
day = min(calendar.monthrange(year, month)[1],
|
||||
self.day or other.day)
|
||||
repl = {"year": year, "month": month, "day": day}
|
||||
for attr in ["hour", "minute", "second", "microsecond"]:
|
||||
value = getattr(self, attr)
|
||||
if value is not None:
|
||||
repl[attr] = value
|
||||
days = self.days
|
||||
if self.leapdays and month > 2 and calendar.isleap(year):
|
||||
days += self.leapdays
|
||||
ret = (other.replace(**repl)
|
||||
+ datetime.timedelta(days=days,
|
||||
hours=self.hours,
|
||||
minutes=self.minutes,
|
||||
seconds=self.seconds,
|
||||
microseconds=self.microseconds))
|
||||
if self.weekday:
|
||||
weekday, nth = self.weekday.weekday, self.weekday.n or 1
|
||||
jumpdays = (abs(nth)-1)*7
|
||||
if nth > 0:
|
||||
jumpdays += (7-ret.weekday()+weekday)%7
|
||||
else:
|
||||
jumpdays += (ret.weekday()-weekday)%7
|
||||
jumpdays *= -1
|
||||
ret += datetime.timedelta(days=jumpdays)
|
||||
return ret
|
||||
|
||||
def __rsub__(self, other):
|
||||
return self.__neg__().__radd__(other)
|
||||
|
||||
def __add__(self, other):
|
||||
if not isinstance(other, relativedelta):
|
||||
raise TypeError, "unsupported type for add operation"
|
||||
return relativedelta(years=other.years+self.years,
|
||||
months=other.months+self.months,
|
||||
days=other.days+self.days,
|
||||
hours=other.hours+self.hours,
|
||||
minutes=other.minutes+self.minutes,
|
||||
seconds=other.seconds+self.seconds,
|
||||
microseconds=other.microseconds+self.microseconds,
|
||||
leapdays=other.leapdays or self.leapdays,
|
||||
year=other.year or self.year,
|
||||
month=other.month or self.month,
|
||||
day=other.day or self.day,
|
||||
weekday=other.weekday or self.weekday,
|
||||
hour=other.hour or self.hour,
|
||||
minute=other.minute or self.minute,
|
||||
second=other.second or self.second,
|
||||
microsecond=other.second or self.microsecond)
|
||||
|
||||
def __sub__(self, other):
|
||||
if not isinstance(other, relativedelta):
|
||||
raise TypeError, "unsupported type for sub operation"
|
||||
return relativedelta(years=other.years-self.years,
|
||||
months=other.months-self.months,
|
||||
days=other.days-self.days,
|
||||
hours=other.hours-self.hours,
|
||||
minutes=other.minutes-self.minutes,
|
||||
seconds=other.seconds-self.seconds,
|
||||
microseconds=other.microseconds-self.microseconds,
|
||||
leapdays=other.leapdays or self.leapdays,
|
||||
year=other.year or self.year,
|
||||
month=other.month or self.month,
|
||||
day=other.day or self.day,
|
||||
weekday=other.weekday or self.weekday,
|
||||
hour=other.hour or self.hour,
|
||||
minute=other.minute or self.minute,
|
||||
second=other.second or self.second,
|
||||
microsecond=other.second or self.microsecond)
|
||||
|
||||
def __neg__(self):
|
||||
return relativedelta(years=-self.years,
|
||||
months=-self.months,
|
||||
days=-self.days,
|
||||
hours=-self.hours,
|
||||
minutes=-self.minutes,
|
||||
seconds=-self.seconds,
|
||||
microseconds=-self.microseconds,
|
||||
leapdays=self.leapdays,
|
||||
year=self.year,
|
||||
month=self.month,
|
||||
day=self.day,
|
||||
weekday=self.weekday,
|
||||
hour=self.hour,
|
||||
minute=self.minute,
|
||||
second=self.second,
|
||||
microsecond=self.microsecond)
|
||||
|
||||
def __nonzero__(self):
|
||||
return not (not self.years and
|
||||
not self.months and
|
||||
not self.days and
|
||||
not self.hours and
|
||||
not self.minutes and
|
||||
not self.seconds and
|
||||
not self.microseconds and
|
||||
not self.leapdays and
|
||||
self.year is None and
|
||||
self.month is None and
|
||||
self.day is None and
|
||||
self.weekday is None and
|
||||
self.hour is None and
|
||||
self.minute is None and
|
||||
self.second is None and
|
||||
self.microsecond is None)
|
||||
|
||||
def __mul__(self, other):
|
||||
f = float(other)
|
||||
return relativedelta(years=self.years*f,
|
||||
months=self.months*f,
|
||||
days=self.days*f,
|
||||
hours=self.hours*f,
|
||||
minutes=self.minutes*f,
|
||||
seconds=self.seconds*f,
|
||||
microseconds=self.microseconds*f,
|
||||
leapdays=self.leapdays,
|
||||
year=self.year,
|
||||
month=self.month,
|
||||
day=self.day,
|
||||
weekday=self.weekday,
|
||||
hour=self.hour,
|
||||
minute=self.minute,
|
||||
second=self.second,
|
||||
microsecond=self.microsecond)
|
||||
|
||||
def __eq__(self, other):
|
||||
if not isinstance(other, relativedelta):
|
||||
return False
|
||||
if self.weekday or other.weekday:
|
||||
if not self.weekday or not other.weekday:
|
||||
return False
|
||||
if self.weekday.weekday != other.weekday.weekday:
|
||||
return False
|
||||
n1, n2 = self.weekday.n, other.weekday.n
|
||||
if n1 != n2 and not ((not n1 or n1 == 1) and (not n2 or n2 == 1)):
|
||||
return False
|
||||
return (self.years == other.years and
|
||||
self.months == other.months and
|
||||
self.days == other.days and
|
||||
self.hours == other.hours and
|
||||
self.minutes == other.minutes and
|
||||
self.seconds == other.seconds and
|
||||
self.leapdays == other.leapdays and
|
||||
self.year == other.year and
|
||||
self.month == other.month and
|
||||
self.day == other.day and
|
||||
self.hour == other.hour and
|
||||
self.minute == other.minute and
|
||||
self.second == other.second and
|
||||
self.microsecond == other.microsecond)
|
||||
|
||||
def __ne__(self, other):
|
||||
return not self.__eq__(other)
|
||||
|
||||
def __div__(self, other):
|
||||
return self.__mul__(1/float(other))
|
||||
|
||||
def __repr__(self):
|
||||
l = []
|
||||
for attr in ["years", "months", "days", "leapdays",
|
||||
"hours", "minutes", "seconds", "microseconds"]:
|
||||
value = getattr(self, attr)
|
||||
if value:
|
||||
l.append("%s=%+d" % (attr, value))
|
||||
for attr in ["year", "month", "day", "weekday",
|
||||
"hour", "minute", "second", "microsecond"]:
|
||||
value = getattr(self, attr)
|
||||
if value is not None:
|
||||
l.append("%s=%s" % (attr, `value`))
|
||||
return "%s(%s)" % (self.__class__.__name__, ", ".join(l))
|
||||
@@ -1,26 +0,0 @@
|
||||
import xbmc
|
||||
import xbmcaddon
|
||||
|
||||
__addon_id__= 'script.xbmcbackup'
|
||||
__Addon = xbmcaddon.Addon(__addon_id__)
|
||||
|
||||
def data_dir():
|
||||
return __Addon.getAddonInfo('profile')
|
||||
|
||||
def log(message,loglevel=xbmc.LOGNOTICE):
|
||||
xbmc.log(encode(__addon_id__ + ": " + message),level=loglevel)
|
||||
|
||||
def showNotification(message):
|
||||
xbmc.executebuiltin("Notification(" + getString(30010) + "," + message + ",4000," + xbmc.translatePath(__Addon.getAddonInfo('path') + "/icon.png") + ")")
|
||||
|
||||
def getSetting(name):
|
||||
return __Addon.getSetting(name)
|
||||
|
||||
def setSetting(name,value):
|
||||
__Addon.setSetting(name,value)
|
||||
|
||||
def getString(string_id):
|
||||
return __Addon.getLocalizedString(string_id)
|
||||
|
||||
def encode(string):
|
||||
return string.encode('UTF-8','replace')
|
||||
@@ -1,256 +0,0 @@
|
||||
'''
|
||||
Convenience wrappers and extensions for some commonly used VFS functions
|
||||
in XBMC addons. This module exposes all the functionality of xbmcvfs plus
|
||||
some extra functions.
|
||||
|
||||
Copyright (C) 2012 Patrick Carey
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
'''
|
||||
|
||||
import json
|
||||
import os
|
||||
import xbmc
|
||||
import xbmcvfs
|
||||
import urllib
|
||||
|
||||
def walk(path):
|
||||
|
||||
'''
|
||||
Reimplementation of os.walk using XBMC's jsonrpc API.
|
||||
|
||||
This has the nice added benefits of being able to walk remote
|
||||
directories and inside compressed files such as rars/zips.
|
||||
'''
|
||||
|
||||
dir_tree = [[path]]
|
||||
|
||||
current_depth = 0
|
||||
|
||||
not_dir = ['.zip','.xsp','.rar']
|
||||
|
||||
while True:
|
||||
|
||||
if current_depth > -1:
|
||||
|
||||
try:
|
||||
|
||||
current_path = dir_tree[current_depth].pop(0)
|
||||
current_dirs, current_files = [], []
|
||||
|
||||
for x in listdir(current_path, extra_metadata=True):
|
||||
|
||||
file_ext = x['file'].split('.')[-1]
|
||||
|
||||
if x['filetype'] == 'directory' and not any(file_ext in s for s in not_dir):
|
||||
|
||||
current_dirs.append(urllib.unquote(x['file']))
|
||||
|
||||
else:
|
||||
|
||||
current_files.append(urllib.unquote(x['file']))
|
||||
|
||||
except IndexError:
|
||||
|
||||
current_depth -= 1
|
||||
|
||||
dir_tree.pop()
|
||||
|
||||
else:
|
||||
|
||||
yield (current_path, current_dirs, current_files)
|
||||
|
||||
if current_dirs:
|
||||
|
||||
current_depth += 1
|
||||
|
||||
dir_tree.append(current_dirs)
|
||||
|
||||
else:
|
||||
|
||||
break
|
||||
|
||||
|
||||
def listdir(path, extra_metadata=False):
|
||||
|
||||
'''
|
||||
Reimplementation of os.listdir using XBMC's jsonrpc API.
|
||||
|
||||
Returns a list of file/directory names from the specified path
|
||||
|
||||
Accepts an optional boolean 'extra_metadata' as the second argument
|
||||
which will cause the function to instead return a list of dictionaries
|
||||
containing all of the metadata about each file that was retrieved from
|
||||
XBMC.
|
||||
'''
|
||||
|
||||
fileList = []
|
||||
|
||||
json_response = xbmc.executeJSONRPC('{ "jsonrpc" : "2.0" , "method" : "Files.GetDirectory" , "params" : { "directory" : "%s" , "sort" : { "method" : "file" } } , "id" : 1 }' % path.encode('utf-8').replace('\\', '\\\\'))
|
||||
|
||||
jsonobject = json.loads(json_response)
|
||||
|
||||
if jsonobject.has_key('result') and jsonobject['result']['files']:
|
||||
|
||||
for item in jsonobject['result']['files']:
|
||||
|
||||
if extra_metadata:
|
||||
|
||||
fileList.append(item)
|
||||
|
||||
else:
|
||||
|
||||
fileList.append(item['file'])
|
||||
|
||||
return fileList
|
||||
|
||||
|
||||
def copy(source, destination):
|
||||
|
||||
"""
|
||||
copy(source, destination) -- Copy file to destination, returns true/false.
|
||||
|
||||
source : file to copy.
|
||||
destination : destination file
|
||||
|
||||
example:
|
||||
- success = vfs.copy(source, destination)
|
||||
"""
|
||||
|
||||
return xbmcvfs.copy(source, destination)
|
||||
|
||||
|
||||
def delete(path):
|
||||
|
||||
"""
|
||||
delete(file) -- Delete file
|
||||
|
||||
file : file to delete
|
||||
|
||||
example:
|
||||
- vfs.delete(file)
|
||||
"""
|
||||
|
||||
return xbmcvfs.delete(path)
|
||||
|
||||
|
||||
def exists(path):
|
||||
|
||||
"""
|
||||
exists(path) -- Check if file exists, returns true/false.
|
||||
|
||||
path : file or folder
|
||||
|
||||
example:
|
||||
- success = vfs.exists(path)
|
||||
"""
|
||||
|
||||
return xbmcvfs.exists(path)
|
||||
|
||||
|
||||
def mkdir(path):
|
||||
|
||||
"""
|
||||
mkdir(path) -- Create a folder.
|
||||
|
||||
path : folder
|
||||
|
||||
example:
|
||||
- success = vfs.mkdir(path)
|
||||
"""
|
||||
|
||||
return xbmcvfs.mkdir(path)
|
||||
|
||||
|
||||
def rename(source, target):
|
||||
|
||||
"""
|
||||
rename(file, newFileName) -- Rename file, returns true/false.
|
||||
|
||||
file : file to reaname
|
||||
newFileName : new filename, including the full path
|
||||
|
||||
example:
|
||||
- success = vfs.rename(file, newFileName)
|
||||
"""
|
||||
|
||||
return xbmcvfs.rename(source, target)
|
||||
|
||||
|
||||
def rmdir(path):
|
||||
|
||||
"""
|
||||
rmdir(path) -- Remove a folder.
|
||||
|
||||
path : folder
|
||||
|
||||
example:
|
||||
- success = vfs.rmdir(path)
|
||||
"""
|
||||
|
||||
return xbmcvfs.rmdir(path)
|
||||
|
||||
|
||||
def comparepathlists(list1, list2, fullpath=False):
|
||||
|
||||
"""
|
||||
comparepathlists(list1, list2) -- Compare two lists of paths
|
||||
|
||||
list1 : list, contains paths (local or remote, absolute or relative)
|
||||
list2 : list, contains paths (local or remote, absolute or relative)
|
||||
fullpath : boolean, set True to compare perform straight comparison of lists
|
||||
set False (default) to compare on filename portions of each list
|
||||
|
||||
returns: dictionary:
|
||||
common_items: list, contains paths of items common to both lists
|
||||
list1_items: list, contains paths of items found only in list1
|
||||
list2_items: list, contains paths of items found only in list2
|
||||
|
||||
example:
|
||||
- compare = comparepathlists(list1, list2)
|
||||
"""
|
||||
|
||||
# initialise dict to store results and temp data
|
||||
results = {}
|
||||
temp_data = {}
|
||||
|
||||
if fullpath:
|
||||
|
||||
temp_path = lambda x: x
|
||||
|
||||
else:
|
||||
|
||||
temp_path = lambda x: os.path.split(x)[1]
|
||||
|
||||
for path in list1:
|
||||
|
||||
temp_data['list1'].append(temp_path(path))
|
||||
|
||||
for path in list2:
|
||||
|
||||
temp_data['list2'].append(temp_path(path))
|
||||
|
||||
# get items not in list 2
|
||||
results['list1_items'] = []
|
||||
gen = (i for i, x in enumerate(temp_data['list1']) if not x in temp_data['list2'])
|
||||
for i in gen:
|
||||
results['list1_items'].append(list1[i])
|
||||
|
||||
# get items not in list 1
|
||||
results['list2_items'] = []
|
||||
gen = (i for i, x in enumerate(temp_data['list2']) if not x in temp_data['list1'])
|
||||
for i in gen:
|
||||
results['list2_items'].append(list2[i])
|
||||
|
||||
return results
|
||||
@@ -1,26 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<settings>
|
||||
<category id="general" label="30011">
|
||||
<setting id="addon_mode" type="enum" lvalues="30016|30017" default="0" label="30023" />
|
||||
<setting id="remote_selection" type="enum" lvalues="30018|30019" default="0" label="30025"/>
|
||||
<setting id="remote_path_2" type="text" label="30024" default="" visible="eq(-1,1)" />
|
||||
<setting id="remote_path" type="folder" label="30020" visible="eq(-2,0)" />
|
||||
<setting id="backup_name" type="text" label="30021" default="backup_date" visible="eq(-4,1)"/>
|
||||
<setting id="run_silent" type="bool" label="30022" default="false" />
|
||||
</category>
|
||||
<category id="selection" label="30012">
|
||||
<setting id="backup_addons" type="bool" label="30030" default="true" />
|
||||
<setting id="backup_addon_data" type="bool" label="30031" default="false" />
|
||||
<setting id="backup_database" type="bool" label="30032" default="true" />
|
||||
<setting id="backup_playlists" type="bool" label="30033" default="true" />
|
||||
<setting id="backup_thumbnails" type="bool" label="30034" default="true" />
|
||||
<setting id="backup_config" type="bool" label="30035" default="true" />
|
||||
</category>
|
||||
<category id="scheduling" label="30013">
|
||||
<setting id="enable_scheduler" type="bool" label="30060" default="false" />
|
||||
<setting id="schedule_interval" type="enum" label="30061" lvalues="30072|30073|30074|30075" default="0" enable="eq(-1,true)"/>
|
||||
<setting id="schedule_time" type="labelenum" label="30062" values="00:00|01:00|02:00|03:00|04:00|05:00|06:00|07:00|08:00|09:00|10:00|11:00|12:00|13:00|14:00|15:00|16:00|17:00|18:00|19:00|20:00|21:00|22:00|23:00" default="00:00" visible="!eq(-1,3)" enable="eq(-2,true)"/>
|
||||
<setting id="day_of_week" type="enum" label="30063" lvalues="30065|30066|30067|30068|30069|30070|30071" default="0" visible="eq(-2,1)" enable="eq(-3,true)"/>
|
||||
<setting id="cron_schedule" type="text" label="30064" default="0 0 * * *" visible="eq(-3,3)" enable="eq(-4,true)"/>
|
||||
</category>
|
||||
</settings>
|
||||
97
scheduler.py
97
scheduler.py
@@ -1,97 +0,0 @@
|
||||
import xbmc
|
||||
import datetime
|
||||
import time
|
||||
import os
|
||||
import resources.lib.utils as utils
|
||||
from resources.lib.croniter import croniter
|
||||
from resources.lib.backup import XbmcBackup
|
||||
|
||||
class BackupScheduler:
|
||||
enabled = "false"
|
||||
next_run = 0
|
||||
settings_update_time = 0
|
||||
|
||||
def __init__(self):
|
||||
self.enabled = utils.getSetting("enable_scheduler")
|
||||
|
||||
if(self.enabled == "true"):
|
||||
self.setup()
|
||||
|
||||
def setup(self):
|
||||
#scheduler was turned on, find next run time
|
||||
utils.log("scheduler enabled, finding next run time")
|
||||
self.findNextRun(time.time(),True)
|
||||
utils.log("scheduler will run again on " + datetime.datetime.fromtimestamp(self.next_run).strftime('%m-%d-%Y %H:%M'))
|
||||
|
||||
def start(self):
|
||||
while(not xbmc.abortRequested):
|
||||
current_enabled = utils.getSetting("enable_scheduler")
|
||||
|
||||
if(current_enabled == "true" and self.enabled == "false"):
|
||||
#scheduler was just turned on
|
||||
self.enabled = current_enabled
|
||||
self.setup()
|
||||
elif (current_enabled == "false" and self.enabled == "true"):
|
||||
#schedule was turn off
|
||||
self.enabled = current_enabled
|
||||
elif(self.enabled == "true"):
|
||||
#scheduler is still on
|
||||
now = time.time()
|
||||
|
||||
if(self.next_run <= now):
|
||||
if(utils.getSetting('run_silent') == 'false'):
|
||||
utils.showNotification(utils.getString(30053))
|
||||
#run the job in backup mode, hiding the dialog box
|
||||
backup = XbmcBackup()
|
||||
backup.run(XbmcBackup.Backup,True)
|
||||
self.findNextRun(now,True)
|
||||
else:
|
||||
self.findNextRun(now)
|
||||
|
||||
time.sleep(10)
|
||||
|
||||
def findNextRun(self,now,forceUpdate = False):
|
||||
mod_time = self.settings_update_time
|
||||
|
||||
#check if the schedule has been modified
|
||||
try:
|
||||
#get the last modified time of the file
|
||||
mod_time = os.path.getmtime(xbmc.translatePath(utils.data_dir()) + "settings.xml")
|
||||
except:
|
||||
#don't do anything here
|
||||
mod_time = self.settings_update_time
|
||||
|
||||
if(mod_time > self.settings_update_time or forceUpdate):
|
||||
self.settings_update_time = mod_time
|
||||
|
||||
#find the cron expression and get the next run time
|
||||
cron_exp = self.parseSchedule()
|
||||
|
||||
cron_ob = croniter(cron_exp,datetime.datetime.fromtimestamp(now))
|
||||
new_run_time = cron_ob.get_next(float)
|
||||
|
||||
if(new_run_time != self.next_run):
|
||||
self.next_run = new_run_time
|
||||
utils.log("scheduler will run again on " + datetime.datetime.fromtimestamp(self.next_run).strftime('%m-%d-%Y %H:%M'))
|
||||
|
||||
def parseSchedule(self):
|
||||
schedule_type = int(utils.getSetting("schedule_interval"))
|
||||
cron_exp = utils.getSetting("cron_schedule")
|
||||
|
||||
hour_of_day = utils.getSetting("schedule_time")
|
||||
hour_of_day = int(hour_of_day[0:2])
|
||||
if(schedule_type == 0):
|
||||
#every day
|
||||
|
||||
cron_exp = "0 " + str(hour_of_day) + " * * *"
|
||||
elif(schedule_type == 1):
|
||||
#once a week
|
||||
day_of_week = utils.getSetting("day_of_week")
|
||||
cron_exp = "0 " + str(hour_of_day) + " * * " + day_of_week
|
||||
elif(schedule_type == 2):
|
||||
#first day of month
|
||||
cron_exp = "0 " + str(hour_of_day) + " 1 * *"
|
||||
|
||||
return cron_exp
|
||||
|
||||
BackupScheduler().start()
|
||||
BIN
screenshots/screenshot1.jpg
Normal file
BIN
screenshots/screenshot1.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 100 KiB |
BIN
screenshots/screenshot2.jpg
Normal file
BIN
screenshots/screenshot2.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 96 KiB |
BIN
screenshots/screenshot3.jpg
Normal file
BIN
screenshots/screenshot3.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 135 KiB |
BIN
screenshots/screenshot4.jpg
Normal file
BIN
screenshots/screenshot4.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 95 KiB |
BIN
screenshots/screenshot5.jpg
Normal file
BIN
screenshots/screenshot5.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 96 KiB |
BIN
screenshots/screenshot6.jpg
Normal file
BIN
screenshots/screenshot6.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 103 KiB |
Reference in New Issue
Block a user