add channel listing
This commit is contained in:
		
							parent
							
								
									080d20396b
								
							
						
					
					
						commit
						0b1387f7b9
					
				
					 2 changed files with 40 additions and 1 deletions
				
			
		| 
						 | 
					@ -33,7 +33,7 @@ You **MUST** grant your bot all Privileged Gateway Intents.
 | 
				
			||||||
    - [ ] Creation date, join date, ID, etc
 | 
					    - [ ] Creation date, join date, ID, etc
 | 
				
			||||||
  - [x] Room history (r)
 | 
					  - [x] Room history (r)
 | 
				
			||||||
  - [x] Extended room history (R)
 | 
					  - [x] Extended room history (R)
 | 
				
			||||||
  - [ ] List channels (l)
 | 
					  - [x] List channels (l)
 | 
				
			||||||
  - [x] List guilds (L)
 | 
					  - [x] List guilds (L)
 | 
				
			||||||
  - [x] Clear (c)
 | 
					  - [x] Clear (c)
 | 
				
			||||||
  - [ ] Surf channels forwards (>)
 | 
					  - [ ] Surf channels forwards (>)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										39
									
								
								src/index.js
									
										
									
									
									
								
							
							
						
						
									
										39
									
								
								src/index.js
									
										
									
									
									
								
							| 
						 | 
					@ -313,6 +313,42 @@ function listGuilds() {
 | 
				
			||||||
  console.log("");
 | 
					  console.log("");
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function listChannels() {
 | 
				
			||||||
 | 
					  let longest = 0;
 | 
				
			||||||
 | 
					  let longestTopic = 0;
 | 
				
			||||||
 | 
					  const guild = client.guilds.get(currentGuild);
 | 
				
			||||||
 | 
					  const channels = [...guild.channels.values()].filter((c) => c.type == 0);
 | 
				
			||||||
 | 
					  channels.sort((a, b) => a.position - b.position);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  for (const channel of channels) {
 | 
				
			||||||
 | 
					    if (channel.name.length > longest) longest = channel.name.length;
 | 
				
			||||||
 | 
					    if (channel.topic != null && channel.topic.length > longestTopic)
 | 
				
			||||||
 | 
					      longestTopic = channel.topic.length;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  console.log("");
 | 
				
			||||||
 | 
					  console.log(
 | 
				
			||||||
 | 
					    "  " +
 | 
				
			||||||
 | 
					      "channel-name".padStart(longest, " ") +
 | 
				
			||||||
 | 
					      "  " +
 | 
				
			||||||
 | 
					      "topic".padStart(Math.min(80 - (longest + 5), longestTopic), " ")
 | 
				
			||||||
 | 
					  );
 | 
				
			||||||
 | 
					  console.log("-".repeat(80));
 | 
				
			||||||
 | 
					  for (const channel of channels) {
 | 
				
			||||||
 | 
					    const topic =
 | 
				
			||||||
 | 
					      channel.topic != null ? channel.topic.replace(/\n/g, " ") : "";
 | 
				
			||||||
 | 
					    console.log(
 | 
				
			||||||
 | 
					      "  " +
 | 
				
			||||||
 | 
					        channel.name.padStart(longest, " ") +
 | 
				
			||||||
 | 
					        "  " +
 | 
				
			||||||
 | 
					        (topic.length > 80 - longest + 9
 | 
				
			||||||
 | 
					          ? topic.substring(0, 79 - (longest + 5)) + "\u2026"
 | 
				
			||||||
 | 
					          : topic.padStart(Math.min(80 - (longest + 5), longestTopic), " "))
 | 
				
			||||||
 | 
					    );
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  console.log("");
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
let targetGuild = "";
 | 
					let targetGuild = "";
 | 
				
			||||||
function gotoGuild() {
 | 
					function gotoGuild() {
 | 
				
			||||||
  targetGuild = "";
 | 
					  targetGuild = "";
 | 
				
			||||||
| 
						 | 
					@ -398,6 +434,7 @@ function listUsers() {
 | 
				
			||||||
function switchGuild() {
 | 
					function switchGuild() {
 | 
				
			||||||
  targetGuild = targetGuild.trim();
 | 
					  targetGuild = targetGuild.trim();
 | 
				
			||||||
  if (targetGuild == "") {
 | 
					  if (targetGuild == "") {
 | 
				
			||||||
 | 
					    listChannels();
 | 
				
			||||||
    listUsers();
 | 
					    listUsers();
 | 
				
			||||||
    guildSwitch = false;
 | 
					    guildSwitch = false;
 | 
				
			||||||
    return;
 | 
					    return;
 | 
				
			||||||
| 
						 | 
					@ -420,6 +457,7 @@ function switchGuild() {
 | 
				
			||||||
    const topChannel = findTopChannel(target);
 | 
					    const topChannel = findTopChannel(target);
 | 
				
			||||||
    currentChannel = topChannel.id;
 | 
					    currentChannel = topChannel.id;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    listChannels();
 | 
				
			||||||
    listUsers();
 | 
					    listUsers();
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -667,6 +705,7 @@ stdin.on("data", function (key) {
 | 
				
			||||||
          console.log("<not in a guild>");
 | 
					          console.log("<not in a guild>");
 | 
				
			||||||
          break;
 | 
					          break;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					        listChannels();
 | 
				
			||||||
        break;
 | 
					        break;
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      case "L": {
 | 
					      case "L": {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue