mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-31 16:12:24 -05:00 
			
		
		
		
	* start fixing up tests * fix up tests + automate with drone * fiddle with linting * messing about with drone.yml * some more fiddling * hmmm * add cache * add vendor directory * verbose * ci updates * update some little things * update sig
		
			
				
	
	
		
			101 lines
		
	
	
	
		
			2.9 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			101 lines
		
	
	
	
		
			2.9 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package iptc
 | |
| 
 | |
| import (
 | |
| 	"errors"
 | |
| )
 | |
| 
 | |
| // StreamTagInfo encapsulates the properties of each tag.
 | |
| type StreamTagInfo struct {
 | |
| 	// Description is the human-readable description of the tag.
 | |
| 	Description string
 | |
| }
 | |
| 
 | |
| var (
 | |
| 	standardTags = map[StreamTagKey]StreamTagInfo{
 | |
| 		{1, 120}: {"ARM Identifier"},
 | |
| 
 | |
| 		{1, 122}: {"ARM Version"},
 | |
| 		{2, 0}:   {"Record Version"},
 | |
| 		{2, 3}:   {"Object Type Reference"},
 | |
| 		{2, 4}:   {"Object Attribute Reference"},
 | |
| 		{2, 5}:   {"Object Name"},
 | |
| 		{2, 7}:   {"Edit Status"},
 | |
| 		{2, 8}:   {"Editorial Update"},
 | |
| 		{2, 10}:  {"Urgency"},
 | |
| 		{2, 12}:  {"Subject Reference"},
 | |
| 		{2, 15}:  {"Category"},
 | |
| 		{2, 20}:  {"Supplemental Category"},
 | |
| 		{2, 22}:  {"Fixture Identifier"},
 | |
| 		{2, 25}:  {"Keywords"},
 | |
| 		{2, 26}:  {"Content Location Code"},
 | |
| 		{2, 27}:  {"Content Location Name"},
 | |
| 		{2, 30}:  {"Release Date"},
 | |
| 		{2, 35}:  {"Release Time"},
 | |
| 		{2, 37}:  {"Expiration Date"},
 | |
| 		{2, 38}:  {"Expiration Time"},
 | |
| 		{2, 40}:  {"Special Instructions"},
 | |
| 		{2, 42}:  {"Action Advised"},
 | |
| 		{2, 45}:  {"Reference Service"},
 | |
| 		{2, 47}:  {"Reference Date"},
 | |
| 		{2, 50}:  {"Reference Number"},
 | |
| 		{2, 55}:  {"Date Created"},
 | |
| 		{2, 60}:  {"Time Created"},
 | |
| 		{2, 62}:  {"Digital Creation Date"},
 | |
| 		{2, 63}:  {"Digital Creation Time"},
 | |
| 		{2, 65}:  {"Originating Program"},
 | |
| 		{2, 70}:  {"Program Version"},
 | |
| 		{2, 75}:  {"Object Cycle"},
 | |
| 		{2, 80}:  {"By-line"},
 | |
| 		{2, 85}:  {"By-line Title"},
 | |
| 		{2, 90}:  {"City"},
 | |
| 		{2, 92}:  {"Sublocation"},
 | |
| 		{2, 95}:  {"Province/State"},
 | |
| 		{2, 100}: {"Country/Primary Location Code"},
 | |
| 		{2, 101}: {"Country/Primary Location Name"},
 | |
| 		{2, 103}: {"Original Transmission Reference"},
 | |
| 		{2, 105}: {"Headline"},
 | |
| 		{2, 110}: {"Credit"},
 | |
| 		{2, 115}: {"Source"},
 | |
| 		{2, 116}: {"Copyright Notice"},
 | |
| 		{2, 118}: {"Contact"},
 | |
| 		{2, 120}: {"Caption/Abstract"},
 | |
| 		{2, 122}: {"Writer/Editor"},
 | |
| 		{2, 125}: {"Rasterized Caption"},
 | |
| 		{2, 130}: {"Image Type"},
 | |
| 		{2, 131}: {"Image Orientation"},
 | |
| 		{2, 135}: {"Language Identifier"},
 | |
| 		{2, 150}: {"Audio Type"},
 | |
| 		{2, 151}: {"Audio Sampling Rate"},
 | |
| 		{2, 152}: {"Audio Sampling Resolution"},
 | |
| 		{2, 153}: {"Audio Duration"},
 | |
| 		{2, 154}: {"Audio Outcue"},
 | |
| 		{2, 200}: {"ObjectData Preview File Format"},
 | |
| 		{2, 201}: {"ObjectData Preview File Format Version"},
 | |
| 		{2, 202}: {"ObjectData Preview Data"},
 | |
| 		{7, 10}:  {"Size Mode"},
 | |
| 		{7, 20}:  {"Max Subfile Size"},
 | |
| 		{7, 90}:  {"ObjectData Size Announced"},
 | |
| 		{7, 95}:  {"Maximum ObjectData Size"},
 | |
| 		{8, 10}:  {"Subfile"},
 | |
| 		{9, 10}:  {"Confirmed ObjectData Size"},
 | |
| 	}
 | |
| )
 | |
| 
 | |
| var (
 | |
| 	// ErrTagNotStandard indicates that the given tag is not known among the
 | |
| 	// documented standard set.
 | |
| 	ErrTagNotStandard = errors.New("not a standard tag")
 | |
| )
 | |
| 
 | |
| // GetTagInfo return the info for the given tag. Returns ErrTagNotStandard if
 | |
| // not known.
 | |
| func GetTagInfo(recordNumber, datasetNumber int) (sti StreamTagInfo, err error) {
 | |
| 	stk := StreamTagKey{uint8(recordNumber), uint8(datasetNumber)}
 | |
| 
 | |
| 	sti, found := standardTags[stk]
 | |
| 	if found == false {
 | |
| 		return sti, ErrTagNotStandard
 | |
| 	}
 | |
| 
 | |
| 	return sti, nil
 | |
| }
 |