Raw Source
Mienaikage / OkChoices

// ==UserScript==
// @name OkChoices
// @version 3.0.0
// @namespace http://mitarashidango.net
// @description A script that allows you to modify gender, orientation, relationship status and pronouns on OKCupid.
// @include http://www.okcupid.com/profile*
// @match http://www.okcupid.com/profile*
// @updateURL https://openuserjs.org/install/mienaikage/httpmitarashidango.net/OkChoices.user.js
// @updateURL https://gist.github.com/raw/1131952/okchoices.user.js
// @downloadURL https://openuserjs.org/install/mienaikage/httpmitarashidango.net/OkChoices.user.js
// @downloadURL https://gist.github.com/raw/1131952/okchoices.user.js
// ==/UserScript==

document.getElementById("profile_details").innerHTML = document.getElementById("profile_details").innerHTML.replace(/(<dl>\s+?<dt>Orientation<\/dt>\s+?<dd\s+?id="ajax_orientation">.+?<\/dd>)/gi,'<dl><dt>Pronoun(s)</dt><dd id="ajax_pronoun">(Coming soon!)</dd></dl>'+'$1');
var gen = ['Agender','Androgyne','Butch','Female-to-Male','Femme','Gender Fluid','Gender Neutral','Genderless','Genderqueer','Intersex','Male-to-Female','Neutrois','Trans Man','Trans Woman','Transgender','Transsexual','Trans*']
var or = ['Asexual','Demisexual','Grey Asexual','Heteroflexible','Homoflexible','Panromantic','Pansexual','Polysexual','Queer','Sapiosexual']
var rel = ['Handfasted','Closed group','Separated']
var type = ['Polyamorous','Polyfidelitous']
var pro = ['Test']
var tag = document.getElementById("main_column").innerHTML.match(/&nbsp;<a\sclass="ilink"\shref="\/interests\?i=(.+?)">/gi);
for (id = 0; id < tag.length; id++) {tag[id] = tag[id].replace(/&nbsp;<a\sclass="ilink"\shref="\/interests\?i(=.+?)">/gi,'$1');}

for (gid = 0; gid < gen.length; gid++) {
	var gmatch = new RegExp('='+gen[gid],'i');
	if (gmatch.test(tag)) {
		console.log('Found '+gen[gid]+'!');
		document.getElementById("ajax_gender").innerHTML = document.getElementById("ajax_gender").innerHTML.replace(/.*/,gen[gid]);
	}
}
	
for (oid = 0; oid < or.length; oid++) {
	var omatch = new RegExp('='+or[oid],'i');
	if (omatch.test(tag)) {
		console.log('Found '+or[oid]+'!');
        document.getElementById("ajax_orientation").innerHTML = document.getElementById("ajax_orientation").innerHTML.replace(/.*/,or[oid]);
	}
}

for (rid = 0; rid < rel.length; rid++) {
	var rmatch = new RegExp('='+rel[rid],'i');
	if (rmatch.test(tag)) {
		console.log('Found '+rel[rid]+'!');
		document.getElementById("ajax_status").innerHTML = document.getElementById("ajax_status").innerHTML.replace(/.*/,rel[rid]);
	}
}

for (tid = 0; tid < type.length; tid++) {
	var tmatch = new RegExp('='+type[tid],'i');
	if (tmatch.test(tag)) {
		console.log('Found '+type[tid]+'!');
		document.getElementById("ajax_monogamous").innerHTML = document.getElementById("ajax_monogamous").innerHTML.replace(/.*/,type[tid]);
	}
}

for (pid = 0; pid < pro.length; pid++) {
	var pmatch = new RegExp('='+pro[pid],'i');
	if (pmatch.test(tag)) {
		console.log('Found '+pro[pid]+'!');
		document.getElementById("ajax_pronoun").innerHTML = document.getElementById("ajax_pronoun").innerHTML.replace(/.*/,pro[pid]);
	}
}