Categorygithub.com/yulog/go-summaly
modulepackage
0.0.2
Repository: https://github.com/yulog/go-summaly.git
Documentation: pkg.go.dev

# README

summaly

Go Reference GitHub go.mod Go version GitHub Tag GitHub Release

fork of misskey-dev/summaly

  • Go版

Installation

go install github.com/yulog/go-summaly/cmd/summaly@latest

🚧 工事中 🚧

Usage

サーバーとして:

summaly
http://localhost:1323/?url=https://example.com

コンテナとして:

services:

  summaly:
    image: ghcr.io/yulog/go-summaly:latest
    ports:
      - "8080:1323"
    environment:
      - PORT=$PORT
      - TIMEOUT=$TIMEOUT
      - REQUIRE_NON_BOT_UA_FILE=$REQUIRE_NON_BOT_UA_FILE
    volumes:
      - type: bind
        source: "./nonbot.txt"
        target: "/nonbot.txt"

Options

See environments.md

Plugins

未対応

urls are WHATWG URL since v4.

Returns

A Promise of an Object that contains properties below:

※ Almost all values are nullable. player should not be null.

Root

PropertyTypeDescription
titlestringThe title of the web page
iconstringThe url of the icon of the web page
descriptionstringThe description of the web page
thumbnailstringThe url of the thumbnail of the web page
playerPlayerThe player of the web page
sitenamestringThe name of the web site
sensitivebooleanWhether the url is sensitive
urlstringThe url of the web page

Player

PropertyTypeDescription
urlstringThe url of the player
widthnumber | nullThe width of the player
heightnumber | nullThe height of the player
allowstring[]The names of the allowed permissions for iframe

Currently the possible items in allow are:

  • autoplay
  • clipboard-write
  • fullscreen
  • encrypted-media
  • picture-in-picture
  • web-share

See Permissions Policy in MDN for details of them.

Example

package main

import (
	"encoding/json"
	"fmt"

	"github.com/yulog/go-summaly"
	"github.com/yulog/go-summaly/fetch"
)

var c = fetch.NewClient(fetch.ClientOpts{})

func main() {
	u, _ := url.Parse("https://www.youtube.com/watch?v=NMIEAhH_fTU")
	summary, _ := summaly.New(u, c).Do()

	v, _ := json.Marshal(summary)

	fmt.Println(string(v))
}

will be ... ↓

{
	"title": "【アイドルマスター】「Stage Bye Stage」(歌:島村卯月、渋谷凛、本田未央)",
	"icon": "https://www.gstatic.com/youtube/img/web/monochrome/logo_512x512.png",
	"description": "Website▶https://columbia.jp/idolmaster/Playlist▶https://www.youtube.com/playlist?list=PL83A2998CF3BBC86D2018年7月18日発売予定THE IDOLM@STER CINDERELLA GIRLS CG STAR...",
	"thumbnail": "https://i.ytimg.com/vi/NMIEAhH_fTU/maxresdefault.jpg",
	"player": {
		"url": "https://www.youtube.com/embed/NMIEAhH_fTU?feature=oembed",
		"width": 200,
		"height": 113,
		"allow": [
			"autoplay",
			"clipboard-write",
			"encrypted-media",
			"picture-in-picture",
			"web-share",
			"fullscreen"
		]
	},
	"sitename": "YouTube",
	"sensitive": false,
	"url": "https://www.youtube.com/watch?v=NMIEAhH_fTU"
}

Testing

go test

License

MIT

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Functions

CleanupTitle は title から siteName を除去する.
Clip は s を max で切り取る.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Structs

No description provided by the author
TODO: 不要な部分はomitemptyでも良い?nullにしないとダメ?.
No description provided by the author
TODO: 不要な部分はomitemptyでも良い?nullにしないとダメ?.

# Interfaces

No description provided by the author

# Type aliases

No description provided by the author