Skip to content
This repository was archived by the owner on May 28, 2025. It is now read-only.

Commit 5dc6ac0

Browse files
committed
refactoring kron4ek repo
1 parent 8759a6f commit 5dc6ac0

1 file changed

Lines changed: 39 additions & 4 deletions

File tree

src/src/modules/kron4ek.js

Lines changed: 39 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import _ from "lodash";
12
import Prefix from "./prefix";
23
import FileSystem from "./file-system";
34
import Network from "./network";
@@ -55,12 +56,35 @@ export default class Kron4ek {
5556

5657
if (null === this.data) {
5758
promise = this.network.getJSON(this.url).then((data) => {
58-
let items = [];
59+
let items = {};
60+
let keys = [];
5961

6062
data.forEach((release) => {
6163
release.assets.forEach((item) => {
62-
items.push({
63-
name: item.name.replace('wine-', '').replace('.tar.xz', ''),
64+
let name = item.name.replace('wine-', '').replace('.tar.xz', '');
65+
let arch = item.name.includes('amd64') ? 'amd64' : 'x86';
66+
let version = name.match(/^([0-9]+\.[0-9]+-([0-9]+-|))/gm)[0];
67+
name = _.trimEnd(name.replace(version, '').replace(/amd64$/, '').replace(/x86$/, ''), '-');
68+
version = _.trimEnd(version, '-');
69+
70+
if (!name) {
71+
name = 'wine';
72+
}
73+
74+
if (undefined === items[name]) {
75+
items[name] = {};
76+
}
77+
78+
if (undefined === items[name][version]) {
79+
items[name][version] = [];
80+
}
81+
82+
if (!keys.includes(name)) {
83+
keys.push(name);
84+
}
85+
86+
items[name][version].push({
87+
name: arch,
6488
type: 'file',
6589
download: () => {
6690
return this.download(item.browser_download_url);
@@ -69,7 +93,18 @@ export default class Kron4ek {
6993
});
7094
});
7195

72-
this.data = items;
96+
this.data = keys.map(name => {
97+
let versions = items[name];
98+
return {
99+
name: name,
100+
type: 'dir',
101+
nested: Object.keys(versions).map(version => ({
102+
name: version,
103+
type: 'dir',
104+
nested: items[name][version],
105+
})),
106+
};
107+
});
73108
});
74109
}
75110

0 commit comments

Comments
 (0)