1 parent
359528979b
commit
c4df857db7
2 files changed
+38
-7
No files matched your search
@@ -9,13 +9,16 @@ const (
|
||||
short = "List YouTube i18n languages"
|
||||
long = "List YouTube i18n languages' id, hl, and name"
|
||||
hlUsage = "Host language"
|
||||
rURI = "i18n://language"
|
||||
rName = "all i18n language"
|
||||
)
|
||||
|
||||
var (
|
||||
hl string
|
||||
parts []string
|
||||
output string
|
||||
jpath string
|
||||
hl string
|
||||
parts []string
|
||||
output string
|
||||
jpath string
|
||||
defaultParts = []string{"id", "snippet"}
|
||||
)
|
||||
|
||||
var i18nLanguageCmd = &cobra.Command{
|
||||
|
||||
@@ -11,11 +11,12 @@ import (
|
||||
)
|
||||
|
||||
func init() {
|
||||
cmd.MCP.AddTool(listTool, listHandler)
|
||||
// cmd.MCP.AddTool(listTool, listHandler)
|
||||
cmd.MCP.AddResource(allI18nLanguages, resourceHandler)
|
||||
i18nLanguageCmd.AddCommand(listCmd)
|
||||
listCmd.Flags().StringVarP(&hl, "hl", "l", "", hlUsage)
|
||||
listCmd.Flags().StringSliceVarP(
|
||||
&parts, "parts", "p", []string{"id", "snippet"}, cmd.PartsUsage,
|
||||
&parts, "parts", "p", defaultParts, cmd.PartsUsage,
|
||||
)
|
||||
listCmd.Flags().StringVarP(&output, "output", "o", "table", cmd.TableUsage)
|
||||
listCmd.Flags().StringVarP(&jpath, "jsonpath", "j", "", cmd.JPUsage)
|
||||
@@ -46,7 +47,7 @@ var listTool = mcp.NewTool(
|
||||
mcp.Description(hlUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithArray(
|
||||
"parts", mcp.DefaultArray([]string{"id", "snippet"}),
|
||||
"parts", mcp.DefaultArray(defaultParts),
|
||||
mcp.Items(map[string]any{"type": "string"}),
|
||||
mcp.Description(cmd.PartsUsage), mcp.Required(),
|
||||
),
|
||||
@@ -81,6 +82,33 @@ func listHandler(
|
||||
return mcp.NewToolResultText(writer.String()), nil
|
||||
}
|
||||
|
||||
var allI18nLanguages = mcp.NewResource(
|
||||
rURI, rName,
|
||||
mcp.WithMIMEType("application/json"),
|
||||
mcp.WithResourceDescription(long),
|
||||
)
|
||||
|
||||
func resourceHandler(
|
||||
ctx context.Context, request mcp.ReadResourceRequest,
|
||||
) ([]mcp.ResourceContents, error) {
|
||||
parts = defaultParts
|
||||
output = "json"
|
||||
var writer bytes.Buffer
|
||||
err := list(&writer)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
contents := []mcp.ResourceContents{
|
||||
mcp.TextResourceContents{
|
||||
URI: rURI,
|
||||
MIMEType: "application/json",
|
||||
Text: writer.String(),
|
||||
},
|
||||
}
|
||||
return contents, nil
|
||||
}
|
||||
|
||||
func list(writer io.Writer) error {
|
||||
i := i18nLanguage.NewI18nLanguage(
|
||||
i18nLanguage.WithHl(hl), i18nLanguage.WithService(nil),
|
||||
|
||||
Reference in new issue
Block a user