Skip to content

Commit 7e831f8

Browse files
authored
🔀 Merge pull request #191 from AyakaLab/master
🔖 Release 1.0.0
2 parents 2377bae + 2655666 commit 7e831f8

File tree

106 files changed

+47084
-762
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

106 files changed

+47084
-762
lines changed

.github/workflows/node.dev.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,4 @@ jobs:
2222
uses: actions/setup-node@v1
2323
with:
2424
node-version: ${{ matrix.node-version }}
25-
- run: npm install
26-
- run: npm run build
27-
25+
- run: npm install

.github/workflows/node.prod.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,4 @@ jobs:
2222
uses: actions/setup-node@v1
2323
with:
2424
node-version: ${{ matrix.node-version }}
25-
- run: npm install
26-
- run: npm run build
25+
- run: npm install

README.md

Lines changed: 38 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,47 @@
1+
<p align="center">
2+
<img src="https://i.loli.net/2020/09/23/ieb1oOS5C9WAdpL.png" />
3+
</p>
14
<h1 align="center">ArcLight</h1>
2-
<p align="center">An Arweave Music and Podcast Distribution App for users to listen and pay to download the source music</p>
3-
<p align="center"><a href="https://arweave.net/DdjCHM9GiWxQ7NnRQq_jJ7Ib4kOe8tlSchdu4nGbVWw">Live Permaweb</a> for ArcLight</p>
5+
<p align="center">An Arweave Music and Podcast Distribution App for users to publish, listen and pay to the encrypted music</p>
6+
<p align="center"><strong>Now 1.0.0 Online</strong></p>
7+
<p align="center"><strong>Great Thanks to ❤️<a href="https://github.com/LittleSound">@LittleSound</a>❤️ for contributing this project</strong></p>
8+
<p align="center"><a href="https://arweave.net/XVwDlpEp8LQXDxgOpyXelHcGMwMQ92s80WIoTgZc0cY">Live Permaweb</a> for ArcLight</p>
49
<p align="center">
510
<img src="https://github.com/AyakaLab/ArcLight/workflows/Node%20Build%20Test/badge.svg" />
611
<img src="https://github.com/AyakaLab/ArcLight/workflows/Production%20CI%20Build%20Test/badge.svg">
712
</p>
813

