Documentation ¶
Overview ¶
Package releaser provides string functions for cleaning and reformatting the names of release groups and partial URL paths.
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Cell ¶ added in v1.0.3
Cell formats the string to be used as a cell in a database table.
- The removal of duplicate spaces
- The removal of excess whitespace
- If found "The " prefix from BBS and FTP named sites
- The stripping of incompatible characters
Compatible characters include: A-Z a-z À-Ö Ø-ö ø-ÿ 0-9 - , &
Example:
Cell(" Defacto2 demo group.") = "DEFACTO2 DEMO GROUP" Cell("the x bbs") = "X BBS" Cell("defacto2.net") = "DEFACTO2NET" Cell("TDT / TRSi") = "TDT TRSI" Cell("TDT,TRSi") = "TDT, TRSI"
Example ¶
package main import ( "fmt" "github.com/Defacto2/releaser" ) func main() { s := " Defacto2 demo group." fmt.Println(releaser.Cell(s)) }
Output: DEFACTO2 DEMO GROUP
func Clean ¶
Clean fixes the malformed string and applies title case formatting. It does not apply any name deobfuscations such as initials or abbreviations, as it only stylizes the string.
- The removal of duplicate spaces
- The removal of excess whitespace
- If found "The " prefix from BBS and FTP named sites
- The stripping of incompatible characters
Compatible characters include: A-Z a-z À-Ö Ø-ö ø-ÿ 0-9 - , &
Example:
Clean(" Defacto2 demo group.") = "Defacto2 Demo Group" Clean("the x bbs") = "X BBS" Clean("The X Ftp") = "X FTP" Clean("tdt / trsi") = "Tdt Trsi" // behaves as a single group Clean("tdt,trsi") = "Tdt, TRSi" // behaves as two groups
Example ¶
package main import ( "fmt" "github.com/Defacto2/releaser" ) func main() { s := " Defacto2 demo group." fmt.Println(releaser.Clean(s)) }
Output: Defacto2 Demo Group
func Humanize ¶
Humanize deobfuscates the URL path and returns the formatted, human-readable group name. The path is expected to be in the format of a URL path without the scheme or domain. If the URL path contains invalid characters then an empty string is returned.
Example:
Humanize("defacto2") = "Defacto2" Humanize("razor-1911-demo") = "Razor 1911 Demo" Humanize("razor-1911-demo-ampersand-skillion") = "Razor 1911 Demo & Skillion" Humanize("north-american-pirate_phreak-association") = "North American Pirate-Phreak Association" Humanize("coop") = "TDT / TRSi" Humanize("united-software-association*fairlight") = "United Software Association + Fairlight PC Division" // special name Humanize("razor-1911-demo*trsi") = "Razor 1911 Demo, TRSi" Humanize("razor-1911-demo#trsi") = "" // invalid # character
Example ¶
package main import ( "fmt" "github.com/Defacto2/releaser" ) func main() { path := "razor-1911-demo" fmt.Println(releaser.Humanize(path)) }
Output: Razor 1911 Demo
func Index ¶ added in v1.1.0
Index deobfuscates the URL path and applies releaser.Humanize so that it can be stored in a database table as a releaser key and index in the database table.
Example ¶
package main import ( "fmt" "github.com/Defacto2/releaser" ) func main() { fmt.Println(releaser.Index("united-software-association*fairlight")) fmt.Println(releaser.Index("class*paradigm*razor-1911")) fmt.Println(releaser.Index("coop")) }
Output: UNITED SOFTWARE ASSOCIATION, FAIRLIGHT CLASS, PARADIGM, RAZOR 1911 COOP
func Link ¶
Link deobfuscates the URL path and applies releaser.Humanize. In addition, the humanized name is formatted to be used as a link description. If the URL path contains invalid characters then an empty string is returned.
Example:
Link("razor-1911-demo*trsi") = "Razor 1911 Demo + TRSi" Link("class*paradigm*razor-1911") = "Class + Paradigm + Razor 1911" Link("united-software-association*fairlight") = "United Software Association + Fairlight PC Division"
Example ¶
package main import ( "fmt" "github.com/Defacto2/releaser" ) func main() { path := "class*paradigm*razor-1911-demo" fmt.Println(releaser.Link(path)) }
Output: Class + Paradigm + Razor 1911 Demo
func Obfuscate ¶ added in v1.0.0
Obfuscate cleans and formats the string for use as a URL path. The string is expected to be a release group name or an known initialism, acronym or special name.
Beware that initialisms and acronyms often are not unique and an unexpected URL may be returned.
Example:
Obfuscate("ACiD Productions") = "acid-productions" Obfuscate("Razor 1911 Demo & Skillion") = "razor-1911-demo-ampersand-skillion" Obfuscate("TDU-Jam!") = "tdu_jam" Obfuscate("The 12AM BBS.") = "12am-bbs"
Examples using unique, known initialisms:
Obfuscate("fltdox") = "fairlight-dox" Obfuscate("tdt") = "the-dream-team"
Examples using special names:
Obfuscate("TDT / TRSi") = "coop" Obfuscate("United Software Association + Fairlight PC Division") = "united-software-association*fairlight"
Example ¶
package main import ( "fmt" "github.com/Defacto2/releaser" ) func main() { s := "Defacto2 Demo Group." fmt.Println(releaser.Obfuscate(s)) }
Output: defacto2-demo-group
func Title ¶ added in v1.1.0
Title formats the string to be used as a title or the basis for a LIKE SQL query. Any known initialisms, acronyms or special names are deobfuscated.
Example:
Title("razor 1911") = "Razor 1911" Title("_.=[ RaZoR 1911 ]=._") = "Razor 1911" Title("COOP") = "TDT / TRSi" Title("tdt / trsi") = "TDT / TRSi" Title("nappa") = "North American Pirate-Phreak Association"
Types ¶
This section is empty.
Directories ¶
Path | Synopsis |
---|---|
Package fix provides functions for cleaning and formatting strings of known words and group names.
|
Package fix provides functions for cleaning and formatting strings of known words and group names. |
Package initialism provides a list of alternative spellings, acronyms and initialisms for the named releasers.
|
Package initialism provides a list of alternative spellings, acronyms and initialisms for the named releasers. |
Package name provides functionality for handling the URL path of a releaser.
|
Package name provides functionality for handling the URL path of a releaser. |