Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
S--Minecraft committed May 20, 2017
2 parents 15d40e1 + 0ce4e68 commit e050672
Show file tree
Hide file tree
Showing 11 changed files with 78 additions and 114 deletions.
5 changes: 2 additions & 3 deletions package.json
@@ -1,6 +1,6 @@
{
"name": "BlitzModder",
"version": "1.4.5",
"version": "1.5.0",
"description": "Mod manager for World of Tanks Blitz(PC)",
"main": "bin/core/core.js",
"scripts": {
Expand All @@ -23,12 +23,11 @@
"license": "MIT",
"dependencies": {
"bootstrap": "^4.0.0-alpha.6",
"denodeify": "^1.2.1",
"fs-extra": "^2.1.2",
"fstream": "^1.0.11",
"js-yaml": "^3.8.3",
"jszip": "^3.1.3",
"plist": "^2.0.1",
"promise": "^7.1.1",
"readdirp": "^2.1.0",
"request": "^2.81.0",
"semver": "^5.3.0",
Expand Down
30 changes: 5 additions & 25 deletions src/core/applyMod.coffee
Expand Up @@ -4,7 +4,7 @@

{app} = require "electron"
path = require "path"
Promise = require "promise"
denodeify = require "denodeify"
fs = require "fs-extra"
fstream = require "fstream"
jszip = require "jszip"
Expand All @@ -14,7 +14,7 @@ unzip = require "unzipper"
config = require "./config"
util = require "./util"

readFile = Promise.denodeify(fs.readFile)
readFile = denodeify(fs.readFile)

TEMP_FOLDER = path.join(app.getPath("temp"), "BlitzModderPC")

Expand Down Expand Up @@ -206,29 +206,9 @@ applyMod = (type, mod, callback) ->
* @return {Promise}
###
applyMods = (addMods, deleteMods, callback) ->
dLen = deleteMods.length
aLen = addMods.length

deleteDeferArray = []
for dmod in deleteMods
deleteDeferArray.push(applyMod("delete", dmod, callback))
if dLen > 0
if aLen > 0
return Promise.all(deleteDeferArray).then( ->
addDeferArray = []
for amod in addMods
addDeferArray.push(applyMod("add", amod, callback))
return Promise.all(addDeferArray)
)
else
return Promise.all(deleteDeferArray)
else if aLen > 0
addDeferArray = []
for amod in addMods
addDeferArray.push(applyMod("add", amod, callback))
return Promise.all(addDeferArray)
else
return Promise.resolve()
return Promise.all(applyMod("delete", dmod, callback) for dmod in deleteMods).then( ->
return Promise.all(applyMod("add", amod, callback) for amod in addMods)
)

module.exports =
applyMod: applyMod
Expand Down
10 changes: 5 additions & 5 deletions src/core/cache.coffee
Expand Up @@ -5,17 +5,17 @@
fs = require "fs-extra"
path = require "path"
{app} = require "electron"
Promise = require "promise"
denodeify = require "denodeify"

###*
* キャッシュをおくフォルダ
* @const
###
CACHE_FOLDER_PATH = path.join(app.getPath("userData"), "cache")
CACHE_FOLDER_PATH = path.join(app.getPath("userData"), "plistCache")

ensureFile = Promise.denodeify(fs.ensureFile)
readJson = Promise.denodeify(fs.readJson)
remove = Promise.denodeify(fs.remove)
ensureFile = denodeify(fs.ensureFile)
readJson = denodeify(fs.readJson)
remove = denodeify(fs.remove)

###
* キャッシュファイルと実際のファイルのテーブル
Expand Down
20 changes: 11 additions & 9 deletions src/core/config.coffee
Expand Up @@ -5,7 +5,7 @@
fs = require "fs-extra"
path = require "path"
{app} = require "electron"
Promise = require "promise"
denodeify = require "denodeify"
util = require "./util"
os = require "os"

Expand Down Expand Up @@ -34,8 +34,8 @@ BLITZ_PATH =
MACSTEAM: path.join(os.homedir(), "Library/Application Support/Steam/SteamApps/common/World of Tanks Blitz/World of Tanks Blitz.app/Contents/Resources/")
MACSTORE: "/Applications/World of Tanks Blitz.app/Contents/Resources/"

ensureFile = Promise.denodeify(fs.ensureFile)
readJson = Promise.denodeify(fs.readJson)
ensureFile = denodeify(fs.ensureFile)
readJson = denodeify(fs.readJson)

###
* 設定のデータ
Expand Down Expand Up @@ -103,12 +103,14 @@ init = ->
data = Object.assign(data, content)
else
machineLang = app.getLocale()
if machineLang is "ja"
data.lang = "ja"
else if machineLang.includes("en")
data.lang = "en"
else
data.lang = "en"
switch true
when machineLang is "ja" then data.lang = "ja"
when machineLang is "ru" then data.lang = "ru"
when machineLang is "zh-TW" then data.lang = "zh_TW"
when machineLang is "zh-CN" then data.lang = "zh_CN"
when machineLang.includes("en") then data.lang = "en"
when machineLang.includes("zh") then data.lang = "zh_CN"
else data.lang = "en"
_update()
)

Expand Down
12 changes: 7 additions & 5 deletions src/core/core.coffee
Expand Up @@ -18,10 +18,11 @@ createWindow = ->
height: 600,
title: "BlitzModderPC",
icon: path.join(app.getAppPath(), "gui/img/image.jpg"),
autoHideMenuBar: true
autoHideMenuBar: true,
show: false
)
mainWindow.once("ready-to-show", ->
win.show()
mainWindow.show()
return
)
mainWindow.loadURL("file://#{app.getAppPath()}/gui/index.html")
Expand All @@ -48,8 +49,9 @@ app.on("ready", ->

app.on("window-all-closed", ->
# キャッシュ削除
session.defaultSession.clearCache(->)
# アプリ終了
app.quit()
session.defaultSession.clearCache( ->
# アプリ終了
app.quit()
)
return
)
1 change: 0 additions & 1 deletion src/core/lang.coffee
Expand Up @@ -2,7 +2,6 @@
* @fileoverview 翻訳関連
###
{app} = require "electron"
yaml = require "js-yaml"
config = require "./config"

_langname = ""
Expand Down
46 changes: 19 additions & 27 deletions src/core/plistInfo.coffee
@@ -1,14 +1,17 @@
###*
* @fileoverview info.plistの読み込み
###
fs = require "fs-extra"
path = require "path"
plist = require "plist"
Promise = require "promise"
denodeify = require "denodeify"
semver = require "semver"
request = require "./request"
cache = require "./cache"
config = require "./config"
util = require "./util"

readFile = Promise.denodeify(fs.readFile)
readFile = denodeify(fs.readFile)

###*
* データ
Expand All @@ -35,34 +38,23 @@ get = ({type: repoType, name: repoName}, force = false) ->
if data[repoName]? and !force
resolve(data[repoName])
return
cache.getStringFile(repoName, "info.plist", force).then( (content) ->
data[repoName] = plist.parse(content)
resolve(data[repoName])
return
, (err) ->
isCatched = false
cache.getStringFile(repoName, "info.plist", force).catch( ->
isCatched = true
if repoType is "remote"
request.getFromRemote(repoName, "info.plist").then( (content) ->
string = content.toString()
cache.setStringFile(repoName, "info.plist", string)
data[repoName] = plist.parse(string)
resolve(data[repoName])
return
, (err) ->
reject(err)
return
return request.getFromRemote(repoName, "info.plist").then( (content) ->
return content.toString()
)
else if repoType is "local"
readFile(path.join(repoName, "info.plist"), "utf8").then( (res) ->
cache.setStringFile(repoName, "info.plist", res)
data[repoName] = plist.parse(res)
resolve(data[repoName])
return
, (err) ->
reject(err)
return
)
else
reject()
return readFile(path.join(repoName, "info.plist"), "utf8")
return Promise.reject()
).then( (res) ->
cache.setStringFile(repoName, "info.plist", res) if isCatched
data[repoName] = plist.parse(res)
resolve(data[repoName])
return
).catch( (err) ->
reject(err)
return
)
)
Expand Down
57 changes: 25 additions & 32 deletions src/core/plistList.coffee
@@ -1,14 +1,17 @@
###*
* @fileoverview 言語.plistの読み込み
###
fs = require "fs-extra"
path = require "path"
plist = require "plist"
Promise = require "promise"
denodeify = require "denodeify"
semver = require "semver"
request = require "./request"
cache = require "./cache"
config = require "./config"
util = require "./util"

readFile = Promise.denodeify(fs.readFile)
readFile = denodeify(fs.readFile)

###*
* データ
Expand Down Expand Up @@ -56,7 +59,11 @@ parse = (plistObj) ->
* @return {Object} plistのオブジェクト
###
getUntilDone = (repo, lang, force = false) ->
return get(repo, lang, force).catch( ->
return get(repo, lang, force).catch(->
if lang.includes("_")
return get(repo, lang.split("_")[0], force)
return Promise.reject()
).catch( ->
return get(repo, "en", force)
).catch( ->
return get(repo, "ja", force)
Expand All @@ -77,37 +84,24 @@ get = ({type: repoType, name: repoName}, lang, force = false) ->
if data[repoName]?[lang]? and !force
resolve(data[repoName][lang])
return
cache.getStringFile(repoName, "plist/#{lang}.plist", force).then( (content) ->
data[repoName] = {} if !data[repoName]?
data[repoName][lang] = parse(plist.parse(content))
resolve(data[repoName][lang])
return
, (err) ->
isCatched = false
cache.getStringFile(repoName, "plist/#{lang}.plist", force).catch( ->
isCatched = true
if repoType is "remote"
request.getFromRemote(repoName, "plist/#{lang}.plist").then( (content) ->
string = content.toString()
cache.setStringFile(repoName, "plist/#{lang}.plist", string)
data[repoName] = {} if !data[repoName]?
data[repoName][lang] = parse(plist.parse(string))
resolve(data[repoName][lang])
return
, (err) ->
reject(err)
return
return request.getFromRemote(repoName, "plist/#{lang}.plist").then( (content) ->
return content.toString()
)
else if repoType is "local"
readFile(path.join(repoName, "plist/#{lang}.plist"), "utf8").then( (res) ->
cache.setStringFile(repoName, "plist/#{lang}.plist", res)
data[repoName] = {} if !data[repoName]?
data[repoName][lang] = parse(plist.parse(res))
resolve(data[repoName][lang])
return
, (err) ->
reject(err)
return
)
else
reject()
return readFile(path.join(repoName, "plist/#{lang}.plist"), "utf8")
return Promise.reject()
).then( (res) ->
cache.setStringFile(repoName, "plist/#{lang}.plist", res) if isCatched
data[repoName] = {} if !data[repoName]?
data[repoName][lang] = parse(plist.parse(res))
resolve(data[repoName][lang])
return
).catch( (err) ->
reject(err)
return
)
)
Expand Down Expand Up @@ -156,4 +150,3 @@ module.exports =
getUntilDone: getUntilDone
get: get
filter: filter

1 change: 0 additions & 1 deletion src/core/request.coffee
Expand Up @@ -5,7 +5,6 @@
request = require "request"
path = require "path"
fs = require "fs-extra"
Promise = require "promise"

###*
* リモートからファイルを取得します
Expand Down
5 changes: 2 additions & 3 deletions src/core/util.coffee
Expand Up @@ -3,10 +3,10 @@ fs = require "fs-extra"
jszip = require "jszip"
{shell} = require("electron")
os = require "os"
Promise = require "promise"
denodeify = require "denodeify"
config = require "./config"

readFile = Promise.denodeify(fs.readFile)
readFile = denodeify(fs.readFile)

###*
* HTMLエスケープ
Expand Down Expand Up @@ -92,7 +92,6 @@ getVersion = (useCache = false) ->
resolve(ver)
return
).catch( (err) ->
console.log err
reject(err)
return
)
Expand Down
5 changes: 2 additions & 3 deletions src/package.json
@@ -1,6 +1,6 @@
{
"name": "BlitzModder",
"version": "1.4.5",
"version": "1.5.0",
"description": "Mod manager for World of Tanks Blitz(PC)",
"main": "core/core.js",
"author": "S(FV293b)",
Expand All @@ -12,12 +12,11 @@
"license": "MIT",
"dependencies": {
"bootstrap": "^4.0.0-alpha.6",
"denodeify": "^1.2.1",
"fs-extra": "^2.1.2",
"fstream": "^1.0.11",
"js-yaml": "^3.8.3",
"jszip": "^3.1.3",
"plist": "^2.0.1",
"promise": "^7.1.1",
"readdirp": "^2.1.0",
"request": "^2.81.0",
"semver": "^5.3.0",
Expand Down

0 comments on commit e050672

Please sign in to comment.