forked from ppfun/pixelplanet
archive political-compass canvas
This commit is contained in:
parent
1386c0f472
commit
02489b674a
Binary file not shown.
Before Width: | Height: | Size: 2.2 KiB |
Binary file not shown.
Before Width: | Height: | Size: 4.8 KiB |
|
@ -712,6 +712,9 @@ export function showForgotPasswordModal(): Action {
|
||||||
export function showHelpModal(): Action {
|
export function showHelpModal(): Action {
|
||||||
return showModal('HELP');
|
return showModal('HELP');
|
||||||
}
|
}
|
||||||
|
export function showArchiveModal(): Action {
|
||||||
|
return showModal('ARCHIVE');
|
||||||
|
}
|
||||||
|
|
||||||
export function showCanvasSelectionModal(): Action {
|
export function showCanvasSelectionModal(): Action {
|
||||||
return showModal('CANVAS_SELECTION');
|
return showModal('CANVAS_SELECTION');
|
||||||
|
|
|
@ -212,38 +212,6 @@
|
||||||
"sd": "2020-03-15",
|
"sd": "2020-03-15",
|
||||||
"desc": "Special canvas to spread awareness of SARS-CoV2"
|
"desc": "Special canvas to spread awareness of SARS-CoV2"
|
||||||
},
|
},
|
||||||
"4": {
|
|
||||||
"ident": "p",
|
|
||||||
"title": "Political Compass",
|
|
||||||
"colors": [
|
|
||||||
[ 196, 196, 196 ],
|
|
||||||
[ 0, 243, 0 ],
|
|
||||||
[ 0, 105, 43 ],
|
|
||||||
[ 0, 247, 250 ],
|
|
||||||
[ 5, 50, 250 ],
|
|
||||||
[ 156, 69, 250 ],
|
|
||||||
[ 213, 43, 162 ],
|
|
||||||
[ 252, 121, 250 ],
|
|
||||||
[ 0, 0, 0 ],
|
|
||||||
[ 249, 249, 249 ],
|
|
||||||
[ 146, 146, 146 ],
|
|
||||||
[ 132, 90, 42 ],
|
|
||||||
[ 252, 37, 0 ],
|
|
||||||
[ 245, 162, 29 ],
|
|
||||||
[ 250, 210, 168 ],
|
|
||||||
[ 250, 246, 0 ]
|
|
||||||
],
|
|
||||||
"size": 1024,
|
|
||||||
"hid": false,
|
|
||||||
"cli": 0,
|
|
||||||
"bcd": 5000,
|
|
||||||
"pcd": 5000,
|
|
||||||
"cds": 60000,
|
|
||||||
"ranked": true,
|
|
||||||
"req": -1,
|
|
||||||
"sd": "2020-05-11",
|
|
||||||
"desc": "A meme"
|
|
||||||
},
|
|
||||||
"5": {
|
"5": {
|
||||||
"ident": "y",
|
"ident": "y",
|
||||||
"title": "PixelZone",
|
"title": "PixelZone",
|
||||||
|
|
52
src/components/ArchiveModal.jsx
Normal file
52
src/components/ArchiveModal.jsx
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
/*
|
||||||
|
* @flow
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* eslint-disable max-len */
|
||||||
|
|
||||||
|
import React from 'react';
|
||||||
|
|
||||||
|
const imageStyle = {
|
||||||
|
maxWidth: '20%',
|
||||||
|
padding: 2,
|
||||||
|
display: 'inline-block',
|
||||||
|
verticalAlign: 'middle',
|
||||||
|
};
|
||||||
|
|
||||||
|
const ArchiveModal = () => (
|
||||||
|
<p style={{ textAlign: 'center', paddingLeft: '5%', paddingRight: '5%' }}>
|
||||||
|
<p className="modaltext">
|
||||||
|
While we tend to not delete canvases, some canvases are started for fun or as a request by users who currently like a meme.
|
||||||
|
Those canvases can get boring after a while and after weeks of no major change and if they really aren't worth being kept active, we decide to remove them.<br />
|
||||||
|
Here we collect those canvases to archive them in a proper way (which is currently just one).
|
||||||
|
</p>
|
||||||
|
<p className="modaltitle">Political Compass Canvas</p>
|
||||||
|
<img
|
||||||
|
style={imageStyle}
|
||||||
|
alt="political-compass"
|
||||||
|
src="https://storage.pixelplanet.fun/compass-preview.png"
|
||||||
|
/>
|
||||||
|
<p className="modaltext">
|
||||||
|
This canvas got requested during a time of political conflicts on the main Earth canvas. It was a 1024x1024 representation of the political compass with a 5s coolodwn and 60s stacking. It got launched on May 11th and remained active for months till it got shut down on November 30th.<br />
|
||||||
|
We decided to archive it as a timelapse with lossless encoded webm. Taking a screenshot from the timelapse results in a perfect 1:1 representation of how the canvas was at that time.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Timelapse:
|
||||||
|
<a href="https://storage.pixelplanet.fun/compass-timelapse.webm">
|
||||||
|
Download
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
<img
|
||||||
|
style={{ padding: 2, maxWidth: '80%', verticalAlign: 'middle' }}
|
||||||
|
alt="political-compass"
|
||||||
|
src="https://storage.pixelplanet.fun/compass-final.png"
|
||||||
|
/>
|
||||||
|
</p>
|
||||||
|
);
|
||||||
|
|
||||||
|
const data = {
|
||||||
|
content: ArchiveModal,
|
||||||
|
title: 'Canvas Archive',
|
||||||
|
};
|
||||||
|
|
||||||
|
export default data;
|
|
@ -7,11 +7,16 @@ import React from 'react';
|
||||||
import { connect } from 'react-redux';
|
import { connect } from 'react-redux';
|
||||||
|
|
||||||
import CanvasItem from './CanvasItem';
|
import CanvasItem from './CanvasItem';
|
||||||
|
import { showArchiveModal } from '../actions';
|
||||||
|
|
||||||
import type { State } from '../reducers';
|
import type { State } from '../reducers';
|
||||||
|
|
||||||
|
|
||||||
const CanvasSelectModal = ({ canvases, showHiddenCanvases }) => (
|
const CanvasSelectModal = ({
|
||||||
|
canvases,
|
||||||
|
showHiddenCanvases,
|
||||||
|
showArchive,
|
||||||
|
}) => (
|
||||||
<p style={{
|
<p style={{
|
||||||
textAlign: 'center',
|
textAlign: 'center',
|
||||||
paddingLeft: '5%',
|
paddingLeft: '5%',
|
||||||
|
@ -22,7 +27,14 @@ const CanvasSelectModal = ({ canvases, showHiddenCanvases }) => (
|
||||||
<p className="modaltext">
|
<p className="modaltext">
|
||||||
Select the canvas you want to use.
|
Select the canvas you want to use.
|
||||||
Every canvas is unique and has different palettes,
|
Every canvas is unique and has different palettes,
|
||||||
cooldown and requirements.
|
cooldown and requirements. Archive of closed canvases can be
|
||||||
|
accessed
|
||||||
|
<span
|
||||||
|
role="button"
|
||||||
|
tabIndex={0}
|
||||||
|
className="modallink"
|
||||||
|
onClick={showArchive}
|
||||||
|
>here</span>.
|
||||||
</p>
|
</p>
|
||||||
{
|
{
|
||||||
Object.keys(canvases).map((canvasId) => (
|
Object.keys(canvases).map((canvasId) => (
|
||||||
|
@ -34,6 +46,14 @@ const CanvasSelectModal = ({ canvases, showHiddenCanvases }) => (
|
||||||
</p>
|
</p>
|
||||||
);
|
);
|
||||||
|
|
||||||
|
function mapDispatchToProps(dispatch) {
|
||||||
|
return {
|
||||||
|
showArchive() {
|
||||||
|
dispatch(showArchiveModal());
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
function mapStateToProps(state: State) {
|
function mapStateToProps(state: State) {
|
||||||
const {
|
const {
|
||||||
canvases,
|
canvases,
|
||||||
|
@ -43,7 +63,7 @@ function mapStateToProps(state: State) {
|
||||||
}
|
}
|
||||||
|
|
||||||
const data = {
|
const data = {
|
||||||
content: connect(mapStateToProps)(CanvasSelectModal),
|
content: connect(mapStateToProps, mapDispatchToProps)(CanvasSelectModal),
|
||||||
title: 'Canvas Selection',
|
title: 'Canvas Selection',
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -4,9 +4,6 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
// import FaFacebook from 'react-icons/lib/fa/facebook';
|
|
||||||
// import FaTwitter from 'react-icons/lib/fa/twitter';
|
|
||||||
// import FaRedditAlien from 'react-icons/lib/fa/reddit-alien';
|
|
||||||
|
|
||||||
/* eslint-disable max-len */
|
/* eslint-disable max-len */
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,7 @@ import SettingsModal from './SettingsModal';
|
||||||
import UserAreaModal from './UserAreaModal';
|
import UserAreaModal from './UserAreaModal';
|
||||||
import RegisterModal from './RegisterModal';
|
import RegisterModal from './RegisterModal';
|
||||||
import CanvasSelectModal from './CanvasSelectModal';
|
import CanvasSelectModal from './CanvasSelectModal';
|
||||||
|
import ArchiveModal from './ArchiveModal';
|
||||||
import ChatModal from './ChatModal';
|
import ChatModal from './ChatModal';
|
||||||
import ForgotPasswordModal from './ForgotPasswordModal';
|
import ForgotPasswordModal from './ForgotPasswordModal';
|
||||||
|
|
||||||
|
@ -32,6 +33,7 @@ const MODAL_COMPONENTS = {
|
||||||
FORGOT_PASSWORD: ForgotPasswordModal,
|
FORGOT_PASSWORD: ForgotPasswordModal,
|
||||||
CHAT: ChatModal,
|
CHAT: ChatModal,
|
||||||
CANVAS_SELECTION: CanvasSelectModal,
|
CANVAS_SELECTION: CanvasSelectModal,
|
||||||
|
ARCHIVE: ArchiveModal,
|
||||||
/* other modals */
|
/* other modals */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -67,7 +67,9 @@ router.use(passport.session());
|
||||||
router.use(async (req, res, next) => {
|
router.use(async (req, res, next) => {
|
||||||
const ip = getIPFromRequest(req);
|
const ip = getIPFromRequest(req);
|
||||||
if (!req.user) {
|
if (!req.user) {
|
||||||
admintoolsLogger.info(`ADMINTOOLS: ${ip} tried to access admintools without login`);
|
admintoolsLogger.info(
|
||||||
|
`ADMINTOOLS: ${ip} tried to access admintools without login`,
|
||||||
|
);
|
||||||
res.status(403).send('You are not logged in');
|
res.status(403).send('You are not logged in');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user