Skip to content

Commit

Permalink
updates
Browse files Browse the repository at this point in the history
  • Loading branch information
slothyace authored Feb 10, 2025
1 parent b3c0d2a commit 96aca6c
Show file tree
Hide file tree
Showing 4 changed files with 67 additions and 58 deletions.
2 changes: 1 addition & 1 deletion Actions/extractSteamSummary_MOD.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ module.exports = {
},
aliases: [],
modules: [],
category: "",
category: "Steam",
info: {
source: "https://github.com/slothyace/bmods-acedia/tree/main/Actions",
creator: "Acedia",
Expand Down
82 changes: 46 additions & 36 deletions Actions/timeConversions_MOD.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ module.exports = {
week: {name: "Weeks", field: false},
month: {name: "Months", field: false},
years: {name: "Years", field: false},
custom: {name: "Custom", field: false}
custom: {name: "Parse Time (Custom)", field: false}
}
},
{
Expand Down Expand Up @@ -106,7 +106,7 @@ module.exports = {
let inputType = thisAction.UI.find((e) => e.element == "typedDropdown").choices[values.inputUnit.type].name

let outputType
switch (outputAs){
switch (outputUnits){
default:
outputType = thisAction.UI.find((e) => e.element == "typedDropdown").choices[values.outputUnit.type].name
break
Expand All @@ -128,46 +128,46 @@ module.exports = {
let resultOutput
let msTimeBase

if (inputUnitType != "custom"){
if (inputUnitType !== "custom"){
timeInput = parseFloat(timeInput)
if (isNaN(timeInput)){
console.error(`${values.timeInput} Is Not A Number!`)
console.error(`The given time input is not a number!`)
bridge.store(values.convertedTime, undefined)
return
}
}

switch (inputUnitType){
case "ms":
msTimeBase = timeInput
msTimeBase = parseFloat(timeInput)
break

case "sec":
msTimeBase = timeInput*1000
msTimeBase = parseFloat(timeInput)*1000
break

case "min":
msTimeBase = timeInput*(1000*60)
msTimeBase = parseFloat(timeInput)*(1000*60)
break

case "hour":
msTimeBase = timeInput*(1000*60*60)
msTimeBase = parseFloat(timeInput)*(1000*60*60)
break

case "day":
msTimeBase = timeInput*(1000*60*60*24)
msTimeBase = parseFloat(timeInput)*(1000*60*60*24)
break

case "week":
msTimeBase = timeInput*(1000*60*60*24*7)
msTimeBase = parseFloat(timeInput)*(1000*60*60*24*7)
break

case "month":
msTimeBase = timeInput*(1000*60*60*24*30.44)
msTimeBase = parseFloat(timeInput)*(1000*60*60*24*30.44)
break

case "year":
msTimeBase = timeInput*(1000*60*60*24*365.25)
case "years":
msTimeBase = parseFloat(timeInput)*(1000*60*60*24*365.25)
break

case "custom":
Expand All @@ -183,83 +183,94 @@ module.exports = {
}

let extractedValues = {}
for (let unit in extractions){
let matches = [...timeInput.matchAll(extractions[unit].regex)]
for (let unit in extractions) {
let matches = [...timeInput.matchAll(extractions[unit].regex)];

if (matches.length > 0) {
extractedValues[unit] = matches.reduce((sum,match) => {
sum+parseFloat(match[1]), 0
})
extractedValues[unit] = matches.reduce((sum, match) => {
return sum + (parseFloat(match[1]) || 0)
}, 0)
} else {
extractedValues[unit] = 0
}
}

msTimeBase = 0
for (let unit in extractedValues){
msTimeBase += extractedValues[unit]*extractions[unit].toMilli
for (let unit in extractedValues) {
msTimeBase += extractedValues[unit] * extractions[unit].toMilli;
}
parseFloat(msTimeBase)
break
}

msTimeBase = Number(msTimeBase)

switch (outputUnitType){
case "ms":
resultOutput = msTimeBase
break

case "sec":
resultOutput = (msTimeBase/1000)
resultOutput = msTimeBase/1000
break

case "min":
resultOutput = (msTimeBase/(1000*60))
resultOutput = msTimeBase/(1000*60)
break

case "hour":
resultOutput = (msTimeBase/(1000*60*60))
resultOutput = msTimeBase/(1000*60*60)
break

case "day":
resultOutput = (msTimeBase/(1000*60*60*24))
resultOutput = msTimeBase/(1000*60*60*24)
break

case "week":
resultOutput = (msTimeBase/(1000*60*60*24*7))
resultOutput = msTimeBase/(1000*60*60*24*7)
break

case "month":
resultOutput = (msTimeBase/(1000*60*60*24*30.44))
resultOutput = msTimeBase/(1000*60*60*24*30.44)
break

case "year":
resultOutput = (msTimeBase/(1000*60*60*24*365.25))
case "years":
resultOutput = msTimeBase/(1000*60*60*24*365.25)
break

case "custom":
let format = bridge.transf(values.outputUnit.value)

let years = Math.floor(msTimeBase/(1000*60*60*24*365.25))
msTimeBase %= (1000*60*60*365.25)*years
msTimeBase %= (1000*60*60*365.25)
console.log(years, typeof years)

let months = Math.floor(msTimeBase/(1000*60*60*24*30.44))
msTimeBase %= (1000*60*60*24*30.44)*months
msTimeBase %= (1000*60*60*24*30.44)
console.log(months, typeof months)

let weeks = Math.floor(msTimeBase/(1000*60*60*24*7))
msTimeBase %= (1000*60*60*24*7)*weeks
msTimeBase %= (1000*60*60*24*7)
console.log(weeks, typeof weeks)

let days = Math.floor(msTimeBase/(1000*60*60*24))
msTimeBase %= (1000*60*60*24)*days
msTimeBase %= (1000*60*60*24)
console.log(days, typeof days)

let hours = Math.floor(msTimeBase/(1000*60*60))
msTimeBase %= (1000*60*60)*hours
msTimeBase %= (1000*60*60)
console.log(hours, typeof hours)

let minutes = Math.floor(msTimeBase/(1000*60))
msTimeBase %= (1000*60)*minutes
msTimeBase %= (1000*60)
console.log(minutes, typeof minutes)

let seconds = Math.floor(msTimeBase/1000)
msTimeBase %= (1000)*seconds
msTimeBase %= (1000)
console.log(seconds, typeof seconds)

let milliseconds = msTimeBase%1000
console.log(milliseconds, typeof milliseconds)

if (!format.includes("YY")){
months += years*(365.25/30.44)
Expand Down Expand Up @@ -316,7 +327,6 @@ module.exports = {
resultOutput = format.replace(/YY|MO|WK|DD|HH|MM|SS|MS/g, (match)=> components[match] || match)
break
}

bridge.store(values.convertedTime, resultOutput)
}
}
37 changes: 18 additions & 19 deletions WIPs/extractFromText_MOD.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ module.exports = {
},
aliases: ["Number Extraction", "Regex Extraction"],
modules: [],
category: "",
category: "Text",
info: {
source: "https://github.com/slothyace/bmods-acedia/tree/main/Actions",
creator: "Acedia",
Expand All @@ -19,29 +19,30 @@ module.exports = {
},
{
element: "typedDropdown",
storeAs: "extractionType",
storeAs: "extraction",
name: "Extract",
choices: {
string: {name: "String", field: true},
string: {name: "String", field: true, placeholder: "Regex"},
number: {name: "Number", field: false}
},
},
"-",
{
element: "store",
storeAs: "extractedItem",
name: "Store As"
name: "Store Extracted Array As"
},
{
element: "text",
text: modVersion,
},
],

subtitle: (values, thisAction) => {
let type = values.extractionType.type
subtitle: (values, constants, thisAction) => {
let type = values.extraction.type
let regexExp
if (type == "string"){
regexExp = values.extraction.value
regexExp = values.extraction.value || ""
} else if (type == "number"){
regexExp = `(\d+)`
}
Expand All @@ -50,24 +51,22 @@ module.exports = {

compatibility: ["Any"],

async run(client, message, values, bridge){
let sourceText = bridge.transf(values.sourceText)
let extractionType = bridge.transf(values.extractionType.type)
async run(values, message, client, bridge){
let source = bridge.transf(values.sourceText)
let extractionType = bridge.transf(values.extraction.type)

let extracts
switch (extractionType){
switch(extractionType){
case "string":
let extractionRegex = bridge.transf(values.extractionType.value)
extracts = [...sourceText.matchAll(new RegExp("^" + extractionRegex + "$", "gi"))]
let extractionReg = bridge.transf(values.extraction.value) || ""
extracts = [...source.matchAll(new RegExp("^"+extractionReg+"$", "g"))].map((match) => match[0])
break

case "number":
extracts = [...sourceText.matchAll(/(\d+)/gi)]
extracts = [...source.matchAll(/(\d+)/g)].map((match) => match[0])
break
}

let result = (extracts && extracts.length > 0) ? extracts : undefined

bridge.store(values.extractedItem, result)
let results = (extracts && extracts.length > 0) ? extracts : []
bridge.store(values.extractedItem, results)
}
}
4 changes: 2 additions & 2 deletions WIPs/frame.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,13 @@ module.exports = {

],

subtitle: (values) =>{
subtitle: (values, constants, thisAction) =>{ // To use thisAction, constants must also be present
return ``
},

compatibility: ["Any"],

async run(client, message, values, bridge){
async run(values, message, client, bridge){ // This is the exact order of things required, other orders will brick

}
}

0 comments on commit 96aca6c

Please sign in to comment.