Treebird rename + Contributors
FossilOrigin-Name: cda981b0d0981fecb211e7119a1eda982891f589a1d7dde5515a7893c1ddba12
18
CREDITS
Normal file
|
@ -0,0 +1,18 @@
|
|||
TREEBIRD CREDITS
|
||||
|
||||
Without love adieu, this is a project backed by several friends on the Fediverse.
|
||||
|
||||
Alas, it becomes a social project too...
|
||||
|
||||
* Nekobit <@neko@desuposter.club>
|
||||
Created the Treebird frontend, created mastodont-c (A pleroma C library)
|
||||
Originally, this was called RatFE, but the name changed.
|
||||
|
||||
* Grumbulon <@grumbulon@freecumextremist.com>
|
||||
Creator of the Logo and hosts treebird.dev
|
||||
|
||||
* SamTherapy <@sam@froth.zone>
|
||||
Domain registrar of treebird.dev, coined Treebird
|
||||
|
||||
* Khan <@Khan@sleepy.cafe>
|
||||
Helped with the old Treebird Husky fork (history lesson required)
|
2
Makefile
|
@ -10,7 +10,7 @@ PAGES_DIR = static
|
|||
PAGES = $(wildcard $(PAGES_DIR)/*.html)
|
||||
PAGES_CMP = $(patsubst %.html,%.chtml,$(PAGES))
|
||||
DIST = dist/
|
||||
TARGET = ratfe.cgi
|
||||
TARGET = treebird.cgi
|
||||
|
||||
MASTODONT_URL = https://git.nekobit.net/repos/mastodont-c.git
|
||||
|
||||
|
|
21
README.md
|
@ -1,27 +1,18 @@
|
|||
# RatFE
|
||||
# Treebird
|
||||
|
||||
A pleroma frontend for rats.
|
||||
A pleroma frontend for cool people only.
|
||||
|
||||
The goal is to create a frontend that's lightweight enough to be viewed without JS, but
|
||||
usable enough to improve the experience with JS.
|
||||
|
||||
RatFE uses C with FCGI, mastodont-c (another library that complements RatFE) for
|
||||
communication, and plain JavaScript. It also uses sqlite3 to store any user-specific
|
||||
information and groups.
|
||||
Treebird uses C with FCGI, mastodont-c (another library that complements Treebird) for
|
||||
communication, and plain JavaScript (100% optional).
|
||||
|
||||
## Isn't FCGI outdated?
|
||||
|
||||
No.
|
||||
|
||||
## Isn't Sqlite3 slow?
|
||||
## Credits
|
||||
|
||||
No, in fact, it may likely be faster than if it were using postgresql. The pleroma server
|
||||
communicates using postgresql because there are lots of incoming requests and outgoing
|
||||
requests on the server, and there can be multiple requests at once occuring, which get
|
||||
queued. We don't need that kind of speed and we shouldn't interfere with it anyway.
|
||||
Please view the `CREDITS` file.
|
||||
|
||||
Plus, Sqlite3 is only being used for user groups and possibly some session information.
|
||||
|
||||
## Rat?
|
||||
|
||||
Rats are c00l.
|
||||
|
|
12
config.h
|
@ -1,6 +1,6 @@
|
|||
/*
|
||||
* This is the config file for RatFE. Any changes you make here requires
|
||||
* a recompile, but RatFE shouldn't take long to compile ;)
|
||||
* This is the config file for treebird. Any changes you make here requires
|
||||
* a recompile, but treebird shouldn't take long to compile ;)
|
||||
*
|
||||
* You don't need to understand C, I've created simple types to represent
|
||||
* what you need to set without any C knowledge.
|
||||
|
@ -17,10 +17,10 @@
|
|||
* The software's recognizable name.
|
||||
*
|
||||
*
|
||||
* Example: "RatFE"
|
||||
* Example: "treebird"
|
||||
*/
|
||||
|
||||
static char* const config_canonical_name = "RatFE";
|
||||
static char* const config_canonical_name = "treebird";
|
||||
|
||||
/*
|
||||
* String: config_instance_url
|
||||
|
@ -39,9 +39,9 @@ static char* const config_instance_url = "https://desuposter.club/";
|
|||
* The prefix for all urls.
|
||||
* For most cases, when you are proxying the CGI paths to root, this will be left blank.
|
||||
*
|
||||
* Example: "/ratfe.cgi"
|
||||
* Example: "/treebird.cgi"
|
||||
*/
|
||||
static char* const config_url_prefix = "/ratfe.cgi";
|
||||
static char* const config_url_prefix = "/treebird.cgi";
|
||||
|
||||
/*
|
||||
* Bool: experimental_lookup
|
||||
|
|
BIN
dist/favicon.png
vendored
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 15 KiB |
550
dist/ratfe10.css
vendored
|
@ -1,550 +0,0 @@
|
|||
body
|
||||
{
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
background-color: #f6f6f6;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* Divs and wrappers */
|
||||
#display-wrapper
|
||||
{
|
||||
}
|
||||
|
||||
#display
|
||||
{
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
width: 100%;
|
||||
background-color: #ffffff;
|
||||
}
|
||||
|
||||
#navbar
|
||||
{
|
||||
background-color: #fcfcfc;
|
||||
display: block;
|
||||
padding: 0 5px;
|
||||
border-bottom: 2px solid #cacaca;
|
||||
text-align: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
#navbar img
|
||||
{
|
||||
display: inline-block;
|
||||
margin: 2px 2px 2px 8px;
|
||||
}
|
||||
|
||||
#navbar span.info
|
||||
{
|
||||
display: inline-block;
|
||||
margin-left: 15px;
|
||||
color: #202020;
|
||||
font-variant: small-caps;
|
||||
margin-top: 10px;
|
||||
font-size: 28px;
|
||||
margin-right: 30px;
|
||||
}
|
||||
|
||||
#navbar-right
|
||||
{
|
||||
display: inline-block;
|
||||
padding-right: 8px;
|
||||
flex: 1;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
#login-header
|
||||
{
|
||||
margin-right: 15px;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.alignend
|
||||
{
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: flex-end;
|
||||
align-items: flex-end;
|
||||
}
|
||||
|
||||
div#content main
|
||||
{
|
||||
position: relative;
|
||||
min-width: 0;
|
||||
min-height: 600px;
|
||||
left: 180px;
|
||||
}
|
||||
|
||||
div#content aside
|
||||
{
|
||||
display: block;
|
||||
background-color: #fcfcfc;
|
||||
}
|
||||
|
||||
#leftbar
|
||||
{
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 50px;
|
||||
width: 180px;
|
||||
border-right: 1px solid #cacaca;
|
||||
}
|
||||
|
||||
#leftbar ul
|
||||
{
|
||||
margin: 0px 0px 10px 0px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#leftbar ul li
|
||||
{
|
||||
display: block;
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
/*************************************************
|
||||
* BUTTONS *
|
||||
*************************************************/
|
||||
input[type=button], input[type=submit], .sidebarbtn, .btn
|
||||
{
|
||||
background-color: #f7f7f7;
|
||||
color: #000;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
input[type=button]:hover, input[type=submit]:hover, .sidebarbtn:hover, .btn:hover
|
||||
{
|
||||
background-color: #aa0000;
|
||||
border-color: #400000;
|
||||
color: #fff;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
input[type=button]:active, input[type=submit]:active, .sidebarbtn:active, .btn:active
|
||||
{
|
||||
background-color: #600000;
|
||||
border-color: #400000;
|
||||
color: #fff;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
input[type=button], input[type=submit]
|
||||
{
|
||||
border: 1px solid #cacaca;
|
||||
padding: 3px 15px;
|
||||
}
|
||||
|
||||
/* Make first button glue to header */
|
||||
#leftbar ul:first-child .sidebarbtn
|
||||
{
|
||||
border-top: 0;
|
||||
}
|
||||
|
||||
.sidebarbtn
|
||||
{
|
||||
border-bottom: 1px solid #dadada;
|
||||
display: block;
|
||||
padding: 8px;
|
||||
text-align: center;
|
||||
border-right: 1px solid #dadada;
|
||||
}
|
||||
|
||||
ul li:first-child a.sidebarbtn
|
||||
{
|
||||
border-top: 1px solid #dadada;
|
||||
}
|
||||
|
||||
#rightbar
|
||||
{
|
||||
border-left: 1px solid #cacaca;
|
||||
}
|
||||
|
||||
/***************************
|
||||
* Statuses *
|
||||
**************************/
|
||||
.status
|
||||
{
|
||||
display: flex;
|
||||
margin: 7px;
|
||||
border-bottom: 1px solid #cacaca !important;
|
||||
}
|
||||
|
||||
.status .profile-picture
|
||||
{
|
||||
display: inline-block;
|
||||
width: 52px;
|
||||
min-width: 52px;
|
||||
height: 52px;
|
||||
background-position: center center;
|
||||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
border-radius: 4px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.status .status-info
|
||||
{
|
||||
flex: 1;
|
||||
display: flex;
|
||||
margin: 0 5px 0px;
|
||||
min-width: 0;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.status .instance-info
|
||||
{
|
||||
font-style: italic;
|
||||
text-decoration: none;
|
||||
margin: 0 3px;
|
||||
}
|
||||
|
||||
.status .poster-stats
|
||||
{
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.status .username
|
||||
{
|
||||
font-weight: bold;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.status .status-content
|
||||
{
|
||||
margin: 2px 0 0 0;
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
|
||||
.status .status-content p
|
||||
{
|
||||
margin: 2px 0 0 0;
|
||||
}
|
||||
|
||||
.status-visibility
|
||||
{
|
||||
color: #808080;
|
||||
}
|
||||
|
||||
.status-interact
|
||||
{
|
||||
margin: 8px 0 0 0;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.status-interact ul
|
||||
{
|
||||
display: flex;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.status-interact ul li
|
||||
{
|
||||
display: inline-block;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
|
||||
/***************************
|
||||
* Element Grouping *
|
||||
**************************/
|
||||
.group
|
||||
{
|
||||
padding: 0;
|
||||
margin: 0 !important;
|
||||
height: 28px;
|
||||
|
||||
}
|
||||
|
||||
/* These are a pain for some reason */
|
||||
.group-inputbox
|
||||
{
|
||||
border: 1px solid #cacaca;
|
||||
padding-left: 5px;
|
||||
border-right: 0px;
|
||||
height: 26px;
|
||||
}
|
||||
|
||||
.group-left
|
||||
{
|
||||
border-top-left-radius: 5px;
|
||||
border-bottom-left-radius: 5px;
|
||||
}
|
||||
|
||||
.group-right
|
||||
{
|
||||
border-top-right-radius: 5px;
|
||||
border-bottom-right-radius: 5px;
|
||||
}
|
||||
|
||||
/*************************
|
||||
* Config *
|
||||
************************/
|
||||
#config-page
|
||||
{
|
||||
padding: 0 12px;
|
||||
}
|
||||
|
||||
#config-page h1
|
||||
{
|
||||
padding-left: 12px;
|
||||
padding-bottom: 6px;
|
||||
border-bottom: 1px solid #cacaca;
|
||||
}
|
||||
|
||||
#config-page h3
|
||||
{
|
||||
margin-left: 15px;
|
||||
}
|
||||
|
||||
#config-page ul
|
||||
{
|
||||
list-style-type: none;
|
||||
padding-left: 15px;
|
||||
}
|
||||
|
||||
|
||||
/**********************
|
||||
* Profiles *
|
||||
**********************/
|
||||
.header-btn
|
||||
{
|
||||
text-decoration: none;
|
||||
color: #606060;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.header-btn .btn-content
|
||||
{
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.btn.header-btn:hover span
|
||||
{
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.header-btn span
|
||||
{
|
||||
display: block;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.acct-banner
|
||||
{
|
||||
width: 100%;
|
||||
display: flex;
|
||||
background-position: center center;
|
||||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
height: 256px;
|
||||
align-items: end;
|
||||
}
|
||||
|
||||
.acct-pfp
|
||||
{
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
border: 3px solid #cacaca;
|
||||
background-color: #fff;
|
||||
border-radius: 8px;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
top: 38px;
|
||||
left: 150px;
|
||||
margin-top: -108px;
|
||||
margin-left: -108px;
|
||||
background-position: center center;
|
||||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
.acct-header
|
||||
{
|
||||
display: flex;
|
||||
padding-left: 160px;
|
||||
background: linear-gradient(#fff, #f1f1f1);
|
||||
border-bottom: 1px solid #cacaca;
|
||||
background-color: #e8e8e8;
|
||||
}
|
||||
|
||||
.acct-info-data
|
||||
{
|
||||
position: relative;
|
||||
left: 160px;
|
||||
top: -10px;
|
||||
font-weight: bold;
|
||||
text-shadow: 0px 2px 6px #000;
|
||||
}
|
||||
|
||||
.acct-displayname
|
||||
{
|
||||
font-size: 26px;
|
||||
display: block;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.acct-username
|
||||
{
|
||||
font-size: 14px;
|
||||
color: #dadada;
|
||||
display: block;
|
||||
font-weight: bold;
|
||||
text-shadow: 0px 0px 5px #000;
|
||||
}
|
||||
|
||||
.header-btn
|
||||
{
|
||||
display: inline-block;
|
||||
padding: 8px 15px;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/****************
|
||||
* Statusbox *
|
||||
****************/
|
||||
.statusbox
|
||||
{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
.statusbox textarea
|
||||
{
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.statusbox .statusfooter
|
||||
{
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
.statusbox .statusfooter-left
|
||||
{
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
|
||||
/* Special cases */
|
||||
.nobutton
|
||||
{
|
||||
display: block !important;
|
||||
background: none !important;
|
||||
background-color: transparent !important;
|
||||
color: #aa0000 !important;
|
||||
padding: 4px 9px !important;
|
||||
margin: 0 !important;
|
||||
text-decoration: none;
|
||||
cursor: pointer !important;
|
||||
outline: inherit !important;
|
||||
font-size: 14px;
|
||||
border: 0 !important;
|
||||
}
|
||||
|
||||
.status-interact ul li:not(:last-child) .nobutton
|
||||
{
|
||||
border-right: 1px solid #cacaca !important;
|
||||
|
||||
}
|
||||
|
||||
.status-interact .nobutton-active,
|
||||
.nobutton:hover,
|
||||
.nobutton:active,
|
||||
.nobutton:focus
|
||||
{
|
||||
background: linear-gradient(#fff, #aa3333, #aa2222, #aa0000) !important;
|
||||
border: 0 !important;
|
||||
border-right: 1px solid #cacaca !important;
|
||||
color: #fff !important;
|
||||
text-shadow: 0px 0px 5px #cc4444cc !important;
|
||||
}
|
||||
|
||||
/* Emoji reacts */
|
||||
.emoji-react-box
|
||||
{
|
||||
border-radius: 4px;
|
||||
border: 1px solid #cacaca;
|
||||
}
|
||||
|
||||
.form-group
|
||||
{
|
||||
padding: 5px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
/* Simple page layout */
|
||||
.simple-page
|
||||
{
|
||||
padding: 0 12px;
|
||||
}
|
||||
|
||||
.simple-page h1
|
||||
{
|
||||
padding-left: 12px;
|
||||
padding-bottom: 6px;
|
||||
border-bottom: 1px solid #cacaca;
|
||||
}
|
||||
|
||||
.simple-page h3
|
||||
{
|
||||
margin-left: 15px;
|
||||
}
|
||||
|
||||
.simple-page ul
|
||||
{
|
||||
list-style-type: none;
|
||||
padding-left: 15px;
|
||||
}
|
||||
|
||||
/* Attachments */
|
||||
.attachments img
|
||||
{
|
||||
min-width: 100px;
|
||||
max-width: 300px;
|
||||
min-height: 100px;
|
||||
max-height: 300px;
|
||||
}
|
||||
|
||||
.attachments
|
||||
{
|
||||
margin: 10px 0 3px 0;
|
||||
}
|
||||
|
||||
.zoom
|
||||
{
|
||||
transition: transform .1s;
|
||||
transition-timing-function: cubic-bezier(0, 1, 1, 1);
|
||||
}
|
||||
|
||||
.zoom:hover
|
||||
{
|
||||
transform: scaleX(1.8) scaleY(1.8);
|
||||
}
|
||||
|
||||
.statusbox textarea
|
||||
{
|
||||
border: 1px solid #cacaca;
|
||||
}
|
||||
|
||||
/* Emoji reacts */
|
||||
.emoji-reactions
|
||||
{
|
||||
display: flex;
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
.emoji-react-box
|
||||
{
|
||||
padding: 3px 7px;
|
||||
margin: 0 4px;
|
||||
}
|
||||
|
BIN
dist/ratfe_logo.png
vendored
Before Width: | Height: | Size: 70 KiB |
BIN
dist/static.png
vendored
Before Width: | Height: | Size: 74 KiB |
0
dist/ratfe20.css → dist/treebird20.css
vendored
0
dist/ratfe30.css → dist/treebird30.css
vendored
BIN
dist/treebird_logo.png
vendored
Normal file
After Width: | Height: | Size: 35 KiB |
BIN
meta/ratfe.png
Before Width: | Height: | Size: 627 KiB |
BIN
meta/treebird.png
Normal file
After Width: | Height: | Size: 28 KiB |
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* RatFE - Lightweight frontend for Pleroma
|
||||
* Treebird - Lightweight frontend for Pleroma
|
||||
* Copyright (C) 2022 Nekobit
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* RatFE - Lightweight frontend for Pleroma
|
||||
* Treebird - Lightweight frontend for Pleroma
|
||||
* Copyright (C) 2022 Nekobit
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* RatFE - Lightweight frontend for Pleroma
|
||||
* Treebird - Lightweight frontend for Pleroma
|
||||
* Copyright (C) 2022 Nekobit
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* RatFE - Lightweight frontend for Pleroma
|
||||
* Treebird - Lightweight frontend for Pleroma
|
||||
* Copyright (C) 2022 Nekobit
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* RatFE - Lightweight frontend for Pleroma
|
||||
* Treebird - Lightweight frontend for Pleroma
|
||||
* Copyright (C) 2022 Nekobit
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* RatFE - Lightweight frontend for Pleroma
|
||||
* Treebird - Lightweight frontend for Pleroma
|
||||
* Copyright (C) 2022 Nekobit
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* RatFE - Lightweight frontend for Pleroma
|
||||
* Treebird - Lightweight frontend for Pleroma
|
||||
* Copyright (C) 2022 Nekobit
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* RatFE - Lightweight frontend for Pleroma
|
||||
* Treebird - Lightweight frontend for Pleroma
|
||||
* Copyright (C) 2022 Nekobit
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* RatFE - Lightweight frontend for Pleroma
|
||||
* Treebird - Lightweight frontend for Pleroma
|
||||
* Copyright (C) 2022 Nekobit
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* RatFE - Lightweight frontend for Pleroma
|
||||
* Treebird - Lightweight frontend for Pleroma
|
||||
* Copyright (C) 2022 Nekobit
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* RatFE - Lightweight frontend for Pleroma
|
||||
* Treebird - Lightweight frontend for Pleroma
|
||||
* Copyright (C) 2022 Nekobit
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* RatFE - Lightweight frontend for Pleroma
|
||||
* Treebird - Lightweight frontend for Pleroma
|
||||
* Copyright (C) 2022 Nekobit
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* RatFE - Lightweight frontend for Pleroma
|
||||
* Treebird - Lightweight frontend for Pleroma
|
||||
* Copyright (C) 2022 Nekobit
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* RatFE - Lightweight frontend for Pleroma
|
||||
* Treebird - Lightweight frontend for Pleroma
|
||||
* Copyright (C) 2022 Nekobit
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* RatFE - Lightweight frontend for Pleroma
|
||||
* Treebird - Lightweight frontend for Pleroma
|
||||
* Copyright (C) 2022 Nekobit
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* RatFE - Lightweight frontend for Pleroma
|
||||
* Treebird - Lightweight frontend for Pleroma
|
||||
* Copyright (C) 2022 Nekobit
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* RatFE - Lightweight frontend for Pleroma
|
||||
* Treebird - Lightweight frontend for Pleroma
|
||||
* Copyright (C) 2022 Nekobit
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* RatFE - Lightweight frontend for Pleroma
|
||||
* Treebird - Lightweight frontend for Pleroma
|
||||
* Copyright (C) 2022 Nekobit
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
|
24
src/l10n.h
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* RatFE - Lightweight frontend for Pleroma
|
||||
* Treebird - Lightweight frontend for Pleroma
|
||||
* Copyright (C) 2022 Nekobit
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
@ -16,8 +16,8 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef RATFE_L10N_H
|
||||
#define RATFE_L10N_H
|
||||
#ifndef TREEBIRD_L10N_H
|
||||
#define TREEBIRD_L10N_H
|
||||
|
||||
enum l10n_locale
|
||||
{
|
||||
|
@ -47,8 +47,8 @@ enum l10n_string
|
|||
L10N_CFG_LIVE_STATUSES,
|
||||
L10N_APPEARANCE,
|
||||
L10N_THEME_VARIANT,
|
||||
L10N_THEME_RATFE20,
|
||||
L10N_THEME_RATFE30,
|
||||
L10N_THEME_TREEBIRD20,
|
||||
L10N_THEME_TREEBIRD30,
|
||||
L10N_COLOR_SCHEME,
|
||||
L10N_LIGHT,
|
||||
L10N_DARK,
|
||||
|
@ -68,7 +68,7 @@ static const char* const L10N[][_L10N_LEN] = {
|
|||
// EN_US
|
||||
{
|
||||
/* GENERAL */
|
||||
"RatFE", // L10N_APP_NAME
|
||||
"Treebird", // L10N_APP_NAME
|
||||
"Home",
|
||||
"Local",
|
||||
"Federated",
|
||||
|
@ -87,8 +87,8 @@ static const char* const L10N[][_L10N_LEN] = {
|
|||
"Live statuses - Statuses fetch on the fly",
|
||||
"Appearance",
|
||||
"Theme variant",
|
||||
"RatFE 2.0 - Default, simple theme",
|
||||
"RatFE 3.0 - Flat, modern theme",
|
||||
"Treebird 2.0 - Default, simple theme",
|
||||
"Treebird 3.0 - Flat, modern theme",
|
||||
"Color Scheme",
|
||||
"Light",
|
||||
"Dark",
|
||||
|
@ -105,7 +105,7 @@ static const char* const L10N[][_L10N_LEN] = {
|
|||
// ES_ES
|
||||
{
|
||||
/* GENERAL */
|
||||
"RataFE", // L10N_APP_NAME
|
||||
"Treebird", // L10N_APP_NAME
|
||||
"Inicio",
|
||||
"Local",
|
||||
"Federado",
|
||||
|
@ -124,8 +124,8 @@ static const char* const L10N[][_L10N_LEN] = {
|
|||
"Estados en vivo - Los estados se obtienen sobre la marcha",
|
||||
"Apariencia",
|
||||
"Variante de tema",
|
||||
"RatFE 2.0 - Tema simple predeterminado",
|
||||
"RatFE 3.0 - Tema plano y moderno",
|
||||
"Treebird 2.0 - Tema simple predeterminado",
|
||||
"Treebird 3.0 - Tema plano y moderno",
|
||||
"Esquema de colores",
|
||||
"Claro",
|
||||
"Oscuro",
|
||||
|
@ -140,4 +140,4 @@ static const char* const L10N[][_L10N_LEN] = {
|
|||
},
|
||||
};
|
||||
|
||||
#endif // RATFE_L10N_H
|
||||
#endif // TREEBIRD_L10N_H
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* RatFE - Lightweight frontend for Pleroma
|
||||
* Treebird - Lightweight frontend for Pleroma
|
||||
* Copyright (C) 2022 Nekobit
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* RatFE - Lightweight frontend for Pleroma
|
||||
* Treebird - Lightweight frontend for Pleroma
|
||||
* Copyright (C) 2022 Nekobit
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* RatFE - Lightweight frontend for Pleroma
|
||||
* Treebird - Lightweight frontend for Pleroma
|
||||
* Copyright (C) 2022 Nekobit
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
@ -20,5 +20,5 @@
|
|||
|
||||
struct local_config g_config = {
|
||||
.changed = 0,
|
||||
.theme = "ratfe20"
|
||||
.theme = "treebird20"
|
||||
};
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* RatFE - Lightweight frontend for Pleroma
|
||||
* Treebird - Lightweight frontend for Pleroma
|
||||
* Copyright (C) 2022 Nekobit
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* RatFE - Lightweight frontend for Pleroma
|
||||
* Treebird - Lightweight frontend for Pleroma
|
||||
* Copyright (C) 2022 Nekobit
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
@ -41,7 +41,7 @@ void content_login(mastodont_t* api, char** data, size_t data_size)
|
|||
{
|
||||
// Getting the client id/secret
|
||||
struct mstdnt_args args_app = {
|
||||
.client_name = "RatFE",
|
||||
.client_name = "treebird",
|
||||
.redirect_uris = "http://localhost/",
|
||||
.scopes = "read+write+follow+push",
|
||||
.website = NULL
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* RatFE - Lightweight frontend for Pleroma
|
||||
* Treebird - Lightweight frontend for Pleroma
|
||||
* Copyright (C) 2022 Nekobit
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* RatFE - Lightweight frontend for Pleroma
|
||||
* Treebird - Lightweight frontend for Pleroma
|
||||
* Copyright (C) 2022 Nekobit
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
@ -51,7 +51,7 @@ int main(void)
|
|||
char* post_str = read_post_data();
|
||||
|
||||
// Config defaults
|
||||
g_config.theme = "ratfe20";
|
||||
g_config.theme = "treebird20";
|
||||
|
||||
/*******************
|
||||
* Path handling *
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* RatFE - Lightweight frontend for Pleroma
|
||||
* Treebird - Lightweight frontend for Pleroma
|
||||
* Copyright (C) 2022 Nekobit
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* RatFE - Lightweight frontend for Pleroma
|
||||
* Treebird - Lightweight frontend for Pleroma
|
||||
* Copyright (C) 2022 Nekobit
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* RatFE - Lightweight frontend for Pleroma
|
||||
* Treebird - Lightweight frontend for Pleroma
|
||||
* Copyright (C) 2022 Nekobit
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* RatFE - Lightweight frontend for Pleroma
|
||||
* Treebird - Lightweight frontend for Pleroma
|
||||
* Copyright (C) 2022 Nekobit
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* RatFE - Lightweight frontend for Pleroma
|
||||
* Treebird - Lightweight frontend for Pleroma
|
||||
* Copyright (C) 2022 Nekobit
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* RatFE - Lightweight frontend for Pleroma
|
||||
* Treebird - Lightweight frontend for Pleroma
|
||||
* Copyright (C) 2022 Nekobit
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* RatFE - Lightweight frontend for Pleroma
|
||||
* Treebird - Lightweight frontend for Pleroma
|
||||
* Copyright (C) 2022 Nekobit
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* RatFE - Lightweight frontend for Pleroma
|
||||
* Treebird - Lightweight frontend for Pleroma
|
||||
* Copyright (C) 2022 Nekobit
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* RatFE - Lightweight frontend for Pleroma
|
||||
* Treebird - Lightweight frontend for Pleroma
|
||||
* Copyright (C) 2022 Nekobit
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* RatFE - Lightweight frontend for Pleroma
|
||||
* Treebird - Lightweight frontend for Pleroma
|
||||
* Copyright (C) 2022 Nekobit
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* RatFE - Lightweight frontend for Pleroma
|
||||
* Treebird - Lightweight frontend for Pleroma
|
||||
* Copyright (C) 2022 Nekobit
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* RatFE - Lightweight frontend for Pleroma
|
||||
* Treebird - Lightweight frontend for Pleroma
|
||||
* Copyright (C) 2022 Nekobit
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
struct mstdnt_status status_test = {
|
||||
.account = {
|
||||
.avatar = "/ratfe_logo.png",
|
||||
.avatar = "/treebird_logo.png",
|
||||
.display_name = "Test user",
|
||||
.acct = "user@test.com",
|
||||
},
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* RatFE - Lightweight frontend for Pleroma
|
||||
* Treebird - Lightweight frontend for Pleroma
|
||||
* Copyright (C) 2022 Nekobit
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* RatFE - Lightweight frontend for Pleroma
|
||||
* Treebird - Lightweight frontend for Pleroma
|
||||
* Copyright (C) 2022 Nekobit
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
|
|
|
@ -24,9 +24,9 @@
|
|||
<li>
|
||||
<label for="cfgthemevar">Theme variant</label>
|
||||
<select name="theme" id="cfgthemevar">
|
||||
<option value="ratfe20">RatFE 2.0 - Default, simple theme</option>
|
||||
<option value="ratfe30">RatFE 3.0 - Flat, modern theme</option>
|
||||
<option value="ratfe10">RatFE Minimal - For netsurf, old browsers, minimal styling</option>
|
||||
<option value="treebird20">treebird 2.0 - Default, simple theme</option>
|
||||
<option value="treebird30">treebird 3.0 - Flat, modern theme</option>
|
||||
<option value="treebird10">treebird Minimal - For netsurf, old browsers, minimal styling</option>
|
||||
</select>
|
||||
</li>
|
||||
</ul>
|
||||
|
|
|
@ -5,12 +5,12 @@
|
|||
<title>%s</title>
|
||||
<link rel="icon" type="image/png" href="/favicon.png">
|
||||
<link rel="stylesheet" type="text/css" href="/%s.css">
|
||||
<!-- <link rel="stylesheet" type="text/css" href="../dist/ratfe.css"> -->
|
||||
<!-- <link rel="stylesheet" type="text/css" href="../dist/treebird.css"> -->
|
||||
</head>
|
||||
<body>
|
||||
<div id="display">
|
||||
<header id="navbar">
|
||||
<a href="%s/"><img src="/ratfe_logo.png" height="42"></a>
|
||||
<a href="%s/"><img src="/treebird_logo.png" height="42"></a>
|
||||
<span class="info">%s</span>
|
||||
<div id="navbar-right" class="alignend">
|
||||
%s
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<div class="simple-page">
|
||||
<h1>Login</h1>
|
||||
|
||||
<form action="/ratfe.cgi/login" method="post">
|
||||
<form action="/treebird.cgi/login" method="post">
|
||||
<div class="form-group">
|
||||
<label for="login-username">Username: </label>
|
||||
<input type="text" id="login-username" name="username">
|
||||
|
|