forked from tildetown/town
		
	submit
This commit is contained in:
		
							parent
							
								
									c46e8806d0
								
							
						
					
					
						commit
						d950aaead2
					
				| @ -160,6 +160,110 @@ func rsvp(o opts) error { | ||||
| 	return sendRSVPEmail(rd) | ||||
| } | ||||
| 
 | ||||
| type submitData struct { | ||||
| 	Username    string | ||||
| 	Live        bool | ||||
| 	When        string | ||||
| 	Desc        string | ||||
| 	Length      string | ||||
| 	Interactive bool | ||||
| 	Freeform    string | ||||
| } | ||||
| 
 | ||||
| func sendSubmitEmail(sd submitData) error { | ||||
| 	bs, err := yaml.Marshal(sd) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| 	return email.SendLocalEmail("vilmibm", "SUBMISSION TOWNCON24", string(bs)) | ||||
| } | ||||
| 
 | ||||
| func submit(o opts) error { | ||||
| 	submitContent, err := md.ReadFile("md/submit.md") | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	out, err := glamour.Render(string(submitContent), "dracula") | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	fmt.Println(out) | ||||
| 
 | ||||
| 	submitting := true | ||||
| 	var live bool | ||||
| 	var talkWhen string | ||||
| 	var length string | ||||
| 	var desc string | ||||
| 	var freeform string | ||||
| 	var interactive bool | ||||
| 
 | ||||
| 	notSubmitting := func() bool { | ||||
| 		return !submitting | ||||
| 	} | ||||
| 
 | ||||
| 	form := huh.NewForm( | ||||
| 		huh.NewGroup( | ||||
| 			huh.NewConfirm().Title("So...wanna submit a thing?").Value(&submitting), | ||||
| 		), | ||||
| 		huh.NewGroup( | ||||
| 			huh.NewConfirm().Title("Excellent. Is it a live talk?").Value(&live), | ||||
| 		).WithHideFunc(notSubmitting), | ||||
| 		huh.NewGroup( | ||||
| 			huh.NewInput().Title("During what time frame can you give the talk"). | ||||
| 				Description("please include relevant time zone information!").Value(&talkWhen), | ||||
| 		).WithHideFunc(func() bool { return !live || !submitting }), | ||||
| 		huh.NewGroup( | ||||
| 			huh.NewText().Title("Please describe your submission"). | ||||
| 				Description("Include details like media format, topic, whether it's text or browser based.").Value(&desc), | ||||
| 		).WithHideFunc(notSubmitting), | ||||
| 		huh.NewGroup( | ||||
| 			huh.NewInput().TitleFunc(func() string { | ||||
| 				if live { | ||||
| 					return "About how long is your talk?" | ||||
| 				} else { | ||||
| 					return "If your piece has a duration (eg audio/video), approximately what is it?" | ||||
| 				} | ||||
| 			}, &live).Value(&length), | ||||
| 		).WithHideFunc(notSubmitting), | ||||
| 		huh.NewGroup( | ||||
| 			huh.NewConfirm().Title("Is your submission interactive?"). | ||||
| 				Description("for example a game or website"). | ||||
| 				Value(&interactive), | ||||
| 		).WithHideFunc(func() bool { return !submitting || live }), | ||||
| 		huh.NewGroup( | ||||
| 			huh.NewText().Title("Anything else I should know?").Value(&freeform), | ||||
| 		).WithHideFunc(notSubmitting), | ||||
| 	) | ||||
| 
 | ||||
| 	if err := form.Run(); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| 	if !submitting { | ||||
| 		fmt.Println("ok! just run the command again if you change your mind~") | ||||
| 		return nil | ||||
| 	} | ||||
| 
 | ||||
| 	sd := submitData{ | ||||
| 		Username:    o.Username, | ||||
| 		Live:        live, | ||||
| 		When:        talkWhen, | ||||
| 		Length:      length, | ||||
| 		Desc:        desc, | ||||
| 		Freeform:    freeform, | ||||
| 		Interactive: interactive, | ||||
| 	} | ||||
| 
 | ||||
| 	if err = sendSubmitEmail(sd); err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 
 | ||||
| 	fmt.Println("THANK YOU!! I'll be in touch~") | ||||
| 
 | ||||
| 	return sendSubmitEmail(sd) | ||||
| } | ||||
| 
 | ||||
| type opts struct { | ||||
| 	Username string | ||||
| } | ||||
| @ -201,6 +305,7 @@ func _main() error { | ||||
| 	case "rsvp": | ||||
| 		return rsvp(o) | ||||
| 	case "submit": | ||||
| 		return submit(o) | ||||
| 	case "jam": | ||||
| 	case "quit": | ||||
| 	default: | ||||
|  | ||||
							
								
								
									
										17
									
								
								cmd/towncon/md/submit.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								cmd/towncon/md/submit.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,17 @@ | ||||
| _every_ townie is encouraged to submit something (or multiple things) to town con. Seriously: please submit anything that can be consumed via a computer in under 60 minutes. Some ideas: | ||||
| 
 | ||||
| - a pre-recorded talk | ||||
| - a live talk to be transmitted over a video call | ||||
| - a web page | ||||
| - an essay, short story, or poem | ||||
| - some ascii art | ||||
| - a soft ware | ||||
| - a game for us all to play right then and there | ||||
| - some XML | ||||
| - a picture of a cool rock you found | ||||
| - a picture of your cat | ||||
| - a picture of someone else's cat | ||||
| 
 | ||||
| **The whole purpose of this event is to reflect and celebrate the town's vibrant and idiosyncratic community.** No work is too small. | ||||
| 
 | ||||
| **The DEADLINE to submit is October 8th, 2024.** I am downright excited to talk to you about ideas and offer suggestions! Please reach out to `vilmibm` via email or come chat about it in `town chat`. | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user