STML User Manual ================ Matt Welland v1.0, 2012-6 FriendMaker is a minimalistic tool to help bring like-minded people together on sites such Second Life. :numbered!: [abstract] Example Abstract ---------------- Due to the anonymous nature of sites such as Second Life meeting like-minded and compatible people can be somewhat hit-or-miss. The FriendMaker project (a subproject of the KiaToa project) sets out to improve the quality of connections made by increasing the probability of compatible people attending any given event. Special thanks to kellogglicious who inspired this work and has been a wonderful and supportive assistant in-world. :numbered: User Data Specification ----------------------- .User Data [width="100%",options="header",cols=" | :useritem | | User supplied key value pairs. // | Age | ::age | age 35 | NOT INITIALLY SUPPORTED Your age // | agewant | :agewant | :agewant 30 | NOT INITIALLY SUPPORTED The ideal partner age // | Compound commands (NOT yes supported, are they needed?)| | | // | About me | :me | :me m s us az Tempe 35 | Compact way to enter the basic info // | Location | :location | :location us az Tempe | One line entry of location for country, state/region and city/town // Compact forms (NOT supported yet) // // :me [ []] // :location // // .Example compact forms // ----------------------------- // :me f s us ca Burbank 25 // // note: If your city has spaces in the name it is best to use some short form // // :me f s us ca sanfran 25 // ----------------------------- Interests --------- mingling dancing conversation exploring Likes ----- Age Specification ~~~~~~~~~~~~~~~~~ Initially only agecp will be supported. In future either specify agecp or specify age and agewant. If both are specified then agecp will be used. The agecp idea works by clustering people around agecp numbers. A statistical analysis is done on the aggregate agecp data and clusters are identified, sliding group scales are applied and finally individuals are placed in groups. Group edges are changed with every iteration. The probablity of being in a group will be roughly a bell curve of the individual agecp with the group agecp. General Comments ~~~~~~~~~~~~~~~~ - The last setting is retained and the old value is lost. User Commands ~~~~~~~~~~~~~ .User Commands [width="100%",options="header",cols=" logfile Done Stuff ~~~~~~~~~~ . ENSURE THAT AUTO ADDED PEOPLE DO NOT GET IM's UNTIL THEY SET SOME VARIABLE [DONE] . Auto add from GIM [DONE] . Correct pm to PM [DONE] . Safely preserve single quotes [DONE] . Trim region/state to two letters [DONE] . Trim male, female and hermaphrodite to m, f, h [DONE] . Trim straight, gay, bisexual to s, g, b [DONE] . Transition to names table [DEFERED] . Create calendar page [DONE] . Create rough run script/makefile [DONE] . Sort by date [DONE] . Create stats page [DONE] . Add first three people to interests/likes for event, fix connections [DONE (well, good enough for now)] . Send IM's .. :aboutme [DONE] .. notice of event [DONE] .. :delete - send acknowledgement [Cannot do, once deleted info needed is gone] . Prevent re-processing lines in chat and or remove "ignore" on [DONE] . Change agecp to age [DONE] . do not process chats from friendmaker resident [DONE] . Trim message queue [DONE] . Upgrade to latest pikkubot software [DONE] . Fix Anna [DONE (good enough)] . Write temporary web page [DONE] . Create calendar page sync [DONE] . Create stats page [DONE] . Set up rsync of temporary web page [DONE] . Request to send notecard with all keywords currently in use. Phase 1 ~~~~~~~ . Re-write temp web page, add graphic illustration. .. Get snapshot of IM window [DONE] . Integration [DONE] .. Run script ... read logs ... commit logs ... generate connections ... send IM's . Ensure defaults are good [DONE] .. agecp = 30 .. orientation = "s" .. location zxzxzx .. besttime = "evening" .. interests = livemusic .. likes = soft rock .. ensure date/time is normalized M/D/YY H AM/PM - yes [DONE (leading zeros and 2012 fixed)] Phase 2 ~~~~~~~ . :matchfactor => set your minimum matchfactor . :bug and :message => send a bug report or message to kiatoa . Keep stats for friends on/offline and sometimes check for online using search. . Support this format: Bill473 Live @ Lost Lovers Dancing Club at 8 am description . Process payments . Get alt locations working Sim (x,y,z)\s+.* . Limit number of IM's per day or per hour . Limit number of events per person . Lowercase all data . Add underscores for cities . Data safety, remove quotes [DONE] . Add needed commands .. :me .. :addlike, :addinterest .. :success - for when friendmaker succeeded in help . Create friendmaker@kiatoa.com . Add :agree yes/no and agreement to web doc . Add payment processing . Add :help, :feedback Phase 3 ~~~~~~~ . For dating with a sophisticated hint of "flirt" check out Friendmaker. . Need a server, never goes down . Cron job(s) . Integrate with KiaToa . Setup fetchmail and procmail for friendmaker - delay for now. Notes ----- Maintenance mode 1. switch to autorespond "Anna is in offline mode, please try again in one hour" 2. copy the chat log to log.date 3. cat /dev/null > log 4. switch to autorespond "Thank you for using the friendmaker service!" Leon Anna Schema ------ ------------------------ sqlite> .schema CREATE TABLE events (id INTEGER PRIMARY KEY, event_time TEXT DEFAULT '', venue TEXT DEFAULT '', location TEXT DEFAULT '', event TEXT DEFAULT '', genre TEXT DEFAULT '', performer TEXT DEFAULT '', description TEXT DEFAULT '', CONSTRAINT eventsconstraint UNIQUE (event_time, venue)); CREATE TABLE groupedwith (id INTEGER PRIMARY KEY,grouped_id INTEGER,person_id INTEGER); CREATE TABLE logs (id INTEGER PRIMARY KEY,logfname TEXT,lasttime INTEGER); CREATE TABLE people (id INTEGER PRIMARY KEY, firstname TEXT, lastname TEXT, target_age INTEGER DEFAULT 25, sex TEXT DEFAULT 'n', orientation TEXT DEFAULT 's', country TEXT DEFAULT 'zx', region TEXT DEFAULT 'zx', city TEXT DEFAULT 'zx', best_time TEXT 'any', interests TEXT DEFAULT '', likes TEXT DEFAULT '', points INTEGER DEFAULT 0, CONSTRAINT valsconstraint UNIQUE (firstname, lastname)); ------------------------