14+
15+
## Why ArcLight ?
16+
> about Project ArcLight
17+
18+
Project ArcLight first started as an Arweave storage solution dapp, after the [Gitcoin bounty](https://gitcoin.co/issue/ArweaveTeam/Bounties/32/100023546) was announced, we transferred our objective to make a truly free music distribution platform for the Hackathon project.
19+
20+
Why choose ArcLight? We use Arweave's Permaweb as our storage for your wonderful artworks, we try everything to protect your copyright to your music, including encrypting your music to an unreadable source on Arweave network explorer, so the people must pay to you as your price defined for your project to get the download source of your music.
21+
22+
## All different Sound
23+
> we support single music, albums, podcasts, and sound effects
24+
25+
We support many types of artworks to upload, same as the title has been said, you can upload single music, album, podcast, sound effect to the ArcLight platform, with the powerful knowledge base we could get, you can have up to 913 different genres for single music and album to use, and the category for the podcast is same as the Apple Podcast category.
26+
27+
Express all your creativity to produce whatever you can think of, ArcLight helps you to store them up.
28+
29+
## Encryption and Profit
30+
> a secure way to store your artworks
31+
32+
A great chance we can introduce our technic to have your artwork safe.
33+
34+
Different from the DRM system, we simply encrypt your audio after you upload it into the broswer, after the encryption of our own, Arweave API will encrypt it again before uploading it to the Permaweb. Your listener can only get the source file after they pay to you, otherwise, they can only get a small amount of music demo or the full trial (if you wish to disable the demo function). After the customers decided to pay for your work, they will use the official token AR pay to your account.
35+
36+
## Ensure your rewards
37+
> validation of the payments
38+
39+
When customers paying the AR to your account, we will generate a receipt transaction to the customer side, including the UNIX timestamp information, the price paid to you, the target music or album custom bought, and your address. All the information will be saved into the receipt transaction.
40+
41+
We will look back for the transactions for users, in order to prevent unauthorized official sign to the transactions, check the timestamp is correct to the payment, check the price and the price you required is right, after all the process is done and validated, the music source file will be able to deliver to the customers. And you will receive the transaction as well.
42+
43+
**Thank you for choosing ArcLight!**
44+
945
### Interact with Arweave
1046
```
1147
yarn dev

build/webpack.base.conf.js

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,31 @@ module.exports = {
7878
{
7979
test: /\.less$/,
8080
loader: "style-loader!css-loader!less-loader"
81-
}
81+
},
82+
{
83+
test: /\.s(c|a)ss$/,
84+
use: [
85+
'vue-style-loader',
86+
'css-loader',
87+
{
88+
loader: 'sass-loader',
89+
// Requires sass-loader@^7.0.0
90+
options: {
91+
implementation: require('sass'),
92+
fiber: require('fibers'),
93+
indentedSyntax: true // optional
94+
},
95+
// Requires sass-loader@^8.0.0
96+
options: {
97+
implementation: require('sass'),
98+
sassOptions: {
99+
fiber: require('fibers'),
100+
indentedSyntax: true // optional
101+
},
102+
},
103+
},
104+
],
105+
},
82106
]
83107
},
84108
node: {

index.html

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,10 @@
44
<meta charset="utf-8">
55
<meta name="viewport" content="width=device-width,initial-scale=1.0">
66
<title>ArcLight</title>
7-
<meta name="description" content="A Arweave Storage App">
8-
<link rel="icon" type="image/png" href="https://arweave.net/QBZ-GBVAsum9Eyjzwq04cKYky2pjZUPGtyrwwhwFpfg">
9-
<link href='https://fonts.googleapis.com/css?family=Lato:300,400,700' rel='stylesheet' type='text/css'>
7+
<meta name="description" content="An Arweave Music and Podcast Distribution App for users to listen and pay to download the source music">
8+
<link rel="icon" type="image/png" href="./static/favicon.png">
9+
<link href="./static/css/main.css" rel="stylesheet">
10+
<link href="./static/css/materialdesignicons.min.css" rel="stylesheet">
1011
</head>
1112
<body>
1213
<div id="app"></div>

package.json

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,22 @@
1313
"build": "node build/build.js"
1414
},
1515
"dependencies": {
16-
"@moefe/vue-aplayer": "^2.0.0-beta.5",
16+
"arweave": "^1.9.1",
17+
"axios": "^0.20.0",
1718
"buefy": "^0.9.2",
19+
"community-js": "1.0.9",
20+
"compressorjs": "^1.0.6",
21+
"cropperjs": "^1.5.7",
22+
"element-ui": "^2.13.2",
23+
"hls.js": "^0.14.11",
24+
"jszip": "^3.5.0",
25+
"moment": "^2.27.0",
26+
"musicgenres-json": "^1.0.1",
1827
"vue": "^2.5.2",
28+
"vue-aplayer": "^1.6.1",
1929
"vue-router": "^3.0.1",
30+
"vue-upload-component": "^2.8.20",
31+
"vuetify": "^2.3.10",
2032
"vuex": "^3.5.1"
2133
},
2234
"devDependencies": {
@@ -36,6 +48,7 @@
3648
"copy-webpack-plugin": "^4.0.1",
3749
"cross-env": "^5.0.1",
3850
"css-loader": "^0.28.0",
51+
"deepmerge": "^4.2.2",
3952
"eslint": "^4.15.0",
4053
"eslint-config-standard": "^10.2.1",
4154
"eslint-friendly-formatter": "^3.0.0",
@@ -46,6 +59,7 @@
4659
"eslint-plugin-standard": "^3.0.1",
4760
"eslint-plugin-vue": "^4.0.0",
4861
"extract-text-webpack-plugin": "^3.0.0",
62+
"fibers": "^5.0.0",
4963
"file-loader": "^1.1.4",
5064
"friendly-errors-webpack-plugin": "^1.6.1",
5165
"html-webpack-plugin": "^2.30.1",
@@ -71,6 +85,8 @@
7185
"postcss-loader": "^2.0.8",
7286
"postcss-url": "^7.2.1",
7387
"rimraf": "^2.6.0",
88+
"sass": "^1.26.10",
89+
"sass-loader": "^10.0.1",
7490
"semver": "^5.3.0",
7591
"shelljs": "^0.7.6",
7692
"sinon": "^4.0.0",

src/App.vue

Lines changed: 47 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,57 @@
11
<template>
2-
<div id="app">
2+
<div id="app" v-if="routerAlive">
33
<router-view/>
44
</div>
55
</template>
66

77
<script>
88
export default {
9-
name: 'App'
9+
name: 'App',
10+
data () {
11+
return {
12+
routerAlive: true
13+
}
14+
},
15+
provide () {
16+
return {
17+
routerRefresh: this.routerRefresh,
18+
updateQuery: this.updateQuery,
19+
backPage: this.backPage
20+
}
21+
},
22+
methods: {
23+
/** 对页面进行软刷新,不会丢失 vuex 中的数据 */
24+
routerRefresh () {
25+
this.routerAlive = false
26+
this.$nextTick(() => {
27+
this.routerAlive = true
28+
})
29+
},
30+
/** 更改 Query */
31+
updateQuery (key, val) {
32+
const query = { ...this.$route.query }
33+
if (query[key] !== val) {
34+
if (!val) delete query[key]
35+
else query[key] = val
36+
this.$router.replace({ query }).catch(e => { // 过滤掉不必要的错误
37+
if (!e.message.includes('Avoided redundant navigation to current location')) {
38+
console.error(e.message)
39+
}
40+
})
41+
}
42+
},
43+
backPage (defaultLink) {
44+
const originRoute = { ...this.$route }
45+
const pushLink = defaultLink || { name: 'Landing' }
46+
this.$router.go(-1)
47+
// 如果页面没有变化,返回失败,将回到默认页面
48+
this.$nextTick(() => {
49+
if (this.$route.fullPath === originRoute.fullPath) {
50+
this.$router.push(pushLink)
51+
}
52+
})
53+
}
54+
}
1055
}
1156
</script>
1257

src/api/api.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
const arweave = require('./arweave')
2+
3+
let API = {
4+
arweave: arweave.default
5+
}
6+
7+
export default API

0 commit comments

Comments
 (0)