The weeb for the next gen discord boat - Wamellow wamellow.com
bot discord
3
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'master' of https://github.com/Luna-devv/mellow-web

Luna 1dacef68 4cf28558

+311 -16
+23 -2
app/(home)/faq.component.tsx
··· 7 7 8 8 import DiscordAppBadge from "@/components/discord/app-badge"; 9 9 import cn from "@/utils/cn"; 10 + import Section from "@/components/section"; 10 11 11 12 const data = [ 12 13 { ··· 107 108 } 108 109 ]; 109 110 110 - export default function Faq() { 111 + interface Props { 112 + showTitle?: boolean; 113 + } 114 + 115 + export default function Faq({ 116 + showTitle = false, 117 + }: Props) { 111 118 const cookies = useCookies(); 112 119 113 120 return ( 114 121 <div className="my-4 w-full"> 115 - <b className="sr-only">Frequently Asked Questions for Wamellow</b> 122 + 123 + {showTitle 124 + ? 125 + <Section 126 + className="mb-4" 127 + title="Frequently Asked Questions about Wamellow" 128 + > 129 + Commonly asked questions about Wamellow and how to use it. 130 + </Section> 131 + : 132 + <b className="sr-only"> 133 + Frequently Asked Questions for Wamellow 134 + </b> 135 + } 136 + 116 137 <Accordion 117 138 className="rounded-lg overflow-hidden" 118 139 variant="splitted"
+5
app/docs/[...pathname]/page.tsx
··· 6 6 import Notice, { NoticeType } from "@/components/notice"; 7 7 import { HomeButton, ScreenMessage, SupportButton } from "@/components/screen-message"; 8 8 import metadata from "@/public/docs/meta.json"; 9 + import Faq from "@/app/(home)/faq.component"; 9 10 import SadWumpusPic from "@/public/sad-wumpus.gif"; 10 11 11 12 interface Props { ··· 57 58 } 58 59 59 60 <BeautifyMarkdown markdown={markdown} /> 61 + 62 + <div className="h-16" /> 63 + 64 + <Faq showTitle /> 60 65 </div> 61 66 ); 62 67 }
+34 -1
components/markdown.tsx
··· 1 1 /* eslint-disable @typescript-eslint/no-unused-vars */ 2 + import { getBaseUrl } from "@/utils/urls"; 2 3 import { Code } from "@nextui-org/react"; 3 4 import Link from "next/link"; 4 5 import { HiExternalLink } from "react-icons/hi"; 5 6 import ReactMarkdown from "react-markdown"; 6 7 import rehypeRaw from "rehype-raw"; 8 + import Notice, { NoticeType } from "./notice"; 9 + 10 + const ALLOWED_IFRAMES = [ 11 + "https://www.youtube.com/embed/", 12 + "https://e.widgetbot.io/channels/", 13 + getBaseUrl() 14 + ] as const; 7 15 8 16 import { getUser } from "@/lib/discord/user"; 9 17 import { filterDuplicates } from "@/utils/filter-duplicates"; ··· 131 139 tr: ({ isHeader, ...props }) => <tr className="divide-x-1 divide-wamellow" {...props} />, 132 140 td: ({ isHeader, ...props }) => <td className="px-2 py-1 divide-x-8 divide-wamellow break-all" {...props} />, 133 141 142 + iframe: ({ className, ...props }) => { 143 + if (ALLOWED_IFRAMES.some((url) => props.src?.startsWith(url))) { 144 + return ( 145 + <iframe 146 + allow="clipboard-write; fullscreen" 147 + className={cn( 148 + "w-full rounded-lg mt-4", 149 + className 150 + )} 151 + {...props} 152 + /> 153 + ) 154 + } 155 + 156 + return ( 157 + <div className="mt-4"> 158 + <Notice 159 + type={NoticeType.Error} 160 + message={`Iframe from "${props.src?.split("/")[2]}" is not allowed`} 161 + /> 162 + </div> 163 + ) 164 + }, 165 + 134 166 ol: ({ ordered, ...props }) => <ol className="list-decimal list-inside space-y-1 marker:text-neutral-300/40 my-1" {...props} />, 135 167 ul: ({ ordered, ...props }) => <ul className="list-disc list-inside space-y-1 marker:text-neutral-300/40 my-1" {...props} /> 168 + 136 169 }} 137 170 > 138 171 {await parseDiscordMarkdown(markdown)} 139 172 </ReactMarkdown> 140 173 ); 141 174 142 - } 175 + }
+6 -2
components/section.tsx
··· 6 6 ...props 7 7 }: { 8 8 title: string; 9 - children: React.ReactNode; 9 + children?: React.ReactNode; 10 10 } & React.HTMLAttributes<HTMLDivElement>) { 11 11 return ( 12 12 <> ··· 14 14 15 15 <div {...props}> 16 16 <h3 className="text-xl text-neutral-200">{title}</h3> 17 - <p className="dark:text-neutral-500 text-neutral-400 mb-3">{children}</p> 17 + {children && 18 + <p className="dark:text-neutral-500 text-neutral-400 mb-3"> 19 + {children} 20 + </p> 21 + } 18 22 </div> 19 23 </> 20 24 );
public/docs-assets/passport-permissions.webp

This is a binary file and will not be displayed.

public/docs-assets/passport-setup.webp

This is a binary file and will not be displayed.

public/docs-assets/starboard-message-reference.webp

This is a binary file and will not be displayed.

public/docs-assets/starboard.webp

This is a binary file and will not be displayed.

public/docs-assets/welcome.webp

This is a binary file and will not be displayed.

+36
public/docs/farewell.md
··· 1 + Wamellow's farewell feature provides an exceptional platform to say goodbye to members who are leaving. With its versatile customization options, you can tailor a farewell message that mirrors the unique ambiance of your server. 2 + <br /> 3 + <br /> 4 + 5 + ![farewell example](/docs-assets/welcome.webp) 6 + 7 + ## Setup 8 + 1. Install Wamellow to your server by going to [wamellow.com/add](https://wamellow.com/add). 9 + 2. Head to the dashboard by going to [wamellow.com/dashboard](https://wamellow.com/dashboard). 10 + 3. Select your server from the dashboard. 11 + 4. Navigate to the **Greetings** menu. 12 + 5. Within the **Greetings** menu, locate and click on the **Leave message** option. 13 + 6. Enable the Bye module by clicking the enable button. 14 + 7. Set a channel to send farewell messages into. 15 + 16 + ### โœ๏ธ Custom message & embed 17 + You can create a leaving message with a **fully customizable message and embed**, making it easy to say goodbye to departing members. 18 + 19 + ### ๐Ÿ–ผ๏ธ Image card 20 + You can create a nice farewell image by **customizing the background for free**. 21 + <br /> 22 + <br /> 23 + 24 + **Warning:** 25 + 26 + Please do not forget to actually put in a direct link to the image, not a link to a website with the image. 27 + 28 + Custom background image: `1024x256px` (width, height) and must be type of `.png`. 29 + 30 + ![farewell image](/welcome.webp) 31 + 32 + **Example custom backgrounds:** 33 + - [images.wamellow.com/static/grass.jpg](https://images.wamellow.com/static/grass.jpg) 34 + - [images.wamellow.com/static/orange-grass.jpg](https://images.wamellow.com/static/grass.jpg) 35 + - [images.wamellow.com/static/red-grass.jpg](https://images.wamellow.com/static/red-grass.jpg) 36 + - [images.wamellow.com/static/rank.png](https://images.wamellow.com/static/rank.png)
+52 -1
public/docs/greetings.md
··· 1 - ## Placeholders 1 + Wamellow boasts a feature-rich greeter. This functionality enables the bot to automatically send a welcoming message in a designated channel whenever a new member joins, fostering a warm and inviting community atmosphere. 2 + <br /> 3 + <br /> 4 + 5 + ![farewell example](/docs-assets/welcome.webp) 6 + 7 + ## Setup 8 + 1. Add Wamellow to your server by going to [wamellow.com/add](https://wamellow.com/add). 9 + 2. Head to the dashboard by going to [wamellow.com/dashboard](https://wamellow.com/dashboard). 10 + 3. Select your server from the dashboard. 11 + 4. Navigate to the **Greetings** tab. 12 + 5. Within the **Greetings** menu, locate and click on the **Welcome greeting** option. 13 + 6. Enable the Welcome module by clicking the enable button. 14 + 7. Set a channel to send greetings into. 15 + 16 + ### โœ๏ธ Custom message & embed 17 + You can create a welcoming message with a **fully customizable message and embed**, making it easy to convey your server's culture and values to your new members. 18 + 19 + ### ๐Ÿ–ผ๏ธ Image card 20 + You can create a nice welcome image by **customizing the background for free**. 21 + <br /> 22 + <br /> 23 + 24 + **Warning:** 25 + 26 + Please do not forget to actually put in a direct link to the image, not a link to a website with the image. 27 + 28 + Custom background image: `1024x256px` (width, height) and must be type of `.png`. 29 + 30 + ![welcome image](/welcome.webp) 31 + 32 + **Example custom backgrounds:** 33 + - [images.wamellow.com/static/grass.jpg](https://images.wamellow.com/static/grass.jpg) 34 + - [images.wamellow.com/static/orange-grass.jpg](https://images.wamellow.com/static/grass.jpg) 35 + - [images.wamellow.com/static/red-grass.jpg](https://images.wamellow.com/static/red-grass.jpg) 36 + - [images.wamellow.com/static/rank.png](https://images.wamellow.com/static/rank.png) 37 + 38 + ### ๐Ÿ“ Pings 39 + Ghost ping members in up to 5 channels when they join, the ghost pings will be instantly deleted. 2 40 41 + ### ๐Ÿ‘€ Roles 42 + Assign up to 5 roles to new members. 43 + 44 + ### โ™ป๏ธ Restore Roles/Nick after Rejoin 45 + You can re-assign all roles and past nickname when a member left and rejoins your server. 46 + 47 + ### ๐Ÿ’ฌ Direct Message 48 + If you want to send a direct message to your new members, Wamellow also allows you to do so with a fully custom message and/or embed. 49 + 50 + ### ๐ŸŽ‰ Reactions 51 + If you want, you can also make Wamellow react with up to 2 emojis to your custom welcome message or to your members's first message. 52 + 53 + ## Placeholders 3 54 Placeholders allow you to use variables that change from message to message, for example to display information about the joining user or your server. They are always enclosed in curly braces, such as `{user.username}`. 4 55 5 56 <table>
+2 -8
public/docs/index.md
··· 1 - # Hello and welcome 2 - ## Hello and welcome 3 - ### Hello and welcome 4 - ### Hello and welcome 5 - **Hello and welcome** 1 + If you want to learn about what features the Wamellow Discord Bot has, please [visit the Homepage](/). 6 2 7 - *Hell and welcomeo* 8 - 9 - fds `code` fds 3 + <iframe src="https://e.widgetbot.io/channels/828676951023550495/1135588403782619317" height="800" frameborder="0" />
+52 -2
public/docs/meta.json
··· 3 3 { 4 4 "name": "๐Ÿช Home", 5 5 "file": "index.md", 6 - "description": "Welcome to the Wamellow documentation!" 6 + "description": "Your portal to the extensive and detailed Wamellow documentation!" 7 7 }, 8 8 { 9 9 "name": "๐Ÿ‘‹ Greetings", 10 10 "file": "greetings.md", 11 - "description": "Welcome new members to your community!", 11 + "description": "Create a warm and inviting atmosphere for new members in your community!", 12 + "permissions": { 13 + "bot": [ 14 + "View Channel", 15 + "Send Messages", 16 + "Embed Links", 17 + "Attach Files" 18 + ], 19 + "user": [ 20 + "Manage Server" 21 + ] 22 + } 23 + }, 24 + { 25 + "name": "๐Ÿ” Passport", 26 + "file": "passport.md", 27 + "description": "Verify members with a captcha in your community for enhanced security!", 28 + "permissions": { 29 + "bot": [ 30 + "Ban Members", 31 + "Kick Members", 32 + "Manage Roles", 33 + "View Channel", 34 + "Send Messages", 35 + "Embed Links" 36 + ], 37 + "user": [ 38 + "Manage Server" 39 + ] 40 + } 41 + }, 42 + { 43 + "name": "๐Ÿ˜” Farewell", 44 + "file": "farewell.md", 45 + "description": "Send farewell messages to members leaving your community!", 46 + "permissions": { 47 + "bot": [ 48 + "View Channel", 49 + "Send Messages", 50 + "Embed Links", 51 + "Attach Files" 52 + ], 53 + "user": [ 54 + "Manage Server" 55 + ] 56 + } 57 + }, 58 + { 59 + "name": "โญ Starboard", 60 + "file": "starboard.md", 61 + "description": "An engaging and customizable platform for highlighting memorable messages.", 12 62 "permissions": { 13 63 "bot": [ 14 64 "View Channel",
+45
public/docs/passport.md
··· 1 + Passport is essential for verifying users joining your Discord server, utilizing captchas as the method to authenticate users effectively and maintain security. 2 + 3 + [View a interactive example passport](/passport/1125063180801036329) 4 + 5 + ## Setup 6 + 1. Install Wamellow to your server by going to [wamellow.com/add](https://wamellow.com/add). 7 + 2. Head to the dashboard by going to [wamellow.com/dashboard](https://wamellow.com/dashboard). 8 + 3. Select your server from the dashboard. 9 + 4. Navigate to the **Greetings** menu. 10 + 5. Within the **Greetings** menu, locate and click on the **Passport** tab. 11 + 6. Enable the Passport module by clicking the enable button. 12 + 7. Set a verified role which members will get uppon verifying. 13 + 8. Remove permissions of the @everyone role to write messages in every channel. 14 + 9. Click `Copy link to Passport` and send it into your `#verify` channel. 15 + 10. Get an alt-account and test out the verification process. 16 + 11. **๐ŸŽ‰ Done!** Your server is now secure. 17 + 18 + ![passport setup example](/docs-assets/passport-setup.webp) 19 + 20 + ![channel permission setup](/docs-assets/passport-permissions.webp) 21 + 22 + ### ๐Ÿ”’ Send direct message to member on fail 23 + If the member should recieve a DM if they failed verification, along with the following punishment (eg.: a ban). 24 + 25 + ### ๐Ÿ’ฌ Logging channel 26 + The channel where passport logs should be sent into, such as verification success and failures. 27 + 28 + ### ๐Ÿ” Unverified role 29 + The role members should recieve on join, this role shouldn't have write permissions in channels. 30 + 31 + ### ๐Ÿ”“ Verified role 32 + **Required!** The role members should recive on verification success. This role should have read and write access to all public channels. 33 + 34 + ### โš™๏ธ Failed verification action 35 + What should happen with the member if they fail verification. 36 + - Ban member 37 + - Kick member 38 + - Assign role to member* 39 + <br /> 40 + *requires a `punishment role` to be set. 41 + 42 + ### ๐Ÿงจ Punishment role 43 + Which role members should recive when failing verification. 44 + 45 + **Note:** This required the `failed verification action` to be set to `Assign role to member`.
+56
public/docs/starboard.md
··· 1 + The starboard serves as a channel for showcasing standout messages from your community. Members can "upvote" messages by reacting with a โญ. Once a message gets a specified number of โญ reactions (for example, 3), it is automatically reposted in the `#starboard` channel. This creates a central hub for humorous, out-of-context, and memorable messages, creating eternal engagement within your community. 2 + <br /> 3 + <br /> 4 + 5 + ![farewell example](/docs-assets/starboard.webp) 6 + 7 + ## Setup 8 + 1. Install Wamellow on your server by going to [wamellow.com/add](https://wamellow.com/add). 9 + 2. Head to the dashboard by going to [wamellow.com/dashboard](https://wamellow.com/dashboard). 10 + 3. Select your server from the dashboard. 11 + 4. Navigate to the **Starboard** menu. 12 + 5. Enable the Starboard module by clicking the enable button. 13 + 6. Select a channel for messages to be posted into. 14 + 7. **๐ŸŽ‰ Done!** Try it out by reacting to any message with the selected emote. 15 + 16 + ### ๐Ÿค– Allow bots & webhooks 17 + Choose whether messages from bots or webhooks can be displayed on the starboard. 18 + 19 + ### ๐Ÿ”ž Allow NSFW 20 + Specify whether wamellow should include messages from NSFW-marked channels in the starboard. 21 + 22 + ### ๐Ÿ–Š๏ธ Allow message edits 23 + If allowed, messages that are edited will also be updated in the starboard. 24 + 25 + **Note:** To prevent abusing the starboard, it's recommended to leave this option disabled. 26 + 27 + ### ๐Ÿง‘โ€๐Ÿฆฐ Allow author reaction 28 + Whether the message author can star their own messages. When disallowed, the author's reaction will automatically be removed. 29 + 30 + ### ๐Ÿ“ Display message reference 31 + Choose whether the replied message should be visible within the starboard or not. 32 + 33 + ![starboard message reference](/docs-assets/starboard-message-reference.webp) 34 + 35 + ### ๐Ÿ—‘๏ธ Delete message from starboard upon losing reactions 36 + If a message in the starboard looses the required reactions, it gets deleted from the starboard. Messages will reappear once they gain enough reactions again. 37 + 38 + ### ๐Ÿ”ข Number of reactions required 39 + Adjust the number of reactions needed with the chosen emote to send a message to the starboard channel. 40 + 41 + ### โญ Custom emoji 42 + Select a custom emote required for reacting. This can be any default Discord emote or a custom emote from your server. 43 + 44 + ### ๐Ÿ˜ Profile display style 45 + Chose what should be displayed of the message author. 46 + - Username (`@mwlica`) 47 + - Global Nickname (`yll`) 48 + - Guild Nickname (`Luna`) 49 + - Guild Nickname & Per-Guild Avatar 50 + 51 + ### โŒ Blacklisted roles 52 + Specify roles that are restricted from starring other people's messages and prevent their own messages from appearing on the starboard. 53 + 54 + ### โš™๏ธ Blacklisted channels 55 + Designate specific channels where message starring will be ignored. 56 +