모듈:선거 박스 US auto

Module

현지의 p = {} 현지의  = 요구하다('모듈:네, 아니요.) -- #sublic perglobal 현지의 linked_write_in = 거짓의  기능. 포맷 번호( 숫자 )  -- 단순한 래퍼  현지의 언어 = .get Content Language(get Content Language)()  돌아가다 언어:format Num( 숫자 ) 끝.  기능. 퍼센티( 일부,  )  한다면  >= 1000000 그리고나서   -- 100만표 이상일 경우 소수점 2개로 반올림합니다.   반올림 = 2  또 다른   반올림 = 1  끝.  현지의 리트 = .익스텐트.파서 기능.expr( "" .. 100 * 일부 /  .. "둥근" .. 반올림 )  한다면 것은 아니다. string.find( 리트, ".", 1, 진실의 ) 그리고나서   -- expr에 없는 소수점 추가   리트 = 리트 .. "." .. string.rep("0", 반올림)  끝.  돌아가다 리트 끝.  기능. p.만들다( 호출하다 )   = 호출하다:부모 취득()  현지의 , 연도, 대회., 유형 = parse_passs( .args )  현지의 리트 = ""  현지의 no_displaces(노_displictes) = (.args["제목 없음"])  한다면 string.find(연도, ",", 1, 진실의 )  그리고나서   -- 멀티 모드   위해서 i,v  쌍들(.본문.분열되다( 연도, ",", 진실의 )) 하다    한다면 것은 아니다. no_displaces(노_displictes) 그리고나서     리트 = 리트 .. "\n=== " .. v .. " ==="    끝.    리트 = 리트 .. 만들다( , v, 대회., 유형, 년수_2012년(v, .args) )   끝.  또 다른   리트 = 리트 .. 만들다( , 연도, 대회., 유형, .args )  끝.  돌아가다 호출하다:전처리( 리트 ) 끝.  기능. fmt_module(v, 승리자., 합계_개요,args, usestrateparties)  현지의 임시직 = "{{"  한다면 v[2] == 승리자.[2] 그리고나서   임시직 = 임시직 .. "선거함 당선자"  또 다른   임시직 = 임시직 .. "선거 박스 후보"  끝.  현지의 n_party = 정상화하다( v[3], usestrateparties )  한다면 n_party 그리고나서   임시직 = 임시직 .. 파티 링크 변경 없음=" .. n_party  또 다른   임시직 = 임시직 .. "파티 링크 변경 없음"  끝.  링크 = args[v[2] .. "링크"]  한다면 링크 그리고나서   링크 = .직함.신규(링크)  또 다른   -- 바이패스 리다이렉트(표시명에 가장 중요함)   링크 = .직함.신규(v[2])   -- 리다이렉트가 "선거" 기사(예: Kim Vann)로 가는 경우를 제외하고,   -- 우회로를 원하지 않습니다.   한다면 링크.리다이렉트 그리고. 것은 아니다. string.find(링크.리다이렉트 타깃.프리픽스본문, "선거", 1, 진실의 ) 그리고나서    링크 = 링크.리다이렉트 타깃   끝.  끝.  -- 파이프 트릭을 사용할 수 없기 때문에 애매한 부분을 제거합니다.  display_name, 무시하다 = .스트링.서브(링크.프리픽스본문, %b(), "")  한다면 args.레드링크 또는 (링크.존재한다 그리고. 것은 아니다. 링크.리다이렉트) 그리고나서   풀링크 = "[[" .. 링크.프리픽스본문 .. " " .. display_name .. "]]"  또 다른   풀링크 = display_name  끝.  임시직 = 임시직 .. "후보=" .. 풀링크  한다면 v[4] 또는 args.현직의 == v[2] 그리고나서   -- 현직   임시직  = 임시직 .. (불참)  끝.  한다면 v[6] 그리고나서   -- 기입합니다.   한다면 linked_write_in 그리고나서    임시직 = 임시직 .. (기입)   또 다른    임시직 = 임시직 .. ( [ Write - in candidate write - in ])    linked_write_in = 진실의 -- 1회만 링크합니다.   끝.  끝.  임시직 = 임시직 .. "투표=" .. 포맷 번호(v[5])  임시직 = 임시직 .. "percentage=" .. 퍼센티(v[5], 합계_개요) .. "%"  임시직 = 임시직 .. "}}"  돌아가다 임시직 끝.  기능. parse_passs( args )  현지의  = args[1]  한다면 것은 아니다.  그리고나서   에러("상태 누락")  끝.  현지의 연도 = args[2]  한다면 것은 아니다. 연도 그리고나서   에러("연도가 누락되었습니다.")  끝.  현지의 대회. = args[3]  한다면 것은 아니다. 대회. 그리고나서   에러("콘테스트가 없습니다")  끝.  현지의 유형 = "일반"  한다면 args.유형 그리고나서   한다면 args.유형 == "프라이머리" 그리고나서    유형 = "프라이머리"   또 다른    에러("유형=의 값이 잘못되었습니다.")   끝.  끝.  돌아가다 , 연도, 대회., 유형 끝.  기능. 년수_2012년( 연도, args )  -- 「 2018 foo = 」와 같은 year arg를 foo로 하고 싶다.  -- "2016 foo="와 같은 다른 해 arg를 드롭합니다.  -- year arg가 일반적인 arg보다 우선하도록 합니다.  --마지막으로 일반적인 arg를 갖게 되었다.  현지의 신규 = {}  위해서 k,v  쌍들(args) 하다   현지의 k_년 = .스트링.경기(k, "^%d%d%d%d%d")   한다면 k_년 그리고나서    k_년 = .본문.다듬다(k_년)   끝.   한다면 k_년 그리고. k_년 == 연도 그리고나서    신규[.스트링.후보선수(k, 6)] = v   그렇지 않으면 k_년 그리고. k_년 ~= 연도 그리고나서    --아무것도 하지 않는다.   또 다른    -- k 가 아직 설정되어 있지 않은 경우는, 설정합니다.    한다면 것은 아니다. 신규[k] 그리고나서     신규[k] = v    끝.   끝.  끝.  돌아가다 신규 끝.  기능. 만들다( , 연도, 대회., 유형, args )  기능. load_tabular( , 연도, 유형 )   현지의 탭 이름 =  .. "선거/" .. 연도 .. "/" .. 유형 .. "/후보.탭"   현지의 표 형식의 = .익스텐트.데이터..얻다(탭 이름)   한다면 표 형식의 그리고나서    돌아가다 표 형식의   또 다른    돌아가다 {에러=표 형식의 데이터를 찾을 수 없습니다. .. 탭 이름}   끝.  끝.  현지의 표 형식의 = load_tabular(, 연도, 유형)  한다면 표 형식의.에러 그리고나서   에러(표 형식의.에러)  끝.  기능. find_certificates(데이터., 대회.)   현지의 후보 = {}   위해서 k,v  쌍들(데이터.) 하다    한다면 v[1] == 대회. 그리고나서     table.insert(후보, v)    끝.   끝.   돌아가다 후보  끝.  현지의 후보 = find_certificates(표 형식의.데이터., 대회.)  기능. sum_sum_contractions(합계)(후보)   현지의 합계_개요 = 0   현지의 현직_당사자 = 거짓의   현지의 승리자. = {}   승리자.[5] = 0   위해서 k,v  쌍들(후보) 하다    합계_개요 = 합계_개요 + v[5]    한다면 v[5] > 승리자.[5] 그리고나서     승리자. = v    끝.    한다면 v[4] 또는 args.현직의 == v[2] 그리고나서     현직_당사자 = v[3]    끝.   끝.   돌아가다 합계_개요, 승리자., 현직_당사자  끝.  현지의 합계_개요, 승리자., 현직_당사자 = sum_sum_contractions(합계)(후보)  현지의 usestrateparties = 제로  한다면 .스트링.발견하다(대회., '미국 대표부", 1, 진실의) 그리고나서   직함 = [美 하원의원 선거] .. 연도 .. "]]"  그렇지 않으면 .스트링.발견하다(대회., "주 의회 의원", 1, 진실의) 그리고나서   직함 = "[[" ..  .. 주의회 선거 .. 연도 .. "]]"   usestrateparties =   그렇지 않으면 대회. == "사장님" 그리고나서   직함 = 미국 대통령 선거 ..  .. ", " .. 연도  또 다른   직함 = "...????"  끝.  현지의 기본적인 = (args.기본적인)  설골의 = load_tabular(, 연도, "프라이머리")  한다면 설골의.에러 그리고나서   -- to do는 여기에 오류를 기록합니다.   기본적인 = 거짓의  끝.  한다면 기본적인 그리고나서   열다. = "선거 박스 오픈 프라이머리 시작 변경 없음"  또 다른   열다. = "선거 상자 시작 변경 없음"  끝.  기능. make_ref(표 형식의)   돌아가다 '<ref name=' .. 표 형식의.묘사 .. ''>' .. 표 형식의.원천 .. "/ref>"  끝.  현지의 레퍼런스 = make_ref(표 형식의)  한다면 기본적인 그리고나서   -- primary ref가 첫 번째입니다.   레퍼런스 = make_ref(설골의) .. 레퍼런스  끝.  현지의 리트 = "{{" .. 열다. .. "title=" .. 직함 .. 레퍼런스 .. "}}"  기능. total_box(토탈박스)(합계_개요)   돌아가다 "{{선거 박스 총 투표 없음=" .. 포맷 번호(합계_개요) .. "백분율 =" .. 퍼센티(합계_개요, 합계_개요) .. "%}}"  끝.  기능. sort_certificates(a,b)   돌아가다 a[5] > b[5]  끝.  table.displaces(후보, sort_certificates)  한다면 기본적인 그리고나서   현지의 인식하다 = find_certificates(설골의.데이터., 대회.)   table.displaces(인식하다, sort_certificates)   현지의 ptotal_module, 우승자, pincumb_party = sum_sum_contractions(합계)(인식하다)   현지의 가짜 당첨자 = {}   프라이머리에서는 승자를 원하지 않기 때문에, 승자가 없는 가짜를 사용해 주세요.   -- 후보가 일치합니다.   가짜 당첨자[2] = ""   위해서 k,v  쌍들(인식하다) 하다    리트 = 리트 .. fmt_module(v, 가짜 당첨자,ptotal_module,args,usestrateparties)   끝.   리트 = 리트 .. total_box(토탈박스)(ptotal_module) .. "{{선거함 오픈 프라이머리 총선 변화 없음}}"  끝.   위해서 k,v  쌍들(후보) 하다   리트 = 리트 .. fmt_module(v, 승리자.,합계_개요,args,usestrateparties)  끝.  리트 = 리트 .. total_box(토탈박스)(합계_개요)  현지의 잡고 있어 = args.잡고 있어  현지의 얻다 = 거짓의  한다면 잡고 있어 == '유지' 또는 승리자.[4] 또는 args.현직의 == 승리자.[2] 그리고나서   리트 = 리트 .. "{{스윙 승자 없는 당 링크 포함 선거함 홀드=" .. 정상화하다(승리자.[3],usestrateparties) .. "}}"  그렇지 않으면 잡고 있어 == "실패" 그리고나서   --D->R/R->D의 약자   win_party = 승리자.[3]   한다면 win_party == "민주적" 그리고나서    패소_파티 = 정상화하다('공화당',usestrateparties)   또 다른    패소_파티 = 정상화하다("민주적",usestrateparties)   끝.   win_party = 정상화하다(win_party)   얻다 = 진실의  그렇지 않으면 args.얻다 그리고나서   win_party = 정상화하다(args.얻다,usestrateparties)   패소_파티 = 정상화하다(args.찌질이,usestrateparties)   얻다 = 진실의  그렇지 않으면 현직_당사자 그리고. 현직_당사자 ~= 승리자.[3] 그리고나서   win_party = 정상화하다(승리자.[3],usestrateparties)   패소_파티 = 정상화하다(현직_당사자,usestrateparties)   얻다 = 진실의  끝.  한다면 얻다 그리고나서   리트 = 리트 .. "{{스윙 승자 없는 정당 연계로 선거함 이득=" .. win_party .. "루저=" .. 패소_파티 .. "}}"  끝.   리트 = 리트 .. "{{선택 상자 끝}}}"  돌아가다 리트 끝.  기능. 정상화하다( 파티,  )  첫 번째 파티 이후 모든 파티를 중지하시겠습니까?  파티 = .본문.분열되다( 파티, ",", 진실의 )[1]  현지의 스페셜 = {   공백 = 무소속(정치인),   독립적인 = 무소속(정치인),  }  스페셜["파티 프리퍼런스 없음"] = "파티 선호 없음"  한다면 스페셜[파티] 그리고나서   돌아가다 스페셜[파티]  끝.    한다면  그리고나서   - '캘리포니아 민주당   돌아가다  .. " " .. 파티 .. 파티  끝.    돌아가다 파티 .. 파티(미국) 끝.  돌아가다 p