Added more potential for liquid formatting and usecase discovery

This commit is contained in:
frikky
2022-02-20 23:32:58 +01:00
parent d207d47f39
commit 3d56ba210f
8 changed files with 58 additions and 15 deletions
+46 -3
View File
@@ -3,6 +3,7 @@ import copy
import sys import sys
import re import re
import time import time
import base64
import json import json
import liquid import liquid
import logging import logging
@@ -48,10 +49,52 @@ def minus(a, b):
b = int(b) b = int(b)
return standard_filter_manager.filters["minus"](a, b) return standard_filter_manager.filters["minus"](a, b)
@shuffle_filters.register
def multiply(a, b):
a = int(a)
b = int(b)
return standard_filter_manager.filters["multiply"](a, b)
@shuffle_filters.register
def divide(a, b):
a = int(a)
b = int(b)
return standard_filter_manager.filters["divide"](a, b)
@shuffle_filters.register
def md5(a):
a = str(a)
return hashlib.md5(a.encode('utf-8')).hexdigest()
@shuffle_filters.register
def sha256(a):
a = str(a)
return hashlib.sha256(str(a).encode("utf-8")).hexdigest()
@shuffle_filters.register
def md5_base64(a):
a = str(a)
foundhash = hashlib.md5(a.encode('utf-8')).hexdigest()
return base64.b64encode(foundhash.encode('utf-8'))
@shuffle_filters.register
def base64_encode(a):
a = str(a)
return base64.b64encode(a.encode('utf-8')).decode()
@shuffle_filters.register
def base64_decode(a):
a = str(a)
return base64.b64decode(a).decode()
#print(standard_filter_manager.filters) #print(standard_filter_manager.filters)
#print(shuffle_filters.filters) #print(shuffle_filters.filters)
print(Liquid("{{ '10' | plus: 1}}", filters=shuffle_filters.filters).render()) #print(Liquid("{{ '10' | plus: 1}}", filters=shuffle_filters.filters).render())
print(Liquid("{{ '10' | minus: 1}}", filters=shuffle_filters.filters).render()) #print(Liquid("{{ '10' | minus: 1}}", filters=shuffle_filters.filters).render())
#print(Liquid("{{ asd | size }}", filters=shuffle_filters.filters).render())
#print(Liquid("{{ 'asd' | md5 }}", filters=shuffle_filters.filters).render())
#print(Liquid("{{ 'asd' | sha256 }}", filters=shuffle_filters.filters).render())
#print(Liquid("{{ 'asd' | md5_base64 | base64_decode }}", filters=shuffle_filters.filters).render())
### ###
### ###
@@ -1855,7 +1898,7 @@ class AppBase:
if len(template) > 100: if len(template) > 100:
self.logger.info("[DEBUG] Running liquid with data of length %d" % len(template)) self.logger.info("[DEBUG] Running liquid with data of length %d" % len(template))
#self.logger.info(f"[DEBUG] Data: {template}") #self.logger.info(f"[DEBUG] Data: {template}")
run = Liquid(template, mode="wild", from_file=False) run = Liquid(template, mode="wild", from_file=False, filters=shuffle_filters.filters)
# Can't handle self yet (?) # Can't handle self yet (?)
ret = run.render(**globals()) ret = run.render(**globals())
+2 -2
View File
@@ -2,7 +2,7 @@ module main
go 1.16 go 1.16
replace github.com/shuffle/shuffle-shared => ../../../shuffle-shared //replace github.com/shuffle/shuffle-shared => ../../../shuffle-shared
//replace github.com/frikky/kin-openapi => ../../../../git/kin-openapi //replace github.com/frikky/kin-openapi => ../../../../git/kin-openapi
//replace github.com/frikky/go-elasticsearch => ../../../../git/go-elasticsearch //replace github.com/frikky/go-elasticsearch => ../../../../git/go-elasticsearch
@@ -24,7 +24,7 @@ require (
github.com/h2non/filetype v1.1.3 github.com/h2non/filetype v1.1.3
github.com/nirasan/go-oauth-pkce-code-verifier v0.0.0-20170819232839-0fbfe93532da // indirect github.com/nirasan/go-oauth-pkce-code-verifier v0.0.0-20170819232839-0fbfe93532da // indirect
github.com/satori/go.uuid v1.2.0 github.com/satori/go.uuid v1.2.0
github.com/shuffle/shuffle-shared v0.2.3 github.com/shuffle/shuffle-shared v0.2.4
go4.org v0.0.0-20201209231011-d4a079459e60 // indirect go4.org v0.0.0-20201209231011-d4a079459e60 // indirect
golang.org/x/crypto v0.0.0-20220112180741-5e0467b6c7ce golang.org/x/crypto v0.0.0-20220112180741-5e0467b6c7ce
google.golang.org/api v0.65.0 google.golang.org/api v0.65.0
+1 -1
View File
@@ -1,7 +1,7 @@
version: '3' version: '3'
services: services:
frontend: frontend:
#build: ./frontend build: ./frontend
image: ghcr.io/frikky/shuffle-frontend:nightly image: ghcr.io/frikky/shuffle-frontend:nightly
container_name: shuffle-frontend container_name: shuffle-frontend
hostname: shuffle-frontend hostname: shuffle-frontend
+1 -1
View File
@@ -15,7 +15,7 @@ import theme from "./theme";
import Apps from "./views/Apps"; import Apps from "./views/Apps";
import AppCreator from "./views/AppCreator"; import AppCreator from "./views/AppCreator";
import Dashboard from "./views/Dashboard"; import Dashboard from "./views/Dashboard.jsx";
import AdminSetup from "./views/AdminSetup"; import AdminSetup from "./views/AdminSetup";
import Admin from "./views/Admin"; import Admin from "./views/Admin";
import Docs from "./views/Docs"; import Docs from "./views/Docs";
+1 -1
View File
@@ -812,7 +812,7 @@ const Dashboard = (props) => {
</div> </div>
{usecases !== null && usecases !== undefined && usecases.length > 0 ? {usecases !== null && usecases !== undefined && usecases.length > 0 ?
<div style={{ display: "flex", marginLeft: 100,}}> <div style={{ display: "flex", marginLeft: 120,}}>
{usecases.map((usecase, index) => { {usecases.map((usecase, index) => {
return ( return (
<Chip <Chip
+2 -2
View File
@@ -2191,7 +2191,7 @@ const GettingStarted = (props) => {
ele.style.borderWidth = "2px" ele.style.borderWidth = "2px"
} else { } else {
alert.success("TBD: Coming in version 1.0.0"); //alert.success("TBD: Coming in version 1.0.0");
} }
}}> }}>
workflows made by other creators</span>! workflows made by other creators</span>!
@@ -2211,7 +2211,7 @@ const GettingStarted = (props) => {
Learn to use Shuffle by&nbsp; Learn to use Shuffle by&nbsp;
<span style={{cursor: "pointer", color: "#f86a3e",}} onClick={() => {setModalOpen(true)}}> <span style={{cursor: "pointer", color: "#f86a3e",}} onClick={() => {setModalOpen(true)}}>
creating your first workflow creating your first workflow
</span> and <Link to="/docs" style={{textDecoration: "none", color: "#f86a3e",}}>reading the docs.</Link> </span> and <Link to="/docs/getting_started" style={{textDecoration: "none", color: "#f86a3e",}}>reading the docs.</Link>
</Typography> </Typography>
), ),
tutorial: "learn_shuffle", tutorial: "learn_shuffle",
+1 -1
View File
@@ -733,7 +733,7 @@ const Settings = (props) => {
{isCloud ? {isCloud ?
<span> <span>
<Typography variant="body1" color="textSecondary"> <Typography variant="body1" color="textSecondary">
By connecting your Github account, you agree to our <a href="/docs/terms-of-service" target="_blank" style={{ textDecoration: "none", color: "#f86a3e"}}>Terms of Service</a>, and acknowledge that your non-sensitive data will be turned into a <a target="_blank" style={{ textDecoration: "none", color: "#f86a3e"}} href="https://shuffler.io/search?tab=creators">creator account</a>. This enables you to earn a passive income from Shuffle. This IS reversible. By connecting your Github account, you agree to our <a href="/docs/terms_of_service" target="_blank" style={{ textDecoration: "none", color: "#f86a3e"}}>Terms of Service</a>, and acknowledge that your non-sensitive data will be turned into a <a target="_blank" style={{ textDecoration: "none", color: "#f86a3e"}} href="https://shuffler.io/search?tab=creators">creator account</a>. This enables you to earn a passive income from Shuffle. This IS reversible.
</Typography> </Typography>
<Button <Button
style={{ height: 40, marginTop: 10 }} style={{ height: 40, marginTop: 10 }}
+4 -4
View File
@@ -2885,7 +2885,7 @@ const Workflows = (props) => {
return ( return (
<div style={viewStyle}> <div style={viewStyle}>
<div style={workflowViewStyle}> <div style={workflowViewStyle}>
<div style={{ display: "flex" }}> <div style={{ display: "flex", marginTop: 25, }}>
<div style={{ flex: 1 }}> <div style={{ flex: 1 }}>
<Typography variant="h1" style={{fontSize: 30}}> <Typography variant="h1" style={{fontSize: 30}}>
Workflows Workflows
@@ -2994,9 +2994,9 @@ const Workflows = (props) => {
backgroundColor: filters.includes(usecase.name.toLowerCase()) ? usecase.color : theme.palette.surfaceColor, backgroundColor: filters.includes(usecase.name.toLowerCase()) ? usecase.color : theme.palette.surfaceColor,
borderRadius: theme.palette.borderRadius, borderRadius: theme.palette.borderRadius,
marginRight: index === usecases.length-1 ? 0 : 10, marginRight: index === usecases.length-1 ? 0 : 10,
height: 65, height: 60,
cursor: "pointer", cursor: "pointer",
border: `1px solid ${usecase.color}`, border: `2px solid ${usecase.color}`,
overflow: "hidden", overflow: "hidden",
padding: 10, padding: 10,
}} }}
@@ -3017,7 +3017,7 @@ const Workflows = (props) => {
{usecase.name} {usecase.name}
</Typography> </Typography>
<Typography variant="body2" color="textSecondary"> <Typography variant="body2" color="textSecondary">
Finished: {usecase.matches.length}/{usecase.list.length} In use: {usecase.matches.length}/{usecase.list.length}
</Typography> </Typography>
</a> </a>
</Paper> </Paper>