Merge pull request #5 from h3poteto/master

Updates
This commit is contained in:
PhotonQyv 2018-05-09 17:33:40 +01:00 committed by GitHub
commit cd2bf180e0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 130 additions and 6 deletions

View File

@ -1,4 +1,4 @@
#!/bin/bash
#!/bin/zsh -f
# Name of your app.
APP="Whalebird for Mastodon"
@ -16,6 +16,11 @@ LOGINHELPER_PLIST="./plist/loginhelper.plist"
FRAMEWORKS_PATH="$APP_PATH/Contents/Frameworks"
# At first, rename app.asar.unpacked directory.
# Because electron-builder does not store app.asar.unpacked directory.
# I want to store unpacked files at the same directory as electron-builder.
mv $APP_PATH/Contents/Resources/app.asar.unpacked/* $APP_PATH/Contents/Resources/
codesign -s "$APP_KEY" -f --entitlements "$CHILD_PLIST" "$FRAMEWORKS_PATH/Electron Framework.framework/Versions/A/Electron Framework"
codesign -s "$APP_KEY" -f --entitlements "$CHILD_PLIST" "$FRAMEWORKS_PATH/Electron Framework.framework/Versions/A/Libraries/libffmpeg.dylib"
codesign -s "$APP_KEY" -f --entitlements "$CHILD_PLIST" "$FRAMEWORKS_PATH/Electron Framework.framework/Versions/A/Libraries/libnode.dylib"

View File

@ -21,7 +21,7 @@
"build:mac": "node .electron-vue/build.js && electron-builder --mac --x64",
"build:linux": "node .electron-vue/build.js && electron-builder --linux --x64",
"build:windows": "node .electron-vue/build.js && electron-builder --win --x64",
"build:mas": "npm run pack && electron-packager ./ 'Whalebird for Mastodon' --platform=mas --arch=x64 --electron-version=1.8.3 --asar --out=packages --ignore='^/src' --ignore='^/test' --ignore='^/.electron-vue' --ignore='^/.envrc' --ignore='^/packages' --ignore='^/build' --ignore='^/plist' --ignore='^/static' --ignore='^/whalebird.db' --ignore='^/screenshot.png' --prune=true --icon=./build/icons/icon.icns --overwrite --app-bundle-id=org.whalebird.desktop --app-version=$npm_package_config_appVersion --build-version=$npm_package_config_buildVersion --extend-info='./plist/team.plist' --osx-sign",
"build:mas": "npm run pack && electron-packager ./ 'Whalebird for Mastodon' --platform=mas --arch=x64 --electron-version=1.8.3 --asar.unpackDir='build/sounds' --out=packages --ignore='^/src' --ignore='^/test' --ignore='^/.electron-vue' --ignore='^/.envrc' --ignore='^/packages' --ignore='^/plist' --ignore='^/static' --ignore='^/whalebird.db' --ignore='^/screenshot.png' --prune=true --icon=./build/icons/icon.icns --overwrite --app-bundle-id=org.whalebird.desktop --app-version=$npm_package_config_appVersion --build-version=$npm_package_config_buildVersion --extend-info='./plist/team.plist' --osx-sign --app-category-type=public.app-category.social-networking",
"dev": "node .electron-vue/dev-runner.js",
"e2e": "npm run pack && mocha test/e2e",
"lint": "eslint --ext .js,.vue -f ./node_modules/eslint-friendly-formatter src test",

View File

@ -1,7 +1,7 @@
<template>
<div id="account_timeline">
<template v-for="message in timeline">
<toot :message="message" v-bind:key="message.id"></toot>
<toot :message="message" :key="message.id" v-on:update="updateToot" v-on:delete="deleteToot"></toot>
</template>
</div>
</template>
@ -36,6 +36,12 @@ export default {
type: 'error'
})
})
},
updateToot (message) {
this.$store.commit('TimelineSpace/Contents/SideBar/AccountProfile/Timeline/updateToot', message)
},
deleteToot (message) {
this.$store.commit('TimelineSpace/Contents/SideBar/AccountProfile/Timeline/deleteToot', message)
}
}
}

View File

@ -1,13 +1,13 @@
<template>
<div class="toot-detail" ref="detail">
<div class="toot-ancestors" v-for="(message, index) in ancestors" v-bind:key="'ancestors-' + index">
<toot :message="message"></toot>
<toot :message="message" v-on:update="updateAncestorsToot" v-on:delete="deleteAncestorsToot"></toot>
</div>
<div class="original-toot" ref="original">
<toot :message="message"></toot>
<toot :message="message" v-on:update="updateToot" v-on:delete="deleteToot"></toot>
</div>
<div class="toot-descendants" v-for="(message, index) in descendants" v-bind:key="'descendants' + index">
<toot :message="message"></toot>
<toot :message="message" v-on:update="updateDescendantsToot" v-on:delete="deleteDescendantsToot"></toot>
</div>
</div>
</template>
@ -47,6 +47,24 @@ export default {
type: 'error'
})
})
},
updateAncestorsToot (message) {
this.$store.commit('TimelineSpace/Contents/SideBar/TootDetail/updateAncestorsToot', message)
},
deleteAncestorsToot (message) {
this.$store.commit('TimelineSpace/Contents/SideBar/TootDetail/deleteAncestorsToot', message)
},
updateToot (message) {
this.$store.commit('TimelineSpace/Contents/SideBar/TootDetail/updateToot', message)
},
deleteToot (message) {
this.$store.commit('TimelineSpace/Contents/SideBar/TootDetail/deleteToot', message)
},
updateDescendantsToot (message) {
this.$store.commit('TimelineSpace/Contents/SideBar/TootDetail/updateDescendantsToot', message)
},
deleteDescendantsToot (message) {
this.$store.commit('TimelineSpace/Contents/SideBar/TootDetail/deleteDescendantsToot', message)
}
}
}

View File

@ -8,6 +8,32 @@ const Timeline = {
mutations: {
updateTimeline (state, timeline) {
state.timeline = timeline
},
updateToot (state, message) {
// Replace target message in timeline
state.timeline = state.timeline.map((toot) => {
if (toot.id === message.id) {
return message
} else if (toot.reblog !== null && toot.reblog.id === message.id) {
// When user reblog/favourite a reblogged toot, target message is a original toot.
// So, a message which is received now is original toot.
const reblog = {
reblog: message
}
return Object.assign(toot, reblog)
} else {
return toot
}
})
},
deleteToot (state, message) {
state.timeline = state.timeline.filter((toot) => {
if (toot.reblog !== null && toot.reblog.id === message.id) {
return false
} else {
return toot.id !== message.id
}
})
}
},
actions: {

View File

@ -16,6 +16,75 @@ const TootDetail = {
},
updateDescendants (state, descendants) {
state.descendants = descendants
},
updateAncestorsToot (state, message) {
// Replace target message in ancestors
state.ancestors = state.ancestors.map((toot) => {
if (toot.id === message.id) {
return message
} else if (toot.reblog !== null && toot.reblog.id === message.id) {
// When user reblog/favourite a reblogged toot, target message is a original toot.
// So, a message which is received now is original toot.
const reblog = {
reblog: message
}
return Object.assign(toot, reblog)
} else {
return toot
}
})
},
deleteAncestorsToot (state, message) {
state.ancestors = state.ancestors.filter((toot) => {
if (toot.reblog !== null && toot.reblog.id === message.id) {
return false
} else {
return toot.id !== message.id
}
})
},
updateToot (state, message) {
if (state.message.id === message.id) {
state.message = message
} else if (state.message.reblog !== null && state.message.reblog.id === message.id) {
// When user reblog/favourite a reblogged toot, target message is a original toot.
// So, a message which is received now is original toot.
const reblog = {
reblog: message
}
state.message = Object.assign({}, state.message, reblog)
}
},
deleteToot (state, message) {
if (state.message.id === message.id) {
state.message = null
}
},
updateDescendantsToot (state, message) {
// Replace target message in descendants
state.descendants = state.descendants.map((toot) => {
if (toot.id === message.id) {
return message
} else if (toot.reblog !== null && toot.reblog.id === message.id) {
// When user reblog/favourite a reblogged toot, target message is a original toot.
// So, a message which is received now is original toot.
const reblog = {
reblog: message
}
return Object.assign(toot, reblog)
} else {
return toot
}
})
},
deleteDescendantsToot (state, message) {
state.descendants = state.descendants.filter((toot) => {
if (toot.reblog !== null && toot.reblog.id === message.id) {
return false
} else {
return toot.id !== message.id
}
})
}
},
actions: {