spliti/check.go

65 行
1.9 KiB
Go

package main
import (
"strings"
"net/url"
"fmt"
)
func getid(u string) (string, error) {
parse, err := url.Parse(u)
if err != nil {
return "", err
}
params, err := url.ParseQuery(parse.RawQuery)
if err != nil {
return "", err
}
id, ok := params["id"]
if !ok || len(id) == 0 {
return "", fmt.Errorf("IDを見つけられませんでした。")
}
return id[0], nil
}
/* 記事かの確認 */
func isarticle(u string) bool {
chk := strings.Split(u, "=")
return len(chk) > 2 &&
(chk[0] == "/view_news.pl?id" || chk[0] == "/view_news.pl?from" || chk[0] == "/view_news.pl?media_id" || chk[0] == "/view_news.pl?stkt")
}
/* 部分圏かの確認 */
func issubcat(u string) bool {
chk := strings.Split(u, "=")
return len(chk) > 1 &&
(chk[0] == "/list_news_category.pl?id" || chk[0] == "/list_news_category.pl?page" || chk[0] == "/list_news_category.pl?sort" || chk[0] == "/list_news_category.pl?type" || chk[0] == "/list_news_category.pl?sub_category_id") &&
strings.Contains(u, "type=bn")
}
/* 部分かの確認 */
func iscategory(u string) bool {
chk := strings.Split(u, "=")
return len(chk) > 1 &&
(chk[0] == "/list_news_category.pl?id" || chk[0] == "/list_news_category.pl?sub_category_id" || chk[0] == "/list_news_category?from") &&
!strings.Contains(u, "type=bn")
}
/* 出版社かの確認 */
func ispublish(u string) bool {
chk := strings.Split(u, "=")
return len(chk) > 1 && (chk[0] == "/list_news_media.pl?id" || chk[0] == "/list_news_media.pl?page")
}
/* つぶやきかの確認 */
func istubayaki(u string) bool {
chk := strings.Split(u, "=")
return len(chk) > 1 &&
(chk[0] == "/list_quote.pl?id" || chk[0] == "/list_quote.pl?type" || chk[0] == "/list_quote.pl?sort" || chk[0] == "/list_quote.pl?news_id") &&
strings.Contains(u, "type=voice") &&
(strings.Contains(u, "sort=post_time") || strings.Contains(u, "sort=feedback_count"))
}